はじめに
こんにちは!Sekoguchiです。
前回はこちら↓
最後はWAF作成し実際に攻撃します。
AWSでは定義されたセキュリティ標準に対して AWS 環境をテストするAWS カスタマーサポートポリシーがあります。
このポリシーに適合していることでセキュリティ評価または侵入テストを実施することができます。
詳しくはこちらをご覧ください。
https://aws.amazon.com/jp/security/penetration-testing/
手順の概要
- WAF作成
- WAF動作確認
実行環境
EC2(AmazonLinux2Kernel5.10)XAMPP、DVWAインストール済み
ALB
手順
WAF作成
WAFはWebアプリケーションファイアーウォールの略でアプリケーション層のファイアーウォールとして使用します。
AWSWAFはルールを用いて不正な攻撃等遮断するブラックリスト型です。
今回はALBにWAFをアタッチします。
AWSコンソール画面の検索でWAFを検索します。WAFの作成時は英語のまま実施してください。
日本語の翻訳するとエラーになります。
左タブWebACLsを選択しリージョンを日本にしcreate Web ACL作成へ
名前を適当に決めて右下にある「Add AWS resources」をクリックしALBを選択して次へ
ルール→優先度→Cloudメトリクスの順でページが出てきますが今は全部デフォルトで次へ行き作成してください。
WAF動作確認
DVWAにて実際に攻撃してみましょう!
前回インストールしたDVWAをロードバランサーのDNS 名からXAMPPを開きそこからDVWAへログインします。
初期ログインIDは「admin」初期パスワードは「password」です。
左側タブDVWA SecurityをクリックしSecurity level is currently:impossibleになっていて脆弱性のないサイトなので
レベルを低い値lowにしSubmitをクリック Security level set to lowと表示されれば成功です。
今回はSQLインジェクション、コマンドインジェクション、XSS(クロスサイトスクリプティング)攻撃を実施します。
くれぐれもDVWAサイト内だけで攻撃してください。法で罰せられる可能性があります。
SQLインジェクション
左側タブSQL InjectionをクリックしUser ID:に下記コマンド入力します。
1' or 1=1 union select user,password from users #
検索すると真ん中のほうにFirst nameとSurnameが出てきます。
First name: admin
Surname: 5f4dcc3b5aa765d61d8327deb882cf99
Surnameの欄はハッシュ値になっておりハッシュの逆変換により復元するとpasswordとなります。
これでadminユーザでログインすることができます。これでなりすましが簡単にできてしまいます。
コマンドインジェクション
左側タブCommand InjectionをクリックしEnter an IP address: に下記コマンド入力します。
; cat /etc/passwd
EC2インスタンスのユーザー一覧が出てきました。他にもwgetコマンドで悪意のあるファイルをダウンロードや
ファイル改ざんすることができます。
XSS(クロスサイトスクリプティング)
左側タブReflected Cross Site Scripting (XSS)をクリック
What's your name?に下記コマンド入力します。
<script>alert('XSS');</script>
ダイアログでセッションIDが表示されます。
別サイトへ誘導し入力した情報やCookieなどが攻撃者へ漏洩します。
WAF動作確認
このような攻撃をAWSWAFのルールを設定すると防ぐことができます。
作成したWebACLsを開きRulesタブからAdd rulesのAdd managed rule groupsをクリック
AWS managed rule groupsの中にある「Core rule set」「POSIX operating system」「SQL database」を有効にし追加します。
Set rule priorityは今回気にしなくていいのでsaveで完了です。
追加したルールは先ほど攻撃した手法をそれぞれ対策したものになります。
「Core rule set」→XSS対策
「POSIX operating system」→コマンドインジェクション対策
「SQL database」→SQLインジェクション対策
ロードバランサーDNSからDVWAを開き先ほどと同じ攻撃をしてください。
全て403 Forbiddenが出るはずです。
これは不正なコマンドをルールとして覚えさせ不正が発覚した場合403 Forbiddenが出る仕組みです。
これでAWSWAFで攻撃を防ぐ動作確認できました。
まとめ
アカウント乗っ取りや情報漏洩、改ざんなどWebセキュリティを強固なものにしないと
あっという間に取り返しのつかない事態に陥ってしまうので、この記事を通してWAF重要性を知っていただければ幸いです。
投稿者プロフィール
最新の投稿
- セキュリティ2024年6月17日脆弱性診断とは?
- セキュリティ2024年5月27日Burp Suiteで脆弱性診断してみた~診断編~
- セキュリティ2024年5月24日Burp Suiteで脆弱性診断してみた~環境準備編~
- セキュリティ2023年12月22日SQLインジェクション攻撃とは