Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Securing your Lambda 101

Avatar for Ilia Ilia
June 15, 2025

Securing your Lambda 101

This presentation was showed on Bsides Yerevan 2025. You can find the notes on this talk on blog.chillz.work/posts/securing-your-lambda-101-talk/

Avatar for Ilia

Ilia

June 15, 2025
Tweet

Other Decks in Technology

Transcript

  1. :~/$whoami • Security Engineer @Yandex Cloud • Author of quite

    a few articles on macOS malware • Former macOS malware analyst @Kaspersky • /in/mogilin/ 2
  2. • What are AWS Lambdas? • Why go serverless? •

    How do Lambdas work? • Security and risk assessment • Case 1: Abusing environment secrets • Case 2: Abusing request forgery + demo • Case 3: Avoiding fork bombs • Questions and feedback Agenda 3
  3. AWS Lambda is a compute service that runs your code

    in response to events and automatically manages the compute resources, making it the fastest way to turn an idea into a modern, production, serverless applications. What are AWS Lambdas? 4
  4. • Cost-e ff ective. Pay as you go • No

    ops. No need to provision additional resources, k8s- clusters, schedulers Why go serverless? 10
  5. • Cost-e ff ective. Pay as you go • No

    ops. No need to provision additional resources, k8s- clusters, schedulers • Speed. Lambda functions provide cached runtime Why go serverless? 11
  6. • Cost-e ff ective. Pay as you go • No

    ops. No need to provision additional resources, k8s- clusters, schedulers • Speed. Lambda functions provide cached runtime • Scalability. Let your CSP handle the scaling Why go serverless? 12
  7. How do Lambdas work? 14 import json import logging logger

    = logging.getLogger() logger.setLevel(logging.INFO) def lambda_handler(event, context): # main code goes here… Init section Function-handler of the event Your_code.zip
  8. How do Lambdas work? 15 import json import logging logger

    = logging.getLogger() logger.setLevel(logging.INFO) def lambda_handler(event, context): # main code goes here… Init section Function-handler of the event Your_code.zip context includes: • function ARN • CloudWatch log group name • Lambda request ID event holds the data of request
  9. Key Lambda risks *RCE = Remote code execution **SSRF =

    Server Side Request Forgery Rami McCarthy on Lamda risks 1. backdoor Lambda 👉 leak subsequent events via RCE* 2. retrieve the source via RCE* 3. retrieve environment variables, given a fi le read vulnerability or SSRF** 4. given permission to invoke the function, view its logs 5. generate a fork bomb 19
  10. • Sanitize your input • No eval() or os.Popen() or

    any other direct executions • AWS_SESSION_TOKEN, AWS_SECRET_ACCESS_KEY, AWS_ACCESS_KEY_ID should be kept in secret!! Abusing environment secrets Lessons learned 23
  11. • Validate your input — no internal IPs, no excess

    URL schemes • One Lambda per one task 👉 least privilege Abusing request forgery Lessons learned 27
  12. • Avoid recursion — 1 Lambda per 1 task •

    Con fi gure logging inside Lambda • Create a billing alarm per service • Limit concurrent executions (if possible) Avoiding fork bombs Lessons learned 30