はじめに
ウェブアプリケーションへの攻撃をリアルタイムで防いでくれるWAFと、事後にアクセスログから攻撃の痕跡を発見してくれるセキュリティログ分析。私はScutumというWAFのサービスとLoggolというセキュリティログ分析サービスの両方を作っている珍しい立場なので、今回はこの2つの比較、使い分けについてまとめてみようと思います。
WAFは攻撃を防ぐ
私は両方をクラウドサービスとして開発・運用している立場です。つまりどちらを使ってもらってもうれしい状況におり、バイアスなしでこの2つを比較することが出来ます。
「どっちがおすすめなの?」ときかれたら、基本的には迷わずにWAFを推します。というのは、何しろWAFには実際に攻撃を防ぐ機能があるからです。
Loggolのように事後にアクセスログを分析するセキュリティ分析は、やり方によってリアルタイムに近い形で攻撃を認識することはできますが、それをそのまま防御につなげることはとても難しいです。
例外として、リスト型攻撃のように攻撃に長い時間を要するものは、ログから発見してそこから(ファイアウォールなどを設定変更するなどして)防御につなげることも考えられますが、基本的にWAFのようには「防ぐ」ことはできません。
「攻撃の見える化」はどちらでもできる
ログを分析するサービスであるLoggolでは、自社のウェブサイト・ウェブアプリへの「攻撃を見える化」しよう、というコンセプトを掲げています。一方、通常、WAFのコンセプトは(他社さんも含め)シンプルに「攻撃を防ぐ」というものになるでしょう。
あまり意識しないと思いますが、もちろんWAFでも攻撃の見える化は達成されます。事後に、どれだけの攻撃をブロック(あるいは単に検知)したのかを確認することが、まさに見える化であるからです。そのため、「攻撃を見える化したい」という要求がある場合、WAFとセキュリティログ分析はどちらもそれを達成することができます。
細かい点に踏み込むと、WAFはアクセスログには記録されないHTTPリクエストのヘッダ部分やPOSTリクエスト等で存在するボディ部も検知対象とする(※1)一方で、ログ分析はそのへんはそもそもログに記録されていないため、結果としては見逃す形になります。この点でも、WAFがやや優れていると言えます。
※1: Scutumの場合。他社さんのWAFだとそのへんは微妙なのかもしれないですが、細かくは把握していないです
導入の気軽さは圧倒的にセキュリティログ分析
ここまでWAFが圧勝でしたが、セキュリティログ分析サービスが優れているところもあります。まず1つめは「既存のシステムに影響を与えることなく、圧倒的に気軽に導入できる」という点です。
WAFは重要なウェブの通信に「割り込む」ことになるため、おいそれと手軽に導入できるものではありません。WAFの障害やバグはそのままウェブサイトのサービスに影響が出ますし、False Positiveの誤検知が発生してしまえば、ビジネスの邪魔をします。
一方でログ分析は既存のシステムからアクセスログのファイルだけを取り出せば、完全に粗結合で利用できます。ログ分析システムにバグや障害があっても既存のウェブサイトのサービスへの影響はゼロであり、また誤検知があってもビジネスを止めてしまうこともありません。
既存のサービスに影響を出さず、単にモニタリングだけしたいという用途に、いわば「ウェブ用のIDS」のように使うこともできます。
このように導入の気軽さという点ではセキュリティログ分析が圧倒的です。私がLoggolの紹介をするとき、この点をいつも強調しています。
ログ分析では過去を振り返ることができる
次に、セキュリティログ分析サービスでは過去のデータをいつでも分析できることも魅力です。WAFはリアルタイムの通信しか分析できませんが、ログ分析は古いログでも新しいログでもどちらでも分析できます。採れたてホヤホヤの5分前のログを分析してリアルタイムに近い形で状況を確認することもできますし、半年前にインシデントが発生していた可能性を感じたら当時のログを分析するようなことも可能です。
WAFとセキュリティログ分析、両方使うべきか?
私はどちらのサービスも運用している立場上、もちろん両方を契約してくれるユーザさんがいればそれはとてもうれしいですが、基本的にはWAFが入っているのであれば、セキュリティログ分析はしていなくてもいいかなと考えています(※2)。
LoggolではWAFだと見つけにくい種類のリコネサンスも見つけたり、異常検知やボット検知などの機能もあります(※3)が、大部分のユーザさんは基本的な(SQLインジェクションなどの)ウェブの攻撃を止めることや攻撃の状況の見える化を目的としていると思います。これは基本的にWAFで達成できると思いますので、WAFが利用できるのであれば、WAFだけでもいいのかなと思います。
ただし、次の項目で説明するように、両方使うと面白そうなケースもあります。
※2: もちろん、品質がちゃんとしているWAFを前提とした場合です
※3: ボット検知は近日リリース予定です。今頑張って作ってます
WAFの漏れをセキュリティログ分析で拾う
WAFが前段で攻撃を止め、ウェブサーバにはWAFが止めなかった通信だけが到達しているような場合には、ウェブサーバ上のアクセスログをセキュリティログ分析サービスで調べることで、万が一WAFが攻撃を止めなかった、つまり漏らしてしまった場合にそれを発見することができます。
ScutumとLoggolではどちらも似たような検知ロジックを使っているため、ウェブの代表的な攻撃についてはあまりこの状況(WAFでの発見はできず漏れたが、ログ分析で見つかる)は起こりません。しかし他社さんのWAFの場合には、もちろんLoggolと異なる検知ロジックなので、もしかしたらこれが起こるかもしれません。そのような意味では、両方使ってみるのも面白そうです。
WAFや脆弱性検査の導入前調査としてログ分析
ウェブサイトにWAFや脆弱性検査を導入しようかという段階で「そもそもウチのサイト、攻撃されてるのかな?」という疑問がある場合は、最初にスポットでログ分析を契約して状況を把握し、その後必要に応じてWAFや脆弱性検査に切り替えるのもよいでしょう。今の時代、ウェブサイトの規模に関わらず自動化された攻撃が常に来ていると思います。ログを分析して攻撃を見える化すると、おそらく何かしら検知されると思いますが、一度これを実際に自分で見ておくのと、見ないままで何となく想像しているのでは、ウェブのセキュリティに対する解像度が少し変わると思います。Loggolは月額2万円で、単月契約も可能なので、このような導入前の調査にも向いていると思います。
まとめ
今回はWAFとセキュリティログ分析サービスの関係について簡単にまとめました。たまに、お客様から「LoggolはScutumと組み合わせるといいの?」ときかれる場合がありますが、その回答になっているかなと思います。肝心な費用については各々のトラフィックやログのサイズによりけりで、どちらが高い・安いは一概に言えないと思いますので、今回はそこには言及していません。
Loggolでは無料で二週間試せるトライアルプランが誰でも利用可能です。興味のある方はこちらからすぐにサインアップ可能ですので、是非試してみてください。ご質問などはお気軽に@kinyukaまで。オンライン会議での相談なども可能です。