ここでいつも私を困惑させていることがあります。なぜコンピュータのポートが開いていることが悪いことなのでしょうか?あなたのコンピュータにウイルスや、実際に何かをする可能性があるポートを聞いている他のプログラムを持っていないと仮定すると、なぜポートが開いているかどうかは重要なのでしょうか?悪意のある人がポートにパケットを送信し始めても、データを受信して何かをするために何もない場合、なぜポートが開いていることが重要なのでしょうか?コンピュータは受信したデータを恣意的に実行するわけではありません。私は、パケットでコンピュータをフラッディングすると、データの量に対処できないので、コンピュータがクラッシュする原因になることを理解していますが、私は、実際にコンピュータ上のファイルを変更するセキュリティ上の問題だけを考えています
Update
これまでの回答に感謝します。ポートが開いているということは、実際にはそのポートを盗聴している悪用される可能性のあるプログラムがあるということだと理解しました。しかし、なぜ悪用されないソフトウェアを書くのがそんなに難しいのでしょうか?コンピュータに実際に害を及ぼすためには、プログラムは一つ以上のファイルのアップロードを許可しなければならず、そのファイルの一つを実行する必要があるのではないでしょうか?それを偶然に許可するのは信じられないほど難しいことのように思えます
38 None 2009-12-13
何かが接続をリッスンしていない場合、ポートは開いていません
すべてのポートをどこでもオープンにするのは良くないことですが、その理由は、そのポートをリッスンしているサービスが悪用される可能性があるからです。これが、特定のポートへの接続を許可するものを制限し、サービスによってさらされる表面積を減らすために、ファイアウォールが存在する理由です
EDIT
搾取可能ではないソフトウェアを書くことができない理由についてのあなたの質問に答えるために
これは単純なプログラムではかなり簡単ですが、ソケットを必要とする多くのプログラムは複雑です。そのため、多くのコンポーネントが含まれており、その多くは開発者が書いたものではない可能性が高いです (含まれているライブラリ)。ファイアウォールのように、自分で使えるハードニング方法があるのに、ネットワークの安全性を守るために他人に頼ることはできません
ご指摘のように、任意/リモートコードの実行は大きなリスクです。残念ながら、バッファオーバーフローやそれを可能にする他のセキュリティ上の欠陥は一般的です。マイクロソフトのセキュリティアップデートを見てみると、リモートコード実行か権限の昇格のどちらかをパッチしているのは間違いないでしょう
38 MDMarra 2009-12-13
書いていただいた更新について
これまでの回答に感謝します。ポートが開いているということは、実際にはそのポートを盗聴している悪用される可能性のあるプログラムがあるということだと理解しました。しかし、なぜ悪用されないソフトウェアを書くのがそんなに難しいのでしょうか?コンピュータに実際に害を及ぼすためには、プログラムは一つ以上のファイルのアップロードを許可しなければならず、そのファイルの一つを実行する必要があるのではないでしょうか?それを偶然に許可するのは信じられないほど難しいことのように思えます
搾取されないようなソフトを書くのは非常に難しいです
私はBuilding Secure Softwareという本を読んだことがあります。そこには非常に恐ろしい事実が2つありました
- C 言語のプログラミング言語では、多くの関数はデフォルトでは安全ではなく、プログラマは脆弱な関数を避けるために知っておく必要があるか、安全のために特別な措置を取らなければなりません
- ハッカーが使用する必要のあるエクスプロイトは短い – 非常に短い。これはアセンブリ言語の半分以下のページで、100バイト程度のマシンコードに翻訳されています。この悪用コードは、ハッカーがあなたのマシンにシェル(コマンドプロンプト)にアクセスするのに十分なものです。大きなファイルをアップロードして実行する必要はありません – 合法的なデータの途中に挿入できる小さなコードだけです
つまり、もしハッカーが(a)スタックオーバーフローのバグを持っていて、(b)ネットワーク上で悪用可能で、(c)バッファに数百バイトの空きがあるプログラムを見つけられたら、あなたのコンピュータはお払い箱にされてしまうということです。幸いなことに、スタックオーバーフローバグについての知識は今ではかなり一般的な知識となっていますが、それでもまだ出てきます。5年前やそれ以上前は、この問題はもっと頻繁に発生していました
あなたの元の質問に戻りますが、プログラムの悪用可能なバグによる事故を避けるために、オープンポートは避けるべきです。ハッカーが使用するリモートシェルは別のオープンポートです。ファイアウォールで、特に許可したもの以外はすべてブロックしている場合は、そのリモートシェルもブロックします (ただし、ハッカーはあなたのコンピュータに他の厄介なことをすることができますので、満足しないでください!)
10 Richard Downer 2009-12-13
- ポートを開いています。誰かに尋ねられると、コンピュータはこのポートでサービスが待機していると応答します。これは、このポートに送られてくるものは、そのコンピュータ上で実行されているプログラム(サービス)によって処理されることを意味します
- 閉じたポート。誰かに尋ねられても、コンピュータはそのポートで聞いているサービスがないと答えます。このアドレスに応答しているコンピュータが存在することを知ることができます
- ステルスポート。誰かに聞かれても返事が返ってこない。要はアドレスにパソコンがあれば隠れるということです。joschiさんがコメントで言っているように、あまり効果的ではないかもしれませんが
ポートが開いていれば、入ってくるものを処理するプログラムが利用可能なエクスプロイトを持っていなければ安全です。しかし、エクスプロイトは常に発見されているので、多くのポートスキャンがネット上でターゲットを探して回っていることを知っておくと良いでしょう
閉じたポートはまだ akser に反応しているので、攻撃者は他のポートのチェックを進めることを知っています。しかし、これがインターネットがどのように機能するかを特定する方法です。ステルスポートは潜在的な攻撃者に情報を与えないようにしていますが、理論的には仕様を破っています
セキュリティの観点から見ると、開いているポートは、コードが外国のデータを処理するために使用されているので、巨大なギャップホールです。ファイアウォール(またはNATルータ)が何をするかは、システムがいくつかのオープンポートを持っている場合でも、受信トラフィックがコンピュータに取得しないことを確認しています。このように、彼らは効果的にすべてのポートを閉じます
8 Ilari Kajaste 2009-12-13
実は私の知る限りでは、ポートが開いているということは、プログラムがそれを聞いているということです。つまり、何らかのサービスがデータを処理しているということです
6 Felix 2009-12-13
あなたのコンピュータにウイルスや、実際に何かをする可能性のある他のプログラムがポートを盗聴していないと仮定すると、なぜポートが開いていることが重要なのでしょうか?悪意のある人がポートにパケットを送信し始めても、データを受信して何かをするために何もない場合、なぜポートが開いていることが重要なのでしょうか?
思い込みは、すべてのエフアップの母です。)
むしろ安全というよりは申し訳ない……ここでは、makeuseof.comであなたのための素敵な読み物です
技術解説。オープンルーターのポートとそのセキュリティへの影響 を説明します
3 None 2009-12-13
私はセキュリティエクスポートではありませんが、少し調べてみました…。オープン」ポートとは、TCP接続の着信を受け入れるように設定されているポートのことです
アプリがポート 9、21、80 のみをリッスンしていて、ファイアウォールがこれら 3 つのポートへのアクセスをブロックしている場合、技術的にはポートが開いていないことになります。例えば、ポート 25 は何も聞いていないので開いていません
あなたの質問にお答えします。あなたのコンピュータにポートが開いているのが良くない理由は、これらのポートは簡単に発見されてしまい、一度発見されたポートは、リスニングアプリケーションの脆弱性の影響を受けやすいからです
1 Shoeless 2009-12-13
自宅のドアや窓を閉めたり、鍵をかけたりするのと同じ理由で
0 Steven A. Lowe 2009-12-13
オープンポートは窓が開いていてドアが開いているようなものだが、窓が開いていると強盗やネズミやクモが入ってくる可能性がある #please tell me if I am dumb or asinine Edited no asinine オープンポートは窓が開いているようなものだが、インターネットにはオープンポートがあると思うが、クローズドポートは窓が閉じているようなもので、それがないと接続したり閲覧したりすることができないと思うが、HTTPやSSHやFTPのように、それがないと接続することができないと思うが、それはただのTCP接続だからだ
私はセキュリティの専門家ではありません
-2 user210203 2017-01-19