Network Indicators of C2 / C2の兆候を発見するためのCheat Sheet

端末に感染したマルウェアは、C2サーバ(C&Cサーバ)に接続し、様々な遠隔操作を受けながら、ほとんどの場合、追加で別のマルウェアやツールをダウンロードします。そして組織内LANへの侵入を拡大しながら、入手したい機密情報を探索し、最終的に攻撃者のサーバへ機密情報をアップロード(Data Exfiltration)します。

このようにマルウェアは、C2のフェーズ、機密情報のアップロードのフェーズにおいて、必ず外部サーバと通信するわけですが、これらは通常の業務通信に紛れて身を隠そうとするものの、実際は、一般業務通信と異なる様々な兆候を示す場合が多いです。悪意ある脅威を発見するための兆候や攻撃痕跡を定義したもの を、よくIOC(Indicator of Compromise)と呼びますが、Indicatorの中にも、マルウェアに感染したホストのファイルシステムやレジストリの痕跡や兆候を定義した Host Indicatorや、C2のような悪意ある通信を発見するためのNetwork Indicatorなど、色々な観点のIndicatorが存在します。ここでは、C2に絞ったIndicatorに話題を絞り、内容を記載します。

C2のIndicatorとしては、例えば、

  • 通信先のIPアドレスの所在国が珍しい。
  • 通信先のドメインが数日前に登録されたばかり。
  • DNSの名前解決の失敗が多い。(No such name)

といったものがあります。つい先日、私が対応した事案では、C2サーバの所在国はラトビアで、通信先のドメインが登録されたのはインシデントを発見する数日前でした(Whoisで確認)。通信先のC2サーバのドメインは複数あることが確認されたのですが、そのうちのいくつかは既にドメイン登録が抹消されており、名前解決ができない状態でした。攻撃者がC2サーバ用に登録するドメインは短期間で使い捨てしたりする場合があるので、名前解決に失敗することが多くあります。上記3つの例は、1つのIndicatorだけが合致しても、C2と特定するには弱すぎるシグナルです。しかし、一つの端末で上記3つのIndicatorが全て合致したら、C2のような悪意ある外部通信である可能性が高いと感じるのではないでしょうか?従来、C2を検知するためには、既知のC2サーバリストを持ったURLフィルターが使われてきました。しかし、未知のC2サーバ、つまりベンダーが配布するブラックリストに載っていない新鮮なC2サーバが使われた場合、効果がありません。そこで、上記例に示したような弱いシグナルを上手にIndicatorとして拾っていきながら、監視(発見的な対策)やネットワーク・フォレンジックに活かすことができます。

ここに、弊社が対応した事案で得られた経験などを元に、C2を発見するためのIndicatorをCheat Sheetとして、まとめました。これらのIndicatorの一部は、SplunkやSIEMに実装することで、監視に活かすことができます。また、ネットワーク・フォレンジックにおいて、プロキシサーバのログ、パケットキャプチャデータなどから、脅威の痕跡を発見する際にも役立つ観点かと思います。新しいIndicatorがあれば、不定期にアップデートしていきたいと思います。

前へ

PEヘッダでパッカーの有無を見分ける方法

次へ

@ITに掲載「合法マルウェアで実感「リアルとサンドボックスの違い」