Windowsコマンドプロンプトでのnetstatを活用したネットワーク接続確認と不審な接続の特定方法では、TCPとUDPを別々に取得し、注目PIDをprocess path・start time・署名・業務用途へ結び付ける。netstat -anoはendpoint、state、PIDを示すが、そのconnectionが悪性かは判定しない。共有service process、browser、CDN、短命通信ではPIDやremote IPだけで結論できない。この記事はprotocol、local endpoint、remote endpoint、state、PID、process start timeを一接続観測にするを判断軸にして、記事固有のコード、合否、停止条件、復元を順序立てて説明します。
port reachabilityではなく、ローカルendpoint tableからprocess ownershipを調べる。完了は「注目connectionの両endpoint、state、PID、実行fileを同じ時刻で示し、known/unknownの根拠を説明できる」です。結果が空なら「一回0件でも通信なしと断定せず、観測間隔、権限、短命connection、IPv6を確認する」として調べ、エラーを0件へ置き換えません。
LISTENINGとESTABLISHEDを分ける
TCPとUDPを別々に取得し、注目PIDをprocess path・start time・署名・業務用途へ結び付ける。netstat接続と所有processの調査では、単にコマンドが終了したことではなく「注目connectionの両endpoint、state、PID、実行fileを同じ時刻で示し、known/unknownの根拠を説明できる」を完了条件にします。port reachabilityではなく、ローカルendpoint tableからprocess ownershipを調べる。
LISTENINGとESTABLISHEDを分けるに入る前に、対象、実行場所、権限、入力の由来を確認します。一回0件でも通信なしと断定せず、観測間隔、権限、短命connection、IPv6を確認する。判定不能を成功へ丸めません。
netstat -anoでTCP/UDPを採取
netstat -anoでTCP/UDPを採取では「protocol、local endpoint、remote endpoint、state、PID、process start timeを一接続観測にする」という粒度で対象を特定します。netstat -anoはendpoint、state、PIDを示すが、そのconnectionが悪性かは判定しない。共有service process、browser、CDN、短命通信ではPIDやremote IPだけで結論できない。表示名や先頭候補だけを採用しません。
netstat接続と所有processの調査の対象が複数なら、候補数と除外理由を残します。netstat接続と所有processの調査では実行ユーザー、OS・製品版、locale、カレントディレクトリも結果の解釈へ影響するため同時に記録します。
local・remote endpointを読む
local・remote endpointを読むは変更や出力生成より先に行う観測です。protocol、local endpoint、remote endpoint、state、PID、process start timeを一接続観測にするを含む形で現状を保存し、後段のコードが同じ対象へ向くか確認します。
netstat.exe -ano -p tcp
netstat.exe -ano -p udp
netstat -anoはendpoint、state、PIDを示すが、そのconnectionが悪性かは判定しない。共有service process、browser、CDN、短命通信ではPIDやremote IPだけで結論できない。netstat接続と所有processの調査では取得不能、対象なし、値が空という三状態を分け、stderrや終了コードを捨てません。
PIDをGet-Processへ対応
PIDをGet-Processへ対応ではTCPとUDPを別々に取得し、注目PIDをprocess path・start time・署名・業務用途へ結び付ける。netstat接続と所有processの調査のサンプルにあるパス、セル、ユーザー、時刻は検証用なので、直前に確認した承認値へ置き換えます。
Get-NetTCPConnection | Sort-Object State,LocalPort | Select-Object -First 50 LocalAddress,LocalPort,RemoteAddress,RemotePort,State,OwningProcess
Get-Process -Id 1234 -ErrorAction SilentlyContinue | Select-Object Id,ProcessName,Path
未知IPだからprocessを終了しない。逆引き名やgeolocationだけで悪性判定しない。netstat接続と所有processの調査で変更が発生する場合は、新規出力、no-clobber、WhatIf、下書き表示など利用可能な安全機構を先に使います。
process pathと署名を確認
process pathと署名を確認では入力と出力を別々に再取得します。netstat接続と所有processの調査の合格は、注目connectionの両endpoint、state、PID、実行fileを同じ時刻で示し、known/unknownの根拠を説明できることです。件数だけでなく識別値と内容も照合します。
$pidToCheck = 1234
$connections = Get-NetTCPConnection -OwningProcess $pidToCheck -ErrorAction SilentlyContinue
$process = Get-Process -Id $pidToCheck -ErrorAction SilentlyContinue
[pscustomobject]@{ProcessId=$pidToCheck;ProcessName=$process.ProcessName;ConnectionCount=@($connections).Count}
$connections | Select-Object LocalAddress,LocalPort,RemoteAddress,RemotePort,State,OwningProcess
一回0件でも通信なしと断定せず、観測間隔、権限、短命connection、IPv6を確認する。netstat接続と所有processの調査の結果が期待と違えば追加変更を重ねず、入力、対象範囲、locale・時刻、権限、製品仕様の順に戻って調べます。
外部IPだけで不審判定しない
未知IPだからprocessを終了しない。逆引き名やgeolocationだけで悪性判定しない。外部IPだけで不審判定しないに当てはまるときは中止理由、対象識別子、終了コードまたはErr.Number、直前に成功した段階を保存します。
一回0件でも通信なしと断定せず、観測間隔、権限、短命connection、IPv6を確認する。netstat接続と所有processの調査の再試行は原因を直し、同じ入力と対象を再確認してから行います。警告抑止や強制上書きで通しません。
短命connectionを複数回観測
baseline、EDR、DNS、proxy、署名、hashを合わせ、netstat単独を検知器にしない。netstat接続と所有processの調査を反復するときは、正常、差分なし、対象なし、要承認、失敗を別の状態として記録します。
| 短命connectionを複数回観測の主キー | protocol、local endpoint、remote endpoint、state、PID、process start timeを一接続観測にする |
| 採用条件 | 注目connectionの両endpoint、state、PID、実行fileを同じ時刻で示し、known/unknownの根拠を説明できる |
| 空結果 | 一回0件でも通信なしと断定せず、観測間隔、権限、短命connection、IPv6を確認する |
| 中止条件 | 未知IPだからprocessを終了しない。逆引き名やgeolocationだけで悪性判定しない |
LISTENINGとESTABLISHEDを分けるから証跡化するlocal・remote endpointを読む
netstat接続と所有processの調査の証跡は「protocol、local endpoint、remote endpoint、state、PID、process start timeを一接続観測にする」を主キーにします。LISTENINGとESTABLISHEDを分けるで確認した値と、実行直前・実行直後の値を同じ作業番号に保存し、表示名が似ている別対象や前回の結果を混ぜません。
netstat -anoでTCP/UDPを採取で空結果を判定するPIDをGet-Processへ対応
netstat接続と所有processの調査の空結果は「一回0件でも通信なしと断定せず、観測間隔、権限、短命connection、IPv6を確認する」として扱います。netstat -anoでTCP/UDPを採取で入力自体が存在するか、権限で見えていないか、条件に一致しないだけかを分け、0件という表示だけで成功・失敗を決めません。
短命connectionを複数回観測から復旧可否を測るLISTENINGとESTABLISHEDを分ける
netstat接続と所有processの調査の復旧判断では「読み取りのみ。packet captureやblockingは別のincident response承認へ分ける」を採用します。短命connectionを複数回観測を再確認し、復旧後に「注目connectionの両endpoint、state、PID、実行fileを同じ時刻で示し、known/unknownの根拠を説明できる」へ戻ったかを別の読み取り処理で測定します。
netstat接続と所有processの調査の事前確認では、protocol、local endpoint、remote endpoint、state、PID、process start timeを一接続観測にするを画面表示や標準出力だけで済ませず、実行日時と一緒に作業記録へ写します。netstat -anoはendpoint、state、PIDを示すが、そのconnectionが悪性かは判定しない。共有service process、browser、CDN、短命通信ではPIDやremote IPだけで結論できないという仕様があるため、似た名前の別対象、前回実行時の値、キャッシュされた表示を今回の対象と取り違えないことが重要です。
netstat接続と所有processの調査のコードを実行した直後は、まず終了状態を保存し、その後に別の読み取り処理で「注目connectionの両endpoint、state、PID、実行fileを同じ時刻で示し、known/unknownの根拠を説明できる」を確認します。netstat接続と所有processの調査では同じコードの表示だけを合否判定に使うと部分成功や遅延反映を見逃すため、識別値、件数、内容の三点を照合します。
netstat接続と所有processの調査で結果が得られない場合は、一回0件でも通信なしと断定せず、観測間隔、権限、短命connection、IPv6を確認する。netstat接続と所有processの調査ではこの状態と、権限拒否、入力形式の不一致、接続先や時刻の違いを一緒にしません。netstat接続と所有processの調査の対象候補数、除外された候補、最後に成功した確認処理を残すと、再試行で同じ失敗を重ねずに済みます。
netstat接続と所有processの調査を元へ戻す必要があるときは、読み取りのみ。packet captureやblockingは別のincident response承認へ分ける。netstat接続と所有processの調査の復元前にも変更後の識別値を再取得し、別担当者の更新が入っていないか確認します。netstat接続と所有processの調査の復元結果も通常処理と同じ完了条件で測り、戻したつもりという報告だけで閉じません。
netstat接続と所有processの調査を引き継ぐ記録には、baseline、EDR、DNS、proxy、署名、hashを合わせ、netstat単独を検知器にしない。特に「未知IPだからprocessを終了しない。逆引き名やgeolocationだけで悪性判定しない」に該当した場合は、実行を止めたこと自体を正しい結果として扱います。netstat接続と所有processの調査の次回担当者が承認範囲と未処理対象を区別できるよう、作業番号と対象識別子を対応付けます。
netstat接続と所有processの調査の作業記録には、開始前の対象候補、採用した識別値、実行したコード、終了後の実測、除外理由を同じ作業番号で保存します。「protocol、local endpoint、remote endpoint、state、PID、process start timeを一接続観測にする」を省くと別対象との比較になり得るため、日時、実行場所、製品版と一緒に残します。
Windowsコマンドプロンプトでのnetstatを活用したネットワーク接続確認と不審な接続の特定方法を定期運用へ組み込む場合も初回は対話的に確認します。正常は「注目connectionの両endpoint、state、PID、実行fileを同じ時刻で示し、known/unknownの根拠を説明できる」、空結果は「一回0件でも通信なしと断定せず、観測間隔、権限、短命connection、IPv6を確認する」、停止は「未知IPだからprocessを終了しない。逆引き名やgeolocationだけで悪性判定しない」として報告し、次の担当者が同じ条件で追試できるようにします。
公式情報・参考資料
netstat接続と所有processの調査のコマンド、API、対応範囲は次の公式一次資料で確認しました。確認日は2026年7月17日です。netstat接続と所有processの調査の実行環境にあるman、–help、VBA Object Browser、Get-Helpも併用してください。

コメント