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

SegmentFault

共 1432字,需浏览 3分钟

 · 2020-08-11



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




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


GitHub 地址:

https://github.com/facebook/pyre-check/





- END -

赛事推荐


浏览 16
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报