AWS - GuardDuty Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
According to the docs: GuardDutyは、機械学習、異常検知、ネットワーク監視、悪意のあるファイル発見を組み合わせ、AWSおよび業界の主要なサードパーティソースを使用して、AWS上のワークロードとデータを保護します。GuardDutyは、AWS CloudTrailイベントログ、Amazon Virtual Private Cloud (VPC)フローログ、Amazon Elastic Kubernetes Service (EKS)監査およびシステムレベルのログ、DNSクエリログなど、複数のAWSデータソースにわたって数十億のイベントを分析することができます。
Amazon GuardDutyは、アカウント内の異常な活動を特定し、その活動のセキュリティ関連性を分析し、呼び出されたコンテキストを提供します。これにより、応答者はさらなる調査に時間を費やすべきかどうかを判断できます。
アラートは**GuardDutyコンソール(90日間)**およびCloudWatch Eventsに表示されます。
ユーザーがGuardDutyを無効にすると、AWS環境の監視が停止し、新しい発見は一切生成されず、既存の発見は失われます。 ただ停止するだけであれば、既存の発見は残ります。
偵察: 攻撃者による偵察を示唆する活動、例えば異常なAPI活動、疑わしいデータベースログイン試行、VPC内のポートスキャン、異常な失敗したログイン要求パターン、または既知の悪意のあるIPからのブロックされていないポートのプロービング。
インスタンスの侵害: インスタンスの侵害を示す活動、例えば暗号通貨マイニング、バックドアコマンドおよびコントロール(C&C)活動、ドメイン生成アルゴリズム(DGA)を使用するマルウェア、外向きのサービス拒否活動、異常に高いネットワークトラフィック量、異常なネットワークプロトコル、既知の悪意のあるIPとの外向きインスタンス通信、外部IPアドレスによって使用される一時的なAmazon EC2資格情報、DNSを使用したデータの流出。
アカウントの侵害: アカウントの侵害を示す一般的なパターンには、異常な地理的位置または匿名プロキシからのAPI呼び出し、AWS CloudTrailログの無効化の試み、アカウントパスワードポリシーを弱める変更、異常なインスタンスまたはインフラの起動、異常な地域でのインフラ展開、資格情報の盗難、疑わしいデータベースログイン活動、既知の悪意のあるIPアドレスからのAPI呼び出しが含まれます。
バケットの侵害: 資格情報の誤用を示す疑わしいデータアクセスパターン、リモートホストからの異常なAmazon S3 API活動、既知の悪意のあるIPアドレスからの無許可のS3アクセス、またはバケットにアクセスした前歴のないユーザーからのS3バケット内のデータを取得するためのAPI呼び出しを示す活動。Amazon GuardDutyは、すべてのAmazon S3バケットにわたって疑わしい活動を検出するために、AWS CloudTrail S3データイベント(例:GetObject、ListObjects、DeleteObject)を継続的に監視および分析します。
Access a list of all the GuardDuty findings in: https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html
他のアカウントを異なるAWS GuardDutyアカウントに招待することができ、すべてのアカウントが同じGuardDutyから監視されます。マスターアカウントがメンバーアカウントを招待し、メンバーアカウントの代表者が招待を受け入れる必要があります。
組織内の任意のアカウントをGuardDutyの委任管理者として指定できます。委任管理者を指定できるのは、組織の管理アカウントのみです。
委任管理者として指定されたアカウントは、GuardDuty管理者アカウントとなり、指定されたAWSリージョンでGuardDutyが自動的に有効になり、そのリージョン内のすべてのアカウントに対してGuardDutyを有効にし、管理する権限を持ちます。組織内の他のアカウントは、この委任管理者アカウントに関連付けられたGuardDutyメンバーアカウントとして表示および追加できます。
使用する資格情報の動作についてできるだけ多くの情報を収集してください:
使用される時間
場所
ユーザーエージェント / サービス(awscli、webconsole、lambdaなどから使用される可能性があります)
定期的に使用される権限
この情報をもとに、アクセスを使用するためにできるだけ同じシナリオを再現してください:
ユーザーによってアクセスされるユーザーまたはロールの場合、同じ時間帯、同じ地理的位置(可能であれば同じISPとIPから)で使用してください
サービスによって使用されるロールの場合、同じリージョンに同じサービスを作成し、同じ時間帯からそこから使用してください
このプリンシパルが使用した同じ権限を常に使用するようにしてください
他の権限を使用する必要がある場合や権限を悪用する必要がある場合(例えば、1,000,000のcloudtrailログファイルをダウンロードするなど)、ゆっくり行い、AWSとの最小限のインタラクションで行ってください(awscliは時々、書き込みの前にいくつかの読み取りAPIを呼び出します)
guardduty:UpdateDetector
この権限を使用すると、アラートをトリガーしないようにGuardDutyを無効にすることができます。
guardduty:CreateFilter
この権限を持つ攻撃者は、発見の自動アーカイブのためのフィルターを使用する能力があります:
iam:PutRolePolicy
, (guardduty:CreateIPSet
|guardduty:UpdateIPSet
)以前の権限を持つ攻撃者は、GuardDutyの信頼されたIPリストを変更し、自分のIPアドレスを追加することでアラートの生成を回避することができます。
guardduty:DeletePublishingDestination
攻撃者はアラートを防ぐために宛先を削除する可能性があります:
この公開先を削除しても、GuardDutyコンソール内の発見の生成や可視性には影響しません。GuardDutyは引き続き、AWS環境内のイベントを分析し、疑わしいまたは予期しない動作を特定し、発見を生成します。
GuardDutyの発見は数十種類ありますが、Red Teamerとしてはすべてがあなたに影響を与えるわけではありません。さらに良いことに、各発見の完全なドキュメントが https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html にあるので、行動を起こす前に確認して捕まらないようにしてください。
ここに特定のGuardDuty発見のバイパスのいくつかの例があります:
GuardDutyは一般的なペネトレーションテストツールからのAWS APIリクエストを検出し、PenTest Findingをトリガーします。 これは、APIリクエストに渡されるユーザーエージェント名によって検出されます。 したがって、ユーザーエージェントを変更することで、GuardDutyが攻撃を検出するのを防ぐことが可能です。
これを防ぐためには、botocore
パッケージ内のsession.py
スクリプトを検索してユーザーエージェントを変更するか、Burp SuiteをAWS CLIプロキシとして設定し、MitMでユーザーエージェントを変更するか、またはUbuntu、Mac、WindowsのようなOSを使用することで、このアラートがトリガーされるのを防ぐことができます。
EC2のメタデータサービスから資格情報を抽出し、AWS環境外で利用すると、UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS
アラートが発動します。逆に、これらの資格情報をEC2インスタンスから使用すると、UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.InsideAWS
アラートがトリガーされます。しかし、同じアカウント内の別の侵害されたEC2インスタンスで資格情報を使用すると、検出されず、アラートは発生しません。
したがって、見つけた機械の内部から抽出された資格情報を使用することで、このアラートをトリガーしないようにしてください。
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)