2009/11/26閉鎖空間でウイルスの挙動を見る「サンドボックス」。2009(以下:yarai)の誕生にまつわるエピソードをお話したが、今回はこのソフト開発の技術面についてお話したい。2009」が管理機能を強化http://www.atmarkit.co.jp/news/200911/12/yarai.htmlyaraiの開発コンセプトは、「ヒューリスティック」と呼ばれる、ウイルスの振る舞いに着目した検出技術である。これは前回お話した通り、既存のウイルス対策ソフトが得意とする既知のウイルス検出技術(=パターンマッチング)では、未知ウイルスがすり抜けてしまうことにより、情報システム被害が発生してしまう。そのため、ウイルス対策ソフトと補完関係になるような製品が必ず必要になる、という考えからきている。フォティーンフォティ技術研究所(以下:FFR)の主柱業務の1つである研究部門において、さまざまなウイルスの解析を行い、FFR内にウイルスの振る舞いに関するノウハウが蓄積されている。このため、ヒューリスティックによる検出技術で商用製品レベルに達する製品開発ができるという自負もあった。現在、yaraiが持っている4つのエンジンのうち、脆弱性対策エンジン、static分析エンジン、HIPSエンジンについては早い段階からリサーチを開始した。さまざまなセキュリティ製品をリサーチしていく過程で、既存製品は感染後の対策機能について重視していないように思われたため、ウイルスを完全駆除する機能(ヒストリカル・レメディエーション)もyaraiに加えることにした。当機能では、自身は攻撃性を持っていないが、次々にウイルスを呼び込みシステムへ実害を与えるような「ダウンローダ型」と呼ばれるウイルスでも、ウイルスの来歴をたどり、関連するウイルスの一斉駆除を実現している。そんな中、実装するかどうかについて議論になったのがサンドボックスエンジンである。理想の砂場作りとスケジュールのせめぎ合いサンドボックスというのは既存の技術であるが、非常に複雑で、開発工数を計算するとスケジュール内の完了が困難であると思われたため、ひとまずリサーチのみ行い、さまざまなサンドボックスの実装方法を調査することとなった。サンドボックスとはある種の仮想化で、パソコン内で仮想的な閉鎖空間を作り、検査対象のプログラムを実行、その挙動を見ることでウイルスかどうか判別する手法である。実行によりウイルスに感染したとしても、仮想的な閉鎖空間なので実害はまったく出ない。この仮想的な閉鎖空間の作り方にはいくつか手法があり、yaraiに実装すると考えた場合、どの手法が最適かについて調査することがサンドボックスエンジンのリサーチにおける最初の目的となった(このリサーチは、私自身が担当することになった)。VMwareのようなCPUの機能を使った手法では、OSのライセンスが別途必要になるためコスト的にペイしそうにない。そこで、Bochsのような「フルCPUエミュレーション」か、「ユーザーランドはそのままプログラムを実行しカーネル内で仮想化を実装」する2つの手法が有力候補になった。後者は、ファイルやネットワークといったデバイスへアクセスする部分をフックし、それぞれ仮想的なファイルやネットワークへのアクセスに置き換える手法である。この手法では、ユーザーランド内はネイティブで動作するため、高速であることが大きなメリットであり、実際にこの手法を用いた商用製品もある。Table(SSDT)をフックするといったマイクロソフト非公認の技術を使う必要がある。これは、Windowsの将来のバージョンでサンドボックスが動作しない、もしくは新バージョンのサポートが非常に困難になる可能性があることを意味している。このフックは実装が難しく、バグが出るとWindows自体が停止してしまう致命的なものになる可能性が高い。フック漏れがあると、容易に悪用できる脆弱性に直結してしまう。商用製品としてはリスキーな方法で、とても実現できそうになかった。前者のフルCPUエミュレーションは、CPUをソフトウェア的に実装、仮想的なWindowsを再実装し、その内部で検査対象プログラムを実行するというものだ。技術的には難しいが、実装上の大きな問題はなかった。メリットとして、CPU命令を1つ1つチェックできるという点があり、ウイルス対策に向いているように思われた。デメリットとして動作が遅いということが挙げられる。仮想的なWindowsを再実装するという途方もない作業が必要となる。Windowsの再実装とは、Windowsがサポートする膨大な数のAPIをサンドボックス用に書き起こすという作業を意味している。サンドボックス用なので厳密な意味での再実装ではないが、それでもかなり大変な作業になるはずだった。10が備える多彩なセキュリティ対策機能を丸ごと理解するには、5つのスタックに分けて順に押さえていくことが早道だ。連載第1回は、Windows起動前の「デバイスの保護」とHyper-Vを用いたセキュリティ構成について紹介する。WannaCryがホンダやマクドにも。(2017/7/11)2017年6月のセキュリティクラスタでは、「WannaCry」の残り火にやられたホンダや亜種に感染したマクドナルドに注目が集まった他、ランサムウェアを作成して配布した中学3年生、ランサムウェアに降伏してしまった韓国のホスティング企業など、5月に引き続きランサムウェアの話題が席巻していました。(2017/7/5)人員リソースや予算の限られた中堅・中小企業にとって、大企業で導入されがちな、過剰に高機能で管理負荷の高いセキュリティ対策を施すのは現実的ではない。Threat)対策の観点から考える。