当社のAIエンジンNeutronが、UCバークレーのCyberGymベンチマークで96.75%のスコアを記録しました。 詳細を見る

セキュリティ

セキュリティ

既知の悪用可能な脆弱性:すべてを捕捉する

本記事では、CISA KEV、GoogleのTsunami、そして革新的なOstorlabのAsteroidプロジェクトといった信頼できるプラットフォームから収集した、クリティカルかつ重大度の高い、現に悪用されている脆弱性を特定するための不可欠なツールと実証的な知見を紹介します。

TL;DR

本記事では、クリティカルかつ重大度の高い、リモートから現に悪用されている脆弱性を検出するための実証データとツールを紹介します。これらの脆弱性は、CISA KEV、GoogleのTsunami、そして新たに加えたOstorlabのAsteroidプロジェクトといったソースから収集したものです。 本記事では、これらの脆弱性の大部分を大規模に検出するための新しいツールをオープンソース化します。

はじめに

脆弱性はすべてが同じように「生まれる」わけではなく、それぞれ異なる影響を持ち、悪用されるには異なる条件を必要とします。リモートから認証なしで悪用できる、クリティカルかつ影響の大きい脆弱性は、最も危険なものに含まれます。リモートコード実行、アカウント乗っ取り、デフォルトや脆弱な認証情報のいずれであっても、すべてが壊滅的な影響につながり得るからです。

本記事では、これらのクリティカルな脆弱性を特定し、他と区別したうえで、あらゆるシステム内でそれらを検出するための新しいオープンソースツール(エージェント)群を紹介することに焦点を当てます。

さらに、これらのツールをBug Bountyの規模で活用した結果を共有し、分析します。

脆弱性について

脆弱性の重大度は、攻撃ベクトル(ローカルかリモートか)、必要とされる権限のレベル、ユーザー操作の必要性など、さまざまな要因によって変わります。これらの脆弱性を評価するうえで追加できるもう一つの重要な基準は、実際に現場で悪用されているかどうかです。これらの基準は、最もクリティカルな脅威を表し、即座の対応と修復を要する脆弱性を特定し、優先順位付けするのに役立ちます。

この優先順位付けのプロセスは、CISA KEVやGoogleのTsunamiといったいくつかのソースの助けを借りることで、より現実的なものになります。CISA KEVは、現に悪用されているCVEを追跡する脆弱性カタログであり、Tsunamiは、GoogleのSecurity Automated Teamによって優先順位付けされた、クリティカルかつ重大度の高い脆弱性に特化しています。

CISA KEV:

CISA KEVのリストには、合計で1054件のCVEが含まれていました。

  • 680件は、リモートから悪用できないか、ユーザー操作または認証を必要とします。

  • 374件の脆弱性は、ユーザー操作や権限を一切必要とせず、リモートから悪用されます。

Figure 1: CISA KEV LIST Graph
CISA KEV Graph

分析した374件の脆弱性のうち、264件は公開された実証済みのエクスプロイトが確認されました。残りの脆弱性については、知見を提供する対応する解説が存在するものもあれば、関連する情報が一切ないものもありました。

調査した概念実証(PoC)のうち、すべてが本物だったわけではなく、一部は不完全、誤り、悪意のあるもの、あるいは単なるいたずらでした。

もう一つの例がCVE-2022-28958で、これは実在する脆弱性ではありません。攻撃者は実際の攻撃で偽のペイロードを使っており、これは公開されたエクスプロイトが検証されないまま使われたことを示しています。

Figure 2: CVE-2022-28958
CVE-2022-28958

この脆弱性の説明は次のとおりです。「DIR816L_FW206b01のshareport.phpには、攻撃者がvalueパラメーターを介してコマンドを実行するために悪用できる問題がある」。

しかし調査の結果、研究者の概念実証は機能しないものであることが判明し、VulnCheckがファームウェアに対して実施したさらなるテストでも、この脆弱性の存在を裏付ける証拠は何も見つかりませんでした。

分析からはまた、掲載されているベンダーと製品の多様性も明らかになりました。

以下は、ベンダー別の(リモートから悪用可能 vs リモートから悪用不可能)CVEの分布です。

Figure 3: Distribution of (Remotely Exploitable vs Not Remotely Exploitable) CVEs by Vendors
Distribution of (Remotely Exploitable vs Not Remotely Exploitable) CVEs by Vendors

特筆すべき点は次のとおりです。

  • Microsoft:275件のCVEで首位ですが、認証なしでリモートから悪用可能なものは16件のみです。
  • Apache:認証なしでリモートから悪用可能なCVEの点では31件の脆弱性で1位です。

認証情報を必要とする、またはリモートから悪用不可能なCVEの製品別の分布:

Figure 4: Distribution of CVEs Requiring Credentials or Not Remotely Exploitable Across Products
Distribution of CVEs Requiring Credentials or Not Remotely Exploitable Across Products

認証なしでリモートから悪用可能なCVEの製品別の分布:

Figure 5: Distribution of Unauthenticated Remotely Exploitable CVEs Across Products
Distribution of Unauthenticated Remotely Exploitable CVEs Across Products

完全なリストは次のリポジトリで入手でき、常に更新されています:KEV Ostorlabリポジトリ。

Figure 6: List of all cves
List of all CVES

新しいオープンソースツール

Ostorlabのオープンソースのセキュリティスキャンフレームワークは、一元化されたスキャンソリューションを構築するうえで中心的な役割を果たしました。これにより、多様な機能を持つ複数のエージェントを同時に実行し、これらの脆弱性を大規模にテストできるようになりました。

たとえば、IPレンジに対してこれらの脆弱性の有無をテストしたところ、芳しくない結果となりました。これらの脆弱性のいくつかは、有効なドメイン名を使った場合にのみアクセスできます。

これらの脆弱性を検出するために構築・活用したエージェントは次のとおりです。

Nuclei agent:Nucleiスキャナーをラップするオープンソースのエージェントで、任意のターゲットに対して、指定した任意のテンプレートを使ってスキャンできます。 詳細は次を参照してください: https://github.com/Ostorlab/agent_nuclei.

Tsunami agent:Tsunamiスキャナーをラップするオープンソースのエージェントで、スキャナーが提供するすべてのプラグインを実行できます。 詳細は次を参照してください: https://github.com/Ostorlab/agent_tsunami.

Metasploit agent:任意のターゲットに対してMetasploitモジュールを活用し、脆弱性の有無を確認するために設計されたオープンソースのエージェントです。 使い方の詳細については、次を参照してください:https://github.com/Ostorlab/agent_metasploit.

Agent Asteroid:カスタムプロトコルや複雑なロジックを必要とする複雑なチェック、たとえばNucleiテンプレートでは実装が難しい暗号鍵の破りなどを実行できる新しいエージェントです。このエージェントは次の場所で入手できます:https://github.com/Ostorlab/agent_asteroid.

Figure 7: Agent asteroid
Agent Asteroid

「exploits」フォルダーには、実装済みのさまざまな概念実証が含まれており、今後も追加を続けていきます。

本レポートの公開時点で、当社のツールキットはさまざまなCVEに対する18種類の個別のチェックを備えています。これらに加えて、Android Debug Bridge(ADB)の露出を標的にしたチェックなど、特定のカスタムチェックも開発しました。

Nmap agent:ポート探索を実行するオープンソースのエージェントです。Nmapエージェントは、検出エージェントが標的とすべきポートを発見できるもので、それらが一度だけスキャンされ、すべてのエージェントによってテストされることを保証します。

Amass agent:サブドメインを列挙するオープンソースのエージェントです。このエージェントは、大規模なテストにおいて、指定したドメインの公開されているすべてのターゲットをカバーするために使用されました。

Subfinder agent:サブドメインを列挙するもう一つのオープンソースのエージェントです。このエージェントは、ドメイン列挙を改善するためにamassに追加するものです。

すべてを組み合わせる

これらのエージェントをすべて同時に実行するために、Ostorlabはエージェントグループを定義し、必要なエージェントを指定する機能を提供しています。

エージェントグループ定義の全体像を把握するには、既知の悪用可能な脆弱性を参照してください。

このエージェントグループを実行するには、次のようにします。

oxo scan run --install -g agent_group.yaml domain-name example.com

エージェントはDockerイメージとしてパッケージ化されており、–-installフラグが最新バージョンのダウンロードを保証します。

これらのエージェントがどのように滞りなく連携するかを可視化するには、次のツールを使って可視化できます:https://report.ostorlab.co/library/agent/group。

Figure 8: Visualize Agent group definition
Visualize Agent group definition

このツールはドラッグ&ドロップ機能を提供し、エージェントグループ向けのYAMLファイルを生成できます。さらに、エージェント間の通信、それらの入力と出力、そしてワークフロー内での位置づけを可視化できます。

大規模なテスト

開発したツールをさまざまなバグバウンティのターゲットに対して実行することで、成熟したセキュリティ態勢を持つターゲットに対するこれらの脆弱性の存在について、実証的な結果が得られました。

1500件のターゲットのうち、次の結果が収集されました。25件(25)のターゲットに、リモートコード実行につながるクリティカルな脆弱性が含まれていました。

たとえば次のとおりです。

CVSSスコア9.8のJboss Application Server - Remote Code Execution脆弱性。

Figure 9: JBOSS Remote code execution
JBOSS Remote code execution

11件のターゲット(11)には、事前認証なしのRCE、FTPやIMAPといったサービスにおける脆弱な認証情報、さらにはアクセス制御のバイパスに至るまで、重大度の高い脆弱性が含まれていました。

これは、成熟したセキュリティ態勢を持つと期待されるこれらのターゲットのうち、2.5%が依然として公開された悪用可能な脆弱性を抱えていたことを意味します。

結びに

脆弱性は継続的な課題であり、その優先順位付けは控えめに言っても依然として複雑です。既知の脅威を検出する一元化されたオープンソースのツールは、環境を保護するうえで優位性(そして最初の一歩)をもたらします。

このオープンソースプロジェクトへの貢献をお待ちしています。あなたの概念実証を添えて、次の場所でプルリクエストを作成できます。

Known exploitable vulnerabilities または Agent Asteroid.

タグ:

security, cisa, kev, cve