今回は、フリーツールで未知のマルウエアを見つけ出す方法を紹介する。
インターネットでは、マルウエアの検出に使えるツールが無料で公開されている。それらを使えば、一般的なウイルス対策製品では検出できないようなマルウエアも検出できる場合がある。
また、複数のツールを組み合わせれば、パッキング▼されたマルウエアを比較的容易にアンパッキング▼することもできる。その方法についても併せて解説する。
シグネチャーを使わずに検知
まずは「HollowsHunter▼」というフリーツールを紹介する。マルウエアを検出するためのツールで、「pe-sieve▼」というツールを内包している。HollowsHunterのエンジンとして使用されているpe-sieveは非常に有用なツールであり、筆者も微力ながら開発者へのバグ報告などで改良に協力している。pe-sieveは単独でも使用できる。使い方は後述する。
HollowsHunterはコマンドプロンプトから実行する。実行すると、OS上で動作しているすべてのプロセスをスキャンする(図1(1))。「/imp」や「/dmode」などの引数をオプションとして指定すると、マルウエアとして検出したプロセスを、解析しやすい状態でメモリーから抽出(ダンプ)してくれる。
これら以外にも多数のオプションを用意している。例えば「/loop」を指定すると、すべてのプロセスを繰り返しスキャンし続ける。
今回の検証では、世界中で猛威を振るった5種類のマルウエア「IcedID」「TrickBot」「Zloader」「Emotet」「Qakbot(QBOT)」に感染した端末を用意した。HollowsHunterでスキャンした結果、20秒弱ですべてのマルウエアのプロセスを検出できた(同(2))。HollowsHunterは一般のウイルス対策製品とは異なり、シグネチャーを使わない。つまり、従来製品では検出できない未知のマルウエアを見つけ出せる可能性がある。また独立したプロセスだけでなく、不正コードをインジェクション(注入)された正規プロセスも検出することができる(同(3))。