Slide 1

Slide 1 text

2022年秋の最新GuardDuty攻略ガイド 〜裏技封じとマルウェアスキャン〜 2022/10/08 ⾅⽥佳祐 1 #jawsdays2022 #jawsug #jawsdays #jawsdays2022_c

Slide 2

Slide 2 text

2 こんにちは、⾅⽥です。 みなさん、 AWSのセキュリティ対策してますか︖(挨拶

Slide 3

Slide 3 text

3 ⾃⼰紹介 ⾅⽥佳祐(うすだけいすけ) ・クラスメソッド株式会社 / AWS事業本部 シニアソリューションアーキテクト セキュリティチームリーダー AWS公認インストラクター 2021 APN Ambassador 2022 APN AWS Top Engineers (Security) ・CISSP ・Security-JAWS運営 ・好きなサービス: GuardDuty / Detective Security Hub みんなのAWS (技術評論社)

Slide 4

Slide 4 text

4 セッションの概要 • Amazon GuardDutyのこれまで • 攻撃者に対するAWS運営の本気 • 新機能マルウェアスキャン素敵

Slide 5

Slide 5 text

5 突然ですが みなさん、セッションレベル ⾒てますか︖

Slide 6

Slide 6 text

6 タイムテーブルのセッションレベル CfPで⾃⼰申告する値

Slide 7

Slide 7 text

7 セッションレベル集計結果 • Lv100: 2セッション • Lv200: 11セッション • Lv300: 14セッション • Lv400: 1セッション • みんな絶対おかしいよ… • 300のセッションもめっちゃいい内容が多いハズ • もっと⾃⾝を持ってLv400しようよ︕

Slide 8

Slide 8 text

8 ところで みなさん、セッション概要 ⾒てますか︖

Slide 9

Slide 9 text

9 このセッションの概要⽂ Lv400のセッションが1つしかなくて それがオタク⽤のセッションということは… 🤔

Slide 10

Slide 10 text

10 Lv400は ⾏き過ぎた⼀部の オタクのセッション ということですよね︖ 運営の⼈ごめんなさい

Slide 11

Slide 11 text

Attention これは ネタセッションです︕

Slide 12

Slide 12 text

12 このセッションは GuardDutyオタクの私が AWSという 恋愛シミュレーションゲームで かわいいGuardDutyを攻略する話

Slide 13

Slide 13 text

13 真⾯⽬な話を 聞きたい⼈は

Slide 14

Slide 14 text

14 AWSセキュリティの整理(登壇履歴) AWSセキュリティ事始め〜基礎からはじめて クラウドセキュリティの恩恵を受ける〜 [初⼼者向け]AWS環境のセキュリ ティ運⽤(設計)をはじめてみよう みんなでセキュリティを強化︕仕組みで解決 するAWS環境のマネジメント & ガバナンス AWS Control Towerを利⽤した マルチアカウント管理とセキュリティ統制

Slide 15

Slide 15 text

15 セッションの概要 • Amazon GuardDutyのこれまで • 過去の攻略情報 • 攻撃者に対するAWS運営の本気 • 新ルート1: 迫真の裏技封じ • 新機能マルウェアスキャン素敵 • 新ルート2: 嫁の新しい側⾯を垣間⾒る

Slide 16

Slide 16 text

16 セッションの対象者 • Amazon GuardDutyは俺の嫁という⼈ • セキュリティサービスを攻略したい⼈ • みんなの嫁のAWSサービスはなんですか︖ • #jawsdays2022とかつけて嫁をつぶやこう︕

Slide 17

Slide 17 text

17 1. 過去の攻略情報

Slide 18

Slide 18 text

18 合わせて読みたい ツンデレな GuardDutyの攻略 ⽅法について⽇本 語と英語翻訳で 語った https://dev.classmet hod.jp/articles/tsun dere-guardduty-in- jaws-pankration- 2021/

Slide 19

Slide 19 text

19 かんたんなおさらい (ネタバレは控えめ)

Slide 20

Slide 20 text

20 In re:Invent 2017

Slide 21

Slide 21 text

21 あらすじ 2017年末、re:Inventで発表されたGuardDutyに僕 は恋をした… セキュリティサービスだから僕は興味津々でいろんなア タック(⽂字通り攻撃)をしてみた でも彼⼥はとんでもないツンデレで攻略するのはすごく ⼤変 いろんなラブレター(攻撃スクリプト)に対して検知して くれたり検知してくれなかったりする彼⼥にやきもきし ていた

Slide 22

Slide 22 text

22 怪⽂書すぎるのでもう少し補⾜ 内容は真⾯⽬なところもちゃんとあって、Previlege EscalationとかDNSRebindとかの検知⽅法について 紹介しているよ(攻略情報だからね)

Slide 23

Slide 23 text

23 そんな彼⼥(GuardDuty)に今回 新しいルート(機能)が追加された

Slide 24

Slide 24 text

24 攻略対象のルートがどんどん追加されるというのは つまりAWSは クラウド恋愛シミュレーションゲームで 永遠とシナリオが配布される

Slide 25

Slide 25 text

25 1. 過去の攻略情報まとめ • というわけで今回はツンデレGuardDutyの続き • この終わりのないアップデートに追随する GuardDutyオタクの攻略まとめ • 新ルートちょーいいからみんな攻略して

Slide 26

Slide 26 text

26 2. 新ルート1: 迫真の裏技封じ

Slide 27

Slide 27 text

27 2022年1⽉のアップデート • 以前から存在していたEC2から盗まれたクレデン シャルの利⽤を検知する InstanceCredentialExfiltrationのFinding Typesが2種類になった • 既存のものは InstanceCredentialExfiltration.OutsideAWS • 新規のものは InstanceCredentialExfiltration.InsideAWS

Slide 28

Slide 28 text

28 合わせて読みたい UnauthorizedAc cess:IAMUser/I nstanceCredenti alExfiltrationの アップデートにつ いての記事 https://dev.classmet hod.jp/articles/guar dduty-detect- exfiltration-ec2- credentials-inside/

Slide 29

Slide 29 text

29 旧来の動作 漏洩したクレデンシャルが外部から利⽤されると検知 AWS外のIPから EC2のクレデン シャル使⽤は 不審︕ InstanceCreden+alExfiltra+on

Slide 30

Slide 30 text

30 旧来の動作(つづき) 別のAWS環境からだと検知できなかった AWS外のIPから EC2のクレデン シャル使⽤は 不審︕ AWS内のIPは ヨシ︕ バレないぜ InstanceCreden+alExfiltra+on

Slide 31

Slide 31 text

31 合わせて読みたい アップデート前 なのでGCPから 攻撃をした事例 実際のインシデ ントハンドリン グの参考にどう ぞ https://dev.classmet hod.jp/articles/revie w-security-camp-and- tigersecjaws-02/

Slide 32

Slide 32 text

32 AWS運営 本気の裏技封じ

Slide 33

Slide 33 text

33 アップデード後 別のAWS環境からでも検知︕ AWS外のIPから EC2のクレデン シャル使⽤は 不審︕ 別のAWSだから 不審︕ バレた︕ InstanceCreden+alExfiltra+on.OutsideAWS InstanceCreden+alExfiltra+on.InsideAWS

Slide 34

Slide 34 text

34 アップデートされた彼⼥ 「裏技で逃れようとしたって そうは⾏きませんよ…」 (ツンと⾔うよりヤン⼊ってる︖)

Slide 35

Slide 35 text

35 検知内容の詳細 InstanceCredentialExfiltration.InsideAWSでは新 しいパラメータとしてremoteAccountDetailsが追加 され利⽤されたAWSアカウントIDが確認できる ⾒覚えある アカウントIDか チェック

Slide 36

Slide 36 text

36 不正なユーザーは運営に通報 remoteAccountDetailsが追加されたのでこれで具体 的なアカウントもわかる 知らないアカウントだったらサポート窓⼝やReport Amazon AWS abuseからも通報できる https://support.aws.amazon.com/#/contacts/report-abuse

Slide 37

Slide 37 text

37 InstanceCreden3alExfiltra3on. InsideAWSルート 攻略⽅法

Slide 38

Slide 38 text

38 彼⼥に振り向いてもらう(検知させる)⽅法 EC2からクレデンシャルを取得 [ec2-user@ip-172-31-24-107 ~]$ mu=h=p://169.254.169.254/latest/meta- data/iam/security-credenJals/;curl -s $mu | echo $mu$(cat) | xargs -n1 curl { "Code" : "Success", "LastUpdated" : "2022-01-22T07:57:56Z", "Type" : "AWS-HMAC", "AccessKeyId" : "ASIAXXXXXXXXXXXXXXG4", "SecretAccessKey" : "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "Token" : "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==", "ExpiraJon" : "2022-01-22T14:24:21Z” } EC2 Session Manager

Slide 39

Slide 39 text

39 合わせて読みたい jqいらずのワンラ イナー 地味ですがどうぞ https://dev.classm ethod.jp/articles/e c2-credentials- exfiltration- oneliner/

Slide 40

Slide 40 text

40 彼⼥に振り向いてもらう(検知させる)⽅法 別AWS環境でCloudShellなどから利⽤ $ export AWS_ACCESS_KEY_ID=ASIAXXXXXXXXXXXXXXG4 $ export AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx $ export AWS_SESSION_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx== [cloudshell-user@ip-10-0-106-126 ~]$ aws sts get-caller-idenJty { "UserId": "AROAXXXXXXXXXXXXXXXXX:i-0f8xxxxxxxxxxxxxx", "Account": "999999999999", "Arn": "arn:aws:sts::999999999999:assumed-role/EC2Role/i-0f8xxxxxxxxxxxxxx" } [cloudshell-user@ip-10-0-106-126 ~]$ aws s3 ls An error occurred (AccessDenied) when calling the ListBuckets operaJon: Access Denied

Slide 41

Slide 41 text

41 3. 新ルート2: 嫁の新しい側⾯を垣間⾒る

Slide 42

Slide 42 text

42 2022年7⽉のアップデート • Malware Protectionが実装 • 機能名はMalware Protectionだけど、動作として は検知 • マルウェアの動きを直接⽌めない • EBSのスナップショットを取得しこれをスキャンす るため、動作している実環境に影響ない

Slide 43

Slide 43 text

43 合わせて読みたい ついに来たマル ウェアスキャン ガッツリ解説して いるのでどうぞ https://dev.classm ethod.jp/articles/g uardduty-support- malware- protection/

Slide 44

Slide 44 text

44 実はリリース前に気づいていた リリースから遡ること8ヶ⽉ いつもどおりGuardDutyのレ スポンスを眺めていたら kubernetesとmalwareScan の⽂字が含まれたレスポンスを 受信した 普段から攻略対象をよく観察す るのはオタクの使命(でもおもらしはだめよ

Slide 45

Slide 45 text

45 イベントトリガー Malware Protectionは特定のGuardDuty Findings が発⽣すると実⾏される • Backdoor:EC2/C&CActivity.B • Backdoor:EC2/C&CActivity.B!DNS • Backdoor:EC2/DenialOfService.Dns • Backdoor:EC2/DenialOfService.Tcp • Backdoor:EC2/DenialOfService.Udp • Backdoor:EC2/DenialOfService.UdpOnTcpPorts • Backdoor:EC2/DenialOfService.UnusualProtocol • Backdoor:EC2/Spambot • CryptoCurrency:EC2/BitcoinTool.B • CryptoCurrency:EC2/BitcoinTool.B!DNS • Impact:EC2/AbusedDomainRequest.Reputation • Impact:EC2/BitcoinDomainRequest.Reputation • Impact:EC2/MaliciousDomainRequest.Reputation • Impact:EC2/PortSweep • Impact:EC2/SuspiciousDomainRequest.Reputation • Impact:EC2/WinRMBruteForce (アウトバウンドのみ) • Recon:EC2/Portscan • Trojan:EC2/BlackholeTraffic • Trojan:EC2/BlackholeTraffic!DNS • Trojan:EC2/DGADomainRequest.B • Trojan:EC2/DGADomainRequest.C!DNS • Trojan:EC2/DNSDataExfiltration • Trojan:EC2/DriveBySourceTraffic!DNS • Trojan:EC2/DropPoint • Trojan:EC2/DropPoint!DNS • Trojan:EC2/PhishingDomainRequest!DNS • UnauthorizedAccess:EC2/RDPBruteForce (アウトバウ ンドのみ) • UnauthorizedAccess:EC2/SSHBruteForce (アウトバウ ンドのみ) • UnauthorizedAccess:EC2/TorClient • UnauthorizedAccess:EC2/TorRelay

Slide 46

Slide 46 text

46 動作イメージ トリガーを検知するとスナップショットを取る

Slide 47

Slide 47 text

47 結果の確認 どのようなタイプのマル ウェアか、ファイルパス、 ファイル名を確認できる 下のファイルは.tar.gzだ が中⾝までちゃんと⾒てく れている

Slide 48

Slide 48 text

48 検知結果のフォーマット MaliciousFileタイプのFindingsのjsonでは “Service. EbsVolumeScanDetails”配下にこれらの 検知結果が格納されている 詳細はユーザーガイドの下記リンク https://docs.aws.amazon.com/ja_jp/guarddu ty/latest/ug/guardduty_findings- summary.html#malware-protection-scan- details

Slide 49

Slide 49 text

49 マルウェアスキャンの 何が嬉しいのか︖

Slide 50

Slide 50 text

50 これまでのGuardDuty運⽤ 「このEC2怪しいよ︕調べて」

Slide 51

Slide 51 text

51 これまでのGuardDuty運⽤ • 検知したEC2が本当に危ないのか調べる必要があっ た • どうやって︖ • ログインしてみる︖ • どのツールで︖ • 本当はマルウェア対策が備わっていることが理想 • TrendMicroのWorkload Securityちゃんもいいぞ • (旧Deep Security)

Slide 52

Slide 52 text

52 今のGuardDuty運⽤ 「このEC2怪しかったから スキャンしておいたぜ」

Slide 53

Slide 53 text

53 やだイケメン…///

Slide 54

Slide 54 text

54 つまりGuardDutyは かわいくて俺の嫁でツンデレでイケメンということだ

Slide 55

Slide 55 text

55 Malware Protec3onルート 攻略⽅法

Slide 56

Slide 56 text

56 攻略⽅法 攻略のステップ 1. 検知されるマルウェアをEC2に仕込む(フラグを⽴ てる) 2. 対象EC2が検知されるイベントトリガーを引く (ルート分岐) 事前のフラグ管理が重要なんですね︕

Slide 57

Slide 57 text

57 1. マルウェアを仕込む ⼀番簡単なのは eicarファイルを 設置すること 味気ないと感じ たらこちらも参 考にどうぞ https://dev.classmet hod.jp/articles/guard duty-findings-test- cryptocurrency/

Slide 58

Slide 58 text

58 2. イベントトリガーを引く • 前述記事ではコインマイナーのドメインへの通信で 検知させている • GuardDutyのテスト⽤ドメインを利⽤する⽅法もあ る • guarddutyc2activityb.com • Backdoor:EC2/C&CActivity.B!DNSが検知できる • https://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/g uardduty_finding-types-ec2.html

Slide 59

Slide 59 text

59 おまけ: 公式の⾃動化ルート 私は⼀個⼀個⾃分で動作を確認していくのが好きです が、公式の⾃動化ルートも⽤意されています https://github.com/awslabs/amazon- guardduty-tester

Slide 60

Slide 60 text

60 検知するFinding Types

Slide 61

Slide 61 text

61 追加されたFinding Types • Execution:EC2/MaliciousFile • Execution:ECS/MaliciousFile • Execution:Kubernetes/MaliciousFile • Execution:Container/MaliciousFile • Execution:EC2/SuspiciousFile • Execution:ECS/SuspiciousFile • Execution:Kubernetes/SuspiciousFile • Execution:Container/SuspiciousFile

Slide 62

Slide 62 text

62 コンテナ環境も対応してるけど… https://docs.aws.amazon.com/ja_jp/guarddu ty/latest/ug/malware-protection.html

Slide 63

Slide 63 text

63 Fargate対応していない • かなしい • でも新機能が出たばかりで仕⽅ない • 流⽯にそのうち対応するでしょう • と、そう思っていませんか︖

Slide 64

Slide 64 text

64 ⽢えないでください AWSはフィードバックがすべて みんなで要望を送りまくるのです︕

Slide 65

Slide 65 text

65 欲しい機能はフィードバック︕ • 「そのうち」「誰かが」と他⼈任せにしない • あなたが欲しいなら、あなたがリクエスト︕ • フィードバックが多ければガンガン対応するのが AWS • Twitterでつぶやくのもだめじゃないけど薄い • (誰か拾って(/ω・\)チラッは意味ない) • サポートへ、TAMへ(あれば)直接リクエスト︕ • ユーザーの声が⼀番響きます

Slide 66

Slide 66 text

66 フィードバックするのって ゲームのアンケートハガキみたいですね (しらんけど

Slide 67

Slide 67 text

67 みんなでリクエストするのって つまり全員参加型ゲームの ルート選択では︖ ⾃分の好みの選択を選んで ヒロインを育てよう

Slide 68

Slide 68 text

68 まとめ

Slide 69

Slide 69 text

69 まとめ • Amazon GuardDutyはかわいくて俺 の嫁でツンデレでイケメン • 全員でルート選択しよう • 無限に続くこのゲームにみんな参加し よう

Slide 70

Slide 70 text

70