AWS - DynamoDB Post Exploitation
DynamoDB
자세한 정보는 다음을 확인하십시오:
AWS - DynamoDB Enumdynamodb:BatchGetItem
dynamodb:BatchGetItem
이 권한을 가진 공격자는 기본 키로 테이블에서 항목을 가져올 수 있습니다 (테이블의 모든 데이터를 요청할 수는 없습니다). 이는 기본 키를 알아야 한다는 것을 의미합니다 (테이블 메타데이터를 가져와서 얻을 수 있습니다 (describe-table
).
잠재적 영향: 테이블에서 민감한 정보를 찾아 간접적인 권한 상승
dynamodb:GetItem
dynamodb:GetItem
이전 권한과 유사하게 이 권한은 잠재적 공격자가 항목을 검색하기 위해 주 키가 주어진 경우 단일 테이블에서 값을 읽을 수 있게 합니다:
이 권한으로 transact-get-items
메서드를 다음과 같이 사용할 수도 있습니다:
잠재적 영향: 테이블에서 민감한 정보를 찾아 간접적으로 권한 상승
dynamodb:Query
dynamodb:Query
이전 권한과 유사하게 이 권한은 잠재적 공격자가 주어진 기본 키를 통해 단일 테이블에서 값을 읽을 수 있게 합니다. 비교의 하위 집합을 사용할 수 있지만, 기본 키와 함께 허용되는 유일한 비교는 "EQ"입니다. 따라서 요청에서 전체 DB를 가져오기 위한 비교는 사용할 수 없습니다.
Potential Impact: 테이블에서 민감한 정보를 찾아 간접적으로 권한 상승
dynamodb:Scan
dynamodb:Scan
이 권한을 사용하여 전체 테이블을 쉽게 덤프할 수 있습니다.
잠재적 영향: 테이블에서 민감한 정보를 찾아 간접적인 권한 상승
dynamodb:PartiQLSelect
dynamodb:PartiQLSelect
이 권한을 사용하여 전체 테이블을 쉽게 덤프할 수 있습니다.
이 권한은 또한 batch-execute-statement
을 수행할 수 있게 합니다:
하지만 값을 가진 기본 키를 지정해야 하므로 그다지 유용하지 않습니다.
잠재적 영향: 테이블에서 민감한 정보를 찾아 간접적인 권한 상승
dynamodb:ExportTableToPointInTime|(dynamodb:UpdateContinuousBackups)
dynamodb:ExportTableToPointInTime|(dynamodb:UpdateContinuousBackups)
이 권한은 공격자가 선택한 S3 버킷으로 전체 테이블을 내보낼 수 있게 합니다:
테이블이 point-in-time-recovery가 활성화되어 있어야 작동합니다. 테이블에 point-in-time-recovery가 활성화되어 있는지 확인하려면 다음을 사용하십시오:
만약 활성화되지 않았다면, 활성화해야 하며, 이를 위해서는 dynamodb:ExportTableToPointInTime
권한이 필요합니다:
잠재적 영향: 테이블에서 민감한 정보를 찾아 간접적으로 권한 상승
dynamodb:CreateTable
, dynamodb:RestoreTableFromBackup
, (dynamodb:CreateBackup)
dynamodb:CreateTable
, dynamodb:RestoreTableFromBackup
, (dynamodb:CreateBackup)
이 권한을 통해 공격자는 백업에서 새로운 테이블을 생성할 수 있습니다(또는 백업을 생성하여 다른 테이블에 복원할 수도 있습니다). 그런 다음 필요한 권한을 가지고 백업에서 프로덕션 테이블에 더 이상 존재하지 않는 정보를 확인할 수 있습니다.
잠재적 영향: 테이블 백업에서 민감한 정보를 찾아 간접적으로 권한 상승
dynamodb:PutItem
dynamodb:PutItem
이 권한은 사용자가 테이블에 새 항목을 추가하거나 기존 항목을 새 항목으로 교체할 수 있게 합니다. 동일한 기본 키를 가진 항목이 이미 존재하는 경우, 전체 항목이 새 항목으로 교체됩니다. 기본 키가 존재하지 않으면 지정된 기본 키를 가진 새 항목이 생성됩니다.
잠재적 영향: DynamoDB 테이블에서 데이터를 추가/수정할 수 있어 추가적인 취약점/우회 공격 가능
dynamodb:UpdateItem
dynamodb:UpdateItem
이 권한은 사용자가 항목의 기존 속성을 수정하거나 항목에 새로운 속성을 추가할 수 있게 합니다. 전체 항목을 대체하지 않으며, 지정된 속성만 업데이트합니다. 기본 키가 테이블에 존재하지 않으면, 이 작업은 지정된 기본 키로 새 항목을 생성하고 업데이트 표현식에 지정된 속성을 설정합니다.
잠재적 영향: DynamoDB 테이블에 데이터를 추가/수정할 수 있어 추가 취약점/우회점을 악용할 수 있음
dynamodb:DeleteTable
dynamodb:DeleteTable
이 권한을 가진 공격자는 DynamoDB 테이블을 삭제하여 데이터 손실을 초래할 수 있음.
잠재적 영향: 데이터 손실 및 삭제된 테이블에 의존하는 서비스의 중단.
dynamodb:DeleteBackup
dynamodb:DeleteBackup
이 권한을 가진 공격자는 DynamoDB 백업을 삭제하여 재해 복구 시나리오에서 데이터 손실을 초래할 수 있습니다.
잠재적 영향: 데이터 손실 및 재해 복구 시나리오에서 백업 복구 불가능.
dynamodb:StreamSpecification
, dynamodb:UpdateTable
, dynamodb:DescribeStream
, dynamodb:GetShardIterator
, dynamodb:GetRecords
dynamodb:StreamSpecification
, dynamodb:UpdateTable
, dynamodb:DescribeStream
, dynamodb:GetShardIterator
, dynamodb:GetRecords
TODO: 실제로 작동하는지 테스트 필요
이 권한을 가진 공격자는 DynamoDB 테이블에 스트림을 활성화하고, 테이블을 업데이트하여 변경 사항 스트리밍을 시작한 후, 스트림에 접근하여 테이블 변경 사항을 실시간으로 모니터링할 수 있습니다. 이를 통해 공격자는 데이터 변경 사항을 모니터링하고 유출할 수 있으며, 이는 데이터 유출로 이어질 수 있습니다.
DynamoDB 테이블에 스트림 활성화:
스트림을 설명하여 ARN 및 기타 세부 정보를 얻습니다:
스트림 ARN을 사용하여 샤드 이터레이터 가져오기:
샤드 이터레이터를 사용하여 스트림에서 데이터를 접근하고 유출합니다:
잠재적 영향: DynamoDB 테이블 변경 사항의 실시간 모니터링 및 데이터 유출.
Last updated