FFRIエンジニアブログ

株式会社FFRIセキュリティのエンジニアが執筆する技術者向けブログです

標的型攻撃で使われるトンネリング技術

はじめに

セキュリティサービス本部 セキュリティエンジニアの都築です。本ブログでは、標的型攻撃とその対策に興味がある方向けに、標的型攻撃の防御対策をかいくぐるような、以下の3つの通信手法(トンネリング技術)について説明します。

  • HTTP(S)
  • ICMP トンネリング
  • DNS トンネリング

上記の通信手法は、FFRIセキュリティのサービス「先端技術領域セキュリティ診断」の「データ窃取疑似攻撃」でも実施されるものです。サービスの詳細についてはこちらを参照ください。

通信手法1:HTTP(S)

多くのマルウェアは C&C サーバとの通信に HTTP(S) を使用します。

HTTP(S)が使用される理由

HTTP(S) は日常業務の Web サイトの閲覧で使用するため、以下の二点が攻撃者のメリットになります。

  • プロトコルがファイアウォールなどで制限されていない。
  • 日常業務の膨大な通信の中に紛れ込める。

通信の流れ

マルウェアから C&C サーバに直接 HTTP(S) 通信するケースと、自社プロキシを経由するケースが考えられます。図は、自社プロキシを経由するケースです。 ファイアウォールによる送信先制限をかいくぐるために、情報窃取先として C&C サーバの代わりに Dropbox などのクラウドサービスを使用するケースもあります。

図 1 HTTP(S)によるトンネリング技術

  1. 被害者 PC からプロキシサーバに HTTP(S) リクエスト送付。
  2. プロキシサーバから C&C サーバに HTTP(S) リクエスト送付。 ※窃取情報を Dropbox などのクラウドサービスに送付することもあります。
  3. C&C サーバからプロキシサーバに HTTP(S) レスポンス送付。
  4. プロキシサーバから被害者 PC に HTTP(S) レスポンス送付。

1、2 により窃取情報の送付、コマンド実行結果の送付などを行います。3、4 により、マルウェアのダウンロード、コマンド送付などを行います。 情報格納場所として一般的に利用される HTTP ボディでなく、HTTP ヘッダを利用するケースもあります。

HTTP(S) を使用するマルウェアの例

TSCookie

情報格納場所として、HTTP ボディだけではなく HTTP ヘッダの Cookie も利用します。TSCookie は 2018 年 1 月に日本で文部科学省に偽装したメールにより配布されました[1]。

Crutch

窃取情報の格納先として Dropbox を利用します。Crutch はサイバー攻撃集団 Turla により、2015 年から 2020 年初頭まで、EU 加盟国の外務省への攻撃に使用されていたことが確認されています[2]。

ICMPトンネリング

C&C サーバとの通信に、ICMP トンネリングを使用するマルウェアも存在します。

ICMPトンネリングが使用される理由

ICMP は、疎通確認などに使用する ping コマンドでも使用されるため、以下の三点が攻撃者のメリットになります。

  • プロトコルがファイアウォールなどで制限されていない。
  • 日常業務の膨大な通信の中に紛れ込める。
  • HTTP(S) に比べて防御対策が不十分である。

通信の流れ

図 2 ICMPによるトンネリング技術

  1. 被害者 PC から C&C サーバに、データを ICMP のデータ部分に格納した上で、ICMP エコー要求を送付。
  2. C&C サーバから被害者 PC に、データを ICMP のデータ部分に格納した上で、ICMP エコー応答を送付。

1 により窃取情報の送付、コマンド実行結果の送付などを行います。2 により、マルウェアのダウンロード、コマンド送付などを行います。

ICMPトンネリングを使用するマルウェアの例

Pingback

Pingback は、ICMP は速度やフロー制御の面で劣ることを考慮し、TCP 通信も使用しています[3]。

DNSトンネリング

C&C サーバとの通信に、DNS トンネリングを使用するマルウェアも存在します。

DNSトンネリングが使用される理由

DNS は日常業務の Web サイトの閲覧などで使用するため、以下の三点が攻撃者のメリットになります。

  • プロトコルがファイアウォールなどで制限されていない。
  • 日常業務の膨大な通信の中に紛れ込める。
  • HTTP(S) に比べて防御対策が不十分である。

通信の流れ

C&C サーバは DNS サーバとして動作します。自社 DNS キャッシュサーバを使用している環境の図を以下に示しますが、各環境に合わせてプロバイダの DNS キャッシュサーバなどに読み替えてください。

図 3 DNSによるトンネリング技術

  1. 被害者 PC から自社 DNS キャッシュサーバに C&C サーバの TXT レコードを問合せ。 以下のように FQDN にメッセージを格納した問い合わせが行われます。

    {暗号化されたメッセージ}.{ドメイン}

    例)ドメインが aaa.bbb.co.jp のときは、以下のようになります。

    BF44YwphAt__-I2yhAl1bo21y-FTSlpax.aaa.bbb.co.jp

    FQDN のラベル(ピリオド「.」で区切られた部分)の最大文字数は 63 文字、FQDN 全体の最大文字数は 253 文字の制限があります。メッセージが長く、1つの問合せで送信できない場合は、メッセージを分割し複数回の問合せにより送信します。

  2. 自社 DNS キャッシュサーバから C&C サーバに TXT レコードを問合せ *1
  3. C&C サーバから自社 DNS キャッシュサーバに TXT レコードを回答。
  4. 自社 DNS キャッシュサーバから被害者 PC に C&C サーバの TXT レコードを回答。

1、2 により窃取情報の送付、コマンド実行結果の送付などを行います。3、4 により、マルウェアのダウンロード、コマンド送付などを行います。

DNSトンネリングを使用するマルウェアの例

DNSMessenger

PowerShell を使用して C&C サーバと DNS トンネリングを使用して通信します。DNSMessenger は 2017 年 3 月に、米国証券取引委員会(SEC)から送信されたように偽装したスピアフィッシングメールにより配布されました[4]。

おわりに

FFRIセキュリティでは、本記事で解説した技術を使用した疑似攻撃による診断サービスや、マルウェアの解析、脅威分析などを行っています。採用に関してはこちらを御覧ください。

参考文献

  1. プラグインをダウンロードして実行するマルウエアTSCookie(2018-03-01)
  2. Turla Crutch: Keeping the “back door” open
  3. Pingback: Backdoor At The End Of The ICMP Tunnel
  4. Hackers Used Government Servers in DNSMessenger Attacks

*1:図では省略していますが、②の前にドメインの後ろから順番に該当ドメインを管理する DNS サーバに問合せし、C&C サーバの IP アドレスを取得する手順があります。
例)
C&Cサーバ(DNSサーバ)の管理するドメインが、aaa.bbb.co.jpである場合に、
ルートのDNSサーバ → jpを管理するDNSサーバ → co.jpを管理するDNSサーバ → bbb.co.jpを管理する
DNSサーバに順番に問い合わせを行い、aaa.bbb.co.jpのIPアドレスを取得する。