28
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ATT&CK T1059 深掘り:攻撃者がCLIを愛してやまない理由

28
Last updated at Posted at 2025-12-18

はじめに

TRIAL&RetailAI Advent Calendar 2025 の19日目の記事になります。
昨日は @ido_shun さんの エンジニアって大変なんやで。 という記事でした。
読んでてグサグサ刺さりました。自分の普段の判断や動きを振り返るきっかけにしようと思います。
ぜひご一読ください!


攻撃の流れの中で、攻撃者が次に進むためには「何らかのコードを実行できること」が必要になります。
本記事では、MITRE ATT&CK における Execution(TA0002)を起点に、Executionに属する代表的なTechniqueである T1059(Command and Scripting Interpreter) を題材として、攻撃者がCLIを選びやすい理由を整理します。

1. Execution(TA0002)とT1059の関係

MITRE ATT&CK における Execution(TA0002)は、攻撃者が制御するコードがローカルまたはリモートのシステム上で実行される結果につながるテクニック群として整理されています。
また、Execution系のテクニックは他タクティクスと組み合わせて使われやすいことも示されています。

この Execution を実現する代表的なテクニックの一つが、T1059: Command and Scripting Interpreter です。
MITREはT1059について、コマンドやスクリプトが「Initial Accessのペイロードに含まれる」「既存C2から二次ペイロードとして取得される」「対話シェルで実行される」「Remote Servicesを用いてremote Executionを行う」といった複数の局面で登場し得ることを説明しています。

2. 攻撃者がCLIを選び続ける理由

T1059が繰り返し登場する背景には、単に「実行できる」以上の実務的な利点があります。ここでは、攻撃手順ではなく、**攻撃者の意思決定(なぜそれを選ぶのか)**という観点で整理します。

2.1 標準搭載の実行基盤を利用できる

多くの環境にはコマンドラインやスクリプト実行の仕組みが標準で備わっています。攻撃者にとっては、追加ツールの導入を避けられる分、手間とリスクを同時に下げられます。

2.2 正規運用に紛れやすい(判別が難しくなりやすい)

CLIやスクリプトは運用・保守でも日常的に使われます。そのため同じ道具を悪用されると、挙動が業務の延長に見えやすく、判別が難しくなる場合があります。
Living Off the Land(LOTL)が検知・対処を難しくし得る点は、CISA等のガイダンスでも整理されています。

2.3 自動化・再現性が高く、横展開しやすい

CLIは試行錯誤→成功パターンの反復がしやすく、コマンド列やスクリプトとして再利用・自動化しやすい性質があります。結果として、対象が増えた場合も同様の要領で展開しやすくなります。

2.4 一律遮断が難しい(業務利用と衝突しやすい)

防御側としては「危ないものは止めたい」一方で、CLIやスクリプト実行基盤は業務にも使われます。
PowerShellは典型例で、CISも「単にPowerShell実行ファイルをブロックする」アプローチが現実的・効果的ではない旨を述べています。

2.5 環境が変わっても転用しやすい(横断性)

T1059には、PowerShell / Windows Command Shell / Unix Shell / Network Device CLI / Cloud API など、環境ごとの“実行手段”がサブテクニックとして整理されています。
攻撃者視点では、対象環境が変わっても「その環境で一般的な実行手段に寄せる」という方針を取りやすくなります。

3. サブテクニック例:環境ごとの「入口」

T1059は「コマンド/スクリプトで実行する」という大枠が同じでも、環境ごとに入口(サブテクニック)が整理されています。代表例を4つだけ挙げます。

  • T1059.001 PowerShell:Windows環境での代表的な実行口。管理用途でも一般的で、攻撃でも頻出します。
  • T1059.003 Windows Command Shell:cmd.exe などのWindows標準シェル。簡単な実行・連鎖の入口になりやすい枠です。
  • T1059.004 Unix Shell:sh/bash など、Linux/Unix系の標準シェル。サーバやコンテナ環境での“まず動かす口”として自然に出てきます。
  • T1059.009 Cloud API:クラウド環境では、Cloud Shell など「クラウド上でCLI/スクリプトを使う統合環境」そのものが実行口になります。

(他にも Network Device CLI など、対象領域に応じた入口が用意されています。)

4. 攻撃チェーンの中でのT1059:どこで使われやすいか

T1059は単体で派手な動きをするというより、**次の行動に繋ぐための“実行の取っかかり”**として登場しやすいテクニックです。
MITREも、Initial Access・C2・対話シェル・Remote Servicesなど、登場パターンが広いことを説明しています。

4.1 目的と手段の橋渡しとして機能する

攻撃者は「目的(探索/収集/横展開など)」に対し、「この環境で実行を通せる手段」を選びます。その入口としてT1059が選ばれる、という構造になりやすいと整理できます。

4.2 他タクティクスへ接続しやすい

T1059はExecutionの“入口”であり、Discovery・Collection・Credential Access・Lateral Movementなど、後続の多様な行動へ接続し得ます。

4.3 ローカル実行に限らず、リモート実行の文脈でも現れやすい

MITREはT1059の説明の中で、対話シェルだけでなく Remote Services を利用して remote Execution を行う可能性にも触れています。
そのためT1059は端末内で完結する話に限らず、遠隔操作の文脈でも現れやすいといえます。

4.4 小まとめ

  • Execution(TA0002)は、他タクティクス達成のための起点になりやすい
  • T1059は登場局面が広く、攻撃チェーンの中で“挟まれやすい”

5. 検知の観点:CLI実行をどう捉えるか

T1059を“観測”する際の基本は、「どのインタプリタ/シェルが」「誰に」「どんな引数で」「どんな文脈で」起動されたかです。
MITREのT1059のDetection Strategyでも、powershell.exe や cmd.exe などの実行を、想定外の管理時間帯・異常なユーザー文脈・エンコード/難読化引数・二次実行といった要素と組み合わせて捉える方向性が示されています。

5.1 まず集めたいログ(最小セット)

  • プロセス実行ログ(プロセス名/フルパス/コマンドライン/親プロセス/実行ユーザー/端末・ホスト情報)
  • スクリプト実行の中身が取れるログ(取れる環境だけでOK:PowerShellや各種スクリプト基盤の実行内容)
  • クラウド監査ログ(Cloud API が入口になる場合:誰が、どのAPIを、どのIP/トークン文脈で呼んだか)
  • (該当する場合)NW機器の操作ログ(Network Device CLI の実行痕跡)

5.2 観測ポイント(“文脈”で見る)

プロセス実行ログを中心に、次の観点で「普段と違う」を拾います。

  • 誰が実行したか:通常その実行口を使わないユーザー/アカウントでないか
  • いつ実行したか:想定外の管理時間帯(深夜帯・休日など)でないか
  • どこで実行したか:端末/踏み台/サーバ/コンテナ/CIなど、“本来そこで実行されるか”
  • 親プロセスは何か:普段の運用フローに乗った親か、唐突な親か(例:業務アプリや文書閲覧プロセス等から直接起動される等)
  • 引数はどうか:ワンライナーの極端な長さ、エンコード/難読化の兆候、間接実行っぽい形(文字列で次の実行を組む等)

5.3 “実行の後”までセットで見る(T1059単体で終わらない前提)

T1059は「入口」なので、成功している場合は後続イベントが伴いやすいです。MITREも“二次実行”のような後続を示唆しています。
具体的には、次のような“続き”が同じホスト/同じセッションで連鎖していないかを見ます。

  • 二次プロセスの生成(別の実行ファイル起動、別インタプリタ起動、スクリプトの連鎖など)
  • 外向き通信の開始(取得・呼び出し・C2等に繋がる可能性があるため、「CLI実行の直後に通信が生える」は強い手がかり)
  • 新規ファイルの作成/書き込み(一時領域・ユーザー領域など、“普段そこに置かれない”場所に出るか)

5.4 例:T1059サブテクニック別に見るなら

  • PowerShell(T1059.001):管理用途と衝突しやすいので「止める」より「文脈で異常を拾う」が現実的です(単にpowershell.exeをブロックするのは有効でも現実的でもない、という趣旨の指摘もあります)。
  • Unix Shell(T1059.004):サーバ/コンテナでは“いつも動いているシェル”が混ざるため、親子関係・実行ユーザー・起動元(ジョブ/デプロイ/運用手順)で差分を見るのが効きます。
  • Cloud API(T1059.009):実行口が「API呼び出し」になるので、監査ログで“誰が何をしたか”を押さえるのが主戦場になります。

6. まとめ

  • Execution(TA0002)は「攻撃者が制御するコードの実行」に関わるテクニック群で、他タクティクスと組み合わせて使われやすい
  • T1059はその代表例で、Initial Access〜C2〜対話実行〜Remote Servicesまで登場局面が広い
  • 防御側は「一律遮断」ではなく、実行の文脈(ユーザー/時間帯/親プロセス/引数の傾向)を重視して捉えるのが現実的

明日のアドベントカレンダーは、@inuverse44 さんの「少しだけ背伸びして理解するJPEG圧縮」です。お楽しみに!


RetailAIとTRIALではエンジニアを募集しています。
興味がある方はご連絡ください!

参考

28
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?