Publicado el 18 de Junio del 2017
753 visualizaciones desde el 18 de Junio del 2017
1,5 MB
51 paginas
Creado hace 12a (01/01/2013)
¿Cómo desarrollar
aplicaciones más
seguras?
Presentada por:
Julio César Ardita
CTO CYBSEC
Marcelo Stock
Jefe de Seguridad Informática
Banco Columbia
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
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.
¿Cómo desarrollar aplicaciones más seguras?
- Desarrollo de un Proyecto de Desarrollo
- Problemáticas más comunes en el desarrollo de aplicaciones
- Inclusión de la seguridad en SDLC
- Seguridad en el Análisis
- Seguridad en el Análisis
- Seguridad en el Diseño
- Seguridad en la Codificación
- Testing de Seguridad
- Implementación Segura
¿Cómo desarrollar aplicaciones más seguras?
Desarrollo de un proyecto de Desarrollo
Proyectos de desarrollo de software
¿Qué problemáticas actuales tiene el desarrollo del software?
¿Qué problemáticas actuales tiene
el desarrollo del software en un
entorno seguro?
Desvíos en proyectos de IT
¿Cómo desarrollar aplicaciones más seguras?
Desarrollo de un proyecto de Desarrollo
Costo de solución de Problemas
40-1000
Costo de un error por fase
1
3-6
10
15-40
30-70
o
o
t
t
s
s
o
o
C
C
e
e
d
d
d
d
a
a
d
d
n
n
U
U
i
i
1000
900
800
700
600
500
400
300
200
100
0
Requerimientos
Diseño
Desarrollo
Test en desarrollo Test de Aceptación Operación
Barry Bohem determinó el rango de costo por error generado por falsos
supuestos en la fase de requerimientos y no detectados hasta fases
posteriores (“Software Engineering Economics”). “Poor management can
increase software cost more rapidly than any other factor”.
¿Cómo desarrollar aplicaciones más seguras?
Desarrollo de un proyecto de Desarrollo
Etapas en el System Development Life Cycle
1. Planificación
2. Análisis
3. Diseño
3. Diseño
4. Codificación/Desarrollo
5. Testing
6.
7. Mantenimiento
Implementación y Operación
¿Cómo desarrollar aplicaciones más seguras?
Problemáticas más comunes en el desarrollo de aplicaciones
¿Por qué fracasan los proyectos de sistemas?
Incompetencia tecnológica
1. Poca participación y compromiso de usuarios
2. Requerimientos incompletos
3. Cambio de requerimientos
3. Cambio de requerimientos
4. Falta de soporte de la dirección
5.
6. Falta de recursos
7. Expectativas ilusorias
8. Objetivos poco claros
9. Cronogramas irreales
10. Nuevas tecnologías
11. Otros
Fuente: The Standish Group
¿Cómo desarrollar aplicaciones más seguras?
Problemáticas más comunes en el desarrollo de aplicaciones
Grandes mitos y excusas flacas
La seguridad de la aplicación es responsabilidad del programador.
Nadie sabe cómo funciona, por ende, no la van a atacar.
Si no se encontraron vulnerabilidades hasta ahora…
A nadie le interesaría atacar nuestra aplicación.
La aplicación es segura porque corre detrás de un firewall.
La aplicación es segura porque usa encripción.
Si, ese característica (que es insegura) viene habilitado por default,
pero el administrador lo puede deshabilitar.
Si no corre como Administrador no funciona.
No hay tiempo para incluir seguridad
¿Cómo desarrollar aplicaciones más seguras?
Problemáticas más comunes en el desarrollo de aplicaciones
Interacción con Desarrollo: ¿Ciencia o arte?
Interacción con Desarrollo: ¿Ciencia o arte?
Ciencia
Métricas Métodos
Métricas Métodos
Standards Técnicas
Standards Técnicas
Training Templates
Training Templates
Training Templates
Training Templates
ArteArte
Comunicación Lenguaje Negociación
Comunicación Lenguaje Negociación
Resol. Problemas Conflictos Expectativas
Resol. Problemas Conflictos Expectativas
Interpretaciones Juicios Percepciones
Interpretaciones Juicios Percepciones
Cap. Escucha Cultura Educación
Cap. Escucha Cultura Educación
¿Cómo desarrollar aplicaciones más seguras?
Problemáticas más comunes en el desarrollo de aplicaciones
Modelos mentales
Las personas son diferentes y por lo tanto, también lo son sus
representaciones de la realidad.
Una aplicación
“bien” segura,
NO HAY
PROBLEMA!!!
Buenísim o.
Em pecem os ya.
La necesitam os
en 2 m eses.
¿Cómo desarrollar aplicaciones más seguras?
Problemáticas más comunes en el desarrollo de aplicaciones
La naturaleza del conflicto
El conflicto es natural. Ni positivo ni negativo.
Lo que importa no es el conflicto sino como lo gestionamos.
Lo que importa no es el conflicto sino como lo gestionamos.
Ganar o perder son objetivos de los juegos. No de los conflictos.
Resolver un conflicto no tiene que ver con quién tiene razón sino
con el entendimiento y la apreciación de las diferencias.
Para cambiar nuestra perspectiva en un conflicto debemos
movernos desde nuestro punto de vista a un punto de observación.
¿Cómo desarrollar aplicaciones más seguras?
Inclusión de la seguridad en SDLC
¿Participa Seguridad en el SDLC?
¿Porqué?
¿Debe participar en el SDLC?
¿Debe participar en el SDLC?
¿Porqué?
¿Cómo y cuándo debe participar?
¿Cómo desarrollar aplicaciones más seguras?
Inclusión de la seguridad en SDLC
Grado de madurez del área
de Seguridad Informática
Grado de madurez de la Organización
Cultura organizacional
¿Cómo desarrollar aplicaciones más seguras?
Inclusión de la seguridad en SDLC
Modelos actuales
- ISO/IEC 21827 - Information technology — Security techniques — Systems
Security Engineering — Capability Maturity Model® (SSE-CMM®)
- Microsoft’s Trustworthy Computing Security Development Lifecycle
- Microsoft’s Trustworthy Computing Security Development Lifecycle
- Team Software Process for Secure Software Development (TSP)
- Correctness by Construction
- Software Assurance Maturity Model
- Software Security Framework
¿Cómo desarrollar aplicaciones más seguras?
Inclusión de la seguridad en SDLC
Participación de Seguridad Informática
en el desarrollo de Aplicaciones
El área de Seguridad debe:
- Evaluar el grado de madurez del área y la Compañía.
- Evaluar el grado de madurez del área y la Compañía.
- Seleccionar en que proyectos participar
- Definir en que etapas del SDLC va a participar:
- Participar desde el inicio
- Definir como va a participar
¿Cómo desarrollar aplicaciones más seguras?
Inclusión de la seguridad en SDLC
Participación de Seguridad Informática
en el desarrollo de Aplicaciones
- Política de Seguridad
- Estándares
- Estándares
- Regulaciones
- Aspectos legales
- Validación de conceptos básicos
- Determinación de amenazas y vulnerabilidades.
- Requisitos de seguridad.
- Análisis costo/beneficio
- Nivel de protección deseada.
- Desarrollo de planes de testing.
¿Cómo desarrollar aplicaciones más seguras?
Inclusión de la seguridad en SDLC
Participación de Seguridad Informática
en el desarrollo de Aplicaciones
- Incorporar especificaciones de seguridad.
- Ajustar planes de test.
- Determinar controles de acceso.
- Determinar controles de acceso.
- Diseñar documentación.
- Evaluar opciones de encripción.
- Diseñar controles de seguridad tomando en cuenta
requerimientos regulatorios.
- Diseñar controles de acceso.
- Utilizar encripción.
- Adaptar los planes de testing.
- Diseño detallado de la documentación.
- Considerar aspectos de la continuidad del negocio.
¿Cómo desarrollar aplicaciones más seguras?
Inclusión de la seguridad en SDLC
Participación de Seguridad Informática
en el desarrollo de Aplicaciones
- Desarrollar código de forma segura.
- Implementar testing de código.
- Dar soporte al plan de continuidad del negocio.
- Dar soporte al plan de continuidad del negocio.
- Desarrollar documentación.
- Integrar componentes de seguridad.
- Testing integrado de seguridad
- Ajustar documentación.
- Llevar a cabo verificación integral del producto.
¿Cómo desarrollar aplicaciones más seguras?
Inclusión de la seguridad en SDLC
Participación de Seguridad Informática
en el desarrollo de Aplicaciones
- Instalar software de forma segura.
- Llevar a cabo test de aceptación.
- Testing de seguridad (PT`s).
- Testing de seguridad (PT`s).
- Completar la documentación.
- Certificación y acreditación de ser necesaria.
- Revalidar controles de seguridad.
- Realizar Penetration tests y análisis de vulnerabilidades.
- Gestionar requerimientos de cambios.
- Implementar control de cambios.
- Implementar cambios de forma segura.
- Evaluar el nivel de servicio.
- Actualizar y mantener la documentación.
¿Cómo desarrollar aplicaciones más seguras?
Seguridad en el Análisis
Durante el análisis de requerimientos, se pueden identificar diversas
características que derivarán en los requerimientos de seguridad del
software.
Arquitectura de la aplicación.
Arquitectura de la aplicación.
Plataforma donde correrá la aplicación.
Requerimiento de compliance con normativas y marcos regulatorios.
Tipo de conectividad
Tipos de datos que se almacenarán o transmitirán
Perfiles de usuario necesarios para la aplicación.
Tipos de registro que el sistema debe generar.
¿Cómo desarrollar aplicaciones más seguras?
Seguridad en el Análisis
Seguridad en el análisis de requerimientos
REQUISITOS DE SEGURIDAD INFORMÁTICA PARA ADQUISICIÓN
Y DESARROLLO DE SOFTWARE
- Arquitectura de la aplicación
- Mecanismo de autenticación de usuarios
- Administración de usuarios
- Administración de contraseñas
- Encripción
- Transmisión
- Registro de eventos
¿Cómo desarrollar aplicaciones
Comentarios de: ¿Cómo desarrollar aplicaciones más seguras? (0)
No hay comentarios