Slide 1

Slide 1 text

GuardDutyの深淵を覗いて、 君もGuardDutyマスターになろう︕ 2023/07/08 臼田佳祐 #devio2023

Slide 2

Slide 2 text

みなさん、 GuardDutyと戯れてますか︖(挨拶 こんにちは、⾅⽥です。 2

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

セッションタイトルと 概要ちゃんと確認しました︖ 前置きその1 4

Slide 5

Slide 5 text

こんなやつ 5

Slide 6

Slide 6 text

今回はすごくコアですよ︖ 覚悟してください 6

Slide 7

Slide 7 text

このセッションの楽しみ⽅ 7 • GuardDutyマニアの⼈と、とりあえずなんだか よくわからないけどニッチなことを話している のを聞くのが好きな⼈は楽しめるはず • おまけに最近のアップデートとかの話もありま す

Slide 8

Slide 8 text

合わせて読みたい 8 もう少し広いセキ ュリティ対策はだ いたいここに全部 ある https://dev.classmethod.jp/art icles/aws-security-all-in-one- 2021/

Slide 9

Slide 9 text

今回はなんで コアなテーマなのか︖ 前置きその2 9

Slide 10

Slide 10 text

いきなり宣伝で申し訳ないですが 10 セキュアアカウント インシデント⾃動調査機能を 提供開始しました (オープンベータ) 検知をトリガーに Trailやリソースを 調査して報告 https://classmethod.jp/aws/services/auto-investigation/

Slide 11

Slide 11 text

今回はつまり 11 弊社サービス提供のためにやっている GuardDuty基礎研究 の成果報告です チームメンバーにも感謝

Slide 12

Slide 12 text

アジェンダ 12 • GuardDutyのおさらい • 最近のアップデート(おまけ) • Findingsの話(メイン)

Slide 13

Slide 13 text

GuardDutyのおさらい 13

Slide 14

Slide 14 text

Amazon GuardDutyとは 14 • 脅威検知サービス • CloudTrail / VPC Flow Logs / DNS Logsを バックグラウンドで⾃動収集(利⽤者の⼿間な し) • ポチッと有効化するだけ • IAM / EC2 / S3に関するインシデントを検知 • 脅威インテリジェンスと連携 • 機械学習による異常識別

Slide 15

Slide 15 text

GuardDutyの検知内容(ほんの⼀部) 15 IAMタイプ •不正ログイン •漏洩したクレデン シャル利⽤ •CloudTrail無効化 EC2タイプ •コインマイニング •C&Cサーバー接続 •SSHブルートフォ ース(受信 or 送信) S3タイプ •不⾃然なバケット 公開(情報漏えい) •Torアクセス

Slide 16

Slide 16 text

せっかくなのでアンケート 16 • GuardDuty有効化しているよって⼈ • 検知したものをみて対応したことがある⼈ • GUIで切り出されているものだけではなくFindings のJSONを直接調べたことがある⼈ • ⼿動での調査だけじゃなく、調査やその後の処理を ⾃動化したことがある⼈

Slide 17

Slide 17 text

ちなみに利⽤率の調査結果 17 301-500⼈規模の会社では86.67%とかなり⾼い、 全体でも約60%と割と⾼め

Slide 18

Slide 18 text

合わせて読みたい 18 AWSセキュリティの 実態を調査したレポー ト ⾃分たちの組織が周り よりできているのか、 客観的に評価できます https://dev.classmethod.jp/ articles/security_jaws_best_ practice_report/

Slide 19

Slide 19 text

合わせて読みたい 19 クラウドに限らないセ キュリティの⼤事なと ころから解説されてい る すべての⼈が読むべき 本 https://dev.classmethod.jp/ar ticles/start-cloud-security- with-aws/

Slide 20

Slide 20 text

他のAWSサービスとの関連性 20 • Amazon Detective • GuardDutyで検知した内容の相関分析 • AWS Security Hub • 連携したりしなかったり、チェック強め • AWS Organizations • 連携してマルチアカウント展開

Slide 21

Slide 21 text

最近のアップデート(おまけ) 21

Slide 22

Slide 22 text

対応しているタイプ 22 • EC2 / IAM / S3: 2017/11(リリース時) • S3: 2020/07(追加ログでの検知) • EKS Audit Log: 2022/01 • https://dev.classmethod.jp/articles/guardduty-for-eks- protection/ • Malware Protection: 2022/07 • https://dev.classmethod.jp/articles/guardduty-support- malware-protection/

Slide 23

Slide 23 text

対応しているタイプ 23 • RDS: 2023/03 • https://dev.classmethod.jp/articles/amazon-guardduty- rds-protection-aurora-ga/ • EKS Runtime: 2023/03 • https://dev.classmethod.jp/articles/amazon-guardduty- runtime-monitoring-manual-setup-overview/ • Lambda: 2023/04 • https://dev.classmethod.jp/articles/update_guardduty_lambda_protection/

Slide 24

Slide 24 text

最近のアップデート 24 https://dev.classmethod.jp/articles/aws-user- notifications-release/ https://dev.classmethod.jp/articles/update-amazon- guardduty-on-demand-malware-scan/

Slide 25

Slide 25 text

GuardDutyのサマリーダッシュボード 25

Slide 26

Slide 26 text

合わせて読みたい 26 各ウィジェットが役 に⽴つ 詳細はブログでどう ぞ 今すぐ活⽤できます https://dev.classmethod.jp/art icles/guardduty-summry- dashboard/

Slide 27

Slide 27 text

Findingsの話(メイン) 27

Slide 28

Slide 28 text

Findingsの話のアジェンダ 28 • Findings全般 • Findings集計結果 • Resource毎の⾒どころ • ActionType毎の⾒どころ • 新星FeatureName

Slide 29

Slide 29 text

Findingsの話(メイン) Findings全般 29

Slide 30

Slide 30 text

まずはFindings⾃体への理解を深める 30 Discovery:S3/AnomalousBehavior Discovery:S3/MaliciousIPCaller Discovery:S3/MaliciousIPCaller.Custom Discovery:S3/TorIPCaller Exfiltration:S3/AnomalousBehavior Exfiltration:S3/MaliciousIPCaller Impact:S3/AnomalousBehavior.Delete Impact:S3/AnomalousBehavior.Permission Impact:S3/AnomalousBehavior.Write Impact:S3/MaliciousIPCaller PenTest:S3/KaliLinux PenTest:S3/ParrotLinux PenTest:S3/PentooLinux UnauthorizedAccess:S3/TorIPCaller UnauthorizedAccess:S3/MaliciousIPCaller.Custom CredentialAccess:IAMUser/AnomalousBehavior DefenseEvasion:IAMUser/AnomalousBehavior Discovery:IAMUser/AnomalousBehavior Exfiltration:IAMUser/AnomalousBehavior Impact:IAMUser/AnomalousBehavior InitialAccess:IAMUser/AnomalousBehavior PenTest:IAMUser/KaliLinux PenTest:IAMUser/ParrotLinux PenTest:IAMUser/PentooLinux Persistence:IAMUser/AnomalousBehavior Stealth:IAMUser/PasswordPolicyChange UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration. InsideAWS Policy:S3/AccountBlockPublicAccessDisabled Policy:S3/BucketAnonymousAccessGranted Policy:S3/BucketBlockPublicAccessDisabled Policy:S3/BucketPublicAccessGranted PrivilegeEscalation:IAMUser/AnomalousBehavior Recon:IAMUser/MaliciousIPCaller Recon:IAMUser/MaliciousIPCaller.Custom Recon:IAMUser/TorIPCaller Stealth:IAMUser/CloudTrailLoggingDisabled Stealth:S3/ServerAccessLoggingDisabled UnauthorizedAccess:IAMUser/ConsoleLoginSuccess.B UnauthorizedAccess:IAMUser/MaliciousIPCaller UnauthorizedAccess:IAMUser/MaliciousIPCaller.Custom UnauthorizedAccess:IAMUser/TorIPCaller Policy:IAMUser/RootCredentialUsage UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration. OutsideAWS Backdoor:EC2/C&CActivity.B!DNS CryptoCurrency:EC2/BitcoinTool.B!DNS Impact:EC2/AbusedDomainRequest.Reputation Impact:EC2/BitcoinDomainRequest.Reputation Impact:EC2/MaliciousDomainRequest.Reputation Impact:EC2/SuspiciousDomainRequest.Reputation Trojan:EC2/BlackholeTraffic!DNS Trojan:EC2/DGADomainRequest.B Trojan:EC2/DGADomainRequest.C!DNS Trojan:EC2/DNSDataExfiltration Trojan:EC2/DriveBySourceTraffic!DNS Trojan:EC2/DropPoint!DNS Trojan:EC2/PhishingDomainRequest!DNS UnauthorizedAccess:EC2/MetadataDNSRebind Execution:Container/MaliciousFile Execution:Container/SuspiciousFile Execution:EC2/MaliciousFile Execution:EC2/SuspiciousFile Execution:ECS/MaliciousFile Execution:ECS/SuspiciousFile Execution:Kubernetes/MaliciousFile Execution:Kubernetes/SuspiciousFile CredentialAccess:Kubernetes/MaliciousIPCaller CredentialAccess:Kubernetes/MaliciousIPCaller.Custom CredentialAccess:Kubernetes/SuccessfulAnonymousAccess CredentialAccess:Kubernetes/TorIPCaller DefenseEvasion:Kubernetes/MaliciousIPCaller DefenseEvasion:Kubernetes/MaliciousIPCaller.Custom DefenseEvasion:Kubernetes/SuccessfulAnonymousAccess DefenseEvasion:Kubernetes/TorIPCaller Discovery:Kubernetes/MaliciousIPCaller Discovery:Kubernetes/MaliciousIPCaller.Custom Discovery:Kubernetes/SuccessfulAnonymousAccess Discovery:Kubernetes/TorIPCaller Execution:Kubernetes/ExecInKubeSystemPod Impact:Kubernetes/MaliciousIPCaller Impact:Kubernetes/MaliciousIPCaller.Custom Impact:Kubernetes/SuccessfulAnonymousAccess Impact:Kubernetes/TorIPCaller Persistence:Kubernetes/ContainerWithSensitiveMount Persistence:Kubernetes/MaliciousIPCaller Persistence:Kubernetes/MaliciousIPCaller.Custom Persistence:Kubernetes/SuccessfulAnonymousAccess Persistence:Kubernetes/TorIPCaller Policy:Kubernetes/AdminAccessToDefaultServiceAccount Policy:Kubernetes/AnonymousAccessGranted Policy:Kubernetes/KubeflowDashboardExposed Policy:Kubernetes/ExposedDashboard PrivilegeEscalation:Kubernetes/PrivilegedContainer Backdoor:Lambda/C&CActivity.B CryptoCurrency:Lambda/BitcoinTool.B Trojan:Lambda/BlackholeTraffic Trojan:Lambda/DropPoint UnauthorizedAccess:Lambda/MaliciousIPCaller.Custom UnauthorizedAccess:Lambda/TorClient UnauthorizedAccess:Lambda/TorRelay CredentialAccess:RDS/AnomalousBehavior.FailedLogin CredentialAccess:RDS/AnomalousBehavior.SuccessfulBruteF orce CredentialAccess:RDS/AnomalousBehavior.SuccessfulLogin CredentialAccess:RDS/MaliciousIPCaller.FailedLogin CredentialAccess:RDS/MaliciousIPCaller.SuccessfulLogin CredentialAccess:RDS/TorIPCaller.FailedLogin CredentialAccess:RDS/TorIPCaller.SuccessfulLogin Discovery:RDS/MaliciousIPCaller Discovery:RDS/TorIPCaller Backdoor:Runtime/C&CActivity.B Backdoor:Runtime/C&CActivity.B!DNS CryptoCurrency:Runtime/BitcoinTool.B CryptoCurrency:Runtime/BitcoinTool.B!DNS DefenseEvasion:Runtime/FilelessExecution DefenseEvasion:Runtime/ProcessInjection.Proc DefenseEvasion:Runtime/ProcessInjection.Ptrace DefenseEvasion:Runtime/ProcessInjection.VirtualMemoryWri te Execution:Runtime/NewBinaryExecuted Execution:Runtime/NewLibraryLoaded Execution:Runtime/ReverseShell Impact:Runtime/AbusedDomainRequest.Reputation Impact:Runtime/BitcoinDomainRequest.Reputation Impact:Runtime/CryptoMinerExecuted Impact:Runtime/MaliciousDomainRequest.Reputation Impact:Runtime/SuspiciousDomainRequest.Reputation PrivilegeEscalation:Runtime/CGroupsReleaseAgentModified PrivilegeEscalation:Runtime/ContainerMountsHostDirectory PrivilegeEscalation:Runtime/DockerSocketAccessed PrivilegeEscalation:Runtime/RuncContainerEscape PrivilegeEscalation:Runtime/UserfaultfdUsage Trojan:Runtime/BlackholeTraffic Trojan:Runtime/BlackholeTraffic!DNS Trojan:Runtime/DropPoint Trojan:Runtime/DGADomainRequest.C!DNS Trojan:Runtime/DriveBySourceTraffic!DNS Trojan:Runtime/DropPoint!DNS Trojan:Runtime/PhishingDomainRequest!DNS UnauthorizedAccess:Runtime/MetadataDNSRebind UnauthorizedAccess:Runtime/TorClient UnauthorizedAccess:Runtime/TorRelay Backdoor:EC2/C&CActivity.B Backdoor:EC2/DenialOfService.Dns Backdoor:EC2/DenialOfService.Tcp Backdoor:EC2/DenialOfService.Udp Backdoor:EC2/DenialOfService.UdpOnTcpPorts Backdoor:EC2/DenialOfService.UnusualProtocol Backdoor:EC2/Spambot Behavior:EC2/NetworkPortUnusual Behavior:EC2/TrafficVolumeUnusual CryptoCurrency:EC2/BitcoinTool.B DefenseEvasion:EC2/UnusualDNSResolver DefenseEvasion:EC2/UnusualDoHActivity DefenseEvasion:EC2/UnusualDoTActivity Impact:EC2/PortSweep Impact:EC2/WinRMBruteForce Recon:EC2/PortProbeEMRUnprotectedPort Recon:EC2/PortProbeUnprotectedPort Recon:EC2/Portscan Trojan:EC2/BlackholeTraffic Trojan:EC2/DropPoint UnauthorizedAccess:EC2/MaliciousIPCaller.Custom UnauthorizedAccess:EC2/RDPBruteForce UnauthorizedAccess:EC2/SSHBruteForce UnauthorizedAccess:EC2/TorClient UnauthorizedAccess:EC2/TorRelay 現在アクティブなFinding types⼀覧(164個) https://docs.aws.amazon.com/ja_jp/guardduty/latest /ug/guardduty_finding-types-active.html

Slide 31

Slide 31 text

アーカイブされたFinding types 31 Exfiltration:S3/ObjectRead.Unusual Impact:S3/PermissionsModification.Unusual Impact:S3/ObjectDelete.Unusual Discovery:S3/BucketEnumeration.Unusual Persistence:IAMUser/NetworkPermissions Persistence:IAMUser/ResourcePermissions Persistence:IAMUser/UserPermissions PrivilegeEscalation:IAMUser/Administrative Permissions Recon:IAMUser/NetworkPermissions Recon:IAMUser/ResourcePermissions Recon:IAMUser/UserPermissions ResourceConsumption:IAMUser/ComputeRe sources Stealth:IAMUser/LoggingConfigurationModif ied UnauthorizedAccess:IAMUser/ConsoleLogin UnauthorizedAccess:EC2/TorIPCaller Backdoor:EC2/XORDDOS Behavior:IAMUser/InstanceLaunchUnusual CryptoCurrency:EC2/BitcoinTool.A UnauthorizedAccess:IAMUser/UnusualASNC aller アーカイブされたFinding types(19個) https://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/guardduty_finding-types-retired.html

Slide 32

Slide 32 text

Finding typesのフォーマット 32 CryptoCurrency:EC2/BitcoinTool.B!DNS ThreatPurpose(必須) 攻撃の⽬的 18種類 ResourceTypeAffected(必須) 攻撃対象のリソース EC2、S3、IAM、EKSなど ThreatFamilyName(必須) 攻撃の種類 66種類 DetectionMechanism(オプション) 検知した⽅法 20種類 Artifact(オプション) 攻撃に利⽤したリソース DNSのみ https://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/guardduty_finding-format.html

Slide 33

Slide 33 text

ThreatPurposeとMITRE ATT&CK 33 ThreatPurposeの半分(9つ)が MITRE ATT&CKの戦術に当てはまる Matrix - Enterprise | MITRE ATT&CK®: https://attack.mitre.org/matrices/enterprise/cloud/iaas/

Slide 34

Slide 34 text

Detectiveの検出結果グループによる可視化 34 複数のGuardDuty Findingsをまとめて分析し、グル ープにまとめてMITRE ATT&CKの戦術にマッピング して表⽰される ⼀連の攻撃の例として、EC2に対するポートプローブ から始まって、SSHブルートフォース成功、クレデン シャル漏洩するシナリオが発⽣しても流れを確認し 簡単にRoot Cause(原因)が確認できる

Slide 35

Slide 35 text

合わせて読みたい 35 他にも複数の Findingsにまたが るリソースなどの 相関を図にしてく れたりめちゃくち ゃいい機能 https://dev.classmethod.jp /articles/detective- support-finding-group- visualization/

Slide 36

Slide 36 text

Detectiveの検出結果グループ 36 こんな感じ EC2とIPア ドレスが紐 づいたり、 IAM Role とEC2が紐 づいたり

Slide 37

Slide 37 text

Finding typesから抽出する正規表現 37 各要素を抜き出すための正規表現 CryptoCurrency:EC2/BitcoinTool.B!DNS ^(.+?):(.+?)/([^.!]+?)(?:|¥.([^!]+?))(?:|!(.+))$ オプションの有無も許容し、グループが適切に5つ の要素に割り当てられる(?:re)を利⽤すると⾮キ ャプチャグループとなり数えられない spreadsheetとPythonで確認済み ※¥はバックスラッシュです 他にいいやり⽅を知っていたら教えてください

Slide 38

Slide 38 text

Findingsの中⾝ 38 おおまかなFindingsの中⾝であるJSONの説明は 省略する(AccountId / Region / Titleとか) 処理していく上で⼤事なのは $.Resource.ResourceTypeや周辺リソースと $.Service.Action.ActionType周辺 これらについて詳細に⾒ていく 詳細はユーザーガイド: https://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/guardduty_findings-summary.html

Slide 39

Slide 39 text

サンプルFindingsの注意点 39 • 実際にFindingsを確認したいとき、攻撃を発⽣ させる必要は必ずしも無い • サンプルFindingsを出⼒できる • ただし、このフォーマットは実際の検知と乖離 がある場合があるので信⽤しすぎない • 特にIAMやS3の検知に含まれるInstanceはい らない

Slide 40

Slide 40 text

合わせて読みたい 40 GUIからはでき ないが、CLIや SDKでは特定 のFinding Typesを指定 してリクエスト できる https://dev.classmethod.j p/articles/create-a-single- sample-findings-in- guardduty/

Slide 41

Slide 41 text

Findingsの話(メイン) Findings集計結果 41

Slide 42

Slide 42 text

Findings集計結果 42 • スプレッドシートとピボットテーブルを⽤いて 正規表現等で処理したFindingsを集計分析しま した • たくさんあるFindingsの傾向を掴み、対策を考 える助けとするねらい

Slide 43

Slide 43 text

ThreatPurpose / リソースの種類 43 EC2とEKS Runtimeは同 じような項⽬ が多い IAMは幅広い タイプがある

Slide 44

Slide 44 text

ThreatFamilyName / リソースの種類 44 66種類中カバレッジが広いもの(使い回しが効く)

Slide 45

Slide 45 text

ThreatFamilyName / リソースの種類 45 残りはユニークなものばかり (40種類) ナレッジが使い回せないので 個別に攻撃内容を知る必要が ある

Slide 46

Slide 46 text

DetectionMechanism / リソースの種類 46 BとCはマルウェア 系の検知についてい るので、内部のエン ジンなりシグネチャ なりの違いかも それ以外の名前はわ かりやすい

Slide 47

Slide 47 text

ArtifactがあるFinding types 47 すべてDNSのみ14個 EC2とRuntime(EKS)で全く同じ7つずつ

Slide 48

Slide 48 text

Findingsの話(メイン) Resource毎の⾒どころ 48

Slide 49

Slide 49 text

ResourceType 49 脅威の影響を受けているリソースのタイプ “Resource”配下にあり、”ResourceType”でど れか1つが指定されている Instance / AccessKey / S3Bucket / EKSCluster / ECSCluster / Container / RDSDBInstance / Lambda 複数のリソースが“Resource”配下にある場合も ある

Slide 50

Slide 50 text

"ResourceType": "Instance" 50 インスタンスIDが取得できるが、そんなことより タグの中からNameタグを頑張って取得する 起動時間は⾒覚えの無いインスタンス(不正に建て られたもの)かどうかを判断する材料になる セキュリティグループIDは取得できるが、ルール は直接取得できないので、⾃前実装で取りに⾏く といい

Slide 51

Slide 51 text

"ResourceType": "AccessKey" 51 UserNameをまずチェック AccessKeyIdはIAMの仕組み上ややこしいが、 よく使うIAM Userの永続的なアクセスキーなこ ともあるし、IAM Roleの⼀時的なキーのことも あるので名前から勘違いしないように気をつける AccessKeyIdをCloudTrailでフィルターかける と、そのユーザーの操作が追えるのでやるべし

Slide 52

Slide 52 text

"ResourceType": "S3Bucket" 52 EffectivePermissionで不必要に公開されていな いか確認する だいたいAPI操作によるものであるため、 AccessKeyDetailsが⼀緒に出ている事が多いの でCloudTrailで操作を追うべし

Slide 53

Slide 53 text

"ResourceType": "EKSCluster" 53 Audit系ならkubernetesUserDetailsから操作 しているユーザー情報なども取得する AccessKeyもあるので⼀緒に取得する Runtime系ならKubernetesWorkloadDetails で対象のコンテナの種類や名前を確認する InstanceDetailsもあるので⼀緒に取得する

Slide 54

Slide 54 text

"ResourceType": "ECSCluster" 54 ほんとに検知できるのかわからない Malware Protectionの2つだけ対象 • Execution:Container/MaliciousFile • Execution:Container/SuspiciousFile 試してみるとEC2タイプで上がってくるので検知 させられなかった “ResourceType”: ”Container“も同じ

Slide 55

Slide 55 text

"ResourceType": "RDSDBInstance" 55 DbClusterIdentifierから識別⼦を取得する RdsDbUserDetailsが⼀緒に出⼒されているので ユーザー名や接続したDatabaseなども⼀緒に取 得する

Slide 56

Slide 56 text

"ResourceType": "Lambda" 56 FunctionNameを取得する 実際の脅威であれば、Lambdaコードに何かしら 仕込まれているのでLastModifiedAtも気にする VPC LambdaであればVpcConfigを取得する 基本Lambda->外部通信での検知なのでリソース 側でチェックすることは少ない

Slide 57

Slide 57 text

Findingsの話(メイン) ActionType毎の⾒どころ 57

Slide 58

Slide 58 text

ActionType / リソースの種類 58 ⼤体リソース種類毎に偏りがある ActionTypeが無いのもある

Slide 59

Slide 59 text

ActionTypeの種類 59 • NETWORK_CONNECTION • PORT_PROBE • DNS_REQUEST • AWS_API_CALL • KUBERNETES_API_CALL • RDS_LOGIN_ATTEMPT • なし

Slide 60

Slide 60 text

"ActionType": "NETWORK_CONNECTION" 60 対象のIP:PORTと、通信がIN/OUTどちらか 通信の⽅向はFinding types毎通常決まっている が、ブルートフォース等がOUTBOUNDの時はす ごくまずいので気をつける 対象IPから出る国や都市が⽇本外など、普段対象 としないものかどうか

Slide 61

Slide 61 text

"ActionType": "PORT_PROBE" 61 2種類のFinding typesのみでわりと⾒ない おそらくProbeされる前に最初からBruteForce されているから 出るときは不必要なポートが空いているので、別 経路でSecurity Groupのルールも取得必須

Slide 62

Slide 62 text

"ActionType": "DNS_REQUEST" 62 Domain / Protocolをそれぞれ取得する ドメイン調査時にうっかりアクセスしないように 気をつける DGA(ドメイン⽣成アルゴリズム、ランダムなド メイン⽂字列のためマルウェアの通信などに使わ れる)系の検知であれば、なにかがEC2等に侵⼊し ている可能性があるのでそちらも調査する

Slide 63

Slide 63 text

"ActionType": "AWS_API_CALL" 63 remoteIpや国などを取得する 実⾏しているAPIとエラーの有無も⼤事だが、可 能なら他にどんなAPI CALLをしているか CloudTrailで調査したい InstanceCredentialExfiltrationなら対象 RemoteAccountが既知か確かめる

Slide 64

Slide 64 text

”ActionType": "KUBERNETES_API_CALL" 64 kubernetesApiCallActionで何を実⾏したか取 得する userAgentやremoteIpDetailsから通信元を確 認する 基本はResource側のEksClusterDetailsと⼀緒 にチェックする

Slide 65

Slide 65 text

"ActionType": "RDS_LOGIN_ATTEMPT" 65 送信元のIPとOrganizationを確認する それぐらいしか情報は無い

Slide 66

Slide 66 text

“ActionType”: “なし” 66 これをどうすればいいか︖

Slide 67

Slide 67 text

Findingsの話(メイン) 新星FeatureName 67

Slide 68

Slide 68 text

FeatureNameとは︖ 68 GuardDuty Findingsの中に新しく出るようにな ったデータ $.Service.FeatureNameでアクセス おそらく$.Service.Actionの代わり︖ 今のところActionTypeがなしの場合、必ず FeatureNameがある しかしActionTypeもFeatureNameも両⽅ある 場合もある

Slide 69

Slide 69 text

FeatureName集計 69 EKS Runtimeに31個、Malwareに8個 EKSにはActionTypeがついているものがある

Slide 70

Slide 70 text

"FeatureName": "EbsVolumeScan" 70 $.Service.EbsVolumeScanDetails配下に詳細 あり FileNameやFilePathを取得する “Severity”: “HIGH”のファイルはほぼアウトな ので慎重に扱う EBSスナップショットの取得やEC2隔離のアクシ ョンに繋げていきたい

Slide 71

Slide 71 text

"FeatureName": "RuntimeMonitoring" 71 $Service.RuntimeDetailsから取得する ProcessではNameとExecutablePathからプロ セスの情報を取得する 実⾏Userも取得する Lineage配下にプロセスツリーがあるので 各ExecutablePathを並べてツリーを作る Contextでは出るものが⾊々あるのでがんばる

Slide 72

Slide 72 text

まとめ 72

Slide 73

Slide 73 text

GuardDutyマスターへの道 73 • GuardDuty Findingsの深淵を覗いて、攻撃⼿ 法と検知内容を熟知する • ⾃動化された処理⽅法を考え組み⽴てる • いざという時にこれを活かして対応する 君もGuardDutyマスターになってよ︕

Slide 74

Slide 74 text

74