查找或构建 python 安全分析器

Mat*_*hew 5 security python-3.x

我想要一个用于 python 的安全分析器。具体来说,我想要一些将 python 程序作为输入的东西,并告诉我该程序是否尝试进行系统调用、读取文件或导入库。如果存在这样的安全分析器,我在哪里可以找到它?如果不存在这样的东西并且我要自己写一个,我可以在哪里“检查”我的分析器(即,验证它是否有效)。

如果您认为这个问题不适合 SO,请告诉我是否还有其他 SE 网站可以发布此问题,或者如果可能的话,我可以如何更改/重新表述我的问题。谢谢

CPP*_*CPP 3

通常,Python 使用称为 CPython 的解释器。很难说 python 代码本身是否打开文件或执行某些特殊操作,因为许多 python 库和解释器本身都是用 C 编写的,并且系统调用/libc 调用只能从那里发生。Python 语法本身也可能非常晦涩难懂。

所以,通过回答你的怀疑:I suspect this would need specific knowledge of the python programming language,它看起来不像那样,因为它是关于 C 语言的。

您可以认为可以修补 CPython 本身。嗯,正如我猜测的那样,它也不正确。许多共享库使用 C/C++ 代码作为 CPython 本身。例如,张量流。

更进一步,我想可以做以下事情:

  • 修补为 CPython/模块编译 C/C++ 代码的编译器,我猜这很难。
  • 只需使用常用的分析器,跟踪 python 本身使用哪些文件、目录和调用进行操作,并将它们列入白名单,因为它们是需要的,我认为这是最好的选择(例如 AppArmor)。
  • 也许您可能对 CPython 本身的修补感兴趣,其中可以挂钩所需的函数并调用外部 C 库,但这可能很烦人,因为您必须修改项目中添加的每个库,而且 C 代码也是如此经常用于性能(例如json模块),不会打开太多东西。