web-dev-qa-db-ja.com

脆弱性スキャナーを使用して、tcp / 0ポートに多数の脆弱性が見つかります

Nessusによってlinux/Unixサーバーで認証された脆弱性スキャンを実行し、数千の脆弱性がポートtcp/から発生しました。 IANA予約ポート(tcp/0)はどのようにトラフィックを処理できますか?それらの脆弱性は本当に数えられますか、それとも誤検出として出てきましたか?ポートtcp/0で示された脆弱性の修正プロセスをどのように進める必要がありますか?

12
Shakir

IANA予約ポート(tcp/0)はどのようにトラフィックを処理できますか?

それできます。一般に、TCP(またはUDP)ポート0が予約済みの状態であっても、実際に使用できないわけではありません。 バークレーソケットの設計方法 ポート0にバインドするのはそれほど簡単ではありません。それを使用する それにもかかわらず可能です

ただし、あなたの場合、これが実際に起こっているである可能性はほとんどありません。ポート0/TCPまたは0/UDPの下の特定のポートに密接に関連していないアクティビティを一覧表示するNessusスキャナーを使用しているだけです(参照: "ホストごとの脆弱性" )。これは単に、ポート0の下にport-less警告を表示する(不便ですか?)規約です-皮肉にも、混乱を避けるためです。

これらのa)は必ずしも脆弱性ではなく、警告または提案のみであることに注意してください(例: Microsoftのベストプラクティス に準拠していないスキャナーの実行中)。 b)必ずしも偽陽性ではありません。ポート0自体を無視して、レポートを注意深く読み、それに応じて行動してください。

16
ximaera

IANA予約ポート(tcp/0)はどのようにトラフィックを処理できますか?

受け入れられた回答は、ポート0がまだ実際のポートであることを説明していますが、ポートがTCPでどのように機能するかを理解することは役立つ場合があります。以下は、32ビット幅のa TCPパケットのスケールです。UDPは似ていますが、かなり単純です(ポートの後は、長さフィールドとチェックサムフィールドしかありません)データの前)。

 0 1 2 3 
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
 + ------------------------------- + ---------------- --------------- + 
 |送信元ポート|宛先ポート| 
 + ------------------------------- + --------- ---------------------- + 
 |シーケンス番号| 
 + ----------------------------------------- ---------------------- + 
 |確認番号| 
 + ------- + ----------- +-+-+-+-+-+-+ --------- ---------------------- + 
 |データ| | U | A | P | R | S | F | | 
 |オフセット|予約済み| R | C | S | S | Y | I |ウィンドウ| 
 | | | G | K | H | T | N | N | | 
 + ------- + ----------- +-+-+-+-+-+-+ ----------- -------------------- + 
 |チェックサム|緊急ポインタ| 
 + ------------------------------- + --------- ---------------------- + 
 |オプション|パディング| 
 + ------------------------------------------ ----- + --------------- + 
 | | 
/...データ(オプション)... /
 | | 
 + ------------------------------------------- -------------------- + 

ご覧のとおり、送信元ポートと宛先ポートのフィールドはどちらも16ビット幅です。これは、0から65535までの65536の異なる状態を表すことができることを意味します。これは、値が符号なしとして扱われるため、負のポートがない理由です。ポートがすべてnullバイト(ポート0を表す)になるのを阻止する唯一のことは、IANA標準でそれを行わないことです。いずれかのポートを0に設定してパケットを送信することは完全に可能です。ポート0を予約しておく目的は、「任意のポートを与える」ことを16ビット整数で表すことができるようにすることです。 TCP/0にバインドしようとすると、宛先ポートがすべてゼロに設定されたパケットをリッスンするのではなく、システムは使用可能な任意のポートにバインドすることになります。

3
forest