Seguridad en el ciclo de vida del software
www.isaca.org.uy
Pablo Miño - CISSP
Agenda
• Importancia del software• Seguridad en capas
www.isaca.org.uy
• Seguridad en capas• ¿Por qué el software falla?• Conceptos de seguridad• Ciclo de vida
Agenda
• Importancia del software• Seguridad en capas
www.isaca.org.uy
• Seguridad en capas• ¿Por qué el software falla?• Conceptos de seguridad• Ciclo de vida
Importancia del software
• Software cumple muchas funciones:– SO
www.isaca.org.uy
– Ofimática– Groupware– CRM– ERP
• Imagine un día sin uno de ellos
Agenda
• Importancia del software• Seguridad en capas
www.isaca.org.uy
• Seguridad en capas• ¿Por qué el software falla?• Conceptos de seguridad• Ciclo de vida
Seguridad en capas
www.isaca.org.uy
Imagen: http://technet.microsoft.com/en-us/library/cc767969.aspx
Agenda
• Importancia del software• Seguridad en capas
www.isaca.org.uy
• Seguridad en capas• ¿Por qué el software falla?• Conceptos de seguridad• Ciclo de vida
¿Por qué el software falla?
• No es una tarea sencilla• Requiere alto conocimiento
www.isaca.org.uy
• Requiere alto conocimiento• Equipos multidisciplinarios• Plazos reducidos• Seguridad es un add-on• Somos humanos!
Agenda
• Importancia del software• Seguridad en capas
www.isaca.org.uy
• Seguridad en capas• ¿Por qué el software falla?• Conceptos de seguridad• Ciclo de vida
Conceptos de seguridad
• CID– Confidencialidad
www.isaca.org.uy
– Integridad– Disponibilidad
Imagen: http://cursosonline.mdl.gnomio.com/
Conceptos de seguridad
• AAA– Autenticación
www.isaca.org.uy
– Autorización– Auditoría
Imagen: http://www.akadia.com
Agenda
• Importancia del software• Seguridad en capas
www.isaca.org.uy
• Seguridad en capas• ¿Por qué el software falla?• Conceptos de seguridad• Ciclo de vida
Ciclo de vida del software
www.isaca.org.uy
Imagen: http://qutesys.wordpress.com/2010/01/16/software-development-life-cycle/
www.isaca.org.uy
Requerimientos
• ¿Qué se necesita?– Funcionales
www.isaca.org.uy
– Estéticos– Limitaciones– ¿Seguridad?
Imagen: http://sdc.net.au/
Requerimientos: Usuarios
• ¿Quiénes son los usuarios?• ¿Cómo accederán a la aplicación?
www.isaca.org.uy
• ¿Cómo accederán a la aplicación?• ¿Con que frecuencia?• ¿Qué roles tendrán?• ¿Cómo se administrarán los roles?• Esquema de autenticación de usuarios
Requerimientos: Datos
• ¿Cómo se almacenarán los datos?• ¿Se usará encriptación?
www.isaca.org.uy
• ¿Se usará encriptación?• ¿Existe niveles de clasificación? (MAC)• ¿Cómo se validará la información?• ¿Cómo se respaldará?
Requerimientos: Control de acceso
• ¿Cómo se accederá a la aplicación?• ¿Habrá acceso remoto?
www.isaca.org.uy
• ¿Habrá acceso remoto?• ¿Habrá acceso desde celulares?• ¿Cómo se manejará el acceso remoto?• ¿Cómo se manejará el acceso físico?• ¿Quién manejará el acceso físico?
Requerimientos: Auditoría
• ¿Qué información se colectará para auditoría?
www.isaca.org.uy
• ¿Con qué frecuencia?• ¿Quién revisará esta información?• ¿Cuánta auditoría se conservará?• ¿Cómo se respaldará?
www.isaca.org.uy
Diseño y Arquitectura
• Principio de menor privilegio• Separación de roles• Separación de dominios
Imagen: http://sdc.net.au/
www.isaca.org.uy
• Separación de dominios• Mantener configuración y ejecutables separados• Minimizar la cantidad de puntos de entrada del
sistema• Auditoría• Valores por omisión seguros
www.isaca.org.uy
Desarrollo y Programación
• Reutilizar cuando sea posible• Usar la última versión de bibliotecas
Imagen: http://sdc.net.au/
www.isaca.org.uy
• Usar la última versión de bibliotecas• Buenas prácticas lenguaje/paradigma
www.isaca.org.uy
Calidad y Testing
• Test unitarios• Test de integración Imagen: http://sdc.net.au/
www.isaca.org.uy
• Test de integración• Test de regresión• Test de stress• Análisis estático de codigo• Revisión de código
Revisión de codigo
public void doPost( HttpServletRequest request, HttpServletResponse response){
String magic = “sf8g7sfjdsurtsdieerwqredsgnfg8d”;boolean admin = magic.equals(request.getParameter(“magic”));if (admin) doAdmin (request, response);
www.isaca.org.uy
Extraido de OWASP Testing Guide 3.0
if (admin) doAdmin (request, response);else .... // normal processing
}
www.isaca.org.uy
Implementación
• Hardenizar plataformas• Configurar accesos acordes Imagen: http://sdc.net.au/
www.isaca.org.uy
• Configurar accesos acordes• Usar encriptación de ser posible• Hacking Etico
www.isaca.org.uy
Mantenimiento
• Ambiente de testing• Probar los parches Imagen: http://sdc.net.au/
www.isaca.org.uy
• Probar los parches• Set de pruebas estándar• Hacking Etico
Resumen
www.isaca.org.uy
Conclusiones
• Involucrar seguridad desde el comienzo• Concientizar al cliente
www.isaca.org.uy
• Concientizar al cliente• Concientizar programadores
Imagen: http://sdc.net.au/
Referencias Graff, Mark G., and Kenneth R. Van Wyk. Secure
Coding, O'Reilly. 1st ed. Sebastopol, CA, 2003.
Viega, John., and Gary McGraw. Building Secure
www.isaca.org.uy
Viega, John., and Gary McGraw. Building Secure Software: How to Avoid Security Problems the
Right Way, Addison-Wesley Professional. 1st ed., 2001.
Anurag Agarwwal, et al. OWASP Testing Guide v3.0, OWASP. 1st ed. 2008.
Preguntas?
www.isaca.org.uy
Top Related