オープンソース(ModSecurityやNAXSIなど)から商用ソリューション(Imperva、Citrix、Fortinetなど)まで、さまざまなWAFを研究していました。多くの人々は、ホワイトリストベースのWAFを持つことはブラックリストよりもはるかに効率的であると述べています。
ブラックリストが時代遅れになる可能性がある理由(ボットの場合でもかなり良いかもしれません)とホワイトリストがこれらの問題を解決する方法を基本的に理解しています。しかし、ブラックリストの代わりにホワイトリストを使用すべき理由の詳細な説明を見つけるのは困難です。
質問:WAFでブラックリストではなくホワイトリストを使用する必要があるのはなぜですか?
説明や論文へのリンクは大歓迎です。
単一の製品に存在する可能性のあるすべての脆弱性の全知を知っている場合は、ブラックリストに登録することをお勧めします。私はあなたが無限の知識を持っていないと仮定しているので、あなたは次の脅威をブラックリストに載せるために絶えず戦い続けるでしょう。
ホワイトリストは、製品に期待される動作と入力がある場合に適しています。例えば。ユーザーがサイトにアクセスしてテキストボックスに数値を入力することを期待している。テキストボックスの入力を数字のみに制限するので、文字や記号を含むすべての悪用は明示的に禁止されています。
ホワイトリストは将来からあなたを守ることができます。ブラックリストはあなたを過去から守ることができます。
designおよびmaintainを説明できるホワイトリストexactlyホストされているすべてのアプリケーションが受け取る可能性のあるすべての正当な入力、それにより、未知の攻撃をブロックする能力が向上するため、補足的なセキュリティ。
上記の前提条件を満たさない場合は、ブラックリストを選択することをお勧めします。
全体として、よく行われ、正しくメンテナンスされたホワイトリストは、実際により良いセキュリティをもたらします。しかし、それは具体的であるため、すべての作業はあなたにのみ依存しています。リストの作成と維持に自信がない場合は、上流の会社/コミュニティが実施および維持する一般的なブラックリストを選択することをお勧めします。
John Stauffacherによるブログのこのゲスト投稿 、Webアプリケーションセキュリティの世界的に有名な専門家、およびWeb Application Firewallsの著者:実用的なアプローチ... Johnは推奨しています...
Webアプリケーションのセキュリティに対する最善のアプローチは、悪いものをブラックリストに載せるのではなく、良いものをホワイトリストに入れることです。
どうして?アプリケーションで発生する可能性のあるすべての不良を継続的に更新するよりも、アプリケーション内で優れているものをすべて列挙する方がはるかに簡単です。ルート、Cookie、パラメータ(およびそれらの値)はすべて組織に知られています。この情報を使用して、アプリケーションのすべての正しいエントリポイント、Cookie、パラメータ、および値の提案された「ホワイトリスト」を作成できます。このホワイトリストはアプリケーションのベースラインになる可能性があり、このベースラインから逸脱するトラフィックはすべて悪いトラフィックと見なすことができます。
ホワイトリストのアプローチは、Webトラフィックの「悪い点」を継続的に列挙するよりもはるかに安全で効率的です。毎日の悪い変化。ブラックリストに依存するWebチームは、8つのボールの背後にいることに気づき、最新のゼロデイ脅威を追跡し、人に知られているすべての攻撃ベクトルをリストし、WAFでルールを記述および更新し、自分を狂わせます。結局、彼らのWAFは過去を調べ、新しい脅威を阻止することができない攻撃シグネチャのリストになります。
したがって、ホワイトリストを確立する最初のプロセスにはブラックリストよりも少し時間がかかりますが、パイクを降りるすべてのゼロデイ脅威に追いつく必要がない、より積極的で堅牢なWAFセキュリティスタンスを得ることができます。
標準のWebアプリケーションのセキュリティ対策の一部としてホワイトリストを含め、リストを定期的に更新するようにしてください。よろしくお願いします。
ホワイトリストを使用すると、パフォーマンスが向上しますか?特定のWAFのホワイトリストは非常に短くなりますが、インターネット上のすべての脅威のブラックリストは非常に長くなります。したがって、ホワイトリストに入力が存在することを確認するのにかかる時間とCPUははるかに小さくなり、WAFの負荷は小さくなり、アプリケーションのパフォーマンスは高くなります。