web-dev-qa-db-ja.com

デフォルトのポート番号を変更すると、実際にセキュリティが向上しますか?

私は、プライベートアプリケーション(イントラネット、プライベートデータベースなど、部外者が使用しないもの)には異なるポート番号を使用する必要があるとのアドバイスを見てきました。

セキュリティを改善できると私は完全には確信していません。

  1. ポートスキャナーが存在します
  2. アプリケーションが脆弱である場合、ポート番号に関係なく、脆弱なままです。

何かを見逃したり、自分の質問に答えたりしましたか?

70
Sam

標的型攻撃に対する深刻な防御にはなりません。あなたのサーバーがターゲットにされている場合、あなたが言うように、彼らはあなたをポートスキャンし、あなたのドアがどこにあるかを見つけます。

ただし、SSHをデフォルトポートの22から移動すると、一部の非標的型アマチュアスクリプトキディタイプの攻撃が阻止されます。これらはスクリプトを使用してIPアドレスの大きなブロックを一度にポートスキャンしてポート22が開いているかどうかを確認し、ポート22が見つかった場合に何らかの攻撃(ブルートフォース、辞書攻撃、等)。スキャンされているIPのブロックにマシンがあり、ポート22でSSHを実行していない場合、マシンは応答しないため、このスクリプトキディが攻撃するマシンのリストに表示されません。エルゴ、いくつかの低レベルのセキュリティが提供されていますが、このタイプの日和見攻撃に対してのみです。

例として、時間がある場合-サーバーにログダイブし(SSHがポート22であると想定)、失敗した可能性のあるすべての失敗したSSH試行を引き出します。次に、SSHをそのポートから移動し、しばらく待ってから、ログダイビングを再開します。あなたは間違いなく少ない攻撃を見つけるでしょう。

以前はパブリックWebサーバーでFail2Banを実行していましたが、SSHをポート22から移動したとき、それは本当に明白でした。日和見攻撃を桁違いに削減しました。

68
jdw

ログをクリーンに保つことは非常に役立ちます。

Sshdがポート33201で実行されて失敗した場合は、その人物がyoをターゲットにしていると安全に想定でき、必要に応じて適切なアクションをとることができます。当局に連絡するなど、この人物がだれであるかを調査する(登録ユーザーのIPなどと相互参照する)など。

デフォルトのポートを使用している場合、誰かがあなたを攻撃しているか、それともランダムなバカがランダムなスキャンを行っているかを知ることは不可能です。

43
Thomas Bonini

いいえ、ありません。あんまり。この用語はSecurity by Obscurityであり、信頼できる方法ではありません。あなたは両方の点で正しいです。

せいぜいObscurityによるセキュリティは、デフォルトのポートを探すだけの偶然の試みを阻止します。ある時点で、正面玄関を出たsomeoneを見つけることを知っています。開いた。ただし、デフォルトのポートを変更することで直面する深刻な脅威がある場合、最初の攻撃の速度は遅くなりますが、すでに指摘したことが原因で、ごくわずかです。

自分の都合でポートを適切に構成したままにしますが、適切なファイアウォール、承認、ACLなどを使用してポートをロックするように適切な予防策を講じてください。

28
squillman

わずかなレベルのあいまいさですが、ハッキングへの道のりの重要なスピードバンプではありません。その特定のサービスと通信するすべてのものが異なるポートについて通知される必要があるため、長期をサポートするのはより難しい構成です。

むかしむかし、ネットワークワームは1つのポートしかスキャンしない傾向があったため、ネットワークワームを回避することは良い考えでした。しかし、急速に増殖するワームの時代は過ぎ去りました。

13
sysadmin1138

他の人が指摘したように、ポート番号を変更してもセキュリティはあまり向上しません。

ポート番号を変更すると、実際にはセキュリティに悪影響を及ぼす可能性があることを付け加えておきます。

次の簡略化されたシナリオを想像してみてください。クラッカーは100台のホストをスキャンします。これらのホストのうち99台は、次の標準ポートで使用可能なサービスを備えています。

Port    Service
22      SSH
80      HTTP
443     HTTPS

しかし、システム所有者がサービスを難読化しようとしたため、群集から際立っている1つのホストがあります。

Port    Service
2222    SSH
10080   HTTP
10443   HTTPS

スキャンが2つのことを示唆しているので、これはクラッカーにとって興味深いかもしれません。

  1. ホストの所有者は、システムのポート番号を隠そうとしています。おそらく所有者は、システムに何か価値があると考えています。これはありふれたシステムではないかもしれません。
  2. 彼らは彼らのシステムを保護するために間違った方法を選びました。管理者は、ポートの難読化を信じてミスを犯しました。これは、経験の浅い管理者である可能性があることを示しています。おそらく、適切なファイアウォールまたは適切なIDSの代わりに、ポートの難読化を使用していました。他のセキュリティミスを犯した可能性があり、追加のセキュリティ攻撃に対して脆弱である可能性があります。もう少し詳しく調べてみましょうか。

あなたがクラッカーだった場合、標準ポートで標準サービスを実行している99個のホストの1つ、またはポートの難読化を使用しているこの1つのホストを確認することを選択しますか?

12

少なくとも部分的には、一般的な傾向に反するつもりです。

独自に、別のポートに変更すると、検索中に数秒かかる場合があるため、実際には何も得られません。ただし、非標準ポートの使用とポートスキャン対策を組み合わせると、セキュリティの価値を高めることができます。

私のシステムに当てはまる状況は次のとおりです。非パブリックサービスが非標準ポートで実行されています。指定された時間内に、単一の送信元アドレスから3つ以上のポートに接続しようとすると、成功したかどうかにかかわらず、その送信元からのすべてのトラフィックがドロップされます。

このシステムを打ち負かすには、運(ブロックされる前に適切なポートを叩く)または他の測定をトリガーする分散スキャン、または非常に長い時間が必要です。

9
John Gardeniers

私の意見では、アプリケーションが実行されているポートを移動してもセキュリティはまったく向上しません。単に同じアプリケーションが(同じ長所と短所で)別のポートで実行されているからです。アプリケーションに脆弱性があり、それがリッスンするポートを別のポートに移動する場合、その脆弱性は解決されません。さらに悪いことに、自動スキャンによって絶えず攻撃されていないため、弱点に対処しないことを積極的に推奨しています。 実際の問​​題を隠します。これは実際に解決する必要がある問題です。

いくつかの例:

  • 「ログをクリーンアップします」-次に、ログの処理方法に問題があります。
  • 「接続のオーバーヘッドを削減します」-オーバーヘッドはわずかであるか(ほとんどのスキャンと同様)、上流で行われる何らかのフィルタリング/サービス拒否の軽減が必要です。
  • 「アプリケーションの危険性を軽減します」-アプリケーションが自動スキャンと悪用に耐えられない場合、アプリケーションには対処する必要がある深刻なセキュリティの欠陥があります(つまり、パッチを適用し続けます!)。

実際の問題は管理上の問題です。SSHは22に、MSSQLは1433に、などと予想されます。これらの移動は、もう1つの複雑なレイヤーと必要なドキュメントです。ネットワークに座って物事がどこに移動したかを把握するためだけにnmapを使用しなければならないのは非常に煩わしいことです。セキュリティへの追加はせいぜい短命であり、マイナス面は取るに足らないものではありません。しないでください。実際の問題を修正します。

5
user62491

(TCPサーバーのポート範囲には16ビットのエントロピーしかないため)それほどセキュリティはもたらされないことは正しいですが、他の2つの理由で実行することもできます。

  • 他の人がすでに言っているように:多数のログインを試みる侵入者はログファイルを乱雑にする可能性があります(単一のIPからの辞書攻撃がfail2banでブロックできる場合でも)
  • SSHは、秘密鍵を交換して安全なトンネルを作成するために公開鍵暗号化を必要とします(これはコストのかかる操作であり、通常の状態ではそれほど頻繁に行う必要はありません) ); SSH接続を繰り返すとCPUパワーが浪費される可能性があります

備考:サーバーのポートを変更する必要があると言っているのではありません。ここでは、ポート番号を変更する合理的な理由(IMO)について説明しています。

その場合、他のすべての管理者またはユーザーに、これをセキュリティ機能と見なすべきではないこと、および使用されるポート番号は秘密でもないこと、およびこれをセキュリティ機能として説明することを明確にする必要があると思います実際のセキュリティをもたらすことは、許容できる動作とは見なされません。

2
curiousguy

代替ポートでsshdを実行することで潜在的なセキュリティ上の利点があるという1つの仮想的な状況を見ることができます。これは、実行中のsshdソフトウェアに、軽微に悪用されたリモートの脆弱性が発見された場合のシナリオです。このようなシナリオでは、代替ポートでsshdを実行すると、ランダムなドライブバイターゲットである必要がないだけの余分な時間が得られる場合があります。

私自身はプライベートマシンの代替ポートでsshdを実行していますが、これは主に/var/log/auth.logを整理するのに便利です。マルチユーザーシステムでは、上記の小さな仮想セキュリティ上の利点が、標準部分にsshdが見つからないために発生する余分な手間の十分な理由とは考えていません。

1
andol

セキュリティが少し向上します。攻撃者は開いているポートを見つけたので、ポートで実行されているものを解決する必要があります。設定ファイルにアクセスできない(まだ:-))彼は、ポート12345がhttp、sshd、またはその他の一般的なサービスの1つを実行しているかどうかわからないため、真剣に実行する前に何が実行されているかを理解するために追加の作業を行う必要があります攻撃する。

また、他の投稿者が指摘したように、ポート22にログインしようとする試みは、無知なスクリプトキディ、ゾンビトロイの木馬、またはIPアドレスを誤って入力した本物のユーザーである可能性もあります。ポート12345にログインしようとする試みは、本物のユーザーか深刻な攻撃者のどちらかであることはほぼ確実です。

もう1つの戦略は、いくつかの「ハニートラップ」ポートを用意することです。本物のユーザーはこれらのポート番号を知らないため、接続の試みは悪意のあるものと見なす必要があり、問題のあるIPアドレスを自動的にブロック/報告できます。

別のポート番号を使用すると、システムの安全性が確実に高まる特別なケースがあります。ネットワークがWebサーバーなどのパブリックサービスを実行しているが、内部使用のみのWebサーバーも実行している場合は、別のポート番号で実行することにより、外部アクセスを完全にブロックでき、blockingからの外部アクセスをすべてブロックできます。このポート。

1
user23523

それ自体ではありません。ただし、特定のアプリケーション(SQL Serverなど)にデフォルトのポートを使用しないと、基本的に攻撃者にポートをスキャンさせることになります。この動作は、ファイアウォールまたはその他の監視メトリックによって検出され、攻撃者のIPがブロックされます。また、平均的な「スクリプトキディ」は、使用している単純なツールまたはコマンドスクリプトがマシン上でSQLサーバーインスタンスを見つけられない場合に阻止される可能性が高くなります(ツールがデフォルトポートしかチェックしないため)。

0
KeithS