2022年
台湾のランサムウェア事例とマルウェア解析
2022年12月
H. Murakami

CyCraft Proprietary and Confidential Information

紹介事項
発表者： ごく普通の町のデジタルフォレンジック屋さん

所

属： CyCraft Japan (本社は台湾)
東京電機大学

静岡大学

第001404号

2(村上)CyCraft Proprietary and Confidential Information

サイバーセキュリティ研究所

創造科学技術大学院

Analyst Number 5549

研究員

博士課程（西垣研究室）

1. Case 1:.msi形式のMagniberランサムウェア⚫ 特 徴• 2022年6月頃から広がりを確認（顧客から問い合わせあり）。
• インストーラの.msi形式になっており、基本的にユーザを騙してインストールさせる方法。
• .msiファイルにDLL形式のマルウェアが埋め込まれている。
• ファイルの暗号化はAES128 CBCモード、IV、AES共通鍵は乱数で作成し、RSA公開鍵で暗号化。
• 実行中のプロセスのうち、オープンできるプロセスに対しかたっぱしから暗号化コードをインジェクションしてスレッドを実行する。
• syscallの利用で検知回避を狙っているとみられる。
3

CyCraft Proprietary and Confidential Information

1. Case 1:.msi形式のMagniberランサムウェア⚫ 当該ファイル

ファイル名はMicrosoftの正規のアップデートを装っている。
偽サイトに掲載したり、管理者になりすましたメールに添付するなどしてユーザに誤認させて実行させ、感染させることを意図しているとみられる。
4

CyCraft Proprietary and Confidential Information

1. Case 1:.msi形式のMagniberランサムウェア⚫ .msi形式のマルウェアの解析：AdvancedInstallerの利用実行されるアクション②Existing Custom Actionsタブを選択
ツールによってExportされたDLLのパス③Actionを選択実行されるDLL内の関数名①Custom Actionsを選択

5

CyCraft Proprietary and Confidential Information

ExportされたDLLを、 rundll32.exe等を用いて実行されるDLL内の関数名をコールして解析すればよい。

1. Case 1:.msi形式のMagniberランサムウェア⚫ 暗号化プロセス
オリジナル
ファイル

NtReadFile

NtWriteFile
暗号化されたファイル
暗号化された鍵・IV

NtWriteFile

NtSetInformationFile
ファイル名の変更(拡張子の追加)
6

CyCraft Proprietary and Confidential Information

CryptImportKey
CryptSetKeyParam

Crypt API Obj
CryptEncrypt(AES暗号化)Crypt API Obj
CryptEncrypt(RSA暗号化)AES128 KeyIV

乱数作成関数で作成。
(ランサムウェアの時期により、関数に若干変化あり)

AES128 Key + IV
(結合)

CryptSetKeyParam

RSA Public Key(マルウェア内に埋め込み)1. Case 1:.msi形式のMagniberランサムウェア⚫ プロセスサーチおよびプロセスインジェクション
• syscallでSystemProcessInformationを実行してシステム上のプロセス情報を取得する（あっ、いつものCreateToolhelp32Snapshot
じゃないんだー（棒））。
• プロセス毎にNtOpenProcessを実行し、プロセスのオープンに成功した場合はそのプロセスのメモリ上に暗号化するランサムウェアのコードをコピーし、NtCreateThreadEx で実行する。

→多くのプロセスで暗号化処理が行われるため、かなり重くなる。
→暗号化済みかどうかの判定は、拡張子でおこなっている。
7

CyCraft Proprietary and Confidential Information

1. Case 1:.msi形式のMagniberランサムウェア⚫ プロセスサーチおよびプロセスインジェクション
動的解析のため実行させてみたところ、「winlogon.exe」のプロセスで暗号化処理をしていたことを確認。

8

CyCraft Proprietary and Confidential Information

1. Case 1:.msi形式のMagniberランサムウェア⚫ syscallの頻繁な利用同じAPIでも、OSのバージョンによってsyscallで使うコードが異なるため、OSのバージョン情報を元にコードを判定。

NtAllocateVirtualMemoryで実行可能領域を確保し、得られたコードでsyscallをするという小さな関数を作成。
syscallテーブル参考：https://j00ru.vexillium.org/syscalls/nt/64/
9

CyCraft Proprietary and Confidential Information

1. Case 1:.msi形式のMagniberランサムウェア⚫ syscallの頻繁な利用

syscallによるNtOpenFileのコール例
syscall実行用領域を解放していないバグ持ち（ふざけんなド下手糞）
10

CyCraft Proprietary and Confidential Information

1. Case 1:.msi形式のMagniberランサムウェア⚫ その他の特徴• パッカー部は、単純なXORによる暗号化を利用。ただし、ワンステップずつjmpすることで若干の難読化を試みている。
• スクリプトを展開し、 vssadmin、 wbadmin、 bcdeditを利用してVolume Shadow Copyの消去、バックアップカタログの削除、システム状態バックアップの削除、全てのブートエラーを無視するよう表示ポリシーを変更、スタートアップ修復の無効化をしている。

11

CyCraft Proprietary and Confidential Information

2. Case 2:Lockbit 2.0 ランサムウェア⚫ 特徴• 2022年2月、台湾で被害者の情報がDark Webにリークしていることを発見したことから調査開始となった。
• このランサムウェアのファイルの暗号化はAES128 CBCモードで、ファイルの先頭4,096byteしか暗号化しない。
• 解析回避、アンチフォレンジックのテクニックがほのかには入っている（ただし、あんまり気にならなかった）が、マルウェアはパックもされていない。
• プリンタで9999枚脅迫文を印刷、壁紙をマルウェアが頑張って描画など、変なところに力をいれているマルウェアでもある。
MBSDさんの解析が詳しい： https://www.mbsd.jp/research/20211019/blog/
12

CyCraft Proprietary and Confidential Information

2. Case 2:Lockbit 2.0 ランサムウェア⚫ 解析した感想・・・• マルウェアが暗号化を開始する前に色々やってくれるので、それらの振る舞いを検知・遮断できるEDR等の機能があれば、割と対策が可能だと思われる。
• ビルダーでランサムウェアを生成するようにしている影響かもしれないが、コードの構造化や関数化が不十分で、ダラダラ長い＆ifのネストが深い（＝コードのできが悪い）印象。
• 解析回避、アンチフォレンジック等はあるが、既存のライブラリ等を集めて取って付けたような感じで、マルウェア全体の設計は不十分に見える（あちこちに雑さが残っている）。
13

CyCraft Proprietary and Confidential Information

2. Case 2:Lockbit 2.0 ランサムウェア⚫ 解析した感想・・・＊暗号化開始前に見られる痕跡の数々。
（検知に便利そう・・・）

14CyCraft Proprietary and Confidential Information

2. Case 2:Lockbit 2.0 ランサムウェア⚫ コードは単調でパラメータも暴露しやすく、解析難易度は高くはない。
単純なコピーでプレーンテ
キスト展開。

15

CyCraft Proprietary and Confidential Information

言語コードの単調な判定。

2. Case 2:Lockbit 2.0 ランサムウェア⚫ 解析回避例：

PEBのパラメータで判定→EIPを正常ルートへ

THREADINFOCLASSのパラメータ

デバッガ
からの秘匿
16

CyCraft Proprietary and Confidential Information

コード除去

2. Case 2:Lockbit 2.0 ランサムウェア⚫ スレッド間通信
NtSetInformationFile、NtRemoveIoCompletionを使って通信。

送信元スレッド：
暗号化対象のチェックおよびファイルのオープン、読み込み、IVとAES鍵の生成
17

CyCraft Proprietary and Confidential Information

受信先スレッド：
暗号化の実行、暗号化結果の書き込み、ファイル名変更（.bitlock拡張子の追加）、ファイルクローズ

2. Case 2:Lockbit 2.0 ランサムウェア⚫ 発生した事象：• Lockbit 2.0ランサムウェアに感染し、被害端末のデータが暗号化された。
• Lockbit 2.0の脅迫文には、さらに指定のWebサイトやTorのサイトで盗まれたデータを暴露すると脅迫。

ん？Lockbit 2.0にデータ収集やC&Cサーバへの転送機能って無くない？
18

CyCraft Proprietary and Confidential Information

2. Case 2:Lockbit 2.0 ランサムウェア⚫ 事件の顛末：（1）Dark Webでの認証情報漏洩「Redline」という情報窃盗組織により、2022年3月に台湾のユーザとみられる認証情報が複数件販売されていることを確認。

19

CyCraft Proprietary and Confidential Information

2. Case 2:Lockbit 2.0 ランサムウェア⚫ 事件の顛末：（2）正体不明の攻撃者によるアクセス漏洩した情報を利用してログインした痕跡を確認。

正しい認証情報を用いてログインに成功すると、高脅威度としての検知は難しい！
20

CyCraft Proprietary and Confidential Information

2. Case 2:Lockbit 2.0 ランサムウェア⚫ 事件の顛末：（3）攻撃のエスカレート

バッチファイルの展開
および実行、svchost.exeへのコードインジェクションを確認。

21

CyCraft Proprietary and Confidential Information

2. Case 2:Lockbit 2.0 ランサムウェア⚫ 事件の顛末：（4）被害組織内での認証情報窃盗

認証情報をダンプするmimikatzを展開、実行した痕跡を確認。

22

CyCraft Proprietary and Confidential Information

2. Case 2:Lockbit 2.0 ランサムウェア⚫ 事件の顛末：（5）リモート操作のためのマルウェアの実行

CobaltStrikeとみられるマルウェアの実行の痕跡を確認。
このケースでは、これを用いた情報窃盗までは確認できず。
23

CyCraft Proprietary and Confidential Information

2. Case 2:Lockbit 2.0 ランサムウェア⚫ 事件の顛末：（6）Lockbitの実行

CobaltStrikeを利用してダウンロード、実行したとみられる。

解析したLockbit 2.0には、情報を収集して外部に送信する機能が見つからない？
ここまでの不正アクセスで既に情報を収集し盗んでいるか、「データを公開する」ということ自体がブラフの可能性。
24

CyCraft Proprietary and Confidential Information

2. Case 2:Lockbit 2.0 ランサムウェア⚫ 判明した攻撃の流れのまとめ：• Dark Web等に盗まれた認証情報が出回る• 盗まれた資格情報を使って不正アクセス• 組織内のシステムからの認証情報窃盗を実施• 組織内の端末からCobaltStrikeによるC&Cサーバへのアクセス• Lockbitをダウンロードし実行
Lockbitの実行は、攻撃の最後の段階で使われる傾向
25

CyCraft Proprietary and Confidential Information

2. Case 2:Lockbit 2.0 ランサムウェア⚫ おまけ：Lockbit 3.0 も入手したので解析してみた。
類似点：• ファイルを暗号化し、その鍵を公開鍵？で暗号化している。
• 多重起動抑止をしている。
• 色々な解析回避技術を入れている。
• ファイルオープン処理、暗号化処理のスレッドを分けている。

• AD環境を利用した拡散処理がある。
• アイコンの設定や壁紙の変更、プリンタ出力を行う。
• 自身を削除する。
26

CyCraft Proprietary and Confidential Information

2. Case 2:Lockbit 2.0 ランサムウェア⚫ おまけ：Lockbit 3.0 も入手したので解析してみた。
相違点：• ファイルの暗号化は、xorを使った暗号方式に変更。
• 先頭の4096バイトしか暗号化しないおサボりを止めた。

• 多重起動防止も、使用するAPIを変更(NtCreateMutant →OpenMutexとCreateMutexの併用)。

• 解析回避技術は以前より執拗になり、特にデバッガ回避が増えていた（ブログに幾つか書いた）。
27

CyCraft Proprietary and Confidential Information

2. Case 2:Lockbit 2.0 ランサムウェア⚫ おまけ：Lockbit 3.0 も入手したので解析してみた。
相違点：• 被害ファイルの拡張子を、固定の「.lockbit」からランダムなものに変更。これにより、ちょっと検知が面倒くさくなった。アイコンはこの拡張子に紐づけするよう変更。
• ファイルを開くスレッドと暗号化スレッド(複数起動)を分け、I/OCompletion でスレッド間通信を行っているが、使用しているAPIが全く異なる。
28

CyCraft Proprietary and Confidential Information

2. Case 2:Lockbit 2.0 ランサムウェア⚫ おまけ：Lockbit 3.0 も入手したので解析してみた。
相違点：• 拡張子の判定がベタ書きから32ビットハッシュによる判定に変更。
• 無駄に？力が入っていた壁紙描画は、逆にえらくシンプルに。

• プリンタの出力枚数が9999枚→1000枚に減少。
• 自身を削除する方法は、削除プログラムを解凍、プロセス実行。

29

CyCraft Proprietary and Confidential Information

2. Case 2:Lockbit 2.0 ランサムウェア⚫ おまけ：Lockbit 3.0 も入手したので解析してみた。
脅迫文の壁紙
ファイルデータの暗号化処理

30

CyCraft Proprietary and Confidential Information

2. Case 2:Lockbit 2.0 ランサムウェア⚫ おまけ：Lockbit 3.0 も入手したので解析してみた。
感想：• 殆ど流用したコードが無く、１から作り直したレベル。
→以前よりもコードのレベルは高くなっていた。

• ハッキリ言って、要求仕様を変えないまま別人が作ったレベル。

→研究しているマルウェアの筆跡鑑定やインテリジェンス抽出の対象にすると面白そう！（喜ぶんじゃぁない・・・）
31

CyCraft Proprietary and Confidential Information

3. 台湾でもEmotet事例あり⚫ Emotetは、C&Cから落ちてくる追加コードが重要。
⚫ 以前と異なり、ファイルに出力せず実行するようになっている。

⚫ 落ちてきた機能例：WNetOpenEnumWを利用して感染拡大する機能。
アクセスに利用するID

アクセスに利用する
パスワード
Arg1: 0x058EF018 - NETRESOURCE structure
Arg2: 0x00000000 - Password
Arg3: 0x00000000 - User nameArg4: 0x00000001 - Flag (CONNECT_UPDATE_PROFILE)
32

CyCraft Proprietary and Confidential Information

4. まとめ⚫ ２つのランサムウェアとEmotetの解析結果の紹介⚫ ランサムウェアの感染に繋がる認証情報の漏洩を発端とした不正アクセスの事例を紹介⚫ マルウェアの解析では、IoCだけでなく、どのようなことができるか、またはできないかといった能力の分析も、サイバー攻撃の分析では重要。
⚫ 攻撃の手口やマルウェアの機能を知ることで、検知やブロックできる点を発見し、対策に生かすことができる。
⚫ 不足している対策が何かについて気づいてもらいたい。
33

CyCraft Proprietary and Confidential Information

4. まとめ⚫ マルウェア解析のイメージ？
• 検知・識別に使うならこのあたりの情報で十分。
• ここの省力化・合理化の研究が多く、進んでる気がする？
• 時間がめっちゃかかる。
• 古手のアセンブラプログラマ世代が昔取った杵柄でやってるケースが多め？
• ここで得られる情報の活用がまだ不十分？
34

CyCraft Proprietary and Confidential Information

CyCraft |Website

35

CyCraft Proprietary and Confidential Information

CyCraft |Medium

CyCraft | Twitter