OceanLotus (別名APT32)は、東南アジア発祥の最も高度な脅威攻撃者の1つであることがわかっている脅威攻撃者グループです。この数年間に複数の攻撃キャンペーンが複数のセキュリティ組織によって報告され、この脅威攻撃者が使用しているツールおよび戦術が記録されました。OceanLotusの標的はグローバルですが、彼らの活動がアクティブなのはほぼアジア太平洋地域内で、ベトナムに関係のある複数の業界、外国政府、活動家、反体制派にわたって民間部門を標的にしています。
このブログでは、OceanLotusが少なくとも2018年以降にアクティブに使用していて、私たちが「KerrDown」と名付けた、新しいカスタムのダウンローダー マルウェア ファミリについて説明します。また、jaccard係数のアルゴリズムを使用して、私たちのデータセット内で新しいKerrDownマルウェア ファミリ間の類似性を素早く発見した方法についても説明します。この手法は、大量のサンプル データセットから類似性を抽出し、複数の攻撃キャンペーンを結び付ける際に非常に役に立つことが証明されました。大量の「KerrDown」サンプルが見つかっているので、私たちはOceanLotusの活動時間および曜日に関して想定しうるパターンを見分けることもできました。これについては、このブログの後のセクションで説明します。
私たちは、KerrDownダウンローダーを標的に配信する手法を2つ特定しました。一方は悪意のあるマクロを含むMicrosoft Officeの文書を使用する方法で、もう一方はDLLサイドローディングを備えた正規のプログラムを含むRARアーカイブです。RARアーカイブ ファイルの場合、標的を欺くために使用されたファイル名は、図11に示すようにすべてベトナム語でした。私たちの分析では、このブログで説明する進行中のキャンペーンの主な標的は、ベトナムまたはベトナム語を話す個人のいずれかであることが示されています。
悪意のある文書
私たちはアクティブなMIME文書から分析を開始しました。これはOceanLotusが以前使用していたものですが、今回は新しいペイロードであるKerrDownが関与していました。ルアー ハッシュを次に示します。
(SHA256:89e19df797481ae2d2c895bcf030fe19e581976d2aef90c89bd6b3408579bfc3)
下図1はルアー ファイルのスナップショットを示しています。被害者がルアー文書を開くと、それにはイメージ ファイルが含まれており、マクロを有効にしてファイルの内容を表示するよう被害者に要求するベトナム語のメッセージが記されています。一見この文書には、マクロを有効化する通知以外、他の内容はないように見えます。しかしよく見ると、2つの異なるbase64 blobがページ内の別々の表に挿入されていることがわかります。そのフォント サイズは1に変更されており、被害者は内容を見落としてしまうかもしれません。この手法をとっているもう一つの理由は、多くの自動化ツールはこのようなファイルのストリーム内に埋め込まれたバイナリの存在を検出できますが、この手法をとれば検出を逃れられる可能性がある、ということかもしれません。
配信文書の分析
フォント サイズを大きくすると、2つの異なる表内のbase64 blobが見えるようになります。デコードすると、図2に示すように、各表の先頭にPE DLLのMZヘッダーがあることがわかります。
図3は埋め込みマクロから抜粋したコードを示しています。これは、iCheck変数に基づいてどちらのbase64 blobをデコードするかをチェックします。このiCheck変数は、被害システムが64ビット システム上で動作している場合にはtrueに設定され、32ビット システム上で動作している場合にはfalseに設定されるブール値です。システムが64ビットであることがわかると、左側のbase64エンコードされたblobがデコードされ、それ以外の場合には右側のbase64エンコードされたblobがデコードされます。
私たちは、Motobitが公開しているVBSデコード関数を攻撃者が再使用していることにも気付きました。図4は、マクロのコードで使用されているbase64関数と、Motobitが公開しているVBS base64デコーダー関数の比較を示しています。
Jaccard係数を使用したKerrDownサンプルの類似性分析
文書から両方のDLLファイルをデコードして抽出した後、Jaccard係数を使用した類似性分析アルゴリズムを使用して、OceanLotusが使用した既知の一連のマルウェア ファミリに対してバイナリをチェックしましたが、以前のOceanLotusマルウェア ファミリとの一致はありませんでした。ただし、KerrDownサンプルのimphash値およびこれに付随するC2ドメインを使用するデータセットで、他の複数のサンプルを発見できました。多数のサンプルが見つかったことから、私たちは再度Jaccard係数を使用する類似性分析アルゴリズムを使用して、見つかったすべてのサンプル間の類似性を引き出しました。この段階では、DLLファイルがバックドアなのかその他の機能を持っているのかわかりませんでした。したがって私たちは、2017年以降に使用されたその他いくつかの既知のOceanLotusマルウェア ファミリのサンプルを類似性テストに含めました。ほとんどの場合、それらのサンプルは、被害端末にドロップされた最終ペイロードです。主目的の1つは、KerrDownが、私たちが追跡してきた既知のマルウェア ファミリの亜種である可能性があるかどうか、またはOceanLotusが戦略および最近のキャンペーンに新しいマルウェア ファミリを採用しているのかどうかを素早く見分けることでした。networkxを使用してJaccard係数の結果をプロットすると、抽出した類似性を素早く視覚化できます。図5からわかるように、networkxグラフの右上で、サンプルのクラスターが稠密に存在しています。その他の既知のOceanLotusマルウェア ファミリのサンプルとの類似性はありませんでした。したがって、この観察は、私たちが見ているサンプルが、分析の時点でOceanLotusグループによって採用された新しいマルウェア ファミリである可能性が高いことを理解するのに役に立ちました。私たちはこれをKerrDownと名付けました。
KerrDownとCobalt Strike Beaconの関係
上記の配信文書の分析で説明したように、OSアーキテクチャに応じて、埋め込まれたKerrDownのDLLのいずれかが被害端末にドロップされます。DLLは、'Users\Administrator\AppData\Roaming\'という場所のディレクトリに、'main_background.png'としてドロップされます。DLLは、ペイロードをURLから取得し、DESアルゴリズムを使用してこれを復号し、メモリ内でこれを実行します。したがって、KerrDown DLLダウンローダーのみがシステムに保存され、ペイロードがシステムに書き込まれることなくメモリ内で直接実行されることが観察されています。表1は、被害端末のOSアーキテクチャに応じてダウンローダーがペイロードをダウンロードしようとするURLを示しています。
OSアーキテクチャ | URL | ユーザー エージェント |
32ビット | https://syn.servebbs[.]com/kuss32.gif | Mozilla/5.0 (Windows NT 10.0; Win32; x32; rv:60.0) |
64ビット | https://syn.servebbs[.]com/kuss64.gif | Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) |
表1: アーキテクチャに応じたペイロードDLLの選択
KerrDownの最終ペイロードへのリンクは、分析時に依然としてアクティブだったため、コピーをダウンロードできました。これはCobalt Strike Beaconの亜種でした。また、Cybereasonも、キャンペーンでCobalt Strikeを使用したOceanLotusについて、以前に記事を発表しています。依然として、新しいダウンローダー マルウェア ファミリを使用してCobalt Strikeの最終ペイロードを配信しているのは興味深いことです。今回のケースでわかるとおり、このマルウェアの目的は、メモリにCobalt Strike Beaconペイロードをダウンロードして実行することです。Cobalt Strikeは、商用の侵入テスト ツールですが、さまざまな脅威攻撃者がキャンペーンでこのツールを使用してきたことがわかっています。
KerrDownを含むRARアーカイブ
KerrDownを調べているうちに、複数のRARファイルにこのマルウェアの亜種が含まれていることがわかりました。この亜種の配信手法や標的はまだわかっていません。攻撃者は、段階を追加したり、圧縮および暗号化によって各段階を隠蔽したりして、ダウンローダーのコードを変更しています。また、悪意のあるコードを実行する方法を、Officeマクロから、合法的なプログラムを介したDLLサイドローディング手法に変更しています。
RARアーカイブ
(SHA256:040abac56542a2e0f384adf37c8f95b2b6e6ce3a0ff969e3c1d572e6b4053ff3)
には、英語で「Complaint letter(苦情書)」を意味する「Don khieu nai.rar」というベトナム語のファイル名が付いています。このアーカイブには、英語で「あなたの会社の活用法をもっと詳しく知る」を意味する、「Noi dung chi tiet don khieu nai gui cong ty.exe」という名前の、合法的な旧バージョンのMicrosoft Word (Microsoft Word 2007)実行可能ファイルが含まれています。攻撃者は、DLLサイドローディング手法を使用して、旧バージョンのMicrosoft Wordによって悪意のあるDLLをロードしていました。アーカイブ内の実行可能ファイルを開くと、悪意のあるDLLが同じディレクトリにロードされます。このDLLは、複数段階のシェルコードを実行し、各シェルコードは、さまざまな手法を用いて次の段階を隠蔽します。全体的なインストール手順を以下に示します。
- Microsoft Wordのexeは、wwlib.dllを同じディレクトリにロードし、DLLの「FMain」関数を実行します。
- DLLは、本文内にあるbase64でエンコードされたシェルコードをデコードして実行します。
- シェルコードは、オープン ソースの圧縮コードUCLを使用して圧縮された2つ目のシェルコードを解凍して、実行します。
- 2つ目のシェルコードは、AESで3つ目のシェルコードを復号します。
- 3つ目のシェルコードは、リモート ロケーション(https://cortanasyn[.]com/Avcv)からシェルコードを取得して、実行します。
- 4つ目のシェルコードは、埋め込まれたCobalt Strike Beacon DLLをメモリ内にロードして、実行します。
私たちのデータセットの全KerrDownサンプルのコンパイル タイムスタンプを確認して、以下の2点がわかりました。
- OceanLotusは、遅くとも2018年3月からキャンペーンでこの新しいダウンローダーを使用しており、現在も引き続きキャンペーンで使用しています。図7に、KerrDownサンプルの時系列を示します。
- OceanLotusグループの起源がベトナムである可能性が高いことは、既に広く認識されていますが、私たちはデータセットのサンプルから、想定しうる活動時間のパターンを見つけたいと考えました。ベトナム標準時であるGMT +7に基づいてコンパイル時間を見てみると、このグループの想定される活動時間について明らかなパターンが見つかりました。OceanLotusグループの典型的な活動パターンは午前9時から午後6時であり、大半のサンプルはこの時間帯にコンパイルされていました。図8に、私たちのデータセットで検出された各固有サンプルの、GMT +7でのマルウェア コンパイル タイムスタンプを示します。
- また、すべてのサンプルが月曜から金曜、すなわち平日にコンパイルされていたことがわかりました。したがって、OceanLotusグループが、平日に活動し、週末に休むことは明らかです。図9に、平日にコンパイルされたサンプルを示します。
結論
OceanLotusは、数年にわたって活動している脅威攻撃者グループであり、依然としてアジア太平洋地域で最も高度な脅威攻撃者の1つです。最近のキャンペーンで新しいKerrDownダウンローダーが使用されていることからわかるとおり、このグループは、全体的な活動および戦略で、今も引き続き新しいツールや技法を作成し採用しています。そのため、このグループの活動を継続的に把握し、追跡することは不可欠で、このような脅威を的確に防御する能力は必須です。観測された大量のサンプルから、私たちは想定しうる活動時間のパターンを見つけました。その結果、このグループは、規則的な活動時間帯を持っており、ベトナムや近隣諸国の地域から活動している可能性が高いことがわかりました。観測された標的の大半がベトナム語圏ですが、OceanLotusの標的は地理的にも業種的にもより広範にわたっていることから、グループは他の標的に対しても同じツールと戦略を使用していると考えられます。
パロアルトネットワークスのお客様は、以下によって既に保護されています。
- このレポートのすべてのサンプルはWildFire内で悪意があると判断されます
- ドメインは悪意があるものとして分類されています
- 次のような、追加のコンテキストのためのAutofocusタグを使用できます。OceanLotusおよびKerrDown。
IOC
ルアー文書:
73dcbcc47d6bd95dcf031ebbd34ac42301a20ee1143ac130b405e79b4ba40fc8
89e19df797481ae2d2c895bcf030fe19e581976d2aef90c89bd6b3408579bfc3
a4a066341b4172d2cb752de4b938bf678ceb627ecb72594730b78bd05a2fad9d
8bf22202e4fd4c005afde2266413cba9d1b749b1a2d75deac0c35728b5eb3af8
df8210d20c5eb80d44ba8fa4c41c26c8421dcb20168e4f796e4955e01ebc9e13
94fab926b73a6a5bc71d655c8d611b40e80464da9f1134bfce7b930e23e273ab
4321a9f95901a77b4acfbaef3596cf681712345e1cbd764873c6643fe9da7331
KerrDown DLL:
4a0309d8043e8acd7cb5c7cfca95223afe9c15a1c34578643b49ded4b786506b
4b431af677041dae3c988fcc901ac8ec6e74c6e1467787bf099c4abd658be5be
4bc00f7d638e042da764e8648c03c0db46700599dd4f08d117e3e9e8b538519b
4e2f8f104e6cd07508c5b7d49737a1db5eeba910adfdb4c19442a7699dc78cfc
4e791f2511c9bd3c63c8e37aa6625d8b590054de9e1cca13a7be2630bc2af9ce
539e8a53db3f858914cfe0d2132f11de34a691391ba71673a8b1e61367a963c7
53cd92f37ffd0822cc644717363ba239d75c6d9af0fa305339eaf34077edd22d
53efaac9244c24fab58216a907783748d48cb32dbdc2f1f6fb672bd49f12be4c
5c18c3e6f7ac0d0ac2b5fa9a6435ee90d6bd77995f85bed9e948097891d42ca2
5cda7d8294a8804d09108359dd2d96cdf4fdcf22ec9c00f0182d005afff76743
5f0db8216314da1f128b883b918e5ac722202a2ae0c4d0bf1c5da5914a66778e
6010d44cdca58cdec4559040e08798e7b28b9434bda940da0a670c93c84e33cd
60b65ebb921dca4762aef427181775d10bbffc30617d777102762ab7913a5aa1
6146aedfe47597606fb4b05458ec4b99d4e1042da7dc974fa33a57e282cd7349
6245b74b1cc830ed95cb630192c704da66600b90a331d9e6db70210acb6c7dfa
67cd191eb2322bf8b0f04a63a9e7cb7bc52fb4a4444fcb8fed2963884aede3aa
68f77119eae5e9d2404376f2d87e71e4ab554c026e362c57313e5881005ae79e
69e679daaaff3832c39671bf2b813b5530a70fb763d381f9a6e22e3bc493c8a9
6faa7deb1e1e0c3a7c62c2bb0ecdfa56b6e3ba4fe16971ec4572267ac70b9177
6fb397e90f72783adec279434fe805c732ddb7d1d6aa72f19e91a1bf585e1ea5
70db041fb5aadb63c1b8ae57ba2699baa0086e9b011219dcebcccbf632017992
7673f5468ba3cf01500f6bb6a19ce7208c8b6fc24f1a3a388eca491bc25cd9cd
77805a46f73e118ae2428f8c22ba28f79f7c60aeb6305d41c0bf3ebb9ce70f94
788265447391189ffc1956ebfec990dc051b56f506402d43cd1d4de96709c082
7be613237b57fbc3cb83d001efadeed9936a2f519c514ab80de8285bdc5a666c
7dbb7fab4782f5e3b0c416c05114f2a51f12643805d5f3d0cd80d32272f2731a
7ec77e643d8d7cc18cc67c123feceed91d10db1cc9fa0c49164cba35bb1da987
860f165c2240f2a83eb30c412755e5a025e25961ce4633683f5bc22f6a24ddb6
868ed69533fac80354a101410d3dd0a66f444385c6611cc85c5b0be49db2d6fd
89759e56d5c23085e47d2be2ce4ad4484dfdd4204044a78671ed434cec19b693
8b7fb1cd5c09f7ec57ccc0c4261c0b4df0604962556a1d401b9cbfd750df60ba
8d6e31c95d649c08cdc2f82085298173d03c03afe02f0dacb66dd3560149184f
942d763604d0aefdff10ce095f806195f351124a8433c96f5590d89d809a562f
98a5f30699564e6d9f74e737a611246262907b9e91b90348f7de53eb4cf32665
9e6011d6380207e2bf5105cde3d48e412db565b92cdc1b3c6aa15bd7bd4b099f
a106e0a6b7cc30b161e5ea0b1ec0f28ab89c2e1eb7ba2d5d409ddbabc3b037e6
a2b905c26e2b92e63de85d83e280249258cb21f300d8c4a3a6bdb488676e9bcf
a4a86e96f95f395fcf0ceb6a74a2564f4ba7adbe1b40cc702b054427327a0399
a8192656dd1db0be4cec9d03b4d10e0529d9c52c899eda8d8e72698acfb61419
a8f776bd3a9593e963b567ce790033fec2804ea0afb40a92d40e21d8f33d066f
b4966f8febdba6b2d674afffc65b1df11e7565acbd4517f1e5b9b36a8c6a16ed
bb25f1a73d095d57b2c8c9ac6780e4d412ddf3d9eef84a54903cc8e4eaefc335
bc82bce004afb6424e9d9f9fc04a84f58edf859c4029eda08f7309dbeec67696
c30198e0b0e470d4ac8821bd14bb754466e7974f1c20be8b300961e9e89ed1ea
caabc45e59820a4349db13f337063eddede8a0847ae313d89a800f241d8556c8
d3ef6643ad529d43a7ec313b52c8396dc52c4daad688360eb207ee91a1caf7b2
e3c818052237bb4bb061290ab5e2a55c3852c8a3fef16436b1197e8b17de2e18
e56ffcf5df2afd6b151c24ddfe7cd450f9208f59b5731991b926af0dce24285a
e8704bf6525c90e0f5664f400c3bf8ff5da565080a52126e0e6a62869157dfe3
e8a454cd8b57a243f0abeec6945c9b10616cfdcc4abfb4c618bfc469d026d537
eac776c3c83c9db1a770ffaf6df9e94611c8293cbd41cb9257148603b8f2be0b
ead0f3e6f0ca16b283f09526d09e8e8cba687dab642f0e102e5487cb565bf475
f011a136996fa53fdbde944da0908da446b9532307a35c44ed08241b5e602cc9
f2a2f4fa2ed5b2a94720a4661937da97ab21aa198a5f8c83bb6895aa2c398d22
f62f21ee7e642f272b881827b45ceb643c999a742e1d3eac13d1ba014d1e7f67
f9f0973dc74716b75291f5a9b2d59b08500882563011d1def2b8d0b1b9bbb8ae
C2:
theme[[.]]blogsite[.]org
cortana[.]homelinux[.]com
word[.]webhop[.]info
work[.]windownoffice[.]com
cortanasyn[.]com
e[.]browsersyn[.]com
syn[.]servebbs[.]com
service[.]windown-update[.]com
check[.]homeip[.]net
outlook[.]updateoffices[.]net
mail[.]fptservice[.]net
office[.]windown-update[.]com
cortanazone[.]com
beta[.]officopedia[.]com
videos[.]dyndns[.]org
service[.]serveftp[.]org
syn[.]browserstime[.]com
check[.]webhop[.]org
ristineho[.]com
付録A:
Cobalt Strike Beaconには、ハードコードされた構成データが本文に含まれています。JPCERTが、構成の構造について記事を公表しています。私たちが取得したサンプルの構成は図10のとおりで、https:// b.cortanazone[.]comというC2サーバーに接続しています。
付録B:
図11に、個別のRARファイルの内容の一部を示します。すべての.exeファイルは、Windows Wordのコピーで、関連した「wwlib.dll」ファイルは悪意のあるダウンローダーDLL KerrDownであり、これは.exeファイルが実行されるとサイドローディングされます。