潜在供应链攻击:pyd和py优先级问题

简介 Cython的出现使得Python代码更加安全和快速。大多数人对于Cython的了解在于用来保护Python代码库,它的确让Python代码的安全性得到提升,目前得到的pyd文件只能反汇编,并且优先级会高于p...

简介

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、对比官方模块的校验。
  • 发表于 2021-04-20 15:10
  • 阅读 ( 217 )
  • 分类:互联网

0 条评论

请先 登录 后评论
先生
先生

688 篇文章

你可能感兴趣的文章

相关问题