狠狠撸

狠狠撸Share a Scribd company logo
MITRE ATT&CK - T1587
Resource Development
Develop Capabilities
May 10, 2021 kataokaw
T1587 - Develop Capabilitiesの立ち位置
MITRE ATT&CKマトリックスでの立ち位置
a
TACTICS - Resource Development (TA0042)
ATT&CKマトリックスの列名「Resource Devlopment」は、
ターゲティングをサポートするために使用できるリソース(インフラ、アカウント、手段)を
作成、購入、または侵害/盗む敵を含む手法で構成されている。
例)
? 購入したドメインを使ってコマンド&コントロールを支援
? 初期アクセスの一環として電子メールアカウントを使ってフィッシングを実施
? コード署名証明書を盗んで防御回避を支援
[MITER ATT&CK TACTICS (Enterprise) - Resource Development]https://attack.mitre.org/tactics/TA0042/
TECHNIQUES - Develop Capabilities (T1587)
ID Name
T1587.001 Malware
T1587.002 Code Signing Certificates
T1587.003 Digital Certificates
T1587.004 Exploits
[MITER ATT&CK TECKNIQUES (Enterprise) - Develop Capabilities] https://attack.mitre.org/techniques/T1587/
Sub-techniques
攻撃者たちは、Capabilities(手段)を購入/フリーDL/盗む以外に、独自開発することがある。
「Develop Capabilities」は、
開発要件を特定し、下表などを構築するプロセスと定義してます。
Capabilityって?
直訳すると、
能力、才能、特性、性能 、素質、将来性を指すようです。
特に仕事や専門的な能力、素質を指し、
既に備わっているものや、これから取得するもの
というニュアンスがあるようです。
個人的には、手段や機能と意訳した方が、
本資料は通じやすいと思うので、以降のページではそのように記載しています。
Develop Capabilities: Malware (T1587.001)
攻撃者は、マルウェアおよびマルウェアコンポーネントを開発することがあり、
そのようなターゲティング中に使用できる”悪意のあるソフトウェアの構築”には、
下記などの開発/作成が含まれるとしている。
? ペイロード
? ドロッパー
? 侵害後のツール
? バックドア(バックドアイメージを含む)
? パッカー
? C2プロトコル
? 感染したリムーバブルメディア
Develop Capabilities: Malware (T1587.001)
マルウェアの事例 - SUNSPOT
2020年12月に開示された、NWパフォーマンス監視ツール大手プロバイダである
SolarWinds社へのサプライチェーン攻撃に用いられた
脅威グループ「StellarParticle」によって作成されたマルウェアです。
当該マルウェアは、SolarWinds社Orionアプリのビルドサーバーにインストールされ、
ビルドコマンドを検出すると、Orionアプリの一部のソースコードファイルを、
バックドアとして機能するSUNBURSTマルウェアをロードするファイルに置換します。
SUNSPOTはディスク上で「taskhostsvc.exe」(SHA256 Hash: c45c9bda8db1d470f1fd0dc
c346dc449839eb5ce9a948c70369230af0b3ef168)で識別されるようです。
[SROWD STRIKE Blog - SUNSPOT: An Implant in the Build Process] https://www.crowdstrike.com/blog/sunspot-malware-technical-analysis/
[SolarWinds Security Advisory] https://www.solarwinds.com/ja/sa-overview/securityadvisory#anchor2
Develop Capabilities:
Code Signing Certificates (T1587.002)
ユーザーやセキュリティツールは、証明書の発行者や作成者が不明な場合でも、
“署名されたコード”を”署名されていないコード”よりも信頼することがあるため、
攻撃者は、自己署名のコードサイニング証明書を作成し、作戦に利用することがある。
事例)
? Patchwork:架空のソフトウェア会社になりすました自己署名証明書を作成し、後にマルウェアの署名に使用。
? PROMETHIUM:悪意のあるインストーラに署名するために自己署名証明書を作成。
参考)
Subvert Trust Controls: Code Signing(T1553.002)
Develop Capabilities:
Digital Certificates (T1587.003)
攻撃者は、C2トラフィックの暗号化や、MITMなどを実現するため、
サードパーティの認証局(CA)の要素が無い自己署名SSL / TLS証明書を作成することがあります。
事例)
? APT29:マルウェアの相互TLS認証を可能にする自己署名デジタル証明書を作成
? PROMETHIUM:C2トラフィックでHTTPSを使用するための自己署名デジタル証明書を作成
参考)
Stage Capabilities: Install Digital Certificate(T1608.003)
Develop Capabilities: Exploits (T1587.004)
攻撃者は、ネット上から見つけて改修、ベンダから購入、独自開発するなどして、
バグまたは脆弱性を利用して、ハード/ソフトの両面で意図しない動作を発生させる
エクスプロイトを手に入れることがあります。
エクスプロイト開発プロセスの一環として、攻撃者は
ファジングやパッチ分析などの方法で悪用可能な脆弱性を発見する可能性があります。
参考)
Exploitation for Privilege Escalation(1068)
Exploit Public-Facing Application(T1190)
Exploitation for Client Execution(T1203)
Endpoint Denial of Service: Application or System Exploitation(T1499.004)
Exploitation of Remote Services(TT1210)
Exploitation for Defense Evasion(T1211)
Exploitation for Credential Access(T1212)
Develop Capabilities: Exploits (T1587.004)
エクスプロイトの事例 - CVE-2019-5736
「CVE-2019-5736」は、Docker コンテナ等で使用する「runC」に関する脆弱性です。
本脆弱性により、悪意のあるコンテナは(最小限のユーザー操作で)ホストの「runC」バイナリを上書きし、
ホスト上でrootレベルのコードを実行できる権限を獲得できるようになります。
「runC」は、Dockerの一部として開発されたコンテナランタイムで、
次のコンテキストにおいて、コンテナ内でrootとして任意のコマンドを実行することができるようです。
? 攻撃者によって制御されたイメージを使用して、新しいコンテナを作成する。
? 攻撃者が以前書き込みアクセス権を持っていた既存のコンテナに(docker execを)追加する。
MITER ATT&CKの内容によると、マルウェア「Hildegard」は、
当該脆弱性を悪用するBOtB(Break out the Box)ツールを使用したようです。
[Github - brompwnie/botb] https://github.com/brompwnie/botb
[Paloalto - runCによるDockerコンテナブレークアウト: CVE-2019-5736の解説]https://unit42.paloaltonetworks.jp/breaking-docker-via-runc-explaining-cve-2019-5736/
Develop Capabilities: Exploits (T1587.004)
新しいコンテナを作成する場合と
既存のコンテナにプロセスを追加する場合の
両方で「runC」が使用する方法。
攻撃者が/proc/self/exeを実行するように
求めることで、runCを騙して実行できる。
/proc/self/exeは、
ホスト上のrunCバイナリへのシンボリック リンク。
おわり

More Related Content

MITRE ATT&CK T1587 Develop Capabilities

  • 1. MITRE ATT&CK - T1587 Resource Development Develop Capabilities May 10, 2021 kataokaw
  • 2. T1587 - Develop Capabilitiesの立ち位置 MITRE ATT&CKマトリックスでの立ち位置 a
  • 3. TACTICS - Resource Development (TA0042) ATT&CKマトリックスの列名「Resource Devlopment」は、 ターゲティングをサポートするために使用できるリソース(インフラ、アカウント、手段)を 作成、購入、または侵害/盗む敵を含む手法で構成されている。 例) ? 購入したドメインを使ってコマンド&コントロールを支援 ? 初期アクセスの一環として電子メールアカウントを使ってフィッシングを実施 ? コード署名証明書を盗んで防御回避を支援 [MITER ATT&CK TACTICS (Enterprise) - Resource Development]https://attack.mitre.org/tactics/TA0042/
  • 4. TECHNIQUES - Develop Capabilities (T1587) ID Name T1587.001 Malware T1587.002 Code Signing Certificates T1587.003 Digital Certificates T1587.004 Exploits [MITER ATT&CK TECKNIQUES (Enterprise) - Develop Capabilities] https://attack.mitre.org/techniques/T1587/ Sub-techniques 攻撃者たちは、Capabilities(手段)を購入/フリーDL/盗む以外に、独自開発することがある。 「Develop Capabilities」は、 開発要件を特定し、下表などを構築するプロセスと定義してます。
  • 6. Develop Capabilities: Malware (T1587.001) 攻撃者は、マルウェアおよびマルウェアコンポーネントを開発することがあり、 そのようなターゲティング中に使用できる”悪意のあるソフトウェアの構築”には、 下記などの開発/作成が含まれるとしている。 ? ペイロード ? ドロッパー ? 侵害後のツール ? バックドア(バックドアイメージを含む) ? パッカー ? C2プロトコル ? 感染したリムーバブルメディア
  • 7. Develop Capabilities: Malware (T1587.001) マルウェアの事例 - SUNSPOT 2020年12月に開示された、NWパフォーマンス監視ツール大手プロバイダである SolarWinds社へのサプライチェーン攻撃に用いられた 脅威グループ「StellarParticle」によって作成されたマルウェアです。 当該マルウェアは、SolarWinds社Orionアプリのビルドサーバーにインストールされ、 ビルドコマンドを検出すると、Orionアプリの一部のソースコードファイルを、 バックドアとして機能するSUNBURSTマルウェアをロードするファイルに置換します。 SUNSPOTはディスク上で「taskhostsvc.exe」(SHA256 Hash: c45c9bda8db1d470f1fd0dc c346dc449839eb5ce9a948c70369230af0b3ef168)で識別されるようです。 [SROWD STRIKE Blog - SUNSPOT: An Implant in the Build Process] https://www.crowdstrike.com/blog/sunspot-malware-technical-analysis/ [SolarWinds Security Advisory] https://www.solarwinds.com/ja/sa-overview/securityadvisory#anchor2
  • 8. Develop Capabilities: Code Signing Certificates (T1587.002) ユーザーやセキュリティツールは、証明書の発行者や作成者が不明な場合でも、 “署名されたコード”を”署名されていないコード”よりも信頼することがあるため、 攻撃者は、自己署名のコードサイニング証明書を作成し、作戦に利用することがある。 事例) ? Patchwork:架空のソフトウェア会社になりすました自己署名証明書を作成し、後にマルウェアの署名に使用。 ? PROMETHIUM:悪意のあるインストーラに署名するために自己署名証明書を作成。 参考) Subvert Trust Controls: Code Signing(T1553.002)
  • 9. Develop Capabilities: Digital Certificates (T1587.003) 攻撃者は、C2トラフィックの暗号化や、MITMなどを実現するため、 サードパーティの認証局(CA)の要素が無い自己署名SSL / TLS証明書を作成することがあります。 事例) ? APT29:マルウェアの相互TLS認証を可能にする自己署名デジタル証明書を作成 ? PROMETHIUM:C2トラフィックでHTTPSを使用するための自己署名デジタル証明書を作成 参考) Stage Capabilities: Install Digital Certificate(T1608.003)
  • 10. Develop Capabilities: Exploits (T1587.004) 攻撃者は、ネット上から見つけて改修、ベンダから購入、独自開発するなどして、 バグまたは脆弱性を利用して、ハード/ソフトの両面で意図しない動作を発生させる エクスプロイトを手に入れることがあります。 エクスプロイト開発プロセスの一環として、攻撃者は ファジングやパッチ分析などの方法で悪用可能な脆弱性を発見する可能性があります。 参考) Exploitation for Privilege Escalation(1068) Exploit Public-Facing Application(T1190) Exploitation for Client Execution(T1203) Endpoint Denial of Service: Application or System Exploitation(T1499.004) Exploitation of Remote Services(TT1210) Exploitation for Defense Evasion(T1211) Exploitation for Credential Access(T1212)
  • 11. Develop Capabilities: Exploits (T1587.004) エクスプロイトの事例 - CVE-2019-5736 「CVE-2019-5736」は、Docker コンテナ等で使用する「runC」に関する脆弱性です。 本脆弱性により、悪意のあるコンテナは(最小限のユーザー操作で)ホストの「runC」バイナリを上書きし、 ホスト上でrootレベルのコードを実行できる権限を獲得できるようになります。 「runC」は、Dockerの一部として開発されたコンテナランタイムで、 次のコンテキストにおいて、コンテナ内でrootとして任意のコマンドを実行することができるようです。 ? 攻撃者によって制御されたイメージを使用して、新しいコンテナを作成する。 ? 攻撃者が以前書き込みアクセス権を持っていた既存のコンテナに(docker execを)追加する。 MITER ATT&CKの内容によると、マルウェア「Hildegard」は、 当該脆弱性を悪用するBOtB(Break out the Box)ツールを使用したようです。 [Github - brompwnie/botb] https://github.com/brompwnie/botb [Paloalto - runCによるDockerコンテナブレークアウト: CVE-2019-5736の解説]https://unit42.paloaltonetworks.jp/breaking-docker-via-runc-explaining-cve-2019-5736/
  • 12. Develop Capabilities: Exploits (T1587.004) 新しいコンテナを作成する場合と 既存のコンテナにプロセスを追加する場合の 両方で「runC」が使用する方法。 攻撃者が/proc/self/exeを実行するように 求めることで、runCを騙して実行できる。 /proc/self/exeは、 ホスト上のrunCバイナリへのシンボリック リンク。

Editor's Notes

  1. ドロッパー:トロイの木馬の一種で、それ自体には不正コードが含まれないが、        あるタイミングで不正コードを投下(ドロップ)する パッカー:プログラムを実行できる状態(自己解凍形式)のまま圧縮、符号化することをパッキングといい、       パッキングするソフトやツールをパッカーという。       プログラムが静的解析されるのを妨害する目的で使われる。
  2. マルウェアのビルドタイムスタンプ「2020-02-20 11:40:02」より、攻撃のタイムラインと一致することから
  3. ユーザー バイナリが実行されるときは、コンテナ内ですでに特定および制限されている必要がある。
  4. runCは「runC init」サブプロセスを作成します。