Sistemas de Información – UTN FRC • Operadora de red en Laboratorio de Sistemas (@seclabsis) • Analista de seg - Web pentester LabSis - Centro de Investigación y Desarrollo de Sistemas – Grupo de Seguridad en Soft. Y Sist. De información • JTP – Fundamentos de Informática Ing. Civil
➢ Proyectos de investigación ➢ Entrenamiento para interesados en la temática ➢ Análisis de seguridad • Definiciones de casos de abuso • Code reviews • Pentests para diferentes entes • Pentests a los sistemas desarrollados en C.I.D.S. • Entes públicos • Entes privados • Recomendaciones ➢ Capacitaciones, charlas a equipos de desarrollo del CIDS y externos ➢ Semana de la seguridad: charlas del equipo del Laboratorio de Sistemas ➢ Capacitaciones internas
Find flaws before the bad guys do” (SANS Institute) Equipo de Seguridad Visibilidad • Caja negra total visibilidad de documentación • Caja blanca Tipos • Análisis de vulnerabilidades en aplicación (req, diseño, código, librerías) • En entorno (anterior + tecnologías del server, configuraciones) • En organización (anteriores + ing. social)
en cuenta antes de comenzar: • Rango de tiempo – disponibilidad horaria • Entornos – (tst, stg, prod, IP, servidores, dominios) • Tipo de aplicación • Tipo de pentest • Visibilidad del pentest (caja negra, caja blanca) • Posicionamiento (interno, externo) • Perfiles - Acceso • Preparación por parte del cliente • Etapas – actividades • Funcionalidades (scope) • Limitaciones técnicas – de negocio • Documentación a entregar
una única metodología, pero se pueden definir etapas a nivel general: • Reconocimiento: búsqueda de información • Búsqueda de vulnerabilidades • Explotación de vulnerabilidades • Reporte de vulnerabilidades
de dominios – subdominios Brand discovery Spidering Búsqueda de contenido Búsqueda de parámetros Identificación de tecnologías Ing. Ileana M. Barrionuevo
observar Sitemap – peticiones → • Escaneo de puertos fuerza bruta de directorios → • /admin 403? aplicar nuevamente bruteforcing sobre ese directorio → • Automatizar lo que más se pueda • Ante WAFs –> probar en origin-subdomain.example.com | origin.subdomain.example.com • Tomar notas! Google Keep, Google Docs, Notion, Trello, Github, etc…
vulnerabilidades – CVEs • Bypasses • Análisis del comportamiento esperado – no esperado • No olvidarse de pruebas simples • Errores a veces, son buena señal → You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1'' LIMIT 0,1' at line 1 Ing. Ileana M. Barrionuevo
IDOR (Insecure Direct Object References) https://ejemplo.com.ar F12 (dev tools – inspector - debugger) Ing. Ileana M. Barrionuevo Escenario: Acceso a datos personales de usuarios
IDOR (Insecure Direct Object References) https://ejemplo.com.ar/Aprobacion/_Datos?sCuil=param1&sOperador=param2 https://ejemplo.com.ar/Aprobacion/TraerFotoPerfil Ing. Ileana M. Barrionuevo
IDOR (Insecure Direct Object References) https://ejemplo.com.ar/Aprobacion/_Datos?sCuil=27396210334&sOperador=27396210334 https://ejemplo.com.ar/Aprobacion/TraerFotoPerfil Ing. Ileana M. Barrionuevo
IDOR (Insecure Direct Object References) GET /Aprobacion/_Datos?sCuil=27396210334&sOperador=27396210334 GET /Aprobacion/TraerFotoPerfil?sCuil=27396210334
IDOR (Insecure Direct Object References) GET /Aprobacion/_Datos?sCuil=27396210334&sOperador=27396210334 GET /Aprobacion/TraerFotoPerfil?sCuil=27396210334
IDOR (Insecure Direct Object References) Tips: • SIEMPRE mirar el código fuente • Los errores suelen brindar información interesante • Controles a nivel de objeto mayor esfuerzo que a nivel de roles → • Crear dos cuentas o más – distinto nivel de privilegios Ing. Ileana M. Barrionuevo
Tools: • Ingenio • Repeater • Intruder • NO automatizado • Problemas en el diseño • Ausencia de validaciones en el flujo del proceso o incorrectamente implementadas • Validaciones en sólo endpoints intermedios, no el final Ing. Ileana M. Barrionuevo
Escenario: “Es posible cambiar el estado de una Inscripción, de Iniciada a A pagar, sin cumplir las condiciones para dicha transición.” • Creación de inscripciones duplicadas • Utilizando la primera para transitar por distintos estados Ing. Ileana M. Barrionuevo • Iniciada A pagar →
Escenario: “Es posible cambiar el estado de una Inscripción, de Iniciada a A pagar, sin cumplir las condiciones para dicha transición.” POST /api/enviar HTTP/1.1 Host: ejemplo.com {“id”: 1234, “nombre”: “ejemplo”, “apellido”: “ejemplo” “condiciones”:[{“...”},{“...”},….] } HTTP/1.1 200 OK Date: Wed, 29 Apr 2020 04:39:17 GMT Content-Length: 211 Connection: close {“codigo”:200, “resultado”: 758324,0} Ing. Ileana M. Barrionuevo
Tips: • Recorrer la funcionalidad por el camino normal • Observar peticiones intermedias entre el inicio y el final • Repetir pasos • Probar valores inconsistentes, inesperados • If you don’t understand the business, you can’t see business logic flaws. Ing. Ileana M. Barrionuevo
Resumen de resultados • Desarrollo ➢ Reconocimiento ➢ Escaneo • Anexo Título Categoría → OWASP Base Score → Descripción → Impacto Detalle → Pasos de reproducción Cómo se detectó Recomendaciones Imágenes Confidencialidad – Integridad - Disponibilidad Ing. Ileana M. Barrionuevo