AWS - GuardDuty Enum
GuardDuty
ドキュメントによると、GuardDutyは、機械学習、異常検知、ネットワーク監視、および悪意のあるファイルの発見を組み合わせ、AWSおよび業界をリードするサードパーティソースを使用して、AWS上のワークロードとデータを保護するのに役立ちます。 GuardDutyは、AWS CloudTrailイベントログ、Amazon Virtual Private Cloud(VPC)Flow Logs、Amazon Elastic Kubernetes Service(EKS)監査およびシステムレベルログ、およびDNSクエリログなど、複数のAWSデータソース全体で数十億のイベントを分析できます。
Amazon GuardDutyは、アカウント内での異常なアクティビティを特定し、そのアクティビティのセキュリティの関連性を分析し、それが呼び出されたコンテキストを提供します。これにより、対応者はさらなる調査に時間を費やす必要があるかどうかを判断できます。
アラートは、GuardDutyコンソール(90日間)およびCloudWatch Eventsに表示されます。
ユーザーがGuardDutyを無効にすると、AWS環境の監視が停止され、新しい調査結果は生成されません。また、既存の調査結果が失われます。 単に停止するだけの場合は、既存の調査結果は残ります。
調査結果の例
偵察: 攻撃者による偵察を示唆するアクティビティ、例えば異常なAPIアクティビティ、疑わしいデータベースのログイン試行、VPC内部のポートスキャン、異常な失敗したログインリクエストパターン、既知の悪意のあるIPからの未処理のポートプロービングなど。
インスタンスの侵害: インスタンスの侵害を示すアクティビティ、例えば暗号通貨の採掘、バックドアのコマンド制御(C&C)アクティビティ、ドメイン生成アルゴリズム(DGA)を使用したマルウェア、外部からのサービス拒否アクティビティ、異常に高いネットワークトラフィック量、異常なネットワークプロトコル、既知の悪意のあるIPとのアウトバウンドインスタンス通信、一時的なAmazon EC2資格情報を使用した外部IPアドレス、およびDNSを使用したデータの外部への持ち出し。
アカウントの侵害: アカウントの侵害を示す一般的なパターンには、異常な地理的位置情報や匿名プロキシからのAPI呼び出し、AWS CloudTrailログの無効化を試みる、アカウントパスワードポリシーを弱体化する変更、異常なインスタンスまたはインフラストラクチャの起動、異常な地域でのインフラストラクチャ展開、資格情報の盗難、疑わしいデータベースログインアクティビティ、既知の悪意のあるIPアドレスからのAPI呼び出しなどが含まれます。
バケットの侵害: バケットの侵害を示すアクティビティ、例えば資格情報の誤用を示す疑わしいデータアクセスパターン、リモートホストからの異常なAmazon S3 APIアクティビティ、既知の悪意のあるIPアドレスからの不正なS3アクセス、バケットへのデータの取得を目的としたAPI呼び出し(バケットへのアクセス履歴がないユーザーからのものまたは異常な場所から呼び出されたもの)などが含まれます。 Amazon GuardDutyは、すべてのAmazon S3バケットで疑わしいアクティビティを検出するためにAWS CloudTrail S3データイベント(例:GetObject、ListObjects、DeleteObject)を継続的に監視および分析します。
すべての調査結果
GuardDutyのすべての調査結果のリストにアクセス:https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html
複数のアカウント
招待による
他のアカウントを異なるAWS GuardDutyアカウントに招待して、すべてのアカウントが同じGuardDutyから監視されるようにすることができます。マスターアカウントはメンバーアカウントを招待し、その後、メンバーアカウントの代表者が招待を受け入れる必要があります。
組織を通じて
組織内の任意のアカウントをGuardDuty委任管理者に指定できます。委任管理者を指定できるのは組織管理アカウントだけです。
委任管理者として指定されたアカウントは、GuardDuty管理者アカウントとなり、指定されたAWSリージョンでGuardDutyが自動的に有効になり、そのリージョン内の組織内のすべてのアカウントのGuardDutyを有効にしたり管理する権限を持ちます。組織内の他のアカウントは、この委任管理者アカウントに関連付けられたGuardDutyメンバーアカウントとして表示および追加できます。
列挙
GuardDuty バイパス
一般的なガイダンス
使用する資格情報の動作について可能な限り多くの情報を収集しよう:
使用される時間帯
場所
ユーザーエージェント / サービス(awscli、webconsole、lambdaなどから使用される可能性があります)
定期的に使用される権限
この情報を元に、アクセスを利用するためにできるだけ同じシナリオを再現しよう:
ユーザーまたはユーザーによってアクセスされるロールの場合、同じ時間帯に、同じ地理的位置から使用しよう(可能であれば同じISPおよびIPから)
サービスによって使用されるロールの場合、同じリージョンで同じサービスを作成し、同じ時間帯にそこから使用しよう
常にこの主体が使用した同じ権限を使用しよう
他の権限を使用する必要がある場合や権限を悪用する場合(たとえば、1,000,000のcloudtrailログファイルをダウンロードする)は、ゆっくりかつAWSとの最小限のやり取りで行おう(awscliは書き込みAPIの前に複数の読み取りAPIを呼び出すことがある)
GuardDuty の回避
guardduty:UpdateDetector
guardduty:UpdateDetector
この権限を使用すると、アラートをトリガーさせるのを避けるためにGuardDutyを無効にすることができます。
guardduty:CreateFilter
guardduty:CreateFilter
この権限を持つ攻撃者は、調査結果の自動アーカイブ用のフィルターを適用する能力を持っています:
guardduty:DeletePublishingDestination
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リクエストで渡されるユーザーエージェント名によって検出されます。 したがって、攻撃を検出されないようにするには、ユーザーエージェントを変更することが可能です。
これを防ぐためには、botocore
パッケージ内のsession.py
スクリプトを検索してユーザーエージェントを変更したり、AWS CLIプロキシとしてBurp Suiteを設定してユーザーエージェントをMitMで変更したり、Ubuntu、Mac、WindowsなどのOSを使用してこのアラートがトリガーされないようにすることができます。
UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration
メタデータサービスからEC2資格情報を抽出し、AWS環境外でそれらを利用すると、UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS
アラートが発生します。逆に、EC2インスタンスからこれらの資格情報を利用すると、UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.InsideAWS
アラートがトリガーされます。しかし、同じアカウント内の別の侵害されたEC2インスタンスで資格情報を使用すると検出されず、アラートが発生しません。
したがって、見つけたマシン内から抽出された資格情報を使用してアラートをトリガーしないようにしてください。
参考文献
最終更新