Escolar Documentos
Profissional Documentos
Cultura Documentos
Seguridad del
software
Erick Hernndez Toledo
Alexis Trejo Espinoza
Ricardo Omar Lugo Vargas
NDICE
Introduccin...............................................................................................................2
Identificar las medidas de seguridad que refiere la ingeniera de software en el proyecto de
software a desarrollar...................................................................................................2
Identificar los puntos que permiten establecer la confiabilidad del software.........................5
Establecer la diferencia entre seguridad y fiabilidad del software........................................6
Seguridad enfocado a los productos de software..............................................................7
Concepto de riesgos....................................................................................................9
Mapa mental (concepto de riesgos)..............................................................................10
Riesgos dentro del proyecto desarrollo de software........................................................11
Soluciones para riesgos del proyecto de software...........................................................12
Referencias...............................................................................................................12
Ingeniera de software
INTRODUCCIN
La seguridad de software aplica los principios de la seguridad de informacin al desarrollo de
software se refiere a la seguridad de informacin comnmente como la proteccin de
sistemas de informacin contra el acceso desautorizado o la modificacin de informacin.
Incluyendo las medidas necesarias para detectar, documentar, y contrarrestar tales
amenazas. La seguridad del cdigo y el proceso de software; deben de ser considerados
durante la fase del diseo y desarrollo.
En la actualidad prcticamente todo sistema debe incorporar cuestiones de seguridad para
defenderse de ataques maliciosos. El desarrollador ya no slo debe concentrarse nicamente
en los usuarios y sus requerimientos, sino tambin en los posibles atacantes.
1. Anlisis de requerimientos.
Se deben identificar aquellos requerimientos funcionales que tendrn impacto en los aspectos
de seguridad de la aplicacin.
Algunos son:
Requerimientos con normativas locales o internacionales.
Tipo de informacin que se transmitir o procesar.
Requerimientos de registros de auditora.
2. Diseo
Definir los roles, permisos y privilegios de la aplicacin.
Se debe disear el modo en el que los usuarios se van a autenticar, contemplando
aspectos tales como los mecanismos o factores de autenticacin con contraseas,
tokens, certificados, etc.
Posibilidades de integrar la autenticacin con servicios externos y los mecanismos que
tendr la aplicacin para evitar ataques.
Contemplar el modo en el que se proteger la informacin sensible en trnsito o
almacenada; segn el caso, se puede definir la implementacin de cifrado, hashes o
truncamiento de la informacin.
3. Codificacin
Una vez concluido el diseo, le toca a los desarrolladores el turno de codificar los distintos
componentes de la aplicacin. Es en este punto en donde suelen incorporarse, por error u
omisin, distintos tipos de vulnerabilidades.
Ejemplos:
Vulnerabilidades de inyeccin
Cross Site Scripting
Errores en manejo de sesiones
Como as tambin otras vulnerabilidades no ligadas directamente con las aplicaciones WEB,
como desbordamiento de buffer, denegacin de servicio, etc.
Los Frameworks de desarrollo de aplicaciones son una buena ayuda en este punto, ya que
ofician de intermediario entre el programador y el cdigo, y permiten prevenir la mayora de
las vulnerabilidades conocidas.
4. Testing
La labor del equipo de Testing es la de encontrar y reportar errores funcionales de la
aplicacin. Para esto, se desarrollan casos de test basados en la funcionalidad esperada.
A esto denominamos testing funcional y bsicamente consiste en validar que la aplicacin
haga lo que se esperaba que hiciera.
El testing de seguridad se basa principalmente en probar la aplicacin con escenarios no
planificados, incluyendo valores mutados, fuera de rango, de tipo incorrecto o mal formados,
acciones fuera de orden, etc.
5. Implementacin
Diferencias:
La fiabilidad del software utiliza el analisis estadistico para determinar la probabilidad
de que pueda ocurrir un fallo del software.
La seguridad del software examina los modos segn los cuales los fallos producen
condiciones que pueden llevar a accidentes.
Mayor reusabilidad.
Mejoras sustanciales respecto al mantenimiento, modificaciones, etc.
Mayor grado de especializacin.
Menor complejidad del sistema.
CONCEPTO DE RIESGOS
Los principales conceptos bsicos para el concepto de riesgos que deben de tomar en cuenta
son:
Riesgo: Es cualquier eventualidad que provoque que un sistema informtico no pueda
desarrollarse en tiempo, con el presupuesto asignado, que no se pueda atender a las
necesidades del negocio o que cumpla con las expectativas del cliente, que este no este junto
con las metas y que dentro del contexto sea organizacional.
Incertidumbre: Cualquier acontecimiento que llegue a caracterizar al riesgo puede o no
puede ocurrir.
Perdida: Si el riesgo se convierte en una realidad, dentro de ella ocurrirn unas
consecuencias no deseadas o perdidas.
Gestin de riesgo: Los objetivos principales son poder identificar, dirigir y eliminar las
fuentes de riesgo antes de que empiecen a afectar a la finalizacin satisfactoria de un
proyecto de software. La gestin continuada de los riesgos permite aumentar su eficiencia.
Esto le permite poder evaluar continuamente cualquier cosa que pueda ir mal, determinar
que riesgos son los importantes, implementar las estrategias para poder resolverlos y
asegurad la eficacia de las estrategias.
Existen varias soluciones para los riesgos del proyecto del software, todas estas son
explicadas en el punto anterior, pero para poder saber cundo es que se debe aplicar una
solucin para cada uno de los riesgos, debemos de tomar ciertos fundamentos de cundo es
que se aplica un riesgo y cuando no:
En dado caso que la situacin se perciba como un riesgo que se asegura
(probablemente con una probabilidad de 1 o 100%): Esto no viene siendo un riesgo,
porque ya esta hecho, ms bien sera un problema que uno tiene que resolver.
Si una situacin es imposible (probabilidad cero): No es un riesgo, porque sus
probabilidades son obsoletas que llegue a pasar, as que por lo tanto no debera de
tomar tanta importancia.
Si algo indeseable no causa problemas al negocio: No es un riesgo, es algo indeseable
que el proyecto de software no quera que pasara, pero no por ello es un riesgo que
ellos deberan de verificar al 100% o categorizar como riesgo, ms bien esto sera una
molestia.
REFERENCIAS
http://es.slideshare.net/jaimesf6/fundamentos-de-confiabilidad-en-el-desarrollo-del-software
http://sg.com.mx/content/view/271
http://rosendaithuejutla.blogspot.mx/
http://www.buenastareas.com/ensayos/Fiabilidad-Del-Software/3998949.html
http://es.slideshare.net/stward35/riesgos-9715928
http://upcommons.upc.edu/bitstream/handle/2099/11778/a25.pdf
https://sites.google.com/a/itsur.edu.mx/ingenieria-de-software/desarrollo-del-curso/5-seguridaden-ingenieria-de-software
http://www.dlsiis.fi.upm.es/docto_lsiis/Trabajos20052006/Gasca.pdf
http://www.angelfire.com/ri2/aspectos/Tesis/Final.pdf
http://dis.um.es/~barzana/Informatica/IAGP/IAGP_riesgos.html
http://www.academia.edu/9263751/Ingenieria_de_Software_Riesgos