SOCから始めるマルウェア解析

:::note info
これは [ZOZO Advent Calendar 2023](https://qiita.com/advent-calendar/2023/zozo) カレンダーVol.1の13日目の記事です。昨日の投稿は@YasuhiroKimesawaさんでした。
:::

# はじめに
SOCでは日々監視対応、インシデント対応を行なっています。その中ではファストフォレンジックを行う事も想定しなければなりません。
今回はその一環として行っているマルウェア解析の一例を紹介します。
※とても簡単な解析方法です。入門編です！

## ファストフォレンジックでのマルウェア解析とは
インシデントの影響範囲を早急に調査し、迅速に復旧するために、何が起こったのかを具体的に把握する必要があります。
例えば、マルウェア感染疑惑のある事象が発生した際には、以下の観点が気になる所です。

+ 情報漏洩
+ マルウェアの永続化
+ 復旧方法

これらの情報はセキュリティベンダーにて解析済でIOCが提供されているマルウェアであれば、ある程度は公開情報から調査は可能ですが、攻撃者によってカスタマイズされているマルウェアである場合、解析しなければどういった挙動を行うのかわかりません。
そこでファストフォレンジックの中でマルウェア解析し、簡易的に挙動を把握することで、インシデントの影響を判断することが出来ます。

詳細については[CODE BLUE 2023](https://codeblue.jp/2023/)でOpenTalkされたNECさんの以下の記事が参考になります。

https://jpn.nec.com/cybersecurity/blog/231204/index.html

## マルウェア解析で確認するポイント
マルウェア解析を行う際には以下のポイントを重点的に確認します。

+ マルウェアの通信先
+ 永続化設定（レジストリ操作など）
+ ファイル生成（第2のPayloadからファミリーの特定など）

それ以外の従来マルウェアとの違いを洗い出すといった動作は、ファストフォレンジックでは行いません。復旧が最優先です。


## SOCでの取り組み
マルウェア解析者はSOCの中では少なく、育成が難しいというのが世間の認識としてあると思います。
私たちのSOCでは日常的にマルウェア解析会を行うことで、解析者を育成しています。
また、日常的にマルウェアの動作を理解しておくことで、SOCの監視対応のレベルを上げることが出来ます。

今回は解析会でよく用いている __マルウェアの通信先__ の特定方法を一部紹介しようと思います。

:::note warn
実際に解析する際はネットワーク的に閉じられた仮想環境で解析してください。
危ないです。
:::

※正解するまで終れま10！

# 今回のマルウェア検体
今回の解析のゴールはマルウェアの通信先を特定することです。
## MalwareBazaar
練習用の検体は以下のMalwareBazaarから取得することが多いです。

https://bazaar.abuse.ch/

今回は ___SocGholish___ というマルウェアを用いて解析します。
以下の2検体を参考にします。

1. https://bazaar.abuse.ch/sample/f95e5c5b7ac5b58f3d96a30209ad5db82079c6624e206e6a1d6e5fb4b819afa5/
2. https://bazaar.abuse.ch/sample/5b184676394c27bd35f074f462948fe565c3213edbf8472957c1572f95a1635f/

### SocGholishとは
ソフトウェア更新を模したサイトやファイルに偽装し、JavaScriptが実行されることで攻撃がスタートします。
詳しくは以下のブログが参考になると思います。

https://www.proofpoint.com/jp/blog/threat-insight/part-1-socgholish-very-real-threat-very-fake-update

## 解析
### f95e5c5b7ac5b58f3d96a30209ad5db82079c6624e206e6a1d6e5fb4b819afa5
まずは検体の中身を確認します。
![スクリーンショット 2023-11-29 153908.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2036848/c090178e-360f-32c3-d048-6298f582559f.png)
わかりやすく`sendRequest`している部分が分かります。`XMLHttpRequest`を用いており、POSTする部分まで見えます。
何かResponseを受け取った後は諸々の判定や整形をした後、eval（`pidug`）で実行しています。恐らくスクリプトやシェルコードを落としてきていそうです。通信先を調べる為に単純に以下のように`WScript.Echo`をURLの変数に対して実行します。
![スクリーンショット 2023-11-29 154741.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2036848/0ee69e82-c799-280e-fd86-3e708fe104cd.png)
実行すると難読化されたURLが確認できます。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f323033363834382f61313661626534612d306361662d303538332d666639632d6465643331313.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2036848/02792ed8-3ba3-ea1b-ae5f-54e29ce53c5e.png)
※念のためマスキングを施しています。
VirusTotalで一応正解か確認します。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f323033363834382f39383036616262342d356636332d353762372d616334382d6131383237613964386662372e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2036848/1d239600-d054-9c34-9786-e1a2dfbd41f7.png)
正解ぽいですね。
実際のインシデントの際にはこの情報を用いて、通信先との接続が成功しているのかを調査します。

ここまでわかりやすいスクリプトのマルウェアであればすぐに解析ができると思います。
ちなみにこの検体については、通信先から落とされる第2のスクリプトによって更に攻撃チェインが繋がっていきます。以下のサイトが参考になります。

https://tria.ge/210728-8h4c3nw23s

### 5b184676394c27bd35f074f462948fe565c3213edbf8472957c1572f95a1635f
まずは検体の中身を確認します。
![スクリーンショット 2023-11-29 180229.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2036848/64d015b4-85cb-6fba-6a22-89670ac759f0.png)
何もわかりません。こういった場合は閉じた環境で実行してみて動的解析を行ったほうが早いです。
内部Proxy建てるだけで通信先を拾えます。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f323033363834382f61343562383838392d633138382d623035612d383161632d3063653135333732383162312e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2036848/04ddcc54-5dbb-ab0d-5f60-884b446017da.png)
VirusTotalで一応正解か確認します。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f323033363834382f31633336383635622d636461652d303531392d353638322d3139363338303465646332312e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2036848/856f2a0c-f9a0-6b7e-41e4-0deaa191042f.png)
Pathまでは見えませんでしたが、通信先が分かればそのログをまず確認するので、この段階では問題ないです。
この検体については以下のサイトが参考になります。

https://tria.ge/230223-clp6zsgc8t

# まとめ
SOCで行っているマルウェア解析の一例を紹介しました。
インシデント対応においてマルウェアの挙動を追うことは影響範囲特定、早期復旧の一助となることがあります。
また、SOCのマルウェア理解度の向上にも繋がります。
（リバーシング楽しいですしね！）
是非ともSOCでマルウェア解析を行ってみて頂ければと思います。

明日は@EigoOdqさんです。