seguridad en el desarrollo de sistemas

27
SEGURIDAD EN EL DESARROLLO DE SISTEMAS

Upload: angelica-islas

Post on 21-Mar-2016

213 views

Category:

Documents


0 download

DESCRIPTION

Explica de manera general la seguridad que debe tener un software durante su aplicacion

TRANSCRIPT

SEGURIDAD EN EL DESARROLLO

DE SISTEMAS

INTRODUCCIÓNHoy en día, es imprescindible un adecuado sistema de protección en los Sistemas Informáticos que garanticen la privacidad de los datos, hasta la seguridad en las transacciones de información, el control de acceso, los protocolos

de comunicación, las transferencias de datos, etc.

Durante el desarrollo de programas, siempre se

deben realizar diferentes tipos de pruebas, y son

precisamente estas ejecuciones las que ponen el

riesgo el sistema que se está utilizando en general.

SEGURIDAD EN EL DESARROLLO DE

SOFTWARE

¿CUÁL ES EL PAPEL DE LA SEGURIDAD EN EL

DESARROLLO DE SW?Un sistema de seguridad en el desarrollo de software, evita

que se produzcan errores generales en los sistemas

operativos que se utilizan tanto para el desarrollo del mismo, como para las pruebas piloto

del funcionamiento del software.

Cuando se trabaja online, el programa de Seguridad en el

Desarrollo de SW que estemos utilizando, debe también ser a prueba de Virus Informáticos, especialmente de aquellos que roban información o dañan el

Sistema Operativo, imposibilitando así continuar con dicha actividad.

¿CUÁL ES EL PAPEL DE LA SEGURIDAD EN EL

DESARROLLO DE SW?

Estudios realizados apuntan que más del 70% de las

vulnerabilidades de seguridad existentes provienen de la capa de aplicaciones, es un motivo

más que suficiente para preocuparse y enfocarse en

ello.

SEGURIDAD EN EL CICLO DE DESARROLLO

SOFTWARE

SEGURIDAD EN EL CICLO DE DESARROLLO

SOFTWARE

Tomando en cuenta el ciclo de desarrollo, desde el análisis hasta la puesta en servicio, pasando por los test y cerrando el ciclo con la

fase de soporte y mejora del sistema. La característica más

importante, es un enfoque sistémico que permita analizar el

sistema en su conjunto.

Podemos concluir que introduciendo criterios de

seguridad desde las fases más tempranas del desarrollo, nos

ayudará a obtener aplicaciones más seguras a un

coste más bajo.

SEGURIDAD EN EL CICLO DE DESARROLLO

SOFTWARE

SEGURIDAD EN EL

DESARROLLO DE

APLICACIONES

INTRODUCCIÓN

Seguridad desde el puntode vista del programador,

es decir, aquello que se debe tomar en cuenta en las etapas de diseño y codificación de los programas.

PRINCIPIOS DE SEGURIDAD

Los objetivos fundamentales de la Seguridad Informática son:

CONFIDENCIALIDAD: El acceso a los activos del sistema está limitado a usuarios autorizados.

PRINCIPIOS DE SEGURIDAD

INTEGRIDAD: Los activos del sistema sólo pueden ser borrados o modificados por usuarios autorizados.

DISPONIBILIDAD: El acceso a los activos en un tiempo razonable está garantizado para usuarios autorizados.

¿POR QUÉ SE ESCRIBEN PROGRAMAS INSEGUROS?

Poca bibliografía y la formación específica de los programadores

es escasa.

Es difícil programar de manera segura; no se suelen usar

métodos de verificación formal.

¿POR QUÉ SE ESCRIBEN PROGRAMAS INSEGUROS?

La seguridad no es un requisito a la hora de elegir

un programa; incrementa los costes económicos, requiere más tiempo y esfuerzo en el desarrollo e implantación de

aplicaciones.

IDENTIFICACIÓN DE REQUISITOS DE

SEGURIDADCommon Criteria o CC (ISO/IEC 15408:1999):

Estándar internacional para identificar y definir requisitos

de seguridad.

Se suele emplear para redactar dos tipos de documentos:

IDENTIFICACIÓN DE REQUISITOS DE

SEGURIDAD

PERFIL DE PROTECCIÓN O PP: Es un documento que define las propiedades de seguridad

que se desea que tenga un producto, básicamente se

trata de un listado de requisitos de seguridad.

IDENTIFICACIÓN DE REQUISITOS DE

SEGURIDAD

OBJETIVO DE SEGURIDAD (SECURITY TARGET O ST): Es

un documento que describe lo que hace un producto que es relevante desde el punto de

vista de la seguridad.

ENTORNO Y OBJETIVOS DE SEGURIDAD

El primer paso para redactar un PP o un ST es identificar el entorno de seguridad:

¿En qué entorno vamos a trabajar?

¿Qué activos debemos proteger? ¿Para que se va a usar el producto?

ENTORNO Y OBJETIVOS DE SEGURIDAD

Obtenemos una serie de supuestos sobre el entorno (tipos de usuarios, tipo de

red, etc.), una lista de posibles amenazas y una

descripción de las políticas de seguridad de la organización.

ENTORNO Y OBJETIVOS DE SEGURIDAD

Por último se define un conjunto de objetivos de seguridad, demostrando

que con ellos se combaten las amenazas y se cumplen

las políticas.

REQUISITOS FUNCIONALES (1)

AUDITORÍA DE SEGURIDAD: Permitir el registro de eventos (hay que identificar cuales pueden ser interesantes desde el punto de vista de la seguridad).

NO RECHAZO: Uso de técnicas para verificar la identidad del emisor y/o el receptor de un mensaje.

PROTECCIÓN DE DATOS DE USUARIO: Especificar una política para la gestión de datos de usuario (control de

acceso y reglas de flujo de información).

IDENTIFICACIÓN Y AUTENTICACIÓN: Uso de técnicas de validación de identidad.

REQUISITOS FUNCIONALES (2)

REQUISITOS FUNCIONALES (2)

GESTIÓN DE SEGURIDAD: Definición de perfiles de usuario y niveles de acceso asociados.

PRIVACIDAD: Soporte del anonimato de los usuarios.

AUTODEFENSA: La aplicación debe incluir sistemas de validación de funcionamiento y fallar de manera segura si esa validación no se cumple.

REQUISITOS FUNCIONALES (3)

UTILIZACIÓN DE RECURSOS: Soporte a la asignación de recursos, tolerancia a fallos, etc.

CONTROL DE ACCESO: Soporte de sistemas que limiten el número y tipo de sesiones que proporcionen información al usuario para ayudar a la detección de intrusos.

DESARROLLO DE APLICACIONES SEGURAS

Para desarrollar una aplicación segura debemos tener en cuenta los siguientes aspectos:

1.Control de la Entrada: validar todas las entradas

2.Gestión de Memoria: desbordamiento de buffers

DESARROLLO DE APLICACIONES SEGURAS

3. Estructura interna y diseño del programa.

4. Llamadas a Recursos Externos: Scripts, bibliotecas, …

5. Control de la Salida: formato, restricciones, ...

CONCLUSIONESSe puede resolver más del 95% de las vulnerabilidades evitando problemas

conocidos:

Validar las entradas, evitar desbordamientos de buffer y controlar contenidos y formatos de salida.

Estructura el Programa: Minimizar privilegios, evitar condiciones de carrera.