最近耳にすることも多くなったWAF(Web Application Firewall)とは、どのようなものなのか?この記事では、初心者の方でも分かりやすいよう説明していきたいと思います。
WAFとは
WAFは、比較的新しいセキュリティ対策です。サービスをWebに公開している以上、セキュリティの脅威にさらされあらゆる面で対策を講じなければなりません。WAFはどのような役割を果たしているのでしょうか。
WAF(ワフ)とは、ウェブアプリケーションファイアーウォールの略で、アプリケーションの脆弱性を悪用した攻撃を防ぐためのものです。開発したアプリケーションに脆弱性がある場合もあれば、CMSなどのツールに脆弱性がある可能性もあります。
WAFは外部からのアクセスがアプリケーションに到達する前に悪意のあるものかどうかを判断し、悪意のあるアクセスを除外してくれるものです。
WAFが採用されるようになった背景
学生時代からスマートフォンやパソコンでインターネットに親しんでいる、いわゆる「デジタルネイティブ」の世代では、SNSやインターネットゲームの使用がもはや当たり前になっています。また、インターネットを介した銀行取引、証券取引、クレジット認証などがWebサイトに機能として組み込まれるようになり、活用の範囲が広がった分、より機密な情報がインターネットにさらされる危険が増しました。
ウェブアプリケーションの脆弱性とは、ソースコードの不備を攻撃され、アプリケーションが改ざんされるものです。本来であれば、脆弱性のあるソースコードを修正する必要があるのですが、ソースの修正が今までのウェブアプリケーションの機能に致命的な影響を与える場合もあり、対応に膨大な時間とコストがかかるという問題がありました。そのため、脆弱性を是正するよりも不正なアクセスを遮断するというニーズが高まり、WAFを採用する企業が増えてきました。
WAFはFWとIPS/IDS と何が違うの?
ネットワークやサーバーを守るセキュリティ対策といえば、WAFだけでなく、FW(ファイアウォール)やIPS/IDSを思い浮かべる方も少なくないと思います。
それぞれのセキュリティ対策にどのような違いがあるのか、見ていきましょう。
それぞれの違い
システムには、ネットワークの層だけでなく、OS/サーバー層、ソフトウェア層、ウェブアプリケーション層と複数に分かれています。
WAFとIPS/IDS、FWはこの層のカバー範囲が異なります。
また、WAFとIPS/IDSの違いとして、IPS/IDS不正な通信方法を検出することはできますが、通信の中身を解析して不正を判断する精度はWAFに比べて低いといわれています。
カバーできる範囲のほかに、対応する攻撃にも違いがあります。悪意のある攻撃といってもその種類は多種多様ですので、それぞれの攻撃に対応できるセキュリティ対策も異なってきます。
WAF・・・SQLインジェクション攻撃、クロスサイトスクリプティング(XSS)、OSコマンドインジェクションetc.
IPS/IDS・・・Dos攻撃、Synフラッド攻撃etc.
FW・・・ポートスキャンetc.
FWは、社内システムを社外の人がインターネットでアクセスできないように、アクセス元をあらかじめ制限するというものです。Web上に公開しているサービスの場合、インターネットを介して不特定多数の人に公開するものが主流なため、FWによってアクセス元を制限することができません。
また、IPS/IDSはDoS攻撃のように意図的に大量のアクセスを発行してWebサーバーをダウンさせるなど、悪意あるアクセスを遮断することができるというものです。
では、WAFはどのような攻撃を防ぐことができるのか、実例を交えて少し具体的に見ていきます。
【SQLインジェクション攻撃】
データベースから情報を取得するSQL文を発行するコマンドをWebサイトへ送信し、結果を受け取るという攻撃方法です。
2015年7月に菓子メーカー株式会社シャトレーゼがSQLインジェクションの攻撃によりウェブサイトの会員情報21万人分が流出したという事件がありました。
【クロスサイトスクリプティング(XSS)】
ウェブアプリケーションに不正なスクリプトを埋め込み、一般ユーザーがブラウザで意図せず、スクリプトを実行してしまうという攻撃方法です。
2010年にはTwitterで一般ユーザーが意図しないツイートをしてしまうケースが多発しました。
【OSコマンドインジェクション】
一般ユーザーがブラウザ上で実行するリクエストに「OSコマンド」を含めることでウェブサーバーのOSのコマンドが実行されてしまうという攻撃方法です。
原始的な方法で最近はあまり見られなくなっていたのですが、2016年には日本テレビやJ-Waveなどでこの手口による個人情報の流出が頻発しました。
WAFの種類
WAFには、ソフトウェア型、アプライアンス(ハードウェア)型、クラウド型(エージェントタイプ)、クラウド型(プロキシタイプ)の4種類があります。
ソフトウェア型のWAFは、Webサーバーにソフトウェアをインストールして利用します。アプライアンス(ハードウェア)型のWAFは、専用のハードウェアを設置して利用します。
クラウド型のWAFはクラウド上のサービスを利用するため、簡単にサービスを利用開始することができます。
自社でWAFを導入する場合、どの種類が適しているか、悩まれる場合も多いと思いますので、それぞれのWAFの違いについてまとめてみました。
まとめ
WAFは導入の敷居が高いものだったため、一般的な認知が低いものでしたが、SaaS型やインストール型(エージェント型)の製品登場により今までは、導入もできなかったような共用サーバーからVPSのようなサービスまで、幅広い層で利用ができるようになり、より身近な製品になって来ました。
さいごに、WAFについておさらいしてみましょう。
・ウェブアプリケーションの脆弱性を狙う攻撃を防ぐことに特化しているため、FWやIPS/IDSとは役割が異なる。
・本来はソースコードを修正するべきだが、時間とコストが追いつかない局面が多々あることから、攻撃を遮断するというニーズが高まった。
・WAFが防御できるのは、SQLインジェクション、クロスサイトスクリプティング、OSインジェクションなどがある。
・WAFの種類によって、コストや導入難易度が異なる。
WAFで検出できる問題は、どのWebサイトやウェブアプリケーションにも潜んでいるもの。WAFの重要性は今後も高まっていくといえるでしょう。
GMOクラウドでは、多くの種類のWAFを取り扱っています。サービス選定にぜひお役立てください。
ソフトウェア型WAF: Deep Security
クラウド型(エージェント):攻撃遮断くん
クラウド型(プロキシ):Scutum
サーバーやWAFの導入にお悩みなら、こちらより相談を承っておりますので、ぜひご相談ください。