第3回 この脆弱性対策エンジンは“永遠に完成しない”
株式会社フォティーンフォティ技術研究所
技術本部 ソフトウェア開発部 部長
石山智祥
2010/3/9
製品化したいまも、このエンジンは未完成――「5分で絶対に分かるバッファオーバーフロー」を執筆した石山氏が、その理由を語る(編集部)
ZDPエンジン:パターンファイルに頼らず防御する「要の技術」
今回は、パターンマッチングに依存しないウイルス対策ソフト「FFR yarai 2009」」(以下:yarai)に含まれる、任意コード実行型脆弱性の攻撃を検知、防御する「ZDPエンジン」の開発とその背景についてお話ししたい。
ZDPエンジンは、yaraiを構成している4つのエンジンのうち、そのほかの3つのエンジン(Static分析エンジン、サンドボックスエンジン、HIPSエンジン)と大きく異なる特徴を持っている。そのほかの3つのエンジンが実行ファイル形式のウイルスを検知対象としているのに対し、ZDPエンジンはAdobe Acrobat Readerで読むPDFファイルや、Microsoft Officeで読むWordファイル、Excelファイルなどの「アプリケーション内に存在する脆弱性」を攻撃し、任意のコードを実行することでシステム内に感染するといった、近年の手口を悪用したウイルスを対象としている。
これら近年の手口である脆弱性攻撃型ウイルスに対し、脆弱性の攻撃コードを少し変更するだけで検出することができなくなってしまう既知のウイルス検出技術(=パターンマッチング)で対策を行うことは非常に困難である。パターンマッチングの限界については、第1回「限界を迎えつつある『パターンマッチング』という手法」で述べられているので、そちらをご参照いただきたい。
ZDPエンジンは、パターンマッチングを使用せずに脆弱性攻撃型ウイルスの検出を可能にすることを目的とし、APIの呼び出し履歴をたどり、呼び出し元をチェックすることでウイルスの検出を行うという手法を用いている。
この手法のアイデア自体は、脆弱性攻撃型ウイルスの脅威が認識されるずっと以前、yaraiの開発前の時点からすでにFFR内にあったもので、yaraiに実装するエンジンのうちでも早い段階で採用することが決まっていた。
すべての実行ファイルを守るために
近年のOSには、ハードウェアDEP(Data Execute Prevention)に代表されるように、脆弱性攻撃型ウイルスを検知するための仕組みがすでに実装されている。DEPとは、ハードウェアの支援を利用して、実行命令が格納されているメモリ上の保護属性をチェックすることで、実行許可されていないメモリ上の命令を実行できないようにする機能である。
【関連記事】 Windows XP SP2で採用されたDEPの仕組み http://www.atmarkit.co.jp/fsys/kaisetsu/045dep/dep.html |
この説明だけを見ると、ハードウェアDEPが実装されていればZDPエンジンは必要ないのではないかと感じるだろう。しかし、ハードウェアDEPには誤検出の問題があり、すべての実行ファイルに対して機能を有効化できないという問題があった。
そこでZDPエンジンでは、すべての実行ファイルに対して機能を有効化し、かつ誤検出を発生させないことを目的とし、ソフトウェアとしての実装に向けリサーチを行うこととなった。
ハードウェアDEPは、実行されている命令について、格納されているメモリ上の保護属性しか知ることができない。ハードウェアDEPの誤検出の問題は、そこにあるのではと私たちは考えた。
リサーチを行ったところ、実行命令の格納されているメモリ上の保護属性のみチェックした場合、ZDPエンジンでも誤検出が発生してしまうことが確認できていた。誤検出防止に必要な情報を取得するため、大量の実行形式ファイルの命令コードの特徴のリサーチを行った。
ZDPエンジンでは、実行命令の格納されているメモリ上の保護属性以外のさまざまな情報も取得し、これらの情報を用いてチェックを行うこととなった。その結果、ZDPエンジンでは脆弱性攻撃を検出するために必要十分なチェックのみを行うことで、誤検出を発生させずに、脆弱性攻撃を検出することを実現した。
1/2 |
Index | |
この脆弱性対策エンジンは“永遠に完成しない” | |
Page1 ZDPエンジン:パターンファイルに頼らず防御する「要の技術」 すべての実行ファイルを守るために |
|
Page2 他のセキュリティ機能との差別化 ZDPエンジンの今後 |
セキュリティを形にする日本のエンジニアたち 連載インデックス |
- Windows起動前後にデバイスを守る工夫、ルートキットを防ぐ (2017/7/24)
Windows 10が備える多彩なセキュリティ対策機能を丸ごと理解するには、5つのスタックに分けて順に押さえていくことが早道だ。連載第1回は、Windows起動前の「デバイスの保護」とHyper-Vを用いたセキュリティ構成について紹介する。 - WannaCryがホンダやマクドにも。中学3年生が作ったランサムウェアの正体も話題に (2017/7/11)
2017年6月のセキュリティクラスタでは、「WannaCry」の残り火にやられたホンダや亜種に感染したマクドナルドに注目が集まった他、ランサムウェアを作成して配布した中学3年生、ランサムウェアに降伏してしまった韓国のホスティング企業など、5月に引き続きランサムウェアの話題が席巻していました。 - Recruit-CSIRTがマルウェアの「培養」用に内製した動的解析環境、その目的と工夫とは (2017/7/10)
代表的なマルウェア解析方法を紹介し、自社のみに影響があるマルウェアを「培養」するために構築した動的解析環境について解説する - 侵入されることを前提に考える――内部対策はログ管理から (2017/7/5)
人員リソースや予算の限られた中堅・中小企業にとって、大企業で導入されがちな、過剰に高機能で管理負荷の高いセキュリティ対策を施すのは現実的ではない。本連載では、中堅・中小企業が目指すべきセキュリティ対策の“現実解“を、特に標的型攻撃(APT:Advanced Persistent Threat)対策の観点から考える。
|
|