Descargar Presentación

Transcripción

Descargar Presentación
Seguridad del Software
Las 10 fallas de diseño más
frecuentes y como evitarlas
Presentada por:
Iván Arce
Programa de Seguridad en TIC
Fundación Dr. Manuel Sadosky
Aclaración:
©
Todos los derechos reservados. No está permitida la
reproducción parcial o total del material de esta sesión, ni
su tratamiento informático, ni la transmisión de ninguna
forma o por cualquier medio, ya sea electrónico, mecánico,
por fotocopia, por registro u otros métodos, sin el permiso
previo y por escrito de los titulares de los derechos. Si bien
este Congreso ha sido concebido para difusión y promoción
en el ámbito de la profesión a nivel internacional,
previamente deberá solicitarse una autorización por escrito
y mediar la debida aprobación para su uso.
Qué es seguridad del software?
La seguridad es un atributo de calidad del software
Seguridad del software es una propiedad emergente de un sistema
de software, resultante de la interacción de personas, procesos y
tecnología a lo largo de todo su ciclo de vida.
El costo de arreglar un bug crece exponencialmente en el tiempo:
{Requerimientos, diseño, implementación, testing, despliegue, mantenimiento}
Qué NO es seguridad del software?
Seguridad del software no es:
• Un conjunto de características (features) del software
Usar SSL, autenticar con usuario y clave, permisos de acceso
• Usar un dispositivo de red o un sofware de seguridad
Firewall, firewall de aplicación web, antivirus, etc.
• Una reglamentación de cumplimiento legal o una regulación
PCI DSS, SOX, BCRA “A” 5374, BCRA “A” 4609, etc.
• Una certificación de calidad o nivel de madurez de procesos
ISO 9001, CMM/CMMI, SMMM, ISO 27001, ITIL, CoBIT, etc.
El estado de la seguridad del software
Fuente: National Vulnerability Database, NIST, EEUU (2015). https://nvd.nist.gov/
Cuál es el alcance del problema?
o Las estadísticas mostradas son:
• Incompletas, sesgadas, desfasadas en el tiempo.
• Sobre problemas de implementación (bugs)
• Publicados por fabricantes o terceros (investigadores,
industria, etc.)
• Catalogados con un ID único (CVE) por Mitre.org
• Solo aplicables a software comercial ya desplegado
o Se estima que los bugs solo representan el 50% de los problemas
de seguridad del software. El otro 50% corresponde a fallas de
diseño (flaws)
o La cantidad de bugs es al menos 1 o 2 órdenes de magnitud (10x
– 100x) mayor si consideramos software a medida o desarrollado
para uso interno.
Cómo atacamos el problema?
Proyecto “METODOLOGÍAS PARA EVALUAR LA
MADUREZ DE LA SEGURIDAD EN EL PROCESO DE
DESARROLLO DE SOFTWARE”
Realizado en forma conjunta por:
UTN Facultad Regional Santa Fe
Grupo I+D GISTIC
Fundación Dr. Manuel Sadosky
Programa STIC
2014-2015: Fase II del proyecto
Hay dos tipos de Defecto de Software
Errores de implementación (bugs)
•
•
•
•
•
•
Problemas a nivel codificación
Identificables vía testing
Puede permanecer latentes y manifestarse en tiempo de ejecución
Testing unitario, regresión, cobertura
Automatización de pruebas de seguridad, fuzzing
Se arreglan con “parches”
Fallas De Diseño
•
•
•
•
•
Problemas mucho mas profundo en la etapa de concepción
Equivocación u omisión en etapas de diseño, definición de arquitectura
No se puede “testear” lo que no existe
Su manifestación tiene consecuencia catastróficas
Se arreglan con “re-diseño”
Error de implementación (bug)
“Understanding the Apple goto fail vulnerability”, Amit Sethi, Cigital, Feb 25. 2014
http://www.cigital.com/justice-league-blog/2014/02/25/understanding-apple-goto-fail-vulnerability-2/
Falla de diseño (flaw)
Centro para el Diseño Seguro de IEEE
• IEEE Computer Society Cybersecurity
Initiative
• Lanzado en 2014
• 13 miembros fundadores
• Lista de las 10 fallas de diseño mas
frecuentes
• … y como evitarlas
http://cybersecurity.ieee.org/center-for-secure-design/
GANAR U OTORGAR CONFIANZA,
PERO NUNCA DARLA POR SENTADA
UTILIZAR UN MECANISMO DE AUTENTICACION
QUE NO PUEDA SER ELUDIDO NI ALTERADO
AUTORIZAR DESPUES DE AUTENTICAR
“Behind the Scenes at a Nuclear Alert Facility”, Joe Papallardo, Popular Mechanics, 2010
http://www.popularmechanics.com/military/weapons/a6169/behind-the-scenes-at-a-nuclear-alert-facility/
SEPARAR ESTRICTAMENTE DATOS
E INSTRUCCIONES DE CONTROL
“SQL Injection in the wild”, Gunter Ollman, IOActive, 2013
http://blog.ioactive.com/2013/03/sql-injection-in-wild.html
VALIDAR TODOS LOS DATOS
EXPLICITAMENTE
“Encuentran un ’puto el que lee’ en el contrato de Lamela a Roma”, Clarin, Deportes, 2011
http://www.clarin.com/deportes/Encuentran-puto-contrato-Lamela-Roma_0_514748732.html
UTILIZAR CRIPTOGRAFIA
CORRECTAMENTE
“The ECB Penguin”, Filippo Valsorda, Nov. 2013
https://filippo.io/the-ecb-penguin/
IDENTIFICAR DATOS SENSIBLES,
Y COMO SE LOS DEBERIA GESTIONAR
CONSIDERAR SIEMPRE A LOS USUARIOS
LA INTEGRACION DE COMPONENTES
CAMBIA LA SUPERFICIE DE ATAQUE
CONSIDERAR CAMBIOS FUTUROS EN
OBJETOS Y ACTORES
Gracias por asistir a esta sesión…
Para mayor información:
Iván Arce
Programa STIC, Fundación Sadosky
[email protected]
Para descargar esta presentación visite
www.segurinfo.org
Los invitamos a sumarse al grupo “Segurinfo” en

Documentos relacionados