Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GuardDutyの深淵を覗いて、君もGuardDutyマスターになろう!
Search
cm-usuda-keisuke
July 08, 2023
Technology
0
3.2k
GuardDutyの深淵を覗いて、君もGuardDutyマスターになろう!
DevelopersIO 2023で登壇した資料です。
解説は以下をご確認ください。
cm-usuda-keisuke
July 08, 2023
Tweet
Share
More Decks by cm-usuda-keisuke
See All by cm-usuda-keisuke
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
130
ツンデレなGuardDutyをプロデュースして世界一のアイドルにする話
cmusudakeisuke
0
510
GuardDutyを可視化して、君もGuardDutyマスターになろう!
cmusudakeisuke
1
1.1k
AWSセキュリティを「日本語で」学習していくための良いコンテンツをまとめてみた
cmusudakeisuke
1
16k
10分で完全に理解するGuardDutyのS3マルウェア保護
cmusudakeisuke
0
2.4k
AWSセンセーション 私とみんなが作ったAWSセキュリティ
cmusudakeisuke
3
4.6k
新しい初心者向けのSecurity-JAWSをやるよ!って話
cmusudakeisuke
0
1.2k
AWSセキュリティ成熟度モデルで自分たちのAWSセキュリティレベルを説明できるようにしてみよう
cmusudakeisuke
2
9.8k
re:Invent2023のセキュリティまとめしてGuardDutyとQとコストの話します
cmusudakeisuke
0
1.4k
Other Decks in Technology
See All in Technology
Security-JAWS【第35回】勉強会クラウドにおけるマルウェアやコンテンツ改ざんへの対策
4su_para
0
180
飲食店データの分析事例とそれを支えるデータ基盤
kimujun
0
190
生成AIが変えるデータ分析の全体像
ishikawa_satoru
0
170
あなたの知らない Function.prototype.toString() の世界
mizdra
PRO
1
230
AGIについてChatGPTに聞いてみた
blueb
0
130
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
160
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
700
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
130
DynamoDB でスロットリングが発生したとき/when_throttling_occurs_in_dynamodb_short
emiki
0
260
Zennのパフォーマンスモニタリングでやっていること
ryosukeigarashi
0
180
SSMRunbook作成の勘所_20241120
koichiotomo
3
160
Engineer Career Talk
lycorp_recruit_jp
0
190
Featured
See All Featured
BBQ
matthewcrist
85
9.3k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
Testing 201, or: Great Expectations
jmmastey
38
7.1k
Music & Morning Musume
bryan
46
6.2k
Code Review Best Practice
trishagee
64
17k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Docker and Python
trallard
40
3.1k
Automating Front-end Workflow
addyosmani
1366
200k
Producing Creativity
orderedlist
PRO
341
39k
Building Your Own Lightsaber
phodgson
103
6.1k
Typedesign – Prime Four
hannesfritz
40
2.4k
Transcript
GuardDutyの深淵を覗いて、 君もGuardDutyマスターになろう︕ 2023/07/08 臼田佳祐 #devio2023
みなさん、 GuardDutyと戯れてますか︖(挨拶 こんにちは、⾅⽥です。 2
⾃⼰紹介 ⾅⽥佳祐(うすだけいすけ) ・クラスメソッド株式会社 / 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
セッションタイトルと 概要ちゃんと確認しました︖ 前置きその1 4
こんなやつ 5
今回はすごくコアですよ︖ 覚悟してください 6
このセッションの楽しみ⽅ 7 • GuardDutyマニアの⼈と、とりあえずなんだか よくわからないけどニッチなことを話している のを聞くのが好きな⼈は楽しめるはず • おまけに最近のアップデートとかの話もありま す
合わせて読みたい 8 もう少し広いセキ ュリティ対策はだ いたいここに全部 ある https://dev.classmethod.jp/art icles/aws-security-all-in-one- 2021/
今回はなんで コアなテーマなのか︖ 前置きその2 9
いきなり宣伝で申し訳ないですが 10 セキュアアカウント インシデント⾃動調査機能を 提供開始しました (オープンベータ) 検知をトリガーに Trailやリソースを 調査して報告 https://classmethod.jp/aws/services/auto-investigation/
今回はつまり 11 弊社サービス提供のためにやっている GuardDuty基礎研究 の成果報告です チームメンバーにも感謝
アジェンダ 12 • GuardDutyのおさらい • 最近のアップデート(おまけ) • Findingsの話(メイン)
GuardDutyのおさらい 13
Amazon GuardDutyとは 14 • 脅威検知サービス • CloudTrail / VPC Flow
Logs / DNS Logsを バックグラウンドで⾃動収集(利⽤者の⼿間な し) • ポチッと有効化するだけ • IAM / EC2 / S3に関するインシデントを検知 • 脅威インテリジェンスと連携 • 機械学習による異常識別
GuardDutyの検知内容(ほんの⼀部) 15 IAMタイプ •不正ログイン •漏洩したクレデン シャル利⽤ •CloudTrail無効化 EC2タイプ •コインマイニング •C&Cサーバー接続
•SSHブルートフォ ース(受信 or 送信) S3タイプ •不⾃然なバケット 公開(情報漏えい) •Torアクセス
せっかくなのでアンケート 16 • GuardDuty有効化しているよって⼈ • 検知したものをみて対応したことがある⼈ • GUIで切り出されているものだけではなくFindings のJSONを直接調べたことがある⼈ •
⼿動での調査だけじゃなく、調査やその後の処理を ⾃動化したことがある⼈
ちなみに利⽤率の調査結果 17 301-500⼈規模の会社では86.67%とかなり⾼い、 全体でも約60%と割と⾼め
合わせて読みたい 18 AWSセキュリティの 実態を調査したレポー ト ⾃分たちの組織が周り よりできているのか、 客観的に評価できます https://dev.classmethod.jp/ articles/security_jaws_best_
practice_report/
合わせて読みたい 19 クラウドに限らないセ キュリティの⼤事なと ころから解説されてい る すべての⼈が読むべき 本 https://dev.classmethod.jp/ar ticles/start-cloud-security-
with-aws/
他のAWSサービスとの関連性 20 • Amazon Detective • GuardDutyで検知した内容の相関分析 • AWS Security
Hub • 連携したりしなかったり、チェック強め • AWS Organizations • 連携してマルチアカウント展開
最近のアップデート(おまけ) 21
対応しているタイプ 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/
対応しているタイプ 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/
最近のアップデート 24 https://dev.classmethod.jp/articles/aws-user- notifications-release/ https://dev.classmethod.jp/articles/update-amazon- guardduty-on-demand-malware-scan/
GuardDutyのサマリーダッシュボード 25
合わせて読みたい 26 各ウィジェットが役 に⽴つ 詳細はブログでどう ぞ 今すぐ活⽤できます https://dev.classmethod.jp/art icles/guardduty-summry- dashboard/
Findingsの話(メイン) 27
Findingsの話のアジェンダ 28 • Findings全般 • Findings集計結果 • Resource毎の⾒どころ • ActionType毎の⾒どころ
• 新星FeatureName
Findingsの話(メイン) Findings全般 29
まずは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
アーカイブされた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
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
ThreatPurposeとMITRE ATT&CK 33 ThreatPurposeの半分(9つ)が MITRE ATT&CKの戦術に当てはまる Matrix - Enterprise |
MITRE ATT&CK®: https://attack.mitre.org/matrices/enterprise/cloud/iaas/
Detectiveの検出結果グループによる可視化 34 複数のGuardDuty Findingsをまとめて分析し、グル ープにまとめてMITRE ATT&CKの戦術にマッピング して表⽰される ⼀連の攻撃の例として、EC2に対するポートプローブ から始まって、SSHブルートフォース成功、クレデン シャル漏洩するシナリオが発⽣しても流れを確認し
簡単にRoot Cause(原因)が確認できる
合わせて読みたい 35 他にも複数の Findingsにまたが るリソースなどの 相関を図にしてく れたりめちゃくち ゃいい機能 https://dev.classmethod.jp /articles/detective-
support-finding-group- visualization/
Detectiveの検出結果グループ 36 こんな感じ EC2とIPア ドレスが紐 づいたり、 IAM Role とEC2が紐 づいたり
Finding typesから抽出する正規表現 37 各要素を抜き出すための正規表現 CryptoCurrency:EC2/BitcoinTool.B!DNS ^(.+?):(.+?)/([^.!]+?)(?:|¥.([^!]+?))(?:|!(.+))$ オプションの有無も許容し、グループが適切に5つ の要素に割り当てられる(?:re)を利⽤すると⾮キ ャプチャグループとなり数えられない spreadsheetとPythonで確認済み
※¥はバックスラッシュです 他にいいやり⽅を知っていたら教えてください
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
サンプルFindingsの注意点 39 • 実際にFindingsを確認したいとき、攻撃を発⽣ させる必要は必ずしも無い • サンプルFindingsを出⼒できる • ただし、このフォーマットは実際の検知と乖離 がある場合があるので信⽤しすぎない
• 特にIAMやS3の検知に含まれるInstanceはい らない
合わせて読みたい 40 GUIからはでき ないが、CLIや SDKでは特定 のFinding Typesを指定 してリクエスト できる https://dev.classmethod.j
p/articles/create-a-single- sample-findings-in- guardduty/
Findingsの話(メイン) Findings集計結果 41
Findings集計結果 42 • スプレッドシートとピボットテーブルを⽤いて 正規表現等で処理したFindingsを集計分析しま した • たくさんあるFindingsの傾向を掴み、対策を考 える助けとするねらい
ThreatPurpose / リソースの種類 43 EC2とEKS Runtimeは同 じような項⽬ が多い IAMは幅広い タイプがある
ThreatFamilyName / リソースの種類 44 66種類中カバレッジが広いもの(使い回しが効く)
ThreatFamilyName / リソースの種類 45 残りはユニークなものばかり (40種類) ナレッジが使い回せないので 個別に攻撃内容を知る必要が ある
DetectionMechanism / リソースの種類 46 BとCはマルウェア 系の検知についてい るので、内部のエン ジンなりシグネチャ なりの違いかも それ以外の名前はわ
かりやすい
ArtifactがあるFinding types 47 すべてDNSのみ14個 EC2とRuntime(EKS)で全く同じ7つずつ
Findingsの話(メイン) Resource毎の⾒どころ 48
ResourceType 49 脅威の影響を受けているリソースのタイプ “Resource”配下にあり、”ResourceType”でど れか1つが指定されている Instance / AccessKey / S3Bucket
/ EKSCluster / ECSCluster / Container / RDSDBInstance / Lambda 複数のリソースが“Resource”配下にある場合も ある
"ResourceType": "Instance" 50 インスタンスIDが取得できるが、そんなことより タグの中からNameタグを頑張って取得する 起動時間は⾒覚えの無いインスタンス(不正に建て られたもの)かどうかを判断する材料になる セキュリティグループIDは取得できるが、ルール は直接取得できないので、⾃前実装で取りに⾏く といい
"ResourceType": "AccessKey" 51 UserNameをまずチェック AccessKeyIdはIAMの仕組み上ややこしいが、 よく使うIAM Userの永続的なアクセスキーなこ ともあるし、IAM Roleの⼀時的なキーのことも あるので名前から勘違いしないように気をつける
AccessKeyIdをCloudTrailでフィルターかける と、そのユーザーの操作が追えるのでやるべし
"ResourceType": "S3Bucket" 52 EffectivePermissionで不必要に公開されていな いか確認する だいたいAPI操作によるものであるため、 AccessKeyDetailsが⼀緒に出ている事が多いの でCloudTrailで操作を追うべし
"ResourceType": "EKSCluster" 53 Audit系ならkubernetesUserDetailsから操作 しているユーザー情報なども取得する AccessKeyもあるので⼀緒に取得する Runtime系ならKubernetesWorkloadDetails で対象のコンテナの種類や名前を確認する InstanceDetailsもあるので⼀緒に取得する
"ResourceType": "ECSCluster" 54 ほんとに検知できるのかわからない Malware Protectionの2つだけ対象 • Execution:Container/MaliciousFile • Execution:Container/SuspiciousFile
試してみるとEC2タイプで上がってくるので検知 させられなかった “ResourceType”: ”Container“も同じ
"ResourceType": "RDSDBInstance" 55 DbClusterIdentifierから識別⼦を取得する RdsDbUserDetailsが⼀緒に出⼒されているので ユーザー名や接続したDatabaseなども⼀緒に取 得する
"ResourceType": "Lambda" 56 FunctionNameを取得する 実際の脅威であれば、Lambdaコードに何かしら 仕込まれているのでLastModifiedAtも気にする VPC LambdaであればVpcConfigを取得する 基本Lambda->外部通信での検知なのでリソース 側でチェックすることは少ない
Findingsの話(メイン) ActionType毎の⾒どころ 57
ActionType / リソースの種類 58 ⼤体リソース種類毎に偏りがある ActionTypeが無いのもある
ActionTypeの種類 59 • NETWORK_CONNECTION • PORT_PROBE • DNS_REQUEST • AWS_API_CALL
• KUBERNETES_API_CALL • RDS_LOGIN_ATTEMPT • なし
"ActionType": "NETWORK_CONNECTION" 60 対象のIP:PORTと、通信がIN/OUTどちらか 通信の⽅向はFinding types毎通常決まっている が、ブルートフォース等がOUTBOUNDの時はす ごくまずいので気をつける 対象IPから出る国や都市が⽇本外など、普段対象 としないものかどうか
"ActionType": "PORT_PROBE" 61 2種類のFinding typesのみでわりと⾒ない おそらくProbeされる前に最初からBruteForce されているから 出るときは不必要なポートが空いているので、別 経路でSecurity Groupのルールも取得必須
"ActionType": "DNS_REQUEST" 62 Domain / Protocolをそれぞれ取得する ドメイン調査時にうっかりアクセスしないように 気をつける DGA(ドメイン⽣成アルゴリズム、ランダムなド メイン⽂字列のためマルウェアの通信などに使わ
れる)系の検知であれば、なにかがEC2等に侵⼊し ている可能性があるのでそちらも調査する
"ActionType": "AWS_API_CALL" 63 remoteIpや国などを取得する 実⾏しているAPIとエラーの有無も⼤事だが、可 能なら他にどんなAPI CALLをしているか CloudTrailで調査したい InstanceCredentialExfiltrationなら対象 RemoteAccountが既知か確かめる
”ActionType": "KUBERNETES_API_CALL" 64 kubernetesApiCallActionで何を実⾏したか取 得する userAgentやremoteIpDetailsから通信元を確 認する 基本はResource側のEksClusterDetailsと⼀緒 にチェックする
"ActionType": "RDS_LOGIN_ATTEMPT" 65 送信元のIPとOrganizationを確認する それぐらいしか情報は無い
“ActionType”: “なし” 66 これをどうすればいいか︖
Findingsの話(メイン) 新星FeatureName 67
FeatureNameとは︖ 68 GuardDuty Findingsの中に新しく出るようにな ったデータ $.Service.FeatureNameでアクセス おそらく$.Service.Actionの代わり︖ 今のところActionTypeがなしの場合、必ず FeatureNameがある しかしActionTypeもFeatureNameも両⽅ある
場合もある
FeatureName集計 69 EKS Runtimeに31個、Malwareに8個 EKSにはActionTypeがついているものがある
"FeatureName": "EbsVolumeScan" 70 $.Service.EbsVolumeScanDetails配下に詳細 あり FileNameやFilePathを取得する “Severity”: “HIGH”のファイルはほぼアウトな ので慎重に扱う EBSスナップショットの取得やEC2隔離のアクシ
ョンに繋げていきたい
"FeatureName": "RuntimeMonitoring" 71 $Service.RuntimeDetailsから取得する ProcessではNameとExecutablePathからプロ セスの情報を取得する 実⾏Userも取得する Lineage配下にプロセスツリーがあるので 各ExecutablePathを並べてツリーを作る Contextでは出るものが⾊々あるのでがんばる
まとめ 72
GuardDutyマスターへの道 73 • GuardDuty Findingsの深淵を覗いて、攻撃⼿ 法と検知内容を熟知する • ⾃動化された処理⽅法を考え組み⽴てる • いざという時にこれを活かして対応する
君もGuardDutyマスターになってよ︕
74