¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!
DVFaaS-Damn-Vulnerable-Functions-as-a-Service — Funciones Serverless Intencionalmente Vulnerables para comprender los detalles de las Vulnerabilidades de Seguridad Serverless | Kitploit
Un proyecto DHIY (Despliega y Hackéalo Tú Mismo) en el que puedes desplegar y ejecutar un montón de funciones terriblemente inseguras en AWS Lambda
Objetivo y audiencias
En we45 hacemos mucha formación sobre seguridad en Serverless, Cloud y la seguridad de los stacks web modernos.
Creemos firmemente que existe una gran necesidad de que desarrolladores, arquitectos, personal de DevOps y de Seguridad aprendan y comprendan los riesgos asociados a estos componentes modernos
Este proyecto es la culminación de nuestros esfuerzos de formación en el desarrollo de aplicaciones Serverless (FaaS) intencionalmente vulnerables, que hemos decidido abrir a la comunidad en general
Este proyecto es ideal para ti, si:
Quieres aprender sobre las fallas de seguridad en aplicaciones serverless, específicamente en implementaciones FaaS.
Este proyecto no es para ti, si:
No quieres desplegar (y ejecutar) tus propias funciones. La idea aquí es que aprendas haciendo.
Ten en cuenta:
Las funciones están pensadas para desplegarse en AWS Lambda. Pero los principios y conceptos se aplican en todos los ámbitos
La mayoría de las funciones están en Python, específicamente en un framework llamado chalice (pensado para Python en AWS Lambda). El despliegue de estas funciones en tu entorno lambda es bastante sencillo
En última instancia, el proyecto se alinea con el OWASP Serverless Top 10, disponible aquí, aunque algunos ejemplos pueden variar
Las operaciones (despliegue) de este proyecto se realizan en gran medida con Terraform. Puedes encontrar la documentación aquí
Cada ejemplo tiene un README con instrucciones de instalación, etc. En muchos casos, el despliegue para múltiples ejemplos ove
Requisitos
Código
Python 3.6
Pipenv (gestión de dependencias)
Chalice
PyYAML
HTTPie
AWS CLI con privilegios de root o elevados necesarios para el despliegue/configuración de varios componentes de AWS
jq
Recursos de AWS
RDS => MySQL (elegible para Free Tier)
DynamoDB (elegible para Free Tier)
Amazon SNS (Pub/Sub para Topics)
Amazon Lambda, ya sabes....para funciones
Amazon Cloudwatch Logs
Descargo de responsabilidad
Por favor, úsalo solo en cuentas personales o que no sean de producción
No nos hacemos responsables de la forma en que cualquiera utilice estas funciones (DVFaaS). Hemos dejado claros los propósitos de la aplicación y no debe utilizarse con fines malintencionados. Hemos advertido y tomado medidas para evitar que los usuarios instalen DVFaaS en cuentas de producción.
Eres responsable de las autorizaciones necesarias (si las hay) que necesitarás para ejecutar esto en tu cuenta de AWS.
Instalación y configuración
Clona el proyecto con git git clone <URL>
Estamos usando pipenv para gestionar las dependencias del proyecto. Puedes usar pipenv install para instalar todas las dependencias
Cada laboratorio tiene su propia especificación de despliegue. En la mayoría de los casos, hay un directorio de despliegue específico en cada laboratorio llamado ops
que se utiliza para gestionar los despliegues
Recomendamos encarecidamente usar httpie como cliente http, ya que es de línea de comandos y muy fácil de usar
Para algunos despliegues, estamos usando Terraform para realizar despliegues y configurar roles de AWS IAM, entre otras cosas.
Ten en cuenta que necesitarás tener privilegios elevados/root en AWS con aws cli para que todo esto funcione.
Actualmente, para todos los ejercicios estamos usando Chalice (un framework de AWS Lambda en Python).
Todos los laboratorios tienen una carpeta .chalice que es reconocida por chalice para fines de despliegue.
Para la mayoría de los laboratorios, tendrás que configurar el archivo .chalice/config.json para configurar el despliegue. Lee el README de cada laboratorio para obtener esta información.
Esto deberá hacerse después del despliegue (que son los directorios ops cuando corresponda)
Una vez hecho esto, el despliegue es bastante sencillo, con un simple comando chalice deploy que enviará tu función Lambda a tu cuenta de AWS:
Ten en cuenta que necesitarás tener privilegios elevados/root en AWS con aws cli para que todo esto funcione.
Tareas pendientes
Serie de videos que explica el despliegue y la ejecución de ataques