特定のシステム操作は権限のあるユーザー/プロセスしか実行できないことを知っていますが、スーパーユーザー(通常はroot
Unix / Linux)または管理者は依然として多くのセキュリティ上の問題を引き起こす可能性があり、最も頻繁に攻撃しようとします。理由はみんな知っていますか?
私はUnix / Linuxの一般的な答えにのみ(しかし主に)興味があります。その理由は何ですか?
答え1
何らかの形でスーパーユーザーの存在は論理的に必要です。資格情報を構成するには、いくつかの資格情報が必要です。それが根です。
ルートはユーザーアカウントである必要はありません。それ能力、例えば。 Unixは歴史的にシンプルなデザインを追求しており、アカウントと機能を実装するためにユーザーと呼ばれる単一の概念を使用してきました。システムを使用するすべてのユーザーにはユーザーアカウントが付与され、システムサービスにはユーザーアカウントが割り当てられます。すべての機能は、何よりもユーザー資格情報(/etc/passwd
および最新のシステムで同じ機能を実行する他の機能)を制御できるシステムサービスを介して間接的に取得できます。 Unix設計では、rootはすべての機能(ランタイムsu
や低レベルのシステムコールを介して)に直接アクセスできますが、そうでない場合でも資格情報マネージャが資格情報を割り当てることを防ぐことは困難です。それ自体。
最新システムは、より細かいセキュリティモデルに発展しました。たとえば、Unixでは非常に早くからグループという概念を追加してユーザーがファイルを共有できるようにしましたが、グループはrootとしてのみ管理できます。ほとんどの最新のUnixシステムには、ユーザーがルート介入なしでファイルを共有できるアクセス制御リストがあります。ますます多くのLinuxシステムは、次のセキュリティメカニズムを使用しています。SELinuxこれは、ルートが実行できる操作を制限します。
しかし、より複雑なセキュリティモデルは両刃の剣です。より細かい権限を使用すると、より多くの制御が可能になり、簡単な方法でより多くのセキュリティポリシーを適用できます(たとえば、setuidプログラムを介した間接アクセスではなくアクセスのためのACL)。ただし、セキュリティポリシーが複雑になるほど、レビューが難しくなります(複雑な言語を使用すると、レビューする内容が多すぎます)、それを実装するコードが複雑になり、エラーのリスクが高くなります。
1これは二重制御または暗号化によって防止することができますが、これは機能を制限します(最終権限でランダムなコードを実行できない場合)、ユーザビリティ(システムをロックしすぎるとロックするリスクが高まります)。
答え2
スーパーユーザーがいない場合は、特権の昇格が必要な一般ユーザーとしてすべての操作を実行できるようになります。
スクリーンセーバーがシステムをロックする前に誰でもキーボードをタッチすると、新しいユーザーアカウントを追加してディスクをフォーマットできるため、机を放置することがさらに危険になります。
スーパーユーザーを削除してもエクスプロイトターゲットが削除されるわけではなく、より簡単なターゲットが作成されるだけです。
答え3
システムで欲しいものを自由にできなければならないので、制作者もそう思ったようです。
責任を持って行動する限り、セキュリティと悪用は問題になりません。一般ユーザーとして多くのダメージを与える可能性があります。ユーザーを制限する理由はありません。
答え4
このsu
コマンドは、アカウントからログアウトせずにrootとしてログインできるという意味で存在します。ルートアカウント自体は、システム管理、ユーザーアカウント制御、ファイルシステムマウントなどのタスクを実行するために使用されます。このコマンドを無効または削除できますsu
。
# rm -f /bin/su #deletes 'su' command
また、sudo
アクセス不可の権限を付与することもできます。これは、ルートのみがシステム管理を実行できることを意味します。
# deluser user sudo #user being the account to be removed from group sudo