Slide 1

Slide 1 text

/in/agustincelano @agustincelano /celagus Hola, soy Agus Celano! EVENT-DRIVEN SECURITY ARCHITECTURE Un enfoque bueno, bonito y barato para automatizar operaciones de ciberseguridad y escalar fácil

Slide 2

Slide 2 text

AGENDA • Motivación • Qué es una arquitectura basada en eventos (EDA)? • Qué ventajas tiene una EDA? • Cuándo usar EDA? • Ejemplo de EDA aplicada a response automático • Algunos aprendizajes

Slide 3

Slide 3 text

UN PEQUEÑO DISCLAIMER! ● No es una charla Pomelo! ● Los componentes de los ejemplos pueden variar, el concepto no!

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

SI VENÍS DE UNA STARTUP TECH… Tal vez te encontraste con algunos de estos desafíos: ● Integrarse con el resto del ecosistema tecnológico ● Modularizar capabilities ● Eficiencia de costos ● Equipo chico vs backlog gigante ● Necesidad de automatizar ● Necesidad de escalar de 0 a 100 en cualquier momento

Slide 6

Slide 6 text

ARQUITECTURA BASADA EN EVENTOS ● Patrón para la construcción de sistemas desacoplados y escalables ● Asíncrono ● Los eventos llevan información que puede incluir“estados” de un componente a otro ● Al menos 3 componentes básicos: ○ Event producer ○ Event router/processor/orchestrator ○ Event consumer Algunas características:

Slide 7

Slide 7 text

VENTAJAS DE EDA ● Eficiencia en cómputo: no todos los componentes del flujo tienen que estar activos todo el tiempo ● Reducción de costos ● Altamente escalable ● Facilita el procesamiento en paralelo Algunas ventajas:

Slide 8

Slide 8 text

DESVENTAJAS DE EDA ● No es una buena elección para casos de uso donde se requiera procesamiento intensivo o recursos dedicados de cómputo ● No es la mejor opción si requerís de una respuesta inmediata (pocos ms) ● El troubleshooting puede ser más complicado ● Más carga de testing unitario y de integraciones Algunas desventajas:

Slide 9

Slide 9 text

CUÁNDO CONVIENE USAR EDA? ● Necesitas interpretar y tomar acciones en base a estados en un flujo de varios nodos ● No necesitas cómputo dedicado, sino solo el suficiente para responder a estímulos (eventos) en los momentos requeridos ● Necesitas escalar rápido en momentos random y mantenerte al mínimo costo en momentos ociosos ● No necesitas respuesta instantánea (pocos ms) Es elegible si tu caso de uso contempla algo de lo siguiente:

Slide 10

Slide 10 text

EJ CASO DE USO 1: EDA APLICADO A DETECCIÓN Y RESPUESTA (SEC) Observability Threat Intelligence alert Enrichment Playbooks / Runbooks Event Source Security Tools Security Orchestration action FW IDS/IPS SWG EDR CASB …

Slide 11

Slide 11 text

EJ CASO DE USO 2: EDA APLICADO A PATCH MANAGEMENT (SEC) alert Event Source Security Orchestration action VMs ENDPOINTS DEVICES CONTAINERS … SBOM ITSM MDM IMAGES REGISTRY Final destination IMAGES REGISTRY

Slide 12

Slide 12 text

EJ CASO DE USO 3: EDA APLICADO A IAM (SEC) alert Event Source Security Orchestration action System 1 System N IDM People DB Final destination System 2

Slide 13

Slide 13 text

EJEMPLO MODELO UTILIZANDO AWS

Slide 14

Slide 14 text

EJEMPLO PRÁCTICO: BLOQUEO DE IP https://github.com/celagus/sec-event-driven-arch

Slide 15

Slide 15 text

WEB HOOK ← API Gateway HTTP request →

Slide 16

Slide 16 text

SOAR WORKFLOW Step Functions workflow → ← API Gateway SFn integration

Slide 17

Slide 17 text

SQS + Lambda trigger ← SQS Lambda trigger →

Slide 18

Slide 18 text

Dynamo DB IoCs procesados → Lambda trigger Dynamo Stream activado →

Slide 19

Slide 19 text

RESULTADO

Slide 20

Slide 20 text

COSTOS Servicio Unidades Costo unitario mensual Costo total mensual Lambda 6 USD 0,17 USD 1,02 API GW 1 USD 1 USD 1 SQS 1 USD 0,20 USD 0,2 Dynamo DB 2 USD 1,08 USD 2,16 SNS 1 USD 0,04 USD 0,04 Step Functions 2 USD 0,03 USD 0,06 Lambda (garbage collector) 1 USD 0,33 USD 0,33 Total USD 4,81 Premisas (exageradas): - 1000 invocaciones p/mes (del flujo) - promedio 20 s de ejecución p/ Lambda (salvo GC 40 s), 512 MB storage efímero y 512 MB RAM - 34 kb promedio cada request - Storage 4 GB mensual

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

RECOMENDACIONES FINALES ● Estandarizar inputs y outputs ● Monitorear las funciones de la manera más centralizada posible ● Hacer funciones cortitas y reutilizables ● SI la escala es MUY grande vale la pena hacer números y considerar recursos dedicados (En base a lecciones aprendidas)

Slide 23

Slide 23 text

No content