Você está na página 1de 7

qwertyuiopasdfghjklzxcvbnmqw

ertyuiopasdfghjklzxcvbnmqwert
yuiopasdfghjklzxcvbnmqwertyui
opasdfghjklzxcvbnmqwertyuiopa
sdfghjklzxcvbnmqwertyuiopasdf
ghjklzxcvbnmqwertyuiopasdfghj
klzxcvbnmqwertyuiopasdfghjklz
xcvbnmqwertyuiopasdfghjklzxcv
bnmqwertyuiopasdfghjklzxcvbn
mqwertyuiopasdfghjklzxcvbnmq
wertyuiopasdfghjklzxcvbnmqwe
rtyuiopasdfghjklzxcvbnmqwerty
uiopasdfghjklzxcvbnmqwertyuio
pasdfghjklzxcvbnmqwertyuiopas
dfghjklzxcvbnmqwertyuiopasdfg
hjklzxcvbnmqwertyuiopasdfghjk



4.1 Seguridad de software desarrollo del software
4.2 Seguridad en el ciclo de
4.3 Confiabilidad del software
4.4 Ingeniera de seguridad

26/05/2014

David Lpez Mrquez
Ing. Doralina Hernndez Lechuga




David Lpez Mrquez 1
Seguridad en Ingeniera de Software 2014
Seguridad en Ingeniera de Software
La seguridad de software aplica los principios de la seguridad de informacin al desarrollo
de software.

Information security
(La seguridad de informacin) se refiere a la seguridad de informacin comnmente como
la proteccin de sistemas de informacin contra el acceso desautorizado o la modificacin
de informacin, si est en una fase de almacenamiento, procesamiento o trnsito.
Tambin la protege contra la negacin de servicios a usuarios desautorizados y la
provisin de servicio a usuarios desautorizados, incluyendo las medidas necesarias para
detectar, documentar, y contrariar tales amenazas.

Muchas preguntas con respecto a la seguridad, son relacionadas al ciclo vital de software.
En particular, la seguridad del cdigo y el proceso de software; deben de ser considerados
durante la fase del diseo y desarrollo.
Adems, la seguridad debe de ser preservada durante la operacin y el mantenimiento
para asegurar la integridad de una parte (pedazo) de software.

Una gran cantidad de seguridad usada en los Sistemas de Redes de hoy, nos pueden
engaar en la creencia que nuestros trabajos como diseadores de sistema de seguridad
ya han sido realizados. Sin embargo, las cadenas y computadoras son increblemente
inseguras. La falta de seguridad se origina en dos problemas fundamentales: Los sistemas
que son tericamente seguros pueden ser inseguros en la prctica, Adems los sistemas
son cada vez ms complejos.

La complejidad proporciona ms oportunidades para los ataques. Es mucho ms fcil
probar que un sistema es inseguro que demostrar que uno es seguro -- probar la
inseguridad, simplemente una toma ventaja de ciertas vulnerabilidades del sistema.

Por otra parte, probando un sistema seguro, requiere demostrar que todas las hazaas
posibles puedan ser defendidas contra (muy desalentadora), si no imposible la tarea.
Actualmente, no hay ninguna solucin singular para asegurar la ingeniera de software. Sin
embargo, hay mtodos especficos que mejoran la seguridad de los sistemas. En


David Lpez Mrquez 2
Seguridad en Ingeniera de Software 2014
particular, podemos mejorar la confiabilidad de software. Tambin podemos mejorar
nuestra comprensin de los requisitos de un pedazo de software.

Buena Prctica
La seguridad requiere ms manejo y riesgo de mitigacin, de la que requiere la tecnologa.
Como un desarrollador, uno primero debe de determinar los riesgos de una aplicacin
particular.
Por ejemplo, el Web site tpico de hoy puede ser sujeto de una variedad de riesgos; la
desfiguracin o la negacin distribuida de ataques del servicio.
Una vez que se identifiquen los riesgos, identificar medidas de seguridad apropiadas llega
a ser manejable.
En particular, al definir los requisitos, es importante considerar cmo la aplicacin ser
utilizada. Con ese conocimiento uno puede decidir, s o no, utilizar caractersticas
complejas como contabilidad, auditora etc.

Otro asunto potencialmente importante es como soportar el nombramiento del producto.
El aumento de los sistemas distribuidos ha hecho el nombramiento cada vez ms
importante. Tpicamente, el nombramiento esta manejado por rendezvous: un principal
exporta un nombre y lo anuncia en alguna parte, y alguien que desea utilizar el nombre lo
busca en los libros y directorios de telfono. Por ejemplo, en un sistema como el sistema
del descubrimiento del recurso, los recursos y los individuos que usan esos recursos deben
ser nombrados.

A menudo hay cosas buenas y malas con respecto al nombramiento: mientras que el
nombramiento puede proporcionar a un nivel de direccin, tambin puede crear
problemas adicionales si los nombres no son estables. Los nombres pueden permitir que
los directores desempeen diversos papeles en un sistema determinado que pueda
tambin ser til.


La norma ISO 12207 define el Ciclo de Vida del Software como Un marco de referencia
que contiene los procesos, las actividades y las tareas involucradas en el desarrollo, la
explotacin y el mantenimiento de un producto de software, abarcando la vida del
sistema desde la definicin de los requisitos hasta la finalizacin de su uso.



David Lpez Mrquez 3
Seguridad en Ingeniera de Software 2014
Existen distintos modelos de Ciclo de Vida, que determinan cuales son y de qu manera se
ejecutan las etapas del desarrollo de software. Cada modelo presenta sus propias
caractersticas y alcances de estas etapas. Para este artculo hemos considerado las
siguientes etapas: Expresin de Necesidades y Especificaciones (Requerimientos), Anlisis,
Diseo, Implementacin, Pruebas y Mantenimiento.

ISO 27001 en el Ciclo de Vida del Software

Como ya se mencion, la mayora de las organizaciones sustentan su operacin en
sistemas informticos. Esto ha convertido que la gestin de estos sistemas, incluyendo la
ISM, sea un tema crtico dentro de ellas.

En la actualidad, esta situacin se ha manejado a travs de los estndares de IS, que
presentan el problema de seguridad como un conjunto de controles que representan
garantas para las distintas vulnerabilidades de seguridad. Por otro lado, se debe
considerar que tambin existen normas nacionales que no necesariamente se alinean a
los estndares internacionales, lo que provoca que la organizacin deba cumplir como
ambos requerimientos.

Esto se agrava an ms, si se considera una organizacin gubernamental, que adems,
debe cumplir con las normas internas de gobierno. Esto pone a la organizacin en un
problema respecto de qu estndar aplicar o qu nivel de cumplimiento lograr en los
estndares que le interesa conseguir.

En el pasado, la industria en general consideraba aumentado productividad como el
aspecto ms importante de Tecnologa de dotacin lgica. Poca consideracin fue dada
referente confiabilidad o seguridad del producto de software. Estos ltimos aos, el papel
del software y el hardware se ha convertido en el comando y el control de complejo y
sistemas costosos de los cuales las vidas humanas pueden depender. Los ingenieros deben
reconocer que el software es justo otro componente del sistema, y que este componente
puede contener los errores o los defectos que puede causar acontecimientos indeseados
en el sistema del hardware l estn controlando.

Los ingenieros de seguridad del sistema deben trabajar con los tcnicos y los expertos del
dominio para conseguir requisitos funcionalidad a descompuesta y seguridad-crtica
puesta en ejecucin correctamente en software por las Software Engineers. Un proceso
de la seguridad del software por las mejores prcticas de la industria, tales como IEEE STD
1228-1994 o equivalente, se debe desarrollar y adherir para a los mtodos y a las tcnicas


David Lpez Mrquez 4
Seguridad en Ingeniera de Software 2014
para identificar las insuficiencias y los errores potenciales del diseo del software que
pueden causar peligros o acontecimientos indeseados del producto.

La seguridad del sistema de software, un elemento de la seguridad total y programa de
desarrollo del software, no se puede permitir funcionar independientemente del esfuerzo
total. Los sistemas mltiples simples y altamente integrados estn experimentando un
crecimiento extraordinario en el uso de computadoras y software para supervisar y/o
controlar subsistemas o funciones seguridad-crticos.

A especificacin del software el error, el defecto de diseo, o la carencia de requisitos
seguridad-crtico genricas pueden contribuir a o causar un fallo del sistema o una
decisin humana errnea. Para alcanzar un nivel aceptable de la seguridad para el
software usado en usos crticos, la ingeniera de la seguridad del sistema de software se
debe dar nfasis primario temprano en la definicin de los requisitos y el proceso del
diseo conceptual del sistema. El software Seguridad-crtico debe entonces recibir nfasis
de la gerencia y anlisis continuos de la ingeniera a travs del desarrollo y ciclos vitales
operacionales del sistema.

La confiabilidad de software significa que un programa particular debe de seguir
funcionando en la presencia de errores

Los errores pueden ser relacionados al diseo, a la implementacin, a la programacin, o
el uso de errores. As como los sistemas llegan a ser cada vez ms complejos, aumenta la
probabilidad de errores. Como mencionamos, es increblemente difcil demonstrar que un
sistema sea seguro.

Ross Anderson dice que la seguridad de computacin es como programar la computadora
del Satn. Software seguro debe de funcionar abajo de un ataque. Aunque casi todos los
software tengan errores, la mayora de los errores nunca sern revelados debajo de
circunstancias normales. Un atacante busca esta debilidad para atacar un sistema.

Muchos de los problemas de la seguridad de hoy son relacionados con el cdigo
defectuoso. Por ejemplo: El Morris Internet Worm (el gusano Internet de Morris) utiliz
overflow en un programa de UNIX para ganar acceso a las computadoras que ejecutaron
el programa. Los ataques de buffer overflow han sido el tipo de ataque ms comn en las
ltimos diez aos e implican el sobre grabar instrucciones en el programa.


David Lpez Mrquez 5
Seguridad en Ingeniera de Software 2014
Especficamente, una cantidad fija de memoria en la pila, puede ser reservado por el
usuario; si la entrada de informacin del utilizador es ms grande que este espacio
reservado, el usuario puede sobre grabar los instrucciones de la programa. Si esto se hace
cuidadosamente, el usuario puede insertar sus propias instrucciones en el cdigo del
programa, as haciendo la mquina receptora realizar operaciones arbitrarias dictados por
el atacante. Mientras que tales ataques se pueden prevenir tpicamente con bounds
checking (revisando el tamao de la entrada de informacin antes de copiarla), sta es
una cuestin de prctica de programacin que confiamos en que el programador mismo
seguir.

El aspecto difcil de buffer overflows es que pueden ocurrir en una gran cantidad de
lugares en cualquier programa, y es difcil de prevenir el suceso por todas partes. Este ha
sido el caso en el pasado, especialmente, en los ltimos 10 aos.


Este curso trata sobre Ingeniera de Seguridad entendida como los mtodos para disear y
construir sistemas que permanezcan confiables a pesar de posibles actos maliciosos o a
errores de diverso tipo incluyendo las fallas de carcter fortuito.

Tradicionalmente se ha dado una particular atencin a la criptografa como el centro de
las actividades asociadas a la seguridad en sistemas de diversa naturaleza, como veremos
a lo largo de este curso hay mucho ms que eso si queremos disear e implementar un
entorno confiable.

Los sistemas se han vuelto cada vez ms complejos, y esa complejidad es la que permite
que haya ms y ms fallas de seguridad. En la medida en que los sistemas estn
constituidos por mltiples componentes que interactan permanentemente, cada espacio
de interaccin se convierte en una oportunidad para aquellos que quieren subvertir la
seguridad establecida.

Incluso cuando se piensa en la criptografa como una herramienta para proteger nuestros
sistemas, no solo es importante la fortaleza del algoritmo de encriptamiento, cuentan
tambin la calidad de la clave, la seguridad con que se guarda, donde se guarda, que tipo
de password se exige al usuario. Y nada de esto tiene ninguna utilidad si un hacker ha
logrado ingresar a una de las computadoras que estn envueltas en la comunicacin.



David Lpez Mrquez 6
Seguridad en Ingeniera de Software 2014
El inters por tanto de este curso est centrado en darle al estudiante una visin clara de
los problemas de seguridad a los que hoy da nos enfrentamos y cules son las medidas
que pueden ayudar a reducir esos riesgos.

Esta visin, por la naturaleza del problema tiene que ser necesariamente una visin
sistmica, de no ser as, ninguna medida que implementemos tiene la esperanza de
funcionar adecuadamente.

Cuando diseamos un sistema de seguridad debemos tomar en cuenta que uno de
nuestros principales enemigos es el usuario mismo. Su confianza casi ciega en las
computadoras y lo que estas hacen le hace una persona vulnerable. Los sistemas
informticos se han vuelto cada vez ms y ms complejos, con lo que es prcticamente
imposible que no fallen, y las fallas siempre pueden ser usadas por personas maliciosas
para atacar el sistema.

El problema empeora notablemente gracias a la Internet. Un hacker exitoso es probable
que decida publicar su ataque y compartir su habilidad tcnica con otros. Esta es la razn
por la que gente con pocos conocimientos y habilidad tcnica pueden convertirse en
atacantes exitosos de sistemas relativamente complejos.

Multiplicando de esta forma el nmero de ataques realizados a diversos sistemas. Una
medida til de cuan vulnerables estn siendo nuestros sistemas se puede conseguir
poniendo trampas atractivas en Internet y midiendo cuanto demora en ser atacados. El
tiempo es sorprendentemente breve. En el caso de sistemas basados en Linux, en
promedio 72 horas desde que el sistema es puesto en funcionamiento hasta que un
hacker tiene control de la cuneta del administrador.

Algunos ejemplos de sistemas en los que la seguridad es un aspecto fundamental son los
siguientes:

La contabilidad de un banco.
Los cajeros automticos.
Los mecanismos de proteccin fsica, como alarmas y sensores en general,
destinados a detectar intrusos no deseados.
Los servicios en lnea, va Internet.
Obviamente en aplicaciones militares.

Você também pode gostar