freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

潜在供应链攻击:pyd和py优先级问题
2021-01-04 17:35:18

简介

Cython的出现使得Python代码更加安全和快速。大多数人对于Cython的了解在于用来保护Python代码库,它的确让Python代码的安全性得到提升,目前得到的pyd文件只能反汇编,并且优先级会高于py文件。如果利用它的特性结合供应链攻击,也许会带来安全隐患。

优先级问题

当相同文件名的pyd和py文件在同级目录之中,将会优先执行pyd文件。pyd文件通常因难以阅读、研发缺少反汇编技能,导致少被关注。下面进行测试:
咱们新建文件tmp_debug.py,将其编译为pyd文件。
#!/usr/bin/python
# -*- coding: utf-8 -*-
def test():
    print("恶意逻辑测试。")
    print("输出测试。")
if __name__ == "__main__":
    test()
再将其中的部分代码删除。得到tmp_debug.py如下代码:
#!/usr/bin/python
# -*- coding: utf-8 -*-
def test():
    print("输出测试。")
if __name__ == "__main__":
    test()
将其pyd文件与py文件放在同级目录之中。通过如下代码执行调用:
import tmp_debug
tmp_debug.test()
得到结果:
恶意逻辑测试。
输出测试。
如果你使用PyCharm,按住Ctrl用鼠标左键点击tmp_debug.test()方法,则会跳转到py文件代码,pyd将会被忽略。如果被用于供应链攻击后果可想而知。

修复办法

1、如果条件允许最好能够重新编译PYD文件。
2、对比官方模块的校验。
# python安全 # 供应链攻击
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录