馬里亞納海溝,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. 權利:您可以隨時限制,恢復和刪除您的信息。