Cisco Japan Blog

DNS を利用したデータ盗難の検出

1 min read



このブログは、Warren Mercerpopup_icon の協力のもとに Martin Leepopup_icon Jaeson Schultzpopup_icon によって執筆されました。

最近、DNS 要求をコマンド アンド コントロール チャネルとして使用する Wekby と POS マルウェアが発見されましたが、これにより、「DNS は潜在的に悪意のあるチャネルとみなす必要がある」ということが明らかになりました。熟練したアナリストであれば、自組織の正常な DNS アクティビティに慣れ親しんでいるため、異常なアクティビティをすばやく見つけ出すことができるかもしれませんが、DNS ログを手動で確認するのは、単調で時間のかかる作業です。しかし、悪意のある DNS トラフィックがどのようなものであるかが分かっていない状況で、悪意のある DNS 要求を特定するにはどうすればよいのでしょうか。

私たちは皆、意識下においてメンタル モデルを持っています。これが私たちの環境認識を形作り、「異常」の特定に役立っています。身の回りで、普通ではないことや、異常なことが起こると、好奇心を刺激され、何が起こっているのかを確かめたくなります。私たち自身が、「正常」と考える状況と、実際に起こっている状況とを比較し、両者が一致しない場合は、その理由を知りたくなるのです。DNS ログにも同じことが当てはまります。もし、「正常性」のベースラインまたはモデルを作成することができれば、それを観察結果と比較して、実際に起こっていることが期待とかけ離れていることを知ることができます。

私たちは、たとえば、「www.cisco.com」の IP アドレスを要求する DNS 要求などには慣れ親しんでいます。すると、調査を必要とするほど異常な要求とはどのようなものなのでしょうか。マルウェアは盗んだデータを、DNS ルックアップのサブドメイン部分として暗号化することができます。この DNS ルックアップは、ネームサーバが攻撃者の制御下にあるドメインに対するものです。たとえば、「long-string-of-exfiltrated-data.example.com」の DNS ルックアップは、example.com のネームサーバに転送されます。ここで、「long-string-of-exfiltrated-data」を記録し、暗号化した応答をマルウェアに返します。

一般に、このような要求のサブドメイン部分は、通常の要求よりもかなり長くなるものと考えられます。そこで、DNS 要求におけるサブドメイン部分の長さの割合を利用して、正常かどうかを識別するための数学的モデルを作成すれば、これを実際の観察結果と比較して異常を検知することが可能になります。

サンプルの DNS 要求からドメイン名と拡張子を削除して、サブドメイン長の発生頻度をグラフにすると以下のようになります:

DNS_graphs-01

オレンジの線は、1 ~ 65 文字までのサブドメイン長の分布を示しています。明らかに完全には一致しませんが、この分布は、黄色で示されたなめらかな指数曲線にほぼ一致します。この指数曲線を正常性のモデルとして使用し、観察内容と比較すれば異常を検出することができます。

グラフを見ると、3 文字長のサブドメインが、予想よりもはるかに多いことがわかります。これは、
サブドメインに一般に使用される文字列である「www」の文字長です。このような観察結果が、
予想よりもどれだけ多く出現するかを測定するために、観察値をさきほどの曲線から得られる予
測値で割れば、観察結果の異常性を示すメトリックを計算できます。

すべての長さの値に対してこの計算を行ってプロットすると、各サブドメイン長について、現実の値が予測される値とどれくらいかけ離れているかを示すグラフが得られます:

DNS_graphs-02

明らかに、一部のサブドメイン長の出現頻度が予想よりもはるかに高くなっています。実際のところ一部の値は、予想との差異があまりにも大きいため、1000 単位で切りつめないと表示できません。

こうした異常な値に着目すれば、一連のログを手動で確認する手間を減らすことができます。これらの文字数の多いサブドメインは、正規のクラウドサービスや、コンテンツ配信ネットワークのものであることがわかっています。ただし、サブドメイン長が 231 文字と 233 文字のドメインの一部は、大いに興味を引きます。

log.nu6timjqgq4dimbuhe.3ikfsb---redacted---cg3.7s3bnxqmavqy7sec.dojfgj.com

log.nu6timjqgq4dimbuhe.otlz5y---redacted---ivc.v55pgwcschs3cbee.dojfgj.com

lll.nu6toobygq3dsnjrgm.snksjg---redacted---dth.ejitjtk4g4lwvbos.amouc.com

lll.nu6timrshe4timrxhe4a.7vmq---redacted---hit.w6nwon3hnifbe4hy.amouc.com

ooo.nu6tcnbug4ytkobxhe4q.zrk2---redacted---hxw.tdl2jg64pl5roeek.beevish.com

ooo.nu6tgnzvgm2tmmbzgq4a.rkgo---redacted---tw5.5z5i6fjnugmxfowy.beevish.com

 

各ドメインのネームサーバは異なるネットワークでホストされているのもかかわらず、これらのドメインに共通する不自然な特徴があります。各ドメインには数百のサブドメインがありますが、各サブドメインは、たった 1 度しかアクセスされていません。また、必ずしも不自然とは言えませんが、各 DNS ルックアップでは、「192.168.0.1」が返されています。

Dojfgj.com は、既知の悪意あるドメインで、マルウェアの Multigrain がこのドメインを利用してクレジット カード情報を盗み出していました。3 つのドメイン間の明らかな類似性が示しているのは、これまでは知られていなかった amouc.combeevish.com ドメインが、dojfgj.com のドメインに関係していることです。

Multigrain マルウェアは、Base 32 エンコーディングを使用して、感染したマシンからデータを盗み出します。一般的に知られた Base 64 エンコーディンよりもスペース効率に劣る Base 32 エンコーディングでは、a ~ z のアルファベットと 2 ~ 7 の数字が使用されます。数字の「0」と「1」は、文字「O」と「I」と似ているために使用されません。Base 32 には、DNS ルックアップで使用できない文字が存在せず、さらに、大文字化が不要であるというメリットがあります。

Multigrain の DNS 要求の大部分は暗号化されていますが、感染したマシンを示す最初の暗号化部分は判読可能です。たとえば、以下においては、nu6t で始まるセクションです。

ooo.nu6tgnzvgm2tmmbzgq4a.rkgo---redacted---
tw5.5z5i6fjnugmxfowy.beevish.com

 

デコード:m=3753560948

ドメイン名の長さやサブドメイン数などの DNS 要求のあらゆる特徴は、観察値と比較するための予測値のモデル作成に利用できます。これにより、以下のようなパターンが類似したドメインを特定できます:

4-9-8-2-2-3-8-5-4-6-2-9-2-3-8-8---redacted---
7-.0-0-0-0-0-0-0-0-0-0-0-0-0-49-0-0-0-0-0-0-0-0-0-0-0-0-0.info

5-2-4-6-3-2-2-7-4-8-3-6-7-1-2-3---redacted---
0-.0-0-0-0-0-0-0-0-0-0-0-0-0-49-0-0-0-0-0-0-0-0-0-0-0-0-0.info

6-t-y-s-8-l-l-p-6-6-x-q-2-l-2-9-x-7---redacted---
a-.0-0-0-0-0-0-0-0-0-0-0-0-0-45-0-0-0-0-0-0-0-0-0-0-0-0-0.info

7-8-5-4-1-2-7-2-7-8-4-5-1-5-0-7---redacted---
0-.0-0-0-0-0-0-0-0-0-0-0-0-0-28-0-0-0-0-0-0-0-0-0-0-0-0-0.info

 

これらは、W32/AutoRun ワームに関連していることがわかっています。さらに興味深いのが以下です。

77newyourcomputerhaveaseriousproblemcallon18883142770tollfree.you
rcomputerhaveaseriousproblempleasecallon18883142770tollfree.yourc
omputerhaveaseriousproblempleasecallon18883142770.windows-has-
detected-some-suspicious-activity-fromyourcomputer.com

 

これは、フィッシング詐欺に関係しています。
ログの監視、その中でも DNS ログの監視は、攻撃者の特定手法として大変有効です。一つずつ確認することができないほどの大量なデータがある場合、データをモデル化する簡単なテクニックによって、詳細な調査を必要とするデータを割り出すことができます。そして、こうした詳細な調査が、防御の堅いネットワークと感染されるネットワークとの差となって現れることが多いのです。

本稿は 2016年6月29日に Talos Grouppopup_icon のブログに投稿された「Detecting DNS Data Exfiltrationpopup_icon」の抄訳です。

コメントを書く