0% encontró este documento útil (0 votos)
102 vistas19 páginas

Desarrollo de Software Seguro: Claves y Prácticas

Este documento presenta información sobre el desarrollo de software seguro. Explica algunos mitos comunes sobre la seguridad del software y destaca la importancia de incorporar la seguridad desde el diseño utilizando buenas prácticas de desarrollo. También describe siete puntos de contacto clave para la seguridad del software a lo largo del ciclo de vida del desarrollo, como la revisión de código, el análisis de riesgos arquitectónicos y las pruebas de penetración.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

Temas abordados

  • resultados esperados,
  • prácticas de desarrollo,
  • ciclo de vida del software,
  • pruebas basadas en riesgos,
  • seguridad del software,
  • integridad,
  • validación de datos,
  • requerimientos funcionales,
  • entornos de desarrollo,
  • auditoría y logging
0% encontró este documento útil (0 votos)
102 vistas19 páginas

Desarrollo de Software Seguro: Claves y Prácticas

Este documento presenta información sobre el desarrollo de software seguro. Explica algunos mitos comunes sobre la seguridad del software y destaca la importancia de incorporar la seguridad desde el diseño utilizando buenas prácticas de desarrollo. También describe siete puntos de contacto clave para la seguridad del software a lo largo del ciclo de vida del desarrollo, como la revisión de código, el análisis de riesgos arquitectónicos y las pruebas de penetración.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

Temas abordados

  • resultados esperados,
  • prácticas de desarrollo,
  • ciclo de vida del software,
  • pruebas basadas en riesgos,
  • seguridad del software,
  • integridad,
  • validación de datos,
  • requerimientos funcionales,
  • entornos de desarrollo,
  • auditoría y logging

DESARROLLO DE

SOFTWARE SEGURO
YURY DANIEL ZAVALETA DE LA CRUZ
WHOAMI

 DESAROLLADOR DE SOFTWARE SEGURO: INTELIGENCIA DIRANDRO PNP

 CONSULTOR EN CIBERSEGURIDAD.

 ETHICAL HACKING.

 SECURITY RESEARCH.

 IING. DE SISTEMAS – MÁSTER SEGURIDAD INFORMÁTICA

2
MITOS
 La seguridad del software es responsabilidad del programador.
 Nadie sabe cómo funciona, por lo tanto, no atacarán.
 No se encontraron vulnerabilidades, hasta ahora...
 A nadie le interesaría atacar nuestra aplicación.
 El software es seguro porque corre detrás de un firewall.
 El software es seguro porque usa cifrado de datos.
 Si no corre como Administrator/root, no funciona.
 No hay manera de explotar el software.
 No hay tiempo para incluir seguridad en el desarrollo de software.
3
DESARROLLO DE SOFTWARE SEGURO

 Que es la seguridad ?
 El desafío de la seguridad en el desarrollo de software.
 Por que necesitamos aprender a desarrollar software seguro?
 Seguridad desde el diseño.
 Buenas prácticas de desarrollo.

4
SEGURIDAD DESDE EL DISEÑO
 Reducción de Superficie de ataque.
 Criterio del menor privilegio.
 Fallar de manera segura.
 Criterio de defensa en profundidad.
 Diseño seguro de mensajes de error.
 Diseño seguro de autenticación.
 Separación de privilegios.
 Interacción “amigable” con Firewalls e IDS's.
 Administración segura información Sensible.
 Diseño de Auditoría y Logging.
5
 Análisis de riesgo.
CICLO DE VIDA DE SOFTWARE SEGURO.

 Tareas básicas que permiten desarrollar software de calidad desde el primer


instante del propio proyecto.

 Las propiedades que debe cumplir un proceso de estos sería al menos


contemplar los servicios de seguridad como confidencialidad, integridad y
disponibilidad.

 Es un ciclo continuo y deberá disponer de iteraciones, que deben ser ejecutadas


durante la vida del propio software.

6
SEVEN TOUCHPOINTS FOR SOFTWARE SECURITY

 Code review
 Architectural risk analysis
 Penetration testing
 Risk-based security tests
 Abuse cases
 Security requirements
 Security operations

7
Code review
 DEMO XSS.
 DEMO BRUTEFORCE.
 DEMO XPATH TRAVERSAL.
 DEMO UPLOAD WEBSHELL.
 DEMO CSRF
 DEMO ENCODE VS ENCRYPT
 DEMO CHALLENGE
 DEMO SQLI. 8
Architectural risk analysis
 Si no conocemos el riesgo, no sabemos que debemos proteger.
 Gestión del riesgo.
 Todas las decisiones de gerencia se deben tomar con el conocimiento de los riesgos que implican.
 Tratamiento del Riesgo.
1. Mitigar el riesgo.

2. Transferir el riesgo.

3. Evitar el riesgo.

4. Aceptar el riesgo.
 Resultados.
9
 DEMO MATRIZ DE RIESGOS
Penetration testing
 Fases:
1. Fase de reconocimiento
2. Fase de escaneo
3. Fase de enumeración
4. Fase de acceso
5. Fase de mantenimiento de acceso
 Herramientas que podemos usar:
1. ZAP PROXY
2. SQLMAP
3. BEEF
 Resultados esperados.
10
 Reporte gerencial
Risk-based security tests
 Desarrollado desde una perspectiva de gerencia de proyecto.

 Todas las actividades desarrolladas en el test de seguridad se


realizan principalmente para alinearse a los requerimientos de
seguridad.

 Un Test basado en riesgos proviene de los riesgos de software.

 El objetivo principal del testing de seguridad es reducir las


vulnerabilidades dentro del software.

 Pruebas en caliente vs Pruebas en frio.

11
Abuse cases
 Actores de Abuso
1. Descripción.
2. Recursos.
3. Habilidades.
4. Objetivos.
 Interacción de Abuso.
1. Daño.
2. Rango de Privilegios.
3. Descripción de la interacción.
 DEMO CASOS DE ABUSO
12
Security requirements
 Optar por una perspectiva de un atacante.
 Se debe ser lo mas explicito posible.
 Los requerimientos deben ser testeados.
 Estos requerimientos no deben estar alejados de los SQUARE
requerimientos funcionales.
 Los requerimientos deben actualizarse con cierta frecuencia
 DEMO REQUERIMIENTOS DE SEGURIDAD

13
Security operations

 Identificar los activos que se necesitan proteger.


 Determinar con precisión los activos que son vulnerables a ataques.
 Entender las técnicas que usan los atacantes contra los sistemas.
 Reconocer cuando una infiltración ha ocurrido.
 Determinar que acciones se deben ejecutar para no afectar la postura de seguridad.

14
INTEGRACIÓN DE TOUCHPOINTS EN EL CICLO DE
DESAROLLO DE SOFTWARE

 FASE DE REQUERIMIENTOS:  FASE DE DISEÑO:


 Architectural risk analysis  Architectural risk analysis
 Abuse cases
 Security requirements

 PLAN DE PRUEBAS:  CODIFICACIÓN:


 Risk-based security tests  Code review 15
INTEGRACIÓN DE TOUCHPOINTS EN EL CICLO DE
DESAROLLO DE SOFTWARE

 TESTING:  FEEDBACK:
 Architectural risk analysis  Penetration testing
 Penetration testing  Security operations

16
BUENAS PRÁCTICAS
 Separación de entornos: Desarrollo vs producción.
 Defensa en profundidad.
 No reutilizar contraseñas.
 Principio del mínimo privilegio.
 Encodificar no es cifrar.
 Seguridad por oscuridad no existe.
 Nunca confiar en lo que envia el usuario.
 Validar todos los datos devueltos desde nuestro servidor.
17
Conclusiones
 La Integración de seguridad a lo largo de todas las etapas del SLDC ahorra
tiempo y dinero.
 La tendencia actual es la seguridad este involucrada en todo el ciclo de
vida de desarrollo de software.
 En su mayor caso, vulnerabilidades no se deben a errores de codificación
sino a defectos de diseño.
 Existen buenas prácticas y técnicas específicas para insertar seguridad en
cada etapa del SDLC.
18
GRACIAS

19

También podría gustarte