Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
process-watcher — エクスプロイトの検出を試みるプロセス監視ツール | Kitploit
ツール/GitHubGitHub/neo23x0/process-watcher
防御ツール動的分析 (サンドボックス)マルウェア分析脅威インテリジェンス侵入検知インシデントレスポンスログ分析
GitHubneo23x0/process-watcher

process-watcher

エクスプロイトの検出を試みるプロセス監視ツール

リポジトリを見る
131621日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

process-watcher ロゴ

process-watcher

エクスプロイトの検出を試みるプロセス監視ツール

[!IMPORTANT] 新たな脅威: 2026年10月21日 14:00 UTC に予定される PHP の重大なセキュリティリリース。 PHP プロジェクトは 10月20日にこれを発表しました(発表): 2件の重大な脆弱性で、いずれも CVSS v4.0 で 9.2 と評価されています。詳細、影響を受けるバージョン、修正はリリース時に公開されますが、詳細が 公開されたり悪用が始まったりした場合は前倒しになる可能性があります。今すぐ PHP の更新に備えてください。

この発表では、どのような種類の欠陥なのかは述べられていません。攻撃によって PHP がプログラムを起動した場合、 process-watcher はそれぞれをコマンドラインとともに表示し、必要に応じて指定したものを強制終了できます。これは これらの欠陥を探すものではありません。何も防止せず、プロセスを起動せずに PHP 内部で実行されるコードは見逃すため、 検出レイヤーを追加するものであり、パッチの代替にはなりません。

まずはこちら: process-watcher で PHP を監視する、または PHP 完全ガイドをお読みください。

サービスが何を起動するかを可視化します。 process-watcher はサービス(Web サーバー、アプリケーションサーバーなど)と それが作成するすべてのプロセスをリアルタイムで追跡し、各起動、プログラムの変更、終了を JSON として記録します。オプションで コマンドラインも含まれます。Web サーバーが突然シェルや curl を実行したとき、何が、どのプロセスによって、どの サービスから起動されたのかがわかります。Linux(amd64、arm64)向けの単一の静的バイナリです: ダウンロードして、展開して、実行するだけです。

これはアクティビティを可視化するものであり、判断するものではありません。ベースラインを構築したり、何が攻撃かを判断したりするのは、 あなた自身、またはイベントを受け取るシステム(ログファイル、SIEM、Webhook)に委ねられます。オプションで、特定の子 プロセスに対して的を絞った SIGKILL で反応させることもできます(Kill ルール)。

process-watcher の仕組み: 名前に指定したテキスト(ここでは php-fpm)を含むすべてのプログラムと、それが起動するすべてのものを監視し、各起動、プログラムの変更、終了をローカルの JSON ログに書き込み、オプションでイベントを TCP、UDP、または Webhook 経由で送信し、リバースシェルなどの一致する子プロセスを強制終了できます(Kill ルール)。

クイックスタート

1. 最新のリリースをダウンロードして展開します(amd64 または arm64、お使いのマシンから自動検出されます。アーカイブ名にはバージョンが含まれるため、2行目で最新のタグを検索します):

ARCH=$(uname -m | sed 's/x86_64/amd64/; s/aarch64/arm64/')
VERSION=$(curl -fsSLI -o /dev/null -w '%{url_effective}' https://github.com/Neo23x0/process-watcher/releases/latest | sed 's#.*/##')
curl -fsSLO https://github.com/Neo23x0/process-watcher/releases/download/$VERSION/process-watcher_${VERSION}_linux_${ARCH}.tar.gz
tar xzf process-watcher_${VERSION}_linux_${ARCH}.tar.gz && cd process-watcher_${VERSION}_linux_${ARCH}

2. 実行する 監視したいサービスに対して実行します。root権限と、BTFを備えたLinux 5.15以降が必要です。 sudo ./process-watcher doctor を実行すると、お使いのホストが条件を満たしているか確認できます。

sudo ./process-watcher --watch-image-contains nginx --capture-argv=true

nginx はサービスの実行ファイル名(apache2、php-fpm、java など)の部分文字列です。エージェントを Ctrl-C で停止すると、イベントが ./process-watcher.jsonl に書き込まれます。--capture-argv=true はコマンドラインを記録しますが、 これにはシークレットが含まれる可能性があります(引数のキャプチャ)。ファイルの方がよければ、バイナリの隣にある process-watcher.yaml を編集し (自動的に検出されます)、sudo ./process-watcher を実行してください。

3. サービスが起動するものを監視する(2 つ目のターミナル、同じディレクトリ内。jq を使うと JSON が読みやすくなります):

sudo tail -f process-watcher.jsonl | jq -r '
  select(.event_type=="process.exec" and .lineage.role=="descendant")
  | "\(.timestamp[:19])Z  \(.root.image) > \(.process.image)  \(.process.argv // [] | join(" "))" | gsub("[[:cntrl:]]"; "?")'

例: nginx というサービスがシェルと少数のプログラムを実行するように仕向けられます (代役のプログラムでシミュレート):

2026-10-17T19:15:16Z  nginx > dash  sh -c id; uname -s
2026-10-17T19:15:16Z  nginx > id  id
2026-10-17T19:15:16Z  nginx > uname  uname -s
2026-10-17T19:15:16Z  nginx > curl  curl --version
2026-10-17T19:15:16Z  nginx > sleep  sleep 1

シェル、ダウンロードツール、インタプリタ(sh、curl、wget、nc、python、...)を起動するWebサーバーやアプリケーションサーバーは、Webシェルやリモートコード実行の典型的な痕跡です。すべての世代が追跡され、親プロセスが終了した後も同様です。(jqは表示のために引数を結合するだけであり、イベントはそれらを配列として保持します。shはdashとして表示されます。これは、実際に実行されたプログラムがイメージであるためです。)

次へ: systemdサービスとして実行し続ける · --tcp-address、--udp-address、または--webhook-urlでイベントをSIEMやログパイプラインに送信する(出力) · 疑わしい子プロセスを自動的に終了する(キルルール)。

要件

要件値
オペレーティングシステムLinux、amd64またはarm64
カーネル5.15以降で、BTF付き(/sys/kernel/btf/vmlinux)。バージョン番号だけでは保証されません。起動時にエージェントは必要な関数とカーネル構造体フィールドをチェックします。
権限root、またはCAP_BPF + CAP_PERFMON(他のユーザーのプロセスの/proc/<pid>/exeにはCAP_SYS_PTRACE、キル機能にはCAP_KILL、カーネル5.11より前はCAP_SYS_RESOURCE)。カーネルロックダウンconfidentialityは動作を妨げます。
PID名前空間ホストの初期PID名前空間(すべてのPIDはホストPID)。コンテナ内での実行は拒否されます。

要件が満たされていない場合、エージェントは具体的な診断とともに終了コード3で停止します。短命なプロセスを見逃す/procのポーリングにフォールバックすることは決してありません。sudo ./process-watcher doctorはすべてをチェックし、プログラムをロードして独自のプローブプロセスを実行します。テスト済みカーネル: docs/compatibility.md。

インストール

ダウンロードの検証

# in the directory the archive was downloaded to, with $VERSION and $ARCH from step 1
curl -fsSLO https://github.com/Neo23x0/process-watcher/releases/download/$VERSION/SHA256SUMS
sha256sum --check --ignore-missing SHA256SUMS
gh attestation verify process-watcher_${VERSION}_linux_${ARCH}.tar.gz --repo Neo23x0/process-watcher   # build provenance

各アーカイブには、単一の静的バイナリ(eBPF プログラムが埋め込まれており、実行時に他に必要なものはありません)、コメント付きのサンプル設定 process-watcher.yaml、LICENSE、php/ 以下に emerging-threats/ 内の PHP キットの 2 つの設定(すぐに使用可能: process-watcher --config php/php-observe.yaml)、そして packaging/ に systemd ユニットとそれをインストールするスクリプトが含まれています。提供されるのは amd64 と arm64 のみです。eBPF コレクターは 64 ビットカーネルポインターを前提としているため、32 ビットカーネル(x86、ARM)はサポートされていません。

systemd サービスとして

展開したアーカイブから:

sudo ./packaging/install.sh ./process-watcher    # binary, configuration and unit; starts nothing
sudoedit /etc/process-watcher/config.yaml        # adjust the watch list
sudo process-watcher doctor
sudo systemctl enable --now process-watcher

詳細、リポジトリのクローンからのインストール方法、およびユニット設定の理由については、packaging/INSTALL.md を参照してください。systemd を使用しない場合は、バイナリをコピーして root 権限で起動してください。

使用例

# Log file elsewhere, remote outputs and an exclusion
sudo ./process-watcher --watch-image-contains nginx --exclude-image-contains legitimate-helper \
  --log-file /var/log/process-watcher/events.jsonl \
  --tcp-address collector.example.net:9000 --udp-address 192.0.2.20:9001 \
  --webhook-url https://collector.example.net/hooks/processes

# YAML plus overriding single values
sudo ./process-watcher --config /etc/process-watcher/config.yaml \
  --watch-image-contains nginx --watch-image-contains apache2 --capture-argv=true

# Without root, without observation or network access
./process-watcher check-config --config ./process-watcher.yaml
./process-watcher print-config --config ./process-watcher.yaml

# React to child processes (see Kill rules)
sudo ./process-watcher --watch-image-contains nginx --capture-argv=true --kill-enabled=true \
  --kill-field image --kill-field argv --kill-string demo-long-running-helper \
  --kill-regex '^(useradd|usermod)$'

examples/ に設定例があり、それぞれがテスト内の厳格なローダーによって検証されます。試用向けのシンプルな レシーバー(Python 3 標準ライブラリのみ)は examples/receivers/ にあります。 nc -lk 9000(TCP)と nc -lu 9001(UDP)があれば、最初の確認には十分です。

コマンドと終了コード

コマンド効果
run(デフォルト)監視を開始します。一致するプロセスがまだ実行されていなくても待機します。
check-config設定を検証します。BPF プログラムをアタッチせず、ファイルを作成せず、エンドポイントに接続せず、シグナルを一切送信しません。アクティブな kill ルールがあっても同様です。
print-config解決済みの設定(YAML)とそのソースファイル。シークレットは含みません。ベアラートークンは変数名のみ、webhook URL はスキームとホストのみです。
doctor要件と権限を確認します(上記参照)。
--help、--versionすべてのフラグ、デフォルト値、YAML キーのヘルプ、バージョン。
ツールをダウンロード