株式会社ラック

トップレベルのセキュリティ技術を駆使した
ITトータルソリューションで、未来をきり拓く

セキュリティ事故発生時はこちら

情報を守り、未来を創造するパイオニアとしての信頼と自信で、もっと先へ

最高峰のセキュリティサービスと、ITトータルソリューションを提供します。

閉じる

ご相談は予約不要、24時間対応

緊急対応窓口:サイバー救急センター®

セキュリティに係るお客様の緊急事態に際し迅速にお客様をご支援する緊急対応サービスです。
緊急事態が発生したら今すぐ「サイバー救急センター」にご相談ください。

電話で相談する

メールで相談する

サイバー救急センター®のメールアドレス

ご相談は予約不要、24時間対応

緊急対応窓口:サイバー救急センター®

セキュリティ事故発生時はすぐにご連絡ください

LAC WATCH
2018年09月25日 | ラックピープル

DropboxをC2サーバとして悪用する、日本を狙った新たなマルウェアを確認

ラックの石川です。私の所属する当社脅威分析チームでは、日本を標的とする様々な攻撃を日々調査しています。その過程で、オンラインストレージサービスであるDropboxをC2サーバとして悪用する新たなマルウェア「Dropapibot」を2018年6月頃に確認しましたので報告します。

攻撃者がクラウドサービス(ストレージサービス、OSSホスティングサービス、ブログ、SNSなど)をC2サーバや攻撃ツール置き場として悪用するケースは、セキュリティベンダーのブログやレポート等で多く報告 *1 されています。その中で、日本を標的とした攻撃に焦点を当ててみると、Taidoorの攻撃キャンペーンにおいて、GitHubとDropboxが悪用されたとの報告がトレンドマイクロ社からなされています。また、当社脅威分析チームが確認した限りでは、APT攻撃者グループmenuPass(APT10)も、GitHubとDropboxをマルウェアや攻撃ツール置き場として悪用していることが分かっています。

今回は、日本を標的とする攻撃で使われた2つのマルウェアを紹介します。これらはDropboxをC2サーバとして悪用しますが、当社が調査した結果、これまでに確認されていた"LOWBALL" *2 や"DropNetClient" *3 といったマルウェアとは異なるものであると考えられます。

1. ボット"Dropapibot"

私たちのチームは、2018年6月頃に、Dropboxが提供するオンラインストレージをC2サーバとして悪用するマルウェアDropapibotを確認しました。Dropapibotは、Dropbox API v1.0またはv2.0 *4 ※1を利用して攻撃者が管理する Dropbox フォルダから命令を受信することによって動作するボットです。ここでは、利用するAPIバージョンが異なる2つのDropapibot(以下、Dropapibot v1およびDropapibot v2)を比較し、いくつかの特徴的な機能を紹介します。

※1 Dropbox APIは2017年9月28日にDropbox API v1.0が廃止されたため、9月29日以降はv2.0を利用する必要がある。また、Dropbox APIでは、認証にOAuthを使用する。Dropbox API で利用される、OAuthの詳細についてはこちら

Dropbox APIバージョン

図1は、作成時期が異なると考えられる、2つのDropapibotに含まれるDropbox APIに関連する文字列を比較したものです。それぞれ、Dropbox API v1またはDropbox API v2で利用されるAPIが実装されていることが確認できます。

図1 Dropbox APIの比較(v1)

図1 Dropbox APIの比較(v2)

図1 Dropbox APIの比較(上:v1/下:v2)

通信方法

Dropapibot v1では、オープンソースの通信機能を提供するライブラリlibcurlが内包されており、C2サーバとの通信を行うためにlibcurl *5 の easy インターフェースが利用されます(図2)。一方、Dropapibot v2では、Windows標準のネットワークライブラリwininet.dllが提供するAPIを利用してC2サーバと通信を行います。

図2 Dropapibot v1に含まれるlibcurlの例

図2 Dropapibot v1に含まれるlibcurlの例

図3は、2つのDropapibotのアップロードリクエストを比較したものです。攻撃者が管理するDropbox フォルダにアクセスするため、Dropapibot v1では、Oauthのアクセストークンに関連するパラメータ(oauth_consumer_key、oauth_nonce、auth_tokenなど)がクエリストリング※2に含まれています。一方、Dropapibot v2では、OauthのアクセストークンがAuthorizationヘッダでBearerトークンとして含まれていることが確認できます。また、Dropbox API v2では、データの授受をJSONで行う必要があるため、Dropbox-API-ArgヘッダでJSON形式のデータが送信されていることも確認できます。

※2 通信によっては、POSTデータ部分でOauthのアクセストークンに関連するパラメータを送信する。

図3 Dropapibotによるアップロードリクエストの比較(v1)

図3 Dropapibotによるアップロードリクエストの比較(v2)

図3 Dropapibotによるアップロードリクエストの比較(上:v1/下:v2)

暗号化方法

Dropapibot v1ではC2サーバとやり取りするデータにRC4暗号を利用し、Dropapibot v2ではAES暗号を利用します。図4の赤線枠は、Dropbox API v1を使うDropapibotのRC4鍵であり、図5は、このRC4鍵を利用して図3の青枠線に含まれたPOSTデータを復号したものです。復号された文字列は感染端末上で実行されたコマンドプロンプトであることが確認できます。また、図3に示す、Dropapibot v2のpathパラメータで指定される文字列(緑線)は、アップロードフォルダであり、このフォルダ名に含まれる数値部分は、感染端末のホスト名とIPアドレスを組み合わせて、MD5ハッシュ値を計算した値です(図6)。

図4 Dropapibot v1で利用されるRC4暗号化例

図4 Dropapibot v1で利用されるRC4暗号化例

図5 C2サーバへ送信されたPOSTデータ例
復号
図5 C2サーバへ送信されたPOSTデータ例

図5 C2サーバへ送信されたPOSTデータ例

図6 アップロードフォルダ名

図6 アップロードフォルダ名

ボットコマンド

Dropapibotには表1のようなコマンド機能※3が実装されています。実装される命令コードはDropapibotのバージョンによって異なっていました。

※3 Dropapibotの亜種またはバージョン違いによって、実装される命令コードが一部異なる。

表1 "Dropapibot"の命令を授受するコード
命令コード(v1/v2) 説明
dropupl / cup Dropboxにファイルをアップロード
dropdwl(batx) / cdw Dropboxからファイルをダウンロード
csleep(wait) / dsleep スリーブ
clientreset (v2) Dropbox上のファイルを削除
pend (v2) プロセスの終了
pstr (v2) コマンド実行
pcut (v2) ローカルシステム上にファイル作成
flush (v1) Dropbox上のファイルをリセット
setccwt (v1) プログラムの実行時間の確認
clearpipe (v1) 名前付きパイプのリセット

2. ダウンローダ"comine"

時期は少し遡りますが、当社では2015年2月頃に、Dropboxが提供するオンラインストレージから不正ファイルをダウンロードして実行するマルウェアcomineを確認しています。comineは、Dropbox API v1.0 を利用して攻撃者が管理する Dropbox フォルダに複数回アクセスした後、指定されたフォルダから新たなマルウェアをダウンロードし、実行するダウンローダです。ダウンロードするファイルはTiny Encryption Algorithm(TEA) *6 で暗号化されています。図7は、comineがマルウェアをダウンロードする際のリクエスト例であり、攻撃者が用意したOAuth のアクセストークン(赤枠線)が含まれていることが確認できます。ここでは、comineのいくつかの特徴を紹介します。

図7 comineによるダウンロードリクエスト

図7 comineによるダウンロードリクエスト

暗号化方法

OAuth のアクセストークンは、図7の赤線枠に示す文字列がそのままcomineにハードコードされているのではなく、TEAで暗号化されています。図8のデータ(unk_40FE10)の参照先が、暗号化されたOAuth のアクセストークンです。この暗号化されたデータは、赤線枠にあるTEAの暗号鍵を用いて復号されます。なお、comineと同一フォルダに"~tmp.dat"といったファイルが存在する場合、このファイルに含まれるOAuth のアクセストークンを利用して、攻撃者が管理する Dropbox フォルダにアクセスします。

図8 TEA暗号化と暗号化されたOAuthのアクセストークン

図8 TEA暗号化と暗号化されたOAuthのアクセストークン

また、青線枠で囲ったデータ(dword_410410)はスリープ時間を指定する際に利用されており、値はXOR 演算によって暗号化されています。XOR演算の鍵は、"0x2D4E5167D5523B75" です(図9)。この鍵は、Palo Alto Networks社がブログで報告している攻撃キャンペーンMILE TEA *7 や、トレンドマイクロ社がブログで報告している攻撃キャンペーンBLACKGEAR *8 で使われたマルウェアのXOR演算の鍵と同一であり、comineもこれらのキャンペーンで報告されていたAPT攻撃者グループによって使われたマルウェアの可能性が伺えます。

図9 XOR演算の鍵

図9 XOR演算の鍵

comineに含まれる文字列

図10に示すように、comine(ここではtest.exeとします)には、プロセス・デバッグ(PDB)ファイル※4(Dropbox.pdb)が含まれていることが確認できます。その中で、赤線枠で囲った16進数の文字列に対応する文字がASCII文字で表示できず"....."で表示されていることに気が付きます。実はこれらの文字列はUTF-8であり、xxd コマンドを利用して変換すると青枠線で示すように"工程"となります。comineは、フォルダ名に漢字を利用する環境で作成されたマルウェアであることがわかります。

※4 Microsoft .NET Framework環境でのプログラム開発時に作成されるファイル

図10 PDBファイルの確認

図10 PDBファイルの確認

ここまで見たように、Dropapibotおよびcomineは、オンラインストレージサービスである Dropbox をC2サーバとして悪用しています。

Dropboxとの通信は、APIを利用した正規の SSL 通信(HTTPS)であり、セキュリティ機器としてはこのような通信を不正通信として検出することは困難です。このため、このような不正通信を検出するためには、ブラックリストに頼るのではなく、プロキシログなどの通信ログを通信頻度や通信パターン、発生時間などから多角的に調査し、判断する必要があります。今後も、APT攻撃者グループは、様々な方法で正規のクラウドサービスを悪用し、攻撃を仕掛けてくることが予想されます。このような状況の中で、私たち脅威分析チームは日本を標的とする様々な攻撃を継続的に調査し、広く情報を提供していきますので、今後も当社からの発信にご注目ください。

IOC (Indicator Of Compromised)

ハッシュ値

a41ed54d1b7e9373e57ffed5018cc09b
ccd72364b358d8668512dc8dae1da32e

通信先※5

api.dropbox.com
api-content.dropbox.com
api-notify.dropbox.com
api.dropboxapi.com
content.dropboxapi.com

※5 Dropbox が提供する正規のAPI 通信先


この記事は役に立ちましたか?

はい いいえ

関連記事

LAC WATCH

関連記事をご紹介します

サイバーセキュリティに関する
様々な情報をお届けします

メルマガでは、より厳選した情報を
月に2〜3回配信しています
詳しくはこちら

page top