小さなミスで管理者になられる
最小権限の原則とは、人やプログラムに、仕事に必要な最小限の権限だけを与える、という考え方です。権限が大きすぎると、小さなミスが、全体の乗っ取りにつながります。
今日は、権限のしくみと、ありがちな設定ミスを学びます。ラボは、自分専用の仮想マシンです。その中だけを見ます。
このレッスンのゴール
メモ
小さな設定ミスが管理者の権限につながる理由を、説明することができる。
キーワード
| ことば | いみ | れい |
|---|---|---|
| 権限 | 何をしてよいかという許可 | |
| 最小権限 | 必要な権限だけを与えること | |
| root | Linux のすべてができる管理者のアカウント | |
| パーミッション | ファイルを読む、書く、実行する許可 | 644 |
| 権限昇格 | 低い権限から、高い権限を手に入れること |
学生が入力するセルは、このプレビューでは空白です。
守るべき約束はひとつ
注意
ここで見るのは、自分専用の仮想マシンの中だけです。他人のマシンの権限を探したり、許可なく試したりしてはいけません。許可のないことは、法律に反します。上のバーの Start the lab を押します。
パーミッションは3つの数字で書く
Linux のファイルには、持ち主、グループ、それ以外の人の3組に、権限がつきます。読む(4)、書く(2)、実行する(1)を足した数で表します。
644 は、持ち主が読み書き(6)、ほかは読むだけ(4)という意味です。
例: 数字と許可の対応
| 数字 | 読む | 書く | 実行 | 意味 |
|---|---|---|---|---|
| 7 | 4 | 2 | 1 | すべてできる |
| 6 | 4 | 2 | - | 読み書きできる |
| 5 | 4 | - | 1 | 読んで実行できる |
| 4 | 4 | - | - | 読むだけ |
学生が入力するセルは、このプレビューでは空白です。
ラボで、標準の権限を読む
自分がだれかと、ふだん使われる大切なファイルの権限を見ます。見るだけで、変えません。
whoami は、いまのアカウント名を表示します。stat は、ファイルの権限や持ち主を表示します。
自分のアカウント名を見る
whoamiここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
3つのファイルの権限を見る
stat -c '%a %n' /etc/passwd /etc/shadow /usr/bin/passwdここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
強すぎる権限が事故のもと
大切なファイルは、書ける人を限ります。パスワードのハッシュを入れた /etc/shadow は、一般の人が読めないようになっています。
先頭の4は、setuid といい、そのファイルを実行した人が、持ち主の権限で動かせる、という特別な印です。
例: 危ない設定の見分け方
| 設定 | 何が危ないか | 直し方 |
|---|---|---|
| だれでも書ける実行ファイル(777) | 中身を書きかえられ、管理者の権限で動くことがある | 必要な人だけが書ける設定にする(755) |
| 不要な setuid(4755) | 本来より強い権限で動く道が開く | 必要なものだけに限る |
| パスワードなしの管理者の許可 | 1つ破られると、そのまま管理者になる | 許可を最小にし、パスワードを求める |
学生が入力するセルは、このプレビューでは空白です。
よくある間違い
注意
「面倒だから、とりあえずだれでも書けるようにしておこう」と考える人がいます。その場しのぎの設定は、そのまま残りがちです。必要な人だけに、必要なだけ与えます。
最小権限は、被害を小さくする
最小権限の原則は、破られることを前提にします。1つのアカウントが乗っ取られても、できることが少なければ、被害は小さいままです。
方法は3つあります。必要な権限だけ与える。使わなくなった権限を、すぐ外す。ふだんは、管理者のアカウントを使わない。
例: 最小権限の習慣
| 場面 | 悪い例 | よい例 |
|---|---|---|
| 学校のパソコン | 全員が管理者 | 生徒は一般のアカウント |
| アプリの設定 | 全部の権限を許す | 使う権限だけ許す |
| 卒業した人 | アカウントが残る | すぐに無効にする |
学生が入力するセルは、このプレビューでは空白です。
さらに挑戦: 直すとしたら
ラボの仮想マシンには、管理者が残した、ふつうの設定ミスがあります。ラボの説明に従い、自分のマシンの中で、どれか1つを探してください。
見つけたら、何が弱点で、どう直すと、最小権限に近づくかを書きます。直すのは、自分のマシンだけです。