Download - Developers: Ignorance is... bliss?
About: Cristián Rojas● Ingeniero Civil en
Computación y Tesista MSc-CS DCC-UCHILE
● Múltiples funciones en INFOSEC:– Mercenario-Consigliere– Profesor-Instructor– Investigador (CLCERT-UCHILE)
● ISC2 Certified Secure Software Lifecycle Professional (CSSLP)
● INFOSEC-Privacy-Kittehs-Beer Geek Foto: 8.8 Security Conference 2015. Meme: @RobertoRiquelme
Violación del principio de privilegio mínimo
● Abuso de permisos en apps móviles– Si tu app es para iluminar con el flash de la
cámara ¿necesitas permisos para acceder a contactos, GPS, SMS, etc?
● GRANT ALL PRIVILEGES ON my_db to user;
Código de Debugging/Logging Abandonado
● phpinfo.php● Código TRACE
abandonado● Builds generados en
modo Debug● Exceso de logging
– A veces con información sensible
Mal uso de cifrado en Reposo● ENCRYPT ALL THE THINGS!!!● Ya, pero…
– ¿Qué tipo de encriptación vas a usar?– ¿Qué llave de cifrado?
● Hardcodeadas● Basadas en información fácil de obtener
● Algoritmos criptográficos tejidos en casa– “Super-encriptación”
Mal almacenamiento de Passwords● Almacenamiento de
claves usando:– Texto plano– Hashes MD5– Sin sal criptográfica
● No conocen los KDF– PBKDF2– BCrypt
@cadcc
Exceso de confianza en secretos● Ocultamiento de
versiones de servidores
● Uso de medidas anti-ingeniería reversa
● ¿Eso realmente hace más segura tu aplicación?
Easy money!
“Terminator 2”, Tristar, 1991
Exceso de confianza en herramientas
● Frameworks– Ej. Ruby on Rails, Django, NodeJS, Android SDK,
iOS SDK, etc...– ¿Tienen documentación de seguridad?– “No, si el framework trae seguridad integrada. Yo
no tengo que preocuparme de nada”
Exceso de confianza en herramientas
● Content Management Systems (CMS)– Ej. Wordpress, Drupal,
Joomla…– ¿Qué consideraciones
de seguridad hay que tener en cuenta?
– ¿Les hacemos un cariñito de vez en cuando? Eduardo Bonvallet, 1955-2015
Exceso de confianza en herramientas
● Paneles de Control– Ej. CPanel,
PHPMyAdmin– Clásicos en servicios
de hosting– Excesiva cantidad de
privilegios– A menudo en
entornos HTTP sin protección
Exceso de confianza en herramientas
● “Usemos este scanner de vulnerabilidades” (muy caro, dicho sea de paso)– ¿Saben cómo accionar las vulnerabilidades que
reporta?– ¿Saben cómo reconocer falsos positivos?– ¿Son seguros para escanear ambientes de
producción?
● La seguridad es algo que hay que pensar
Factores Técnicos● “El todo es más que
la suma de sus partes” (NOT!)– Más que
desarrollando, armando Legos
● Hay fallas que surgen espontáneamente ¿Por qué?
Factores psicológicos● Programar es una actividad difícil y
frustrante● Nunca debemos confiar ciegamente en el
código de otro (ahora... anda a que alguien llegue a desconfiar del de uno)
● Nosotros descansamos en la abstracción... los chicos malos se fijan en los detalles
Factores del mundo real● La fuente de nuestro
código fuente● El desarrollo de
software es cada día más democrático
● La presión de producir, producir, producir– Y seguridad, ¿cuándo?
Factores del mundo real● “¿Cuándo dejarán de vendernos esta
porquería?”– “Cuando Ustedes dejen de comprarla”
● Muchas compañías restan importancia a incidentes– Anda a contactar a alguna empresa por una
vulnerabilidad que les encontraste
Factores del mundo real● Cuando aprendemos
a programar, ¿vemos conceptos de seguridad?– ¿En cursos?– ¿En manuales?– ¿En documentación?
Requisitos Diseño Implementación Pruebas Operación
1X 1X7X
15X
100X
IBM Systems Sciences Institute, “Implementing Software Inspections”
Educación● ¿Cursos?
– CC5315 (DCC-UCHILE)– Taller de Seguridad Web (SPECT-UTFSM)– NeoSecure: “Seguridad de Aplicaciones Web”– ¿Algún otro?
● ¿Certificaciones?– Certified Secure Software Lifecycle Professional (ISC2
CSSLP)– Certified Software Development Professional (CSDP)
Educación● Documentación (disponible libremente)
– OWASP (Open Web Application Security Project)● OWASP Top 10 2013● Múltiple documentación online
– BSIMM-V (Build Security In Maturity Model)– NowSecure: “42+ Best Practices for Secure iOS
and Android Development”– CodePoet, “Locking Down Wordpress”
Educación● Libros
– McGraw, “Software Security”– Howard, Lipner, “The Security Development
Lifecycle”– Shostack, “Threat Modeling”– Ristic, “Bulletproof SSL and TLS”– Howard, LeBlanc, Viega, “24 Sins of Software
Security”
Herramientas● Configuración HTTPS
– Qualys SSL Test (online)– Cipherscan (local)
● Scanneres de vulnerabilidades– OWASP ZAP– BURP Suite– W3AF– wpscan (Wordpress)
Herramientas● Analizadores de seguridad en código
– Findbugs + Find Security Bugs (Java)– JSPrime (NodeJS y otros frameworks JS)– Brakeman (Rails)– FXCop (.NET, desactualizada)– PHP Code Sniffer + phpcs-security-audit