0

特定のアプリケーションをパケットを分析して識別できますか?はいの場合、パケットのどの属性がアプリケーションを一意に識別するのに役立つか?どんな助けもありがとう。パケットに基づいてアプリケーションを特定する

+1

深いパケット検査ライブラリに興味があるかもしれません。最高のオープンソースライブラリはnDPIです。基本的には、サポートされるアプリケーション(Skype、Gmail、YouTubeなど)ごとに指紋データベースがあります。場合によっては、アプリケーションを決定する際に、同じフローで複数のパケットを検査する必要があります。他のライブラリはパケット(パケットサイズ、時間経過など)を使用してパケットを識別します。https://en.wikipedia.org/wiki/Deep_packet_inspection –

答えて

1

この質問は非常に広い範囲を持っており、解決策を考え出すには特許を申請する必要があります。パケットとプロトコルに応じてアプリケーションの知識を得ることができますが、ルールは100%のケースでは機能しません。これらはあなたが知っている必要があります(完全なリストではありませんが、彼らはあなたのアイデアを与えることができます)いくつかの考慮事項です:SRCまたはDSTポートに基づいて

  • あなたは、アプリケーションが2つのノードの一つで実行されているかについての情報を持つことができます。たとえば、デフォルトでは、Webサーバーはポート80または8080(またはHTTPSを使用する443)を使用します。デフォルトでは、sshはポート22を使用します。ただし、別のポートをリッスンするようにアプリケーションを設定できます。また、多くの異なるアプリケーションは、ポート80,8080,443を介した通信にHTTPを使用します。後者の場合、プロトコルはHTTPですが、どのアプリケーションかを判別することはできません。
  • 通信が暗号化されていない場合、パケットペイロードを盗聴する情報を取得できます。しかし、通信がSSL経由で行われている場合、例えば中間者攻撃を実装しない限り、それを行う方法はありません。
  • マシンにアクセスでき、netstatまたは他のツールを使用している場合は、使用しているポートに基づいてアプリケーションを識別できます。
  • 他の推測方法(決定論的なものよりも推測が多い)では、アプリケーションは通信パターンを分析することです。

要するに、ネットワーク解析に基づいて、アプリケーションを推測することができます。しかし、100%の精度であなたを伝える方法はありません。

関連する問題