聚焦源代码安全,网罗国内外最新资讯!

编译:奇安信代码卫士团队

Facebook 正式发布安全工具 Pysa,它专用于查找并修复 Instagram app 庞大Python 代码库中的漏洞。

Pysa 是一款静态分工具,用于在代码运行/编译前静态扫描代码,发现已知的可能代表潜在bug 的模式,之后开发人员标记潜在问题。

Facebook 表示,Pysa 由公司内部开发,通过不断改进已变得成熟。例如,Facebook 指出,在2020年上半年,在Instagram 服务器端 Python 代码中的所有漏洞中,44%的安全问题是由 Pysa检测出的。

专为安全团队开发

尽管 Pysa 基于 Pyre 项目的开源代码而开发,但 Pysa是根据安全团队的需求构建的。多数静态分析工具寻找的是各种 bug,但Pysa专用于查找和安全性相关的问题。更具体而言,Pysa 追踪的是“程序中的数据流”。数据在程序代码中如何流动非常重要,当前多数安全 exploit 利用的是未过滤或不受控的数据流。例如,当前最严重的 bug 类型远程代码执行 (RCE) 漏洞,本质起因是用户输入到达代码库不必要的区域。

Pysa 旨在探究数据如何在代码库中流动,尤其是由数万或数百万行代码组成的大型代码库中如何流动。

这一概念并不新鲜,Facebook 早在 Zoncolan 中就已实现。Zoncolan 是一款静态分析工具,发布于2019年8月,用于检测 Facebook 主 app 代码中所使用的 PHP 等语言变体中的问题。Pysa 和 Zoncolan 寻找的是“来源 (sources)”(数据进入代码库的地方)和“下沉 (sinks)”(数据结束的地方)。这两款工具都会追踪数据如何在代码库中移动并找到危险的“下沉”如可执行代码或检索敏感用户数据的函数。如发现来源和危险下沉之间的连接,Pysa(和 Zoncolan)就会发出警告信息,提醒开发人员开展调查。

Facebook 安全团队深度参与了 Pysa 的创建,它已经过数月的内部测试,找到和常见安全问题如跨站点脚本、远程代码执行、SQL 注入等专有的来源-下沉模式。

检测速度快,专为大型代码库创建

正如 Facebook 的安全工程师 Graham Bleaney 所述,如果 Pysa 需要数天的时间才能查找完整个 Instagram 代码库中的安全问题,则它的作用没那么大。因而,Pysa 的优势也在于速度,能够在30分钟到数小时不等的时间内遍历完数百万行代码,这就使得 Pysa 几乎能够实时找到 bug 而开发人员不必担心 Pysa 会耽误代码交付或延误最后期限,将 Pysa 集成到常规工作流和例程中。

这种专注于不破坏 Facebook 开发人员及其常规工作流程的特点已成为 Facebook 安全团队的目标。

可扩展

Pysa 的另外一个优势是可扩展性。Instagram 基本由 Python 代码构建而成,二者从一开始就未被开发为一个整体。和多数主流平台一样,Instagram的代码是随着公司的发展壮大而不断改进的。当前它的代码库包括很多不同的 Python 框架和 Python 库,它们均运行于Instagram 不同的组件和特征上。这意味着 Pysa 以“即插即拔”的模式创建,它可在运行中配合新框架。

Bleaney 表示,“由于我们自己的产品中使用了开源的 Python 服务器框架如 Django 和 Tornado,因此 Pysa 能够在一开始运行时就能使用这些框架查找项目中的安全问题。在目前尚未涵盖的框架中使用 Pysa 也非常简单,只需增加几行配置告知 Pysa 在服务器中输入代码的地方即可。”

Facebook 已正式在 GitHub 上开源了 Pysa 工具,并说明了多个有助于查找安全问题的 bug 定义。自去年借助 Pysa 发现一个重大安全问题后,Zulip 服务器项目已将 Pysa 内嵌在代码库中。

Pysa 的 GitHub 地址:https://github.com/facebook/pyre-check/。

推荐阅读

Black Hat | PE Tree:BlackBerry 发布PE文件开源逆向工具

谷歌开源漏洞扫描器“海啸”,专为大型企业服务

原文链接

https://www.zdnet.com/article/facebook-open-sources-one-of-instagrams-security-tools/

题图:Pixabay License

本文由奇安信代码卫士编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 www.codesafe.cn”。

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的

产品线。

 觉得不错,就点个 “在看” 吧~

Facebook 开源 Instagram 的Python 代码静态安全分析工具 Pysa相关推荐

  1. 别熬夜加班了,Facebook 开源了一款代码推荐神器!| 程序员硬核评测

    近日,科技巨头 Facebook 开源了一款代码到代码的搜索和推荐神器--Aroma,开发者基于此可以轻松找到常见的编码模式而无需手动浏览多个代码片段. 作者 | Celeste Barnaby.Sa ...

  2. python支持向量机分类器怎么用_可视化SVM分类器开源实现的python代码

    如下的Python代码是可视化SVM分类器开源实现的python代码.这是个小巧又简单,却不一定满足大家高效要求的具有可视化功能的SVM分类器源码.是采用标准python写成的,但如果需要作图功能,则 ...

  3. Facebook 开源 Instagram 安全工具 Pysa

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 白开水不加糖 来源 | 公众号「开源中国」 F ...

  4. Google出品的Python代码静态类型分析器:Pytype

    Pytype检查并推断Python代码的类型--不需要类型注解.Pytype可以: 使用lint检查纯Python代码,标记常见错误,如属性名拼写错误.不正确的函数调用,等等更多,它甚至可以跨文件. ...

  5. Bandit:一款Python代码安全漏洞检测工具

    工具介绍 Bandit这款工具可以用来搜索Python代码中常见的安全问题,在检测过程中,Bandit会对每一份Python代码文件进行处理,并构建AST,然后针对每一个AST节点运行相应的检测插件. ...

  6. python 代码行数统计工具_使用Python设计一个代码统计工具

    问题 设计一个程序,用于统计一个项目中的代码行数,包括文件个数,代码行数,注释行数,空行行数.尽量设计灵活一点可以通过输入不同参数来统计不同语言的项目,例如: # type用于指定文件类型 pytho ...

  7. python代码行数统计工具_Python实现代码行数统计工具的功能(实例)

    本篇文章给大家带来的内容是关于Python实现代码行数统计工具的功能(实例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 我们经常想要统计项目的代码行数,但是如果想统计功能比较完善 ...

  8. [转] python运行时内存分析工具meliae

    转自:https://my.oschina.net/markco/blog/601773 利用meliae来监控python进程的内存占用情况 meliae是一个python进程内存占用监控.分析工具 ...

  9. 【Android 逆向】使用 Python 编写 APK 批处理分析工具

    文章目录 一.涉及到的工具和脚本 二.使用 Python 编写 APK重打包工具 三.博客源码 一.涉及到的工具和脚本 apktool.jar : 反编译 APK 文件使用到的工具 ; 参考 [And ...

最新文章

  1. 【grunt整合版】30分钟学会使用grunt打包前端代码
  2. 信息系统项目管理师论文范文-质量管理
  3. 运维无小事,小事不运维
  4. 【JavaEE企业应用实战学习记录】struts配置文件详细解析
  5. 2010数据库SQL Server 盘点
  6. 《天天数学》连载44:二月十三日
  7. 拓扑一致体参数化的复杂模型的等几何分析计算重用
  8. 图解抖音推荐算法(布局抖音短视频的可以参考)
  9. CTO 离职、研发变动,百度外卖与饿了么组织架构融合公布
  10. 【Pre-Training】XLNet:预训练最强,舍我其谁
  11. 计算机组成之总线结构
  12. 泛微E8的数据展示集成方法
  13. Xubantu安装google 输入法以及You‘re currently running Fcitx with GUI, but fcitx-configtool couldn‘t be found
  14. 网页特殊符号HTML代码大全
  15. 京东区块链白皮书摘要
  16. 【随缘侃史】蹈舞求生许敬宗
  17. 大牛教你这样阅读android源码
  18. wangEditor粘贴word图片问题解决
  19. OSGearth学习(一)
  20. crux系列写作-通过SSH实现虚拟机下的crux 2.6与win7主机互传文件

热门文章

  1. redis数据库无法写入导致的bug
  2. RegOpenKeyEx返回 2及原因
  3. 构造函数创建私有变量(防继承)
  4. 前端技术周刊 2019-02-11 Serverless
  5. 第十六章:SpringCloud Config 配置自动刷新
  6. 详细解读Spark的数据分析引擎:Spark SQL
  7. 使用php-amqplib连接rabbitMQ 学习笔记及总结
  8. Spring实战——Profile
  9. 每天一个linux命令(5):in命令
  10. Vue.js视频教程