Slide 1

Slide 1 text

実践的なAWSセキュリティのインシデントレス ポンス環境を作ってみた! Security-JAWS 2020/11/24

Slide 2

Slide 2 text

今回お届けする内容 ● セキュリティ・キャンプという次代を担う情報セキュリティ人材を 発掘・育成する事業で、AWS環境におけるインシデントレスポ ンスをテーマとした講義を行ってみました! ● 今回は講義の内容・講義のために作成した演習環境・作成に 当たって苦労した裏話などについてお話しようかと思います。

Slide 3

Slide 3 text

洲崎俊 洲崎 俊(Shun Suzaki) 三井物産セキュアディレクション株式会社に所属 ペネトレーションテストなどを中心としたセキュリティサービス提供に 従事する、とあるセキュリティエンジニア 公開スライド:http://www.slideshare.net/zaki4649/ Blog:http://tigerszk.hatenablog.com/ 著書(翻訳):詳解HTTP/2 Twitter:とある診断員@tigerszk ● ISOG-J WG1 ● Burp Suite Japan User Group ● OWASP JAPAN Promotion Team ● #ssmjp ● MINI Hardening Project I‘M A CERTAIN PENTESTER!

Slide 4

Slide 4 text

臼田佳祐 クラスメソッド株式会社 ・AWS事業本部  ソリューションアーキテクト  セキュリティチームリーダー ・Security-JAWS運営 ・好きなサービス:  AWS WAFマネージドルール https://dev.classmethod.jp/author/usuda-keisuke/

Slide 5

Slide 5 text

角田朱生 角田 朱生(つのだ あかき) セキュリティ・キャンプ2012 Webセキュリティクラス卒業。脆弱性診断や 不正利用対策などの業務を経て、現在はモバイル決済サービスのセ キュリティアセスメントに従事。 Twitter: @akakitsunoda Blog: https://akaki.io/

Slide 6

Slide 6 text

目次 1. セキュリティ・キャンプとは 2. 講義概要 3. 講義をやってみた感想

Slide 7

Slide 7 text

1.セキュリティ・キャンプとは

Slide 8

Slide 8 text

セキュリティ・キャンプとは? 学生に対して情報セキュリティに関する高度な技術教育を実施し、次 代を担う情報セキュリティ人材を発掘・育成する事業 ● 独立行政法人情報処理推進機構(IPA)と一般社団法人セキュリティ・キャンプ 協議会が主催 ● 2004年に開始され、現在は全国大会を首都圏で毎年1回、2013年に開始され た地方大会を毎年各地で10回程度開催 ● 22歳以下の学生から応募選考 ● 毎年80人程度、2019年度まで計824名を輩出

Slide 9

Slide 9 text

今年の全国大会で講義をしました セキュリティ・キャンプ全国大会2020 オンライン 10/18~12/6の毎週末にオンライン開催 https://www.ipa.go.jp/jinzai/camp/2020/zenkoku2020_index.html 講義名: 「なぜWebサイトは乗っ取られたのか?AWS環境における実践 的なインシデントレスポンス」

Slide 10

Slide 10 text

2.講義概要

Slide 11

Slide 11 text

どんな講義? 講義受講者に、攻撃者によって侵害されたAWS環境を実際に手 を動かして解析してもらい、AWS環境におけるインシデントレスポ ンスを経験してもらうというもの 演習用の侵害されたAWS環境 受講者 講師 演習用環境を設計・構築 事前に攻撃を実施 侵害されたAWS環境を解析 AWS Cloud

Slide 12

Slide 12 text

メンバーの主な役割 AWS環境の設計&構築:臼田 サービスアプリケーションの構築:角田 攻撃シナリオ作成&攻撃:洲崎

Slide 13

Slide 13 text

講義のシナリオ ある日とあるWebサービスを提供している会社のCTOからAWS環境が侵害 されてしまったとの連絡があなたの元に届きます。 「AWSからAbuseレポートが届き、調査した結果、自社のAWS環境上でコイ ンマイナーが動作していることを発見した。急いでコインマイナーは停止し、 とりあえず提供サービスを一時停止した。サービス再開のために、このAWS 環境の調査をきみにお願いしたい!」 スーパーインシデントハンドラーの君に課せられた任務は、このAWS環境で 一体何が起きたのかを解明することだ!

Slide 14

Slide 14 text

ある会社が提供するアプリケーション セキュアなつぶやき型SNS「Secutter」 主な機能 ● ログイン ● プロフィール変更 ● つぶやき投稿 ● いいね Nginx+PHP+Mysqlで構成

Slide 15

Slide 15 text

サービスを提供するAWS環境

Slide 16

Slide 16 text

インシデント発生後の初動対応 ● マインニングされていた不正なEC2は即時停止 ● Secutterサービスも侵害されている可能性があるため、サービス公開を 停止 ● 環境保全のためSecutterアプリケーションが動作していたEC2のAMI バックアップを取得 ● 調査用のEC2を作成し、復元した調査対象のEBSをマウント ● 調査対象期間のWebサーバーのログ/AWSログをS3バケットに複製 ● Athenaでログを解析できるよう準備

Slide 17

Slide 17 text

初動対応後の環境

Slide 18

Slide 18 text

解析を通じて以下をまとめてもらう ● インシデントによる影響(Secutterサービスは影響を受けてい るのか?) ● 不正なEC2が動作していた原因 ● サービス再開のための対策案の提案

Slide 19

Slide 19 text

講義はこんな感じで行いました ● 講義の流れ(講義時間:4時間) 1. 座学(AWSセキュリティの基礎・課題概要・ログ解析のポイントなど) 2. 解析TIME 3. インシデントの内容解説 ※解析を行うに当たって必要と思われるAWSに関する基礎知識やAWSセキュリティなどは講義事前 に事前課題としてあらかじめ受講者に学習してもらっていました。 ● Slack上で受講者をサポート ● AWS環境自体は、自分のペースで好きな時に学習できる ように、開催期間中は開放

Slide 20

Slide 20 text

3.講義をやってみた感想

Slide 21

Slide 21 text

頑張ったところ: リアルな環境にこだわった ● クラウドならではのインシデン トレスポンスを提供できた ○ AWSのログとサーバ/OSのログ のハイブリット調査 ○ ログ分析もfluentdで出して athenaでやった ○ GuardDutyやDetectiveを駆使

Slide 22

Slide 22 text

頑張ったところ: リアルな環境にこだわった ● 実際にありそうな環境で実際 にやるオペレーションを想定 ○ クラウドらしい攻撃を再現

Slide 23

Slide 23 text

頑張ったところ: リアルな環境にこだわった ● 実際にありそうな環境 で実際にやるオペレー ションを想定 ○ EC2のスナップショットを 使って環境保全 + 調査

Slide 24

Slide 24 text

こだわったところ ● リアルなAWS環境でのインシデントレスポンスを体験 してより現場で役に立つ経験を積んでもらうことを意 識した ● でもAWSの知識はどんどん陳腐化していくのでもう一 つ大事なことを盛り込んだ

Slide 25

Slide 25 text

その時役立つ技術もそうだけど 調査の考え方や勘所が大事

Slide 26

Slide 26 text

こだわったところ ● 以下のようなインシデントレスポンス全般で役に立つ 内容もフォロー ○ 調査の方針設計 ○ ログの辿り方 ○ 報告書の作り方(おまけ) ● AWSに限らず役に立つ経験になることを意識

Slide 27

Slide 27 text

知見の共有 ● GuardDuty/Detectiveを体験するコンテンツは作るの は大変 ○ 保持期間が90日(約3ヶ月) ○ 検知させるのが大変 ○ IAMのイベントは最近全リージョンに出るから火消しが大 変

Slide 28

Slide 28 text

知見の共有 ● 思ったとおりにログを作るのが大変 ○ リテイクしまくる ○ なるべくオペレーションを自動化して対応 ● ABACでアクセス制御するといい感じにEC2使える (Session Managerでも良かったけど) AWS の ABAC とは - AWS Identity and Access Management https://docs.aws.amazon.com/ja_jp/IAM/lates t/UserGuide/introduction_attribute-based-acce ss-control.html

Slide 29

Slide 29 text

知見の共有 ● 痕跡を残しつつ悪さされないようにするのが難しい ○ アクセスキーにpermission boundary設定して守った(わかりづ らくていい) ● 学生向けにやるとクレカないとかEducateとか大変 ○ 自己学習してもらうならqwiklabsとか使ってもらう ● ログ公開や体感してもらう仕組みを作るのは大変 ○ いい解決策を知っている人がいたら教えてほしい