Seguridad en el ciclo de vida del software

Preview:

Citation preview

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

Muchas Gracias

www.isaca.org.uy

Pablo Miño - CISSPpablo.mino@arnaldocastro.com.uy

Recommended