Facebook 开源 Instagram 安全工具 Pysa,可用于大型代码库

Pysa - facebook
技术编辑:徐九丨发自:思否编辑部

近日,Facebook 宣布开源静态分析工具 Pysa。这是 Instagram 上用于检测和修复应用程序庞大 Python 代码库中错误的一个内部工具,可以自动识别 Facebook 工程师编写的易受攻击的代码段,然后再将其集成到社交网络的系统中。

其工作原理是在代码运行/编译之前,以静态的形式扫描代码、查找潜在已知的错误模式、然后帮助开发者标注出潜在的问题。

Facebook 表示该工具是内部开发,通过不断完善现在已经成熟。Facebook 表示在 2020 年上半年,Pysa 在 Instagram 的服务器端 Python 代码中检测到了所有安全漏洞中的 44%。

Pysa 是什么?

Pysa 是 Python Static Analyzer 的首字母缩写,其基于 Pyre 项目的开源代码构建,可以对 Python 应用程序中的数据流进行分析。此外,Pysa 还可以检测常见的 Web 应用安全问题,例如 XSS 和 SQL 注入。

其实 Pysa 的概念并不新鲜,该工具的开发也借鉴来 Zoncolan。Zoncolan 是 Facebook 于 2019 年 8 月发布的用于Hack的静态分析器,主要面向 PHP。

Pysa 和 Zoncolan 都在寻找“源”(输入代码库的数据)和“接收器”(数据结束)。两种工具都可以跟踪数据在代码库中的移动方式,并找到危险的“接收器”,例如可以执行代码或检索敏感用户数据的函数。

此外,Pysa 也是为提高速度而构建的,它能够在 30 分钟到几小时内处理数百万行代码。Pysa 的另一个特性则是具有可扩展性,Facebook 安全工程师Graham Bleaney 称,“因为我们自己的产品使用了开源的 Python 服务器框架,比如 Django 和 Tornado,所以 Pysa 可以从第一次运行就开始发现使用这些框架的项目的安全问题。而将 Pysa 用于我们尚未涉及的框架,一般来说只需添加几行配置,告诉 Pysa 数据进入服务器的位置即可。”

专为安全团队开发

该工具的背后是 Facebook 安全团队。该工具是围绕安全团队的需求而构建的。

尽管大多数静态分析工具都在寻找各种各样的错误,但 Pysa 是专门为寻找与安全相关的问题而开发的。更具体地说,Pysa 跟踪“通过程序的数据流”。

数据如何通过程序代码流动非常重要。如今,大多数安全漏洞利用都利用了未经过滤或不受控制的数据流。例如,远程代码执行(RCE)是当今最严重的错误类型之一。

Pysa - facebook

专为速度和大型代码库而设计

对于这类工具,如果要花费数天时间才能够扫描整个代码库,那么对于安全的防护能力就会大打折扣。

因此,Pysa 的构建过程中也考虑来速度的因素,能够在 30 分钟到几小时之内遍历数百万行代码。这样,Pysa 可以近乎实时地发现错误,并使开发团队可以放心地将该工具集成到其常规工作流程和例程中,而不必担心使用它可能会延迟其代码的发布或未达到严格的期限。

GitHub 地址:https://github.com/facebook/p...

segmentfault 思否

阅读 905

推荐阅读

第一时间为开发者提供行业相关的实时热点资讯

27792 人关注
2228 篇文章
专栏主页