ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Seguridad En Ing Sofware


Enviado por   •  4 de Junio de 2014  •  2.301 Palabras (10 Páginas)  •  189 Visitas

Página 1 de 10

UNIDAD 4: SEGURIDAD EN INGENIERÍA DE SOFTWARE

4.1 SEGURIDAD DE SOFTWARE

El concepto de la seguridad en los sistemas de software es un área de investigación que ha pasado a ser vital dentro de la Ingeniería de Software. Con el crecimiento de Internet, y otras aplicaciones sobre redes, como el comercio electrónico, correo electrónico, etc., la posibilidad de ataques se ha incrementado notablemente, como también lo han hecho las consecuencias negativas de estos ataques.

En la actualidad prácticamente todo sistema debe incorporar cuestiones de seguridad para defenderse de ataques maliciosos. El desarrollador ya no sólo debe concentrarse únicamente en los usuarios y sus requerimientos, sino también en los posibles atacantes. Esto ha motivado cambios importantes en el proceso de diseño y desarrollo de software para incorporar a la seguridad dentro de los requerimientos críticos del sistema.

Problemática actual de la seguridad en el software

Los puntos débiles más importantes de la Ingeniería de Software con respecto a la seguridad pueden ser clasificados en dos grandes categorías:

• Fallas para implementar software seguro.

• Fallas para implementar seguridad en el software.

Fallas para implementar software seguro

Lamentablemente, la mayoría de las herramientas que tiene disponible un desarrollador de software sufren de fallas propias de seguridad. Una de las debilidades más trascendentes al momento de implementar software seguro surge del estado de los lenguajes de programación desde el punto de vista de la seguridad. Son escasos los lenguajes que proveen primitivas “seguras” que ayuden al programador a escribir un mejor código.

Dos de los lenguajes de programación más usados en la actualidad, C y C++, presentan graves problemas de seguridad. Esto se debe a que al utilizar muchos de sus servicios provistos por sus librerías estándar se introducen fallas de seguridad que pasarán inadvertidas al programador debido a que éste las considera libre de errores.

Las razones por las cuales estas fallas “internas” permanecen en la actualidad son varias: mal entendimiento de los protocolos de seguridad, una visión ingenua respecto a lo que un sistema debiera considerar como seguro, aproximaciones no serias a la seguridad como “corregir luego” o “no se van a dar cuenta”, o directamente desconocimiento, ya que lamentablemente estas fallas no son conocidas universalmente, y existen pocas fuentes de información para escribir código seguro.

Fallas para implementar seguridad en el software

En la actualidad, el desarrollador de software que quiera incorporar seguridad a su sistema se enfrentará con la difícil realidad de las técnicas de programación tradicionales, y también, con una Ingeniería de Software que recién está aprendiendo sobre la seguridad. Típicamente la seguridad es considerada como un requerimiento no funcional. Luego, debido a los problemas de planificación y presupuesto, la seguridad sólo es tenida en cuenta una vez que los requerimientos funcionales son obtenidos.

Objetivos para un software seguro

En pos de conseguir un software seguro, se debe dejar claro qué se entiende por seguridad, para así luego poder establecer requisitos mínimos que debe satisfacer un sistema que pretenda ser considerado seguro. Como definición del concepto de seguridad en software, se adoptará en este trabajo la definición que propone Doshi Shreyas

software es un concepto multi-dimensional. Las múltiples dimensiones de la seguridad son:

• Autenticación: el proceso de verificar la identidad de una entidad.

• Control de acceso: el proceso de regular las clases de acceso que una entidad tiene sobre los recursos.

• Auditoria: un registro cronológico de los eventos relevantes a la seguridad de un sistema. Este registro puede luego examinarse para reconstruir un escenario en particular.

• Confidencialidad: la propiedad de que cierta información no esté disponible a ciertas entidades.

• Integridad: la propiedad de que la información no sea modificada en el trayecto fuente-destino.

• Disponibilidad: la propiedad de que el sistema sea accesible a las entidades autorizadas.

• No repudio: la propiedad que ubica la confianza respecto al desenvolvimiento de una entidad en una comunicación.

La seguridad puede tener diferentes significados en distintos escenarios. En general, cuando se habla de seguridad implica referirse a más de una de las dimensiones mencionadas anteriormente. Por ejemplo:

• Seguridad en correo electrónico: involucra confidencialidad, no repudio e integridad.

• Seguridad en compras online: implica autentificación, confidencialidad, integridad y no repudio.

Una vez definido el concepto de seguridad, se pueden establecer objetivos básicos para un software seguro:

• Independencia de la seguridad: la seguridad debe construirse y utilizarse de manera independiente de la aplicación.

• Independencia de la aplicación: la aplicación no debe depender del sistema de seguridad usado, debe ser desarrollada y mantenida en forma separada.

• Uniformidad: la seguridad debe aplicarse de manera correcta y consistente a través de toda la aplicación y del proceso que desarrolla la misma.

• Modularidad: mantener la seguridad separada. Entre otras ventajas, esto nos brindará mayor flexibilidad y menor costo de mantenimiento.

• Ambiente seguro: se debe partir de un entorno confiable. Es decir, las herramientas de desarrollo y lenguajes de programación no deben contener agujeros de seguridad.

• Seguridad desde el comienzo: la seguridad debe ser considerada como un requerimiento desde el inicio del diseño.

4.2 SEGURIDAD EN EL CICLO DE DESARROLLO DEL SOFTWARE

La mayor parte de las organizaciones desarrolla o contrata el desarrollo de aplicaciones propias para su gestión de negocio. Como todo software, estas aplicaciones pueden contener fallas de seguridad y a diferencia del software comercial, no se dispone de actualizaciones o parches liberados en forma periódica por el fabricante. El tratamiento de las vulnerabilidades en aplicaciones propias corre por parte de la organización que las desarrolla.

¿Qué está pasando en las organizaciones?

Lamentablemente es una práctica habitual en muchas organizaciones la “puesta en producción” de sistemas sin la participación del sector de Seguridad de la Información. Muchas otras veces, el sector de Seguridad se entera demasiado tarde, y no tiene suficiente margen de

...

Descargar como (para miembros actualizados) txt (16 Kb)
Leer 9 páginas más »
Disponible sólo en Clubensayos.com