Born This Way? LockerGogaの起源

By

Category: Ransomware, Unit 42

Tags:

This post is also available in: English (英語)

概要

このUnit 42ブログでは、LockerGogaと呼ばれるランサムウェア攻撃について考察します。

LockerGogaは、1月にBleeping Computerが最初に報告したランサムウェアです。同社は報告のなかで当該マルウェアをフランスのエンジニアリング会社Altran Technologiesに対する攻撃と結びつけました。その後はいくつかの亜種がインターネット上で発見されており、それらはノルウェーのアルミニウム製造業者Norsk Hydroのほか、2つの化学系企業Hexicon、Momentiveに対する攻撃で使用されていました。

Unit 42でこれらの攻撃で利用されたマルウェアサンプルをレビューしたところ、脅威名の由来に疑問を抱くエビデンスが見つかりました。Bleeping Computerは「この脅威名はMalwareHunterTeamの発見したソースコードのパスに由来する」と報告していたのですが「LockerGoga」という文字列はAltran Technologiesへの最初の攻撃で使用されたコードのどこにも存在していなかったのです。

X:\work\Projects\LockerGoga\cl-src-last\cryptopp\src\rijndael_simd.cpp for SHA-256 bdf36127817413f625d2625d3133760af724d6ad2410bea7297ddc116abc268f

しかしながら、Symantecが報告したRansom.GoGalockerという名前で識別される古いランサムウェアの亜種で、この文字列が参照されていることが分かりました。ただしこの亜種はBleeping Computerの報告に記載されているサンプルには含まれていません。混乱を避けるため、私たちは初期の亜種とその亜種の祖先をLockerGogaの呼称で引き続き参照することにします。

弊社では動作とコードが最初の亜種と類似している31個のランサムウェアのサンプルを確認しています。本稿では、これらのサンプルの起源をさかのぼり、その進化について議論した後、その内部的な機能と、問題点について明らかにしていきたいと思います。

最初のLockerGogaサンプル

私たちが見つけた最も古い既知のLockerGogaのサンプル(SHA-256:bdf36127817413f625d2625d3133760af724d6ad2410bea7297ddc116abc268f)は2019年1月24日にVirusTotalに提出されていました。私たちは、このサンプルがAltran Technologiesへの攻撃に使用されたものだと考えています。ランサムウェアがどのようにしてAltran Technologiesのネットワークに感染したのか、感染後内部で拡散したのかどうかについてはわかっていません。

拡散

現在のLockerGogaは、標的ネットワーク上のべつのホストに感染することで自己増殖をしていくワームとしての機能はサポートしていません。 LockerGogaがSMBプロトコルを介してネットワーク上を移動する様子は観測されていることから、攻撃者は単純に手動でファイルをコンピュータからコンピュータにコピーしたことが示唆されます。

LockerGogaの特徴

このサンプルを正常に実行するには管理者特権が必要です。ただし、初期コードを実行するための具体的なメカニズムは分かっていません。実行されると、LockerGogaは感染したコンピュータと接続されているすべてのハードドライブ上のファイルを暗号化しようとします。すべての実行が終わると、ユーザのデスクトップに身代金メモを残します。この身代金メモには電子メールアドレスがふくまれており、これはおそらく復号化と支払いのオプションを連絡するためのものと思われます。

最初のサンプルはC++プログラミング言語で書かれており、Boost、Cryptopp、regexなどのパブリックに利用可能なライブラリを使用しています。このサンプルには、次のファイルとディレクトリを暗号化から除外するためのブラックリストが含まれています。

  • readme-now.txt
  • ntsuserまたはusrclassで始まるファイル
  • ファイル拡張子が.dll, .lnk, .sys, .locked のもの
  • Microsoft\Windows\burn
  • dat
  • log

このマルウェアは、ネットワーク上の他のホストに感染するための自己増殖型コードをサポートしておらず、MIKL LIMITEDという名前で発行された証明書で署名されていますが、この証明書はすでに無効化されています。次のコマンドライン引数もサポートされています。

コマンドライン 説明
-w Work:これはデフォルトのコマンドラインパラメータで、ホスト上のすべてのファイルを暗号化します。また、c:\wipe というファイルを作成し、ドライブ上の使用可能な空き容量を同じサイズのランダムデータでいっぱいにして空き容量をすべて消去します。その後ファイルは削除されます。このパラメータは単一ファイルの暗号化にも使用できます。例:-w filename.exe
-r Dry Run:  ホスト上のファイルは暗号化されません。
-l Log:ルートドライブ上にcl.logという名前のログファイルを作成します。
-f File:単一のファイルを暗号化するために使用されます。

   表1 サポートされているコマンドライン引数

暗号化

LockerGogaはCryptoppライブラリを使用してRSAを実装しています。RSAを最初から実装するのは非常に時間がかかり、エラーが発生しやすいためです。ファイルを暗号化するために、(強いRSAである)RSA-OAEP MGF1(SHA-1)が使用されています。このサンプルにあるRSA公開鍵は次のとおりです。

00000000   4D 49 47 64 4D 41 30 47  43 53 71 47 53 49 62 33   MIGdMA0GCSqGSIb3

00000016   44 51 45 42 41 51 55 41  41 34 47 4C 41 44 43 42   DQEBAQUAA4GLADCB

00000032   68 77 4B 42 67 51 43 46  66 33 43 54 59 79 41 79   hwKBgQCFf3CTYyAy

00000048   6F 79 5A 71 52 33 6E 48  63 4C 4A 2B 49 2F 71 69   oyZqR3nHcLJ+I/qi

00000064   2F 50 57 77 57 54 75 6C  20 6C 4D 69 4E 32 54 47   /PWwWTul lMiN2TG

00000080   4D 41 4D 62 34 39 75 58  51 32 79 43 34 4D 5A 76   MAMb49uXQ2yC4MZv

00000096   5A 76 4B 53 50 55 44 6F  33 61 4D 67 5A 4A 71 30   ZvKSPUDo3aMgZJq0

00000112   78 75 52 53 42 34 58 6F  73 6D 73 30 5A 39 51 4B   xuRSB4Xosms0Z9QK

00000128   70 76 47 6C 6A 4E 48 36  79 34 50 59 4E 39 38 2F   pvGljNH6y4PYN98/

00000144   76 20 79 31 7A 4F 6B 34  70 45 69 53 68 43 32 49   v y1zOk4pEiShC2I

00000160   47 46 50 4A 32 47 71 33  4F 63 2B 41 78 4F 37 57   GFPJ2Gq3Oc+AxO7W

00000176   6F 2F 62 42 76 35 34 32  52 51 30 67 50 55 77 7A   o/bBv542RQ0gPUwz

00000192   79 54 53 66 71 6A 44 47  35 33 35 73 38 57 73 76   yTSfqjDG535s8Wsv

00000208   4B 73 79 77 49 42 45 51  3D 3D                     KsywIBEQ==

表2 初期のLockerGogaサンプルで見つかったRSA公開鍵

RSA-OAEP MGF1にはより暗号化を安全にするための機能がありますが、計算時オーバーヘッドが増えるためその分暗号化に時間がかかり、大きなファイルを扱うのが困難です。これを軽減するため、開発者は並行して動作する複数の子プロセスを生成して暗号化速度を最大化しています。また、サイズの大きいファイルにかかる時間を短くするため、80,000バイトごとにファイルのチャンクを暗号化し、ファイルの次の80,000バイトをスキップすることになっていました。例:

図1 80,000バイトのチャンクで暗号化されたデータ
図1 80,000バイトのチャンクで暗号化されたデータ

このため、復号化キーがなくても、大きなファイルの部分的なリカバリは可能になる場合があります。

開発者はファイルとディレクトリのブラックリストを使用してスキップしようとしていますが、Windowsオペレーティングシステムのコアファイルも暗号化されるため、オペレーティングシステムが不安定になり、クラッシュします。この様子はWindows 2012を搭載したコンピュータでランサムウェアを実行しているときに観測されました。

初期の開発

私たちは分析結果からこの亜種がLockerGogaランサムウェアの初期にリリースされたものと考えています。開発者は、マルウェアを暗号化せずに実行することを可能にする-rなどのコマンドラインパラメータを残していました。これを-l(log)と組み合わせて使用すると、ランサムウェアの動作をテストできます。これらのパラメータは両方とも、初期ビルド、つまりテストビルドであることを示唆しています。とくに後の亜種には-rは見られませんでした。

Bleeping Computerの報告によれば、ランサムウェアは次の特定のファイル拡張子のみを暗号化しているようです。doc|dot|wbk|docx|dotx|docb|xlm|xlsx|xltx|xlsb|xlw|ppt|pot|pps|pptx|potx|ppsx|sldx|pdf

また分析からは、このマルウェアが特定のファイル拡張子をチェックするコードブロックを使用しておらず、ブラックリストにあるファイル以外のすべてのファイルを暗号化することを確認しました。またこのマルウェアはサイズの大きいファイルについても問題を抱えていました。ただしこれは後の亜種では修正されています。

開発サイクル

他のアクティブなソフトウェアプロジェクト同様、LockerGogaランサムウェアの開発も継続的に行われており、新しい亜種が開発されては被害者の攻撃に使用されています。これらの亜種はすべて共通する特性を有しており、商用プロジェクトでの開発同様に、各リリースには改善点や新機能が含まれています。

この継続する開発サイクルに対抗するため、セキュリティリサーチャーは新しい亜種の識別に集中する必要があります。

そのため、1月のマルウェアの出現以降に見られた進化の変化のいくつかについてここで強調しておきたいと思います。

  • -rと-fのコマンドライン引数が削除された
  • ログファイル名がcl.logから.logに変更された
  • ランサムウェアの身代金要求メモはバイナリでエンコードされなくなった
  • ランサムウェアの身代金要求メモがREADME_NOW.txtからREADME_LOCKED.TXTに改名された
  • 次のコマンドラインパラメータが追加された
パラメータ 説明
-i プロセス間通信(IPC)
-s スレーブ(子プロセス)
-m マスタープロセス
  • プロセス間通信用のプロセスを識別するためmutex(例:SM-zzbdrimp)の使用を開始した
  • プロセス名としてsvch0st[数値].exeを使用するのをやめ、サンプルごとに異なるハードコードされた名前を使用し始めた
  • 文書化されていないWindows API呼び出しを利用する(NtQuerySectionなど)
  • 管理者パスワードをHuHuHUHoHo283283@dJDに変更する
  • 空き領域を消去するためのワイプファイルの作成を中止し、代わりにWindows cipher.exeをコマンドパラメータ/ wと共に使用してホスト上の空き領域をワイプする
  • WS2_32.dllのインポートを追加、ネットワーク通信をサポートするためか
  • ログファイルに記録されるデータの形式と収集内容を変更
  • ファイルとディレクトリの暗号化を更新ホスト上のすべてのファイルを暗号化するかわりに特定のファイル拡張子とディレクトリを標的にする
  • Windows Restart Managerセッションを呼び出す。トークン昇格で信頼されたインストーラファイルを上書きすることを狙ったものか
  • 次のデジタル署名者を使用する
    • ALISA LTD
    • KITTY'S LTD
    • MIKL LIMITED
  • 現在のユーザーをログオフする
  • バイナリファイルと暗号化ファイルに「Goga」という単語が含まれる

結論

LockerGogaの開発者は機能を絶えず追加して新しい攻撃を開始しています。WS2_32.dllの追加、文書化されていないWindows API呼び出しの使用は、典型的なランサムウェア開発者のレベルを超えた高度な技能を示すものです。WS2_32.dllの追加はC2通信や自動拡散を最終的に含めるためという可能性がありますし、文書化されていないWindows API呼び出しの使用はWindowsの内部に関するある程度の実用的な知識を必要とします。

一般的にランサムウェアはさほど高度なマルウェアではないことが多いので、こうした機能の追加が見られるという事実は、攻撃者の意図についてのさらなる疑問を生じさせます。動機が時間の経過とともに変わったのでしょうか。開発者はなぜ、部分的にファイルを暗号化するためだけにそれほどまの努力を費やすのでしょうか。なぜ彼らは電子メールアドレスを含めるだけで、より頻繁に使われる暗号通貨での支払いを求めないのでしょうか。

被害者のいずれかが身代金を支払い、データを正常に取得できたかどうかはわかりません。ただし、このランサムウェアが重大な被害をもたらしたことはわかっています。攻撃者がこのランサムウェアを改良し続ければ、被害はより甚大なものになる可能性があります。Unit 42は引き続きLockerGogaを監視し、新しい活動について報告します。

WildFireは、本稿に記載したすべてのマルウェアサンプルを悪意のあるものとして正しく識別します。TrapsはLockerGogaサンプルの実行を防止し、AutoFocusをお使いのお客様はLockerGogaサンプルをLockerGogaタグで追跡できます。

パロアルトネットワークスは本稿で見つかったファイルサンプルや侵害の兆候などをふくむ調査結果をCyber Threat Alliance(CTA サイバー脅威アライアンス)のメンバーと共有しました。CTA のメンバーはこのインテリジェンスを使用して、お客様に保護を迅速に提供し、悪意のあるサイバー攻撃者を体系的に阻害することができます。Cyber Threat Allianceの詳細については、次のWebサイトをご覧ください: www.cyberthreatalliance.org

IOC

LockerGogaのサンプル

  • ae7e9839b7fb750128147a9227d3733dde2faacd13c478e8f4d8d6c6c2fc1a55
  • f474a8c0f66dee3d504fff1e49342ee70dd6f402c3fa0687b15ea9d0dd15613a
  • ffab69deafa647e2b54d8daf8c740b559a7982c3c7c1506ac6efc8de30c37fd5
  • c1670e190409619b5a541706976e5a649bef75c75b4b82caf00e9d85afc91881
  • 65d5dd067e5550867b532f4e52af47b320bd31bc906d7bf5db889d0ff3f73041
  • 31fdce53ee34dbc8e7a9f57b30a0fbb416ab1b3e0c145edd28b65bd6794047c1
  • 32d959169ab8ad7e9d4bd046cdb585036c71380d9c45e7bb9513935cd1e225b5
  • e00a36f4295bb3ba17d36d75ee27f7d2c20646b6e0352e6d765b7ac738ebe5ee
  • 6d8f1a20dc0b67eb1c3393c6c7fc859f99a12abbca9c45dcbc0efd4dc712fb7c
  • 79c11575f0495a3daaf93392bc8134c652360c5561e6f32d002209bc41471a07
  • 050b4028b76cd907aabce3d07ebd9f38e56c48c991378d1c65442f9f5628aa9e
  • 1f9b5fa30fd8835815270f7951f624698529332931725c1e17c41fd3dd040afe
  • 276104ba67006897630a7bdaa22343944983d9397a538504935f2ec7ac10b534
  • 88d149f3e47dc337695d76da52b25660e3a454768af0d7e59c913995af496a0f
  • c97d9bbc80b573bdeeda3812f4d00e5183493dd0d5805e2508728f65977dda15
  • 06e3924a863f12f57e903ae565052271740c4096bd4b47c38a9604951383bcd1
  • a845c34b0f675827444d6c502c0c461ed4445a00d83b31d5769646b88d7bbedf
  • 7bcd69b3085126f7e97406889f78ab74e87230c11812b79406d723a80c08dd26
  • ba15c27f26265f4b063b65654e9d7c248d0d651919fafb68cb4765d1e057f93f
  • eda26a1cd80aac1c42cdbba9af813d9c4bc81f6052080bc33435d1e076e75aa0
  • 7852b47e7a9e3f792755395584c64dd81b68ab3cbcdf82f60e50dc5fa7385125
  • 14e8a8095426245633cd6c3440afc5b29d0c8cd4acefd10e16f82eb3295077ca
  • 47f5a231f7cd0e36508ca6ff8c21c08a7248f0f2bd79c1e772b73443597b09b4
  • f3c58f6de17d2ef3e894c09bc68c0afcce23254916c182e44056db3cad710192
  • 9128e1c56463b3ce7d4578ef14ccdfdba15ccc2d73545cb541ea3e80344b173c
  • c3d334cb7f6007c9ebee1a68c4f3f72eac9b3c102461d39f2a0a4b32a053843a
  • 6e69548b1ae61d951452b65db15716a5ee2f9373be05011e897c61118c239a77
  • 8cfbd38855d2d6033847142fdfa74710b796daf465ab94216fbbbe85971aee29
  • bdf36127817413f625d2625d3133760af724d6ad2410bea7297ddc116abc268f
  • 5b0b972713cd8611b04e4673676cdff70345ac7301b2c23173cdfeaff564225c
  • c7a69dcfb6a3fe433a52a71d85a7e90df25b1db1bc843a541eb08ea2fd1052a4

付録

LockerGogaの最新の亜種は、プロセス間通信にメモリマップファイルを使用します。これを説明するために、子プロセスによって作成されたセクションのメモリをキャプチャしました。

00000000   02 00 00 00 00 00 00 00  00 00 00 00 01 00 00 00                  

00000016   D0 02 01 00 CC 02 01 00  C8 02 01 00 30 00 00 00   Р  Ì   È   0  

00000032   80 02 01 00 F8 FF 0F 00  00 00 00 00 00 00 00 00   €   øÿ         

00000048   FF FF FF FF 00 00 00 00  01 00 00 00 24 00 00 00   ÿÿÿÿ        $  

00000064   20 00 00 00 1C 00 00 00  00 00 00 00 01 00 00 00                  

00000080   FC FF FF FF F8 FF FF FF  F4 FF 01 00 0B 20 00 C0   üÿÿÿøÿÿÿôÿ     À

00000096   DE FF FF FF 01 00 00 00  01 00 00 00 38 00 01 00   Þÿÿÿ        8  

00000112   01 00 04 21 10 01 00 00  00 00 00 00 00 7A 70 63      !         zpc

00000128   55 48 4A 76 5A 33 4A 68  62 53 42 47 61 57 78 6C   UHJvZ3JhbSBGaWxl

00000144   63 31 78 57 54 58 64 68  63 6D 56 63 56 6B 31 33   c1xWTXdhcmVcVk13

00000160   59 58 4A 6C 49 46 52 76  62 32 78 7A 58 47 64 73   YXJlIFRvb2xzXGds

00000176   61 57 49 74 4D 69 34 77  4C 6D 52 73 62 41 3D 3D   aWItMi4wLmRsbA==

00000192   64 48 42 6A 63 48 4D 75  5A 47 78 73 63 6D 56 7A   dHBjcHMuZGxscmVz

00000208   65 43 35 6B 62 47 77 75  62 58 56 70 4E 46 39 66   eC5kbGwubXVpNF9f

00000224   4F 48 64 6C 61 33 6C 69  4D 32 51 34 59 6D 4A 33   OHdla3liM2Q4YmJ3

00000240   5A 54 68 68 5A 44 46 68  4E 7A 51 77 4C 54 52 68   ZThhZDFhNzQwLTRh

00000256   4E 32 59 74 4E 47 45 78  59 53 30 35 4F 54 45 78   N2YtNGExYS05OTEx

00000272   4C 54 51 79 4D 57 51 30  4D 6A 49 34 4D 7A 52 6C   LTQyMWQ0MjI4MzRl

00000288   5A 46 78 42 63 33 4E 6C  64 48 4E 63 55 6D 56 7A   ZFxBc3NldHNcUmVz

00000304   62 33 56 79 59 32 56 7A  58 46 4A 6C 63 58 56 70   b3VyY2VzXFJlcXVp

00000320   63 6D 56 6B 55 48 4A 70  62 6E 52 44 59 58 42 68   cmVkUHJpbnRDYXBh

00000336   59 6D 6C 73 61 58 52 70  5A 58 4D 75 65 47 31 73   YmlsaXRpZXMueG1s

00000352   65 6D 55 74 4E 44 68 66  59 57 78 30 5A 6D 39 79   emUtNDhfYWx0Zm9y

00000368   62 53 31 31 62 6E 42 73  59 58 52 6C 5A 43 35 77   bS11bnBsYXRlZC5w

00000384   62 6D 63 3D 62 53 31 31  62 6E 42 73 59 58 52 6C   bmc=bS11bnBsYXRl

00000400   5A 43 35 77 62 6D 63 3D  00 00 00 00 00 00 00 00   ZC5wbmc=       

表3 子プロセスのメモリマップファイル
 

1バイト目(02)は、マスタープロセスに以下のデータを処理するように指示しています。データはbase64で3つの部分にエンコードされ、次のようにデコードされます。

パート1:

Unknown value

パート2:

tpcps.dllresx.dll.mui4__8wekyb3d8bbwe8ad1a740-4a7f-4a1a-9911-421d422834ed\Assets\Resources\RequiredPrintCapabilities.xmlze-48_altform-unplated.png

パート3:

m-unplated.png

ホスト上で実行されているLockerGogaの初期亜種のサンプル:

図2 実行中の初期LockerGoga
図2 実行中の初期LockerGoga

初期LockerGogaの身代金メモ:

Greetings!

 

There was a significant flaw in the security system of your company.

You should be thankful that the flaw was exploited by serious people and not some rookies.

They would have damaged all of your data by mistake or for fun.

 

Your files are encrypted with the strongest military algorithms RSA4096 and AES-256.

Without our special decoder it is impossible to restore the data.

Attempts to restore your data with third party software as Photorec, RannohDecryptor etc.

will lead to irreversible destruction of your data.

 

To confirm our honest intentions.

Send us 2-3 different random files and you will get them decrypted.

It can be from different computers on your network to be sure that our decoder decrypts everything.

Sample files we unlock for free (files should not be related to any kind of backups).

 

We exclusively have decryption software for your situation

 

DO NOT RESET OR SHUTDOWN - files may be damaged.

DO NOT RENAME the encrypted files.

DO NOT MOVE the encrypted files.

This may lead to the impossibility of recovery of the certain files.

 

To get information on the price of the decoder contact us at:

CottleAkela@protonmail.com;QyavauZehyco1994@o2.pl

The payment has to be made in Bitcoins.

The final price depends on how fast you contact us.

As soon as we receive the payment you will get the decryption tool and

instructions on how to improve your systems security

図3 初期LockerGogaの身代金メモ

最新版LockerGogaの身代金メモ:

Greetings!

 

There was a significant flaw in the security system of your company.

You should be thankful that the flaw was exploited by serious people and not some rookies.

They would have damaged all of your data by mistake or for fun.

 

Your files are encrypted with the strongest military algorithms RSA4096 and AES-256.

Without our special decoder it is impossible to restore the data.

Attempts to restore your data with third party software as Photorec, RannohDecryptor etc.

will lead to irreversible destruction of your data.

 

To confirm our honest intentions.

Send us 2-3 different random files and you will get them decrypted.

It can be from different computers on your network to be sure that our decoder decrypts everything.

Sample files we unlock for free (files should not be related to any kind of backups).

 

We exclusively have decryption software for your situation

 

DO NOT RESET OR SHUTDOWN - files may be damaged.

DO NOT RENAME the encrypted files.

DO NOT MOVE the encrypted files.

This may lead to the impossibility of recovery of the certain files.

 

The payment has to be made in Bitcoins.

The final price depends on how fast you contact us.

As soon as we receive the payment you will get the decryption tool and

instructions on how to improve your systems security

 

To get information on the price of the decoder contact us at:

 

MayarChenot@protonmail.com

QicifomuEjijika@o2.pl

図4 最新版LockerGogaの身代金メモ