新しい ODGen ツールは、Node.js ライブラリ PlatoBlockchain Data Intelligence で 180 のゼロデイを明らかにします。 垂直検索。 あい。

新しい ODGen ツールが Node.js ライブラリで 180 のゼロデイを発見

ジョンズ・ホプキンス大学の研究者は最近、ODGen と呼ばれる目的のために特別に開発した新しいコード分析ツールを使用して、何千もの Node.js ライブラリにわたって驚くべき 180 のゼロデイ脆弱性を発見しました。

これらの欠陥のうち XNUMX は、それ以降、一般的な脆弱性と露出 (CVE) の識別子を受け取りました。 これには、コマンド インジェクションの欠陥、パス トラバーサルの脆弱性、任意のコード実行の問題、およびクロスサイト スクリプティングの脆弱性が含まれます。これらの脆弱性の一部は、広く使用されているアプリケーションに見られます。

今月初めに Usenix Security Symposium で発表された論文で、Johns Hopkins の研究者である Song Li、Mingqing Kang、Jianwei Hou、および Yinzhi Cao は、ODGen を現在のコード分析およびいわゆるグラフ クエリ ベースのより優れた代替手段として説明しています。 Node.js の脆弱性を見つけるためのアプローチ。

プログラム分析ベースのアプローチは、JavaScript のコード インジェクションの欠陥など、個々の脆弱性の種類を検出するのに役立つことが証明されています。 しかし、Node.js プラットフォームに存在する可能性のあるあらゆる種類の脆弱性を検出するように簡単に拡張することはできない、と研究者は述べています。 同様に、グラフベースのコード分析方法 (コードを最初にグラフとして表現し、次に特定のコーディング エラーを照会する方法) は、C++ や PHP などの環境でうまく機能します。 しかし、グラフベースのアプローチは、JavaScript の脆弱性のマイニングにはそれほど効率的ではありません。これは、プログラミング言語の動的機能が広範に使用されているためです。

JavaScript の脆弱性を発見するための「斬新な」アプローチ

そのため、研究者は代わりに、彼らが次のように説明したものを開発しました オブジェクト ディペンデンス グラフ (ODG) と呼ばれる「斬新」で優れた方法 Node.js の脆弱性の検出に使用できます。 彼らは、脆弱性を検出する Node.js プログラム用の「ODG」を生成するために ODGen を実装した、と彼らは言いました。

ジョンズ・ホプキンス大学のコンピューター サイエンスの助教授であり、研究レポートの共同執筆者である Cao は、いくつかの類推を使用して、一般的なグラフベースのコード分析と、彼らが提案した目的依存グラフを説明しています。 「脆弱性を特別なパターンと見なす場合、たとえば、緑のノードが赤のノードに接続され、次に黒のノードに接続される場合、グラフベースのコード分析ツールは、最初にプログラムを多くのノードとエッジを持つグラフに変換します」と Cao 氏は言います。 . 「次に、ツールはグラフでそのようなパターンを探し、脆弱性を見つけます。」

研究者が提案したオブジェクト依存グラフは、JavaScript オブジェクトをノードとして表現し、プログラミング言語に固有の機能 (オブジェクト間の依存関係を含む) を追加し、エラーを照会することで、このアプローチを改良します。 Cao 氏は、一握りの米の穀物を使用してこの方法がどのように機能するかを説明しています。すべての穀物が沸騰前は同じように見えますが、沸騰後に XNUMX つの異なる色合い (XNUMX つは良い穀物を表し、もう XNUMX つは悪い穀物を表します) を想定する場合、見つけて取り除くのが簡単になります。悪い穀物。 「抽象的解釈は、米、つまりプログラムをさまざまな色のオブジェクトに変換する煮沸プロセスのようなものです」。そのため、エラーを見つけやすくなります。

さまざまなバグ

彼らのアプローチが機能するかどうかを確認するために、研究者は最初にノード パッケージ マネージャー (npm) リポジトリの Node.js パッケージで以前に報告された 330 の脆弱性のサンプルに対して ODGen をテストしました。 このテストでは、スキャナが 302 の脆弱性のうち 330 を正しく識別したことが示されました。 比較的高い精度に支えられて、研究者は npm で約 300,000 の Java パッケージに対して ODGen を実行しました。 スキャナーは、パッケージ全体で合計 2,964 の潜在的な脆弱性を報告しました。 研究者はそのうち 264 件をチェックし、そのすべてが 1,000 週間あたり平均 180 回以上ダウンロードされており、122 件が正当な脆弱性であることを確認できました。 そのうちの 15 はアプリケーション レベルで、XNUMX は他のアプリケーションまたはコードによってインポートされるパッケージにあり、残りの XNUMX は間接的なパッケージに存在していました。

ODGen が検出した複数 (80 件) の確認済みの脆弱性は、攻撃者が脆弱なアプリケーションを介してオペレーティング システム レベルで任意のコードを実行できるコマンド インジェクション フローでした。 24 はパス トラバーサルの欠陥でした。 19 件はコードの改ざんを可能にし、XNUMX 件はプロトタイプ汚染と呼ばれる特定の種類のコマンド インジェクション攻撃に関与していました。

タイムスタンプ:

より多くの 暗い読書