web-dev-qa-db-ja.com

〜/ .ssh / authorized_keysの改ざんを防ぐ

サーバーが侵害された場合、攻撃者は自身の公開鍵をauthorized_keysに追加する可能性があります。これはどのように防止されますか?誰がファイルにどのようなアクセス権を持つべきですか?

4
Awn

サーバーが侵害された場合、攻撃者は自身の公開鍵をauthorized_keysに追加する可能性があります。これはどのように防止されますか?

攻撃者によるユーザーのauthorized_keysファイルの変更は防止されますby攻撃者が最初に任意の重要なファイルを変更できるようになるまで、およびこの重要なファイルに、任意のユーザーが内容を変更することを許可しないアクセス許可があることを確認することにより、範囲を狭めます。

誰がファイルにどのようなアクセス権を持つべきですか?

ファイルを所有するユーザーのみが書き込みアクセス権(その親ディレクトリへのアクセスを含む)を持つ必要がありますが、ファイルには公開鍵データのみが含まれるため、読み取りアクセス権は原則的に安全です。 (対応する秘密鍵は、ユーザーが接続しているシステムに保存されます。)実際には、0600よりも許容的なものを設定する理由はありません。SSHサーバーを使用する必要があります所有者以外の誰かがファイルを変更または置換できるアクセス許可がある場合、ファイルを拒否します。

説明しているシナリオを検討してください。その場合、攻撃者はユーザーのauthorized_keysファイルを変更できるため、すでにrootアクセス権を持っているか、または実質的にrootアクセス権を持っています。その時点で、そのユーザーとしてログインできるようにする追加のSSHキーをインストールするなど、平凡なことをする理由はありません。すでに指摘したように、カスタムSSHサーバーをインストールする方がはるかに適切です(すべてのログが1つに取り除かれ、おそらく2つは管理者に対してマスクまたは隠蔽しようとします)。

私に思われる唯一のシナリオユーザーのauthorized_keysファイルを変更することを検討しても意味があるのは、攻撃者がそのユーザーのアカウントへのアクセス権を取得できただけで、何をしたいのかです。少なくともそのアカウントへのアクセスを維持することができます。しかし、ユーザーがそのファイルを見ると、正当に承認されたキーがダースのようなものでない限り、余分な行が痛いように目立つ可能性があります親指。

そして、そのようなシナリオでさえ、ほとんどの場合、侵害されたシステムへの継続的なアクセスを保証するはるかに優れた方法が存在する可能性があります。

攻撃者がrootと同等のアクセスを取得できる場合、警戒するユーザーやシステム管理者であっても、クリーンアップはもちろん、検出をはるかに困難にして、アクセスを継続するための多くの方法があります。

2
a CVn

サーバーが侵害された場合、それは基本的にゲームオーバーです。既知の適切なバックアップから復元または再インストールできます。また、事後分析を行ってエントリがどのように取得されたかを確認できますが、そのシステムはホースで接続されており、修復するべきではありませんしかし、再インストールされました。

したがって、スーパーユーザー権限を取得した攻撃者がauthorized_keysを変更することを妨げるものはありません。通常、このファイルが属するユーザー(そしてもちろんルート)だけがアクセスできるようにする必要があります。

3
Matija Nalis

this 既存の回答を見てください。

シナリオでのサーバーの使用例、特にSSHセッションの頻度と多様性を考慮し、それに応じて最小特権の原則を実行してください。

頭に浮かぶ妥協シナリオのほとんどは、不適切な強化(つまり、ユーザーアカウントに関する)やその他の構成上の欠陥から生じます。

3
dotproi

常に変化が起こり、あなたを噛みます。

別のコンピューターに保存されたレコードによる監査は必須です。

oSSECの例を参照してください

0
Massimo