Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Gabriel Arellano
arellanog@frcu.utn.edu.ar
debritoa@frcu.utn.edu.ar
Introduccin
Cdigo Seguro
Cualquier aplicacin que opere en un ambiente de red o en
Internet est expuesta a ataques.
Es ms, podemos tener la certeza de que eventualmente
ser atacada. Por esto, las aplicaciones deben ser
especficamente diseadas para funcionar en ambientes
hostiles.
Debemos disear nuestras aplicaciones
utilizando cdigo seguro.
Cdigo seguro: por cdigo seguro no nos referimos a
cdigo de aplicaciones utilizadas en seguridad informtica.
Nos referimos a cdigo diseado para soportar
ataques de usuarios maliciosos.
Consecuencias de un Ataque
Las consecuencias de un ataque exitoso a una aplicacin
de la organizacin son muchas y variadas, entre ellas
podemos enumerar:
Prdida de operatividad.
Deterioro de la imagen de la empresa.
Prdidas monetarias.
Prdida de Clientes.
Consecuencias legales. (Ley 24.766)
Seguridad Informtica
diseen
Autenticidad.
Confidencialidad.
Integridad.
Disponibilidad.
Seguridad Informtica
En la actualidad, virtualmente todas las computadoras
servidores, desktops, PDA's, telfonos celulares y otros
dispositivos embebidos estn interconectados. Esto
genera gran cantidad de oportunidades para los
desarrolladores de software, tanto en el desarrollo de
aplicaciones para estos dispositivos, como en la utilizacin
de los mismos para emplearlos en soluciones a medida.
Esto incrementa sensiblemente la probabilidad de un
ataque exitoso. Por ejemplo, aplicaciones no diseadas
para estar en ambientes interconectados hacen a los
dispositivos susceptibles de sufrir un ataque, simplemente
porque su desarrollador no se imagino que esa aplicacin
se empleara en un ambiente de red.
Requerimientos de Seguridad
El caso anterior nos da un claro ejemplo de lo cuidadosa
que tiene que ser la determinacin de requerimientos de
seguridad de nuestra aplicacin.
Aqu enumeramos algunas consideraciones:
-
Relevancia.
Claridad de la Solucin.
Calidad sobre Cantidad.
Involucre a todos los interesados.
La seguridad como un proceso no como una tecnologa.
Fallar de manera segura (Fail-Safe)
Defensa en profundidad.
Determinacin de privilegios:
- Mnimo privilegio.
- Privilegio necesario.
Recomendaciones
Recomendaciones (Cont.)
Degradarse ordenadamente y Fallar en seguro.
Determine acciones y valores por defecto.
Mantener la simpleza.
Modularize al mximo.
No confiar en la seguridad por oscuridad.
Adoptar medidas tolerables por los usuarios.
Asegrese que alguien sea responsable por cada dato.
Asegrese de poder reconstruir eventos.
Elimine los eslabones dbiles.
Construya varios niveles de seguridad.
Reutilice el cdigo que sabe es seguro.
No se confe en la seguridad de los enlatados.
Recursos
Libros:
Writing Secure Code
Michael Howard, David LeBlanc - Ed. MS Press.
Secure Coding: Principles & Practices
Mark G. Graff, Kenneth R. van Wyk - Ed. O'Reilly
Recursos on-line:
Secure Programming for Linux and Unix HOWTO
David A. Wheeler
http://www.dwheeler.com/secure-programs
Best Practices for Secure Development
Razvan Peteanu
http://members.rogers.com/razvan.peteanu