仮想マシン回避は、マルウェアが仮想マシン(Virtual Machine、VM)環境で実行されていることを検出し、分析や検出を回避するために実行を中断または正常な挙動を装う手法です。仮想マシンは、マルウェア分析やサンドボックス環境で使用されることが多いため、攻撃者はこれを認識すると、本来の悪意のあるコードを発動しないよう設計することで、検出されにくくしています。
仮想マシン回避技術は、主に仮想化環境の特徴を利用したチェックやシステムリソースの違いを検出し、環境が実機か仮想マシンかを識別する方法として使用されます。攻撃者は、このような手法を使ってサンドボックスや仮想環境での検出から逃れ、実際のシステム上でのみ本来の動作をするようにすることで、セキュリティ対策を回避しようとします。
仮想マシン回避の手法
- 特定のハードウェア情報の確認
仮想マシンは、特定のハードウェア構成やドライバを使用しているため、マルウェアがこれらをチェックすることで実環境と仮想環境の違いを検出します。たとえば、仮想マシン独自のドライバや、CPUの仮想化機能の確認によって、仮想マシン上で実行されていることを検出します。 - 特定のプロセスやファイルの確認
VMwareやVirtualBoxなどの仮想化ソフトウェアがインストールされると、特定のプロセスやファイルが生成されます。マルウェアはこれらのプロセス(例:vmtoolsd.exe
)やファイルの存在をチェックし、仮想マシンであるかどうかを判断します。 - BIOSやシステム情報のチェック
仮想マシンはBIOS情報やシステム設定に仮想環境に固有の情報が含まれることが多いため、マルウェアがBIOSのメーカーやシリアル番号などの情報を確認することで、仮想マシンであるかを特定します。たとえば、BIOSベンダー名に「VMware」や「VirtualBox」などが含まれている場合、仮想環境と判断します。 - メモリやディスク容量の確認
仮想マシンはメモリ容量やディスク容量が制限されていることが多いため、これらのリソースが低い場合は仮想環境と判断するケースもあります。仮想環境では一般的に少ないメモリやストレージの割り当てがされるため、特定の容量以下の場合に仮想環境と見なすことがあります。 - 遅延を使ったタイミング攻撃
実機と仮想環境では、同じ処理でも実行速度が異なることが多いため、マルウェアが意図的に時間のかかる処理を実行し、その結果に基づいて仮想環境かどうかを判別する手法です。具体的には、タイミングの測定や、複雑な計算を実行した結果をもとに、仮想環境での遅延がある場合にその環境を検出します。
仮想マシン回避が行われる理由
- マルウェア分析からの回避
仮想マシンやサンドボックス環境は、マルウェアの解析や動作検証に利用されるため、これらの環境での実行を回避することで、マルウェアがセキュリティ研究者やシステム管理者に検出されるリスクを低減できます。 - サンドボックス対策
サンドボックス環境は、マルウェアの挙動を観察して検出するために利用されますが、仮想マシンで構築されることが多いです。仮想環境での実行を避け、サンドボックス環境では悪意ある挙動を見せないことで、検出を回避します。 - 特定ターゲットへの攻撃
攻撃者は、特定の企業やシステムを狙った標的型攻撃において、仮想環境を避けて実際のターゲットのみに影響を及ぼすようにする場合があります。実機でのみ活動することで、セキュリティ対策を潜り抜け、ターゲットに直接攻撃を仕掛けます。
仮想マシン回避に対する対策
- 仮想環境の隠蔽
仮想環境であることをマルウェアに検出されないように、仮想マシンの設定を調整し、実環境と区別がつかないようにします。たとえば、仮想マシンのBIOS情報やシステム情報をカスタマイズし、物理環境に近い設定にすることで回避を困難にします。 - 観察対象の環境を多様化
マルウェアが特定の仮想環境のみを避けるケースがあるため、異なる仮想化ソフトウェアや実機で複数の環境を用意し、マルウェアの動作が観察しやすくします。多様なサンドボックス環境でテストすることで、仮想環境での挙動が確認できる可能性が高まります。 - 振る舞い検知の導入
マルウェアの仮想環境検出に関係なく、異常な振る舞い(例えばファイルの無断変更、ネットワーク接続の試行など)を監視し、これに基づいて攻撃を検出することが有効です。エンドポイントでの振る舞い検知ツールは、仮想マシンを識別して挙動を変えるマルウェアにも対応しやすくなります。 - 遅延対策
タイミング攻撃を避けるために、意図的にタイミングを調整し、処理遅延を抑える設定やツールを利用します。仮想環境での遅延が発生しないように最適化することで、仮想マシンの検出を難しくします。
まとめ
仮想マシン回避は、マルウェアが検出されないようにするための重要な手法であり、特にサンドボックスや分析環境での検出を避けるために多くのマルウェアが活用しています。攻撃者が仮想環境を認識し、実機でのみ悪意ある挙動を実行することで、検出率を下げることを目指しています。
仮想マシン回避への対策としては、仮想環境の設定を実機に似せる工夫や、振る舞い検知を活用した監視が有効です。これらの対策によって、仮想マシン回避技術を用いるマルウェアの検出率を上げ、セキュリティを強化することが可能です。