1. ホーム
  2. 記事一覧
  3. 【初心者向け】WAFとはなにか?IDS・IPSとの違いも徹底解説

2022.11.18

【初心者向け】WAFとはなにか?IDS・IPSとの違いも徹底解説

普段何気なく使っているインターネットですが、見えないところではさまざまなセキュリティ対策が施されています。有名なものはFirewallですが、その他にもさまざまなセキュリティ対策があります。

今回は、セキュリティ対策の一つであるWAF(Web Application Firewall)について詳しく説明していきます。

WAFとは?

WAFとは、Webアプリケーションの脆弱性に対する攻撃からWebサイトを保護するセキュリティ対策です。

サイバー攻撃といえば、ECサイトやインターネットバンキングなど、クレジットカードや口座情報を扱うWebサイトだけが攻撃対象になると思っている方は多いのではないかと思います。

しかし実際は問い合わせフォームのあるWebサイトや会員制のWebサービス、またユーザーのリクエストに応じて動的ページを生成するWebシステムなど、あらゆるWebアプリケーションもサイバー攻撃の対象となります。

WAFはそんな攻撃に対して防御をしてくれる、非常に頼もしい存在です。

セキュリティ対策はいくつか種類があり、代表的なものであればファイアウォールやIDS/IPSなどがありますが、それらとの違いは何なのでしょうか?

ファイアウォールやIDS/IPSとの違い

ファイアウォールやIDS/IPSとの違いは防御する対象や防御できる攻撃の種類です。

  • ファイアウォールとの違い

    まず防御の対象ですが、ファイアウォールはOSI参照モデルのうち、主にネットワーク層とトランスポート層に対しての防御を行うものです。それに対してWAFはその名前の通り、Webアプリケーションに対して動作するものです。そして攻撃の種類ですが、WAFはSQLインジェクションや、クロスサイトスクリプティングなどを検知することが可能です。一方でファイアウォールはこのような攻撃には対応できません。しかしファイアウォールでは、ポートスキャンと呼ばれる、外部から特定のファイルを送信してその反応を確かめるという攻撃を検知し入口で防ぎます。

  • IDS/IPSとの違い

    IDS(Intrusion Detection System)「不正侵入検知システム」やIPS(Intrusion Prevention System)「不正侵入防止システム」は、OSやミドルウェアに対して防御を行います。一方のWAFは前述しました通りアプリケーションに対して防御を行います。

    また、防御できる攻撃の種類にも違いがあります。

    IDS/IPSでは、DOS攻撃や、Synフラッド攻撃を防御できます。しかし、WAFが防御することのできるSQLインジェクションなどは防御できません。

    余談ですが、IDSは「不正侵入検知システム」という名前の通り、侵入を検知した場合に管理者に対して通知で知らせてくれる仕組みであり、IPSは侵入を検知した場合に通信のブロックを行う機能を付加した仕組みです。IPSはIDSと比べ迅速な対応が実現できる反面、業務影響が大きい仕組みでもあります。設定ミスがある場合など、誤検知を行ってしまうと即時システムの停止にもつながり得るためです。

WAFはなぜ必要なのか

独立行政法人 情報処理推進機構(IPA)が発表した「ソフトウェア等の脆弱性関連情報に関する届出状況」によると、2021年の脆弱性の届出件数の累計件数のおよそ7割以上がWebサイトに関するものだと報告されています。なかでもクロスサイトスクリプティングやSQLインジェクションなど、Webアプリケーションの脆弱性につけ込んだ被害が大部分を占めています。

またWebアプリケーションの仕組みは年々複雑化しており、さまざまなアプリケーションやシステムとの連携で思いがけない脆弱性が見つかる場合があります。さらに、脆弱性を狙ったサイバー攻撃の手口も日々増加・多様化しており、未知の攻撃に備える必要性も高まっています。

現状ではWAF以外のセキュリティの仕組みではWebアプリケーションのセキュリティ対策を行うのが難しいということもあり、ファイアウォールやIPS/IDSなどの他の方法では代替できない、Webアプリケーションに特化したセキュリティ対策としてWAFの必要性が高まっているのです。

WAFの仕組み

WAFでは、アクセス元とWebサーバーとの間で通信に介在し、攻撃の検知に「シグネチャ」(アクセスのパターンを定義したもの)を用いて不正アクセスを防止します。WAFは、攻撃を検出すると通信を遮断してログに記録しながら、同時にアクセス元にWebサーバーに代わって警告メッセージを返します。

攻撃の検出能力は、シグネチャの品質に依存するともいえます。信頼できるシグネチャを有していること、また最新の脅威に対応できるよう常に最新のシグネチャに更新していることは、WAFを選択する上で非常に重要なポイントとなるでしょう。

WAFの不正アクセス検知方式には「ブラックリスト方式」と「ホワイトリスト方式」の2種類があります。

  • ブラックリスト型

    ブラックリスト型では、既知の攻撃パターンをシグネチャに定義して、一致する通信を拒否して不正アクセスを防止します。複数のWebアプリケーションに適用することができますが、未知の攻撃に対応することはできません。しかし、Webアプリケーションへの過度なアクセス制限は防げるでしょう。ブラックリスト型で細心の攻撃を検知するには、シグネチャを定期的にアップデートすることが重要です。

  • ホワイトリスト型

    ホワイトリスト型では、「許可する通信」をシグネチャに定義して、一致しない通信をすべて拒否することで不正アクセスを防ぎます。ホワイトリスト型はWebアプリケーションの作りに応じて柔軟にシグネチャを定義できるだけでなく、未知の攻撃も防げるというメリットがあります。しかし、許可する通信の定義を個々の企業で行う必要があり、さらに細かくシグネチャの設定をしなければならないために運用にはWebアプリケーションやセキュリティに詳しい技術者が必要不可欠です。そのため、ホワイトリスト型の場合は人員や運用にかかるコストが高くなってしまいがちです。

WAFで防げる攻撃の種類

WAFで防げる攻撃はいくつかあります。以下は代表的なものになります。

  • SQLインジェクション

    SQLを使用し、Webアプリケーションの脆弱性を突いてデータの消去や改ざん、情報漏えいを狙う攻撃です。

  • OSコマンドインジェクション

    WEBサーバーへのリクエストにOSへの命令文を紛れ込ませ、不正に実行させる攻撃です。サーバー内ファイルを改ざん、削除、流出される恐れがあります。

  • クロスサイトスクリプティング

    Webページを動的に生成するWebアプリケーションの脆弱性を突いて任意のスクリプトを実行する攻撃です。クッキーの漏出や個人情報の漏えいの被害を受ける恐れがあります。

  • DDoS攻撃

    DDoS(Distributed Denial of Service attack)は分散型サービス拒否攻撃とも呼ばれ、Webサーバーに対して過剰な接続要求やデータを送付し、サーバーの停止を狙うサイバー攻撃です。 WAFはWebアプリケーションへの通信やアクセスを監視し、そのうち不正なものを検知・遮断できるためIDS/IPSと同様にDDoS攻撃への対策として有効です。

  • バッファオーバーフロー

    Webサーバーに許容量以上のデータを送りつけ誤作動を狙う攻撃です。攻撃によりサーバーが乗っ取られ、他サーバーへの攻撃などに悪用される恐れがあります。 WAFによりあらかじめ許容量を細かく設定しておけば、バッファオーバーフロー攻撃を効果的に遮断することができます。

Cloud WAFとは?

名前の通り、Cloud上で構築されたWAFのことです。

WAFにはソフトウェア型WAFやアプライアンス型WAF、クラウド型WAFと呼ばれる分類があり、それぞれに特徴があります。

  • ソフトウェア型WAF

    ホスト型とも呼ばれ、保護されるWebサーバにWAFソフトウェアをインストールし、通信の内容を確認する方法です。専用機が不要なため、アプライアンスタイプよりも低コストで設置できます。ネットワーク環境の構成を変更する必要はなく、他のサーバや端末に影響を与えることもありません。

  • アプライアンス型WAF

    ネットワーク型、ゲートウェイ型などとも呼ばれ、各組織のネットワークに専用のWAFデバイスをインストールする方法です。専用デバイスはWebサーバとは独立して動作するため、Webサーバに負担がかかりません。また、専用機器の性能や設定を柔軟に調整することができます。一方、導入と運用のコストは他の2つのWAFよりも高くなります。また、情報システム担当者は、会社の方針に沿った柔軟で強力なセキュリティ対策を講じることができるため、専門知識が必要です。アプライアンスタイプは、複数のハイスペックWebサーバを使用する大規模な情報システムに適しています。

  • クラウド型WAF

    インターネットを介してクラウドサービスを受信する形式であり、サービス型とも呼ばれます。専用機器が不要で導入時間が短いため、導入コストはWAFの中で最も低くなる傾向があります。また、通信量や監視するURLの数によってコストが決まり調整も可能です。企業ネットワークの構成も変更する必要はないため、コストを抑えてセキュリティ対策を講じたい企業に適しています。一方、クラウドサービスの特徴は、簡単にカスタマイズできず、サービスプロバイダー側で発生するシステム障害やネットワーク障害の影響を受ける可能性があることです。またトラフィックや監視対象のURLの増加によりコストが上昇する可能性があるため、ここでも定期的に価格が妥当かどうかを確認する必要があります。

まとめ

今回はWAFについて詳しく説明しました。

さまざまなセキュリティ対策があり、それぞれに別の役割を担っているため、一つのセキュリティだけですべてを防御することは現状では不可能です。

この記事を読まれた皆様には、様々なセキュリティの知識を身につけて、セキュリティが強固なサービスを提供できるようなエンジニアを目指していただきたいと思います。

【番外編】USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話

IT未経験者必見 USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話

プログラミング塾に半年通えば、一人前になれると思っているあなた。それ、勘違いですよ。「なぜ間違いなの?」「正しい勉強法とは何なの?」ITを学び始める全ての人に知って欲しい。そう思って書きました。是非読んでみてください。

「フリーランスエンジニア」

近年やっと世間に浸透した言葉だ。ひと昔まえ、終身雇用は当たり前で、大企業に就職することは一種のステータスだった。しかし、そんな時代も終わり「優秀な人材は転職する」ことが当たり前の時代となる。フリーランスエンジニアに高価値が付く現在、ネットを見ると「未経験でも年収400万以上」などと書いてある。これに釣られて、多くの人がフリーランスになろうとITの世界に入ってきている。私もその中の1人だ。数年前、USBも知らない状態からITの世界に没入し、そこから約2年間、毎日勉学を行なった。他人の何十倍も努力した。そして、企業研修やIT塾で数多くの受講生の指導経験も得た。そこで私は、伸びるエンジニアとそうでないエンジニアをたくさん見てきた。そして、稼げるエンジニア、稼げないエンジニアを見てきた。

「成功する人とそうでない人の違いは何か?」

私が出した答えは、「量産型エンジニアか否か」である。今のエンジニア市場には、量産型エンジニアが溢れている!!ここでの量産型エンジニアの定義は以下の通りである。

比較的簡単に学習可能なWebフレームワーク(WordPress, Rails)やPython等の知識はあるが、ITの基本概念を理解していないため、単調な作業しかこなすことができないエンジニアのこと。

多くの人がフリーランスエンジニアを目指す時代に中途半端な知識や技術力でこの世界に飛び込むと返って過酷な労働条件で働くことになる。そこで、エンジニアを目指すあなたがどう学習していくべきかを私の経験を交えて書こうと思った。続きはこちらから、、、、

note記事3000いいね超えの殿堂記事 今すぐ読む

エンベーダー編集部

エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。

RareTECH 無料体験授業開催中! オンラインにて実施中! Top10%のエンジニアになる秘訣を伝授します! RareTECH講師への質疑応答可

関連記事