サーバーへの TCP 接続が第三者によって改ざんされているかどうかを確認するにはどうすればよいですか?

サーバーへの TCP 接続が第三者によって改ざんされているかどうかを確認するにはどうすればよいですか?

私は GFW のような信頼性の低い ISP/AS を利用しています。SYN RST確立された接続への送信、接続タイムアウトの作成、ハンドシェイクの妨害などの攻撃によって、TCP+TLS セッションを積極的に妨害しようとします。

サーバーがこのようなサービス品質攻撃を受けているかどうかを確認するためのユーティリティがネットワーク スタック内にありますか?

たとえば、SYN RSTクライアント/サーバー以外からの攻撃を検出するには、クライアントとサーバーの両方の tcpdump を比較して、信号がサードパーティからの攻撃かどうかを確認します。これは手動で行うことも、スクリプトを書くこともできます。しかし、このために既製のツールはありますか?p0fこれに使用できるツールはありますか?

答え1

原則としてフィンガープリントは攻撃を検出することができます。しかし、お気づきかもしれませんが、これは通常確率的この方法では、個々のパケットが無害であるのか、それとも確実にブロックするように偽造されているのかを確実に判断することはできません。

TTL などのメタデータ フィールドを確認する方が適切です。本物のパケットの場合、偽造されたパケットよりも TTL が低くなる可能性があります。これは、偽造されたパケットがより多くのルーターを通過し、各ルーターでカウンターが減るためです。パケットの TTL が接続で以前に観測されたものと大幅に異なる場合は、パケットをドロップする意味があります。これは、iptables connmark match/CONNMARK target ルール (新しい接続の TTL を接続マークに記録し、後続のパケットをチェックする) を使用して実装できる可能性があります。

ロシアでは多くのインターネット リソースがブロックされていることはご存知でしょう。ブロックのテクノロジはさまざまですが、その 1 つはまさにあなたがおっしゃっているとおりです。つまり、ТСПУ デバイス (「технические средства противодействия угрозам」の略で、脅威に対抗するための技術的手段の略で、本質的には DPI です) が接続をブロックする必要があると判断した場合、TCP RST を送信できます。後続の通常のパケットはブロックされません (少なくともブロックされませんでした)。もしRSTパケットを検出して除去する手段があれば、「ブロックされた」リソースを自由に使用できます。検閲を回避する方法に特化したWebサイトがあります。ntc.パーティー(私はいかなる形でもそれと関係ありません)。特に、コミュニティのアクティブなメンバーの一人であるヴァルディクSS、ソフトウェアを作ったさようならDPIどれのできたこのようなブロックを回避するには、前述の TTL 洞察も使用するようです。同様の機能を備えた他のソフトウェアもリストしています。


また、タイトルの質問に具体的に答えたいと思います。IPsecIP パケット全体 (TCP を含む) またはそのペイロードのみをラップし、電子署名で認証します。これにより、記述した方法を使用して改ざんすることが不可能になります。パケットを暗号化する必要はありません。IPsecahヘッダーがあり、MAC を追加 (およびチェック) し、それ以外はクリアテキストで提示します。または、espヘッダーを使用して暗号化することもできます。

残念ながら、任意の「匿名」サービスに接続する場合はこれに頼ることはできません。IPsecを有効にするには、相手と鍵を共有する必要があるためです。テクノロジーを活用すること。

関連情報