← コラム一覧

最小権限の原則とは|権限設計の考え方と、被害を限定する多層防御

最小権限の原則を、DB アカウント・OS の権限・ネットワークの経路という三つの面から解説。根本対策との役割の違い、権限が広がっていく理由と棚卸しの進め方、setuid や sudo の設定、情報処理安全確保支援士試験での問われ方まで。

最小権限の原則(Principle of Least Privilege)とは、利用者・プログラム・機器に、その役割を果たすのに必要な最小限の権限だけを与えるという考え方です。脆弱性を無くすものではありません。侵害されたときに、届く範囲を狭めるためのものです。情報処理安全確保支援士試験では、根本対策と並べて「被害を限定する対策」として書かせる設問が繰り返し出ます。

「破られる前提」で設計する

あらゆる脆弱性を無くすことはできません。実装にも設定にも人にも、必ず抜けが残ります。そこで、破られたときに何が起きるかを設計に織り込みます。最小権限は多層防御の一枚で、「一つ破られても、そこで止まる」状態を作るためのものです。逆に言えば、最小権限を敷いていても、根本対策の代わりにはなりません。

同じ穴でも、届く範囲が変わる 広い権限のアカウント アプリ 問い合わせ表 会員名簿 請求情報 穴が突かれると、全部に届く 必要な権限だけのアカウント アプリ 問い合わせ表 会員名簿(不可) 請求情報(不可) 穴は残っていても、届く範囲は狭い
同じ穴でも、与えた権限の広さで届く範囲が変わる。

三つの面で考える

絞る対象典型的な失敗
データベースアカウントに与える操作と表の範囲アプリが管理者権限で接続している
OS・ファイル所有者とモード、sudo で許すコマンドその他のユーザに書き込みを許している
ネットワークゾーン間で通す通信使わなくなった経路が開いたまま

どの面でも問いは同じです。「この役割が業務を回すために、本当に必要なのはどこまでか」。必要なものを列挙してそれだけを許す(許可リスト)ほうが、危ないものを個別に塞ぐ(拒否リスト)より漏れが出にくくなります。

OS の権限 — 所有者とモード

Linux では、ファイルの所有者・グループ・その他に対して読み書き実行を与えます。定期実行されるスクリプトや設定ファイルに、その他のユーザへの書き込みが許されていると、権限の低い利用者がそのスクリプトを書き換え、実行される権限で任意の処理を走らせられます。定期実行の仕組み(cron など)は、書き換えられた内容をそのまま実行してしまうため、被害が自動化されます。

# 危ない例:その他のユーザが書き込める実行スクリプト
-rwxrwxrwx 1 root root  /opt/backup/run.sh

# 是正の方向:所有者だけが書ける
-rwxr-x--- 1 root ops   /opt/backup/run.sh

setuid が設定された実行ファイルは、実行した人ではなく所有者の権限で動きます。便利な反面、悪用されると権限昇格に直結するため、不要な setuid を棚卸しし、書き込み権限が緩いものが無いかを確かめます。

sudo は「コマンドと引数まで」固定する

sudo の設定でコマンド名だけを許可すると、そのコマンドが持つ全機能を許したことになります。同じコマンドでも、オプション次第でできることは大きく変わります。運用で実際に使う形まで含めて固定しておけば、想定外の使われ方を避けられます。

# 広すぎる:tar のあらゆるオプションが使える
updater ALL=(root) NOPASSWD: /bin/tar

# 実際に使う形まで固定する
updater ALL=(root) NOPASSWD: /bin/tar -xf /tmp/pkg.tar -C /opt/firmware

なぜ権限は広がっていくのか

権限は、足すのは簡単で、外すのは怖い、という非対称があります。障害対応で一時的に広げたまま戻されない、退職や異動の後もアカウントが残る、保守用に開けた経路が閉じられない。どれも「あとで戻す」つもりの作業が、誰の仕事にもなっていないことが原因です。技術的な設定だけでなく、申請・承認・記録・棚卸しという運用の手順まで含めて設計する必要があります。

ネットワークの経路も権限のうち

ゾーンとゾーンの間に開けた通信も、広い意味では権限です。外部に近い区画(DMZ)から内部へ、業務上もう使わない経路が開いたままになっていると、DMZ の一台が破られたときにその経路が踏み台になります。「使うかもしれない」で開けたままにせず、必要な通信だけを明示的に許可し、それ以外は既定で拒否する(デフォルト拒否)方針で保ちます。機器のフィルタでは、定義しただけでは効かず適用の一覧に載せて初めて効くこと、どれにも当たらなかった通信を末尾で落とすことも、同じ考え方の実装です。

経路を絞ると、侵害されたときに横へ広がる速度が落ちます。攻撃側が次の一手を探すあいだに、こちらが気づいて止められる可能性が出てきます。最小権限が稼いでいるのは、この「時間」でもあります。

職務分離との関係

最小権限と併せて問われるのが職務の分離です。一人の担当者が、申請・承認・実施のすべてを行えると、不正や誤りが誰にも気づかれずに通ってしまいます。権限の広さ(縦の絞り)と、役割の分け方(横の絞り)は別の観点なので、対策として挙げるときは混ぜないようにします。

情報処理安全確保支援士 試験での問われ方

午後問題では、権限設定の抜粋やアカウント一覧を示して「不要な権限」「その権限が悪用されたときの影響」「是正の内容」を書かせる形が定番です。書くときは、何を外すのかを具体的に(どのアカウントの、どの操作を、どの範囲で)示すと観点を落としにくくなります。また、「根本対策」と「被害の限定」を分けて述べる設問では、最小権限は後者にあたります。午前Ⅱでは、最小権限の原則・職務分離・need-to-know といった用語の定義がそのまま問われます。

IPA 公式 PDF:令和4年度 春期 午後Ⅰ問題(問2 で管理コマンドの権限が問われた) ↗本文はこの公式 PDF でご覧ください(アプリ内には転載していません)。

確認しておきたいこと

演習(支援士日誌)で手を動かす →