多層防御は守りを重ねること
多層防御とは、守りを何層にも重ね、1つが破られても被害が広がらないようにする考え方です。守りは、防ぐ、見つける、対応する、の3つの働きに分けて考えます。
オフィスの守りを思い浮かべてください。入り口の受付、入館証、鍵のかかった棚、防犯カメラがあります。どれか1つを抜けても、次が待っています。
このレッスンのゴール
メモ
守りを重ねて、1つが破られても被害が広がらない計画を立てることができる。
キーワード
| ことば | いみ | れい |
|---|---|---|
| 多層防御 | 守りを何層にも重ねる考え方 | |
| 防ぐ | 事故が起きないようにする働き | 権限 |
| 見つける | 起きたことに気づく働き | ログ |
| 対応する | 被害を止めて、元に戻す働き | バックアップ |
| 層 | 守る場所の区切り | ホスト |
| 単一障害点 | それが壊れると、全体が破られる1か所 |
学生が入力するセルは、このプレビューでは空白です。
守りは層に分けて考える
守る場所は、5つの層に分けると考えやすくなります。境界はネットワークの入り口、ホストは機器の中のOS、アプリは動かすソフト、データは中身、人は使う人です。
層ごとに、別の守りを置きます。同じ守りを何度も重ねても、同じ弱点で、一度に破られます。
サーバの層と守りの例
| 層 | 守りの例 | 働き |
|---|---|---|
| 境界 | ファイアウォール | 防ぐ |
| ホスト | 最小権限のアカウント | 防ぐ |
| アプリ | 入力のチェック | 防ぐ |
| データ | 別の場所のバックアップ | 対応する |
| 人 | 怪しいメールの訓練 | 防ぐ |
学生が入力するセルは、このプレビューでは空白です。
守りは防ぐ、見つける、対応するの3つ
防ぐ守りは、事故を起こさせません。権限や鍵がそうです。見つける守りは、起きたことに気づかせます。ログや警報がそうです。対応する守りは、被害を止めて、元に戻します。バックアップがそうです。
防ぐだけでは、破られたことに気づけません。3つがそろって、はじめて守りです。
防ぐ: 他の人を入れない
練習用のフォルダを作り、700 にします。所有者以外は、入れません。ホームフォルダで、確かめましょう。
練習用のフォルダ
mkdir -p layers/data layers/backupここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
所有者だけが入れる
chmod 700 layers/dataここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
モードを見る
stat -c "%A %n" layers/dataここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
見つける: ログを数える
失敗した認証は、ログに残ります。ここでは、練習用の3行のログを作り、失敗の行を数えます。多すぎれば、誰かが推測しているかもしれません。
練習用のログを作る
printf 'Failed password for tanaka\nAccepted password for tanaka\nFailed password for tanaka\n' > layers/auth.logここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
失敗の行を数える
grep -c Failed layers/auth.logここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
対応する: コピーから戻す
バックアップは、元のデータと別の場所に置いたコピーです。cp -a は、モードや日時を保ってコピーします。
データを1つ作る
echo "order 1" > layers/data/a.txtここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
バックアップに写す
cp -a layers/data/. layers/backup/ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
コピーの中身を読む
cat layers/backup/a.txtここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
よくある間違い
注意
「強いファイアウォールを入れたから、もう安全だ」と考える人が多くいます。でも、内部の人のミスや、盗まれたパスワードは、境界を素通りします。層を重ねて、1つの弱点で全部を失わないようにしましょう。
足りない層を探す
計画を立てるときは、層と働きの表を作ります。空いているマスが、足りない守りです。
このラボのサーバにも、対応する守りがあります。backup.sh は、共有フォルダを別の場所にコピーするスクリプトです。中身を読みましょう。
ラボのバックアップを読む
cat /usr/local/bin/backup.shここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
層と働きの表で穴を探す
| 層 | 防ぐ | 見つける | 対応する |
|---|---|---|---|
| 境界 | ファイアウォール | 侵入検知 | 空き |
| ホスト | 最小権限 | ログの監視 | 手順書 |
| データ | 空き | 空き | バックアップ |
学生が入力するセルは、このプレビューでは空白です。