Azure セキュリティ

Application Gateway web application firewall が公開されたのでレビューしてみる

はじめに

くどうです。

Igniteが盛り上がってますね
https://ignite.microsoft.com/
いいですねぇ行ってみたいですね・・・

さてIgniteでApplication Gateway web application firewalが発表されました。
https://azure.microsoft.com/ja-jp/updates/application-gateway-web-application-firewall-in-public-preview/

セキュリティをかじっているくどうとしては、レビューしなければ。

機能

WAFではOWASP top 10が定義してあります。

    ・SQL injection protection
    ・Cross site scripting protection
    ・Common Web Attacks Protection such as command injection, HTTP request smuggling, HTTP response splitting, and remote file inclusion attack
    ・Protection against HTTP protocol violations
    ・Protection against HTTP protocol anomalies such as missing host user-agent and accept headers
    ・HTTP DoS Protections including HTTP flooding and slow HTTP DoS prevention
    ・Prevention against bots, crawlers, and scanners
    ・Detection of common application misconfigurations (i.e. Apache, IIS, etc)

詳しい定義は
https://www.owasp.org/index.php/Top_10_2013-Top_10

これも
https://www.owasp.org/images/a/a8/OWASPTop10ProactiveControls2016-Japanese.pdf

WAFレビュー

SQLインジェクションのテストを行ってみます。
単純なLAMP環境でテストを行います。
DBにはID、パスワードなど適当な情報が入っています。
IDとパスワードを入力してログインできるサイトを作成します。

WAFを有効にしApplication Gatewayを設定します。
waf04

あとは単純なSQLインジェクションを試してみます。

'OR 'A' = 'A

waf02

「403 - Forbidden: Access is denied.」で帰ってきます。
ちゃんと動作しているようです。
waf03

ログを確認してみるとSQLインジェクションをブロックしたログがでます。
ルールは
https://github.com/SpiderLabs/owasp-modsecurity-crs/tree/master/base_rules
のmodsecurity_crs_41_sql_injection_attacks.confが適用されていることがログからわかります。

{
	 "resourceId": "/SUBSCRIPTIONS/6C19861F-27C2-4010-B371-5FE8B793145B/RESOURCEGROUPS/WAF/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/WAF1",
	 "operationName": "ApplicationGatewayFirewall",
	 "time": "2016-09-30T03:18:00.8691594Z",
	 "category": "ApplicationGatewayFirewallLog",
	 "properties": {
		"instanceId":"ApplicationGatewayRole_IN_0",
		"clientIp":"210.227.234.114",
		"clientPort":19998,"requestUri":"/db.php",
		"ruleId":"OWASP_981318",
		"message":"SQL Injection Attack: Common Injection Testing Detected",
		"action":"Blocked",
		"site":"Global",
		"message":"SQL Injection Attack: Common Injection Testing Detected",
		"details":{
			"message":" Access denied with code 403 (phase 2). Pattern match "(^","file":"/owasp_crs/base_rules/modsecurity_crs_41_sql_injection_attacks.conf",
			"line":"64"
		}
	}
}

おわりに

今回はSQLインジェクションのテストを行いました。AzureでもWAFが標準で利用できるようになりました。
今後は、重要な機能の一部となるかと思います。きっともう少し設定が細かくでき、ルールを設定できるようになるでしょう。
ではでは

-Azure, セキュリティ
-, ,