ソケットがCoanaを買収し、無視できるセキュリティ警告を知らせる

Table of Contents

ソケットがCoanaを買収し、無視できるセキュリティ警告を知らせる

ソケットは、不要なセキュリティ警告のノイズを削減するための最新の取り組みとして、デンマークのオーフス大学の研究者によって2022年に設立され、どの脆弱性を安全に無視できるかをユーザーに伝えるスタートアップ企業であるCoanaを買収した。

「あらゆるセキュリティツールに共通する問題は、アラートが多すぎることです。これは私たちが考案したものではありません」と、サプライチェーンセキュリティ企業SocketのCEO、フェロス・アブカディジェ氏はThe Register紙に語った。「ノイズが多すぎるのです」

そして、ツールが優れているほど、生成されるノイズも大きくなります。

「他のツールが見つけられないものを発見すれば、実際にはより多くのアラートが出ることになる」とアブカディジェ氏は説明した。

アブーカディジェ氏によると、ソケット社の顧客、つまり同社の依存関係スキャンツールを使ってアプリライブラリの脆弱性を発見しているソフトウェア開発者たちがこの問題を提起しているという。彼らは、徹底的な依存関係スキャンによって作業負荷が不必要に増大することを望んでいないのだ。

パニックボタン(イラスト)

「npm audit」からのセキュリティ警告の洪水が開発者の混乱を招いている

続きを読む

現代のソフトウェアアプリケーションは、多くの依存関係を持つ傾向があります。これらは、アプリケーションにインポートされるモジュール、フレームワーク、またはライブラリであり、特定の機能や機能セットを提供することで、開発者が既に解決済みの問題に対する解決策を改めて考案する必要がないようにしています。

GitHub の 2020 State of the Octoverse レポート [PDF] によると、「JavaScript の依存関係の中央値が最も高く (10)、次いで Ruby と PHP (9)、Java (8) となっており、.NET と Python の依存関係が最も低く (6) なっています。」

しかし、これらの直接的な依存関係はそれぞれ、間接的または推移的な依存関係(他のモジュールによってインポートされたモジュール)を持つ可能性があります。夕食に招待された人が友人を連れてきて、その友人がさらに何人かを招待し、それぞれが1人以上の人を連れてくると想像してみてください。状況はすぐに手に負えなくなります。

そのため、JavaScript アプリケーションにおける推移的依存関係の中央値は約 683 になります。

PHP、Ruby、Pythonなどの他の言語では、依存関係の中央値はそれぞれ70、68、19と低くなっています。これは、言語エコシステムにおけるパッケージングの考え方の違いによるものです。特に、npmパッケージレジストリに依存するJavaScriptエコシステムは、他の言語とは異なり、マイクロパッケージング(多数の小さなライブラリ)を推奨しています。

つまり、開発者は、セキュリティ上の欠陥がないか精査する必要があるサードパーティのソフトウェアを大量にインポートするアプリを作成します。

そこでCoanaが登場します。Socketが脆弱性を見つけるためのツールを開発していたのに対し、Coanaは無視できる脆弱性を特定するツールを開発しました。

Coana は、攻撃者が実際にソフトウェアの脆弱性に到達して悪用できるかどうかを判断するために、到達可能性分析を行う方法を開発しました。

  • マイクロソフト、ソフトウェア販売方法をめぐり数十億ドル規模の訴訟に直面
  • MetaはEUユーザーデータでAIを訓練する最新の計画で依然としてGDPR規則に違反しているとnoybが言う
  • 米国の脆弱性追跡が行き詰まる中、EUは独自のセキュリティバグデータベースを導入
  • インテルのデータ漏洩対策スペクターが再び脅威にさらされる

アブカディジェ氏は、到達可能性分析を家の中のドアの数を見ることに例えました。玄関のドアが施錠されていない場合、直ちにセキュリティ上のリスクが生じます。しかし、地下室に施錠されていないドアがあり、その奥に複数の施錠されたドアがある場合、おそらくもっと心配すべきことがあるでしょう。

他の企業も到達可能性分析システムを実装しているが、それらのツールは遅いとアブカディジェ氏は主張する。

「スキャンの実行に10時間もかかることがあり、大規模なコードベースでは完了しないこともあります」と彼は説明した。「そのため、実際に導入するのは困難です。」

同氏によると、Coana の実装は、偽陰性や偽陽性がほとんどなく、妥当な時間内に完了するという。

Coana の創業者で最高製品責任者の Martin Torp 氏は、同社のアプローチはランタイム分析ではなく静的分析に依存しているが、その理由は主にその方が展開がはるかに簡単だからだと語った。

「しかし、静的解析の難しさは、解析の精度とスケーラビリティの間でトレードオフが生じることです」と彼は述べた。「そして、非常に大規模なエンタープライズアプリケーションに拡張可能でありながら、非常に正確な結果を生み出す最適なバランスを見つけるのは非常に困難です。」

Torp 氏は、Coana では、人々が実際にプログラミングする方法についていくつかの仮定を置くことで、静的分析 (コードを実行せずに分析する) をより効率的に実行できるようになったと説明しました。

「理論的には書けるものの、実際には非常に稀なコードパターンが存在することが分かっています」とトルプ氏は述べた。「人々が実際にコードを書く際の経験則を見つけることで、スケーラブルな分析に非常に優れており、偽陰性率と偽陽性率も非常に低いものを構築することができました。」

同氏は、この結果は JavaScript や Python のような動的プログラミング言語にとっては非常に魅力的だと付け加えた。これらの言語は、プログラムが実行されるまで特性が明らかにならないため、静的に分析するのが難しいことで知られている。

「ユーザーの視点から見ると、アプリケーションを持っているという状況です」とトルプ氏は述べた。「そのアプリケーションはいくつかのソフトウェアライブラリやパッケージに依存しています。そして、これらのパッケージには脆弱性が存在します。これはほぼ常に当てはまります。到達可能性分析は、依存コードを含むアプリケーション全体をスキャンし、その特定のアプリケーションのコンテキストにおいて実際に関連する脆弱性をすべて除外またはマークします。」

基本的に、特定の脆弱性は合理的に悪用できないことがユーザーに伝えられ、セキュリティ チームの作業負荷が軽減されます。

セキュリティ負荷は改善するどころか悪化しているとアブカディジェ氏は語り、ソケット社は週に約500個の悪意のあるパッケージを捕捉していると語った。

「実際、npm チームからは、ダウンロード数が少ない場合は悪意のあるパッケージを優先しないと言われました」と彼は語った。®

Discover More