Seguridad del software: El análisis de la fase del diseño


  Share  
|


Un diseño comprensivo proporciona soluciones al problema tratado por el producto, y también tomas en la consideración los efectos de la innovación. La seguridad de un uso también es creada y realzada por un diseño comprensivo.

Una vez que una organización deseche la idea de la seguridad como característica, llega a ser evidente que el rity del secu necesita la consideración temprano. Mientras que cada organización pudo tener diversos métodos de diseñar un producto o un uso, el acercamiento siguiente es útil para asegurar un alto nivel de seguridad en un diseño. La fase del diseño analizada a partir de tres puntos de vista:

· Global

· De organización

· Componente

El punto de vista global es la vista más alta del sistema; identifica las necesidades tratadas por el uso y su sistema de la característica. El punto de vista de organización destaca los componentes individuales que hacen para arriba el uso. El punto de vista componente va al nivel siguiente del granularity, examinando los detalles explícitos de cada componente y de su puesta en práctica. El acercamiento incremental usado aquí permite un análisis más profundo y más comprensivo que también proporcione un flujo de proceso fácilmente entendido. Esto ayuda a encargados y a los reveladores a poner los procedimientos apropiados en lugar para asegurar la consideración de la seguridad en su uso.

El Punto de vista Global

Muchos usos se presentan de una necesidad incumplida o de la insuficiencia de soluciones actuales. Un buen diseño identifica las preocupaciones siguientes de la seguridad:

· Las ediciones de seguridad se relacionaron con las soluciones existentes con el problema o la necesidad que era solucionada

· La respuesta del uso a esas ediciones de seguridad

· Las vulnerabilidades potenciales de la seguridad que existen en las innovaciones que son hechas

Un análisis global proporciona la información que un atacante encontraría de otra manera después de que se lance el uso. En esta fase, una arquitectura de la seguridad se debe definir para el uso. Esta arquitectura formaliza el nivel de la seguridad necesitado en un uso. Ayuda a establecer el alcance de la seguridad del uso identificando la relación del uso a sus alrededores y el nivel de la seguridad proporcionado por ellos. Una arquitectura de la seguridad también destaca la necesidad, y la cantidad, de la seguridad independiente que un uso debe proporcionar, tan bien como las características requeridas.

Un análisis y un establecimiento globales de una arquitectura de la seguridad se hacen vía la clasificación incremental de los módulos, de los componentes, de los interfaces y de los métodos usados en el uso. Su localización y relación el uno al otro y su exposición a los usos externos, a los usuarios y a los interfaces son puntos importantes.

El punto de vista global de un uso presenta inicialmente la "caja negra proverbial" que—los únicos detalles sabidos son ésos considerados por los forasteros. Estas características externas y requisitos funcionales entonces se separan en los módulos para el análisis de seguridad.

Buscando advisories del vendedor, los newsgroup, las listas que envían, y los foros en línea para vulnerabilidades divulgadas en la competición o usos similares son una buena manera de aprender sobre algunas de las ediciones de seguridad principales relacionadas con el uso. También ayuda a precisar soluciones ineficaces a las vulnerabilidades encontradas en usos similares.

Estudio De Caso, Fase I

Este ejemplo hipotético es un estudio de caso para el desarrollo de un uso del comercio del Internet. Este servicio permite que los usuarios conecten de sus browsers para hacer compras en línea.

El primer nivel en el diseño de este uso es la definición de sus capacidades, independiente de los métodos de la puesta en práctica usados. Estas características pudieron incluir el siguiente:

· La selección de un sistema operativo apropiado para recibir los usos

· Acceso de base de datos para el almacenaje de la información privada y pública

· Porción del Web

· Conectividad de estas piezas usando usos custom-developed

· Conectividad a las instituciones financieras para las transacciones

Del punto de vista global, un diseñador discierne las características de la seguridad requeridas para cada componente de estas funciones.

La base de datos almacena la información privada en muchos diversos usuarios, incluyendo contraseñas, números de la tarjeta de crédito, y la información del contacto. Para proteger esta información, la base de datos debe tener componentes de la seguridad que apoyen restricciones a los objetos y quizás a su cifrado.

El servidor del Web debe apoyar comunicaciones seguras con el protocolo seguro de la capa de los zócalos (SSL), y un cierto método de interconexión con los usos externos y la base de datos. Esto podía estar vía los servlets y los applet de Java, o los programas del cgi.

Las comunicaciones de la red son una parte inherente de este sistema. El software del servidor del Web y del servidor de la base de datos funciona probablemente en las máquinas separadas, por lo tanto se requieren los medios de asegurar la comunicación de la red entre ellas.

El componente pasado que se considerará es la conexión real a la organización que autoriza las transacciones. Ésta podría ser un banco o una compañía de la tarjeta de crédito que autoriza los gastos de los usuarios. Las conexiones se logran probablemente con el módem o el otro pedazo del equipo de las telecomunicaciones que obra recíprocamente con la organización financiera y realiza la validación. Estas conexiones requieren alta seguridad, para evitar el acceso de los usuarios desautorizados.

Estas penetraciones se espigan del conocimiento del campo, del análisis de los productos de competición, y de la familiaridad con requisitos del cliente. A este punto, la investigación diligente necesita ser hecha para documentar vulnerabilidades últimas y actuales de la seguridad en productos relacionados. La lista que resulta debe identificar las áreas del riesgo que necesitan tratar. Las características de la seguridad que faltan de la lista inicial de los requisitos se identifican a menudo con este análisis, otro de sus ventajas.

En nuestro ejemplo del comercio del Internet, los investigadores encontraron las vulnerabilidades siguientes en productos comparables:

· Las bases de datos no tenían ningún esquema de la protección, dando por resultado la exposición de la información del cliente privado.

· El servidor del Web tenía agujeros que permitieron la ejecución del código arbitrario en el sistema. La configuración del defecto del servidor también permitió el directorio traversal, que permite que los usuarios externos tengan acceso a muchos archivos y directorios privados en el sistema.

· Los usos del cgi usados para comunicarse con la base de datos tenían vulnerabilidades que permitieron que los atacantes alejados personificaran a otros clientes.

La investigación también indica que la protección de los datos, los desbordamientos del almacenador intermediario, la configuración del defecto, y las ediciones de la validación de la entrada necesitan ser evitados porque estas vulnerabilidades ocurrieron con frecuencia con usos similares. También demostró que los vendedores han agregado las características y los remiendos de la seguridad que protegerán contra estos problemas. Esto hace control de la autentificación y de acceso los requisitos importantes, junto con seguridad de la red.

A este punto, el diseñador sabe de las vulnerabilidades asociadas al uso, a los métodos por los cuales otras organizaciones responden a ellos, y a un sistema de las características importantes de la seguridad que forman la base de una arquitectura de la seguridad. La arquitectura de la seguridad se convierte más lejos en la fase próxima del diseño.

El Punto de vista De organización

La seguridad no es una ciencia exacta; sus necesidades son específicas a cada uso y ambiente. Por lo tanto, no es suficiente mirar seguridad solamente de la opinión global. Aunque un uso de otra manera bien diseñado pudo existir independientemente de el resto de los usos en el sistema, la interacción de todos los componentes en que el uso pudo plantear amenazas de la seguridad. El punto de vista de organización identifica los elementos o los grupos individuales de los elementos que forman el uso entero, sus funciones, y sus relaciones con uno a. Un elemento podría ser una función, una clase, un proceso, o un sistema de estos elementos que son agrupados por su relación al uso.

Un uso se hace típicamente de varios módulos funcionales, tales como el interfaz utilizador, los componentes del establecimiento de una red o de la comunicación, o las herramientas del almacenaje de datos y de la recuperación.

Mientras que un módulo pudo parecerse razonablemente seguro, su relación con los otros componentes se pudo ejecutar insecurely. Similar al análisis de las interacciones del uso, el análisis llano de organización toma los requisitos funcionales y determina la arquitectura usada. Los requisitos funcionales permiten que el diseñador identifique un sistema de los componentes y de los métodos que proporcionan la funcionalidad; un análisis de la seguridad entre ellos como obran recíprocamente las producciones las opciones más seguras para la inclusión con el uso.

La identificación, la organización, y la clasificación incrementales de cada componente en el uso continúa en esta fase. Un lugar lógico a comenzar—y particularmente sospechado en términos de la seguridad—es los bordes de un módulo. Los bordes son los puntos de la entrada o de la salida donde los datos cruzan los límites entre los módulos. Por ejemplo, los datos cruzan límites entre los módulos durante estas funciones:

· El pasar de datos como parámetros

· Fijar variables globales

· Memoria compartida de manipulación

· Datos de la escritura a los archivos

· Enviar datos a través de un canal de comunicaciones tal como la red

· Recepción de la entrada del usuario

Estudio De Caso, Fase II

En la fase de organización de diseñar el uso del comercio del Internet de la muestra, cada componente del uso—el servidor del Web, el servidor de la base de datos y los usos asociados—se categoriza en su módulo funcional para el análisis adicional.

El servidor de la base de datos tiene un componente del almacenaje, un componente del control de la autentificación y de acceso, y un componente de la comunicación. El servidor del Web tiene el componente de la porción del Web, un modelo de programación externo, y componentes seguros del comunicación del cliente y seguros de la base de datos de la comunicación. Las interacciones entre estos componentes forman una trayectoria definible, con varios puntos donde la seguridad debe ser fuerte. Después de una interacción entre el servidor del Web y el cliente, un browser del Web del cliente transmite datos sensibles al servidor del Web. Estos datos entonces se pasan al uso de encargo que obra recíprocamente con la base de datos y la institución financiera. Después de la trayectoria de datos con el uso, un revelador puede observar puntos de la vulnerabilidad en la comunicación del cliente, la interacción del uso del servidor del Web, la comunicación del servidor del Web a la base de datos, y la interacción entre ellas.

Los requisitos de la seguridad comienzan a tomar forma. El uso debe tratar estas áreas del riesgo y proporcionar seguridad en estas formas:

· Asegure la comunicación al browser del Web del cliente en la forma de comunicación cifrada de la red, de autentificación de usuarios, y de mecanismos del control de acceso en su información.

· Interacción segura entre el browser del Web y el uso del e-comercio para asegurar la seguridad del sistema

· Integridad del uso del programa del comercio

· Asegure las comunicaciones con la base de datos

· Seguridad de los objetos de la base de datos

De estos requisitos, una arquitectura comienza a tomar forma. El uso del SSL en el servidor del Web protege las comunicaciones del servidor-a-server-to-browser. El uso tendrá su propio mecanismo de la autentificación que permita que los clientes firmen adentro con seguridad. Los mecanismos de la validación y de la protección de datos también serán puestos en ejecucio'n en una manera organizada que utilice solamente el privilegio requerido mínimo de funcionar. La funcionalidad será incorporada en el uso para la protección del objeto y el cifrado en el servidor de la base de datos. Los detalles reales de la puesta en práctica serán desarrollados en la fase componente final.

Los métodos pertinentes de la seguridad se levantarán a la superficie cuando las preguntas siguientes se hacen en la fase de organización:

· ¿Cómo protegeremos la información pasada?

· ¿Cuáles son los efectos si un módulo pasa datos falsos a otro?

· ¿Los apremios de los datos se han definido?

· ¿Hay un método preferido de pasar los datos que se prestan a la seguridad creciente?

· ¿Qué componentes, usos, y usuarios necesitan el acceso a los datos? ¿Qué clase de acceso es inalterable—requerido o leído y escribe capacidades?

El Punto de vista Componente

El punto de vista final de el cual el análisis del diseño ocurre es la disección de los componentes individuales dentro de un uso. Los detalles más pequeños del diseño y de la puesta en práctica pueden introducir obvio y los problemas obscuros de la seguridad que son difíciles de encontrar poste-lanzan. La puesta en práctica pobre puede también deshacer el esfuerzo puesto en la seguridad de un diseño.

Algunas de las precauciones sugirieron aquí caída en qué se consideran las buenas prácticas de la codificación y no son necesariamente específico de la seguridad, pero tienen un efecto en la seguridad de un uso.

La arquitectura de la seguridad que se define para un uso asignará que por mandato haya series de cheques y de balances con los cuales el uso deba conformarse. Estos cheques y equilibrios proporcionarán un alto grado de aseguramiento que un uso actúe de una manera uniforme en el acontecimiento de datos o de la información inesperados.

La visión componente examina cada pedazo que forme un módulo. (los módulos, alternadamente, forman el uso.) Estos componentes se deben analizar para sus características individuales de la seguridad y las interacciones con otros componentes dentro de ese módulo. Puntos de partida cuando son las ediciones programáticas que examinan dentro de un módulo

· Valores de vuelta

· Precedencia y requisitos previos

· Validación de datos

· Respuesta y recuperación identificadas

· Permisos y privilegio

Los valores de vuelta son indicadores del éxito o de la falta dentro de una función. Los componentes de un módulo individual se hacen de las funciones, que el interoperate y ha establecido las relaciones que permiten que el programa se realice correctamente. Los reveladores deben también entender lo que significa cuando una función falla, y debe reaccionar apropiadamente a esa falta. Una comprensión completa de estas relaciones permite que un revelador entienda las dependencias entre las funcionalidades. De acuerdo con estas dependencias, los componentes dentro de un módulo se pueden organizar para realzar confiabilidad y seguridad.

Los datos son dinámicos en cualquier uso que—viajen entre las funciones y los módulos, y a los usos separados, alterando la ejecución del uso inicial como lo hacen tan. Con la identificación de los módulos que forman un uso, y los componentes que forman posteriormente esos módulos, la trayectoria de datos con un uso entero puede ser remontada. Los puntos de entrada entre los módulos y las funciones son los elementos giratorios que afectan el éxito o la falta del uso, por lo tanto validar datos en estos puntos es vital. El trabajo de común acuerdo con la validación es una respuesta definida a los datos inválidos y a las condiciones anómalas. Muchos usos no pueden formular un mecanismo de la recuperación en el acontecimiento de acontecimientos inesperados; esto da lugar a menudo a los usos inestables que se estrellan en la muestra más temprana de datos imperfectos.

El conocimiento de los permisos y de los privilegios requeridos para los componentes para funcionar proporciona la información importante para los diseñadores de uso. Después del modelo de menos privilegio está una buena práctica del diseño; recomienda el aislamiento y la limitación del privilegio en un uso corriente. En la mayoría de los casos, los altos niveles del privilegio se necesitan muy infrecuentemente y solamente en casos aislados. Muchos usos que requieren los privilegios elevados para una porción pequeña de funcionalidad confían el uso entero a ese nivel más alto del privilegio para su existencia entera. Esto crea un ambiente peligroso en donde cada vulnerabilidad se encuentra que existe en este modo privilegiado.

El privilegio se refiere sobre todo a los varios niveles de la autoridad en un sistema operativo. En cada nivel más alto del privilegio, los usuarios autorizados tienen acceso progresivamente a más recursos en el el sistema, tal como memoria, los otros usos, los dispositivos de hardware, y datos. El usuario de la raíz en UNIX, el administrador, y la cuenta especial del SISTEMA en Windows ejemplifican el nivel más alto del privilegio. Hay a menudo los varios grados de acceso que proporcionan control de acceso granular, también. El control de acceso granular permite los métodos definibles del acceso y del rechazamiento para el uso. Los archivos, el tráfico de la red, los usuarios, y los objetos se pueden limitar a un sistema de los permisos explícitos que permiten o rechazan el acceso a ellos.

Estudio De Caso, Fase III

El análisis componente de la fase de nuestro uso del comercio del Internet mira los componentes individuales usados en el uso y su seguridad. Incorporando esta etapa, los diseñadores deben tener un sentido de la trayectoria de datos completa y las relaciones entre los módulos. El paso granular siguiente establece la base para la puesta en práctica del uso. Las metas de este análisis son determinar los privilegios de los varios componentes, un sentido de la organización que sea utilizado durante la puesta en práctica, y conocimiento de cómo ocurrirá la puesta en práctica. Aquí, los requisitos previamente resueltos se traducen a métodos detallados de la puesta en práctica.

Los diseñadores eligen un servidor del Web y un servidor de la base de datos a este punto, basado en los requisitos establecidos. En nuestro ejemplo, un servidor del Web de Apache fue elegido porque puede ser hecho para apoyar comunicaciones del SSL y tiene un método bien documentado a obrar recíprocamente con usos externos. Un servidor de la base de datos del oráculo fue elegido porque proporciona la flexibilidad, el scalability, y la seguridad requerida en la base de datos, y también porque apoya la interacción Java-basada. Java fue elegida como la lengua y la extensión para poner el software real del comercio en ejecucio'n del Internet porque funciona con los servidores del Web y de la base de datos y apoya un modelo fuerte, configurable de la seguridad.

El servidor del Web y el servidor de la base de datos entonces son diseñados determinando los métodos más seguros para los componentes siguientes:

· Configuración del defecto del servidor

· Configuración de la seguridad del sistema operativo subyacente

· Privilegios requeridos al interoperate con los usos de Java

· Componentes del control de acceso

El software del comercio se organiza para proporcionar estos componentes:

· Requisitos del privilegio para realizar sus funciones

· Los puntos de entrada de la interacción y de la comunicación del servidor del Web

· Métodos de control de la autentificación y de acceso del usuario

· Métodos de la seguridad de la sesión para prevenir la personificación de usuarios

· Los puntos de entrada de la interacción y de la comunicación del servidor de la base de datos

De acuerdo con este análisis y organización, se determina que la única porción del sistema que requiere privilegios elevados del sistema operativo es el uso del comercio. También necesita un sistema interno de niveles del privilegio hacer cumplir control y la autentificación de acceso de usuario. Las configuraciones del defecto permiten solamente la funcionalidad necesitada para la operación del sistema, y cada sistema operativo seguridad-se endurece con el mismo acercamiento del minimalist.

El uso del comercio es donde existe la mayoría de los componentes de la seguridad. Tiene la responsabilidad de validar las credenciales del usuario, fijando permisos en base de datos se opone, no perdiendo de vista cada sesión del usuario, y haciendo la inteligencia real requerir para guardar el funcionamiento del sistema.

El uso del comercio necesita privilegios elevados solamente al controlar arranque y parada del servidor del Web y de la base de datos. El método más seguro para realizar estas acciones se determina para ser un proceso separado del regulador que aumenta sus privilegios que realiza en ese entonces una acción del arranque o de la parada; entonces abandona sus privilegios hasta la petición siguiente. El proceso del regulador se comunica solamente con el uso del comercio y utiliza mensajes authenticados para iniciar el arranque o la parada del sistema.

El uso del comercio también cifrará la información privada antes de almacenarla en la base de datos para proteger las credenciales del usuario y la información financiera. En el acontecimiento de las condiciones anómalas y de error tales como datos de entrada inválidos, faltas de la autentificación del usuario, y comunicaciones falladas, el diseño llama para un sistema de divulgación que pueda registrar esta información y responder apropiadamente a los acontecimientos.

La puesta en práctica de sistema se levanta naturalmente del análisis continuo proporcionado en las fases de análisis globales, de organización, y componentes precedentes. Los reveladores utilizan las guías y los procedimientos en lugar para ayudarles a escribir el código que mantiene el alto estándar de la seguridad establecido.

esto es un artículo agregado por Tamas Querolin


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions