著者ヴィン T. グエン - チームリーダー
はじめに
コンピュータシステムの脆弱性とは、攻撃者がそのシステムを不正に利用するために悪用できる弱点のことである [1]。特にSoftware 脆弱性は、常に変化し続けるソフトウェアの性質と複雑さのために、組織が定期的に対処しなければならないサイバーセキュリティの課題である。
組織がコンピュータ・ネットワークの脆弱性に対するリスクを評価するために使用する最も一般的な方法は、ネットワーク・ベースとホスト・ベースの2つの大きなカテゴリーに分類することができる[2]。ネットワークベースの方法は、各ホストにログインすることなくネットワークを調査し、転送中の脆弱なサービス、デバイス、データを検出します。ホストベースの方法は、各ホストにログインし、脆弱なソフトウェア、コンポーネント、設定のリストを収集します。それぞれのカテゴリーは異なる方法でリスクを処理するが、脆弱なソフトウェアがすでにホストにデプロイされていない限り、どちらも脆弱性を検出することはできない。
実際には、評価は通常、通常の運用に影響を与えないようにスケジュールされる。このため、脆弱なソフトウェアが導入されてから評価が開始されるまでの間に、攻撃者がホスト、ひいてはネットワークを侵害するために利用できる機会の窓が残されている。
OPSWAT file-based vulnerability assessment 技術は、報告された脆弱性にバイナリファイル(インストーラ、実行ファイル、ダイナミックライブラリなど)を関連付けることで、これを実現する。この方法は、脆弱性のあるソフトウエア・コンポーネントを配備される前に検出することができるので、セキュリ ティ・アナリストとシステム管理者は迅速に適切な措置をとることができ、その結果、ウィンドウを閉じることができる。
以下のセクションでは、技術とそのユースケースをより詳細に説明し、これらのユースケースに関連する既知の攻撃の例を示す。そして、悪用のデモを示し、この技術とその可能性について結論づける。
別の検出方法が必要な理由
従来の方法の限界
ソフトウェアの脆弱性を検出する従来の方法は、抽象的なレベルで動作する。ネットワーク・ベースのスキャンがコンピュータ・ネットワークをプローブし、ホスト・ベースのスキャンがマシンからデータを収集する場合、通常、高いパフォーマンス(スキャン時間、ネットワーク帯域幅、メモリ使用量など)を確保し、無関係な結果をフィルタリングするために、システムの環境に基づいて実行するチェックを決定する。時には、評価方法がシステムの環境に情報を依存するあまり、依存する同じ環境の特異性により、適切なチェックが実行されないことがある。
例えば、脆弱性のあるネットワークサービスが評価の前に(偶発的または意図的に)シャットダウンされた場合、スキャンはそのサービスの脆弱性を検出しない。また、アプリケーションのインストールパスを含む Windows のレジストリキーを削除しても、アプリケーション自体とその脆弱性はそのまま残され、ホストベースのスキャンでは検出されない可能性があります。どちらの場合も、スキャン方法はインストールされた製品のフットプリントに依存するため、効果的ではありません。
インストールされた製品は、パッケージ化され、デプロイメントロジックと組み合わされたファイル(実行ファイル、ライブラリ、データベースなど)のコレクションです。デプロイメントロジックは通常、製品のフットプリントをある場所(たとえば、Windows OSのレジストリ、MySQLのポート3306)に書き込む規約に従っています。このフットプリントは製品そのものを定義するものではなく、製品のライフタイム中いつでも変更可能である。そのため、フットプリントに依存して(ネットワークベースのスキャンとホストベースのスキャンの両方がそうであるように)製品とその脆弱性を検出すると、誤検出のリスクがある。
ファイルベース・スキャンの導入
File-based vulnerability assessment は従来の評価方法とは異なる。その名前が示すように、ファイル単位で動作し、高レベルの製品抽象化をすべて無視します。報告された各脆弱性を分析し、製品のインストーラとメイン・コンポーネント・ファイルにマッピングすることにより(特許U.S. 9749349 B1)、file-based vulnerability assessment 、バイナリ・ファイルが脆弱性に関連しているかどうかを検出できるため、製品が実行されていない場合やフットプリントが変更されている場合でも、脆弱性を暴露することができる。
ファイルベースとネットワークベースのスキャンの違いは明確だが、ファイルベースとホストベースのスキャンの違いはそれほど明確ではない。ホストベースのスキャンは、製品のフットプリントに完全に依存しているわけではなく、製品の主要コンポーネントのファイルバージョンもチェックしていると言える。そのため、スキャンロジックをファイルバージョンのチェックのみに変更することができ、ファイルベーススキャンをホストベーススキャンのサブセットとすることができる。
そうではない:
- ホストベースのスキャンは、多くの場合、システム環境と製品のフットプリントの両方を使用して、どのようなチェックを行うかをフィルタリングするようにハード的に設定されている。
- 脆弱性の原因となるファイルの発見と分析に焦点を当てることで、ファイルベースのスキャンは、ホストベースの手法では検出が困難な脆弱性を検出することができ、より多くのユースケースに適している。
ファイルベースのスキャンは、脆弱なインストーラ、ファームウェア・パッケージ、ライブラリ・ファイル、製品コンポーネント・ファイルなどが、ゲートウェイを経由してネットワークに出入りしたり、(電子メールやフラッシュ・ドライブなどを経由して)エンドポイントに出入りしたりするのを検出するために使用できる。これにより、システム管理者やユーザーは、製品を使用する前にその製品の脆弱性をチェックすることができ、組織が現在使用しているホストベースまたはネットワークベースのスキャン手法でホストがサポートされていない場合でも、確実に保護することができます。

File-based vulnerability assessment 技術は、既存のマシンの潜在的な脆弱性を発見するためにも使用できる。従来のスキャン手法は、公開情報源にあるハイレベルで曖昧な報告に基づいて脆弱性チェックを行うのが一般的であるため、スキャン自体はハイレベル(製品のフットプリント)に止まり、脆弱性や報告された製品の詳細には踏み込まないことが多い。
しかし、製品同士が互いのコンポーネントを再利用することが多いため(ダイナミック・ライブラリや共有サービスがその一例)、脆弱性のある製品をアップデートしたり、あるいはその製品を削除したりしても、脆弱性の原因となっているファイルが消えているとは限りません。それらはまだファイルシステムのどこかにあり、攻撃者がそれらのコンポーネントを再接続して大混乱を引き起こすためのプラットフォームを提供するかもしれない。これらのファイルは、多くの場合、人が求めることができるすべての完全性を持っています。それらは明確な目的を持ち、広く知られ、信頼できるソースから提供され、有効なシグネチャを持ち、最新のソフトウェア・パッケージのいくつかにはまだ存在している。File-based vulnerability assessment テクノロジーにより、システム管理者はマシンをスキャンし、攻撃者がそれらを使用する機会を得る前に、潜んでいる脆弱なファイルを見つけることができる。

技術の課題
それでも、ファイル・レベルでの操作には限界がある。脆弱性がトリガーされるためには複数のファイルが一緒にロードされる必要があるにもかかわらず、ファイルを脆弱性としてマークしてしまうことがある(偽陽性)。これは、(1つのファイルをスキャンすることによって)コンテキストを見逃すことと、開示レポートの曖昧さによるものである。また、ファイルデータベースの不完全さや、やはりレポートの曖昧さにより、本当に脆弱性のあるファイルをクリーン(偽陰性)と判定することもある。
OPSWAT、このことを理解し、file-based vulnerability assessment 技術を常に改善し、より多くの脆弱性をカバーし、誤検知/誤検知率を低減しています。私たちは、この技術をMetaDefender ファミリーの多くの製品(MetaDefender Core、MetaDefender Cloud、Drive、Kiosk、ICAP Server)に統合し、組織が重要なネットワークを徹底的に防御できるように支援しています[3]。
既知のエクスプロイト
シスアドが、組織で使用しているすべてのソフトウェアの開示レポートを監視することはもちろん、そのソフトウェア内のすべてのコンポーネントを把握し、監視することは十分に難しい。そのため、脆弱性を含む古いコンポーネントを使用したソフトウェアが検出を逃れ、組織内部に侵入することが可能になってしまう。このため、脆弱性のあるコンポーネントが大きな問題となる可能性がある。
その一例が、Dell SupportAssist の制御不能なライブラリ検索パスの脆弱性である CVE-2019-12280 [4]である。これは、低特権ユーザがSYSTEM権限で任意のコードを実行し、マシンを完全に制御することを可能にします。この脆弱性は元々、PC-Doctor がマシンを診断するために提供するコンポーネントから派生したものである。両ベンダーとも、この問題を修正するパッチをリリースしている。
別の例として、CVE-2012-6706 [5]がある。これはメモリ破壊の重大な脆弱性で、特別に細工されたファイルを開くと、任意のコードが実行され、マシンが危険にさらされる可能性がある。この脆弱性は当初、ソフォスのアンチウイルス製品に影響すると報告されていたが、後にファイル抽出を処理するUnRARという名前のコンポーネントが原因であることが判明した[6]。
この種の脆弱性は、脆弱なコンポーネントを使用する製品が多すぎるため、完全に報告できないことが多い。したがって、シスアドが使用中のすべての製品について知っていて、一般的な情報漏洩源について注意深く監視していても、攻撃者が通り抜ける余地はまだたくさんある。
デモ
脆弱なコンポーネントがホスト上で問題を引き起こすケースを詳しく見てみましょう。ここでは、CVE-2012-6706 [5]の影響を受けるUnRAR.DLL [8]を含む古いバージョンのTotal Commander [7]を使用します。このCVEはTotal Commanderを報告していないことに注意してください。管理者権限を持つパワーユーザがこのソフトウェアを使用することが多いため、脆弱性の悪用に成功すると、攻撃者がホストを使用して組織のネットワークを制御するのに役立つ可能性があります。
デモ仕様:
- オペレーティングシステムWindows 10 1909 x64。
- Software:Total Commander v8.01 x86とUnRARライブラリv4.20.1.488。
- 細工されたデータは、Googleセキュリティ研究グループがExploit-DB [9]で作成したものである。
メモリ破壊は、Total Commander が UnRAR.DLL を使用して特別に細工されたファイルを展開する際に発生します。攻撃者は、Total Commanderのユーザー権限で、マシン上で任意のコードを実行することができます。洗練された攻撃者は、さらなる攻撃のために、一見正当だが脆弱なファイルをマシン上に仕込む可能性がある。

最近のバージョンのTotal Commanderは、新しいバージョンのUnRAR.DLLを使用しているため、この脆弱性はありません。従って、たとえ開示報告がなくても、また特に長い間アップデートを実行していない場合(Total Commanderのこのバージョンは2012年にリリースされた)でも、ユーザーはソフトウェアを常に最新の状態に保つべきである。
結論
Software 脆弱性は、攻撃者が組織のリソースにアクセスしたり、そのリソースをコントロールしたりすることを可能にする。脆弱性を検出する2つの一般的な方法は、ネットワークベースとホストベースのスキャンである。これらは通常、抽象度の高いレベルで動作するため、コンピュータ環境の変化により、重要な情報を見逃す可能性がある。
OPSWAT file-based vulnerability assessment 技術は、ファイルレベルで動作し、組織に出入りする脆弱なソフトウェアインストーラやコンポーネントをシステム管理者に警告し、導入前と使用中の両方でセキュリティリスクを低減します。この技術は、Core、Cloud API、Drive、Kiosk MetaDefender 製品に統合され、幅広いユースケースに対応しています。
ファイル単位で脆弱性を検出することは、従来の方法とは異なり、新たな可能性、新たなユースケース、そして課題があります。OPSWAT では、課題を克服し、進化し続けるサイバーセキュリティの脅威から組織の重要なネットワークを保護するために、常に技術を改善しています。
参考文献
[3]"MetaDefender - Advanced Threat Prevention Platform," [オンライン]。
[4]"CVE-2019-12280 -MetaDefender," [オンライン]。
[5]"CVE-2012-6706 -MetaDefender," [オンライン]。
[6]"Issue 1286 - VMSF_DELTA filter in unrar allows arbitrary memory write - Project Zero," [Online].
[7]"Total Commander - home," [Online].
[8]"WinRAR archiver - RARLAB," [Online].
[9]"unrar 5.40 - 'VMSF_DELTA' Filter Arbitrary Memory Write," [Online].