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
ツンデレな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.5k
新しい初心者向けのSecurity-JAWSをやるよ!って話
cmusudakeisuke
0
1.2k
AWSセキュリティ成熟度モデルで自分たちのAWSセキュリティレベルを説明できるようにしてみよう
cmusudakeisuke
2
9.8k
re:Invent2023のセキュリティまとめしてGuardDutyとQとコストの話します
cmusudakeisuke
0
1.4k
AWSセキュリティサービス最新アップデート
cmusudakeisuke
2
1.7k
Other Decks in Technology
See All in Technology
インフラとバックエンドとフロントエンドをくまなく調べて遅いアプリを早くした件
tubone24
1
390
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
5
430
Terraform未経験の御様に対してどの ように導⼊を進めていったか
tkikuchi
2
380
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
270
なぜ今 AI Agent なのか _近藤憲児
kenjikondobai
3
1.2k
Windows Autopilot Deployment by OSD Guy
tamaiyutaro
0
400
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
280
スクラム成熟度セルフチェックツールを作って得た学びとその活用法
coincheck_recruit
1
110
Platform Engineering for Software Developers and Architects
syntasso
1
460
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
iotengineer22
0
310
組み込みLinuxの時系列
puhitaku
4
1.1k
データ活用促進のためのデータ分析基盤の進化
takumakouno
2
840
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
Building Adaptive Systems
keathley
38
2.3k
Thoughts on Productivity
jonyablonski
67
4.3k
Speed Design
sergeychernyshev
24
610
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
The Pragmatic Product Professional
lauravandoore
31
6.3k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
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