近年、ランサムウェア攻撃やマルウェアによる被害など、セキュリティ事故に関するニュースは絶えず報道されています。また、Webアプリケーションの脆弱性を突いた不正アクセスの事例も数多く報告されています。このような攻撃への対策として注目を集めているのがWAFです。
セキュリティ対策の一つとして、現在ではインターネット通信の多くがHTTPSによって暗号化されています。しかし、「HTTPSで暗号化されているから安全」と考えている方も多いのではないでしょうか。
実際には、HTTPSは通信内容を暗号化することで盗聴や改ざんを防ぐ仕組みであり、SQLインジェクションやクロスサイトスクリプティング(XSS)などの攻撃そのものを防ぐことはできません。
つまり、通信が暗号化されていても、悪意のあるリクエスト自体はWebサイトに届いてしまい、攻撃は成立してしまうのです。
では、このようなHTTPS通信の中に含まれる攻撃を、WAFはどのように検知・防御しているのでしょうか。
本記事では、「なぜHTTPSだけでは不十分なのか」そして「なぜWAFが必要なのか」という視点から、WAFとHTTPSの関係についてわかりやすく解説します。
WAFとHTTPSとは?
まず、WAFとHTTPSについて簡単に説明させていただきます。
WAFとは
WAF(Web Application Firewall)はWebアプリケーションの脆弱性をついた攻撃に対するセキュリティ対策のひとつです。防御対象のWebサイトにWAFを配置し、Webサイトへの攻撃の検知、防御を行うことができます。
各企業でのDX化が進んでいる中、Webサイト数も増えております。2019年では約16億だったサイト数は、2022年では約19億※1まで増えているそうです。つまり、攻撃者からしてみれば、その数だけ攻撃対象が増えているとも言えます。IPAが発表している脆弱性被害の届出※2にも、全体の約7割がWebサイトに関わるものとなっているのです。
※1 https://www.internetlivestats.com/total-number-of-websites/
※2 https://www.ipa.go.jp/security/reports/vuln/software/2021q4.html
HTTPSとは
HTTPS通信は、HTTP通信にSSL/TLSを組み合わせ、「Webサイトと利用者」間の通信を暗号化する仕組みです。これにより、第三者による盗聴や改ざんを防ぐことができます。
ただし、HTTPSはあくまで通信経路を保護するものであり、Webアプリケーションへの攻撃そのものを防ぐ仕組みではありません。
では、なぜHTTPSだけでは不十分なのでしょうか。
この点については、次の章で詳しく解説します。
HTTPSでも攻撃は防げない?WAFが必要な理由
HTTPSは通信を暗号化することで安全性を高める仕組みですが、攻撃そのものを防ぐものではありません。
例えば、攻撃者はHTTPS通信を利用して、以下のような不正なリクエストを送信することができます。
・SQLインジェクション(データベースへの不正操作)
・クロスサイトスクリプティング(XSS)
・不正なパラメータ改ざん
これらの攻撃は暗号化された状態のままWebサイトに届くため、HTTPSを導入しているだけでは十分に防ぐことができません。
つまり、通信が暗号化されていても、攻撃は成立してしまうのです。
そこで必要となるのがWAFです。
WAFは、Webアプリケーションへのリクエスト内容を検査し、不正なパターンや攻撃と判断されるリクエストをブロックする役割を担います。これにより、Webアプリケーションの脆弱性を狙った攻撃を未然に防ぐことが可能になります。
また、WAFは通信内容を検査するために、必要に応じて暗号化された通信を復号し、リクエストの中身を確認したうえで攻撃かどうかを判断します。
なお、SSL/TLSの暗号化・復号の仕組みや具体的な構成については、以下の記事で詳しく解説しています。
WAFとSSLの関係とは?暗号化通信を検査する仕組みと構成パターンを解説
このように、HTTPS通信であってもWAFは内容を検査することで、Webアプリケーションへの攻撃を検知・防御することが可能です。
ステータスコード403はWAFが防御した証!
WAFによって防御された攻撃はどのような対処をされるのでしょうか。
結論から申し上げると対象サイトへの「アクセスを禁止」という形で防御されます。その際に表示されるのが、「ステータスコード403」になります。ステータスコードとは、利用者が対象のWebサーバを利用するリクエストを出し、そのリクエストに対しWebサーバが処理した結果を3桁の数字で表したものになります。
ステータスコードを大枠で分けると以下の内容になります。
- ステータスコード200番台:正常
- ステータスコード300番台:リダイレクト処理
- ステータスコード400番台:クライアント(利用者)に関わるエラー
- ステータスコード500番台:サーバに関わるエラー
WAFで防御された場合、利用者からのリクエストに関わるので、ステータスコード400番台エラーに当てはまり、その中の403「Forbidden」として処理されます。
序章でも申し上げましたが、セキュリティに関するニュースは絶えず起こっております。これはWebサイトへの攻撃手法や、攻撃対象となるシステム構成も複雑化しているため、WAFの防御設定についても都度更新が必要となってきます。その際、WAFにて正しく攻撃対象のリクエストのみ防御できていれば問題はありません。
しかしWAFの設定に不備があり、普通の利用者に対するリクエストも防御してしまう事例もあります。悪意のない利用者に対する、不用意なブロックは、Webサイトの信頼性の低下にもつながってしまいます。WAFの設定変更については最新の注意を払うようにしましょう。
まとめ
本記事では、「HTTPSは安全なのになぜWAFが必要なのか?」という疑問をもとに解説してきました。
HTTPSは通信を暗号化する重要な仕組みですが、攻撃そのものを防ぐものではありません。そのため、Webアプリケーションを守るためには、WAFのようなセキュリティ対策が不可欠となります。
自社のWebサイトがどのような攻撃リスクにさらされているのかを把握し、適切な対策を講じることが重要です。
当サイトでは、WAFの導入を検討している方に向けて、機能や選定ポイントをわかりやすくまとめた資料をご用意しています。「サイバー攻撃可視化ツールPrimeWAF 基本ガイドブック」は、WAF選定時に押さえておきたいポイントが分かる内容となっています。ぜひダウンロードしてご活用ください。

