Expo

28
ESCUELA POLITÉCNICA NACIONAL INGENIERÍA EN SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN COMPUTACIÓN DISTRIBUIDA INGENIERÍA DE LA SEGURIDAD Integrantes: Santiago Ayala Jhon Guanoluisa Sebastián Guerrero Salomé Idrobo Quito, 09 de abril del 2012

Transcript of Expo

ESCUELA POLITÉCNICA NACIONALINGENIERÍA EN SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

COMPUTACIÓN DISTRIBUIDA

INGENIERÍA DE LA SEGURIDAD

Integrantes:

Santiago AyalaJhon GuanoluisaSebastián GuerreroSalomé Idrobo

Quito, 09 de abril del 2012

1. INTRODUCCIÓN

La Ingeniería de Seguridad es un tema amplio que cubre una gama de tópicos, desde tecnologías que abordan requisitos de seguridad como la autenticación, autorización y confidencialidad hasta la seguridad de soluciones arquitectónicas patrones y principios de diseño, y otras actividades que se requieren para desarrollo de software seguro.

1. INTRODUCCIÓN

Se ignora la importancia de cómo diseñar una aplicación segura a través de la especificación, diseño y desarrollo.

La razón fundamental de la existencia de vulnerabilidades de seguridad para muchos es el software defectuoso.

1. INTRODUCCIÓN

La seguridad es raramente considerada por las empresas de desarrollo de software como una parte integral del ciclo de vida de desarrollo de software.

Los ingenieros de software no son conscientes de las vulnerabilidades comunes o de las técnicas para protegerse de posibles ataques.

1. INTRODUCCIÓN

La incorporación de aspectos de seguridad en el SDLC todavía se está desarrollando como un concepto, aunque hay algunos procesos documentados y modelos de procesos a disposición de los profesionales.

1.1 DEFINICIONESVulnerabilidadDebilidad que puede ser aprovechada por una amenaza para producir un daño.

AmenazaPresencia de uno o más factores de diversa índole que generan un incidente y pueden causar daños.

RiesgoPosibilidad de que se materialice o no una amenaza aprovechando una vulnerabilidad.

1.2 EJEMPLO

VULNERABILIDAD

AMENAZA RIESGO

2. PROCESOS DE SEGURIDAD EN EL SDL

Existen pocos procesos de desarrollo de software y modelos de procesos disponibles en la industria hoy en día en el que la seguridad se considere desde el principio como una parte integral de todo el proceso.

2.1 SSE-CMM

SSE-CMM es un modelo de proceso de referencia que se centra en la implementación de sistemas de tecnología de la información de forma segura.

Un proceso típico de Ingeniería de Seguridad

•El desarrollo de software seguro nos obliga a abordar a la seguridad como parte de cada uno de los aspectos del proceso de desarrollo.

•Es una responsabilidad conjunta de todos en el equipo de trabajo

Requiere de un marco de trabajo:

•La adquisición o el desarrollo de un proceso o metodología de alta seguridad.

•Efectuar los cambios fundamentales en el proceso organizativo

•Crear conciencia sobre la seguridad en todos y cada uno de los niveles de la organización.

•Empleo correcto de herramientas y orientación

•La implementación de procesos para auditar el manejo de la seguridad y gestionar la vulnerabilidad del ciclo de vida.

•Estas actividades se puede repetir en diferentes etapas de desarrollo.

Fase de requisitos

•La seguridad no puede ser incorporada en un producto si los requisitos de seguridad no se conocen por adelantado.

•Requisitos para la funcionalidad se confunden con requisitos de un software seguro

•Se centran en los procesos que tienen como objetivo reducir las vulnerabilidades de seguridad

•Se limitan solamente a aspectos como los mecanismos de autenticación de usuario y control de acceso

•Se debe también tener en cuenta fiabilidad, confiabilidad, disponibilidad.

•Es vista como una idea tardía

•Constituyen un insumo crítico

Fase de Arquitectura y Diseño. •Se define en términos de sistema

principal 

•Concientizar sobre las diferentes amenazas de seguridad y sus causa.

•Análisis de la funcionalidad de seguridad

•Las vulnerabilidades de seguridad se derivan de los defectos en la arquitectura y el diseño

•Se deben identificar las vulnerabilidades de seguridad al inicio de esta fase

•Cada aplicación tiene que vivir con cierto riesgo. Riesgo Residual.

•El modelado es eficaz en forma iterativa.

Fase de Desarrollo (Codificación) •Varias vulnerabilidades se atribuyen a

prácticas inseguras. Conciencia mínima

•Falta de capacitación

•Los agujeros de seguridad son difíciles de encontrar.

•Las revisiones de código son vistos como difíciles tareas.

•La atención se debe centrar en el descubrimiento de inseguridades en las prácticas de codificación, y también el cumplimiento de directrices de codificación

•Pair Programming

Fase de prueba

•Se concentran en los aspectos funcionales.

•Es la última oportunidad para la organización. 

•Enfoque basado en los riesgos.

•Las empresas deben integrar la seguridad como parte integral de su cultura de desarrollo.

Pautas importantesRequisitos de seguridad

•La captura de buenos requisitos implica:

▫Requisitos explicativos ▫Requisitos normativos ▫Políticas de seguridad ▫Clasificación de seguridad de la

información ▫Evolución de las vulnerabilidades de

seguridad ▫Limitaciones y necesidades

• Esto es difícil debido a: ▫Los actores (stakeholders) no son buenos

para especificar los requisitos funcionales de seguridad 

▫ Idea tardía

▫Es muy difícil precisar lo que un sistema no debe hacer o proteger.

▫Centrado en los requisitos funcionales y no en la seguridad.

Estas razones exigen múltiples roles especializados 

Hay dos tipos de requisitos de seguridad:

•Requisitos funcionales (control de acceso)

•Requisitos no funcionales (restricciones del sistema)

•Algunas de las áreas de alto nivel técnico de requisitos de seguridad funcionales  incluyen:

▫Identificación▫Autenticación▫Autorización▫No rechazo ▫Integridad▫Auditoría▫Privacidad▫Disponibilidad 

•Ayudan a asignar los requisitos a los componentes de la aplicación.

•Identificación y priorización de las amenazas

•Identificar posibles vulnerabilidad

Arquitectura y Diseño

•Un conjunto estandarizado de principios de diseño de seguridad:

▫Principio de mínimo Privilegio▫Principio de Separación de Privilegios ▫Defensa en Profundidad▫Falla de forma segura.▫Codificación segura

Codificación segura.

•Mejor puerta para la detección de fallos

•Fijar las directrices de codificación y una lista de verificación.

•Uso de herramientas para el análisis

•Combinación de ambas herramientas

Pruebas de Seguridad

•Vista de un atacante hacia la aplicación

•Los testers utilizan una amplia variedad de herramientas

•Todos ellos sufren de falsos positivos