You are on page 1of 5

Desarrollo de Cdigo Seguro

22 y 27 de Septiembre de 2004

Facultad Regional Concepcin del Uruguay Universidad Tecnolgica Nacional

Seguridad en el Ciclo de Vida del Software


Conceptos Introductorios. Seguridad en las Distintas Etapas del Ciclo de Vida. Otras Tcnicas de Ingeniera que Favorecen la Seguridad del Cdigo.

Gabriel Arellano
arellanog@frcu.utn.edu.ar

Alejandro de Brito Fontes


debritoa@frcu.utn.edu.ar

Introduccin
As como un proyecto de software no comienza con la codificacin, la incorporacin de seguridad en un proyecto de software no comienza con la implementacin de tecnologas de seguridad. Las medidas de seguridad deben incorporarse desde la primera etapa del proyecto. Es por ello que necesitamos revisar nuestra metodologa de diseo para hacerla consciente de la seguridad. La metodologa elegida es Rational Unified Process. Hemos elegido esta metodologa porque, a nuestro entender, es una de las que mejor se adapta a la incorporacin de medidas y procedimientos de seguridad as como a las prcticas de diseo que comentaremos luego.

Rational Unified Process


Sntomas de problemas en un proyecto de desarrollo: Falta de comprensin de las necesidades del cliente. Imposibilidad de manejar cambios en los requerimientos. Mdulos que no pueden funcionar juntos. Software dificil de mantener o expandir. Descubrimiento tardo de errores serios de diseo. Software de poca calidad. Software de performance inaceptable. Imposibilidad de deshacer cambios. Proceso de construccin y lanzamiento poco confiable.

Rational Unified Process


Causas de problemas en un proyecto de desarrollo: Manejo no planificado de requerimientos. Comunicacin imprecisa y ambigua. Demasiada complejidad. Inconsistencias no detectadas en requerimientos, diseos e implementacin. Pruebas insuficientes. Evaluacin subjetiva del estado del proyecto. Fallo al atacar los riegos. Propagacin de cambios descontrolada. Automatizacin insuficiente.

Rational Unified Process


Si se tratan las causas, no solo se eliminan los sntomas, sino que se est en mejor posicin de desarrollar y mantener software de calidad de manera repetible y predecible. RUP se basa para esto en seis buenas prcticas: Desarrollar software de manera iterativa. Manejar los requerimientos. Usar arquitecturas basadas en componentes. Modelar visualmente el software. Verificar constantemente la calidad del software. Controlar los cambios del software.

Rational Unified Process


Rational Unified Process consta de cuatro etapas: Incepcin: donde se definen la visin, el caso de negocio y el alcance del proyecto. Elaboracin: donde se definen la planificacin, las caractersticas y el diseo de alto nivel. Construccin: donde se construye el producto y se hacen refinamientos al diseo. Transicin: donde el producto se deja listo para el cliente, esto incluye lanzamiento, entrega, capacitacin y soporte.

Seguridad en RUP
Etapa de incepcin: En la etapa de incepcin la seguridad no es an un tpico de discusin a menos que el objetivo sea un producto de seguridad. An si es demasiado temprano para discutir riesgos o tecnologas de seguridad. Si embargo puede ser til reconocer la importancia de la seguridad para las etapas posteriores e inlcuir un miembro del equipo que sea responsable por los aspectos de seguridad.

Seguridad en RUP
Etapa de elaboracin: Obtencin de requerimientos: qu informacin de seguridad deberamos recolectar en este etapa? Determinar los activos. Determinar los actores. (Dueos de los datos) Determinar los casos de uso. (Roles de cada actor) Requerimientos legales y de negocios. Restricciones legales y de negocios. Requerimientos de auditora y no repudio. Existe actualmente una poltica de seguridad.

Seguridad en RUP
Etapa de elaboracin: Identificacin de activos: debemos determinar qu vamos a proteger. Esto no es tarea fcil ya que tenemos activos que pueden ser tangibles o intangibles. Valoracin de activos: debemos determinar el valor econmico y no econmico de lo que vamos a proteger. En la mayora de los casos los activos intangibles son los que tienen un mayor valor econmico. Determinacin de amenazas: debemos descubrir las amenazas a los activos que identificamos, su probabilidad de ocurrencia y nuestra poltica de manejo.

Seguridad en RUP
Etapa de elaboracin: Arquitectura del sistema: la arquitectura del sistema puede permitirnos entender como los mecanismos de seguridad se integran al sistema, como se maneja la confianza y como se comportar el sistema frente a un ataque. En la arquitectura debera especificarse un modelo alto nivel de amenazas y referencias a los documentos que describen los procedimientos de seguridad. Tambin deberan enumerarse las medidas de seguridad a implementar, pero teniendo en cuenta que las tecnologas en s no brindan seguridad.

Seguridad en RUP
Etapa de construccin: Diseo detallado y Patrones de diseo: identificar patrones en un mundo lleno de problemas a resolver es un paso significativo hacia una solucin. Es una manera de aprovechar lo hecho y evitar repetir los mismos errores una y otra ves. As como existen patrones de diseo para sistemas de informacin existen patrones de diseo de seguridad. Estos patrones son esencialmente buenas prcticas puestas en forma de plantilla.

Seguridad en RUP
Etapa de construccin: Implementacin y Prueba: aqu es donde deberamos aplicar nuestras prcticas de codificacin segura. Adems debemos poner especial atencin a las pruebas, ya que para tengan algn significado debern ser bien planificadas, ejecutadas y documentadas. En algunos ambientes los sistemas deben estar certificados en cuanto a seguridad. Que un sistema est certificado no implica que sea seguro, ya que algunas certificaciones evalan las capacidades de seguridad de un sistema y no si puede ser hackeado.

Seguridad en RUP
Etapa de transicin: En esta fase el software es entregado a los usuarios finales y al equipo que realizar la operacin y soporte del mismo. En esta etapa es necesario: Asegurarse que la documentacin describe los aspectos de seguridad asociados al sistema. Verifique que los documentos legales (como acuerdos de confidencialidad) se hayan terminado. Asegrese que el personal de operaciones est al tanto de los procedimientos de manejo de errores y de los planes de contingencia.

Seguridad en RUP
Etapa de elaboracin: Revisin de la arquitectura de seguridad . Talleres de seguridad. Talleres de programacin segura. Etapa de construccin: Prueba de seguridad de los componentes. Prueba de seguridad del sistema. Prueba de seguridad de la interfaz. Etapa de transicin: Auditora de seguridad en el ambiente de producin. Revisiones peridicas de cumplimiento.

Resumen
En resumen podemos enumerar: Disear con la seguridad en mente. Utilizar Rational Unified Process. Utilizar un lenguaje de modelado visual (UML). Disear modularmente. Emplear patrones de diseo. Utilizar programacin orientada a objetos. Modelar en tres capas (three tier).

Modelo de Tres Capas

Recursos
Libros: The Rational Unified Process: An Introduction Philippe Kruchten - Ed. Addison Wesley. Pattern-Oriented Analysis and Design Sherif Yacoub, Hany Ammar - Ed. Addison Wesley. Recursos on-line: Best Practices for Secure Development http://members.rogers.com/razvan.peteanu Security Design Patterns - Sasha Romanosky

You might also like