次のページ 前のページ 目次へ

4. ローカルのセキュリティ

次にローカルユーザの攻撃に対するシステムのセキュリティについて考えます. そうです, ローカルのユーザに対してです.

ローカルユーザのアカウントの獲得は, 攻撃者が root のアカウントを破ろうとする際に最初に考えることの一つです. ローカルに対するセキュリティが甘ければ, 様々なバグやローカル向けのサービスのまずい設定を利用して, 一般ユーザの権限から root ユーザの権限へ 「アップグレード」することができるのです. ローカルに対するセキュリティが強固であれば, 侵入者が越えなければならないハードルはまだ残ることになります.

ローカルユーザは, たとえ身元を詐称していなくてもシステムに被害を与えることができます. 知らない人, 連絡先のわからない人にアカウントを与えるのは, 非常に危険なことです.

4.1 新規アカウントの作成

アカウントを発行する際は, そのユーザが行う必要のある作業に対し, 必要最小限のアカウントを与えていることに留意すべきです. 息子 (10 才) にアカウントを与えるのならば, ワープロやお絵描きプログラムにはアクセスできるけれど, 自分のものでないファイルを削除できないユーザにすべきでしょう.

他人に Linux マシンに対して合理的にアクセスをしてもらうための, 便利な経験則があります.

セキュリティを破るときに使われるローカルユーザのアカウントの多くは, 何ヵ月あるいは何年も使われていないものです. 誰も使っていないために, 理想的な攻撃の道具になってしまうのです.

4.2 root のセキュリティ

あなたのマシンで最も欲しがられるアカウントは, root (ユーパーユーザ) のアカウントです. このアカウントはマシン全体に対する権限を持ち, ネットワーク上の他のマシンに対する権限を持つこともあります. root のアカウントはできるだけ短時間の, 特定の作業だけで使用し, それ以外の時は一般ユーザとしてマシンを使用すべきです. root ユーザでログインしているとちょっとしたミスでも問題を起こしかねません. root 権限を持っている時間は短ければ短いほど安全です.

root 権限でマシンを壊してしまわないための仕掛けもいくつかあります.

どうしても誰か (できれば非常に信頼している人) に root 権限を与える必要がある場合にも, これを補助するツールがあります. sudo を使えば, ユーザのパスワードを使って, 制限されたコマンド群を root の権限で使用させることができます. これにより, 例えば Linux マシンのリムーバブルメディアを ユーザにイジェクトやマウントをさせるけれど, それ以外の root 権限は与えないようにすることができます. sudo は成功・失敗を含めて全ての sudo の試みをログに取ることができるので, 誰が何のためにどのコマンドを使ったか調査することができます. このため, sudo は多くのユーザが root 権限を持つような環境でもうまく利用することができます. なぜなら, システムに対して行われた変更を調べやすくしてくれるからです.

sudo を使って特定のユーザに特定目的のための 特定の権限を与えることができますが, sudo には欠点がいくつかあります. sudo は, サーバの再起動やユーザの新規追加など, 限られた作業の組に対してだけ使うべきです. シェルエスケープができる任意のプログラムは, これを sudo を通して使ったユーザに root 権限を与えてしまいます. 例えば, 大部分のエディタがこれに該当します. また, /bin/cat のように無害なプログラムであっても ファイルの上書きに使うことができるので, これを使って root 権限が破られることもあり得ます. sudo は権限を使わせるための手段と考えるべきであり, root ユーザをより安全にするために置き換えるものと期待してはいけません.


次のページ 前のページ 目次へ