su
私はシステム管理者として新しいことを始めようとしているか、または冷却機能を実装することについて考えてきましたsudo
。待機時間は、ユーザーが最初の試行失敗後数秒間これらのコマンドを使用するのを防ぎ、試行が失敗するたびに待機時間が長くなります。
この概念の基本的なアイデアは、権限のあるユーザーが最初は間違っていましたが、2番目は正しく行うことができます。クールダウンは、相手が暴力的な変形を使用するのを防ぎ、遅らせます。
私のアプローチに欠陥がありますか? sudoコマンドを変更されたスクリプトに置き換えることは賢明ですか?それとも実行ファイル自体にパッチを適用する必要がありますか?
編集:Googleはこのコンテンツを検索しましたが見つかりませんでした。 SO、SuperUser.SE、Security.SEも同様です。この質問がServerFaultに不適切であると思われる場合は表示してください。
答え1
私のアプローチに欠陥がありますか? sudoコマンドを変更されたスクリプトに置き換えることは賢明ですか?それとも実行ファイル自体にパッチを適用する必要がありますか?
はい、あなたのアプローチには欠陥があります。コメントで指摘したように、セキュリティの最初のルールは次のとおりです。自分で構築しないでください。コードをすでにテストしたのと同じくらい徹底的にテストする機会はなくsu
、sudo
コードをほぼ正確に書いても実際にどこかでいくつかの極端なケースを見逃す可能性が高いです。 (お金を受け取ってもセキュリティにとって重要ではないコードを正しく書くのは十分に難しいです。)それをしないでください。
代わりに、PAMpam_faildelay
モジュールの使用。これにより、遅延を設定し、遅延をインターリーブすることができますが、それ以外の場合でも、コードをコピーしてインターリーブされた遅延を実装することと置換するsu
よりもエラーが発生する可能性がほとんどありますsudo
。何が起こっているのかわからない場合は、既存の同様のモジュール(PAMに接続されているすべての項目がセキュリティホールを引き起こす危険性がある)に基づいてPAMモジュールを作成することをお勧めしませんが、少なくとも混乱を招くことはありません。デフォルトのシステムユーティリティを使用して、最初から独自のロジックを追加したいと思います。
さらに、次のようにシオンリンファンルートアクセス権を取得する他の方法もたくさんあることを指摘してください。
答え2
sudoとsuがroot権限を取得する唯一の方法ではありません。 PAMをお試しください。私はこれがバイナリをパッチするよりも優れていると信じています。