元バンドマンITエンジニアの語り場

技術とか趣味とか日々の至福と鬱憤とか

【Security】検知されにくい不正通信

コンピューターがマルウェアに感染した場合、攻撃者が用意した外部のC2サーバーに対して不正通信を行うことで組織内の情報が外部に流出する。 一般的に、組織内からインターネットへのアウトバウンド通信ではファイアウォールで細かに制御することが難しく、IPはAnyでプロトコルをHTTP/Sとすることが多い。 (利用者は不特定多数のWebサイトを閲覧するし、近年はSaaS利用も急増しているため)

とはいえ、すでにブラックリスト化されているC2サーバーの場合は、ファイアウォールドメインやIPレベルで遮断することは可能であり、または名前解決の段階で悪意あるサーバーへのDNSクエリを遮断するようなセキュリティアプライアンスもある。(CiscoのumbrellaやAWSDNSファイアウォール等)

広く知れ渡っているC2サーバーへの不正通信であれば上記の方法で遮断可能だが、 中には正規のWebサービスを悪用することで検知をすり抜けるタイプのマルウェアも存在する。 正規のWebサービスとはブログサービスやSNS、一般企業のサイト、GmailAWSのようなクラウド等である。

今回は、マルウェアがどのようにして正規のWebサービスを悪用しているのか、代表的な手法をいくつか整理してみる。

1.ブログに命令を紛れ込ませる

まずはブログサービスを悪用したものから。
攻撃者はまず一般的なブログサービスでアカウントを取得し適当なブログをいくつか投稿することでただのブログを装う。 マルウェアに指令を送る時は、ブログ記事の本文にマルウェアへの命令を書き込む。 攻撃とは関係のない文章に悪意ある命令を紛れ込ませるので一見しただけではマルウェアへの命令だとわからない。 マルウェアにはこのブログを定期的にみに行くように事前にプログラムされており、記事本文に仕込まれた命令を見つけるとその命令を実行する。

2.HTMLのタグを悪用する

次は一般企業のWebページを改ざんする手法。
攻撃者はWebサーバーの脆弱性等を利用してWebページを構成するHTMLファイルを改ざんする。 具体的にはマルウェアへの命令をHTMLのタグに埋め込む。 マルウェアはタグに含まれる命令を定期的に読み込み、実行する。 HTMLタグはブラウザで表示されないので、改ざんされていることに気づきにくいのが特徴となる。タグ内の文字列は検索エンジンに登録されないため、 検索にヒットしないという特徴もある。

3.画像に命令を隠す

SNSを悪用した手法となる。
攻撃者はあらかじめTwitterなどのSNSアカウントを作成して、マルウェア側には定期的にこのアカウントの投稿をチェックするようなプログラムを施しておく。 攻撃者はそのアカウントに画像を投稿するのだが、実はその画像には命令となるデータが埋め込まれおり、マルウェアはこの命令を見つけたら実行する。 当然画像に埋め込まれた命令は目視では確認できない。

4.掲示板を悪用する

攻撃者は掲示板に書き込んだURLやメールから標的のコンピューターをマルウェアに感染させる。
マルウェアには指定された掲示板サービスにスレッドを作成するようプログラムされており、攻撃者はそのスレッドが作成されていることを持って、 マルウェアに感染した端末の存在を知得する。 攻撃者がそのスレッドに命令を投稿するとマルウェアはその命令を受け取り実行し、実行結果を掲示板に書き込む。 また、感染したコンピューターから別の掲示板に悪意ある書き込みをさせることで被害者を悪者に仕立て上げる。(ボット)

他にもGmailの受信ボックスに届いたメールを読んで、メール本文内に書かれた命令を実行するものも存在する。(Kebiというマルウェア) いずれにおいても共通するのは、正規のサービスを悪用しているためドメインやIPを元に制御できないということになる。

これらの攻撃を防御するためには、やはりコンピューターをマルウェアに感染させないというのが妥当な策となる。 EPP(Endpoint Protection Platform)でマルウェア感染を事前に防ぐのはもちろん、EDR(Endpoint Detection and Response)で、万が一感染を許してしまった際にもいち早く検知したり、たとえ検知できなかった時にも有効なフォレンジックを収集し、その後に活かすといった対応が必要かと思われる。

以上。