Serverloze overprivilege
Een functie is een principal en de referenties ervan zijn ambient.
Wat is Serverloze overprivilege?
Een functie is een opdrachtgever. De inloggegevens voor de uitvoeringsrol zijn ambient, dus iedereen die de functie kan laten uitvoeren, behoudt de rol zonder iets te stelen. Dat is prima totdat een afbeeldingsresizer rechten voor het hele account heeft, geheimen in omgevingsvariabelen bewaart en niet-geverifieerde verzoeken accepteert. U ziet de functie-URL in het browsernetwerkpaneel, activeert een overgebleven foutopsporingsvlag die de omgeving dumpt en leest een productiegeheim als de functie. Vervolgens bepaal je de rol, heb je IAM-authenticatie nodig en verplaats je geheimen naar een managerreferentie.
Wat je leert in Serverloze overprivilege
- Een functie is een opdrachtgever en de referenties ervan zijn ambient, dus het uitvoeren van code in de functie geeft onmiddellijke toegang tot zijn rol.
- Geheimen in omgevingsvariabelen zijn zichtbaar voor iedereen die de functieconfiguratie kan lezen, en komen naar boven in de diagnostiek.
- Een niet-geverifieerde functie-URL verandert een interne verkeerde configuratie in een configuratie die via internet bereikbaar is.
- Het afbakenen van de rol is het belangrijkst, omdat het de schade beperkt wanneer de andere twee controles falen.
Serverloze overprivilege — Trainingsstappen
-
Begin waar iedereen kan kijken
Bob is niet in Vaelrick. Hij bevindt zich op hun openbare site met vastgoedadvertenties, dezelfde pagina die elke koper ziet. Er is hier niets bevoorrecht - en dat is precies waarom hij hier begint.
-
Let op waar de pagina om vraagt
Bob opent het netwerkpaneel van de browser en laadt de pagina opnieuw, zodat hij de verzoeken kan zien die de galerij doet voordat er een afbeelding verschijnt.
-
Het beantwoordt iedereen
Bob roept het eindpunt rechtstreeks vanaf zijn eigen machine aan, zonder enige inloggegevens.
-
De debug-vlag dumpt zijn identiteit
Bob voegt de debug-parameter toe waarover de site hem heeft verteld. De functie drukt de hele omgeving af.
-
Zet de identiteit van de functie op
De drie AWS_-waarden uit de dump vormen een complete, werkende set tijdelijke inloggegevens. Bob laadt ze in een benoemd profiel op zijn eigen machine, en vanaf dat moment kan zijn CLI als functie fungeren.
-
Word de functie
Het profiel is geladen. Bob stelt AWS de eerste vraag die een aanvaller stelt met een nieuwe set inloggegevens: wie ben ik nu?
-
Hoe ver reikt een thumbnailmaker?
Een functie die miniaturen schrijft, zou één bucket moeten zien. Bob vraagt om ze allemaal.
-
Neem de kroonjuwelen
Bob gebruikt de rol om een geheim te lezen dat niets te maken heeft met het wijzigen van het formaat van afbeeldingen.
-
Welke storing heeft de schade veroorzaakt?
Noem vóór het antwoord waardoor een gelekt eindpunt in een productiefout is veranderd.
-
Iemand gebruikt onze Stripe-sleutel
De betalingsverwerker van Vaelrick markeerde API-oproepen die waren ondertekend met hun livesleutel vanaf een onbekend adres. Die sleutel woont in Secrets Manager, wat de veilige plek ervoor zou moeten zijn.
Dekking van beveiligingsframeworks
CWE
- CWE-250 Execution with Unnecessary Privileges
- CWE-522 Insufficiently Protected Credentials
MITRE ATT&CK
- T1552 Unsecured Credentials
- T1078.004 Valid Accounts: Cloud Accounts
CIS Controls
- CIS 6 Access Control Management
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- PR.AA Identity Management, Authentication, and Access Control