HOME > Scutumを支える技術 > Scutum技術ブログ

技術者ブログ

クラウド型WAF「Scutum(スキュータム)」の開発者/エンジニアによるブログです。
金床“Kanatoko”をはじめとする株式会社ビットフォレストの技術チームが、“WAFを支える技術”をテーマに幅広く、不定期に更新中!

2020年8月

            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
Scutum開発者/エンジニアによる技術ブログ WAF Tech Blog

大手クラウドのオプション型のWAFの弱点

はじめに

最近ではIaaSやPaaSを中核とする大手クラウドサービスが、それら以外にも数多くのメニュー、サービスを横並びに展開するようになりました。ここにはCDNやWAFが含まれることもあります。これらのクラウドサービスにおいて、CDNはさておき、WAFについてはあくまでも「オプション」的な立ち位置にあるものが多いようです。今回は個人的にこの「クラウドのオプション型」のWAFについて気になっている点を紹介します。

1. シグネチャ依存型が多い

大手クラウドサービスではメインとなる稼ぎ頭はIaaSやPaaS、あるいはデータベースのSaaS等であることが多いと思いますが、「一通りのサービスがこのクラウドだけで揃う」という点を重視しているのか、WAFという名目で、私から見るとあまり機能が充実していないものを提供しているケースがあります。そしてこれらはほぼ全てのケースでWAFの実装としてシグネチャあるいはルールのみを使う、いわゆる「シグネチャ依存型」のWAFとして提供されています。

「WAFといえばシグネチャ」と考えている人も未だに多いようですが、私がシグネチャ依存型のWAFは避けようという記事で書いたように、2020年という時代に、シグネチャという昔の技術のみに依存するWAFを作ることは好ましくありません。WAFというのはHTTPの通信について「攻撃か、そうでないか」の分類を行うものですが、このように「ソフトウェアが分類する」場面においては、現在ではさまざまな優秀なアルゴリズムが利用可能になっています。シグネチャというのは誰にでも理解しやすいというシンプルさはありますが、その反面、難しい分類は苦手としており、シグネチャのみでWAFを作ってしまうと誤検知(※1)が絶えないWAFになってしまいます。

大手クラウドベンダーがWAFを作る際にシグネチャ依存型のWAFにしてしまった理由は、私がWAFにおけるシグネチャの功罪という記事で書いたように、「シグネチャは手軽に作れる」という点が大きいのかなと推測しています。つまり、「より良いWAFを提供する」という目的よりも、「とりあえずラインナップとしてWAFを追加する」という目的が優先された結果、低い開発コストで作ることができるシグネチャ依存型のWAFになっているのではないか、ということです。

繰り返しになりますが、WAFの仕事の本質は分類することです。AIやデータサイエンスの技術が広く使えるようになった2020年の時点で、シグネチャを技術の中心としてソフトウェアで分類を行う、というのは最適な選択とは言えません。

大手クラウドサービスが「WAF」としてラインナップしていると「これが最新のWAFなのかな」と考えるユーザさんもいるかもしれませんが、その中身を冷静に評価してみてください。シグネチャ依存型というのはWAFにおいては最新どころか、最古のテクノロジーです。サービスを提供する側には「比較的すぐに開発してWAFとしてリリースできる」というメリットはありますが、利用する側からすると、デメリットのほうが大きいのです。

一見、最新のテクノロジーが集まって構成されているようなイメージがある大手クラウドサービスなのに、WAFにおいては古いテクノロジーが選択されている、というのは興味深く、認識しておきたいポイントです。

2. 誰でもサインアップして使える=研究される

大手クラウドサービスはクレジットカードとメールアドレス等があれば誰でもアカウントを作ることができ、その人物の身元の確認などは一切なしに利用することができます。これは普通に考えるととても良いことなのですが、WAFのサービスとしては実は弱点となりえます。なぜでしょうか?

私が個人的に好きな映画のひとつとして、エドワード・ノートンとロバート・デニーロが出演する「スコア(2001年)」があります。この映画では手練の金庫破りが登場するのですが、彼は事前にターゲットの金庫の種類を把握しておき、それと同じものを自宅に用意して、じっくりと攻略方法を研究(いわゆるリバースエンジニアリング)してから実際のコトに及びます。

クラウドのオプション型のWAFは、これと同じことを可能にしてしまうのです。特に、シグネチャやルールを自分たちで個別には設定せず、クラウドの既存メニューにあるものをそのまま使う場合、完全にこの形になります。

攻撃者は殆どコストをかけずに攻撃対象と同じWAFを用意し、自由に研究することができます。そして前述のようにシグネチャ依存型WAFであるため、例えば前回の記事のような穴を見つけておけば、実際の攻撃においてはWAFを回避することができます。これは現実性が非常に高いシナリオです。

私がWAFにおけるシグネチャの功罪という記事に書いたように、シグネチャには「回避されやすい」という欠点があります。そのため「攻撃者にできるだけ調査・研究されないようにする」ことが重要になります。シグネチャはリバースエンジニアリングにとても弱いのです。

身元が怪しい人物であっても、そして世界のどこにいる誰であっても利用可能なWAFがシグネチャ依存型であるというのは、この「シグネチャはリバースエンジニアリングに弱い」という点から考えると、とてもまずい状態であると言えます(※2)。

3. 実際には人的コストが減らせない

そもそもクラウドを利用するメリットは何でしょうか。例えば自前でデータセンターのラックを管理するのではなく、IaaSを利用する場合、ハードウェアの故障にいちいち自分たちで対応せずに済むようになります。これにより、本来やりたかったことではない、余計な作業についての人的コストを割かずに済むようになります。ここでは明確にコストを減らすことができるメリットが存在しています。

しかしクラウドのオプション的な存在になっているWAFでは事情が異なります。WAFは(Scutumも含めて)多かれ少なかれ誤検知の問題を起こします。そして、それに対する対応のコスト、つまり多くの場合は人的なコストが、WAFの利用において一番問題になる部分です。WAFは機械的に運用することが難しく、例えばCDN等と比較すると、使うだけでもとても手間のかかるものなのです。

大手クラウドのオプション型WAFはWAFそのものの利用料金は一見安く見えるものが多いですが、そこには最も必要となる人的なサポートが含まれません。もしそのWAFがデータサイエンス技術を駆使した非常に分類性能の高いもの(=誤検知がとても少ないもの)であればこの人的なコスト、サポートはあまり必要とならない可能性があるのですが、実際には10年以上前の技術である「シグネチャ依存型」のWAFであるケースが殆どです。つまり、人的コストはかなりかかります。ただし、以前の記事に書いたように、「攻撃はあまり止めない、誤検知も起こさない」ような状態にチューニングされたWAFになってしまっている場合には、それほど人的コストがかかりません。もちろん、これではWAFを入れている意味が失われていますが...

大手クラウドサービスを利用することでコストが下がるどころか、逆に上がってしまうのです。WAFにおいては「フルマネージドかどうか」がとても重要です。誤検知の問題や、新しい脆弱性が登場した際への対応など、人が細やかに対応してくれるサービスであることが良いWAFサービスの条件です。この点はWAFならではの特殊な事情と言えるでしょう。

Scutumはサービス開発当初から、「担当者を楽にする」ことをサービスの主眼としてWAFを提供しています。専門家に任せられる部分は任せてしまい、本来やるべき仕事に注力できる、フルマネージドなWAFサービスになっています。「WAFは面倒くさそうだな」と思っている方に選んでいただければ幸いです。

まとめ

今回はクラウドのオプション型のWAFが持つ大きな弱点について紹介しました。上記の3項目について、私はかなり前から認識していたのですが、WAFについての情報交換の場などで会話してみると、意外とみなさんが気づいていらっしゃらないポイントのようなので、今回、簡単に記事にしてみました。誤検知の問題に悩む方が一人でも減ることを願っています。

※1. 本稿での誤検知は、基本的に「正常通信を誤って攻撃と判定してしまう」ケース、いわゆる偽陽性を指します。
※2. Scutumはシグネチャ依存型でないので、リバースエンジニアリングに対して強さを持っています。また、攻撃者視点からの研究は私達自身で常に実施しており、仮に攻撃者に研究されても可能な限り問題は生じ難くなるように開発されています。