画像ツール一覧

ホワイトリスト

Whitelist / Allowlist

セキュリティ

許可する対象を列挙した許可リスト(Allowlist)です。対象を限定する規則として、それ以外を拒否する方式で使います。リストに登録したこと自体が安全性の証明になるわけではありません。

🐾 猫で例えると?

警戒感0の体制でおなかを触ってと言わんばかりにこちらを見る茶トラ ホワイトリスト
安全確認済み:心を開いた特定の相手だけを許可する「お腹触りリスト」

お腹を見せる茶トラを、「触ってよいのは、あらかじめ決めた相手だけ」とするルールに見立てましょう。この許可した相手の名簿が、ホワイトリストに当たります。

茶トラが触れられる相手を選ぶように、「誰でも通す」のではなく、決めた相手を通す考え方です。ただし、いつもの相手の状態が変わることもあるように、許可済みの端末が侵害されるリスクは残ります。

🐾 PR

💻 IT現場における「ホワイトリスト」とは?

Default Denyは、明示的に許可しないものを拒否する原則です。拒否された通信がすべて悪意ある通信という意味ではなく、業務で必要な通信もリストに漏れれば止まります。

例えば、企業のWebサーバーへの管理アクセスを制限する場合、全インターネットからのアクセスを拒否した上で、特定の拠点のIPアドレスだけをホワイトリストに登録します。これにより、そのアクセス制御を通るリスト外の接続を拒否できます。ただし、許可した接続元の侵害までは防げません。近年では、人種差別的な表現を避けるために「許可リスト(Allowlist)」と言い換えることも増えています。

⚠️ ホワイトリストの仕組みとメリット

許可する対象が少ない場合は、未知の接続元や未承認のアプリも制限しやすくなります。一方、許可したIPからの攻撃や許可済みアプリの脆弱性は防ぎきれません。何を照合するリストなのかを明確にして使います。

NginxでのIPホワイトリスト設定例

Webサーバー(Nginx)で、特定のIPアドレスからのみアクセスを許可し、他をすべて遮断する設定の例です。

# 特定のIPのみ許可する設定
location /admin/ {
    allow 203.0.113.1;  # 許可する管理者のIP
    allow 192.168.1.0/24; # 許可する社内LANの範囲
    deny all;           # それ以外はすべて拒否!
}

Nginxはルールを上から評価し、最初に一致したものを適用します。変更前にnginx -tで構文を確かめ、正規の管理者が締め出されないかも検証します。プロキシを挟む場合は、実際に照合される接続元IPを確認してください。

🛠️ ホワイトリストを賢く使うためのポイント

許可する範囲を絞るには、リストの更新と、必要なアクセスが通ることの確認を続ける必要があります。

触れてよい相手を選ぶ猫のように、ホワイトリストは許可する範囲を絞る方法です。許可済みというだけで安全と考えず、変更時には不要になった項目の削除と、必要な通信が通ることの確認をセットで行いましょう。管理者自身を締め出さない確認も必要です。