web-dev-qa-db-ja.com

ハッカーはどのようにオープンポートを攻撃のベクトルとして利用しますか?

インターネットに接続されているすべてのマシンで開いているポートを閉じることは、広く知られているため、一般的に行われています。

たとえば、一般的なプログラムが通信チャネルとしてポートxyzを使用しており、そのプログラムに脆弱性があり、そのポートを介して悪用される可能性がある場合、なぜポート80を介して同じ攻撃が成功しないのでしょうか?

私たちの疑似プログラムがポート888 TCPを使用し、それが悪用される可能性のある脆弱性を持っていることを考えると、なぜその脆弱性はポート80を介して悪用できないのですかTCP(これはHTTPであり、ほぼ任意のマシン)?

TCPパケット)の一意のタイプのみをリッスンするWebサーバーのポート80は、特定の種類のパケットのみを受け入れますか?

ハッカーが悪意のある文字列でTCP=パケットを作成し、それをHTTPパケット内にカプセル化して、Webサーバーを攻撃することができないのはなぜですか?

16
Franko

サービスはポートをリッスンします。 Webサーバー(サービス)はポート80をリッスンしますが、これは単なる標準であり、難しい規則ではありません。任意のポートでリッスンするように任意のサービスを構成できます。 「特別なパケット」ではなく、必要なサービスを取得するための「適切なポート番号をダイヤルする」ことです。

疑似プログラムに脆弱性がある場合、攻撃される可能性があります割り当てられているポートで。待機していないポートでプログラムを攻撃することはできません。別のポート(例のポート80など)で攻撃しようとしても、プログラムには到達しません。

最後の質問は少し奇妙です。「ハッカーが悪意のある文字列を含むTCPパケットを作成し、HTTPパケット内にカプセル化して、Webサーバーを攻撃できないのはなぜですか。 ? "それはISハッカーが何をするかです。しかし、彼らは攻撃したいサービスのポートをターゲットにしています。しかし、私が提供した情報に基づいてその質問を絞り込むことができます。

では、なぜポートを閉じるのですか?インターネットに公開する潜在的に脆弱なサービスの数を減らしたいからです。

11
schroeder

「ポートのブロック」は、実際に何をしたいかを示すおおよその方法であり、一部のservicesへのアクセスをブロックしています。

新しくインストールされたオペレーティングシステムでは、多くの場合、自動的に実行される多くのものがあり、その一部はネットワーク部分を持つサービスです。このようなサービスのネットワークで悪用可能な脆弱性は、攻撃者にとって潜在的なアクセスドアです。ただし、そのようなサービスすべてに、ワイドインターネットを通じて誰もがアクセスできることはめったに関係ありません。たとえば、Webサーバーであるはずのマシンの場合、地球上の誰もが特定の「Web」サービス(その機能)にアクセスしようとするのは通常のことであり、SSHサービスも開いている(サーバー管理者がサーバーを管理できるようにするため);ただし、そのサーバーのファイル共有サービスも広く開かれていても意味がありません。

特定のポートへのアクセスをブロックすることはファイアウォールで行うことができ、特定のサービスを実行しないようにOSを説得したり、ソフトウェアの機会に再起動したり、新しいサービスを発明したりしないようにするよりも時間効率が良いと考えられています。更新。したがって、通常はブロックしますallポートexcept世界中でアクセスできるサービスに対応することがわかっているポート(たとえば、WebおよびSSHの場合はそれぞれ80および22)。

5
Tom Leek