马里亚纳海沟,Facebook 的开源静态代码分析器

Facebook揭幕 几天前他释放了 开源静态分析器,马里亚纳海沟, 它旨在识别 Android 应用程序和 Java 程序中的漏洞。

提供了在没有源代码的情况下分析项目的能力,只有 Dalvik 虚拟机的字节码可用。 另一个优点是执行速度非常快(分析几百万行代码大约需要 10 秒),这使您可以使用马里亚纳海沟检查所有提议的更改,因为它们被引入。

分析仪 作为项目的一部分开发,以自动化代码审查过程 移动应用源 来自 Facebook、Instagram 和 Whatsapp。

我们分享了有关马里亚纳海沟 (MT) 的详细信息,这是我们用来检测和防止 Android 和 Java 应用程序中的安全和隐私错误的工具。 作为我们通过楼宇自动化帮助扩展安全性的努力的一部分,我们最近开放了 MT 以支持 Facebook 和整个行业的安全工程师。

这篇文章是我们深入探讨我们信任的静态和动态分析工具系列中的第三篇。 MT 是继 Zoncolan 和 Pysa 之后的最新系统,分别为 Hack 和 Python 代码构建。

2021 年上半年,Facebook 移动应用程序中的所有漏洞中有一半是使用自动分析工具识别的。 马里亚纳海沟的代码与其他 Facebook 项目紧密相连,例如 Redex 字节码优化器操作用于分析字节码,SPARTA 库用于可视化解释和研究结果的静态分析。

通过分析数据流识别潜在的漏洞和安全问题 在执行应用程序期间, 这允许识别情况 其中原始外部数据以危险的结构进行处理,例如 SQL 查询、文件操作和导致启动外部程序的调用。

MT 旨在能够扫描大型移动代码库并在拉取请求投入生产之前标记其中的潜在问题。 它是 Facebook 的安全工程师和软件工程师密切合作的结果,他们训练 MT 查看代码并分析数据如何流经它。 分析数据流很有用,因为可以将许多安全和隐私问题建模为不应该流向的数据。

分析器的工作减少到确定数据源和危险呼叫, 不应该使用原始数据的地方:解析器通过函数调用链监视数据的传递,并将初始数据与代码中潜在的危险位置连接起来。

由于在 MT 中,数据流可以通过以下方式描述:

  • 来源:一个起源点。 这可以是由用户通过 Intent.getData 进入应用程序控制的字符串。
  • 水槽:目的地。 在 Android 上,这可以是对“Log.w”或“Runtime.exec”的调用。 例如,调用 Intent.getData 的数据被认为是要监视的源,而调用 Log.w 和 Runtime.exec 被认为是危险的用途。

大型代码库可以包含许多不同类型的源和相应的接收器。 我们可以通过定义规则告诉 MT 向我们展示特定的流程。

例如,规则可以指定我们要查找意图重定向(允许攻击者拦截敏感数据的问题),方法是定义一个规则,该规则向我们显示从“用户控制的”源到“意图重定向的接收器”的所有跟踪。

最后 如果您有兴趣了解更多信息,您可以检查 以下链接中的详细信息.


发表您的评论

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

*

*

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