[PR]小規模ECサイトに最適なWAF、SiteGuard Lite
2008年07月16日 ホワイトリストとブラックリスト
_ホワイトリスト方式の優位は神話
近々WAF(Web Application Firewall)の話題を取り上げたいと思っている(→WAFの話題はこちら)。WAFの説明には決まってホワイトリストとブラックリストという用語が出てくる。しかし、WAFの宣伝やブログなどのエントリを読んでいると、ホワイトリストやブラックリストという言葉に対する誤解があるように見受けられる。そのため、WAFの話題の前に、この二つの用語の説明をしておきたいと思う。
ごく大雑把に言って、ホワイトリストは「怪しくない人・モノ」を列挙したもの、ブラックリストは「怪しい人・モノ」を列挙したものだ。これらのうち、日常生活でなじみのある用語はブラックリストだろう。クレジットカードの支払いを延滞すると「ブラックリスト」に名前が載り以降しばらくカードが作れなくなるとか、テロ組織のメンバーの名前が書かれた一覧表も「ブラックリスト」と呼ばれる。
最近話題の携帯コンテンツのフィルタリングについても「ホワイトリスト」方式と「ブラックリスト」方式の是非が議論された。この場合は、青少年の閲覧に問題ないサイトの一覧が「ホワイトリスト」、問題が想定されるサイトの一覧が「ブラックリスト」となる。
さて、問題はこの二つの方法論の使い分けだ。冒頭に述べたようにセキュリティ業界ではなにかとホワイトリストの人気が高いようだが、この傾向はWAF分野において顕著だ。以下は、とあるWAFの宣伝文句であるが、ホワイトリスト方式の利点が高らかにうたわれている。
・・・のWAF機能は、ポジティブ・セキュリティと呼ばれるホワイトリスト方式を採用している。これはポリシーによって正しいと定義されたトラフィックのみに、Webアプリケーションへのアクセスを許可する方式。不正アクセスをブラックリスト方式で識別するIDC(不正侵入検知システム)やIDP(不正侵入防御システム)では常にリストを更新する必要があるが、ホワイトリスト方式なら頻繁な更新は不要で、新しい攻撃に対する防御能力も高い。 引用元
一例のみ紹介したが、このような題材を探すには苦労しない。そして、そのような説明の多くが、ブラックリスト=古くて劣ったもの、ホワイトリスト=新しくて優れたもの、という調子だ。引用した文もそうなっているが、ホワイトリスト方式=ポジティブ、ブラックリスト方式=ネガティブという用語も(こう呼ぶ意味はあるのだが)ホワイトリスト方式の優位を印象付ける。
しかし、である。本当にホワイトリストが優れていて、ブラックリストが劣っているのであれば、法律かなにかでブラックリスト方式を禁止し、今後はホワイトリスト方式のみを採用するようにすべてのセキュリティベンダに強制すべきではないのか。現実にはそんなことはできないのであって、例えばウィルス対策ソフトをホワイトリスト方式で実装することは不可能だ。ホワイトリストとブラックリストにはそれぞれ長所と短所があって使い分けをすべきものであり、どちらが優れているとか劣っているというものではないのだ。
右の図はホワイトリストとブラックリストの位置づけを概念的に示したものだ。図のように、ホワイトリスト(WL)は「まず安全と考えられるもの」を列挙したもの、「ブラックリスト(BL)」は「安全でない可能性がかなりあるもの」を列挙したものとなる。そして、ホワイトリストとブラックリストのどちらにも載ってない中間部分が、「白黒はっきりしない中間領域」すなわちグレイゾーンとなる。
この図からもわかるようにWLとBLで示すことのできる領域は全体として一部であり、どうしてもグレイゾーンが大きくなる。すなわち、WLは判断を安全サイドに倒して「安全という保証のないものは全て排除する」もの、BLはカバー範囲を広くとることを重視して「明らかに怪しいもの以外は受け入れる」方法ということになる。この関係を以下に表として示した。
ホワイトリスト方式 | ブラックリスト方式 | |
カバー範囲 | 狭い | 広い |
安全性 | 高い | 危険なものを受け入れる可能性あり |
これだけのことだ。ホワイトリスト方式の方が安全なことは確かだが、世の中全てホワイトリストで回せるはずがない。セキュリティの世界では守るべき対象の性質によってはホワイトリストが使える場合があって、その場合はぜひホワイトリストにしなさいというだけのことである。前述のように、ホワイトリストが使えない場合が現実には大半なので、(問題があるとは分かっていて仕方なく)ブラックリスト方式を使う。それだけのことだ。特に方法論自体の優劣とは関係ない。
ついでのように紹介して恐縮だが、大垣さんの書かれたホワイトリストはどう作る?は、ホワイトリスト神話の悪しき例と言わざるを得ない。
スクリプトインジェクション(XSS)防止にブラックリストが機能しない事は明らかです。ホワイトリストはどう作れば良いか参考となるリンクです。どう作るか書いておいても古くなる可能性が高いので、どこを参考に作れば良いか参考URLを書いておきます。
以下のリンクの情報からスクリプトのインジェクションがどのように行えるかを参考にホワイトリストを作れば概ね間違いないと思います。
Follow up:
XSS Cheat Sheet
スクリプトインジェクション手法の中でも有名な手法を集めているサイトです。XSSロケータと呼ばれている文字列はスクリプトインジェクション脆弱性検出に重宝します。よくある脆弱性であればこの文字列で簡単に検出できます。
[ホワイトリストはどう作る?より引用]
大垣さん、これではホワイトリストではなくて、ブラックリストそのものです。
一方、興味深いことに、金床さんの書かれたウェブアプリケーションセキュリティには、同じ題材を取り扱っているが、その記述はまるで異なる。
WAFを使用しブラックリスト方式のシグネチャマッチングによってXSS対策を行う場合、攻撃を完全に防ぐことは不可能である。これはXSSを引き起こす可能性のある文字列が非常に多岐にわたるためだ。このことは非常によく知られたドキュメントであるXSS Cheat Sheetを見るとよくわかる。【中略】望ましい対策として、パラメータごとにホワイトリスト式のチェックを行う方法が考えられるが、残念ながら多くのウェブアプリケーションではホワイトリストをきちんと定義することが難しい【中略】従って、WAFを使ってXSS攻撃を完璧に防ぐことは期待できない(P92~P94)。
[ウェブアプリケーションセキュリティより引用]
同書の書評でも述べたが、オープンソースのWAFの開発者としてホワイトリストとブラックリストの両方に真剣に向き合ってきたからこそ書ける、正確かつ誠実な記述である。
金床さんのWAFの話題が出たところで、次回はWAFの説明に続く・・・徳丸浩の日記 - そろそろWAFに関して一言いっとくか - 三重苦を乗り越えてWAFが普及するための条件とは
最近、自分専用Webアプリケーションをちょこちょこと作っているため、(近いうちにライブラリ的なものを公開できるレベルに達すればいいので祟..
- https://www.google.co.jp/ ×749
- http://tumblr.tokumaru.org/post/55958429832 ×44
- https://www.google.com/ ×32
- http://tumblr.tokumaru.org/ ×21
- http://www.tokumaru.org/ ×16
- http://tumblr.tokumaru.org/page/2 ×6
- http://t.co/5agJyT0 ×5
- http://www.tokumaru.org/d/20080716.html ×4
- http://tumblr.tokumaru.org/page/3 ×4
- http://blog.ohgaki.net/whitelist-must-be-default ×4
- https://www.facebook.com/ ×3
- http://tumblr.tokumaru.org/page/4 ×3
- http://search.fenrir-inc.com/?hl=ja&channel=sleipn... ×3
- http://search.fenrir-inc.com/?hl=ja&channel=sleipn... ×3
- http://matcha445.techtalk.jp/saturday-workshop/2nd... ×3
- http://d.hatena.ne.jp/GOLEM-XIV/20100531/127531662... ×3
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×2
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×2
- http://www.amazon.co.jp/gp/bit/amazonserp/ref=bit_... ×2
- http://search.fenrir-inc.com/?hl=ja&channel=sleipn... ×2
- http://search.fenrir-inc.com/?q=ホワイトリスト ウイルス&hl=ja... ×1
- https://www.google.com/url?sa=t&rct=j&q=&esrc=s&so... ×1
- https://www.google.com.br/ ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&... ×1
- http://www2.inbox.com/search/resultsc.aspx?q=ファイアー... ×1
- http://www.tumblr.com/dashboard ×1
- http://www.searchmobileonline.com/search?q=ホワイトリスト... ×1
- http://www.facebook.com/l.php?u=http://www.tokumar... ×1
- http://www.baidu.jp/s?tn=baidujp&ie=utf-8&cl=3&ct=... ×1
- http://www.baidu.jp/s?tn=baidujp&ie=utf-8&cl=3&ct=... ×1
- http://www.askul.co.jp/p/806287/ ×1
- http://www.askapache.com/ ×1
- http://wsearch.ocn.ne.jp/ocn.jsp?MT=セキュリティソフト ブラック... ×1
- http://websearch.excite.co.jp/?look=excite_jp&ssty... ×1
- http://theoldreader.com/posts/all ×1
- http://sp-search.auone.jp/search?q=ホワイトリスト&client=... ×1
- http://search.smt.docomo.ne.jp/result?MT=ホワイトリスト 欠... ×1
- http://search.smt.docomo.ne.jp/result?MT=ホワイトリスト&S... ×1
- http://search.fenrir-inc.com/?q=waf ブラックリスト方式&hl=j... ×1
- http://search.fenrir-inc.com/?q=BlackList 方式&hl=ja... ×1
- http://search.fenrir-inc.com/?q=ホワイトリスト ファイアウォール&h... ×1
- http://search.fenrir-inc.com/?q=ホワイトリスト ウィルス&hl=ja... ×1
- http://search.fenrir-inc.com/?q=ホワイトリスト方式&hl=ja&sa... ×1
- http://search.fenrir-inc.com/?q=ホワイトリスト型 ウイルス&hl=j... ×1
- http://search.fenrir-inc.com/?q=ホワイトリスト型 アンチウイルスソフ... ×1
- https://www.google.es/ ×1
- http://search.fenrir-inc.com/?q=ブラックリスト ホワイトリスト WA... ×1
- http://search.fenrir-inc.com/?q=ファイアウォール ホワイトリスト ブ... ×1
- http://search.fenrir-inc.com/?hl=ja&channel=smart_... ×1
- http://search.fenrir-inc.com/?hl=ja&channel=sleipn... ×1
- http://search.fenrir-inc.com/?hl=ja&channel=sleipn... ×1
- http://search.fenrir-inc.com/?hl=ja&channel=sleipn... ×1
- http://search.fenrir-inc.com/?hl=ja&channel=sleipn... ×1
- http://search.fenrir-inc.com/?hl=ja&channel=sleipn... ×1
- http://search.fenrir-inc.com/?hl=ja&channel=donut_... ×1
- http://search.conduit.com/Results.aspx?q=ブラックリスト方式... ×1
- http://search.babylon.com/?q=ホワイトリスト方式&tt=010412_c... ×1
- http://search.babylon.com/?q=ブラックリスト方式&AF=110004&b... ×1
- http://s1.ereadingsource.com/search?hl=ja&source=a... ×1
- http://raydive.tumblr.com/archive ×1
- http://r.duckduckgo.com/l/?kh=-1&uddg=http://www.t... ×1
- http://m.facebook.com/l.php?u=http://www.tokumaru.... ×1
- http://m.facebook.com/l.php?u=http://www.tokumaru.... ×1
- http://m.facebook.com/l.php?u=http://www.tokumaru.... ×1
- http://jp.hao123.com/yahoo_search?query=ホワイトリスト&pn... ×1
- http://isearch.avg.com/search?q=SQL ブラックリスト 方法&cid... ×1
- http://bakera.jp/ebi/topic/3221 ×1
- http://azby.search.nifty.com/websearch/search?cflg... ×1
- ホワイトリスト ブラックリスト ×16 / WAF ブラックリスト ×8 / ホワイトリスト ×8 / ブラックリスト ホワイトリスト ×8 / waf ブラックリスト ×7 / WAF 歴史 ブラック ホワイト ×6 / ホワイトリスト方式 ×6 / ホワイトリスト型 ×5 / ブラックリスト方式 ×5 / フイルタリングのブラックリスト式とホワイトリスト式について ×5 / waf ホワイトリスト ブラックリスト ×5 / ファイアウォール ホワイトリスト ×5 / ホワイトリストチェック ×4 / WAF ブラックリスト ホワイトリスト ×4 / WAFホワイトリスト 欠点 ×4 / ブラックリスト方式 運用図 ×3 / waf ブラックリスト ホワイトリスト ×3 / ウィルスソフト、ホワイトリスト型 ×3 / WAF ホワイトリスト ×3 / ホワイトリスト方式とは ×2 / ホワイトリスト方式 ブラックリスト方式 ×2 / ホワイトリストとブラックリストの違い ×2 / ホワイトリスト、ブラックリスト ×2 / ホスト型WAF 問題点 ブラックリスト ×2 / ブラックリスト、ホワイトリスト ×2 / ブラックリスト ホワイトリスト WAF ×2 / 脆弱性対応 ホワイトリストタイプ ×2 / ブラックリスト シグネチャ ×2 / ブラックリストとホワイトリスト ×2 / ホワイトリスト方式 デメリット ×2 / ホワイトリスト 弱点 ×2 / ホワイトリストタイプ ウイルスチェック ×2 / ホワイトリスト方式ウイルス対策ソフト ×2 / firewall ホワイトリスト ×2 / WEB ホワイトリスト ×2 / ホワイトリスト型 ブラックリスト型 の比較 ×1 / Web Application Firewall ブラックリスト ホワイトリスト ×1 / Webレピュテーションサービスのホワイトリスト ×1 / Webアプリーケーション ホワイトリスト ×1 / php ブラックリスト方式 ×1 / WAF Black White ×1 / url ホワイトリスト ブラックリスト ×1 / WAF ホワイト ブラック ×1 / WAF ブラックリスト ホワイトリスト どっちが ×1 / WAF(Web Application Firewall)のブラックリスト又はホワイトリストの説明のうち ×1 / WAFブラックリスト ×1 / WAFブラックリスト設定 ×1 / WAF(Web Application Firewall) ホワイトリスト ×1 / Proxy.pac ホワイトリスト ×1 / IPA WAF 徳丸 ×1 / Embedded ウィルス対策 ホワイトリスト ×1 / ホワイトリスト方式 ウィルス対策ソフト ×1 / ホワイトリスト型 セキュリティ ×1 / ホワイトリスト型 ウイルスソフト 弱点 ×1 / ホワイトリスト ブラックリスト ウィルス ×1 / ホワイトリスト セキュリティソフト ×1 / ファイヤーウォール ホワイトリスト化 ×1 / ファイアウォール ホワイトリスト サブネットマスク ×1 / 徳丸 ホワイトリスト ブラックリスト ×1 / 徳丸 リスト型 ×1 / ホワイトリスト SQL ×1 / ホワイトリスト 重い ×1 / ホワイトリスト 欠点 ×1 / ホワイトリスト ウイルス デメリット ×1 / ホワイトリスト ウィルス 証明書 ×1 / ホワイトリスト方式 デメリット ウィルス ×1 / ホワイトリスト方式のウィルス対策ソフト ×1 / ホワイトリスト方式とブラックリスト ×1 / ホワイトリスト方式で使えるYesScriptがあれば ×1 / ホワイトリスト方式 問題点 ×1 / ホワイトリスト方式 なりすまし ×1 / ホワイトリスト型 対策ソフト 難しい ×1 / ホワイトリスト型 ウィルス対策ソフト ×1 / ホワイトリスト型セキュリティソフト ×1 / ホワイトリスト型ウィルス対策ソフト - ×1 / WinGate ファイアウォール ホワイトリスト ×1 / ホワイトリストデメリット ×1 / waf ホワイトリスト ×1 / ホワイトリストとは ×1 / ホワイトリストで防げるリスク ×1 / waf ホワイトリスト サンプル ×1 / ホワイトリスト ポジティブリスト ×1 / ホワイトリスト ブラックリスト セキュリティ ×1 / ホワイトリスト ウィルス対策 ×1 / ホワイトリスト ウィルス 問題点 ×1 / waf ポジティブ ×1 / ブラックリスト ホワイトリスト 設定 ×1 / ブラックリスト方式 とは ×1 / ブラックリスト方式 ホワイトリスト ×1 / ブラックリスト型の対策 ×1 / waf 不正リスト ×1 / ブラックリストとホワイトリストに乗っている ×1 / ブラックリストおよびホワイトリストでのチェック ×1 / ブラックリスト WAF ×1 / ブラックリスト ホワイトリスト 強い ×1 / ブラックリスト ホワイトリスト 違い ネットワーク ×1 / ファイヤウォール ホワイトリスト ×1 / ファイアウォール ポートのみホワイトリスト ×1 / ファイアウォール マッチング 方式 ×1 / ネガティブリスト ウイルス対策 ×1
[PR]小規模ECサイトに最適なWAF、SiteGuard Lite
大垣です。手抜きエントリを見事に誤解されたので追記しました。
http://blog.ohgaki.net/-7
それから、ホワイトリスト方式とブラックリスト方式の考え方は私の考えとは大きく異なります。ホワイトリスト型、ブラックリスト型のセキュリティ対策では分かり辛いように思えるので個人的には能動的(プロアクティブ)と受動的(リアクティブ)なセキュリティ対策と言う方が好みですが、バッファーオーバーフローをバッファーオーバランと言うような物なのでホワイトリスト型、ブラックリスト型の対策として書いています。
http://blog.ohgaki.net/-13
ところでXSS Cheat Sheetは読まれましたか? アレを読んでそれでもブラックリスト方式でXSSを防げる、と信じられる方はかなりの重症だと思います。なので、読まれていないと思います。あのエントリはホワイトリストを自分で作る事を考えてもらえるように書いています。XSS Cheat Sheetを読まないと意味がありません。