マカフィーは2月1日、セキュリティブログにおいて、最新のRovnixダウンローダーにコントロールサーバーのシンクホールのチェック機能が搭載されていると明かした。これにより、ふるまい検知システムを利用したマルウェアの検知が難しくなるという。
Rovnixは、VBR(IBM PC互換機で導入されたブートセクタ)やNTLDR (Windows NT系の標準ブートローダ)に感染するマルウェアで、2011年から確認されている。端末が感染した場合は、ブラウザに保存されていた銀行情報を盗まれたり、さまざまなパスワードを盗まれたりする恐れがある。
シンクホールは、マルウェアによるコントロールサーバへのDNSリクエストを偽造アドレスによって防ぐセキュリティ対策の手法。トロイの木馬、ボットネット、ランサムウェアなどの攻撃をブロックできる。具体的には、以下のような防御機能を搭載する。
- 標的のシステム上で実行するコマンドをダウンロード
- 標的のシステム上で実行する新しいモジュールやマルウェアをダウンロード
- 標的のシステムから盗んだデータを外部へ持ち出し
- 自身のステータスをコントロールサーバへ提供
- システム統計値(システムのタイプ、マルウェア対策のインストール状況など)をコントロールサーバへ送信
- コントロールサーバから暗号化キーをダウンロード。これによって、標的とするファイルの暗号化を防止
新たに見つかったRovnixは、シンクホールを検知する機能を搭載する。これにより、コントロールサーバがシンクホールされていた場合、発見されるのを回避するために悪意のあるコードを実行せずに潜伏する。また、攻撃実行の適切なタイミングを測るためのチェック機能も搭載する。
ブログでは、Rovnixがシンクホールを回避する際の具体的な挙動を解説している。まずRovnixは、これから侵入を試みるコントロールサーバのDNSネームサーバレコードを入手(フェッチ)する。
次に、入手したネームサーバの値を、コントロールサーバのDNSネームサーバレコードがシンクホールされたことを示すキーワードのリストと照合し、特定のキーワードが含まれているかどうかをチェックする。キーワードは、control、sink、hole、dynadot、block、trojan、abuse、virus、malw、hack、black、spam、anti、googlがある。
チェックによってDNSネームサーバに問題がないと判明した場合、Rovnixは情報を盗み出すための準備をするため、モジュールをダウンロードする。この時、リストの最初のドメインにコンタクトを試みて、最初のサーバにコンタクトできない場合は、次々と別のモジュールへコンタクトを実行する。ドメインのリストには次のようなものがある。
- transliteraturniefabriki.com:通信と追加のプラグインのダウンロードのための最初のコントロールサーバ
- tornishineynarkkek2.org:バックアップ用のサーバ
- upmisterfliremsnk.net:バックアップ用のサーバ
- itnhi4vg6cktylw2.onion:他のコントロールサーバにアクセスできない場合、onionアドレスで接続を確立するためのサーバ
時間チェック機能は、標準のNetwork Time Protocol(NTP)サーバを使用して時刻をチェックし、攻撃を実行するかを判断する。このチェックによって、コントロールサーバから受信した時刻と公開タイムサーバから受信した時刻を比較し、経過時間が特定のしきい値を超えた場合は、スリープ状態で一定の時間を過ごしてからもう一度時刻をチェックする。
マカフィーは、公開NTPサーバを使用した時刻チェックは比較的新しい機能であり、多くの動的なマルウェア検知システムで使用されているローカルシステムの時刻の偽装に対抗するものだと説明している。