Facebook 推出 Pysa,Python 語言的靜態分析器

Facebook 引進 開啟靜態分析器 皮薩 (Python 靜態分析器),旨在識別 Python 程式碼中的潛在漏洞。 新的分析儀被設計為類型檢查工具包的附加組件 大限 並發佈在他的儲存庫中。 程式碼 發表 在麻省理工學院的許可下。

Pysa 提供對程式碼執行結果的資料流的分析,使您能夠識別與在不應出現的位置使用資料相關的許多潛在漏洞和隱私問題。
例如,Pysa 可以追蹤啟動外部程式的呼叫、檔案操作和 SQL 建構中原始外部資料的使用情況。

分析器的工作歸結為識別資料來源和不應使用原始資料的危險調用。 來自 Web 請求的資料(例如 Django 中的 HttpRequest.GET 字典)被視為來源,而 eval 和 os.open 等呼叫被視為危險用途。 Pysa 透過函數呼叫鏈追蹤資料流,並將來源資料與程式碼中潛在危險的位置關聯起來。 使用 Pysa 識別的典型漏洞是開放重定向問題(CVE-2019,19775)在Zulip訊息平台中,由於渲染縮圖時傳遞未清理的外部參數而導致。

Pysa 的資料流追蹤功能可以 申請 驗證附加框架的正確使用並確定是否符合使用者資料使用政策。 例如,無需額外設定的 Pysa 即可用於檢查使用 Django 和 Tornado 框架的項目。 Pysa 還可以偵測 Web 應用程式中的常見漏洞,例如 SQL 注入和跨站腳本 (XSS)。

在 Facebook 上,分析器用於檢查 Instagram 服務的代碼。 2020 年第一季度,Pysa 協助識別了 Facebook 工程師在 Instagram 伺服器端程式碼庫中發現的所有問題的 44%。
Pysa 的自動變更審核流程總共發現了 330 個問題,其中 49 個 (15%) 被評為嚴重問題,131 個 (40%) 被評為非嚴重問題。 在 150 個案例 (45%) 中,問題被歸類為誤報。

來源: opennet.ru

添加評論