web-dev-qa-db-ja.com

1024を超えるポートでサービスを実行するリスク

Raspberry PiへのSSHアクセスのセキュリティ保護に関するRedditスレッドで、1人のコメント投稿者が非標準ポート8123でSSHを実行することを推奨しました。

別のコメンターはこれについてこの件について述べています:

SSHリスニングポートを1024以上に変更しないでください。非特権の不正なプロセスは、SSHデーモンが終了するまで待機し、そのポートで待機ソケットを確立できます。 1024未満のポートは、ルートとして実行されているプロセス用に予約されています。

私は個人的に、これがSSHの大きなリスクであるとは感じていません。

  1. 不正なプロセスはホストキーにアクセスできないため、接続時にユーザーに異なる指紋を提示し、問題を警告します。
  2. キーベースの認証を使用している場合、通信の傍受から得られるものはほとんどありません。

ただし、すべてのプロトコルにこの機能があるわけではありません。たとえば、ポート8080または3128で実行されているWebプロキシには、通常、認証がありません。

1024を超えるポート番号で実行されるリスクはどのくらい重要ですか?

8
Cybergibbons

Raspberry Piで不正なプロセスが実行されている場合、攻撃者または自動化された悪意のあるプロセスは明らかにrootに昇格できていませんが、すでに侵害されています。

不正なプロセスはホストキーにアクセスできないため、接続時にユーザーに異なる指紋を提示し、問題を警告します。

それは本当です。ただし、これは、ユーザーがこれに気付く可能性が高いかどうかによって異なります。平均的なシステムでは、多くのユーザーが警告をクリックスルーしますが、SSHを使用するLinuxベースのシステムでは、このバーは通常、セミエキスパートユーザーのみが接続するほど高くなり、何かが間違っていることに気づく可能性が高くなります。

キーベースの認証を使用している場合、通信の傍受から得られるものはほとんどありません。

同意した。公開鍵はSSHクライアントから取得できますが、これが送信されることはないため、不正なサービスが秘密鍵を傍受する方法はありません。

代わりにパスワード認証が使用された場合、リスクが発生する可能性がありますが、前述のとおり、ユーザーはホストキーの警告メッセージを無視する必要がありました。

したがって、要約すると、公開鍵認証が実施されている場合に、SSHに非特権ポートを使用することで生じるリスクはありません。私が考えることができる唯一の攻撃は、ユーザーがすぐにSudo/suを発行し、次にパスワードを入力してキャプチャすることを期待して、不正なSSHデーモンがユーザーに接続を許可する攻撃です。これがすぐに行われなかった場合、悪意のあるプロセスは実際のユーザーと同じ権限を持たないため、ユーザーは何かがおかしいことに気付くでしょう。

1
SilverlightFox

ポート(1024以上)で実行されているサービス(少なくとも* nixサーバー上)は、ルート(またはroot権限を持つ信頼されたユーザー)がサービスを開始する必要があるため、一般に安全性が高いと見なされています。サーバー上の信頼されていない(おそらく不正な)ユーザーによって実行されます。

したがって、コピーしたredditの投稿に記載されているような攻撃が、root権限なしでサーバー上の悪意のあるユーザーによって引き出される可能性があると考えられます。

に関して "1.The rogue process cannot access the Host keys, so would present a different fingerprint to the user when connecting, alerting them to an issue.":これは本当です-ユーザーが以前にサーバーにログインしていて、SSHクライアントがサーバーの公開鍵を固定している場合。この場合、ユーザーのSSHクライアントはサーバーの公開鍵が変更されたことを(おそらく)警告し、ユーザーは(おそらく)起動していることを知っているでしょう。しかし、ユーザーは、以前にサーバーにログインしていて、クライアントがサーバーの公開鍵を固定している場合にのみ警告されます。

に関して "2.If key based authentication is in use, little can be gained from intercepting communications.":私はこれについて懐疑的です。ユーザーのSSHクライアントは、SSHセッションの開始時に通常どおりに公開鍵を送信し、不正なSSHサーバーはクライアントを認証するだけです(通常、クライアントの公開鍵がサーバーのauthorized_keysファイルにある場合)。クライアントが送信した公開鍵を使用してセッションを続行します。

3
mti2935

一部のSEスレッドは、セキュリティの観点からこの長所と短所を議論しています。 デフォルトのポート番号を変更すると実際にセキュリティが向上しますか? および SSHポートを<1024に変更する必要がありますか?

ただし、リスクも関係しているため、言及した悪意のあるプロセスによって実際にはサーバーからロックアウトされます。これが起こる可能性は低いかもしれませんが、どうなりますか? SSHアクセスなしでサーバーを再起動できれば幸運です。うまくいけば、起動時にSSHデーモンが不正なプロセスの前にポートを要求しています。

0
Fred42vid