サイバー攻撃の検知・対応から予防までをサクッと体験できるワークショップ(STP301)に参加してきた #reinvent
こんにちは。 AWS re:Invent 2022 、楽しんでいますでしょうか。
ラスベガス現地にて Startup security: Techniques to stay secure while building quickly(STP301)
というワークショップに参加してきました。
用意されたデモ環境に対して実際に攻撃を行い、その攻撃の検知〜対応を行います。 そして再度攻撃されないように予防策を講じる…といったワークショップとなります。
一連の流れをスムーズに実行できるように、 進行やサポートが充実している良いワークショップでした。
早速詳細をレポートしていきます。
ワークショップ開始までの流れ
本ワークショップの説明、アジェンダを以下に引用します。
Startup security: Techniques to stay secure while building quickly(STP301)
This workshop covers techniques for protecting web applications without changing code. Learn how to apply these techniques to your AWS environment and how they align to common security compliance frameworks such as SOC 2, ISO 27001, and PCI DSS. With a provided AWS account running the OWASP Juice Shop, make an attempt to exfiltrate its credentials. Then, use Amazon GuardDuty to detect and respond to the attack, AWS WAF to create a virtual patch to stop it, and VPC endpoint policies to prevent unintended use of the stolen credentials. Learn techniques that can help you build fast and stay secure. You must bring your laptop to participate.
まず最初に簡単なアンケートタイム(Quick survey)がありました。
「どれぐらいの規模の会社で働いている?」、「Web脆弱性に熟知している?」 「自分たちのWebアプリケーションに "絶対に" 脆弱性は無いと確信している?」 「脆弱性が悪用されたときに、それを知れると確信している?」… といった感じの内容です。
そしてワークショップの全体像が軽く説明されます。
Webアプリケーションとして OWASP Juice Shop※ というデモ環境を使います。 コレに対して攻撃を行い、検知〜予防までのセキュリティ行動を体験していきます。
※ OWASP Juice Shop は初耳でした (以下に公式ページの説明を引用します)
OWASP Juice Shop は、 おそらく最も現代的で洗練された安全でないウェブアプリケーションでしょう! セキュリティトレーニング、意識向上デモ、CTF、そして、セキュリティツールのモルモットとして使用することができます。 Juice Shop は、OWASP Top Ten 全体の脆弱性と、現実のアプリケーションで発見された他の多くのセキュリティ欠陥を含んでいます。
– OWASP Juice Shop | OWASP Foundation ( by DeepL翻訳)
そして、いざワークショップを行っていきます。
いざワークショップ
ガイドとAWSラボ環境が渡されるので、各々のPCでワークショップを進めます。 詰まったところや不明点があれば、会場内で周っているスタッフに聞いて解決できます。
本ワークショップは前半・後半に分かれていて、その間に軽い講義が入ります。 こんな感じの流れです。
みなさん、気軽に手を上げてエキスパートに質問していました。
前提環境(Juice ShopやS3バケットなど)は既に作成・稼働しており、 メインコンテンツに集中して楽しめるようになっていました。 親切設計です。 私も時間内に完了しました。
ポイント
本ワークショップでためになったポイントを紹介します。
サイバー攻撃の一例を学べる
実際にどのようなセキュリティインシデントを起こされるか、ラボ環境上で体験できます。 本ワークショップでは以下の攻撃を行いました。
▼ 不正ログイン(SQLインジェクション)
▼ AWS認証情報の奪取
▼ 機密情報の奪取
奪取したIAMロールの認証情報を使って『決して社外に流してはいけない機密情報』をゲットします。
GuardDutyによる『攻撃の検知』を体験できる
今回出てきた(自ら出した)攻撃は GuardDuty が検知しています。以下キャプチャにも IAMUser/InstanceCredentialExfiltration.InsideAWS という検出がありますね。
GuardDuty利用者は脆弱性 およびそれを突いた攻撃を "全て完璧に" 把握する必要はありません。 GuardDutyによるマネージドな脅威検知の良さを体験できます。
自動対応の仕組みの一例を学べる
今回は上記のようなアーキテクチャを作成しています。 EventBridge で先程の GuardDutyイベントを拾って、Step Functions 走らせます。 Step Functions 内で『悪用されたIAMロール』の権限を全て剥奪します。
認証情報漏洩の応急対応を、こんな感じで自動化しています。素晴らしい。
Webアプリケーションの防御策を学べる
まず AWS WAFを導入しました。 SQL database
というマネージドルールを適用して SQLインジェクションをWAFレイヤーでブロックします。
入れた後はこんな感じで不正ログインできなくなってます。
また、『決して社外に流してはいけない機密情報』が置いてあるS3バケットを EC2インスタンスがあるVPCエンドポイント経由でのみ しかアクセスできないようにしました。 S3バケットポリシーおよびVPCエンドポイントポリシーを更新します。
更新後は以下のように CloudShell(=EC2インスタンス外) からの S3バケットアクセスは禁止されます。
おわりに
セキュリティインシデントの検知から対応、予防までを サクッと体験できる良いワークショップでした。
また、ワークショップ全体の流れとしても、前半・後半と分かれており、 周りの進捗を確認しながら進められている感があり、とても親切でした。
これまでいくつかのワークショップに参加してきましたが、 どれもガイドの進行が親切だったり、ドキュメント自体も充実していて 勉強になるものが多いですね。 (後で公開されないかな…と思うぐらいです)
以上、re:Inventのワークショップレポートでした。