Pysa,Facebook提供的Python静态分析器

Facebook已经推出了一个名为“ Pysa”的开源静态分析器。»(Python静态分析器) 旨在识别Python代码中的潜在漏洞。

皮萨 提供数据流分析 由于执行了代码, 使您能够识别许多潜在的漏洞和问题 与在不应出现的地方使用数据有关的隐私权。

例如,Pysa 可以跟踪调用中原始外部数据的使用 在文件操作和SQL构造中执行外部程序的代码。

今天,我们分享有关Pysa的详细信息,Pysa是一种开放源代码静态分析工具,我们已构建该工具来检测和预防Python代码中的安全性和隐私问题。 去年,我们分享了我们如何创建Zoncolan,这是一种静态分析工具,可以帮助我们分析超过100亿行的hack代码,并帮助工程师预防了成千上万的潜在安全问题。 这一成功激发了我们开发Pysa的经验,Pysa是Python Static Analyzer的首字母缩写。

Pysa使用相同的算法 执行静态分析,甚至与 Zoncolan。 像赞科兰,皮萨 跟踪程序中的数据流。

用户定义源(重要数据来源的地方)和宿(源数据不应结束的地方)。

对于安全应用程序,最常见的源类型是用户控制的数据进入应用程序的位置,例如Django字典。

接收器的种类往往更多,但可以包括运行代码的API,例如 eval,或访问文件系统的API,例如os.open

Pysa执行反复的分析以构建摘要 确定哪些函数从源返回数据以及哪些函数具有最终到达接收器的参数。 如果Pysa发现某个源最终连接到接收器,则会报告问题。 

分析仪工作 它归结为识别传入的数据源 和危险的呼叫,其中不应使用原始数据。

Pysa监视通过函数调用链进行的数据传递,并将原始数据与代码中潜在危险的位置相关联。

因为我们将Django和Tornado之类的开源Python服务器框架用于我们自己的产品,所以Pysa可能从一开始就开始在使用这些框架的项目中遇到安全问题。 使用针对框架的Pysa,我们目前尚无涵盖范围,通常只要添加几条配置行来告诉Pysa数据进入服务器的位置就很简单。

Pysa识别的一个常见漏洞是Zulip消息传递平台中的一个开放重定向问题(CVE-2019-19775),由在显示缩略图时传递不干净的外部参数引起。

Pysa的数据流跟踪功能可用于验证其他框架的使用并确定是否符合用户数据使用策略。

例如: 无需其他配置的Pysa即可用于使用框架验证项目 Django和龙卷风。 Pysa还可以识别Web应用程序中的常见漏洞,例如SQL替换和跨站点脚本(XSS)。

在Facebook上,分析器用于验证Instagram服务的代码。 在2020年第一季度,Pysa帮助发现了Facebook工程师在Instagram的服务器端代码库中发现的所有问题的44%。

在此过程中总共发现了330个问题 使用Pysa进行的自动变更验证,其中49(15%)被评估为重要,而131(40%)则没有危险。 在150个案例中(45%),问题归因于误报。

新的解析器被设计为Pyre类型验证工具包的附件,并放置在您的存储库中。 该代码是根据MIT许可发布的。

最后 如果您想了解更多, 您可以在原始帖子中查看详细信息。 链接是这个。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。