Loggolというサービスを作った理由

はじめに

ついにLoggol(ロゴル)の正式版をリリースすることが出来ました。それに合わせてLoggolブログも開始です。まず最初の記事として、そもそも何故このサービスを作ったのかについて書いてみようと思います。理由は複数あり、それらが複合的に混ざることで実際のサービス化を決心しました。

 

1. WAFの技術を活かせる

私はLoggolの開発以前より、継続して2つのクラウド型のセキュリティサービスの開発・運用に携わってきました。1つはWAFであるScutum、もう1つは脆弱性検査ツールであるVAddyです。どちらもおかげさまで順調にユーザを獲得でき、軌道に乗っています。

 

前者はWAFなので、受け取ったHTTPリクエストのデータを見て、それが「攻撃かどうか」を判断するという部分がサービスの中核になります。これはソフトウェアによって瞬時に行われる処理であり、人が判断するヒマはありません。ウェブアプリケーションセキュリティの知見を持った人間が自身の知識をソフトウェアに落とし込み、自動的に「攻撃かどうか」を分類することが可能なソフトウェアを作ることによって、WAFを作ることができます。

 

WAFは通信の途中に割り込んで上記の分類を実施し、「これは攻撃だな」と判断したらその通信を止めます。これによってWAFに期待されるリアルタイムな防御が可能になります。ここでWAFが行っているのは

  1. 攻撃なのかどうかを分類する
  2. もし攻撃と判断したら、その通信を止める

という2点なのですが、実は2はとても簡単です。HTTPのレスポンスをステータスコード403で返してもよいですし、単にソケットを閉じるだけでも良いです。ここには技術的な難しさはありません。難しいのは1です。多種多様なデータが送られてくるウェブアプリケーションの入力に対して、高い精度で「攻撃かどうか」を分類する必要があります。

 

Scutumではベイジアンネットワークという技術や単なる正規表現のパターンマッチング(シグネチャと呼ばれる)などを組み合わせてこの分類性能を高めています。そして高い分類性能によって、WAFとしてよい仕事ができるよう改善を重ねてきました。

 

この「攻撃かどうか分類する」ソフトウェア機能は、WAF以外にも出番があります。例えばWAFに非常に似たIDSやIPSがあります。また、SIEMでも同じように、集められたログなどの情報に対して「攻撃かどうか」を分類するためにソフトウェアが機能します。

 

WAF/IDS/IPS/SIEMは既に非常に良く知られたセキュリティソリューションとなっています。さらに他にこのような分類機能が役に立つ場面はないだろうか?と考えると、IPAが出しているiLogScannerが思い浮かびます。これはウェブサーバ等のアクセスログを入力データとしており、それぞれの行を「攻撃かどうか」分類することで、アクセスログの中から悪意ある攻撃を抽出するものです。WAFとは異なり分類が行われる時点はリアルタイムではありませんが、ソフトウェアの機能はほぼ同じものです。このiLogScannerのような形態を以下では「Web攻撃ログ分析ツール」あるいは単に「ログ分析ツール」と呼ぼうと思います。ログを分析するという点ではSIEMに似ていますが、ウェブのアクセスログに限定した、非常にシンプルな立ち位置です。

 

iLogScannerが登場した当時から、私の頭の中では「これはWAFとほぼ同じ仕組みだ」と感じており、自分たちでも作れそう…というイメージは、もうずいぶん長い間持っていました。そしてWAFサービスを運用・開発していく中で、開発で使用する品質担保のためのテストコードの中には実質的にWeb攻撃ログ分析ツールそのものと言える物も存在しており、あとはビジネス的な枠組みを整備すればサービス化できる状態になっていました。

 

このように、必要とされる中核部分の技術はWAFとログ分析ツールで共通であるということが、1つめの理由です。

 

2. ログ分析ツールも優れた形態である

2つめの理由として、iLogScannerのスタイル、つまりログ分析ツールという形態はWAF/IDS/IPS/SIEMとは異なったメリットを持つという点があります。とりあえずIPS/IDS/SIEMは除外して、WAFとWeb攻撃ログ分析ツールの比較をしてみましょう。

 

WAFの最大の魅力は攻撃を止めてくれることでしょう。ログ分析ツールはWAFとは異なり事後に分析を実施するので、攻撃を止めることはできません。この一点だけで考えても、基本的にWAFが非常に優れたソリューションであると思います。

 

一方で導入コスト(特に人的なコスト)について考えてみると、ログ分析ツールの圧勝になります。単にアクセスログさえ用意できれば、すぐに使うことができます。

 

また、ログ分析ツールの導入では既存の情報システムに影響や副作用を与えないことも大きなメリットです。WAFの場合は通信に割り込む必要があるので既存のシステムに大きな変更を加える必要があります。また、WAFでは誤検知すると正常なビジネスの妨げになります。一方でログ分析ツールはアクセスログを取り出してしまえば、そこから先は既存のシステムから切り離された場所でのんびり使うことができます。また、ログ分析ツールでは誤検知があってもそれが正常なビジネスに与える影響はありません。この「手軽さ・気軽さ」はWeb攻撃ログ分析ツールの最大の利点と言えるでしょう。

 

さらに、WAFの強さはリアルタイム性ですが、逆に過去の古いデータをさかのぼって、例えばWAFを導入する前の古い通信やログについてはWAFを適用して攻撃を見つけることはできません。一方でログ分析ツールはかなり昔に取得したアクセスログでも、あるいは生成された直後のリアルタイムに近いログでも、どちらも問題なく分析することができます。

 

このように「攻撃を止めることはできない」ログ分析ツールにも、優れた点があるのです。そのためWAFのサービスを既に提供しており、前節で述べたように「攻撃かどうか」を分類できるソフトウェアを持っている私達としては、WAFに加えて別の形態としての「Web攻撃ログ分析ツール」を提供することにも意味があると考えました。

 

3. ベターなiLogScannerを作りたい

個人的にiLogScannerはとても良いサービス・ツールであると思いますが、やはり公的な機関から提供されるという立て付け上、いくつかの課題があると考えています。その中で最も気になるのは最終更新が2014年、つまりほぼ10年前であるという点です。そのため、Log4jのような、ここ数年で新たに登場した攻撃については検知することができません。

 

また、無償で使える反面、サポートについても実質的に提供されないでしょう。基本的には使う側のリテラシーをそれなりに要求するツールであると思います。

 

さらに、iLogScannerは基本的にデスクトップアプリケーションであるため、アクセスログを定期的かつ自動的に取得し、それらを分析して結果を継続的に監視していくような仕組み(いわゆるDevSecOps)を組み立てるのは難しいと考えられます。LoggolではWeb攻撃ログ分析ツールをクラウド型のサービスとして提供し、さらにWebAPIを用意することで、これを可能にしています。

 

このように「iLogScannerはとても良いツールだが、よりベターなものを提供できそうだ」というのが3つめの理由です。

 

4. WAFとは違う分析が可能

先述した「2. ログ分析ツールも優れた形態である」ではWAFとログ分析ツールの比較をしました。そこでは主に導入や運用面でのログ分析ツールの強みを解説しましたが、本来の目的である攻撃の発見という点においても、ログ分析ツールにはWAFでは実現できない分析が可能である場合があります。

WAFは「今そこに届いた」データを相手に短時間で処理して結論を出す必要があるため、多くのデータを参考にしてじっくり時間を欠けて分析することはできません。一方でログ分析ツールは数万行や場合によっては数百万行あるような大きなログの全体を見つつ、部分を評価する、いわゆるビッグデータ分析のようなことが可能です。これによって異常検知なども可能となってくるため、WAFでは発見できない攻撃や異常に気づくことができるケースがあります。

 

(一方で、通常アクセスログにはPOSTリクエストのボディ部が記録されていないため、単純にボディ部に含まれる攻撃はログ分析ツールでは発見することができません。この点ではWAFが完全に優れています。攻撃発見における両者の違いとして非常に大きなポイントなので、ここに記しておきます。)

 

このようにログ分析ツールはリアルタイム性がないからこそ時間をかけた分析ができるという点をWAFに対するアドバンテージとして利用することが出来ます。Loggolでは異常検知の機能を提供しています。今後もこの点を活かして、より高度な分析が可能となるようにLoggolを進化させていきたいと考えています。

 

5.その他

主な理由は上記の4点なのですが、他にも細かい点がいくつかあります。簡潔に書くと

となります。

 

まとめ

今回は「なぜLoggolというサービスを作ったのか」という点について、中心となる4つの理由を書かせて頂きました。シンプルで使いやすいサービスを目指していきたいと思っていますので、どうぞよろしくお願いします。

 

Loggolについてのご意見・ご要望などお気軽に金床までお伝えください。