seguridad software

9
ITSP ISC Página 1 INSTITUTO TECNOLÓGICO SUPERIO PROGRESO INGENIERÍA DE SOFTWARE MAESTRA: ING. LIGIA BEATRIZ CHUC US ALUMNOS: CANUL KANTUN RODRIGO CRUZ MENDOZA GAEL DOMINGUEZ MENESES EDUARDO INVESTIGACIÓN: SEGURIDAD EN INGENIERIA DE SOFTWARE 30 DE MAYO DEL 2013

Upload: eduardo-alejandro-dominguez-meneses

Post on 30-Oct-2015

15 views

Category:

Documents


0 download

TRANSCRIPT

7/16/2019 Seguridad Software

http://slidepdf.com/reader/full/seguridad-software 1/9

ITSP

ISC Página 1

INSTITUTO TECNOLÓGICO SUPERIO PROGRESO

INGENIERÍA DE SOFTWARE

MAESTRA:

ING. LIGIA BEATRIZ CHUC US

ALUMNOS:

CANUL KANTUN RODRIGO

CRUZ MENDOZA GAEL

DOMINGUEZ MENESES EDUARDO

INVESTIGACIÓN:

SEGURIDAD EN INGENIERIA DE SOFTWARE

30 DE MAYO DEL 2013

7/16/2019 Seguridad Software

http://slidepdf.com/reader/full/seguridad-software 2/9

ITSP

ISC Página 2

Contenido

4.1 Seguridad de software .................................................................................................................. 3

4.2 Seguridad en el ciclo de desarrollo del software .......................................................................... 3

4.3 Confiabilidad del software ............................................................................................................ 5

4.4 Ingeniería de seguridad ................................................................................................................. 6

Conclusiones ....................................................................................................................................... 8

Referencias .......................................................................................................................................... 9

Bibliografías........................................................................................................................................ 9

7/16/2019 Seguridad Software

http://slidepdf.com/reader/full/seguridad-software 3/9

ITSP

ISC Página 3

4.1 Seguridad de software

Es una actividad de garantía de calidad del software que se centra en la identificación y

evaluación de los riesgos potenciales que pueden producir un impacto negativo en el

software y hace que falle el sistema completo. Si se puede identificar pronto los riesgos en

el proceso de ingeniería del software podrán especificarse las características del diseño delsoftware que permitan eliminar o controlar los riesgos potenciales.

Como parte de la seguridad, se puede dirigir un proceso de análisis y modelado. Seidentifican los riesgos y estos se clasifican por su importancia y un grado de riesgo. Cuando

los riesgos en el sistema, se utilizan técnicas de análisis para asignar su gravedad y su

 probabilidad de ocurrencia. Para que esto sea efectivo se tiene que analizar el software en elcontexto del sistema completo.

Una vez que se identificado y analizado los riesgos se pueden especificar los requisitosrelacionados con la seguridad para el software. Esto es, la especificación puede contener 

una lista de eventos no deseables y las repuestas del sistema a estos eventos.

La seguridad del software examina los modos según los cuales los fallos producen

condiciones que pueden llevar a accidentes. Es decir, los fallos no se consideran en vacío,

sino que se evalúan en el contexto de un completo sistema basado en computadora.

4.2 Seguridad en el ciclo de desarrollo del software

Generalmente, la seguridad en el desarrollo software no está enfocada desde una

 perspectiva holística. La razón raíz es que en la mayoría de los casos la seguridad se

establece al final del ciclo del proyecto como consecuencia de la aparición de una nueva

amenaza o de un nuevo riesgo. Por tanto, estas urgencias desembocan en la búsqueda desoluciones que no atienden al sistema en su conjunto (interacción en entre sistemas).

Si tenemos en cuenta que estudios realizados apuntan a que más del 70% de las

vulnerabilidades de seguridad existentes provienen de la capa de aplicaciones, es un motivo

más que suficiente para preocuparse y ponerse manos a la obra.

Por este motivo, se oye cada más de la integración de la seguridad en el ciclo de desarrollo

de software (SDLC). Existen varias metodologías y certificaciones (ASAP, ISECOM,CSSLP, etc.) e incluso hay quien desarrolla sus propios métodos.

Teniendo todos en común, el tener en cuenta todo el ciclo de desarrollo, desde el análisishasta la puesta en servicio, pasando por los test y cerrando el ciclo con la fase de soporte y

mejora del sistema. En cualquier caso, la característica común más importante de todas

ellas, es sin duda alguna, un enfoque sistémico que les permite analizar el sistema en suconjunto.

7/16/2019 Seguridad Software

http://slidepdf.com/reader/full/seguridad-software 4/9

ITSP

ISC Página 4

Seguridad en el análisis de requerimientos

En esta etapa, se deben identificar aquellos requerimientos funcionales que tendrán impacto

en los aspectos de seguridad de la aplicación. Algunos de ellos son: requerimientos de

compliance con normativas locales o internacionales (ej: PCI, SOX, “A” 4609, etc.), tipo de

información que se transmitirá o procesará (ej.: Información pública o confidencial, datos personales, datos financieros, contra-señas, datos de pago electrónico, etc.) y

requerimientos de registros de auditoría (ej.: Qué debe registrar la aplicación en sus Logs).

Seguridad en el diseño

Antes de comenzar a escribir líneas de código, hay numerosos aspectos de seguridad que

deben ser tenidos en cuenta durante de la aplicación. Algunos de ellos son: diseño de

autorización (ej.: Definir los roles, permisos y privilegios de la aplicación), diseño

autenticación (aquí se debe diseñar el modo en el que los usuarios se van a autenticar,contemplando aspectos tales como los mecanismos o factores de autenticación con

contraseñas, tokens, certificados, etc. posibilidades de integrar la autenticación conservicios externos como LDAP, Radius o Active Directory y los mecanismos que tendrá la

aplicación para evitar ataques de diccionario o de fuerza bruta (ej.: bloqueo de cuentas,implementación de “captchas”, etc.), diseño de los mensajes de error y advertencia, para

evitar que los mismos brinden demasiada información y que ésta sea utilizada por atacantes

y diseño de los mecanismos de protección de datos (aquí se debe contemplar el modo en elque se protegerá la información sensible en tránsito o almacenada; según el caso, se puede

definir la implementación de encripción, hashes o truncamiento de la información).Una vez

que se cuenta con el diseño detallado de la aplicación, una práctica interesante es la de

realizar sobre el mismo un análisis de riesgo orientado a software. Existen técnicasdocumentadas al res-pecto, tales como Threat Modeling. Estas técnicas permiten definir un

marco para identificar debilidades de seguridad en el software, antes de la etapa decodificación. Como valor agregado, del análisis de riesgo orientado a software se puedenobtener casos de prueba para ser utilizados en la etapa de Testing/QA.

Seguridad en la codificación

Una vez concluido el diseño, le toca a los desarrolladores el turno de codificar los distintoscomponentes de la aplicación. Es en este punto en donde suelen incorporarse, por error u

omisión, distintos tipos de vulnerabilidades. Estas vulnerabilidades podríamos dividirlas en

dos grandes grupos a saber: vulnerabilidades clásicas y vulnerabilidades funcionales. Las

 primeras son bien conocidas y categorizadas. Como así también otras vulnerabilidades no

ligadas directamente con las aplicaciones WEB, como desbordamiento de buffer,denegación de servicio.

Los Frameworks de desarrollo de aplicaciones son una buena ayuda en este punto, ya que

ofician de intermediario entre el programador y el código, y permiten prevenir la mayoría

de las vulnerabilidades conocidas. Vulnerabilidades funcionales son aquellas ligadasespecíficamente a la funcionalidad de negocio que posee la aplicación, por lo que no están

 previamente categorizadas.

7/16/2019 Seguridad Software

http://slidepdf.com/reader/full/seguridad-software 5/9

ITSP

ISC Página 5

En la etapa de codificación, una de las reglas de oro es verificar todos los valores de entrada

y de salida. Esto es, asumir siempre que el valor pudo haber sido manipulado o ingresado

maliciosamente antes de ser procesado.

Testing / QA de seguridad

Tradicionalmente, la labor del equipo de Testing/QA fue la de encontrar y reportar errores

funcionales de la aplicación. Para esto, se desarrollan casos de test basados en la

funcionalidad esperada. A esto denominamos testing funcional y básicamente consiste envalidar que la aplicación haga lo que se esperaba que hiciera. Sucede que habitualmente

hay un desfasaje entre el diseño original de la aplicación (lo que se espera que haga) y la

implementación real (lo que realmente hace).

Aquí surgen 3 áreas bien definidas: lo que fue definido y la aplicación hace, lo que fue

definido y la aplicación no hace (errores funcionales) y lo que no fue definido pero laaplicación hace. Es en este último grupo, en donde habitualmente están las

vulnerabilidades, y el testing funcional clásico no es capaz de encontrarlas. Por este motivose necesitan nuevas técnicas para explorar lo desconocido.

El testing de seguridad se basa principalmente en probar la aplicación con escenarios no

 planificados, incluyendo valores mutados, fuera de rango, de tipo incorrecto omalformados, acciones fuera de orden, etc. Existen herramientas automáticas que pueden

ayudar al analista de QA en la búsqueda de errores. Las mismas son útiles por su velocidad

y capacidad de automatización, pero pueden causar falsos positivos, y por lo general no son buenas detectando vulnerabilidades funcionales. Es por esto que los mejores resultados

resultan de la combinación de técnicas automáticas y manuales.

Implementación / Puesta en producción

Una mala configuración al momento de implementar la aplicación podría echar por tierratoda la seguridad de las capas anteriores. Tanto la aplicación como el software de base

deben configurarse de manera segura al momento de poner el software en producción. En

este punto se deben contemplar tareas tales como: cambio de usuarios y contraseñas

iniciales o por defecto, borrado de datos de prueba y cambio de permisos de acceso. Estambién importante mantener una correcta separación de los ambientes de desarrollo,

testing y producción y procedimientos de traspaso seguro de uno a otro de estos ambientes.

4.3 Confiabilidad del software

La confiabilidad es un atributo que mide el grado en que un producto opera sin fallas bajocondiciones establecidas por un periodo de tiempo determinado. La confiabilidad es un

atributo cuantitativo que ha sido ampliamente analizado, estudiado y usado en otras

industrias para caracterizar la calidad de los productos o servicios.

7/16/2019 Seguridad Software

http://slidepdf.com/reader/full/seguridad-software 6/9

ITSP

ISC Página 6

En su concepción más general, la confiabilidad es un atributo que mide el grado en que un

 producto opera sin fallas bajo condiciones establecidas por un periodo de tiempo

determinado. Una falla es la manifestación percibida por el cliente de que algo no funcionacorrectamente e impacta su percepción de la calidad. Un defecto es el problema en el

 producto de software que genera una falla.

La confiabilidad de software significa que un programa particular debe de seguir 

funcionando en la presencia de errores. Los errores pueden ser relacionados al diseño, a la

implementación, a la programación, o el uso de errores. Así como los sistemas llegan a ser cada vez más complejos, aumenta la probabilidad de errores. Como mencionamos, es

increíblemente difícil demonstrar que un sistema sea seguro. Ross Anderson dice que la

seguridad de computación es como programar la computadora del Satan. Software segurodebe de funcionar abajo de un ataque. Aunque casi todos los software tengan errores, la

mayoría de los errores nunca serán revelados debajo de circunstancias normales. Un

atacante busca esta debilidad para atacar un sistema.

4.4 Ingeniería de seguridad

Auditorías en seguridad:

Las auditoriías en seguridad son una evaluación del conjunto de elementos relativos a la

seguridad de un sitio o de una organización. La auditoría se concentra en el análisis integral

del dispositivo de seguridad existente. Permite construir un diagnóstico y formular 

recomendaciones con el fin de elevar el nivel de seguridad. Puede referirse a la localidad

física de la empresa (o de sus filiales) así como a sus sucursales, almacenes, obras,

localidades de estancia en el extranjero de ejecutivos y personal.

Generalmente limitado a la seguridad física (infraestructura, control de acceso, servicio deguardias, video vigilancia, etc.), el rango de la auditoría puede extenderse a la organización

y a la administración de la seguridad en el seno de la empresa.

Plan general de seguridad:

El plan general de seguridad es el documento que especifica todos los elementos relativos a

la seguridad de un sitio o de una organización. Se trata de un documento metodológico con

una estructura didáctica que brinda al director de la empresa una visión integral de su

dispositivo de seguridad. Además, retoma el conjunto de procedimientos de seguridad y

organización general del sitio.

Plan de gestión de crisis:

El plan de gestión de crisis reúne los procedimientos a seguir por parte de la dirección de la

empresa en el caso de que se desencadene una crisis. Este plan define de manera precisa las

acciones que se deben llevar a cabo para manejar cada etapa de las crisis en sus tres

dimensiones (administrativa, operacional y de comunicación).

7/16/2019 Seguridad Software

http://slidepdf.com/reader/full/seguridad-software 7/9

ITSP

ISC Página 7

Plan de continuación de las actividades:

Este documento complementario al plan de gestión de crisis establece los procedimientos a

aplicar con para preservar la actividad y el funcionamiento de la empresa en condiciones de

crisis. El plan de continuación de actividades, que establece una organización y

 procedimientos específicos, funge como guía para que la dirección de la empresa puedaasegurar su retorno a un funcionamiento normal.

7/16/2019 Seguridad Software

http://slidepdf.com/reader/full/seguridad-software 8/9

ITSP

ISC Página 8

Conclusiones

Rodrigo Canul

LA seguridad se debe aplicar en todo momento ya que con ello podemos ahorrar muchosrecursos en vez de desperdiciarlos hay que tomar en en cuenta en todo momento los que

nos puede causar muchos problemas.

Gael Cruz

La seguridad en las aplicaciones de software debe abordarse desde el primer día del proceso

de desarrollo y a lo largo de todas las etapas del mismo. En cada una de estas etapas, se

 pueden realizar diversas actividades que en su conjunto ayudarán a aumentar la seguridad

de la aplicación de software que se está desarrollando.

Eduardo Domínguez

La seguridad no siempre debe tomarse en cuenta ya que es indispensable en todo el

 proyecto del software se debe sacar todo lo que puede ocasionar problemas al a software y

atacarlo cuando aún hay tiempo.

7/16/2019 Seguridad Software

http://slidepdf.com/reader/full/seguridad-software 9/9

ITSP

ISC Página 9

Referencias

http://www.softwareseguridad.com/queesunsoftwaredeseguridad.html 

http://www.slideshare.net/injcristianrojas/seguridad-de-software-una-introduccin-13414276 

http://www.indracompany.com/sostenibilidad-e-innovacion/neo/blog/articulo/ingenieria-

de-software-seguro 

http://www.prensariotila.com/pdf/TutorialCybsec_0710.pdf  

http://www.equipom45.es/m45blog/25-seguridad/144-seguridad-en-el-ciclo-de-desarrollo-

software.html 

http://grupoirena.com/index.php?option=com_content&view=article&id=72&Itemid=215 

http://sg.com.mx/content/view/271 

Bibliografías

 Nombre: Ingeniería del software un ejemplo practico

Edición: Quinta edición

Autor: Roger S. PressmanCasa editorial: McGrawHill

 Número de páginas: 601 paginas

Año de edición: 2002

 Nombre: Ingeniería del software un ejemplo practico

Edición: séptima edición

Autor: Roger S. PressmanCasa editorial: McGrawHill

 Número de páginas: 756 paginas

Año de edición: 2005