生パケットからアプリケーション名を抽出する

生パケットからアプリケーション名を抽出する

愚かなことですが、パケット/ pcapからアプリケーション名を抽出できますか?

たとえば、パケットの宛先がChromeプロセスの場合、パケットからその情報を抽出できますか?

答え1

プロセス名または同様の名前はパケットの一部ではありません。多くの場合、経験的な方法を使用してパケット自体を表示し、アプリケーションプロトコルの種類を決定できます。送信元と宛先のIPアドレスとポートもパケットから抽出できます。これは、パケットを生成したプロセスに関する情報に基づいて推測するために使用できますが、その推測は間違っている可能性があります。

答え2

IPパケットヘッダーには、これを引き起こしたプロセスに関する情報は含まれていません。ただし、IP パケットのペイロードに含めることができます。同じパケットが異なる時間に異なるアプリケーションによって送信される可能性があります。

ただし、(ルートとして)そのアドレスのソケットがどのアプリケーションに属しているかをLinuxカーネルに尋ねることができます。

grepを使用して、たとえば出力を検索したり、直接尋ねることができss -ntupますss

ss -anp 'src = 192.168.122.3:22'
Netid             State             Recv-Q             Send-Q                           Local Address:Port                            Peer Address:Port              Process                                      
tcp               ESTAB             0                  0                                192.168.122.3:22                             192.168.122.1:58552              users:(("sshd",pid=27425,fd=4))             
tcp               ESTAB             0                  0                                192.168.122.3:22                             192.168.122.1:40662              users:(("sshd",pid=7228,fd=4),("sshd",pid=7217,fd=4))

関連情報