Facebook が Python 言語の静的アナライザーである Pysa を導入しました

Facebook 紹介された 静的アナライザーを開く ピサ (Python Static Analyzer)、Python コードの潜在的な脆弱性を特定するように設計されています。 新しいアナライザーは、型チェック ツールキットのアドオンとして設計されています。 パイレ そして彼のリポジトリに投稿されました。 コード 公開済み MITライセンスの下で。

Pysa は、コード実行の結果としてのデータ フローの分析を提供します。これにより、表示されるべきではない場所でのデータの使用に関連する多くの潜在的な脆弱性やプライバシーの問題を特定できます。
たとえば、Pysa は、外部プログラムを起動する呼び出し、ファイル操作、SQL 構造における生の外部データの使用を追跡できます。

アナライザーの仕事は、データのソースと、元のデータを使用すべきではない危険な呼び出しを特定することになります。 Web リクエストからのデータ (Django の HttpRequest.GET ディクショナリなど) はソースとみなされ、eval や os.open などの呼び出しは危険な使用とみなされます。 Pysa は、一連の関数呼び出しを通じてデータの流れを追跡し、ソース データをコード内の潜在的に危険な場所に関連付けます。 Pysa を使用して特定される典型的な脆弱性は、オープンなリダイレクトの問題です (CVE-2019-19775) Zulip メッセージング プラットフォームで、サムネイルのレンダリング時にクリーンになっていない外部パラメーターを渡すことが原因で発生します。

Pysa のデータ フロー追跡機能は、 適用する 追加のフレームワークの正しい使用を検証し、ユーザー データ使用ポリシーへの準拠を判断します。 たとえば、追加設定を行わない Pysa を使用して、Django および Tornado フレームワークを使用するプロジェクトをチェックできます。 Pysa は、SQL インジェクションやクロスサイト スクリプティング (XSS) など、Web アプリケーションの一般的な脆弱性も検出できます。

Facebook では、アナライザーは Instagram サービスのコードをチェックするために使用されます。 2020 年の第 44 四半期に、Pysa は Facebook エンジニアが Instagram のサーバー側コードベースで発見したすべての問題の XNUMX% を特定するのに役立ちました。
Pysa の自動変更レビュー プロセスでは合計 330 件の問題が特定され、そのうち 49 件 (15%) が重大と評価され、131 (40%) は非深刻と評価されました。 150 件 (45%) で、問題は偽陽性として分類されました。

出所: オープンネット.ru

コメントを追加します