クラウド型のWAFを無料で使えるので試してみました! Webアプリケーションへのサイバー攻撃を防ぐ! 無料トライアル版実施レポート

この記事を読むのに必要な時間:およそ 4 分

クラウド型WAFを実際に導入してテストを実施

今回テスト用のアプリケーションにアクセスした様子が図4となります。このWebアプリケーションでは,口座番号とパスワードを使ってアクセスするようになっているのですが,実はSQLインジェクション攻撃を受ける脆弱性が残っています。

図4 口座番号とパスワードを使ってユーザ認証を行うアプリケーションの例。ユーザ認証を回避する不正な文字列がパスワード欄に入力されている

図4 口座番号とパスワードを使ってユーザ認証を行うアプリケーションの例。ユーザ認証を回避する不正な文字列がパスワード欄に入力されている

この場合,口座番号とパスワードを入力する画面があり,入力フォームで入力された口座番号とパスワードに一致するレコードがあるかどうかをSQLで確認,結果が「真」であればログインを許可する,といったしくみがフォームの裏側で動いています。この際のSQLは次のとおりです。

SELECT * FROM customer WHERE id =  and pw = ''

口座番号として「2345678⁠⁠,パスワードに「password」などと入力されれば,SQLは次のようになり,特に問題はありません。

SELECT * FROM customer WHERE id = 2345678 and pw = 'password'

しかし,パスワードとして「'or'1' = '1」といった文字列が入力されるとどうなるでしょうか。

SELECT * FROM customer WHERE id = 2345678 and pw = ''or'1' = '1'

WHERE句に「or」が追加され,さらにそのあとに続く式は「'1' = '1'」で,結果は「真」となります。今回テストサイトにわざと残したSQLインジェクションの脆弱性は,この「真」の結果を受け付けてしまうため,IDとパスワードが一致しなくてもログインできてしまいます。

では,今度は同じテストサイトにクラウド型WAFを有効にした状態でアクセスし,前述のSQLインジェクション攻撃を行うとどうなるでしょうか。結果は図5が表示され,アクセスはできませんでした。つまり,SQLインジェクション攻撃が遮断されたというわけです。このように,Webアプリケーションに脆弱性が残っていたとしても,攻撃を意図する内容が含まれていれば通信を遮断し,不正アクセスを防いでくれます。

図5 クラウド型WAFは,攻撃を意図した内容がWebアプリケーションに届く前に検知し,自動的に通信を遮断する

図5 クラウド型WAFは,攻撃を意図した内容がWebアプリケーションに届く前に検知し,自動的に通信を遮断する

このSQLインジェクション攻撃以外にも,クラウド型WAFでは,クロスサイトスクリプティングやクロスサイトリクエストフォージェリ,バッファオーバーフロー,OSコマンドインジェクション,Xpathインジェクション,ディレクトリインデクシングなどさまざまな攻撃に対応しています。いずれもセキュアなコーディング,あるいはミドルウェアの適切な設定などによって防ぐことも可能ですが,アプリケーションの規模が大きくなると,脆弱性を完璧に解消することは困難です。もちろん脆弱性をなくす努力は欠かせませんが,万一に備えてこうしたソリューションを利用することで開発リスクをぐっと減らせます。

導入・運用の手間をかけずに利用できるクラウド型WAF

さらにクラウド型WAFでうれしいのは,導入時の設定がほぼ不要である点です。ソフトウェア,あるいはアプライアンスとして提供されているWAFは,導入時にパラメータの設定などが必要で,実際に利用するまでに長い時間がかかることが珍しくありません。しかし,クラウド型WAFであれば,ブラックリスト式の一般的なシグネチャが常に自動的に更新されていくので,DNSの設定変更とSSLを利用するためのサーバ証明書の登録だけで使い始められます。

運用の手間がかからないことも,クラウド型WAFの大きな魅力です。WAFを自社で運営する場合,サーバ構成を変えたり,Webアプリケーションに機能やシグネチャを追加したりするたびに,WAFやWebアプリケーションの設定を見なおさなければならないことがありますが,クラウド型WAFでは何もする必要はありません。この違いは極めて大きいでしょう図6⁠。

図6 クラウド型WAFの管理画面で攻撃を受けたログを参照しているところ。設定項目は基本的なものだけで,細かな設定を行うことなく利用できる

図6 クラウド型WAFの管理画面で攻撃を受けたログを参照しているところ。設定項目は基本的なものだけで,細かな設定を行うことなく利用できる

ソフトウェア/アプライアンス型のWAFと比べると,クラウド型WAFにはコスト面でも大きなアドバンテージがあります。初期導入費用と利用料のいずれも割安なため,⁠セキュリティは不安だが,コスト面での制約からWAFの導入を見送っていた」という企業でも,このクラウド型WAFであれば導入できるのではないでしょうか。

エンジニアの視点で見た場合にも,このクラウド型WAFがもたらすメリットは大きいと言えます。たとえば,SQLインジェクション攻撃を回避する方法はありますが,SQLを利用するすべてのフォームに対してSQLインジェクション対策を施し,さらに確実に対策が行われているか確認するのは容易ではありません。また,攻撃手法は日々進化しており,現在の対策が将来にわたって有効であるという保証もないわけです。

このようにWebアプリケーションの開発においては,外部からの攻撃というリスクを常に意識する必要があり,それはエンジニアにとって大きなプレッシャーとなっています。今回クラウド型WAFが実際に攻撃を防げることを確認しましたが,こうしたサービスはエンジニアの負担やプレッシャーを軽減するという意味でも有効だと感じました。

なお,ベリサインではSSLサーバ証明書※4を使用しているサーバに,Webアプリケーションの脆弱性診断サービスを無償で提供しています。運用中のサーバであれば,まずこのサービスを利用してWebアプリケーションのセキュリティリスクを洗い出し,必要に応じてクラウド型WAFを利用してもよいでしょう。

いずれにせよ,Webアプリケーションの脆弱性対策は多くの企業にとって喫緊の課題となっています。現在運用しているWebアプリケーションに少しでも不安があれば,ベリサインのクラウド型WAFの利用を検討してみてはいかがでしょうか。

※4)
ベリサイン EV SSL証明書およびグローバル・サーバIDが対象。

gihyo.jp限定
ウェブアプリの脆弱性対策の資料無料ダウンロードで,ベリサイン特製 スクエアUSBハブを30名様にプレゼント!

ダウンロード先はこちら
「WAF導入の手引き」無料ダウンロード

バックナンバー

セキュリティ

  • クラウド型のWAFを無料で使えるので試してみました! Webアプリケーションへのサイバー攻撃を防ぐ! 無料トライアル版実施レポート