ブラックリスト
Blacklist / Denylist
アクセスや実行を拒否する対象を列挙したリストです。拒否リスト(Denylist)とも呼ばれ、IPアドレス、メール送信元、ファイルの特徴など、何を照合するかは用途によって異なります。
🐾 猫で例えると?
ケージの柵越しにこちらを見るアメショ。「今はこの猫だけ、リビングへの出入りをお休み」と決めた場面に見立ててみましょう。通常は通すルールの中で、拒否する対象だけを名簿に載せる考え方がブラックリストです。ケージに分けること自体ではなく、「誰を拒否するかを列挙する」点に注目します。
💻 IT現場における「ブラックリスト」とは?
ITの現場においてブラックリストは、セキュリティ対策の基本中の基本として古くから使われています。スパムメールを振り分ける「迷惑メールフィルター」や、Webサイトをサイバー攻撃から守るWAF(Web Application Firewall)、不正なユーザーのアカウント凍結など、様々な場所で「このリストに載っている奴は通さない」という関所として機能しています。
なお、近年IT業界では「ブラック/ホワイト」という表現が人種差別を連想させる可能性があるという配慮から、ブラックリストを「Denylist(拒否リスト)」、逆の概念であるホワイトリストを「Allowlist(許可リスト)」と言い換える動きが主流になっています。現場のドキュメントやAWSなどのクラウドサービスの設定画面でも、この呼称が使われることが増えています。
⚠️ ブラックリストの仕組みと注意点
拒否リスト方式は、基本的には登録対象を遮断し、それ以外をこのルールでは遮断しない考え方です。「リストにない」ことは安全性の証明ではなく、認証や別の防御も必要です。
Nginx(Webサーバー)でのアクセス拒否設定の例
過去に攻撃を仕掛けてきた特定のIPアドレスや、怪しいネットワーク帯域からのアクセスを明示的に遮断する際の設定方法です。
# Nginxの設定例。例示用アドレスを使用
location / {
deny 192.0.2.10; # このアドレスを拒否
deny 198.51.100.0/24; # この範囲を拒否
allow all; # 残りは許可
} Nginxのallow/denyは上から順に評価し、最初に一致したルールを使います。順番を変えると意図が変わるため、適用前にnginx -tで構文を確認します。プロキシ経由の構成では、照合対象が利用者のIPなのかプロキシのIPなのかも確認してください。
🛠️ ブラックリストを賢く使うためのポイント
ブラックリスト方式を導入・運用する際は、以下の点に注意が必要です。
- イタチごっこを覚悟する: 攻撃者はIPアドレスやドメインを次々と変えて攻撃してきます。静的なブラックリストだけで完全に防御することは難しいため、AIを用いた動的な振る舞い検知などを組み合わせるのが現代のベストプラクティスです。
- 誤検知に注意する: リストの条件を厳しくしすぎると、無実の正常なユーザーまで巻き込んでアクセス拒否してしまうことがあります。定期的なリストの見直しや、ユーザーからの異議申し立てルートを用意しておく必要があります。
- 許可リストとの使い分け: 管理画面など、利用者や接続元を限定できる場所では許可リストが適しています。ただし、許可済み端末の侵害に備え、認証や最小権限も組み合わせます。
「この猫だけ出入りをお休み」という例えなら、いつ制限を終えるかも決めておきたいですね。システム運用においても、一時的な制限と、安全が確認された後の「リストからの解除」はセットで行うことが大切ですね!