フォーム読み込み中
パブリッククラウドサービスが提供するさまざまなセキュリティサービスを導入する際に、「本当に外部からのセキュリティ攻撃を防げるか?」という質問をよく聞きます。
今回は、Alibaba Cloud Web Application Firewall(以降、WAF)でその証明をしたいと思います。WAFはWeb攻撃や悪意のあるWebリクエストをリアルタイムで特定し、ブロックすることができます。証明方法として、外部からWebサービスに対する疑似攻撃を行い、Alibaba Cloud WAFによって攻撃が防げるかを検証してみたので、その手順を紹介します。
構成は至ってシンプルです。インターネットの危険性に晒されるWebサーバ(今回はECS)を保護するため、Webサーバの前にWAFを配置します。Webサーバに対する全てのアクセスはWAFを経由する構成となります。DNSにはWebサーバのFQDNとWAFのCNAMEを登録します。
検証用としてWAFを経由しない通信も確認しますので、Webサーバ自身もグローバルIPを持ちます。
※以下、記事に記載するIPアドレス/CNAME/FQDNの定義は次の通りです
WebサーバのFQDN | ユーザがアクセスするURLです。お手持ちのものをお使いください。 |
---|---|
WAF CNAME | WAFインスタンスのCNAMEです。WebサーバのFQDNに対しCNAMEとして設定します。 |
WebサーバグローバルIP | WebサーバのグローバルIPです。WAFのオリジンサーバ(バックエンドサーバ)として設定します。 |
今回のWebサーバはAlibaba CloudのECSを利用します。ECSのOSはCentOSです。
2-1-1.HTTPDをインストールします
# yum -y update # yum -y install httpd
2-1-2.Encrypt証明書を作成します。
# yum -y install certbot # systemctl enable httpd # systemctl start httpd # certbot certonly --webroot -w /var/www/html -d [WebサーバのFQDN]
※DNS名前解決ができないと証明書作成できないので、事前にDNS名前解決できるように設定しておきます。
以下の通り、証明書が作成されます。
/etc/letsencrypt/live/[WebサーバのFQDN]/fullchain.pem /etc/letsencrypt/live/[WebサーバのFQDN]/privkey.pem
2-1-3.SSLをインストールします
# yum -y install mod_ssl
2-1-4.証明書ファイルの場所を変更します
# vi /etc/httpd/conf.d/ssl.conf
viコマンドで以下ファイル場所の変更を追記します
SSLCertificateFile /etc/letsencrypt/live/[WebサーバのFQDN]/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/[WebサーバのFQDN]/privkey.pem
2-1-5.HTTPDをRestartします
# systemctl restart httpd
3-2-1.PHPをインストールします
# yum install –y php
3-2-2.攻撃用コンテンツ作成
# cd /var/www/html/ # vi index.html
viコマンドで、HTMLソースを作成します。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>HTML入門-テキストボックスの作成</title> </head> <body> <form action="//sbc-nextcloud.sbcicp1.net/index.php" method="post"> <p>ユーザ名:<br> <input type="text" name="name"></p> <p><input type="button" value="確認する" id="button2"></p> </form> </body> </html>
# vi index.php
viコマンドで、PHPソースを作成します。
<?php foreach (getallheaders() as $name => $value) { echo "$name: $value\n"; } ?>
4-3-1.WAFを設定します
4-3-2.WAF経由でアクセス出来ているかを確認する
https://<WebサーバのFQDN>/index.php
にアクセスし、通信結果を確認します。
以下のように、トラフィックマークで設定した内容が表示されていれば、WAFを経由したアクセスであるということがことがわかります。
以上で準備が出来たと思います。これで疑似攻撃を試してみます。
まずは、WAFによる防御が出来ている状態でURLパラメータの改ざんによる疑似攻撃をします。
URLパラメータを改ざんすることなく通常アクセス時は通常通りにページが表示され、一方URLパラメータの改ざんによるアクセス時はWAFによる防御でページが表示されないといった効果を想定しています。
まずは以下URLパラメータで疑似攻撃を試します。
https://<WebサーバのFQDN>/index.html?q=SELECT id,pass FROM login_user WHERE id='1' or '1' = '1'-- AND pass=‘’;
その結果、以下の通り、WAFにて切断されました。
今度は、WAFを経由しないパターンで、疑似攻撃を試します。上記CNAMEを登録せずグローバルIPアドレスを使った以下のURLパラメータからの疑似攻撃です。
https://<WebサーバのグローバルIPアドレス>/index.html?q=SELECT id,pass FROM login_user WHERE id='1' or '1' = '1'-- AND pass=‘’;
その結果、WAFを経由しないアクセスになるため、以下の通りコンテンツが無事表示されます。
今回、疑似攻撃を行い、Alibaba Cloud WAFでWebサービスに対する悪意のある攻撃を防げるかを検証してみました。
Alibaba Cloud WAFの嬉しい点は、Alibaba CloudのWebサーバのみならず、他クラウドのWebサーバにも適用することができます。それも、他クラウドのWAFより非常に安く、また設定がシンプルでマネージドサービスになっているので、もしWeb攻撃で悩んでいたら本記事を参考にしてみてください。
参考:WAFの比較(その1)
Alibaba Cloud | AWS | Azure | |
---|---|---|---|
プロダクトサービス名 | WAF | AWS WAF | Azure Application Gateway |
配置方法 | クライアントやCDNとSLBの間に配置し、DNSを用いて接続 | CloudFrontまたはELBの内に配置 | Application Gatewayに配置 |
WEB ACL | 〇 | 〇 | 〇 |
カスタマイズルール | 〇 | 〇 | 〇 |
対応可能な攻撃型 | ・SQLインジェクション ・XSS攻撃 ・WebShell ・トロイの木馬 ・不正アクセス・HTTPフラッド※OWASP一般対象を含む | ・SQLインジェクション ・XSS攻撃 ・HTTPフラッド | ・SQLインジェクション ・XSS攻撃 ・セッションハイジャック |
アラーム | 〇 | 〇 | 〇 |
保護設定 | 〇 | 〇 | 〇 |
攻撃監視 | 〇 | 〇 | 〇 |
ログ管理 | 〇 | 〇 | 〇 |
統計分析 | 〇 | × | × |
参考:WAFの比較(その2)
機能 | Alibaba Cloud | サイバーセキュリティクラウド | SB Technology | AWS | Microsoft |
---|---|---|---|---|---|
Alibaba WAF Pro | 攻撃遮断くん (DDoSセキュリティタイプ) | MSS for Imperva | AWS WAF | Azure WAF | |
HTTPフラッド | Yes | Yes | Yes | Yes | Yes |
ブルートフォースアタック | Yes | Yes | Yes | Yes | Yes |
SQLインジェクション | Yes | Yes | Yes | Yes | Yes |
クロスサイトスクリプティング | Yes | Yes | Yes | Yes | Yes |
OSコマンドインジェクション | Yes | Yes | Yes | Yes | Yes |
DDoS攻撃 | Yes(Anti-DDoS) | Yes | Yes | Yes | Yes |
悪意のあるBotによるアクセス | Yes | Yes | Yes | Yes | Yes |
セキュリティレポート | Yes | Yes(別途費用) | Yes | Yes | Yes |
カスタムルール | Yes | Yes | Yes | Yes | Yes |
導入方法 | DNS切替 | DNS切替 | DNS切替 | API or コンソールから 設定 | コンソールから設定 |
防御範囲 | クラウド/オンプレ | クラウド/オンプレ | クラウド/オンプレ | AWS | Azure |
特徴 | ビッグデータセキュリティ機能。中国での実績(8億件/日の攻撃を防御)。 | 最小構成15,000円〜、小規模で運用しているシステムへの導入が多い。 | SOCによる24時間/365日対応、チューニング作業代行。 | ALB/CloudFront/API-GWを利用していることが前提。従量課金。 | Application-GWを利用していることが前提。従量課金。 |
初期費用 | 不要 | 30,000円 | 80,000円 | 不要 | 不要 |
価格 | 299USD/月/FQDN (10Mbps) | 120,000円/月/FQDN (10Mbps) | 75,000円/月/FQDN (20Mbps) | ALB/CloudFront/API Gateway料金+従量課金 | Application gateway料金+従量課金 |
条件に該当するページがございません