Alibaba CloudのWAFの有効性を検証してみた ※構築手順付き

2022年8月15日掲載

キービジュアル

パブリッククラウドサービスが提供するさまざまなセキュリティサービスを導入する際に、「本当に外部からのセキュリティ攻撃を防げるか?」という質問をよく聞きます。

今回は、Alibaba Cloud Web Application Firewall(以降、WAF)でその証明をしたいと思います。WAFはWeb攻撃や悪意のあるWebリクエストをリアルタイムで特定し、ブロックすることができます。証明方法として、外部からWebサービスに対する疑似攻撃を行い、Alibaba Cloud WAFによって攻撃が防げるかを検証してみたので、その手順を紹介します。

目次

  • Alibaba Cloud WAFに関する記事です
  • 本当にWebサーバを守れるのか、疑似攻撃をしかけて検証します
  • 記事末に他のクラウドWAFとの比較表を掲載しています

1.概要構成図

構成は至ってシンプルです。インターネットの危険性に晒されるWebサーバ(今回はECS)を保護するため、Webサーバの前にWAFを配置します。Webサーバに対する全てのアクセスはWAFを経由する構成となります。DNSにはWebサーバのFQDNとWAFのCNAMEを登録します。

検証用としてWAFを経由しない通信も確認しますので、Webサーバ自身もグローバルIPを持ちます。


※以下、記事に記載するIPアドレス/CNAME/FQDNの定義は次の通りです

WebサーバのFQDNユーザがアクセスするURLです。お手持ちのものをお使いください。
WAF CNAMEWAFインスタンスのCNAMEです。WebサーバのFQDNに対しCNAMEとして設定します。
WebサーバグローバルIPWebサーバのグローバルIPです。WAFのオリジンサーバ(バックエンドサーバ)として設定します。

2.構築手順 - 1. Webサーバ構築

今回の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. 攻撃用コンテンツ作成

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. AlibabaCloud WAF構築

4-3-1.WAFを設定します

4-3-2.WAF経由でアクセス出来ているかを確認する

https://<WebサーバのFQDN>/index.php
にアクセスし、通信結果を確認します。

以下のように、トラフィックマークで設定した内容が表示されていれば、WAFを経由したアクセスであるということがことがわかります。

5.構築手順 - 4. 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料金+従量課金

関連記事リンク

関連サービス

Alibaba Cloud

Alibaba Cloudは中国国内でのクラウド利用はもちろん、日本-中国間のネットワークの不安定さの解消、中国サイバーセキュリティ法への対策など、中国進出に際する課題を解消できるパブリッククラウドサービスです。

MSPサービス

MSP(Managed Service Provider)サービスは、お客さまのパブリッククラウドの導入から運用までをトータルでご提供するマネージドサービスです。

おすすめの記事

条件に該当するページがございません