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.3k
GuardDutyの深淵を覗いて、君もGuardDutyマスターになろう!
DevelopersIO 2023で登壇した資料です。
解説は以下をご確認ください。
cm-usuda-keisuke
July 08, 2023
Tweet
Share
More Decks by cm-usuda-keisuke
See All by cm-usuda-keisuke
新機能Amazon GuardDuty Extended Threat Detectionはネ申って話
cmusudakeisuke
0
540
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
200
ツンデレなGuardDutyをプロデュースして世界一のアイドルにする話
cmusudakeisuke
0
540
GuardDutyを可視化して、君もGuardDutyマスターになろう!
cmusudakeisuke
1
1.2k
AWSセキュリティを「日本語で」学習していくための良いコンテンツをまとめてみた
cmusudakeisuke
1
16k
10分で完全に理解するGuardDutyのS3マルウェア保護
cmusudakeisuke
0
2.5k
AWSセンセーション 私とみんなが作ったAWSセキュリティ
cmusudakeisuke
3
4.6k
新しい初心者向けのSecurity-JAWSをやるよ!って話
cmusudakeisuke
0
1.2k
AWSセキュリティ成熟度モデルで自分たちのAWSセキュリティレベルを説明できるようにしてみよう
cmusudakeisuke
2
10k
Other Decks in Technology
See All in Technology
宇宙ベンチャーにおける最近の情シス取り組みについて
axelmizu
0
120
あの日俺達が夢見たサーバレスアーキテクチャ/the-serverless-architecture-we-dreamed-of
tomoki10
0
500
LINEスキマニにおけるフロントエンド開発
lycorptech_jp
PRO
0
340
DevFest 2024 Incheon / Songdo - Compose UI 조합 심화
wisemuji
0
160
小学3年生夏休みの自由研究「夏休みに Copilot で遊んでみた」
taichinakamura
0
180
組織に自動テストを書く文化を根付かせる戦略(2024冬版) / Building Automated Test Culture 2024 Winter Edition
twada
PRO
18
5.6k
PHP ユーザのための OpenTelemetry 入門 / phpcon2024-opentelemetry
shin1x1
3
1.4k
継続的にアウトカムを生み出し ビジネスにつなげる、 戦略と運営に対するタイミーのQUEST(探求)
zigorou
0
830
re:Invent をおうちで楽しんでみた ~CloudWatch のオブザーバビリティ機能がスゴい!/ Enjoyed AWS re:Invent from Home and CloudWatch Observability Feature is Amazing!
yuj1osm
0
140
pg_bigmをRustで実装する(第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
shinyakato_
0
110
いまからでも遅くないコンテナ座学
nomu
0
130
Wantedly での Datadog 活用事例
bgpat
2
690
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Facilitating Awesome Meetings
lara
50
6.1k
We Have a Design System, Now What?
morganepeng
51
7.3k
Optimizing for Happiness
mojombo
376
70k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
810
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.3k
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
What's in a price? How to price your products and services
michaelherold
244
12k
KATA
mclloyd
29
14k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
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