Você está na página 1de 13

Ingeniera de software

Seguridad del
software
Erick Hernndez Toledo
Alexis Trejo Espinoza
Ricardo Omar Lugo Vargas

Seguridad del software

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.

IDENTIFICAR LAS MEDIDAS DE SEGURIDAD QUE REFIERE LA


INGENIERA DE SOFTWARE EN EL PROYECTO DE SOFTWARE A
DESARROLLAR .

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

Una mala configuracin al momento de implementar la aplicacin podra deshacer toda la


seguridad implementada en las capas anteriores.
Tanto la aplicacin como el software de base deben configurarse de manera segura al
momento de poner el software en produccin.

IDENTIFICAR LOS PUNTOS QUE PERMITEN ESTABLECER LA


CONFIABILIDAD DEL SOFTWARE.

La confiabilidad de Software es una prctica cuantitativa que puede ser implementada en


organizaciones de cualquier tamao bajo distintos modelos de desarrollo.
Estos son:

Uso esperado relativo de las funcionalidades del sistema:


Se centra en caracterizar de manera cuantitativa el uso esperado del sistema mediante
la definicin del llamado perfil de operacin del sistema. Permite optimizar el uso de los
recursos en las funciones que tengan un mayor impacto dentro del sistema.
Requerimientos de calidad definidos por el cliente:
Se refiere al enfoque al cliente mediante el establecimiento de objetivos cuantitativos
asociados a la calidad del producto. A satisfaccin de dichos objetivos permite
establecer un balance entre los costos del producto, as como la satisfaccin de las
necesidades del cliente.

ESTABLECER LA DIFERENCIA ENTRE SEGURIDAD Y FIABILIDAD DEL


SOFTWARE.

Fiabilidad del software


Se define en trminos estadsticos como la probabilidad de operacinlibre de fallos de un
programa de computadora en un entorno determinado y durante un tiempo especfico.

Seguridad del software


Se centra en la identificacin y evaluacin de los riesgos potenciales que pueden producir un
impacto negativo en el software y hacer quefalle el sistema completo.

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.

SEGURIDAD ENFOCADO A LOS PRODUCTOS DE SOFTWARE


El concepto de seguridad hacia los productos de software es los primeros pasos dentro de la
concientizacin de los ingenieros de software acerca de la importancia de obtener un software
seguro.

Existe un nuevo paradigma de programacin, la programacin orientada a aspectos, este nos


permite poder encapsular requerimientos o conceptos tpicamente no funcionales, como la
seguridad, que esta se convierte en una herramienta atractiva para el desarrollo de software
seguro.
Este tipo de seguridad nos permita encapsular las polticas de seguridad de forma separada e
independiente del resto del sistema, una de las principales ventajas que nos implica son:

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.

MAPA MENTAL (CONCEPTO DE RIESGOS)

RIESGOS DENTRO DEL PROYECTO DESARROLLO DE SOFTWARE


El riesgo dentro de un proyecto de desarrollo de software se puede decir que es una variacin
de resultados esperados, en donde esa misma variacin puede ser de un carcter aleatorio y
en muchas ocasiones fuera del control del tomador de decisiones generndose del problema
dentro de la incertidumbre.
Existen dos componentes bsicos dentro de los riesgos del proyecto que son:

Imprevisto aleatorio: Que es el comportamiento o valor que pueda tomar la variable


aleatoria a la que se enfrenta o bajo la cual debe trabajar y tomar decisiones un ente
decisor.
Vulnerabilidad: Que es lo desprotegido o vulnerable que se encuentra y toda una
gestin, en este caso un proyecto ante uno de estos comportamientos o imprevistos
aleatorios.
Existen varias formas de poder afrontar los riesgos que son:
Reactiva: Se reacciona al presentarse los problemas o imprevistos. Tecnica de lso
bomberos.
Proactiva: Se busca una anticipacin o prediccin de los problemas o imprevistos y
tener planes de contingencia.
Existen varios tipos de metodologas para identificar dichos riesgos es hacer una lista de
comprobacin de elementos de riesgo y para elaborarla se analizan una serie de subconjuntos
de riesgo conocidos y predecibles en las siguientes subcategoras genricas:
Tamao del producto: Riesgos asociados al tamao del software, a mayor tamao
mayor riesgo.
Impacto del negocio: Son los riesgos asociados a las limitaciones impuestas por la
gestin o por el mercado.
Riesgos con el cliente: Riesgos asociados a la sofisticacin del cliente y la habilidad
del desarrollador para comunicarse con l a tiempo. Es la definicin de un buen o un
mal cliente, donde por mal cliente se entiende un cliente de alto riesgo.
Definicin del proceso: Son los riesgos asociados al grado de definicin del proceso
de software y su seguimiento, como son errores de diseo y anlisis.
Entorno de desarrollo: Riesgos asociados con la disponibilidad y la calidad de
herramientas que se van a emplear en la construccin del producto, calidad de
herramientas de gestin, anlisis, diseo.
Riesgos tecnolgicos: Son los riesgos implcitos en la complejidad que tendr el
sistema a construir y la tecnologa de punta que contiene el sistema.
Tamao y experiencia de la plantilla: Estos son riesgos asociados con la
experiencia tcnica y de proyectos de los ingenieros de software que van a realizar el
trabajo.

SOLUCIONES PARA RIESGOS DEL PROYECTO DE SOFTWARE

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

Você também pode gostar