web-dev-qa-db-ja.com

UDPのブロックとTCPは、不要なネットワークアクティビティを防ぐのに十分ですか?

私は自分のマシンがどこにいつでも接続できることを100%確実にしたいと思っています。すべてのUDPおよびTCPパケットをブロックするファイアウォールを使用するが、明示的に通過を許可するパケットを使用する場合、私の許可なしにマシンがどこにも接続しないことを100%確信できますか?

たとえば、UDPについてまったく知らず、ファイアウォールでTCPルールのみを指定した場合でも、UDPパケットを悪用するマルウェアおよび悪質なスパイウェアに対して脆弱です。つまり、技術的には、 UDPおよびTCPを使用した他の手段/プロトコルは、有線/無線ネットワーク接続を使用してコンピュータと通信するために使用できますか?また、UDPおよびTCPパケットはファイアウォールをバイパスしますか?

OS Mavericksを搭載したMacにLittle Snitchをインストールし、自分のマシンがさまざまなAppleおよびサードパーティのサーバーに接続しようとすると、何もしたくないと言ったにもかかわらず、情報を収集して送信します。一部の接続は明らかに問題ありませんでしたが(例:ntp time syncs)、他の接続は控えめに言っても疑わしいものです。私のマシンで信頼性の高い/堅牢な「境界線制御」を行うことが理論上(および実際上)どれほど可能かを調べます。

9
Greendrake

「自分のマシンがどこにいつでも接続できることを100%確実にしたい」とおっしゃっていましたが、whatが送信されることをカバーする戦略はありますか?

ポートをブロックすることは常に良い考えですが、Webを閲覧するには、ポート80で接続できるようにする必要があり、その時点でマルウェアは通信する方法を持っています。これに気づくと、許可する宛先以外のすべてのIPアドレス宛先もブロックします。すばらしいですね。あなたはstackexchangeが好きで、そこに投稿したいので、SEサーバーに開放し、おそらくGoogleや他のサーバーを必要としています。マルウェアは、特定のアカウントにログインし、後で抽出するためにアカウントプロファイルにbase 64で暗号化されたデータを保存することにより、マシンからstackexchange、googleなどのアカウントにデータを送信する可能性があるため、この時点ではすでに脆弱です。コンテンツフィルタリングを使用しても機能する場合がありますが、構成が難しい場合があります。もちろん、予期しない時間にファイアウォールがアラートを転送に警戒しているはずですが、スマートマルウェアは、たとえば、stackexchangeとの間でデータを送受信していることを確認するまで待機し、同時にデータを送信する可能性がありますあなたのトラフィックの一部であるように見えます。次に、余分な接続とトラフィックに気づくでしょうか、それとも、ブラウザが複数の接続を開いていたと思いますか?

私は、ありそうもないが完全に可能であるような、ひどい絵を故意に描いたので、あなたの質問に対する答えは「いいえ」でなければなりません。唯一確実に安全なことは、それをインターネットに接続することではありません。

6
Nick

以下は、攻撃者がネットワークの一部を制御できない場合にのみ有効です。 DNSサーバーまたはルーター。もしそうなら、あなたはとにかく運命にある:)

すべてのUDPおよびTCPパケットをブロックするファイアウォールを使用するが、明示的に通過を許可するパケットを使用する場合、私の許可なしにマシンがどこにも接続しないことを100%確信できますか?

マシンが許可していないサーバー/ポートに接続していないことは確認できますが、攻撃者へのバックチャネルが存在していないことは確認できません。ご使用のマシンでDNSが許可されている場合、独自のDNSサーバーのみを許可している場合でも、ドアの裏側が潜在的なDNSチャネルである可能性があります。

隠れチャネルの紹介については、SANSリーディングルームの "Detecting DNS-Tunnels" および "Covert Channels" を参照してください。

たとえば、UDPについてまったく知らず、ファイアウォールでTCPルールのみを指定した場合でも、UDPパケットを悪用するマルウェアおよび悪質なスパイウェアに対して脆弱です。つまり、技術的には、 UDPおよびTCP以外の手段/プロトコルは、有線/無線ネットワーク接続を使用してコンピューターと通信するために使用できますか?

[〜#〜] sctp [〜#〜] を参照してください。ただし、これはマシンで使用できる必要があります(デフォルトについては不明です)。

また、UDPとTCPパケットはファイアウォールをバイパスできますか?

通常はありませんが、IPv4とIPv6を有効にし、ファイアウォールをIPv4専用に構成した場合、パケットはIPv6経由で送信される可能性があります。

それ以外の場合は、パケットフィルターをバイパスする方法がわかりません。

cat /etc/protocols(Linuxの場合)は、可能なすべてのプロトコルを表示します。可能性は高いですが(?)カーネルがそれらすべてをサポートするわけではありません。

ただし、朗報は、iptablesがデフォルトですべてのプロトコルに作用することです。したがって、この行はしばしばiptables.rulesの最後に来ます、

-A FIREWALL-INPUT -j REJECT --reject-with icmp-Host-prohibited

明示的に許可されていないすべてのtcp/udpポートだけでなく、明示的に許可されていないすべてのプロトコルでもパケットを拒否します。

これはすべて、設定ミスやカーネルのバグがないことを前提としています。また、カーネルによって制御されていないデバイスも考慮されません。例えば。 USBスティックはO/Sにとってはファイルシステムのように見えますが、表面下ではBluetoothまたはWi-Fiを使用しています。 (公開機能として、またはあなたの知らないうちのいずれかです。)(他の人々はすでにトンネリングについて言及しています。)

3
Darren Cook

これらの回答には多くの誤った情報があります。

ファイアウォールがブロックしている場合TCP IPv4/UDPの場合は、TCPまたはUDPが指定されているIPv4パケットのみが注目されます。ほとんどのファイアウォールではブロックするための詳細設定TCPおよびIPv6のUDP。

TCPとUDP、残りのIPプロトコルについてはどうですか?さて、ここに ファイアウォールがすべてのIPを使用して有効にすることができる他のプロトコルのリストがあります。ルーターが送信するため

確かにTCPとUDPが最も一般的ですが、他のすべての既知のIPプロトコルをブロックしても、別のプロトコルの使用を止めるにはどうすればいいですか?IPv4プロトコル253、マシュープロトコルはどうですか。有効なIP宛先がある限り、正しいIPアドレスに移動します。

ブリキの帽子の世界に飛び込んで、ファイアウォールでIPv4とIPv6をブロックするとします(マシュープロトコルと他のすべてのIPプロトコルが心配です)。最後に、ネットワークカードから任意のデータを送信し、それを解釈する何かネットワーク上にあるアプリを作成するのをやめるにはどうすればよいですか?生の0と1を書き込むネットワークカードドライバーを作成して、ワイヤー上の別の場所でデコードするのを止めるにはどうすればよいですか?またはイーサネットフレームを書き込みます。ルーターが他のすべてのものを破棄する傾向があるため(ARPイーサネットフレームへの応答は別として)、ルーターを通り抜けるには、現実的には何らかの形式のIPv4またはIPv6を話す必要があります。

最近、ローカルアダプターで独自の奇妙なARPフレームを使用してBroadcommを見つけました(おそらくネットワークチーミング機能のため)。

2
Matthew1471

システムにエアギャップがある理由を思いつきました。主なポイントは、誰かがネットワークからデータを吸い上げるのを止めることであり、方法を広く分類し、全体論的なアプローチの方が優れていることを理解するのが最も簡単です。

  1. エンドポイントの識別-エンドポイントのホワイトリスト、DNS/IPの整合性が含まれます
  2. ワイヤープロトコルの正確性-トンネリング、非標準のポート/プロトコル、一貫性のないパケットサイズ、非標準の手段によるシグナリング
  3. アプリケーションの正確性-一貫したアプリケーションの動作。
  4. ユーザー使用パターン-一貫したユーザーパターン

主なポイントは次のとおりです。ブロッキングは氷山の一角にすぎません。適用する時間/労力/お金の量に基づいて、採用する姿勢を決定する必要があります。

1
Munchen