Testování bezpečnosti serverless aplikací: Lambda, Functions a Cloud Run

Testování rolí pro spouštění
Každá serverless funkce běží s rolí IAM, která definuje, ke kterým cloudovým zdrojům má přístup. Testování vyhodnocuje, zda role dodržují princip nejmenších privilegií, zda funkce sdílejí role (což zvětšuje rozsah dopadu) a zda oprávnění rolí umožňují eskalaci privilegií prostřednictvím řetězení služeb.
Injekce událostí ze zdroje
Serverless funkce jsou spouštěny událostmi – požadavky API Gateway, nahráváním do S3, zprávami SQS, událostmi CloudWatch. Každý zdroj události je potenciální injekční vektor. Testování vyhodnocuje ověření vstupu na úrovni zdroje události, nejen v kódu funkce.
Proměnné prostředí a tajné klíče
Funkce často ukládají konfiguraci a tajné klíče v proměnných prostředí – viditelné pro každého, kdo má přístup pro čtení funkce. Testování kontroluje tajné klíče v prostém textu, odhalení citlivé konfigurace a zda funkce používají správné řízení tajných klíčů (Secrets Manager, Parameter Store, Key Vault) namísto proměnných prostředí.
Zneužití studeného startu a vypršení časového limitu
Serverless funkce mají limity doby provádění a chování při studeném startu, které vytvářejí jedinečné vektory útoku typu denial-of-service a timing attack. Testování vyhodnocuje limity zdrojů, nastavení souběžnosti a zda chování při vypršení časového limitu odhaluje částečný stav.
Serverless testování s Penetrify
Testování serverless zabezpečení pomocí Penetrify pokrývá Lambda, Azure Functions a Cloud Functions s analýzou rolí pro spouštění, testováním injekce událostí ze zdroje, vyhodnocením správy tajných klíčů a posouzením cest útoku mezi službami.
Závěr
Serverless neznamená absenci zabezpečení. Funkce dědí riziko prostřednictvím svých rolí pro spouštění, zdrojů událostí a konfigurací prostředí. Penetrify testuje všechny tři vrstvy.