14.2. はじめに

セキュリティとは、システム管理者をいつも悩ませる仕事の一つです。 FreeBSD は、固有のセキュリティ機構を備えていますが、 追加のセキュリティ機構を設定し保守する仕事はおそらく、 システム管理者としてもっとも大きな責務の一つでしょう。

また、システムセキュリティには、 さまざまな形での攻撃に対処することとも関係しています。 攻撃の中には root 権限を奪おうとはしないけれども、 クラッシュやシステムの不安定状態を引き起こそうとするものもあります。 このセキュリティ問題は、いくつかに分類することが可能です。

  1. サービス妨害攻撃 (denial of service attack)

  2. ユーザアカウントの不正利用 (user account compromise)

  3. アクセス可能なサービスを使った root 権限の不正利用

  4. ユーザアカウントを経由した root 権限の不正使用

  5. バックドアの設置

サービス妨害攻撃 (DoS 攻撃) とは、 マシンから必要な資源を奪う行為です。 通常、サービス妨害攻撃はそのマシンで実行されるサーバやネットワークスタックを過負荷状態にして、 マシンをクラッシュさせたり、 マシンを使えなくしたりするような力任せの方法です。 サーバプロセスに対する攻撃は、オプションを適切に指定することによって、 攻撃されている状況でサーバプロセスの負荷上昇に限界を設定することで対応できる場合が多いです。これらに比べると、 ネットワークへの力任せの攻撃への対応はずっと難しくなります。 この攻撃によって、マシンを落としてしまうことはできないかもしれませんが、 接続しているインターネット回線を飽和させてしまうことはできます。

ユーザアカウントの不正利用は、 DoS 攻撃よりもずっとよくある問題です。 このご時勢でも、 暗号化されていないサービスを実行させているシステム管理者は多く、 そのため、リモートからログインしているユーザは、 パスワードを覗き見られてしまう危険性があります。 システム管理者が注意深い人ならば、 リモートアクセスログを解析して、 疑わしい送信元アドレスや疑わしいログインを探すものです。

セキュリティを十分維持し、 手入れの行き届いたシステムにおいては、 あるユーザアカウントへのアクセスが可能となっても、 必ずしも攻撃者に root へのアクセス権を与えるとは限りません。 root へのアクセス権がなければ、 攻撃者は自分の侵入の痕跡を隠蔽することができませんし、 そのユーザのファイルを引っかき回したり、 マシンをクラッシュさせたりするのがせいぜいです。 ユーザアカウントの不正利用はめずらしいことではありません。 なぜなら一般ユーザは、 システム管理者ほど注意を払わない傾向があるからです。

root 権限を奪取する方法は、潜在的に何通りもあります。 攻撃者は root のパスワードを知っているかもしれませんし、 攻撃者が root 権限で実行されているサービスのバグの脆弱性を利用できるかもしれません。 また、攻撃者は SUID-root プログラムに存在するバグを知っているかもしれません。 攻撃者は、 バックドアとして知られているプログラムを使って脆弱性なシステムを探したり、 修正されていない脆弱性を利用してアクセスしたり、 攻撃者による違法行為の痕跡を消そうとしたりするかもしれません。

セキュリティを改善する方法は、常に、 タマネギの皮のように階層化する手法 (a multi-layered onion peel approach) で実装されるべきです。これらは次のように分類できます。

  1. root とスタッフのアカウントの安全性を高める。

  2. root の安全性を高める 〓 root 権限で動作するサーバと SUID/SGID バイナリ。

  3. ユーザアカウントの安全性を高める。

  4. パスワードファイルの安全性を高める。

  5. カーネルのコア、raw デバイス、 ファイルシステムの安全性を高める。

  6. システムに対して行なわれた、 不適切な変更をすばやく検出する。

  7. 必要と思われる以上の対応をとる (paranoia)。

次の節では、上記の項目についてより深く掘り下げていきます。

本文書、および他の文書は https://download.freebsd.org/ftp/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、 ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で) 連絡してください。

本文書に関する質問については、 <doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。