※本記事にはアフィリエイトリンクが含まれます。詳しくはプライバシーポリシー・広告掲載についてをご覧ください。
Pythonは機械学習・自動化・Web開発など幅広い用途で利用される汎用プログラミング言語ですが、サイバー攻撃においても強力なツールとして悪用されています。MITRE ATT&CKではT1059.006 Pythonとして分類されており、APT41やTurla、Kimsukyなど複数の国家支援型攻撃グループによる利用が確認されています。本記事では、Pythonがなぜ攻撃に悪用されるのか、実際の攻撃事例、検出方法、そして実務で使える緩和策を日本語で詳しく解説します。
※本サイトはMITRE ATT&CK®の非公式日本語解説サイトです。Based on MITRE ATT&CK® v16。
T1059.006 Pythonの概要
T1059.006は、T1059 Command and Scripting InterpreterのSub-techniqueであり、Execution(実行 / TA0002)タクティクスに属します。攻撃者はPythonを使用して、攻撃の自動化、リバースシェルの構築、データの窃取、ポストエクスプロイト(侵入後の活動)など多岐にわたる攻撃活動を行います。PythonはOS標準搭載のケースも多く(macOS、多くのLinuxディストリビューション)、攻撃者にとって非常に利便性の高いスクリプト環境です。
Pythonが攻撃に悪用される理由
- クロスプラットフォーム: Windows、macOS、Linuxのすべてで動作し、一つのスクリプトで複数のOSを攻撃可能
- 豊富なライブラリ:
socket、subprocess、os、ctypes、requestsなど、ネットワーク通信・プロセス操作・システム制御に使えるモジュールが標準で利用可能 - OS標準搭載: macOSやほとんどのLinuxディストリビューションにプリインストールされており、追加インストール不要で攻撃を開始できる
- ポストエクスプロイトフレームワーク: Impacket、Cobalt Strike用ローダー、Mythic C2エージェントなど、Pythonベースの攻撃ツールが豊富に存在
- 難読化・パッキング: PyInstaller、py2exe、Nuitkaなどでスタンドアロン実行ファイルに変換でき、Python未インストール環境でも実行可能かつ解析が困難
- PyPIサプライチェーン攻撃: 正規のパッケージに偽装した悪意あるパッケージをPyPI(Python Package Index)に公開し、開発者を騙してインストールさせる攻撃が増加
攻撃シナリオ例
APT41(Double Dragon)— Pythonベースのポストエクスプロイト
中国の国家支援型グループAPT41は、サイバースパイ活動と金銭目的の攻撃を両方行うことで知られ、Pythonベースのツールを積極的に活用しています。典型的な攻撃フローは以下の通りです:
T1190(公開サービスの悪用)→ T1059.006(Python実行)→ T1005(ローカルデータ収集)
- Webアプリケーションの脆弱性(SQLインジェクション等)を突いて初期アクセスを獲得
- 侵入先のサーバーにプリインストールされたPythonを利用して偵察スクリプトを実行
- Pythonで書かれたカスタムバックドアを配置し、C2(Command and Control)サーバーと通信を確立
- Impacketライブラリを使用してActive Directory環境内での横展開(Lateral Movement)を実行
- Pythonスクリプトでデータを暗号化し、HTTPSトンネル経由でデータを外部に持ち出す
Turla(Snake)— Pythonバックドアによる長期潜伏
ロシアのFSBに関連するとされるTurlaグループは、Pythonで記述されたバックドアを使用した長期的なスパイ活動で知られています。Turlaの特徴的な手法として、侵害したWebサーバー上にPythonのTiny Shellバックドアを配置し、正規のWebトラフィックに偽装してC2通信を行います。また、Carbon(別名:Snake)フレームワークの一部コンポーネントにPythonが使用されており、モジュール式のプラグインアーキテクチャにより柔軟な攻撃活動を実現しています。
PyPIサプライチェーン攻撃 — 悪意あるパッケージの大量配布
2022年以降、PyPI(Python Package Index)を悪用したサプライチェーン攻撃が急増しています。攻撃者は正規パッケージに酷似した名前(タイポスクワッティング)で悪意あるパッケージを公開し、開発者がpip installで誤ってインストールすることを狙います。これらの悪意あるパッケージは、setup.pyの実行時にリバースシェルを起動したり、環境変数やSSHキーなどの認証情報を窃取してC2サーバーに送信します。2023年には数千個の悪意あるパッケージがPyPIで発見・削除されており、開発環境のセキュリティが重要な課題となっています。
検出方法
Pythonプロセスの実行監視
Pythonの不審な実行を検出するために、プロセスの起動イベント(Sysmon Event ID 1、Windowsイベント ID 4688、Linux auditd)を監視します。以下のパターンは攻撃の兆候として特に注意が必要です:
python.exe/python3が想定外のディレクトリから実行される(例:C:\Users\Public、/tmp、/dev/shm)python -c "..."によるワンライナー実行: コマンドラインで直接Pythonコードを実行するパターン- 親プロセスが異常: Webサーバー(apache、nginx、IIS)やOfficeアプリケーションからPythonが起動する場合
pythonがBase64デコードやexec()/eval()を含むコマンドラインで起動される- PyInstallerの一時ディレクトリ(
_MEIで始まるフォルダ)からの実行ファイル起動
ネットワーク接続の監視
Pythonプロセスからの不審なネットワーク通信を検出することで、リバースシェルやC2通信を早期に発見できます。Sysmon Event ID 3(ネットワーク接続)やEDRのネットワークテレメトリを活用します。
python/python3プロセスからの外部IPへのアウトバウンド接続(特にポート443、8443、4444、8080など)socketモジュールによるRAWソケット通信: 通常のHTTP/HTTPSではない低レベルの通信- DNS over HTTPSやDNSトンネリング:
requestsライブラリを使ったC2通信の隠蔽 - Pythonプロセスからの大量データ送信: データ窃取(Exfiltration)の兆候
ファイルシステムとパッケージ管理の監視
Pythonスクリプトの配置やパッケージのインストールを監視することで、攻撃の準備段階を検出できます。
pip installの実行ログ: 本番環境での想定外のパッケージインストールは攻撃者がツールを導入している可能性.py/.pycファイルの新規作成:/tmp、一時ディレクトリ、Webルート配下への不審なスクリプト配置- PyInstallerによるパッキング痕跡:
_internalディレクトリや_MEI*一時フォルダの存在 - 仮想環境の不審な作成:
venv/virtualenvが通常使用しない場所に作成される
緩和策(Mitigations)
| ID | 緩和策名 | 概要 |
|---|---|---|
| M1042 | 機能の無効化・削除 | Pythonが業務上不要なシステムからはアンインストールする。特にWindowsサーバーやクライアント端末からの削除を検討 |
| M1038 | 実行防止 | AppLocker/WDACでpython.exe/python3の実行を許可されたユーザー・ディレクトリに制限。SELinuxやAppArmorでLinux上の実行を制御 |
| M1049 | ウイルス対策/マルウェア対策 | エンドポイント保護ソフトでPythonスクリプトの悪意あるパターン(リバースシェル、認証情報窃取等)を検出 |
| M1033 | ネットワーク境界の制限 | Pythonプロセスからの不要なアウトバウンド通信をファイアウォールでブロック。ネットワークセグメンテーションの実施 |
| M1047 | 監査 | Python実行のログ収集を強化。auditd、Sysmon、EDRによるプロセス・ネットワーク・ファイル操作の記録 |
実装チェックリスト
- ☐ 業務上Python不要な端末・サーバーからPythonをアンインストール
- ☐ AppLocker/WDAC(Windows)またはSELinux/AppArmor(Linux)でPython実行を制限
- ☐ Sysmon/auditdでPythonプロセスの起動イベントを監視
- ☐ EDRでPythonプロセスからの不審なネットワーク接続をアラート設定
- ☐ pip installの実行を本番環境で制限・監視する運用ルールを策定
- ☐ PyPIからのパッケージインストール時に依存関係の検証を実施(
pip-audit等) - ☐ エンドポイント保護ソフトを導入し、Pythonスクリプトのリアルタイム検出を有効化
- ☐ ネットワークセグメンテーションでPythonが動作するサーバーの通信を制限

おすすめセキュリティ対策ツール
Pythonベースの攻撃を検出・防御するためには、プロセス監視とネットワーク監視に対応したエンドポイント保護が重要です。
🛡️ まず今日から始めるなら:エンドポイント保護ソフトの導入
Pythonスクリプトによるリバースシェルやデータ窃取は、エンドポイント保護ソフトのリアルタイムスキャンと振る舞い検知で検出可能です。特にPyInstallerでパッキングされた実行ファイルの解析に対応した製品が有効です。
- ESET(イーセット) — 誤検知が少なく軽量。中小企業に人気のコスパ重視セキュリティソフト
- ウイルスバスター — 日本語サポートが充実。国産ソフトで中小企業導入実績多数
- Norton(ノートン) — 世界最大手のセキュリティベンダー。VPN機能も含む総合対策
※ 上記はアフィリエイトリンクです。料金・機能は各公式サイトで必ずご確認ください。
まとめ:Python攻撃対策の要点
- 不要な環境からPythonを削除する:業務でPythonを使用しない端末やサーバーからはアンインストールし、攻撃対象領域を縮小する
- プロセス実行を監視する:python.exe/python3の起動元、コマンドライン引数、親プロセスを監視し、不審な実行パターンを検出する
- ネットワーク通信を制御する:Pythonプロセスからの外部通信をファイアウォールとEDRで監視・制限し、リバースシェルやC2通信を遮断する
- サプライチェーンに注意する:PyPIからのパッケージインストールは
pip-audit等で検証し、本番環境でのpip installは厳格に管理する
参考資料:MITRE ATT&CK T1059.006 – Python / 情報セキュリティ10大脅威 2026(IPA) / JPCERT/CC
Based on MITRE ATT&CK®, © The MITRE Corporation. Licensed under Apache License 2.0. 本記事は非公式の日本語解説です。

コメント