Vous êtes sur la page 1sur 7

INSTITUTO TECNOLGICO DE JIQUILPAN

SEGURIDAD EN EL DISEO Y CODIFICACIN DE


SOFTWARE.


CARRERA:

INGENIERIA EN SISTEMAS COMPUTACIONALES.


QUE
PRESENTA:

ROSANA ORTIZ NUEZ


ASESOR:

ING. LUIS IREPAN NEZ.




JIQUILPAN, MICH. 25 DE MAYO DEL 2013
Subsecretara de Educacin Superior
Direccin General de Educacin Superior Tecnolgica
Instituto Tecnolgico de Jiquilpan

INDICE:

REPASO.
SEGURIDAD EN EL DISEO
BUENAS PRCTICAS: SEGURIDAD EN EL DISEO.
ANLISIS DE RIESGOS.
MTODO STRIDE.
MTODO DREAD.
SEGURIDAD EN LA CODIFICACIN.
BUENAS PRCTICAS: CODIFICACIN SEGURA.


REPASO:
Seguridad en el ciclo de vida del software.
Entre ms avanza el tiempo y el software pasa por distintas etapas de desarrollo de
software, es ms costoso corregir errores. A pesar de que corregir errores en etapas
tempranas no es costoso es sumamente importante no cometerlos, para que
posteriormente no se vayan arrastrando hasta el final.



Seguridad en el anlisis de requerimientos del software.
Se deben identificar aquellos requerimientos funcionales que tendrn impacto en los
aspectos de seguridad de la aplicacin.
SEGURIDAD EN EL DISEO DE SOFTWARE:
Evitacin de fallas en el desarrollo.
Menos fallas en la etapa de diseo, significa menos fallas al momento codificacin y
ejecucin. Es decir, se debe de cuidar mucho no cometer errores desde etapas tempranas
para no provocar una especie de efecto domin en etapas futuras.
BUENAS PRCTICAS: SEGURIDAD EN EL DISEO DE SOFTWARE:
Tolerancia a fallas en el desarrollo.
Diseo de un sistema que detecte fallas al momento de ejecucin y las gestione de modo
que no corrompan el sistema.
Redundancia en el diseo.
Es importante incluir en el diseo la capacidad de un repuesto disponible si falla parte del
sistema. Es decir disear un componente que redunde las mismas caractersticas del otro.
Diversidad en el diseo.
Se emplea al disear componentes del sistema de distintos tipos, esto aumenta las
posibilidades de que no existan fallas iguales. Se debe combinar con la redundancia para
lograr un funcionamiento de tolerancia a fallos eficaz.
Procesos operacionales confiables.
Un proceso confiable tiene que disearse para evitar errores humanos, y al cometerse
stos, el software debe detectar el error y permitir su correccin.
Reduccin de superficie de ataque.
La posibilidad de un ataque es directamente proporcional a la superficie de ataque total
de la aplicacin. Se deben de cubrir o camuflajear muy bien los puntos dbiles del
software que se est elaborando o sus puertas traseras con el fin de evitar que el enemigo
pueda atacar por los lugares ms comnmente desprotegidos.





Criterio del menor privilegio
El criterio del menor privilegio se cita a continuacin tal cual:

Cada programa y cada usuario
del sistema debe operar utilizando
el menor conjunto de privilegios
necesario para completar el trabajo.

La proteccin de la informacin en sistemas de cmputo 1974
Este criterio hace referencia a que los usuarios nicamente deben de contar con los
privilegios necesarios para realizar sus tareas, ni ms ni menos, con eso existir un mayor
control dentro del sistema.
ANLISIS DE RIESGOS.
Permite identificar las amenazas de una aplicacin y cuantificar los riesgos a los que la
misma estar expuesta. Generalmente se hace en una escala tomando las ms
importantes como riesgos con amenazas de alto nivel y tratando de contrarrestarlas, en el
caso de caer en un fallo, tratar de que no sea tan devastador para el sistema y recuperarse
de l.
Mtodo STRIDE.
STRIDE es un acrnimo que representa el espectro de amenazas de seguridad que pueden
afectar a la aplicacin. Con ste mtodo se sugiere que el ingeniero de software piense no
como alguien que quiere contrarrestar ataques, si no como el mismo atacante, con el fin
de encontrar sus puntos dbiles en el sistema. A continuacin se describe a qu tipo de
amenaza se refiere cada letra del acrnimo.
Suplantacin de identidad (Spoofing Identity)
Como su nombre lo dice, se trata de robar datos confidenciales de credenciales de
autenticacin con el fin de entrar al sistema como un usuario privilegiado suplantando su
identidad.
Manipular datos (Tampering with Data)
Se refiere a los hoyos de seguridad dentro del software que permite la entrada a terceras
personas a las bases de datos y puedan manipular la informacin con un mal fin.

Repudio (Repudiation)
Este tipo de amenaza hace referencia al seguimiento de actividades de un usuario dentro
del sistema, con el fin de saber que modificaciones y ejecuciones ha realizado dentro del
software.
Divulgacin de informacin (Information Disclosure)
Cuando un sistema es atacado y se extrae informacin por ejemplo de la web y
posteriormente se publica sin licencias existe una divulgacin de informacin.
Denegacinde servicio (Denial of Service)
Cuando existe un bloqueo por fallo en el sistema y ste no puede recuperarse deniega el
servicio a los usuarios.
Elevacin de privilegios(Elevation of privilege)
Con esta amenaza se elevan los privilegios de usuarios comunes a super usuarios que
pueden manipular el sistema a ms alto nivel, generando desastres dentro de la
informacin que se maneja.
Mtodo DREAD.
Calcula el riesgo asociado a cada amenaza, ayudando a determinar qu respuesta dar a
cada amenaza, y priorizarlas segn el riesgo que representen.
Dao potencial (Damage Potencial)
En este tipo de daos se clasifica por ejemplo la prdida de mltiple informacin valiosa
en las bases de datos.
Reproductividad(Reproducability).
Cuando existe un fallo dentro del sistema y ste se va reproduciendo, causando un efecto
domin que termina derivando muchos ms fallos.
Explotabilidad (Exploitability)
Cuando hay amenazas dentro del sistema existen probabilidades de que sean altamente
explotables hasta ocasionar fallos terribles dentro del sistema.
Usuarios Afectados(Affected Users).
Puede que los fallos causen afecciones a ciertos usuarios que interactan con el software.
Descubrible(Discoverability)
Que tan fcil es descubrir el tipo de fallo que ocurrir muy probablemente en el futuro y
que tan factible es detenerlo.
SEGURIDAD EN LA CODIFICACION
La falta de controles adecuados en la codificacin, muchas veces deriva vulnerabilidades
dentro del sistema, especialmente en la etapa de testing y al momento de la
implementacin, donde es muy probable que se reflejen todos los fallos de codificacin.
BUENAS PRCTICAS: CODIFICACIN SEGURA.
8 lineamientos bsicos para una codificacin segura.
Controlar visibilidad de informacin
Validacin de entradas
Manejar excepciones
Minimizar uso de cdigos proclives a error
Ofrecer capacidades de reinicio
Comprobar los lmites
Incluir interrupciones a componentes externos
Nombrar constantes de valores del mundo real
CONCLUSIN.
La confiabilidad y seguridad de un software puede lograrse ante la deteccin de amenazas
en la etapa del diseo, as como la deteccin de fallas y eliminacin de stos antes de la
implementacin en la codificacin.
Cosas que NO debes olvidar:
La redundancia y diversidad son esenciales.
El anlisis de riesgos es fundamental.
Las arquitecturas ms confiables son aquellas diseadas con tolerancia a fallos.
La programacin confiable verifica validez de entradas.

REFERENCIAS BIBLIOGRFICAS:
Para obtener mayor informacin consultar las siguientes fuentes.
LIBRO:
[1] Sommerville, I. (2011). INGENIERIA DE SOFTWARE (Novena ed., Vol.1, pp. 261-386).
Mxico, DF: Pearson Education.
PGINAS WEB:
[2] Maulini, M. (2010, 11). Desarrollo y Seguridad de Software. Tecnologas Web.
Recuperado 05, 2014, de: http://tecnologiasweb.blogspot.mx/2010/11/medidas-
seguridad-en-el-desarrollo.html
[3] Milano, P. (2008, 09). Seguridad en el ciclo de vida del desarrollo de
software. Cybsec Systems. Recuperado 05, 2014, de:
http://www.cybsec.com.ar/upload/cybsec_Tendencias2007_Seguridad_SDLC.pdf
[4] Feck, C. (2012, 11). Modelado de Amenazas, una herramienta para el tratamiento de la
seguridad en el diseo de software. .UTN. Recuperado 05, 2014, de:
http://www.frsf.utn.edu.ar/cneisi2010/archivos/22/Modelado_de_Amenazas_en_el_dise
%C3%B1o_de_sistemas.pdf