Está en la página 1de 158

TESIS PUCP

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No comercial-Compartir bajo la misma licencia 2.5 Per. Para ver una copia de dicha licencia, visite http://creativecommons.org/licenses/by-nc-sa/2.5/pe/

PONTIFICIA UNIVERSIDAD CATLICA DEL PER


FACULTAD DE CIENCIAS E INGENIERA

ANLISIS, DISEO E IMPLEMENTACIN DE UNA APLICACIN PARA LA ADMINISTRACIN DE LAS HERRAMIENTAS DE SEGURIDAD EN UNA RED LOCAL
Tesis para optar por el Ttulo de Ingeniero Informtico, que presenta el bachiller:

Dennis Stephen Cohn Muroy

ASESOR: Ingeniero Corrado Daly Scaletti

Lima, octubre del 2008

Resumen
Desde el ao en que se estableci la primera red de computadoras (ARPANET), hasta nuestros das, Internet ha pasado a travs de un largo proceso evolutivo. Siendo utilizado actualmente como fuente de conocimiento, medio de comunicacin y una amplia plataforma para hacer negocios (ebusiness). Lastimosamente, tambin es un canal a travs del cual se perpetran ataques que han ocasionado prdidas de informacin no slo a las empresas de diversos tamaos, sino tambin a las personas naturales. Como mecanismo de prevencin, es necesario hacer uso de una serie de herramientas de tipo software y/o hardware, as como polticas de seguridad a fin de proteger la confidencialidad, integridad y disponibilidad de la informacin. Sin embargo, las soluciones presentes en el mercado, a pesar de poseer un adecuado desempeo en cuanto a la prevencin y la deteccin de los ataques, carecen de un entorno intuitivo y de fcil uso, lo cual influye en el registro de reglas dbiles o errneas; provocando agujeros en el permetro de la seguridad de la red local. Es por ello, que en el presente documento se plantea como solucin analizar, disear e implementar una aplicacin para facilitar la administracin de las herramientas Iptables, Squid y Snort; utilizadas para proteger la informacin dentro de una red local.

Dedicado a: Todas aquellas personas quienes buscan usar la ciencia en pos de ayudar a los dems.

Agradecimientos: A mi madre, a mi asesor, a mis profesores y a mis amigos quienes me apoyaron a lo largo de estos cinco aos. A mis compaeros del grupo Linux-IDES por presentarme las bondades del FOSS.

NDICE
Introduccin...............................................................................................................1 Captulo 1: Generalidades........................................................................................2 1.1.Definicin del Problema..................................................................................2 1.2.Marco Conceptual del Problema.....................................................................4 1.3.Plan de Proyecto...........................................................................................12 1.4.Estado del Arte.............................................................................................17 1.5.Descripcin y sustentacin de la Solucin....................................................22 Captulo 2: Anlisis.................................................................................................25 2.1.Definicin de la metodologa de la solucin..................................................25 2.2.Identificacin de los requerimientos..............................................................33 2.3.Identificacin de Casos de Uso.....................................................................36 2.4.Dominio del modelo......................................................................................37 2.5.Anlisis de la solucin...................................................................................40 Captulo 3: Diseo..................................................................................................48 3.1.Arquitectura de la Solucin...........................................................................48 3.2.Diseo de la Interfaz Grfica.........................................................................53 Captulo 4: Construccin........................................................................................58 4.1.Construccin.................................................................................................58 4.2.Pruebas........................................................................................................61 Captulo 5: Observaciones, Conclusiones y Recomendaciones.............................65 5.1.Observaciones..............................................................................................65 5.2.Conclusiones................................................................................................66 5.3.Recomendaciones........................................................................................66 Bibliografa..............................................................................................................68

ndice de Imgenes
Permetro defensivo establecido por el cortafuegos..................................................4 Funcionamiento de un cortafuegos............................................................................5 Procesamiento de paquetes a travs de Iptables......................................................6 Conexin real vs. conexin percibida al usar un proxy..............................................7 Etapas del Scrum....................................................................................................15 Ejemplo de la pantalla del Webmin para la configuracin del Squid........................18 Ejemplo de una pantalla de configuracin del Firestarter........................................19 Ejemplo de una pantalla de Guardog para configuracin de zonas.........................21 Ejemplo de una pantalla de Guardog para configuracin de protocolos..................21 Ejemplo de una pantalla de configuracin de BASE................................................22 Etapas de la metodologa Crystal Clear..................................................................28 Arquitectura de la solucin......................................................................................49 Mapa de colores......................................................................................................53 Simetra de los elementos.......................................................................................54 Men de la aplicacin..............................................................................................55 Componentes agrupados........................................................................................55 Estructura de la pgina............................................................................................57

ndice de Tablas
Ejemplo de tabla utilizada por un cortafuego de tipo filtro de paquetes.....................6 Calendario del Proyecto..........................................................................................17 Documentos generados por cada rol en la metodologa Crystal Clear....................30 Requerimientos Funcionales - Mdulo Central........................................................34 Requerimientos Funcionales - Mdulo Iptables.......................................................34 Requerimientos Funcionales - Mdulo Squid..........................................................35 Requerimientos Funcionales - Mdulo Snort...........................................................35 Requerimientos No Funcionales..............................................................................36 Casos de Uso - Mdulo Central...............................................................................36 Casos de Uso - Mdulo Iptables..............................................................................36 Casos de Uso - Mdulo Squid.................................................................................37 Casos de Uso - Mdulo Snort..................................................................................37 Dominio del Modelo - Mdulo Central......................................................................38 Dominio del Modelo - Mdulo Iptables.....................................................................38 Dominio del Modelo - Mdulo Squid........................................................................39 Dominio del Modelo - Mdulo Snort.........................................................................40 Anlisis Costo Beneficio..........................................................................................41 Comparacin de herramientas de gestin de proyecto............................................42 Comparacin de herramientas de control de versiones...........................................42 Comparacin de herramientas para seguimiento de errores...................................43 Comparacin de lenguajes de programacin..........................................................44 Comparacin de herramientas CASE......................................................................44 Comparacin de Entornos de Desarrollo Integrados...............................................45 Comparacin de Bases de Datos............................................................................46 Anlisis Econmico.................................................................................................47 Capas de la Aplicacin............................................................................................50 Libreras PHP que la aplicacin utilizar.................................................................60 Libreras Javascript que la aplicacin utilizar.........................................................60 Pruebas de integracin............................................................................................62 Pruebas de sistema.................................................................................................63 Resultado de las pruebas de integracin.................................................................64 Resultado de las pruebas de sistema......................................................................64

Introduccin
Desde el ao 1969, poca en que se estableci la primera red de computadoras a la cual se le denomin ARPANET, hasta nuestros das, Internet ha pasado a travs de un largo proceso evolutivo. Siendo en la actualidad una de las principales fuentes de conocimiento, comunicacin y una amplia plataforma para hacer negocios (e-business). Lastimosamente, tambin es un canal a travs del cual se perpetran ataques que han ocasionado prdidas de informacin no slo a las empresas de diversos tamaos, sino tambin a las personas naturales. Como mecanismo de prevencin, es necesario hacer uso de una serie de herramientas de tipo software y/o hardware, as como polticas de seguridad a fin de asegurar la confidencialidad, integridad y disponibilidad de la informacin. Sin embargo, las soluciones presentes en el mercado, a pesar de poseer un adecuado desempeo en cuanto a la prevencin y la deteccin de los ataques, carecen de un entorno intuitivo y de fcil uso, confundiendo a los administradores al efectuar las configuraciones necesarias; esto trae como consecuencia el registro de reglas dbiles o errneas, provocando agujeros en el permetro de la seguridad de la red local. Es por ello, que en el presente documento se plantea como solucin analizar, disear e implementar una aplicacin para facilitar la administracin de las herramientas Iptables, Squid y Snort; utilizadas para proteger la informacin dentro de una red local.

Captulo 1: Generalidades
En el presente captulo se explicarn los conceptos necesarios para poder comprender el problema que se desea resolver a travs del presente proyecto, se mostrar el esquema seguido para realizar el proyecto y se dar a conocer las alternativas de solucin existentes en la actualidad.

1.1. Definicin del Problema


Desde sus orgenes en el ao 1969, en donde se estableci la primera red de computadoras a la cual se le denomin ARPANET, hasta nuestros das, Internet ha pasado a travs de un largo proceso evolutivo. Actualmente, es una de las principales fuentes de conocimiento y de intercambio de informacin; adems se ha convertido en una plataforma que brinda grandes oportunidades para hacer negocios (e-business). Lastimosamente, tambin es usado como un medio para perpetrar ataques que han ocasionado prdidas de informacin no slo a las 2

empresas de diversos tamaos, sino tambin a las personas naturales. Dichos ataques han ido creciendo en los ltimos aos, segn cifras brindadas por [WWW0001], Un 70% de las organizaciones anunciaron al menos un incidente de seguridad durante 2000, frente a un 42% anunciado en 1996. Dentro de las ideas que a lo largo del tiempo han surgido para contrarrestar esta situacin, se lleg a presentar el supuesto de que el computador ms seguro era aquel que se hallaba desconectado de la red y guardado en una habitacin cerrada con un guardin en la puerta (Eugene H. Spafford); sin embargo, esta alternativa ya no puede considerarse como vlida al hallarnos en una poca en la que es mucho ms evidente que para poder prosperar tanto en el mbito tanto social como econmico como educativo, las personas no pueden aislarse unas de otras. En consecuencia, es necesario hacer uso de una serie de herramientas de tipo software y/o hardware, as como polticas de seguridad que aseguren se respeten los siguientes principios de la seguridad de la informacin: confidencialidad, integridad y disponibilidad (Apuntes del curso de Seguridad Control y Auditora de Sistemas de Informacin, 2007). En la actualidad, para proteger tanto a los usuarios como a la informacin que viaja por la red, existen en el mercado herramientas que, a pesar de presentar un adecuado desempeo en cuanto a la prevencin y la deteccin de los ataques, carecen de un entorno intuitivo y de fcil uso, confundiendo a los administradores al efectuar las configuraciones necesarias; esto trae como consecuencia el registro de reglas dbiles o errneas provocando agujeros en el permetro de la seguridad de la red local. Segn se menciona en [CIS2007] y en la lista de las veinte (20) mayores vulnerabilidades del 2007 publicada por [WWW0002], el factor humano es una de las principales brechas de seguridad dentro de cualquier sistema. Es por ello, que en el presente documento se plantea como solucin analizar, disear e implementar una aplicacin que integre la

administracin de las herramientas libres Iptables (cortafuegos NAT), Squid (proxy web) y Snort (Sistema de Deteccin de Intrusos) aplicaciones muy usadas actualmente para administrar la seguridad en una red local de computadoras permitiendo su fcil configuracin para apoyar el aseguramiento de la red local.

1.2. Marco Conceptual del Problema


A continuacin se expondrn algunos conceptos que ayudarn a comprender la funcin y utilidad de las herramientas de seguridad sobre las que se construir la aplicacin.

a) Cortafuegos (firewall) Un cortafuegos es un dispositivo, seguro y confiable, que pertenece a una red; ubicado comnmente en el punto en donde dos o ms redes se comunican. Todos los paquetes trasmitidos entre estas redes son analizados por el cortafuegos el cual determina, basndose en una serie de reglas definidas por el administrador de la red, el trfico que ser bloqueado y el trfico que podr ser transmitido. En la Imagen 1.1 se puede apreciar el permetro defensivo establecido por el cortafuegos entre dos (2) redes, una interna y la otra externa.

Imagen 1.1: Permetro defensivo establecido por el cortafuegos

Funcionamiento de un cortafuegos: En la Imagen 1.2 se puede observar el funcionamiento de un cortafuegos que hace uso de una serie de reglas establecidas para determinar si un paquete de datos debe ser transmitido o rechazado. 4

El cortafuegos recibe un paquete o datagrama (1). El cortafuegos verifica el origen y el destino y comienza a compararlos con cada una de las reglas establecidas (2). En caso el cortafuegos cumpla con la regla (3) procede a verificar los filtros establecidos para dicha regla (4a); caso contrario, verifica si existen ms reglas contra las cuales comparar el paquete (4b).

Si el paquete no cumple con ninguna de las reglas definidas, se ejecuta la regla predeterminada. El cortafuegos transmite (5a) o rechaza el paquete al destino (5b) segn se haya especificado en las reglas. El paquete es recibido por el destinatario(5).

Imagen 1.2: Funcionamiento de un cortafuegos Tipos de cortafuegos: Los cortafuegos pueden ser clasificados en dos (2) tipos: Filtros de Paquete y Cortafuegos Proxy. Filtros de Paquete: Tambin conocidos como cortafuegos a nivel de red. Estos 5

cortafuegos analizan rpidamente los paquetes que se estn transmitiendo y recibiendo. Debido a que nicamente examinan el tipo de paquete, las direcciones IP de origen y de destino, puertos (TCP, UDP) , el tipo de mensaje y las interfaces de entrada y salida. Este tipo de cortafuegos trabaja en base a tablas en donde almacena las reglas de filtrado. A continuacin se presenta un ejemplo de tabla de filtrado:
Regla 1 2 Accin Permitir Descartar IP Origen * * IP Destino 192.168.0.1 * Puerto Origen * * Puerto Destino 20, 21 8080 TCP UDP Protocolo

Tabla 1.1: Ejemplo de tabla utilizada por un cortafuego de tipo filtro de paquetes

Un ejemplo de este tipo de cortafuegos es el Iptables; herramienta de software libre desarrollada por Netfilter, [WWW0003]. Durante las primeras etapas del procesamiento de paquetes, esta herramienta decide en base a reglas si un determinado paquete debe de ser retransmitido a otra computadora, debe de ser procesado por la misma mquina o debe de ser rechazado. en la Imagen 1.3. Un diagrama sobre el procesamiento de paquetes a travs de Iptables puede ser apreciado

Imagen 1.3: Procesamiento de paquetes a travs de Iptables

Las reglas son almacenadas en cadenas las cuales a su vez se encuentran agrupadas en tres (3) tablas cada una de las cuales tiene un objetivo determinado. Las cadenas, de acuerdo a la tabla a la cual pertenecen son:

Tabla de Filtrado: Esta tabla contiene las cadenas INPUT, OUTPUT y FORWARD, encargadas de las funciones de filtrado de paquetes.

Tabla de NAPT: Esta es la tabla que brinda las reglas necesarias para la reescritura de direcciones o de puertos de los paquetes que ingresen a la NAT o salgan de ella. Cuenta con las siguientes cadenas PREROUTING, POSTROUTING y OUTPUT.

Tabla de reescritura: Conocida como mangle, permite sobreescribir valores de la cabecera de los paquetes IP para afectar la performance de los servicios. Hace uso de todas las cadenas: PREROUTING, INPUT, FORWARD, OUTPUT y POSTROUTING.

Cortafuegos Proxy: Un cortafuegos de tipo Proxy es aquel que cumple una doble funcin cliente y servidor. Acta como servidor al recibir las peticiones de las mquinas pertenecientes a su misma red; y como cliente al redirigir dichas peticiones a los servidores finales.

Imagen 1.4: Conexin real vs. conexin percibida al usar un proxy

Su finalidad es el de mantener la informacin de la red como privada, limitando el acceso a recursos que administrador del sistema considere como peligrosos. Provee mayor nivel de filtrado que el Filtro

de Paquetes, ya que las restricciones que a establecerse pueden ser por ejemplo de acuerdo al servicio, nombres o fechas de los archivos. Sin embargo, la principal desventaja que puede presentar frente al Filtrado de Paquetes, es la posibilidad de crear cuellos de botella en redes de alta velocidad, para evitar ello, se requiere que su procesamiento sea mayor o igual al del ruteador. Como ejemplo tenemos la aplicacin Squid que es una herramienta de software libre que cumple las tareas de un Proxy-cach, segn [WES2004]. Dentro de las funciones que esta solucin nos ofrece tenemos:

Uso de menor ancho de canal al navegar por Internet. Reduce el tiempo de carga de las pginas web. Proteger los equipos dentro de la red local funcionando como un cortafuegos proxy. Previene el acceso a una lista determinada de pginas. Recoge estadsticas del trfico web dentro de la red.

El trabajo del Squid es ser un proxy y una cach. Como proxy es un intermediario en las transacciones web; como cach Squid almacena el contenido web de pginas recientemente visitadas para su posible uso posterior.

b) Traductores de Direcciones de Red (NAT Network Address Translation) El NAT naci como una solucin al problema de la escasez de direcciones IPv4, permitiendo prolongar su uso y de esa forma retrasar la migracin al protocolo IPv6. Tomando como referencia lo mencionado en [HUN2002], los NAT son una extensin a la funcin de ruteo que permite modificar la direccin de origen de los paquetes que se estn enviando. Consiguiendo con ello, que una direccin privada cuente con acceso a Internet.

Esto es posible, ya que antes que los paquetes creados dentro de la red privada sean enviados fuera de la misma, la direccin IP de origen debe de ser convertida a una direccin de Internet vlida. Dentro de los principales beneficios al utilizar redes privadas podemos hallar:

Independencia con el Proveedor de Servicios de Internet (ISP). Si se cambia de ISP no es necesario reenumerar los hosts dentro de la red. En el peor caso solo sera necesario Al no poder actualizar los valores registrados en la NAT.

Permite detectar los ataques de IP spoofing.

utilizar direcciones privadas para identificar sitios pblicos, es posible detectar un ataque de IP spoofing si una mquina de fuera de la red intenta comunicarse haciendo uso de una direccin privada. Sin embargo, el uso de la NAT puede traer algunas consecuencias:

Se reduce el desempeo del ruteador al tener ste que dedicarse a desempear una tarea adicional. Interfiere con los mecanismos de identificacin punto a punto que permiten identificar las direcciones de origen.

c) Traductores de Direcciones y Puertos de Red (NAPT Network Address and Port Translation) Segn informacin recabada de [NEG2004], el NAPT, tambin llamado PAT, es una herramienta que al igual que un NAT, permite llevar a cabo el enmascaramiento de direcciones IP; sin embargo, su funcionalidad involucra incluso el poder enmascarar puertos. La principal ventaja que presenta el NAPT frente al NAT, es que mientras el segundo solo permite enmascarar una direccin privada con una direccin pblica (relacin de uno a uno), el primero permite enmascarar la combinacin de IP privada y puerto con una combinacin IP pblica y puerto (esto permite relacionar puertos de ms de una mquina dentro de la red privada con los puertos del

NAPT). El Iptables, aplicacin mencionada anteriormente, tambin

desempea las funciones de un NAPT.

d) Sistema de Deteccin de Intrusos (IDS Intrusion Detection System) Utilizando como base [COL2005], un IDS es una herramienta que realiza un monitoreo de los eventos que ocurren en un computador o en una red, buscando intrusiones no autorizadas que puedan comprometer la confidencialidad, integridad o disponibilidad de los datos. Las intrusiones detectadas son por lo general causadas por atacantes que ingresan al sistema desde la Internet o usuarios del sistema que desean adquirir privilegios adicionales a los que se les ha asignado. Estas herramientas se pueden clasificar de acuerdo a la siguiente lista:

Sistemas de Deteccin de Intrusos basados en Red (NIDS): Estos IDSs son posicionados en sectores claves de la red, siendo su funcin primordial, analizar el trfico en tiempo real.

Sistemas de Deteccin de Intrusos basados en Host (HIDS): Este tipo de IDS se caracteriza por residir dentro de una computadora (host). Se encargan de monitorear las actividades que ocurren en el Sistema Operativo, reportando cada actividad sospechosa al usuario y registrndolo en una bitcora.

A la vez, los IDS tambin pueden pertenecer a una de las siguientes categoras:

Basados en Firmas: Tambin conocidos como basados en

10

conocimiento. Su mtodo de deteccin se basa en modelos que describen la forma en que un ataque es llevado a cabo. Estos modelos reciben el nombre de Firmas (Signatures).

Basados en Anomalas Estadsticas:

Tambin conocidos

como basados en comportamiento. Estos IDSs hacen uso de un mecanismo de aprendizaje a travs del cual almacenan en un registro el conjunto de actividades que son comnmente realizadas en el equipo, definindolas como un patrn normal de comportamiento. Una vez el IDS abandone la fase de aprendizaje, cualquier actividad que se halle fuera del patrn definido ser considerada como anmala.

Basados en Anomalas en el Protocolo: Estos IDSs tienen conocimiento de cada protocolo que debern de monitorear. El IDS almacena un modelo por cada protocolo en el que se indica cual es el uso adecuado que se le debe dar. El IDS buscar cualquier anomala presente en un protocolo que no se ajuste al modelo establecido.

Basados en Anomalas en el Trfico: El objetivo de este tipo de IDS es el de hallar cambios en los patrones normales del trfico de una red, para ello lleva a cabo comparaciones sobre un modelo que representa el trfico ordinario de una red.

Basados en Reglas:

Este tipo de IDSs hacen uso de un

sistema experto, que hace uso de reglas y datos a ser analizados. Si el conjunto de datos analizar cumplen un patrn definido por las reglas, el IDS considerar que hay una actividad anmala en proceso. La herramienta Snort es un ejemplo de un Sistema de Deteccin y Prevencin de Intrusos. Permite llevar a cabo anlisis de datos que viajan a travs de una red en tiempo real, segn [WWW0004]. Dentro de las funciones que nos brinda, tenemos:

Anlisis de protocolo.

11

Bsqueda de contenido detecta una gran variedad de ataques.

Hace uso de un lenguaje flexible de reglas que describe el trfico que debe de bloquear o permitir su paso, as como de un motor de deteccin que usa una arquitectura modular basada en componentes (plugins). Asimismo, cuenta con tres mtodos de configuracin:

Modo Sniffer, para lectura de paquetes que circulan por la red, mostrndolos. Modo Loggin, registra los paquetes en el disco. Modo Sistema de Deteccin de Intrusos basado en reglas.

1.3. Plan de Proyecto


Siendo un proyecto un esfuerzo temporal con un fecha de inicio y de final que se lleva a cabo de forma gradual, siguiendo una serie de pasos, para obtener un producto, servicio o resultado nico; es necesario elegir una adecuada metodologa de gestin que permita dirigir el proyecto desde su inicio hasta su final de forma exitosa. Para el presente proyecto de tesis, se ha decidido hacer uso de la metodologa de gestin Scrum, metodologa de gestin gil que toma como base varios principios establecidos por el PMI.

a) La metodologa Scrum: Scrum es una metodologa simple desarrollada para la gestin de proyectos de diversa complejidad. Siendo concebido pensando ms en los miembros del equipo que en la tecnologa disponible. Dentro de las ventajas presentes por el uso de esta metodologa tenemos:

Adecuado manejo de los requerimientos cambiantes. Incentiva la motivacin del equipo de desarrollo.

12

El cliente se haya involucrado con el proyecto en un mayor grado. Hace uso del empowerment dentro del desarrollo del proyecto. Permite superar satisfactoriamente los fallos presentados durante el tiempo de vida del proyecto.

Roles Las personas involucradas en un proyecto que hace uso de Scrum asumen uno e los siguientes roles: Equipo Scrum Definido dentro del PMBOK como Miembros del Equipo de Proyecto; se halla conformado por las personas dedicadas al desarrollo y diseo de la aplicacin. Normalmente est constituido por un grupo de 5 a 9 individuos. Dueo del Producto Cumple los roles de Cliente y de Usuario definidos dentro del PMBOK. La persona que asume este rol puede ser tanto un cliente como un miembro del equipo especializado en la lgica del negocio y procesos que se desarrollan; se encarga de proporcionar al Equipo Scrum con conocimientos relacionados al negocio. Asimismo, administra los Backlogs de los productos es un listado de requerimientos pendientes en donde todas las especificaciones del producto estn enumeradas los cuales estn a la vista de todos los miembros de la organizacin. Scrum Master Definido dentro del PMBOK como Director del Proyecto; esta persona tiene diariamente breves reuniones, denominados Scrums Diarios, con el equipo. Asimismo es el encargado de canalizar la informacin referente a nuevos requerimientos o modificaciones con la finalidad de disminuir el nmero de interrupciones a los desarrolladores. Al final de cada ciclo Sprint y previamente a comenzar el siguiente, el Scrum Master lleva a cabo una reunin Scrum Retrospective

13

con los integrantes del equipo en donde se evalan las experiencias vividas a lo largo del Sprint y las conclusiones a las que se ha llegado. Proceso A continuacin se presentarn las actividades llevadas a cabo en una direccin de la gestin de un proyecto que hace uso de Scrum. Creacin del Backlog Esta etapa involucra los Procesos de Iniciacin y Planificacin definidos en el PMBOK. El Dueo del Producto junta todas las especificaciones y requerimientos, incluyendo mejoras y correcciones de errores; asimismo, procede a definir cuales sern las metas a alcanzar. Luego de recabar los requerimientos, el Backlog es dividido en grupos, cada uno de los cuales corresponde a un entregable completamente funcional que aporta valor al negocio. Etapa del Sprint Esta etapa involucra los Procesos de Planificacin y Ejecucin definidos en el PMBOK. Un Sprint puede tener una duracin entre dos (2) y cuatro (4) semanas. El primer da de cada Sprint es utilizado para la creacin del Sprint Backlog. Una vez el equipo es consciente de los requerimientos y se definen las fechas, el Dueo del Producto los autoriza a comenzar con la elaboracin del producto. Scrum Diario Esta etapa involucra los Procesos de Planificacin, Seguimiento y Monitoreo definidos en el PMBOK. Todos los das a la misma hora, el Scrum Master sostiene una reunin breve con el equipo con el objetivo de mitigar cualquier obstculo que les impida el poder laborar de forma fluida. Se analizan los siguientes puntos:

El avance logrado desde la ltima reunin. El avance esperado hasta la siguiente reunin.

14

Los obstculos que pueden impedir se cumpla con el avance esperado.

Demostracin y Evaluacin Esta etapa involucra los Procesos de Finalizacin definidos en el PMBOK. Cada Sprint culmina con una demostracin de la funcionalidad desarrollada frente a un grupo de personas adicionales al Dueo del Producto (por ejemplo usuarios o ejecutivos de la organizacin contratante). El resultado de la evaluacin de las funcionalidades formarn la base para el siguiente Sprint.

Imagen 1.5: Etapas del Scrum

b) Adaptando el Scrum al proyecto Para poder hacer uso de la metodologa Scrum en el proceso de gestin del presente proyecto ser necesario efectuar algunos cambios con la finalidad de adaptarla a la realidad del proyecto (por ejemplo: limitacin en el nmero de miembros que conforman el proyecto).

El Equipo Scrum estar conformado por un (1) nico miembro, quien deber de efectuar las labores de Scrum Master. 15

Las labores de Dueo de Producto sern llevadas a cabo por el Asesor. Cada Sprint tendr una duracin de veintin (21) das y se llevarn a cabo cinco (5) Sprints a lo largo de toda la Tesis. Durante el Sprint se mantendrn cuatro reuniones con el Dueo de Proyecto. Una al inicio las dems al final de cada semana cada siete (7) das.

La evaluacin de funcionalidades ser efectuada por el Dueo del Producto al final de cada Sprint.

c) Calendario de entregas Tomando como base la metodologa de gestin definida en el punto anterior, se ha elaborado el siguiente calendario de entregas, vigente a lo largo del desarrollo del presente proyecto.
Tarea Elaboracin del Captulo 1 Definicin del problema Marco conceptual Plan de proyecto Estado del arte Sustentacin de la solucin Revisin Captulo 1 Correcciones del Captulo 1 Elaboracin del Captulo 2 Definicin de metodologa Identificacin de requerimientos Anlisis de la solucin Revisin Captulo 2 Correcciones Captulo 2 Elaboracin del Captulo 3 Elaboracin de la arquitectura de la solucin Elaboracin de las pantallas Revisin Captulo 3 Correcciones Captulo 3 Elaboracin del Captulo 4 Definicin de la construccin Definicin de las pruebas Revisin Captulo 4 10/04/2008 11/04/2008 14/04/2008 11/04/2008 13/04/2008 21/04/2008 28/03/2008 29/03/2008 31/03/2008 07/04/2008 29/03/2008 30/03/2008 07/04/2008 09/04/2008 24/02/2008 10/03/2008 13/03/2008 15/03/2008 24/03/2008 09/03/2008 13/03/2008 15/03/2008 24/03/2008 27/03/2008 21/01/2008 27/01/2008 03/02/2008 07/02/2008 11/02/2008 11/02/2008 17/02/2008 27/01/2008 03/02/2008 07/02/2008 10/02/2008 11/02/2008 17/02/2008 23/02/2008 Fecha Inicio Fecha Fin

16

Tarea Correcciones Captulo 4 Sprint 1 Administrar usuarios Administrar configuraciones Visualizar configuraciones Generar reportes de sesiones Sprint 2 Administrar mdulos Administrar servicios Administrar zonas Sprint 3 Administrar configuracin Iptables Administrar reglas Iptables Administrar Iptables Generar reporte Iptables Sprint 4 Administrar configuracin Squid Administrar reglas Squid Administrar registro histrico de Squid Generar reporte Squid Sprint 5 Administrar configuracin Snort Administrar reglas Snort Generar reporte Snort Elaboracin del Captulo 5 Elaboracin de la conclusiones y sugerencias registro histrico de

Fecha Inicio 21/04/2008 04/05/2008 17/05/2008 17/05/2008 24/05/2008 25/05/2008 01/05/2008 07/05/2008 29/06/2008 06/07/2008 12/07/2008 18/07/2008 20/07/2008 25/07/2008 01/08/2008 08/08/2008 25/08/2008 02/09/2008 07/09/2008 15/09/2008

Fecha Fin 27/04/2008 17/05/2008 24/05/2008 24/05/2008 25/05/2008 01/05/2008 08/05/2008 15/06/2008 06/07/2008 12/07/2008 18/07/2008 20/07/2008 25/07/2008 01/08/2008 08/08/2008 10/08/2008 02/09/2008 07/09/2008 14/09/2008 20/09/2008

Tabla 1.2: Calendario del Proyecto

1.4. Estado del Arte


Dentro de las aplicaciones actuales que permiten mostrar una interfaz grfica para la configuracin de las herramientas Iptables, Squid y/o Snort tenemos: a) Webmin Webmin es una interfaz basada en web que permite administrar sistemas Unix. A travs de esta herramienta es posible configurar cuentas de usuario, servicios (como por ejemplo Apache, DNS, entre 17

otros), bitcoras, proxy (como Squid), etc.

Estas configuraciones

pueden ser ejecutadas fcilmente tanto de forma local como remota. Webmin est conformada por una interfaz web y varios programas CGI escritos en lenguaje Perl 5 que son los que interactan directamente con los archivos de configuracin.

Imagen 1.6: Ejemplo de la pantalla del Webmin para la configuracin del Squid

b) Firestarter Firestarter es una aplicacin de cdigo abierto que permite administrar la configuracin del cortafuegos. El objetivo de este software es combinar la facilidad de uso con herramientas potentes, para los usuarios de equipos Linux como administradores de sistema. Caractersticas

Aplicativo de cdigo abierto y gratuito. 18

Fcil de utilizar, cuenta con una interfaz grfica. Un ayudante brinda soporte para efectuar la primera configuracin. Especial para el uso en computadoras de escritorio, porttiles y servidores. Monitor en tiempo real de los eventos de intrusin que hayan ocurrido. Permite establecer polticas tanto de entrada, como de salida. Permite abrir y cerrar puertos con tan solo unos pocos clicks. Permite habilitar fcilmente el reenvo de paquetes a travs de puertos. Permite especificar el trfico a ser bloqueado. Permite visualizar conexiones de redes activas.

Imagen 1.7: Ejemplo de una pantalla de configuracin del Firestarter

c) Guarddog Guarddog es una herramienta para sistemas Linux que facilita la

19

configuracin de los cortafuegos. Esta solucin est dirigida a dos tipos/grupos de usuarios: los usuarios novatos y los de un nivel intermedio que no conocen conceptos avanzados de redes TCP/IP y seguridad. Caractersticas:

Interfaz de usuario de fcil uso. Maneja un protocolo basado en aplicaciones. Permite dar mantenimiento a las reglas de generadas para el cortafuegos. Las redes y nodos pueden ser divididos en zonas. Cada zona puede manejar sus propias polticas de seguridad. Soporta los siguientes protocolos: FTP, SSH, Telnet,

Linuxconf, Corba, SMTP, DNS, Finger, HTTP, HTTPS, NFS, POP2, POP3, SUN RPC, Auth, NNTP, NETBIOS Name Service, NETBIOS Session Service, IMAP, Socks, Squid, pcANYWHEREstat, X Window System, Traceroute, ICQ, PowWow, IRC, PostgreSQL, MySQL, Ping, Quake, QuakeWorld, Quake 2, Who Is, Webmin, ICMP Source Quench, ICMP Redirect, Real Audio, Line Printer Spooler, syslog, NTP, NetMeeting, Gnutella, LDAP, LDAP-SSL, SWAT, Diablo II, Nessus, DHCP, AudioGalaxy, DirectPlay, Halflife, XDMCP and Telstra's BigPond Cable, CDDB, MSN Messenger, VNC, PPTP, Kerberos, klogin, kshell, NIS, IMAPS, POP3S, ISAKMP, CVS, DICT, AIM, Fasttrack, Kazaa, iMesh, Grokster, Blubster, Direct Connect, WinMX, Yahoo! Messenger, AH, ESP, Jabber, EsounD, Privoxy, eDonkey2000, EverQuest, ICP, FreeDB, Elster, Yahoo games, Legato NetWorker backups, Novell Netware 5/6 NCP, Bittorrent, rsync, distcc, Jabber over SSL, PGP key server, Microsoft Media Server y gkrellm.

Los

protocolos

no

soportados

puede

ser

registrados

directamente.

Soporta configuraciones de ruteo. Se ejecuta sobre KDE 2 o 3, y Linux 2.2, 2.4, 2.6. Permite importar y exportar reglas del cortafuegos para ser

20

utilizadas en otras mquinas.

Hace uso como base de la filosofa: Lo que no est explcitamente permitido, est prohibido. Licenciado bajo los trminos de la licencia GPL.

Imagen 1.8: Ejemplo de una pantalla de Guardog para configuracin de zonas

Imagen 1.9: Ejemplo de una pantalla de Guardog para configuracin de protocolos

21

d) BASE BASE Basic Analysis and Security Engine es una aplicacin que provee una interfaz web que permite consultar y analizar las alertas que provienen del IDS Snort. Caractersticas:

Hace uso de un sistema de autenticacin basado en roles, permitiendo configurar que tanta informacin deben de poder visualizar los dems usuarios.

Permite modificar los archivos de configuracin para no tener que trabajar con ellos directamente.

Imagen 1.10: Ejemplo de una pantalla de configuracin de BASE

1.5. Descripcin y sustentacin de la Solucin


Para disminuir los problemas de seguridad dentro de una red local ocasionados por una inadecuada configuracin de los equipos a cargo de la seguridad, se propone como solucin el anlisis, diseo e implementacin de una aplicacin de fcil uso, que permita configurar y administrar funciones, tanto bsicas como avanzadas, de las herramientas de seguridad Iptables, Squid y Snort.

22

El sistema busca brindar mayor seguridad a la informacin que manejan las PYMES, empresas medianas y usuarios con escasos conocimientos en temas referentes a seguridad de la informacin; a travs de la disminucin de las vulnerabilidades provocadas por una inadecuada configuracin de los equipos de seguridad dentro de la red. Caractersticas de la solucin:

La solucin propuesta integrar las funciones de administracin de las tres (3) herramientas de software libre destinadas al aseguramiento de redes: Iptables (cortafuegos), Squid (proxy cache) y Snort (sistema de deteccin de intrusos).

La aplicacin presentar una interfaz grfica amigable de fcil uso que permitir llevar a cabo de una forma sencilla las tareas de configuracin de las tres (3) herramientas.

El aplicativo permitir administrar de forma sencilla las reglas que utilizan las diversas herramientas que enmascara, a fin de que el usuario final pueda llevar a cabo configuraciones sin necesidad de interactuar directamente con la sintaxis de cada una de las tres aplicaciones.

La aplicacin generar archivos de configuracin y mantendr un histrico de las reglas generadas para cada una de las herramientas.

La aplicacin brindar opciones para exportar otros equipos.

los archivos de

configuracin y de reglas definidas a fin de poder ser utilizados en

Las reglas generadas por las aplicaciones funcionarn sobre interfaces ethernet, haciendo uso del protocolo IPv4. La solucin ser accesible va web desde cualquier computadora que el usuario haya registrado previamente. El usuario podr visualizar a manera de reportes, la informacin almacenada por las tres (3) herramientas, dentro de la bitcora del sistema.

Beneficios de su implementacin:

El usuario final contar con una herramienta simple y de fcil uso

23

que le permitir administrar tareas de seguridad complejas de una forma rpida.

Al poder ser exportadas las configuraciones y reglas, podrn ser implantadas rpidamente en otros equipos, lo cual traer un ahorro de tiempo.

Al contar con un histrico de reglas, el usuario tiene la posibilidad de retornar el sistema a una configuracin previa a la actual, en caso sta ltima no sea la ms adecuada.

Adicionalmente, al poseer una aplicacin con una interfaz de fcil manejo, el usuario/administrador tendr completo conocimiento de las reglas que est estableciendo; esto ayudar a mermar la cantidad de errores de seguridad provocados por configuraciones inadecuadas de los equipos.

Finalmente, se contar con una serie de reportes que, tras un previo anlisis, permitirn al usuario determinar que tan eficiente es la configuracin establecida.

24

Captulo 2: Anlisis

En este captulo se har mencin de la metodologa que se utilizar a lo largo de todo el proyecto, la identificacin de requerimientos y el anlisis de la solucin propuesta.

2.1. Definicin de la metodologa de la solucin


a) La metodologa Crystal Clear Metodologa de tipo gil, creada por Alistair Cockburn a pedido del grupo de consultora de IBM en el ao 1991. A diferencia de muchas metodologas para la gestin del desarrollo del software, Crystal Clear se centra ms en el factor humano que en los procesos y artefactos. Esta metodologa presenta las siguientes propiedades, siendo exigibles las tres (3) primeras:

Entregas Frecuentes: Es imperante que al final de cada 25

iteracin,

se

haga

entrega

los

usuarios

el

cdigo

debidamente testeado. Con ello se busca que el equipo de desarrollo pueda efectuar correcciones en la aplicacin en caso la funcionalidad no cumpla con las necesidades del usuario. Es ms sencillo efectuar los cambios sobre los entregables de cada iteracin que sobre un proyecto completamente integrado.

Mejoras Reflejadas: Consiste en identificar los puntos en los que el proyecto marcha bien, en los que marchan mal y los que pueden ser mejorados. Dichas mejoras seran aplicadas en la siguiente iteracin. Esta propiedad debe de estar presente a lo largo de todo el proyecto.

smosis en la Comunicacin: Propiedad imprescindible de esta metodologa en la que los miembros abocados a la programacin se distribuyen en dentro de una misma habitacin o dentro de un ambiente que permita una comunicacin fluida y sin obstculos entre todo el equipo.

Seguridad Personal: Consiste en brindar apoyo a los dems miembros del equipo. El equipo de trabajo est conformado por personas, cada una de las cuales tienen sus propias fortalezas, debilidades y problemas. Los aspectos negativos pueden solucionarse apoyando a los dems miembros y/o buscando apoyo en ellos.

Enfoque: Destinar tiempo adecuado para poder cumplir con las prioridades que se tienen asignadas. Es importante apoyar a los dems miembros en las dudas y problemas que presenten; sin embargo, siempre hay que destinar un tiempo a las actividades asignadas.

Acceso sencillo para usuarios expertos: Tener facilidad de acceso a usuarios expertos quienes verificarn que a lo largo de cada iteracin se estn cumpliendo sus expectativas. El acceso puede ser por visitas semanales y llamadas telefnicas; uno o ms de un usuario experto dentro del equipo; desarrolladores especializados que han asumido el papel de usuarios (no es muy recomendado el uso de esta ltima).

26

Ambiente tcnico con pruebas automatizadas continuas a medida que se programa, gestin de la configuracin (acompaada de una adecuada gestin de cambios), integracin frecuente de los avances realizados.

El Proceso Los proyectos son vistos como un ciclo continuo, ya que al concluir un proyecto, siempre habr otro esperando a ser comenzado. Un ciclo de proyecto, dentro de Crystal Clear, est conformado por tres etapas: Trazado de actividades Esta primera etapa puede abarcar desde un par de das hasta un par de semanas. Dentro de este perodo, se llevan a cabo las siguientes tareas:

Forjar el corazn del equipo, que consiste en definir los tres principales roles el desarrollador lder, el patrocinador y el usuario clave.

Anlisis exploratorio de 360, se lleva a cabo un estudio de viabilidad llevando a cabo una revisin de alto nivel de los pilares del esfuerzo aplicado en la etapa de desarrollo: el valor del negocio esperado, los requerimientos capturados, el mbito del modelo, la tecnologa a utilizarse, el plan de proyecto, la conformacin del equipo y la metodologa o acuerdos a utilizarse.

Trazando la metodologa, conformado por los convenios definidos al inicio del proyecto que pueden ir siendo mejorados y corregidos al inicio de cada nueva iteracin.

Construyendo el plan de proyecto inicial, se elabora el Mapa del Proyecto diagrama equivalente al diagrama de precedencia y el Plan de Proyecto indicando los ciclos de entrega y los perodos que cada iteracin involucra.

Dos o ms ciclos de entrega Cada ciclo de entrega involucra las siguientes actividades:

Recalibrar el plan de proyecto, se evala tanto los requerimientos como el plan de proyecto al inicio de cada ciclo

27

de entrega con el objetivo de corregir desviaciones producidas respecto al alcance del proyecto.

Desarrollo en Iteracin(es), cada iteracin presenta una duracin mayor a una semana y menor a tres meses. Se efectan las siguientes labores:

Planear la iteracin: se definen prioridades de las tareas Ciclo Programacin testeo integracin Ritual de fin de iteracin

Entrega a usuarios reales, se entrega la aplicacin, resultado de la iteracin, a un grupo de usuarios reales para as conocer si los resultados obtenidos hasta la fecha son un fiel reflejo de los requerimientos presentados por el usuario.

Reflexin sobre el producto creado y los convenios usados.

Cierre de proyecto En esta etapa final se llevan a cabo las siguientes tareas:

Pruebas de aceptacin Se prepara el producto final y el ambiente del usuario para llevar a cabo la implantacin de la solucin. Recopilacin de los conocimientos adquiridos a fin de poder ser utilizados en un proyecto que se presente a futuro.

Imagen 2.1: Etapas de la metodologa Crystal Clear

Los Roles Dentro de esta metodologa es posible identificar los siguientes roles.

28

Patrocinador: Es el encargado de definir cmo se distribuir el capital dentro del proyecto, suele ser quien contrata los servicios del organismo desarrollador. En consecuencia, su decisin tendr importancia al momentos de definir las prioridades en cuanto las funcionalidades a implementar. Usuario experto: Adicionalmente a conocer las funciones

desempeadas por un usuario del sistema, cumple las funciones de un experto de negocio, es decir, conoce los procesos que se llevan a cabo dentro del negocio. Lder de Diseo/Desarrollo: Miembro del equipo con gran

conocimiento en temas de desarrollo de software. Es quien lleva el control del avance del equipo. Equipo de Diseo/Desarrollo: Dems integrantes del equipo abocados a la tarea de desarrollar e implementar la solucin. Suele haber un lder de diseo/desarrollo por cada tres miembros del equipo. Coordinador del proyecto: Este rol puede ser ocupado tanto por el patrocinador como por el lder de diseo/desarrollo. Se encargar de enumerar las funciones a ser entregadas al final de cada ciclo de entrega. Lleva el control de las funciones a entregarse acorde al tiempo establecido en el cronograma. Tester: Este rol es desempeado por todos los miembros del equipo a lo largo de todo el proceso de implementacin. Su funcin es la de reportar todos los bugs y errores detectados en el sistema siendo desarrollado. Redactor: Este rol es llevado a cabo por los mismos miembros del equipo, quienes se encargarn de la redaccin del manual de usuario a ser entregado junto con la solucin. El cuadro presentado a continuacin brindar un breve resumen de la documentacin generada por cada uno de los roles de la metodologa.

29

Ciclos de Entrega Trazado de Actividades Recalibrar plan proyecto Patrocinador Equipo Misin proyecto Acuerdos equipo Diseo Pantallas mbito Modelo Diagramas Diseo Cdigo fuente Coordinador Mapa proyecto Plan lanzamiento Lista riesgos Plan iteracin Cronograma Lder Desarrollo Usuario Experto Casos de uso Requisitos Catlogo actores Tester Reporte Pruebas / Errores Redactor Manual de Usuario Reporte pruebas aceptacin Arquitectura Estado del proyecto Empaquetar solucin Iteracin Entrega a usuarios reales Reflexin sobre el producto y los acuerdos Cierre Proyecto

Tabla 2.1: Documentos generados por cada rol en la metodologa Crystal Clear

b) Adaptando Crystal Clear al proyecto La metodologa a utilizar durante la presente tesis para llevar a cabo una adecuada gestin en el desarrollo del proyecto ser Crystal Clear debido a las razones que se mencionan a continuacin: 30

Esta metodologa se centra en el factor humano ms que en los artefactos. Las constantes entregas de mdulos a los usuarios al final de cada ciclo, permite recibir rpidas retroalimentaciones por parte del usuario lo cual da a conocer si el avance de la solucin brinda las caractersticas esperadas.

Existe una constante comunicacin con el dueo del producto (patrocinador) lo cual permite resolver rpidamente cualquier duda presente en un requerimiento.

Esta metodologa ha sido creada pensando en pequeos equipos de trabajo; estando el equipo de desarrollo, del presente proyecto, conformado por un nico miembro.

No obstante, para poder hacer uso de esta metodologa de forma adecuada es necesario adaptarla segn las necesidades del proyecto.

El Equipo de Desarrollo estar conformado por un (1) nico miembro, quien efectuar las labores de lder y equipo de diseo/desarrollo.

Cada Iteracin tendr una duracin de semana y media, siendo el ciclo de entrega de tres (3) semanas. El proyecto estar conformado por cinco (5) ciclos de entrega a lo largo de cada uno se implementar un mdulo de funcionalidad independiente, con el objetivo que pueda ser entregado al usuario experto para ser validado.

Al inicio del ciclo de entrega se llevar a cabo una reunin con el asesor con el objetivo de reestructurar el plan de proyecto en caso se presenten atrasos o correcciones en la funcionalidad previamente presentada.

Dentro de los artefactos que sern generados dentro de cada etapa al hacer uso de esta metodologa, tenemos: Anlisis

Mapa de Proyecto: Diagrama en donde se especifica las dependencias entre las funcionalidades a ser implementadas.

31

Establece el orden en que deben de implementarse las funcionalidades y cual es la dependencia existente entre los puntos a implementar.

Plan de Lanzamiento: Se genera en base al Mapa del Proyecto. Se delimita las fechas en que se entregar cada funcionalidad.

Catlogo de Riesgos: Consiste en un listado de riesgos que pueden amenazar la realizacin del proyecto o el cumplimiento de uno o muchos de sus objetivos. Dentro de la informacin bsica que el catlogo debe de brindar tenemos el nombre del riesgo, consecuencias que puede provocar, probabilidad que ocurra y que medida preventiva o correctiva se debe de utilizar.

Catlogo de actores: Contiene una tabla de dos columnas, en la primera se enumeran los actores y en la segunda las acciones que desempearn en el sistema a implementar.

Lista de Requerimientos: Es un conglomerado de informacin que indica lo que se planea construir, el actor que ha de utilizarlo, el valor que provee dicha funcionalidad.

Especificacin de Casos de Uso: Es un documento en donde se describe los casos de uso presentes en el sistema. Para cada caso de uso debe describirse el flujo ideal funcionalidad principal que el caso de uso representa y cada uno de los flujos alternativos y excepcionales funcionalidades alternativas o flujos que presentan errores si es que los hubiera

Diseo

Modelo del Dominio: Diagrama de clases que muestra las principales entidades del sistema y la forma en que se interrelacionan.

Pantallas: Grficos que muestran el aspecto que tendr cada pantalla del sistema. Arquitectura del Sistema: Este diagrama muestra los

principales componentes e interfaces del sistema.

32

Construccin

Catalogo de Pruebas: Documento en donde se lleva el listado de pruebas que deben de llevarse a cabo de forma exitosa para poder asumir que una funcionalidad se haya implementada de forma exitosa.

Manual de Usuario: Documentacin en donde se da a conocer al usuario los pasos que debe de seguir para poder llevar a cabo exitosamente una accin en el sistema.

2.2. Identificacin de los requerimientos


A continuacin se presenta la lista de requerimientos tanto funcionales como no funcionales que el aplicativo deber de cumplir.

a) Requerimientos funcionales La lista de requerimientos funcionales se halla dividida en cuatro (4) grupos cada uno de los cuales representa cada mdulo en los que el proyecto se hallar subdividido. Dentro de la informacin que muestra la cabecera de cada tabla de requerimientos, encontramos los siguientes campos: Nmero de requerimiento, la descripcin del requerimiento, la prioridad del requerimiento que pude tomar valores del uno (menor prioridad) al cinco (mayor prioridad) y el tipo de requerimiento que puede ser Exigible (E) o Deseable (D).
Mdulo Central Cdigo FC001 FC002 FC003 FC004 Requerimiento La aplicacin permitir administrar el listado de los mdulos del sistema, habilitndolos o deshabilitndolos. La aplicacin permitir asignar un alias a las diferentes interfaces detectadas en el equipo. La aplicacin permitir activar y desactivar la opcin de reenvo de paquetes. La aplicacin permitir exportar e importar las 4 E configuraciones y reglas establecidas por cada mdulo del sistema. 3 E 4 E Prioridad Tipo 4 E

33

Mdulo Central Cdigo FC005 FC006 Requerimiento La aplicacin permitir mantener la lista de usuarios que podrn iniciar sesin remota en el sistema. La aplicacin permitir administrar una lista de 4 E direcciones IP hbiles que podrn iniciar sesin remota en el sistema. FC007 La aplicacin permitir manejar una bitcora que permita auditar las sesiones iniciadas, almacenando informacin como usuario, IP de origen, sistema operativo y hora. FC008 FC009 La aplicacin permitir iniciar y detener los servicios relacionados con cada uno de los mdulos activados. La aplicacin permitir mantener la lista de los nodos y las zonas existentes en la red 4 E 3 E 4 E Prioridad Tipo 3 E

Tabla 2.2: Requerimientos Funcionales - Mdulo Central

Mdulo Iptables Cdigo FI001 FI002 FI003 FI004 FI005 FI006 FI007 FI008 del Iptables. La aplicacin podr trabajar con una serie de reglas predeterminadas para determinados programas. La aplicacin permitir administrar la tabla nat y la tabla filter. La aplicacin permitir mantener las reglas de Iptables. La aplicacin permitir establecer polticas para cada cadena registrada en Iptables. Las reglas establecidas por la aplicacin podrn ser aplicables a un rango de direcciones IP. La aplicacin podr registrar reglas de filtrado por MAC La aplicacin permitir administrar el registro histrico de reglas y configuraciones generadas por el mdulo Iptables FI009 La aplicacin generar reportes basndose en las bitcoras registradas por el mdulo Iptables. 3 E 2 5 E E 2 E 5 4 E E 5 E 5 E Requerimiento La aplicacin permitir configurar las opciones bsicas Prioridad Tipo 5 E

Tabla 2.3: Requerimientos Funcionales - Mdulo Iptables

Mdulo Squid Cdigo FQ001 del Squid. Requerimiento La aplicacin permitir configurar las opciones bsicas Prioridad Tipo 5 E

34

Mdulo Squid Cdigo FQ002 FQ003 FQ004 FQ005 FQ006 Requerimiento La aplicacin podr trabajar con una serie de reglas preestablecidas para determinados programas. La aplicacin permitir habilitar y configurar las 4 5 5 5 E E E E funcionalidades bsicas de la cach y del proxy. La aplicacin permitir registrar una lista de control de acceso. La aplicacin permitir registrar grupos de control de acceso. La aplicacin permitir administrar reglas de control de acceso a travs de las cuales se indicarn las listas y grupos de control a quienes se les permitir acceder o se les negar el acceso a determinados recursos. FQ007 FQ008 La aplicacin permitir administrar el registro histrico de reglas y configuraciones generadas por el mdulo Squid. La aplicacin generar reportes basndose en las bitcoras registradas por el mdulo Squid. 3 E 4 E Prioridad Tipo 5 E

Tabla 2.4: Requerimientos Funcionales - Mdulo Squid

Mdulo Snort Cdigo FS001 FS002 FS003 Requerimiento La aplicacin permitir configurar las opciones bsicas del Snort para que trabaje en modo NIDS La aplicacin permite definir la lista de preprocesadores que Snort utilizar. El mdulo trabajar en forma predeterminada con las reglas proporcionadas por la comunidad de usuario de Snort, debidamente validadas por Sourcefire, empresa a cargo de la implementacin y distribucin de Snort. FS004 La aplicacin generar reportes basndose en las bitcoras registradas por el mdulo Snort. 3 E 5 E 3 E Prioridad Tipo 5 E

Tabla 2.5: Requerimientos Funcionales - Mdulo Snort

b) Requerimientos no funcionales

Cdigo FN001 FN002

Requerimiento La aplicacin permitir acceso remoto va web. La versin en desarrollo de la aplicacin soportar interfaces

Tipo E E

35

Cdigo ethernet. FN003 FN004 FN005 FN006 FN007 FN008

Requerimiento La aplicacin har uso del protocolo IPv4. La aplicacin presentar una interfaz que sea fcil de utilizar. La aplicacin estar escrita en el lenguaje PHP 5. El instalador de la aplicacin estar escrito en el lenguaje Perl. La aplicacin se ejecutar sobre el servidor web Apache versin 2. La aplicacin se ejecutar prioritariamente en sistemas operativos GNU/Linux basados en RedHat.

Tipo E E E E E E

Tabla 2.6: Requerimientos No Funcionales

2.3. Identificacin de Casos de Uso


Tomando como base el listado de requerimientos funcionales del proyecto, se han identificado los casos de uso listados a continuacin.
Mdulo Central Cdigo CUC01 CUC02 CUC03 CUC04 CUC05 CUC06 CUC07 CUC08 Caso de uso Mantener usuarios Mantener servicios Mantener mdulos Mantener subred Iniciar sesin Generar reporte de sesiones Administrar directivas de seguridad Mantener configuracin de red Requerimientos Asociados FC005 FC008 FC001, FC004 FC009 FC005, FC006 FC007 FC006 FC002, FC003, FC009

Tabla 2.7: Casos de Uso - Mdulo Central

Mdulo Iptables Cdigo CUI01 CUI02 CUI03 CUI04 Caso de uso Configurar Iptables Mantener reglas Iptables Mantener registro histrico Generar reporte Iptables Requerimientos Asociados FI001 FI002, FI003, FI004, FI005, FI006, FI007 FI008 FI009

Tabla 2.8: Casos de Uso - Mdulo Iptables

36

Mdulo Squid Cdigo CUQ01 CUQ02 CUQ03 CUQ04 Caso de uso Configurar Squid Mantener reglas Squid Mantener registro histrico Generar reporte Squid Requerimientos Asociados FQ001, FQ003 FQ002, FQ006 FQ007 FQ008 FQ004, FQ005,

Tabla 2.9: Casos de Uso - Mdulo Squid

Mdulo Snort Cdigo CUS01 CUS02 CUS03 Caso de uso Configurar Snort Mantener reglas Snort Generar reporte Snort Requerimientos Asociados FS001, FS002 FS003 FS004

Tabla 2.10: Casos de Uso - Mdulo Snort

2.4. Dominio del modelo


A continuacin se presenta una breve descripcin de las clases, separadas por mdulos, que conforman el dominio del modelo del proyecto de tesis.
Mdulo Central Cdigo CC001 Clase Servidor Descripcin Esta clase contiene la informacin bsica sobre las configuraciones de red del servidor en donde se ejecuta la aplicacin. CC002 CC003 Usuario Interfaz Esta clase contiene informacin del usuario que iniciado sesin en la aplicacin. Esta clase representa a una zona dentro de la red local, conectada al servidor a travs de una interfaz de red. CC004 CC005 CC006 CC007 Nodo IPv4Valida RegistroHistorico Subred Esta clase representa a un nodo dentro de una zona de la red local. Esta clase representa una IP desde la cual es permitida iniciar sesin en la aplicacin. Esta clase contiene informacin de lo intentos de inicio de sesin en la aplicacin. Esta clase representa una subred dentro de la red

37

Mdulo Central Cdigo Clase local. Descripcin

Tabla 2.11: Dominio del Modelo - Mdulo Central

Mdulo Iptables Cdigo CI001 CI002 CI003 CI004 CI005 Iptables ReglaIptables Cadena Table HistoricoIptables Clase Esta clase Descripcin representa las configuraciones bsicas de la herramienta Iptables. Esta clase representa cada una de las reglas que pueden ser registradas en la aplicacin Iptables. Esta clase representa una cadena de Iptables. Esta clase representa una de las tablas propias de la aplicacin Iptables. Esta clase representa cada una de las entradas dentro del registro histrico de configuraciones de Iptables. CI006 CI007 CI008 CI009 CI010 Accion Categoria Esta clase representa las acciones a ejecutar sobre cada regla que se defina. Esta clase representa las categoras en las que se clasifican las reglas predefinidas. DetalleReglaPredefinida Esta clase representa la regla predefinida tal cual es entendida por la aplicacin Iptables. Estado Esta clase representa los estados de las conexiones. FechaActivacionIptables Esta clase representa cada una de las fechas en las cuales se utiliz alguna de las entradas dentro del registro histrico de configuraciones de Iptables. CI011 CI012 CI013 Politica Protocolo ReglaPredefinida Esta clase representa las polticas predefinidas de cada cadena del Iptables. Esta clase representa cada uno de los protocolos soportados por la aplicacin. Esta clase representa la regla predefinida que el administrador de la red quiere utilizar.

Tabla 2.12: Dominio del Modelo - Mdulo Iptables

Mdulo Squid Cdigo CQ001 Squid Clase Descripcin Esta clase representa las configuraciones bsicas de la herramienta Squid.

38

Mdulo Squid Cdigo CQ002 Clase ReglaPredefinida Descripcin Esta clase representa una regla predefinida que puede ser utilizada lista para las configuraciones de las opciones de proxy de la herramienta Squid. CQ003 CQ004 CQ005 ListaControlAcceso ReglaSquid HistoricoSquid Esta clase agrupa un conjunto de reglas Squid, tanto para la cache como para el proxy. Esta clase representa cada una de las reglas que pueden ser registradas en el Squid. Esta clase representa cada una de las entradas dentro del registro histrico de configuraciones de Squid. CQ006 CQ007 Accion Esta clase representa la accin a ejecutar sobre una regla registrada. FechaActivacionSquid Esta clase representa cada una de las fechas en las cuales se utiliz alguna de las entradas dentro del registro histrico de configuraciones del Squid. CQ008 CQ009 CQ010 CQ011 PuertoSquid TipoACL TipoAcceso Valor Clase que representa el puerto sobre el que se ejecuta el Squid. Representa los tipos de Lista de Control de Acceso. Clase que representa el tipo de acceso (web o cach) Listado de valores sobre los que se ejecutan las reglas registradas.

Tabla 2.13: Dominio del Modelo - Mdulo Squid

Mdulo Snort Cdigo CS001 CS002 Snort Servicio Clase Descripcin Esta clase representa las configuraciones bsicas de la herramienta Snort. Esta clase representa los servicios que la herramienta Snort se halla manejando; as como los puertos a los que se hallan relacionados. CS003 CS004 CS005 Preprocesador ReglaPredefinida HistoricoSnort Esta clase representa los preprocesadores que el Snort est utilizando. Esta clase representa cada una de las reglas que pueden ser registradas en la herramienta Snort. Esta clase representa cada una de las entradas dentro del registro histrico de configuraciones de Snort. CS006 FechaAplicacionSnort Esta clase representa cada una de las fechas en las cuales se utiliz alguna de las entradas dentro

39

Mdulo Snort Cdigo CS007 CS008 CS009 CS010 CS011 CS012 Libreria Parametro TipoLibreria TipoPreprocesador TipoServicio TipoValor Clase Descripcin del registro histrico de configuraciones del Snort. Esta clase representa las libreras que el Snort est utilizando. Esta clase representa los parmetros que el tipo de preprocesador puede recibir. Esta clase representa los tipos de libreras disponibles. Esta clase representa los tipos de preprocesadores disponibles. Esta clase representa los tipos de servicios disponibles. Esta clase representa el tipo de fichero que el Snort utiliza como librera.

Tabla 2.14: Dominio del Modelo - Mdulo Snort

2.5. Anlisis de la solucin


A continuacin se presentar un breve anlisis de la viabilidad del proyecto; para ello se efectuar tanto un anlisis de costo beneficio de la construccin e implantacin de la solucin desde el punto de vista del usuario final; as como un anlisis de factores tcnicos y econmicos que deben de ser identificados por parte del equipo de trabajo. Anlisis de Costo beneficio La implementacin de la solucin traer como beneficio una serie de mejoras al usuario, tanto en el proceso de administrar las diversas herramientas de seguridad; as como llevar a cabo un mejor control de los paquetes que viajan dentro de la red local.

40

Costo El precio del computador en donde se Las instalen local. los aplicativos para administracin de la seguridad en la red costo

Beneficio herramientas menor a utilizadas muchas para la la administracin de la seguridad tienen un soluciones comercializadas actualmente por diversas empresas. tiempos de requeridos las para la de

El costo del personal capacitado para la Menores implementacin de la solucin. seguridad.

configuracin

herramientas

Menores riesgos que se efecte una inadecuada configuracin de la seguridad debido a errores de usuario. Mejora del nivel de seguridad de la informacin que se transmite dentro de la red local.

Tabla 2.15: Anlisis Costo Beneficio

Anlisis de factores tecnolgicos A lo largo del proyecto se har uso de diversas tecnologas que permitirn facilitar el trabajo para poder llevar un adecuado control del proyecto durante el proceso de planificacin y delegacin de tareas, la etapa de codificacin para mantener un adecuado control de las versiones del cdigo que se va generando y una administracin adecuada de los errores que se vayan detectando. Herramienta para la gestin del proyecto Las herramientas de gestin de proyectos, tienen como objetivo cubrir diversas necesidades al momento de llevar a cabo tareas de planificacin y administracin. Dentro de las funciones que podemos hallar, tenemos las de calendarizacin, control de costos, administracin de recursos, comunicacin, entre otras. El siguiente cuadro comparativo mostrar tres (3) de estas aplicaciones a fin de poder elegir la ms adecuada a utilizar a lo largo del proyecto.

41

MS Project Multiplataforma Escritorio Basado en web Multiusuario (colaborativo) Manejo de lista de tareas Lista de Eventos Calendarios X X X

dot-project X X X X X X

GanttProject X X

Tabla 2.16: Comparacin de herramientas de gestin de proyecto

Luego de analizar las caractersticas que presenta cada una de las herramientas mencionadas en funcin de las opciones necesarias para el proyecto, se ha elegido el dot-project como la herramienta de gestin a utilizar. Controlador de versiones Un sistema de control de versiones es una herramienta comnmente utilizada dentro de la ingeniera y en el desarrollo de aplicaciones. Permite efectuar un seguimiento de los cambios realizados sobre el cdigo y los documentos dentro de un proyecto. El siguiente cuadro comparativo mostrar dos (2) tecnologas utilizadas para manejar el control de versiones, el CVS y el SVN.
CVS Commits Atmicos Renombrar Archivos y directorios Mover Archivos y Directorios Copiar Archivos y Directorios Replicar directorios remotos Permisos en los directorios Revisin del registro histrico Documentacin Facilidad de configuracin Facilidad de uso Multiplataforma Velocidad X X X X X X X X X X X X SVN X X X X X

Tabla 2.17: Comparacin de herramientas de control de versiones

42

Como herramienta de Control de Versiones se ha elegido al SVN debido a que brinda muchas ms opciones frente al CVS lo cual ser til a lo largo del desarrollo del proyecto. Herramienta para seguimiento de errores Esta aplicacin permite a los desarrolladores llevar un registro de todos los errores detectados en el programa en desarrollo, a fin de poder aplicarles un adecuado seguimiento desde que el error es detectado, hasta el momento en que es corregido. A continuacin se mostrar un cuadro comparativo entre dos (2) aplicaciones muy utilizadas para administrar los errores detectados.
Mantis Fcil instalacin Fcil configuracin Aplicacin web Aplicacin ligera X X X X X X Bugzilla

Tabla 2.18: Comparacin de herramientas para seguimiento de errores

La herramienta Mantis, es la herramienta escogida para llevar a cabo un adecuado seguimiento a los errores detectados en la aplicacin. Lenguaje de Programacin La eleccin de un adecuado lenguaje de programacin puede influir en el desarrollo de la solucin en cuanto las caractersticas de portabilidad, consumo de recursos, entre otras. Debido a que se requiere que la solucin funcione va web, se se establecer un cuadro comparativo entre tres (3) lenguajes utilizados para crear aplicaciones que cumplen con dicho requerimiento.

43

PHP Ejecucin bajo Linux Bajo consumo de memoria Bajo consumo de procesador Rapidez de ejecucin Gran variedad de libreras disponibles API abierta y documentada Seguridad X X X X X X

Java X

ASP

X X X X

X X X

Tabla 2.19: Comparacin de lenguajes de programacin

Tras comparar las caractersticas de cada uno de los lenguajes, se ha optado por hacer uso del lenguaje PHP. Herramienta CASE Son herramientas que brindan facilidades para el mantenimiento y el desarrollo de aplicaciones. Se presentar un cuadro comparativo de cuatro (4) herramientas CASE para la elaboracin de diagramas UML.
Umbrello Soporte de repositorio Generar cdigo Ingeniera reversa Soporte de UML 2.0 Seleccin fcil de clases y mtodos Diseo del modelo de datos Navegabilidad entre modelos Exportar a imagen Robusto Ligero Soporte Linux Uso del formato XMI X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Argo UML Star UML Rational Rose

Tabla 2.20: Comparacin de herramientas CASE

Luego de revisar las caractersticas de cada una de las herramientas, debido a los puntos que cada uno complementa, se ha optado por utilizar Umbrello.

44

Entornos de Desarrollo Integrados (IDE) Son aplicaciones utilizadas para crear programas. En la mayora de casos, un IDE est conformado por un editor de cdigo fuente, un compilador o un intrprete y usualmente una opcin para ejecutar paso a paso. Asimismo puede incluir funcionalidades adicionales, como integracin con una herramienta de control de versiones, opciones de autocompletado de texto, editor de interfaces grficas, entre otras. A continuacin se presentar un cuadro en donde se comparar cuatro (4) IDEs que pueden ser utilizados para el desarrollo del proyecto.
Kate KDevelop Netbeans (PHP Pluggin) Administracin de Proyectos Poder visualizar el rbol de directorios Depurador Barra de herramientas HTML Herramientas de arrastrar y colocar Inicio rpido Autoguardado Integracin con un manejador de versiones Lista de pendientes (TODO) Autocompletado Integracin con HTML Integracin con CSS Soporte PHP Comparacin de archivos X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Quanta + Eclipse (PHP Pluggin) X X

Tabla 2.21: Comparacin de Entornos de Desarrollo Integrados

Luego de comparar las caractersticas que cada una de las aplicaciones posee, se ha optado por utilizar Quanta + como herramienta IDE. Base de Datos Son herramientas ampliamente utilizadas para almacenar datos para su 45

ser utilizados posteriormente. A continuacin, se presentar un cuadro comparativo de tres (3) bases de datos ampliamente utilizadas en proyectos de diversa ndole.
Sqlite 3 Bajo consumo de recursos Fcil instalacin No depende de un servicio Fcil configuracin Manejo de consultas Manejo de transacciones Soporte de integridad referencial Drivers de conectividad con PHP Portabilidad Soporte de procedimientos X X X X X X X X X X X X X X X X X X X X X X X MySQL 5 PgSql 8

Tabla 2.22: Comparacin de Bases de Datos

Luego de comparar las caractersticas de cada una de las aplicaciones, se ha optado por utilizar Sqlite 3, especialmente por su bajo consumo de recursos. Anlisis econmico El llevar a cabo cualquier proyecto, involucra salida de capital econmico para poder solventar gastos como el pago al personal a cargo de la implementacin de la solucin, licencias, entre otros factores. A continuacin se mostrar una tabla que resume los principales egresos a fin de implementar la solucin.

46

Concepto Mano de obra Generalidades Anlisis de la solucin Diseo de la solucin Construccin de la Solucin Conclusiones Otros Gastos Mquina de desarrollo Mquina de pruebas Luz, Internet Artculos de oficina (hojas, lapiceros, tinta) Total Horas Costo por hora 192 152 64 442 26 10 00 20 00 20 00 15 00 15 00

Subtotal (S/.) 1920 00 3040 00 1280 00 6630 00 390 00 13260 00 400 00 200 00 800 00 150 00 1550 00 14810 00

Tabla 2.23: Anlisis Econmico

47

Captulo 3: Diseo
En este captulo se definir la arquitectura que se utilizar para implementar la solucin, brindndose informacin tales como las capas en las que se dividir la solucin, aspectos de seguridad, entre otros. pantallas del sistema. Asimismo se definirn los criterios utilizados para elaborar el diseo de las interfaces de las diversas

3.1. Arquitectura de la Solucin


La arquitectura a utilizar ser Web, con ello el usuario podr tener acceso remoto a una interfaz grfica para poder llevar a cabo la configuracin de las herramientas de seguridad. Como principal requerimiento, el usuario deber de hacer uso de un navegador de Internet. La aplicacin se hallar conformada por un mdulo central que permitir, dentro de su lista de funciones, administrar una serie de mdulos complementarios cada uno de los cuales aportar nuevas funcionalidades 48

al sistema.

Esto trae como beneficio la posibilidad de crear nuevos

mdulos con el objetivo de agregar nuevas funcionalidades a la herramienta. A lo largo del proyecto de tesis se implementarn tres (3) mdulos complementarios, mdulo Iptables, mdulo Squid y mdulo Snort. Tanto la aplicacin como las herramientas se hallarn ubicadas en un servidor GNU/Linux que se halle ejecutando el servicio web Apache, el cual, contar con el mdulo PHP. En la Imagen 3.1 se puede apreciar la arquitectura propuesta para el presente proyecto.

Imagen 3.1: Arquitectura de la solucin

a) Descripcin de la arquitectura de capas de la solucin. La aplicacin est conformada por capas, cada una de las cuales aporta una funcionalidad al sistema. La lista de capas se detallan en la tabla siguiente:

49

Capa Vista

Funcin que desempea Esta capa se encarga de presentar al usuario una interfaz con la que podr interactuar, permitindole ingresar valores a la aplicacin y visualizar las respuestas de la misma.

Controlador

Dentro de esta capa se hallan las clases que permiten manejar la lgica de negocio de todas las funcionalidades involucradas en el sistema. Asimismo ser la encargada de controlar la interaccin entre el mdulo central de la aplicacin con cada uno de los mdulos complementarios.

Modelo

Esta es la capa que almacena los objetos de negocio de los que hace uso la aplicacin a implementar, as como las clases que permiten llevar a cabo la persistencia contra una base de datos.

Mdulo

Esta capa contendr los diversos mdulos integrados al sistema, cada uno de los cuales aportar nuevas funcionalidades al mismo.

Tabla 3.1: Capas de la Aplicacin

b) Esquema de seguridad. Al ser una aplicacin que efecte tareas de configuracin de herramientas de seguridad dentro de una red local, este sistema debe de brindar la seguridad necesaria para que el acceso a las configuraciones sea restringido nicamente a personal autorizado. Por ello se han propuesto las siguientes soluciones: Servidor Web Virtual: La aplicacin se ejecutar sobre un servidor web virtual (virtual host), que permitir establecer el puerto que los usuarios utilizarn para comunicarse con la aplicacin. Cifrado de contraseas: Para aminorar los riesgos, en caso un usuario no autorizado consiga tener acceso a las contraseas almacenadas en el sistema, se ha optado por utilizar un mecanismo de cifrado sobre las contraseas que sern almacenadas por la aplicacin. Perfiles y permisos: La aplicacin manejar dos tipos de perfiles (administrador y usuario). El primero se caracteriza por poseer un 50

control absoluto sobre cada una de las funciones que la aplicacin posee; mientras que el segundo puede efectuar labores de mantenimiento y generacin de reportes. Inicios de sesin: Se propone que todo aquel usuario que desee acceder al sistema debe de haber sido identificado previamente haciendo uso de una pantalla de inicio de sesin, en donde ingresar su nombre de usuario y contrasea. Filtro de direcciones IP: Se propone establecer un filtro de direcciones IP, a nivel de aplicacin, y de Iptables. Permitiendo el ingreso al sistema nicamente a travs de mquinas cuya direccin IP haya sido registrada y autorizada. Bitcoras de inicio de sesin: Se hara uso de una bitcora que almacenara los intentos exitosos y fallidos de inicio de sesin con fines de auditora.

c) Patrones a utilizar. Modelo Vista Controlador (MVC): El patrn MVC est siendo utilizado para separar la capa de presentacin (Vista) de los objetos del negocio (Modelo) y la lgica del negocio (Controlador), permitiendo as independizar la implementacin de la lgica de la aplicacin del diseo de las pantallas. Data Mapper: Patrn utilizado para manejar la persistencia. Usando este mecanismo, los objetos que pertenecen al modelo desconocen la existencia de una base de datos. viceversa. Campo de Identidad: Consiste en almacenar el Id dentro del objeto; ello permite efectuar consultas haciendo uso de los Id, lo cual conlleva a un ahorro de tiempo. Una clase intermedia es la encargada de transferir los datos del modelo a la base de datos y

51

Mapeo de Llave Fornea: Consiste en representar las llaves forneas como relaciones entre dos objetos. Solitario: Este patrn es utilizado en el ahorro de recursos; su objetivo es el de evitar instanciar una nueva clase si es que esta ya ha sido instanciada anteriormente. Fachada: El patrn fachada permite establecer una interfaz a travs de la cual se lleve a cabo la comunicacin entre dos mdulos. Es utilizada en el presente proyecto para garantizar la comunicacin entre los mdulos complementarios y el mdulo central. Template View: Este patrn permite generar pginas web dinmicas insertando etiquetas (ejemplo: etiquetas PHP) dentro del cdigo HTML. Front Controller: Este patrn establece la creacin de una clase Controlador por cada Vista que se genere. Cada una de estas clases efectuar diferentes procedimientos dependiendo del evento que se accione en su respectiva Vista. Server Session State: La utilidad de este patrn radica en poder almacenar informacin del cliente en el servidor, para poder hacer uso de estos valores ms adelante.

d) Estructura del archivo de configuracin del sistema. Los archivos de configuracin, tanto del mdulo central, como de los mdulos complementarios brindan la siguiente informacin.

Las rutas a los directorios que conforman el mdulo. El nombre de la pgina predeterminada del mdulo. El nombre y la ruta del servicio del sistema al cual el mdulo se halla asociado.

52

3.2. Diseo de la Interfaz Grfica


A continuacin se definirn los criterios utilizados para la elaboracin de las pantallas y se dar a conocer los tipos de pantallas que conforman la aplicacin.

a) Criterios utilizados para el diseo de la interfaz grfica La interfaz grfica es la parte de la aplicacin con la que el usuario interacta. El diseo de la ventana debe de ser tal que el usuario se sienta cmodo y seguro al momento de utilizarlo. Para las pantallas del presente proyecto, se utilizaron los criterios listados a continuacin: Esttica: La pantalla debe de ser estticamente agradable. Muchos usuarios se muestran disconformes con una solucin que no les es agradable a la vista. Como consecuencia esto puede llevar a que el usuario se niegue a hacer uso de la aplicacin lo cual significara el fracaso del proyecto. Es por esa razn que uno de los factores que se han considerado en cuanto al diseo de la pantalla, es la combinacin de los colores. Se ha definido el verde como color bsico, siendo ste el principal color utilizado dentro del diseo. En la Imagen 3.2 se puede apreciar los principales colores que son utilizados en el diseo de las pantallas.

Imagen 3.2: Mapa de colores

Intuitivo: Las opciones que se presenten en pantalla deben de ser fciles de comprender y aprender por parte del usuario. La aplicacin no debe de confundir al usuario en cuanto uso.

53

Balance: Los componentes mostrados en la pantalla deben de estar agrupados de tal forma que no dejen espacios vacos; sin embargo, la pantalla no debe de verse sobrecargada. Simetra: La alineacin de los elementos tanto de forma horizontal como vertical, mejora la apariencia de la pantalla y el orden de la misma. La siguiente imagen muestra un ejemplo de la simetra de los elementos dentro de una pantalla.

Imagen 3.3: Simetra de los elementos

Predecible: Tomando como premisa que el usuario siempre ha de usar algunas opciones ms que otras; las opciones ms importantes o aquellas cuyo uso pueda ser ms frecuente deben de ser ubicados en puntos de fcil acceso. A continuacin se presenta la imagen del men que la aplicacin utilizar.

54

Imagen 3.4: Men de la aplicacin


Secuencial: Las opciones que se presenten deben de hallarse ordenadas. Por ejemplo si se habla de un men que muestra opciones para ejecutar un proceso. Las opciones del men deben de hallarse ordenadas de acuerdo a los pasos del proceso. Econmico: Los pasos para que un usuario pueda efectuar una accin deben de ser los menores posibles. Agrupado: Los componentes presentados en la pantalla deben de hallarse agrupados de manera que guarden relacin entre ellos. De esta forma se evita la confusin del usuario al desconocer la funcionalidad de alguno de los componentes. En la siguiente imagen se puede ver un ejemplo de como se agruparn los componentes dentro de la aplicacin.

Imagen 3.5: Componentes agrupados

55

b) Tipos de pantallas La aplicacin har uso de los siguientes tipos de pantallas: Pantalla Principal: Es la pantalla principal que la aplicacin mostrar luego de haber iniciado sesin. Esta pantalla contar con un men de accesos rpidos a travs del cual se podr acceder a diversas funcionalidades de la aplicacin. Pantalla Secundaria: Son las pantallas que brindarn diversas opciones como, por ejemplo, la generacin de reportes, visualizacin y administracin de registros histricos, administracin de usuarios. Pantalla de Propiedades: Pantalla a travs de la cual se llevarn a cabo las configuraciones de las herramientas de seguridad que la aplicacin administra. Cajas de dilogo: Son pequeas ventanas que el sistema utilizar para brindar informacin sobre un error o un evento ocurrido; o para solicitar una confirmacin al usuario previamente a ejecutar una accin.

c) Diseo estructural de las pantallas Las pantallas de la aplicacin presentarn una estructura conformada por cuatro (4) secciones bien definidas, como puede apreciarse en la siguiente imagen.

56

Imagen 3.6: Estructura de la pgina A continuacin, se dar una breve descripcin de cada una de las secciones presentadas. Cabecera de la pgina: La cabecera de la pgina muestra el nombre de la aplicacin, as como las opciones para cerrar sesin. Pie de pgina: El pie de pgina muestra informacin que permita saber la fecha de creacin de la aplicacin. Men: El men es la herramienta dentro de la aplicacin que permitir a los usuarios navegar por la misma. Seccin de contenidos: Es dentro de esta seccin en donde el usuario interactuar con las herramientas y opciones que la aplicacin le provea.

57

Captulo 4: Construccin
En este captulo se definir el lenguaje utilizado para llevar a cabo la implementacin de la solucin; as como los estndares definidos y las pruebas elaboradas con el objetivo de asegurar la calidad y adecuado funcionamiento de la aplicacin.

4.1. Construccin
En este punto se detallarn las decisiones tomadas para la una adecuada construccin de la solucin.

a) Entorno en el que se ejecutar la aplicacin La aplicacin a desarrollar se ejecutar sobre un servidor GNU/Linux. Dicho sistema ha sido elegido por contar con una amplia gama de aplicaciones de tipo proxy, cortafuegos y otros tipos de herramientas que permitan asegurar una red local. 58

Adicionalmente, cabe considerar el bajo coste de este sistema operativo en cuanto tema de licencias, pudiendo ser adoptado fcilmente por cualquier organizacin sin importar el tamao de la misma.

b) Lenguaje de programacin y la IDE a utilizar para el desarrollo del proyecto El lenguaje de programacin que se utilizar durante la construccin del proyecto ser el lenguaje PHP; asimismo, el entorno de desarrollo integrado elegido es Quanta Plus. La sustentacin tanto del uso de este lenguaje, como de la herramienta, se hallan en el punto 2.3 del presente documento.

c) Libreras a utilizar Para la elaboracin de la solucin se harn uso de una serie de libreras elaboradas por terceras personas. Libreras PHP La tabla 4.1 resume las libreras PHP que se utilizarn para la implementacin de la solucin.
Librera php - session Descripcin Funcionalidad a la que apoyan

Librera que permite a las Esta librera apoya al manejo de la aplicaciones PHP administrar seguridad y a la navegabilidad sesiones. dentro de la aplicacin. Permite a los usuarios dentro la cual para almacenar de puede verificar sus ser si informacin sesiones, utilizada

efectivamente el usuario se ha logueado o si cuanta con los permisos suficientes para realizar alguna operacin. php - simplexml Librera que permite leer y Esta librera apoya a la lectura y

59

Librera

Descripcin escribir archivos xml.

Funcionalidad a la que apoyan almacenamiento de las configuraciones y reglas que se generen a travs de la aplicacin.

php - hash

Librera que provee una serie Esta librera apoya al cifrado de de funciones hash que pueden informacin desde el cdigo php. ser utilizadas en aplicaciones PHP.

php - pdo

Librara

que

permite Esta

librera

apoya

la la

establecer una conexin con persistencia de los objetos en la una base de datos. base de datos Sqlite 3 que aplicacin utilizar.

Tabla 4.1: Libreras PHP que la aplicacin utilizar

Libreras Javascript La tabla 4.2 muestra el listado de libreras Javascript que sern utilizadas para la implementacin de la solucin propuesta en el presente documento.
Librera jssha Descripcin Funcionalidad a la que apoyan ya que cifra al

Librera javascript que provee Esta librera apoya al inicio de una serie de algoritmos SHA sesiones, para el cifrado de informacin. contrasea del usuario antes de que sta sea enviada por al red.

SDMenu

Libreras que permiten trabajar Esta con un men escrito en javascript.

librera

ayuda

la

desplegable navegabilidad de la aplicacin. librera ayuda a la

domtab

Librera javascript que brinda Esta la funcionalidad de pestaas.

navegabilidad de la aplicacin.

Tabla 4.2: Libreras Javascript que la aplicacin utilizar

d) Estndares de programacin Con el objetivo de poder establecer un adecuado orden al momento de codificar la aplicacin y a la vez garantizar que nuestro cdigo sea legible para cualquier otra persona que desee hacer uso del mismo; es necesario definir una serie de estndares para la programacin de la aplicacin.

60

La lista de estndares definidos, puede ser revisada en el Anexo.

4.2. Pruebas
Las pruebas son un proceso importante dentro del desarrollo de una solucin, ya que permiten detectar errores para su correccin. Las pruebas a desarrollar sern ejecutadas a lo largo de todo el proceso de implementacin de cada uno de los mdulos. stas debern de ser llevadas a cabo por el equipo desarrollador previamente a declarar como finalizada una nueva funcionalidad que est siendo elaborada para la solucin.

a) Tipos de prueba Se llevarn a cabo los siguientes tipos de prueba: Pruebas de integracin: Tambin conocidas como pruebas de Caso de Uso, Son las pruebas que buscan validar el cumplimiento de los flujos presentes en cada caso de uso.
Caso de Prueba PI001 PI002 PI003 PI004 CUC01 CUC02 CUC03 CUC04 Verificar se puedan agregar, modificar y eliminar usuarios del sistema. Verificar que el sistema permita iniciar y detener servicios. Verificar que el sistema permita listar mdulos. Verificar que el sistema permita mantener un listado de zonas y nodos dentro de la red. PI005 CUC05 Verificar que se pueda iniciar sesin utilizando nicamente la combinacin adecuada de usuario y contrasea. PI006 PI007 CUC06 CUC07 Verificar la generacin de los reportes de sesin. Verificar que nicamente se pueda Caso de Uso Asociado Objetivo de la Prueba

61

Caso de Prueba

Caso de Uso Asociado

Objetivo de la Prueba iniciar sesin desde equipos cuya IP ha sido autorizada.

PI008

CUC08

Verificar

que

se pueda

habilitar

deshabilitar el reenvo de paquetes dentro de la red. PI009 CUI01 Verificar que el sistema permita efectuar configuraciones Iptables. PI010 PI011 CUI02 CUI03 Verificar el sistema permita registrar y eliminar reglas del Iptables. Verificar que la aplicacin permita y mantener el histrico de reglas configuraciones del mdulo Iptables. PI012 CUI04 Verificar que la aplicacin permita generar un reporte basndose en la bitcora de Iptables. PI013 CUQ01 Verificar que el sistema permita efectuar configuraciones Squid. PI014 PI015 CUQ02 CUQ03 Verificar el sistema permita registrar, modificar y eliminar reglas del Squid. La aplicacin permitir mantener el histrico de reglas y configuraciones del mdulo Squid. PI016 CUQ04 Verificar que la aplicacin permita generar un reporte basndose en la bitcora de Squid. PI017 CUS01 Verificar que el sistema permita efectuar configuraciones Snort. PI018 CUS02 Verificar Snort. PI019 CUS03 Verificar que la aplicacin permita generar un reporte basndose en la bitcora de Snort. que el sistema permita registrar, modificar y eliminar reglas del dentro del mdulo dentro del mdulo dentro del mdulo

Tabla 4.3: Pruebas de integracin

Pruebas de sistema: Son pruebas que buscan evaluar el desempeo funcional y tecnolgico del sistema. Las pruebas de sistema buscarn

62

analizar aspectos de desempeo, uso de recursos, seguridad y estado del sistema tras realizarse la instalacin y desinstalacin del mismo.
Caso de Prueba PS001 PS002 Prueba Funcional Prueba de Desempeo Verificar que las llamadas al sistema por parte de la aplicacin, sean ejecutadas. Verificar que la aplicacin presente un bajo consumo de recursos por parte de memoria y procesamiento. PS003 Prueba de Desempeo Verificar que la pgina demore en ser visualizada, un tiempo menor a 5 segundos. PS004 Prueba de Instalacin Verificar la instalacin exitosa de la aplicacin. Aspecto a Evaluar Objetivo de la Prueba

Tabla 4.4: Pruebas de sistema

Para poder revisar el catlogo de pruebas detallado, revisar el documento Anexo.

b) Tcnica utilizada Para la elaboracin de las pruebas se har uso de las siguientes tcnicas:

Prueba de caja negra: Consiste en definir los valores para cada uno de los campos de ingreso de datos del sistema, con el objetivo de determinar si la salida obtenida es equivalente al resultado esperado.

Prueba de valor extremo: Consiste en utilizar valores tope, mximos y mnimos, como parmetros de entrada del sistema, con el objetivo de determinar su adecuado funcionamiento para dichos casos.

c) Resultados de las pruebas Tras efectuarse cada una de las pruebas listadas, se obtuvieron los siguientes resultados.

63

Resultados de las pruebas de integracin


Caso de Prueba PI001 PI002 PI003 PI004 PI005 PI006 PI007 PI008 PI009 PI010 PI011 PI012 PI013 PI014 PI015 PI016 PI017 PI018 PI019 xito xito xito xito xito xito xito xito xito xito xito xito xito xito xito xito xito xito xito Resultado Observaciones

Tabla 4.5: Resultado de las pruebas de integracin

Resultados de las pruebas de sistema


Caso de Prueba PS001 xito Para que las llamadas a procesos de administracin pudieran ser efectuados, fue necesario editar el archivo sudoers. PS002 xito Las pruebas fueron realizadas limitando el consumo de memoria a 32 MB para la ejecucin de los scripts PHP. PS003 PS004 xito xito La prueba fue realizada deshabilitando servicios no crticos para el sistema. Resultado Observaciones

Tabla 4.6: Resultado de las pruebas de sistema

64

Captulo 5: Observaciones, Conclusiones y Recomendaciones


En este captulo se darn a conocer las observaciones, conclusiones y recomendaciones que han surgido a consecuencia de la implantacin de la presente solucin.

5.1. Observaciones
La aplicacin implantada, ha presentado un adecuado funcionamiento sobre redes cableadas que trabajan sobre protocolo IPv4; sin embargo, las herramientas que son administradas por esta solucin an carecen de soporte para el protocolo IPv6 y redes inalmbricas. Para poder ejecutar llamadas a procesos y funciones administrativas (a nivel del Sistema Operativo) ha sido necesario editar el archivo de configuracin sudoers. La configuracin de este archivo no puede ser automatizada ya que contiene informacin altamente sensible. 65

5.2. Conclusiones
Luego de llevar a cabo la implantacin y pruebas de la solucin propuesta, se concluye lo siguiente:

Mientras ms sencilla y fcil de utilizar sea una aplicacin para los usuarios, los riesgos de llevar a cabo una inadecuada configuracin son menores; asimismo, el tiempo invertido en llevar a cabo las configuraciones es menor, lo cual permite asignar dicho personal a tareas crticas.

El riesgo que muchos usuarios carezcan de conocimientos en cuanto a reglas de seguridad, puede ser aminorado haciendo uso de una solucin que le ayude a establecer reglas y configuraciones iniciales claras y fciles de comprender.

A pesar de las soluciones que permiten configurar y asegurar las redes y sistemas; siempre existir un nivel de riesgo a ataques, mientras los usuarios no conciencien sobre los riesgos a los que se hallan expuestos.

5.3. Recomendaciones
La arquitectura utilizada para la implementacin de la aplicacin permite a los usuarios personalizar, agregar y remover funcionalidades, es por ello que pueden darse varios cambios y mejoras en torno al mdulo central de la solucin. Algunas recomendaciones en cuanto dichas mejoras seran las siguientes:

Agregar soporte para el protocolo IPv6, en futuras versiones de las herramientas Squid y Snort. Agregar soporte para conexiones a travs de dispositivos inalmbricos. Flexibilizar ms la generacin de reglas para las diversas herramientas. En el presente proyecto se han considerado los elementos necesarios para elaborar configuraciones bsicas que aseguren mejor la red frente a los ataques; sin embargo, es posible incluir nuevas opciones como por ejemplo, control por horas y das. 66

Agregar a la aplicacin un soporte multilenguaje.

Algunos cambios que podran hacerse sobre la misma aplicacin, o sobre la idea en la que la aplicacin est basada:

Disear e Implementar un mdulo que permita gestionar y administrar la configuracin del servidor que permita administrar los protocolos DNS y DHCP en una red IPv6.

67

Bibliografa
Definicin del Problema

[WWW0001] Computer Security Institute. http://www.gocsi.com/ [CIS2007] CISCO. CISCO Annual security Report 2007. 2007 [WWW0002] SANS Institute. http://www.sans.org/top20/? portal=7864dc3b7f1cd9b3202c2494164f574c

Marco Conceptual

[HUN2002] HUNT, Craig. Linux Network Servers. SYBEX. 2002. ISBN: 0-7821-4123-4 [COL2005] COLE, Erick. Network Security Bible. Wiley Publishing Inc. 2005. ISBN: 0-7645-7397-7 [NEG2004] NEGUS, Christopher, WEEKS, Thomas. Linux Troubleshooting Bible. Wiley Publishing Inc. 2004. ISBN: 076456997X [WWW0003] Netfilter. http://netfilter.org [WWW0004] Snort. http://www.snort.org [WWW0005] Squid. http://www.squid-cache.org/

Plan de Proyecto

[PMB2004] PMBOK 2004. [SOF2008] SOFTHOUSE Consulting. Scrum in five minutes.

Crystal Clear

[COC2004] COCKBURN, Alistair. Crystal Clear A Human-Powered Methodology for Small Teams. Addison Wesley Professional. 2004. ISBN: 0-201-69947-8

Estado del Arte


[WWW0006] Webmin. http://www.webmin.com [WWW0007] Firestarter. http://www.fs-security.com/ [WWW0008] Guardog. http://www.simonzone.com/software/guarddog/ [WWW0009] BASE. http://base.secureideas.net/about.php

68

Configuracin del Iptables


[EYC2002] EYCHENNE, Herve. Linux Man Page: Iptables. 2002 [DAW2005] BAUTTS, Tony, DAWSON, Terry, PURDY, Gregor. Linux Network Administrators Guide. 2005. ISBN: 0-596-00548-2 [BRO2001] BROCKMEIER, Joe, LEBLANC, Dee-Ann, McCARTY, Ron. Linux Routing. New Riders Publishing. 2001. ISBN: 1-57870-267-4 [BAR2003] BARRETT, Daniel, BYRNES, Robert, SILVERMAN, Richard. Linux Security Cookbook. O'Reilly. 2003. ISBN: 0-596-00391-9 [SHI2004] SHINN, Michael, SHINN, Scott. Troubleshooting Linux Firewalls. Prentice Hall PTR. 2004. ISBN: 0-321-22723-9

Configuracin del Squid

[WES2004] WESSELS, Duane. Squid: The definitive Guide. O' Reilly. 2004. ISBN:0-596-00162-2

Configuracin del Snort


[ROE2006] ROESCH, Martin. Linux Man Page : Snort. 2006 [SNO2006] The SNORT PROJECT. Snort Users Manual. Sourcefire. 2006

Arquitectura

[FOW2002] FOWLER, Martin. Patterns of Enterprise Application Architecture. Addison-Wesley Professional. 2002. ISBN: 0321127420

Construccin

[WWW0010] TIOBE. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html [WWW0011] PHP.NET. http://www.php.net [ALS2005] ALSHANETSKY, Ilia. PHP|Architect's Guide to PHP Security. Nanobooks. 2005. ISBN: 0-9738621-0-6 [SHI2005] SHIFLETT, Chris. Essential PHP Security. O'Reilly. 2005. ISBN: 0-596-00656-X [OWE2006] OWENS, Michael. The Definitive Guide to Sqlite. Apress. 2006. ISBN: 1-59059-673-0

69

PONTIFICIA UNIVERSIDAD CATLICA DEL PER


FACULTAD DE CIENCIAS E INGENIERA

ANLISIS, DISEO E IMPLEMENTACIN DE UNA APLICACIN PARA LA ADMINISTRACIN DE LAS HERRAMIENTAS DE SEGURIDAD EN UNA RED LOCAL
Anexos

Dennis Stephen Cohn Muroy

ASESOR: Ingeniero Corrado Daly Scaletti

Lima, octubre del 2008

INDICE
1.Objetivo del Proyecto............................................................................................1 2.Catlogo de Actores.............................................................................................2 3.Catlogo de Requerimientos................................................................................4 3.1.Requerimientos Funcionales.........................................................................4 3.2.Requerimientos no funcionales...................................................................11 4.Mapa del Proyecto..............................................................................................13 5.Diagrama de Gant..............................................................................................14 6.Plan de Lanzamiento..........................................................................................15 7.Catlogo de Riesgos..........................................................................................16 8.Especificacin de casos de uso..........................................................................17 8.1.Mdulo Central............................................................................................17 8.2.Mdulo Iptables...........................................................................................23 8.3.Mdulo Squid..............................................................................................27 8.4.Mdulo Snort...............................................................................................30 9.Pantallas.............................................................................................................35 9.1.Secciones de la Pantalla.............................................................................35 9.2.Estructura del men principal......................................................................36 9.3.Iniciar Sesin...............................................................................................36 9.4.Panel de Accesos Rpidos..........................................................................37 9.5.Administrar Usuario.....................................................................................38 9.6.Registrar Usuario........................................................................................38 9.7.Informacin del Servidor.............................................................................39 9.8.Administrar Servicios...................................................................................40 9.9.Registro Histrico de Accesos al Sistema...................................................41 10.Arquitectura......................................................................................................42 10.1.Metas y Restricciones de la arquitectura ..................................................42 10.2.Descripcin de la arquitectura de la solucin............................................43 10.3.Patrones a utilizar.....................................................................................45 10.4.Calidad......................................................................................................46 11.Modelo del Dominio..........................................................................................48 11.1.Vista Funcional del Mdulo Central...........................................................48 11.2.Vista Funcional del Mdulo Iptables..........................................................50 11.3.Vista Funcional del Mdulo Squid..............................................................53

11.4.Vista Funcional del Mdulo Snort..............................................................55 12.Estndares de Programacin...........................................................................58 12.1.Clases.......................................................................................................58 12.2.Atributos y Variables..................................................................................58 12.3.Mtodos....................................................................................................59 12.4.Declaracin de Objetos.............................................................................59 12.5.Colecciones de Objetos............................................................................59 12.6.Componentes............................................................................................60 12.7.Interfaces..................................................................................................60 12.8.Constantes................................................................................................60 12.9.Codificacin...............................................................................................61 13.Catlogo de Pruebas........................................................................................62 13.1.Tipos de prueba........................................................................................62 14.Glosario............................................................................................................73

Indice de Imgenes
Actores que interactan con el sistema....................................................................2 Diagrama de Casos de Uso - Mdulo Central.........................................................17 Diagrama de Casos de Uso - Mdulo Iptables........................................................23 Diagrama de Casos de Uso - Mdulo Squid...........................................................27 Diagrama de Casos de Uso - Mdulo Snort...........................................................31 Secciones de la pantalla.........................................................................................35 Estructura del Men Principal.................................................................................36 Inicio de Sesin......................................................................................................36 Panel de Accesos Rpidos.....................................................................................37 Administrar Usuario................................................................................................38 Registrar Usuario....................................................................................................38 Informacin del Servidor.........................................................................................39 Administrar Servicios..............................................................................................40 Registro Histrico de Accesos al Sistema...............................................................41 Arquitectura de la solucin.....................................................................................44 Diagrama del Modelo del Dominio - Mdulo Central...............................................49 Diagrama del Modelo del Dominio - Mdulo Iptables..............................................51 Diagrama del Modelo del Dominio - Mdulo Squid.................................................54 Diagrama del Modelo del Dominio - Mdulo Snort..................................................56

ndice de Tablas
Lista de tareas efectuadas por los actores...............................................................3 Plan de Lanzamiento..............................................................................................15 Catlogo de Riesgos..............................................................................................16 Casos de Uso - Mdulo Central..............................................................................18 Casos de Uso - Mdulo Iptables.............................................................................24 Casos de Uso - Mdulo Squid................................................................................27 Casos de Uso - Mdulo Snort.................................................................................31 Capas de la Aplicacin...........................................................................................44 Modelo del Dominio - Mdulo Central.....................................................................50 Modelo del Dominio - Mdulo Iptables....................................................................52 Modelo del Dominio - Mdulo Squid.......................................................................55 Modelo del Dominio - Mdulo Snort........................................................................57

1. Objetivo del Proyecto


El objetivo principal del presente proyecto de fin de carrera, es el de realizar el anlisis, diseo e implementacin de una aplicacin para facilitar la administracin de las herramientas de seguridad para una red local. Siendo los objetivos especficos, los listados a continuacin:

Identificar los protocolos y aplicaciones ms utilizadas por los usuarios para poder contar con una serie de reglas predefinidas. Simplificar el uso de las herramientas utilizadas para asegurar la red local. Disminuir los costos de entrenamiento de los usuarios que administrarn las herramientas de seguridad de la red local. Implementar un registro histrico de reglas y configuraciones que permita restablecer la aplicacin a una configuracin previa.

Las prioridades en la elaboracin del proyecto son: Sacrificar tareas por:


Cumplir con la fecha de entrega. Asegurar la calidad y seguridad de la aplicacin.

Mantener:

Posibilidad de crecer en una herramienta ms extensa. Consumo bajo de recursos. Usabilidad. Facilidad de aprendizaje.

Sacrificar estas tareas por otras:


Contenido de imgenes. Calidad de las imgenes.

2. Catlogo de Actores
El presente acpite da a conocer el conjunto de actores, quienes interactuarn con el sistema y las tareas que cada uno de ellos desempear haciendo uso del sistema. En la siguiente imagen se puede apreciar a los principales actores que interactuarn con la aplicacin; as como la relacin existente entre ellos.

Imagen 2.1: Actores que interactan con el sistema

Usuario: El Usuario representa a un usuario administrador del sistema; es aquella persona que apoya la tarea de administracin; pero cuenta con permisos reducidos o restringidos. Sus principales tareas se centran en la configuracin de reglas para las diversas herramientas de seguridad, asimismo puede generar los reportes que resumen la bitcora registrada por cada herramienta. Administrador: El administrador del sistema es nico. Cuenta con todos los permisos y privilegios para efectuar cambios dentro de la configuracin de las herramientas que el sistema permite administrar.

La siguiente tabla resume las principales tareas que ejecutarn los actores en la aplicacin.

Actor Usuario Iniciar sesin Mantener reglas del Snort Mantener reglas del Iptables Mantener reglas del Squid Actualizar contrasea

Tarea

Visualizar caractersticas del servidor Generar reportes de la bitcora del Snort Generar reportes de la bitcora del Iptables Generar reportes de la bitcora del Squid Administrador Mantener usuarios Mantener servicios Mantener mdulos Mantener registro histrico Generar reporte de sesiones Mantener subredes y nodos Configurar Snort Configurar Iptables Configurar Squid

Tabla 2.1: Lista de tareas efectuadas por los actores

3. Catlogo de Requerimientos
Este acpite contiene un listado de requerimientos de acuerdo a la documentacin de la metodologa que se est utilizando, este punto podra ser llamado Lista de Deseos. El presente punto busca brindar una seccin en donde los requerimientos puedan ser almacenados para as evitar que sean olvidados. provee un contexto sobre el cual se pueden tomar decisiones. A continuacin se listar el listado de requerimientos, tanto funcionales como no funcionales, para el presente proyecto. Asimismo,

3.1. Requerimientos Funcionales


La lista de requerimientos funcionales se halla dividida en cuatro (4) grupos cada uno de los cuales representa cada mdulo en los que el proyecto se hallar subdividido. Dentro de la informacin que muestra la cabecera de cada tabla de requerimientos, encontramos los siguientes campos: Nmero de requerimiento, la descripcin del requerimiento, la prioridad del requerimiento que pude tomar valores del uno (menor prioridad) al cinco (mayor prioridad) y el tipo de requerimiento que puede ser Exigible (E) o Deseable (D).

Mdulo Central Cdigo Requerimiento Actor Valor aportado FC001 La aplicacin permitir administrar el listado de los mdulos del sistema. Administrador, Usuario Permite a los administradores de la red, conocer cules son los mdulos que se hallan instalados actualmente y si se hallan configurados de forma adecuada.

Prioridad Tipo Cdigo Requerimiento Actor Valor aportado Prioridad Tipo Cdigo Requerimiento Actor Valor aportado Prioridad Tipo Cdigo Requerimiento Actor Valor aportado Prioridad Tipo Cdigo Requerimiento Actor Valor aportado Prioridad Tipo Cdigo Requerimiento

4 E FC002 La aplicacin permitir asignar un alias a las diferentes interfaces detectadas en el equipo. Administrador De esta forma es posible identificar fcilmente la utilidad de cada interfaz. 4 E FC003 La aplicacin permitir activar y desactivar la opcin de reenvo de paquetes. Administrador Permite habilitar el ruteo de datos entre las redes que el servidor (en donde est instalada la aplicacin) interconecta. 3 E FC004 La aplicacin permitir exportar e importar las configuraciones y reglas establecidas por cada mdulo del sistema. Administrador, Usuario Ahorro de tiempo en caso se desee configurar de seguridad de la red desde cualquier nodo de la red. 4 E FC005 La aplicacin permitir mantener la lista de usuarios que podrn iniciar sesin remota en el sistema. Administrador Seguridad, permitiendo que nicamente los usuarios autorizados hagan uso de la aplicacin. 3 E FC006 La aplicacin permitir administrar una lista de direcciones IP hbiles que podrn iniciar sesin remota en el sistema.

Actor Valor aportado

Administrador Seguridad, se disminuye el riesgo por ataques que se centren en romper contraseas, ya que los intentos de acceso se filtran por la direccin IP de los equipos.

Prioridad Tipo Cdigo Requerimiento

4 E FC007 La aplicacin permitir manejar una bitcora que permita auditar las sesiones iniciadas, almacenando informacin como usuario, IP de origen, sistema operativo y hora.

Actor Valor aportado

Aplicacin Seguridad, de esta forma es posible determinas si es que se est llevando a cabo un ataque para obtener los usuarios y contraseas.

Prioridad Tipo Cdigo Requerimiento Actor Valor aportado Prioridad Tipo Cdigo Requerimiento Actor Valor aportado Prioridad Tipo

4 E FC008 La aplicacin permitir iniciar y detener los servicios relacionados con cada uno de los mdulos activados. Administrador Permite a los administradores de la red, habilitar nicamente los servicios que desee estn funcionales. 3 E FC009 La aplicacin permitir mantener la lista de los nodos y las zonas existentes en la red Administrador Permite a los administradores registrar los nodos de red que estn conectados a cada interfaz. 4 E

Mdulo Iptables Cdigo Requerimiento Actor Valor aportado FI001 La aplicacin permitir configurar las opciones bsicas del Iptables. Administrador Permite al administrador llevar a cabo configuraciones del mdulo

Iptables. Prioridad Tipo Cdigo Requerimiento Actor Valor aportado 5 E FI002 La aplicacin podr trabajar con una serie de reglas predeterminadas para determinados programas. Administrador, Usuario El administrador del sistema ahorrar tiempo en la generacin de reglas comunes, pudindose centrar en aquellas reglas que demanden mayor exactitud. Prioridad Tipo Cdigo Requerimiento Actor Valor aportado Prioridad Tipo Cdigo Requerimiento Actor Valor aportado Prioridad Tipo Cdigo Requerimiento Actor Valor aportado 5 E FI003 La aplicacin permitir administrar la tabla nat y la tabla filter. Aplicacin El mdulo brindar soporte a las funciones de filtrado de paquetes y de nateo. 5 E FI004 La aplicacin permitir mantener las reglas de Iptables. Administrador, Usuario Los administradores de la red, podrn registrar las reglas que la herramienta ha de ejecutar. 5 E FI005 La aplicacin permitir establecer polticas para cada cadena registrada en Iptables. Administrador, Usuario Los administradores de la red podrn registrar polticas, reglas a ejecutarse en caso la aplicacin no halle coincidencia alguna con ninguna de las reglas registradas. Prioridad Tipo Cdigo Requerimiento 4 E FI006 Las reglas establecidas por la aplicacin podrn ser aplicables a

un rango de direcciones IP. Actor Valor aportado Prioridad Tipo Cdigo Requerimiento Actor Valor aportado Prioridad Tipo Cdigo Requerimiento Actor Valor aportado Prioridad Tipo Cdigo Requerimiento Actor Valor aportado Administrador, Usuario Las reglas establecidas podrn ser aplicadas sobre un rango de direcciones IP. 2 E FI007 La aplicacin podr registrar reglas de filtrado por MAC Administrador, Usuario Las reglas establecidas podrn ser aplicadas sobre direcciones MAC. 2 E FI008 La aplicacin permitir administrar el registro histrico de reglas y configuraciones generadas por el mdulo Iptables Administrador, Usuario Brinda un ahorro de tiempo en caso se necesite retomar una configuracin que ha sido usado con anterioridad. 5 E FI009 La aplicacin generar reportes basndose en las bitcoras registradas por el mdulo Iptables. Administrador, Usuario Los administradores podrn generar reportes basados en la bitcora registrada por el sistema, para as determinar los posibles intentos por vulnerabilizar la red. Prioridad Tipo 3 E

Mdulo Squid Cdigo Requerimiento Actor Valor aportado Prioridad FQ001 La aplicacin permitir configurar las opciones bsicas del Squid. Administrador Permite al administrador llevar a cabo configuraciones del mdulo Squid. 5

Tipo Cdigo Requerimiento Actor Valor aportado

E FQ002 La aplicacin podr trabajar con una serie de reglas preestablecidas para determinados programas. Administrador, Usuario El administrador del sistema ahorrar tiempo en la generacin de reglas comunes, pudindose centrar en aquellas reglas que demanden mayor exactitud.

Prioridad Tipo Cdigo Requerimiento Actor Valor aportado Prioridad Tipo Cdigo Requerimiento Actor Valor aportado Prioridad Tipo Cdigo Requerimiento Actor Valor aportado Prioridad Tipo Cdigo Requerimiento

5 E FQ003 La aplicacin permitir habilitar y configurar las funcionalidades bsicas de la cach y del proxy. Administrador Permite al administrador configurar los parmetros que regulan el comportamiento de las opciones de proxy y cache del Squid. 4 E FQ004 La aplicacin permitir registrar una lista de control de acceso. Administrador, Usuario La aplicacin permitir registrar la lista de direcciones IP que sern filtradas por la herramienta. 5 E FQ005 La aplicacin permitir registrar grupos de control de acceso. Administrador, Usuario La aplicacin permitir agrupar la lista de direcciones IP que sern filtradas por la herramienta. 5 E FQ006 La aplicacin permitir administrar reglas de control de acceso a travs de las cuales se indicarn las listas y grupos de control a quienes se les permitir acceder o se les negar el acceso a determinados recursos.

Actor Valor aportado Prioridad Tipo Cdigo Requerimiento Actor Valor aportado Prioridad Tipo Cdigo Requerimiento Actor Valor aportado

Administrador, Usuario La aplicacin permitir asignar una serie de reglas de filtrado sobre los grupos y listas de control de acceso registrados. 5 E FQ007 La aplicacin permitir administrar el registro histrico de reglas y configuraciones generadas por el mdulo Squid. Administrador, Usuario Brinda un ahorro de tiempo en caso se necesite retomar una configuracin que ha sido usado con anterioridad. 4 E FQ008 La aplicacin generar reportes basndose en las bitcoras registradas por el mdulo Squid. Administrador, Usuario Los administradores podrn generar reportes basados en la bitcora registrada por el sistema, para as determinar los posibles intentos por vulnerabilizar la red.

Prioridad Tipo

3 E

Mdulo Snort Cdigo Requerimiento Actor Valor aportado FS001 La aplicacin permitir configurar las opciones bsicas del Snort para que trabaje en modo NIDS Administrador Permite al administrador llevar a cabo configuraciones del mdulo Snort para que as desempee las funciones de un Sistema de Deteccin de Intrusos basado en red. Prioridad Tipo Cdigo Requerimiento Actor Valor aportado 5 E FS002 La aplicacin permite definir la lista de preprocesadores que Snort utilizar. Administrador El administrador podr definir el preprocesador que la aplicacin deber de utilizar.

10

Prioridad Tipo Cdigo Requerimiento

3 E FS003 El mdulo trabajar en forma predeterminada con las reglas proporcionadas por la comunidad de usuario de Snort, debidamente validadas por Sourcefire, empresa a cargo de la implementacin y distribucin de Snort.

Actor Valor aportado

Administrador, Usuario El administrador del sistema ahorrar tiempo en la generacin de reglas comunes, pudindose centrar en aquellas reglas que demanden mayor exactitud.

Prioridad Tipo Cdigo Requerimiento Actor Valor aportado

5 E FS004 La aplicacin generar reportes basndose en las bitcoras registradas por el mdulo Snort. Administrador, Usuario Los administradores podrn generar reportes basados en la bitcora registrada por el sistema, para as determinar los posibles intentos por vulnerabilizar la red.

Prioridad Tipo

3 E

3.2. Requerimientos no funcionales

Requisitos no funcionales Cdigo Requerimiento Valor aportado Tipo Cdigo Requerimiento Valor aportado Tipo FN001 La aplicacin permitir acceso remoto va web. Permite contar con una interfaz grfica para llevar a cabo las configuraciones de forma remota. E FN002 La versin en desarrollo de la aplicacin soportar interfaces ethernet. Las herramientas que se administrarn presentan un adecuado soporte para trabajar con interfaces ethernet. E

11

Cdigo Requerimiento Valor aportado Tipo Cdigo Requerimiento Valor aportado

FN003 La aplicacin har uso del protocolo IPv4. En la actualidad, a nivel nacional, es el protocolo que se est utilizando para establecer una comunicacin entre dos mquinas. E FN004 La aplicacin presentar una interfaz que sea fcil de utilizar. Rpida configuracin de las herramientas, disminuyendo los riesgos producidos por configuraciones ineficientes de las herramientas.

Tipo Cdigo Requerimiento Valor aportado

E FN005 La aplicacin estar escrita en el lenguaje PHP 5. Lenguaje bastante ligero y que puede ser ejecutado sobre Sistemas Operativos GNU/Linux, sobre el que se ejecutan las herramientas a configurar.

Tipo Cdigo Requerimiento Valor aportado Tipo Cdigo Requerimiento Valor aportado Tipo Cdigo Requerimiento Valor aportado Tipo

E FN006 El instalador de la aplicacin estar escrito en el lenguaje Perl. Lenguaje script bastante popular, ligero y robusto. E FN007 La aplicacin se ejecutar sobre el servidor web Apache versin 2. La versin actual del servidor web, comnmente utilizado para trabajar con aplicaciones php. E FN008 La aplicacin se ejecutar prioritariamente en sistemas operativos GNU/Linux basados en RedHat. Las distribuciones basadas en Redhat tienen bastante tiempo en el mercado y han demostrado ser bastante robustas y seguras. E

12

4. Mapa del Proyecto


El mapa del proyecto es un diagrama en donde se da a conocer las tareas que deben de desarrollarse; as como el orden de las mismas. Para as definir la secuencia en que las tareas sern resueltas.

13

5. Diagrama de Gant

14

6. Plan de Lanzamiento
El plan de lanzamiento resume las principales fechas de entrega de cada uno de las tareas definidas.

Tarea Sprint 1 Administrar usuarios Administrar configuraciones Visualizar configuraciones Generar reportes de sesiones Sprint 2 Administrar mdulos Administrar servicios Administrar zonas Sprint 3 Administrar configuracin Iptables Administrar reglas Iptables Administrar registro histrico de Iptables Generar reporte Iptables Sprint 4 Administrar configuracin Squid Administrar reglas Squid Administrar registro histrico de Squid Generar reporte Squid Sprint 5 Administrar configuracin Snort Administrar reglas Snort Generar reporte Snort

Fecha Inicio 04/05/2008 17/05/2008 17/05/2008 24/05/2008 25/05/2008 01/05/2008 07/05/2008 29/06/2008 06/07/2008 12/07/2008 18/07/2008 20/07/2008 25/07/2008 01/08/2008 08/08/2008 25/08/2008 02/09/2008 07/09/2008

Fecha Fin 17/05/2008 24/05/2008 24/05/2008 25/05/2008 01/05/2008 08/05/2008 15/06/2008 06/07/2008 12/07/2008 18/07/2008 20/07/2008 25/07/2008 01/08/2008 08/08/2008 10/08/2008 02/09/2008 07/09/2008 14/09/2008

Tabla 6.1: Plan de Lanzamiento

15

7. Catlogo de Riesgos
El siguiente cuadro presenta un listado de los principales riesgos a los que el proyecto se puede enfrentar a lo largo de todo su ciclo de vida; as como las acciones a efectuar para mermar el impacto producido en caso el riesgo se llegara a dar.

N 1 necesarias.

Riesgo

Impacto

Respuesta miembros del grupo para dar a conocer las tareas y hallar las faltantes, las cuales se agregarn en el backlog para el siguiente Sprint

La planificacin no incluye tareas 20% Mediano Se programara reuniones con los

Un retraso en una tarea produce 20% Mediano Las tareas fatantes formarn parte retrasos en cascada en las tareas dependientes. del backlog del siguiente Sprint. Hacer uso de equipos propios

Los

espacios en

no el

estn 40% Bajo momento

disponibles necesario. 5

(porttiles)

Los espacios estn disponibles 60% Mediano Hacer uso de recursos remotos para pero no cuentan con las las configuraciones faltantes. herramientas o configuraciones necesarias.

La curva de aprendizaje para la 30% Alto herramienta a configurar es ms larga de lo esperado.

Revisin de manuales para ayuda. Consulta con expertos del tema. Los nuevos requisitos se agregarn al backlog del siguiente Sprint. Pruebas individuales rigurosas para minimizar la cantidad de errores en los productos entregados. Agregar las correcciones solicitadas al backlog del siguiente Sprint.

7 8

El

dueo

del

proyecto

pide 10% Bajo

nuevos requisitos. Los ciclos de revisin/decisin 40% Alto del dueo del proyecto para los prototipos y funcionalidades son ms lentos de lo esperado. 9

Prdida de informacin por dao 15% Muy Alto Mantener copias remotas en un de equipos o robo servidor.

Tabla 7.1: Catlogo de Riesgos

16

8. Especificacin de casos de uso


En esta seccin se describe a manera general las funcionalidades de la aplicacin. Se presentar el modelo de casos de uso (modelo que muestra las funcionalidades del sistema), supuestos y dependencias.

8.1. Mdulo Central


Este paquete contiene los casos que corresponden a la seguridad del sistema, la validacin de los usuarios y la administracin de los permisos de los mismos de manera que se implemente un esquema de privilegios para los usuarios y mantener segura la informacin. Los casos de uso incluidos en este paquete son: Validar Usuario, Mantener Usuarios y Mantener Perfiles.

Imagen 8.1: Diagrama de Casos de Uso - Mdulo Central

17

Mdulo Central Cdigo CUC01 CUC02 CUC03 CUC04 CUC05 CUC06 CUC07 CUC08 Caso de uso Mantener usuarios Mantener servicios Mantener mdulos Mantener subred Iniciar sesin Generar reporte de sesiones Administrar directivas de seguridad Mantener configuracin de red Requerimientos Asociados FC005 FC008 FC001, FC004 FC009 FC005, FC006 FC007 FC006 FC002, FC003, FC009

Tabla 8.1: Casos de Uso - Mdulo Central

a) Iniciar sesin
Caso de Uso: Iniciar Sesin Descripcin: Actores: Precondicin: 1. 2. 3. Permite a un actor iniciar sesin en la aplicacin. Administrador, Usuario Ninguna. Flujo Principal: Iniciar Sesin El actor ingresa en la pantalla de inicio de sesin su nombre de usuario y contrasea. La aplicacin verifica que los datos ingresados sean vlidos. correctos muestra al usuario la pantalla principal de la aplicacin. El caso de uso finaliza. Flujo Excepcional: Datos incorrectos 1. Si el usuario y/o la contrasea ingresados son incorrectos, la aplicacin mostrar el mensaje de error: El usuario y/o la contrasea son incorrectos Postcondicin: El usuario ha iniciado sesin satisfactoriamente. Si son

b) Mantener usuarios
Caso de Uso: Mantener Usuarios Descripcin: Permite registrar un nuevo usuario en el sistema. As mismo permite evitar replicaciones de usuarios, modificar y eliminar a un usuario registrado en el sistema. Administrador Haberse ejecutado el caso de uso Iniciar Sesin Flujo Principal: Registrar Usuario 1. El actor selecciona la opcin Nuevo Usuario.

Actores: Precondicin:

18

Caso de Uso: Mantener Usuarios 2. 3. 4. La aplicacin muestra un formulario para que el actor registre los datos del nuevo usuario. El actor llena los campos obligatorios del formulario (Nombre, Contrasea, Confirmar Contrasea). La aplicacin verifica que no halla un Nombre de usuario ya existente y que los cuadros de Contrasea y Confirmar Contrasea sean idnticos y no vacos. Luego de ello registra los datos en la Base de Datos y muestra un mensaje de xito. 5. El caso de uso finaliza. usuario. Flujo Alternativo: Modificar Usuario 1. 2. 3. 4. El actor selecciona la opcin Editar Usuario. La aplicacin muestra un formulario para que el actor edite los datos del usuario. El actor actualiza el valor de los campos. La aplicacin verifica que no halla un Nombre de usuario ya existente y que los cuadros de Contrasea y Confirmar Contrasea sean idnticos y no vacos. Luego de ello actualiza los datos en la Base de Datos y muestra un mensaje de xito. 5. 1. 2. 3. 4. 5. 1. El caso de uso finaliza. Flujo Alternativo: Eliminar Usuario El actor selecciona la opcin Eliminar Usuario. La aplicacin muestra un mensaje de confirmacin. El actor acepta la eliminacin del usuario.. El sistema elimina el usuario y muestra un mensaje de xito. El caso de uso finaliza. Flujo Excepcional: Datos incorrectos Si el nombre de usuario ya existe o si los valores registrados en los cuadros de Contrasea y Confirmar Contrasea no coinciden o son vacos, la aplicacin mostrar un mensaje de error al usuario. Postcondicin: Se ha registrado satisfactoriamente los datos de un nuevo

c) Mantener servicios
Caso de Uso: Mantener Servicios Descripcin: Actores: Precondicin: 1. Permite iniciar y detener los servicios relacionados con cada uno de los mdulos detectados. Administrador Haberse ejecutado el caso de uso Iniciar Sesin Flujo Principal: Actualizar Servicio El actor selecciona la opcin Administrar Servicios.

19

Caso de Uso: Mantener Servicios 2. La aplicacin muestra una tabla en donde estn listados los servicios relacionados a cada mdulo de la aplicacin, as como el estado de cada servicio (iniciado / detenido). 3. 4. 5. El actor selecciona la opcin Iniciar / Detener servicio del servicio cuyo estado desea modificar. La aplicacin inicia / detiene el servicio, mostrando el mensaje de xito. El caso de uso finaliza.

Postcondicin: Se ha modificado satisfactoriamente el estado del servicio.

d) Mantener mdulos
Caso de Uso: Mantener Mdulos Descripcin: Actores: Precondicin: 1. 2. 3. Permite administrar el listado de los mdulos del sistema, habilitndolos o deshabilitndolos. Administrador Haberse ejecutado el caso de uso Iniciar Sesin Flujo Principal: Actualizar Mdulo El actor selecciona la opcin Administrar Mdulo. La aplicacin muestra una tabla en donde estn listados los mdulos detectados por la aplicacin. El caso de uso finaliza. Postcondicin: Se ha mostrado satisfactoriamente el estado de cada mdulo.

e) Mantener subred
Caso de Uso: Mantener subred Descripcin: Actores: Precondicin: 1. 2. 3. 4. 5. 6. Permite agregar un nuevo nodo a una interfaz detectada por el sistema. Administrador Haberse ejecutado el caso de uso Iniciar Sesin Flujo Principal: Registrar Subred El actor selecciona la opcin Administrar Zonas. La aplicacin muestra la lista de interfaces detectadas con sus respectivas subredes. El actor selecciona la opcin Nueva Subred. La aplicacin muestra un formulario para registrar la nueva subred. El actor registra los datos de la nueva subred (Nombre de la Subred, IP, Mscara, Mscara Corta, Interfaz). La aplicacin verifica los datos ingresados. Si son correctos guarda los datos de la subred y muestra un mensaje de xito y una tabla a travs de

20

Caso de Uso: Mantener subred la cual el usuario puede registrar los nodos de la red. 7. 8. 9. El usuario ingresa la direccin IP del nodo y el nombre del mismo; luego pulsa el botn agregar. La aplicacin registra los valores del nuevo nodo. Se repite el punto 7 y 8 hasta que el usuario pulse sobre el botn Salir.

10. El caso de uso finaliza. Postcondicin: Se ha registrado satisfactoriamente los datos de un nuevo nodo. Flujo Alternativo: Modificar subred 1. 2. 3. 4. 5. 1. 2. 3. 4. 5. El actor selecciona la opcin Editar Subred. La aplicacin muestra un formulario para que el actor edite los datos de la subred. El actor actualiza el valor de los campos Mscara, Mscara Corta, Interfaz). El sistema verifica los datos ingresados. Si son correctos actualiza los datos de la subred y muestra un mensaje de xito. El caso de uso finaliza. Flujo Alternativo: Eliminar Nodo El actor selecciona la opcin Eliminar Subred. La aplicacin muestra un mensaje de confirmacin. El actor acepta la eliminacin del nodo. El sistema elimina el nodo y muestra un mensaje de xito. El caso de uso finaliza. (Nombre de la Subred, IP,

f) Generar reporte de sesiones


Caso de Uso: Generar Reporte de Sesiones Descripcin: Generar un reporte basado en la bitcora de la aplicacin que permita auditar las sesiones iniciadas, almacenando informacin como usuario, IP de origen, sistema operativo y hora. Administrador Haberse ejecutado el caso de uso Iniciar Sesin Flujo Principal: Generar Reporte de Sesiones 1. 2. 3. 4. 5. El actor selecciona la opcin Generar Reporte de Sesiones. La aplicacin muestra un formulario que permite filtrar por rango de fechas y nombre de Usuario. El actor selecciona las opciones de filtrado que desee y pulsa la opcin Ver Reporte. La aplicacin genera el reporte solicitado. El caso de uso finaliza.

Actores: Precondicin:

Postcondicin: Se ha generado satisfactoriamente un reporte de sesiones.

21

g) Administrar directivas de seguridad


Caso de Uso: Administrar directivas de seguridad Descripcin: Actores: Precondicin: 1. 2. 3. 4. 5. La aplicacin permitir administrar una lista de direcciones IP hbiles que podrn iniciar sesin remota en el sistema. Administrador Haberse ejecutado el caso de uso Iniciar Sesin Flujo Principal: Registrar IP Vlida El actor selecciona la opcin Informacin del Servidor. La aplicacin muestra la configuracin actual del servidor. El actor registra la nueva IP vlida dentro de la lista de IPs Vlidas y pulsa la opcin Guardar. La aplicacin guarda los datos del nodo y muestra un mensaje de xito. El caso de uso finaliza. para iniciar sesin en la aplicacin. Flujo Alternativo: Eliminar IP Vlida 1. 2. 3. 4. 5. El actor selecciona la opcin Eliminar IP. La aplicacin muestra un mensaje de confirmacin. El actor acepta la eliminacin de registro. El sistema elimina la direccin IP de la lista y muestra un mensaje de xito. El caso de uso finaliza.

Postcondicin: Se ha registrado satisfactoriamente una nueva direccin IP vlida

h) Mantener configuracin de red


Caso de Uso: Mantener configuracin de red Descripcin: La aplicacin permitir activar y desactivar la opcin de reenvo de paquetes; as como mantener actualizados los valores de la red. Administrador Haberse ejecutado el caso de uso Iniciar Sesin Flujo Principal: Recargar valores de la red 1. 2. 3. El actor selecciona la opcin Recargar. La aplicacin busca los valores de la configuracin de la red y actualiza los valores dentro de la base de datos. El caso de uso finaliza. asignados al servidor. Flujo Alternativo: Habilitar el reenvo de paquetes 1. 2. 3. El actor selecciona la opcin Habilitar Reenvo de Paquetes. La aplicacin activa el reenvo de paquetes. El caso de uso finaliza. Postcondicin: Se ha actualizado satisfactoriamente los valores de red

Actores: Precondicin:

22

Caso de Uso: Mantener configuracin de red Flujo Alternativo: Deshabilitar el reenvo de paquetes 1. 2. 3. El actor selecciona la opcin Deshabilitar Reenvo de Paquetes. La aplicacin desactiva el reenvo de paquetes. El caso de uso finaliza.

8.2. Mdulo Iptables


Este paquete contiene los casos que corresponden a la

administracin de la herramienta Iptables. Los casos de uso incluidos en este paquete son: Configurar Iptables, Mantener Reglas Iptables, Mantener Registro Histrico, Generar Reporte Iptables.

Imagen 8.2: Diagrama de Casos de Uso - Mdulo Iptables

Mdulo Iptables Cdigo CUI01 CUI02 CUI03 Caso de uso Configurar Iptables Mantener reglas Iptables Mantener registro histrico Requerimientos Asociados FI001 FI002, FI003, FI004, FI005, FI006, FI007 FI008

23

Mdulo Iptables CUI04 Generar reporte Iptables FI009

Tabla 8.2: Casos de Uso - Mdulo Iptables

a) Configurar Iptables
Caso de Uso: Configurar Iptables Descripcin: Actores: Precondicin: Permite registrar las configuraciones generales del mdulo Iptables. Administrador Haberse ejecutado el caso de uso Iniciar Sesin El mdulo Iptables debe de estar habilitado. Flujo Principal: Registrar Configuracin 1. 2. 3. 4. 5. El actor selecciona la opcin Configuracin del mdulo Iptables. La aplicacin muestra un formulario para que el actor registre los datos de la configuracin. El actor llena los campos obligatorios del formulario (Descripcin de la Configuracin). La aplicacin verifica los datos ingresados. Si son correctos guarda los datos del usuario y muestra un mensaje de xito. El caso de uso finaliza. Flujo Alternativo: Importar Configuracin 1. 2. 3. 4. 5. El actor selecciona la opcin Importar configuracin. La aplicacin muestra una ventana para que seleccione la configuracin que desea importar. El actor selecciona el archivo de configuracin que desea importar. El sistema carga los datos de configuracin. El caso de uso finaliza. Postcondicin: Se ha registrado satisfactoriamente la nueva configuracin.

b) Mantener reglas Iptables


Caso de Uso: Mantener reglas Iptables Descripcin: Actores: Precondicin: Permite registrar, modificar y eliminar una nueva regla en el mdulo Iptables. Administrador, Usuario Haberse ejecutado el caso de uso Iniciar Sesin El mdulo Iptables debe de estar habilitado. Flujo Principal: Registrar Regla 1. El actor selecciona la opcin Nueva Regla.

24

Caso de Uso: Mantener reglas Iptables 2. 3. 4. 5. La aplicacin muestra un formulario para que el actor registre los datos de la nueva regla. El actor llena los campos obligatorios del formulario. La aplicacin verifica los datos ingresados. Si son correctos guarda los datos de la regla y muestra un mensaje de xito. El caso de uso finaliza. Flujo Alternativo: Modificar Regla 1. 2. 3. 4. 5. 1. 2. 3. 4. 5. El actor selecciona la opcin Modificar Regla. La aplicacin muestra un formulario para que el actor edite los datos de la regla. El actor actualiza el valor de los campos. El sistema verifica los datos ingresados. Si son correctos actualiza los datos de la regla y muestra un mensaje de xito. El caso de uso finaliza. Flujo Alternativo: Eliminar Regla El actor selecciona la opcin Eliminar Regla. La aplicacin muestra un mensaje de confirmacin. El actor acepta la eliminacin de la regla. El sistema elimina la regla y muestra un mensaje de xito. El caso de uso finaliza. Postcondicin: Se ha registrado satisfactoriamente los datos de una nueva regla.

c) Mantener registro histrico


Caso de Uso: Mantener registro histrico Descripcin: La aplicacin permitir exportar las configuraciones y reglas establecidas dentro del mdulo Iptables; as como eliminar configuraciones que ya no se consideren tiles. Administrador El mdulo Iptables debe de hallarse habilitado en el sistema. Flujo Principal: Exportar registro histrico 1. 2. 3. 4. 5. El actor selecciona la opcin Registro histrico. La aplicacin muestra una tabla con los registros histricos de cada mdulo Iptables. El actor selecciona las opcin que Exportar del registro que desee exportar. La aplicacin guardar los valores del registro dentro de un archivo. El caso de uso finaliza. Flujo Alternativo: Eliminar registro histrico 1. El actor selecciona la opcin Registro histrico.

Actores: Precondicin:

Postcondicin: Se ha exportado los valores del registro satisfactoriamente.

25

Caso de Uso: Mantener registro histrico 2. 3. 4. 5. 6. 7. 1. 2. 3. 4. 5. La aplicacin muestra una tabla con los registros histricos del mdulo Iptables. El actor selecciona las opcin que Eliminar del registro que desee eliminar. La aplicacin muestra un mensaje de confirmacin. El actor acepta la eliminacin del registro. La aplicacin elimina el registro. El caso de uso finaliza. Flujo Alternativo: Restaurar del registro histrico El actor selecciona la opcin Registro histrico. La aplicacin muestra una tabla con los registros histricos del mdulo Iptables. El actor selecciona las opcin que Restaurar del registro que desee restaurar. La aplicacin restaura las reglas o configuraciones relacionadas con dicho registro. El caso de uso finaliza.

d) Generar reporte Iptables


Caso de Uso: Generar Reporte Iptables Descripcin: Actores: Precondicin: Generar un reporte basado en la bitcora de la herramienta en un formato de fcil lectura para el usuario. Administrador, Usuario Haberse ejecutado el caso de uso Iniciar Sesin El mdulo Iptables debe de estar habilitado. Flujo Principal: Generar Reporte Iptables 1. 2. 3. 4. 5. El actor selecciona la opcin Generar Reporte Iptables. La aplicacin muestra un formulario que permite filtrar por rango de fechas o por un rango de cantidades. El actor selecciona las opciones de filtrado que desee y pulsa la opcin Ver Reporte. La aplicacin genera el reporte solicitado. El caso de uso finaliza. Iptables.

Postcondicin: Se ha generado satisfactoriamente un reporte de la herramienta

26

8.3. Mdulo Squid


Este paquete contiene los casos que corresponden a la administracin de la herramienta Squid. Los casos de uso incluidos en este paquete son: Configurar Squid, Mantener Reglas Squid, Mantener Registro Histrico, Generar Reporte Squid.

Imagen 8.3: Diagrama de Casos de Uso - Mdulo Squid

Mdulo Squid Cdigo CUQ01 CUQ02 CUQ03 CUQ04 Caso de uso Configurar Squid Mantener reglas Squid Mantener registro histrico Generar reporte Squid Requerimientos Asociados FQ001, FQ003 FQ002, FQ006 FQ007 FQ008 FQ004, FQ005,

Tabla 8.3: Casos de Uso - Mdulo Squid

27

a) Configurar Squid
Caso de Uso: Configurar Squid Descripcin: Actores: Precondicin: Permite registrar las configuraciones generales del mdulo Squid. Administrador Haberse ejecutado el caso de uso Iniciar Sesin El mdulo Squid debe de estar habilitado. Flujo Principal: Registrar Configuracin 1. 2. 3. 4. 5. El actor selecciona la opcin Configuracin del mdulo Squid. La aplicacin muestra un formulario para que el actor registre los datos de la configuracin. El actor llena los campos obligatorios del formulario. La aplicacin verifica los datos ingresados. Si son correctos guarda los datos del usuario y muestra un mensaje de xito. El caso de uso finaliza. Flujo Alternativo: Importar Configuracin 1. 2. 3. 4. 5. El actor selecciona la opcin Importar configuracin. La aplicacin muestra una ventana para que seleccione la configuracin que desea importar. El actor selecciona el archivo de configuracin que desea importar. El sistema carga los datos de configuracin. El caso de uso finaliza. Postcondicin: Se ha registrado satisfactoriamente la nueva configuracin.

b) Mantener reglas Squid


Caso de Uso: Mantener reglas Squid Descripcin: Actores: Precondicin: Permite registrar, modificar y eliminar una nueva regla en el mdulo Squid. Administrador, Usuario Haberse ejecutado el caso de uso Iniciar Sesin El mdulo Squid debe de estar habilitado. Flujo Principal: Registrar Regla 1. 2. 3. 4. 5. El actor selecciona la opcin Nueva Regla. La aplicacin muestra un formulario para que el actor registre los datos de la nueva regla. El actor llena los campos obligatorios del formulario. La aplicacin verifica los datos ingresados. Si son correctos guarda los datos de la regla y muestra un mensaje de xito. El caso de uso finaliza. Flujo Alternativo: Modificar Regla Postcondicin: Se ha registrado satisfactoriamente los datos de una nueva regla.

28

Caso de Uso: Mantener reglas Squid 1. 2. 3. 4. 5. 1. 2. 3. 4. 5. El actor selecciona la opcin Modificar Regla. La aplicacin muestra un formulario para que el actor edite los datos de la regla. El actor actualiza el valor de los campos. El sistema verifica los datos ingresados. Si son correctos actualiza los datos de la regla y muestra un mensaje de xito. El caso de uso finaliza. Flujo Alternativo: Eliminar Regla El actor selecciona la opcin Eliminar Regla. La aplicacin muestra un mensaje de confirmacin. El actor acepta la eliminacin de la regla. El sistema elimina la regla y muestra un mensaje de xito. El caso de uso finaliza.

c) Mantener registro histrico


Caso de Uso: Mantener registro histrico Descripcin: La aplicacin permitir exportar las configuraciones y reglas establecidas dentro del mdulo Squid; as como eliminar configuraciones que ya no se consideren tiles. Administrador El mdulo Squid debe de hallarse habilitado en el sistema. Flujo Principal: Exportar registro histrico 1. 2. 3. 4. 5. El actor selecciona la opcin Registro histrico. La aplicacin muestra una tabla con los registros histricos de cada mdulo Squid. El actor selecciona las opcin que Exportar del registro que desee exportar. La aplicacin guardar los valores del registro dentro de un archivo. El caso de uso finaliza. Flujo Alternativo: Eliminar registro histrico 1. 2. 3. 4. 5. 6. 7. El actor selecciona la opcin Registro histrico. La aplicacin muestra una tabla con los registros histricos del mdulo Squid. El actor selecciona las opcin que Eliminar del registro que desee eliminar. La aplicacin muestra un mensaje de confirmacin. El actor acepta la eliminacin del registro. La aplicacin elimina el registro. El caso de uso finaliza.

Actores: Precondicin:

Postcondicin: Se ha exportado los valores del registro satisfactoriamente.

29

Caso de Uso: Mantener registro histrico Flujo Alternativo: Restaurar del registro histrico 1. 2. 3. 4. 5. El actor selecciona la opcin Registro histrico. La aplicacin muestra una tabla con los registros histricos del mdulo Squid. El actor selecciona las opcin que Restaurar del registro que desee restaurar. La aplicacin restaura las reglas o configuraciones relacionadas con dicho registro. El caso de uso finaliza.

d) Generar reporte Squid


Caso de Uso: Generar Reporte Squid Descripcin: Actores: Precondicin: Generar un reporte basado en la bitcora de la herramienta en un formato de fcil lectura para el usuario. Administrador, Usuario Haberse ejecutado el caso de uso Iniciar Sesin El mdulo Squid debe de estar habilitado. Flujo Principal: Generar Reporte Squid 1. 2. 3. 4. 5. El actor selecciona la opcin Generar Reporte Squid. La aplicacin muestra un formulario que permite filtrar por rango de fechas o por un rango de cantidades. El actor selecciona las opciones de filtrado que desee y pulsa la opcin Ver Reporte. La aplicacin genera el reporte solicitado. El caso de uso finaliza. Squid.

Postcondicin: Se ha generado satisfactoriamente un reporte de la herramienta

8.4. Mdulo Snort


Este paquete contiene los casos que corresponden a la administracin de la herramienta Snort. Los casos de uso incluidos en este paquete son: Configurar Snort, Mantener Reglas Snort, Mantener Registro Histrico, Generar Reporte Snort.

30

Imagen 8.4: Diagrama de Casos de Uso - Mdulo Snort

Mdulo Snort Cdigo CUS01 CUS02 CUS03 Caso de uso Configurar Snort Mantener reglas Snort Generar reporte Snort Requerimientos Asociados FS001, FS002 FS003 FS004

Tabla 8.4: Casos de Uso - Mdulo Snort

a) Configurar Snort
Caso de Uso: Configurar Snort Descripcin: Actores: Precondicin: Permite registrar las configuraciones generales del mdulo Snort. Administrador Haberse ejecutado el caso de uso Iniciar Sesin El mdulo Snort debe de estar habilitado. Flujo Principal: Registrar Configuracin 1. 2. 3. 4. 5. El actor selecciona la opcin Configuracin del mdulo Snort. La aplicacin muestra un formulario para que el actor registre los datos de la configuracin. El actor llena los campos obligatorios del formulario. La aplicacin verifica los datos ingresados. Si son correctos guarda los datos del usuario y muestra un mensaje de xito. El caso de uso finaliza. Postcondicin: Se ha registrado satisfactoriamente la nueva configuracin.

31

Caso de Uso: Configurar Snort Flujo Alternativo: Importar Configuracin 1. 2. 3. 4. 5. El actor selecciona la opcin Importar configuracin. La aplicacin muestra una ventana para que seleccione la configuracin que desea importar. El actor selecciona el archivo de configuracin que desea importar. El sistema carga los datos de configuracin. El caso de uso finaliza.

b) Mantener reglas Snort


Caso de Uso: Mantener reglas Snort Descripcin: Actores: Precondicin: Permite registrar, modificar y eliminar una nueva regla en el mdulo Snort. Administrador, Usuario Haberse ejecutado el caso de uso Iniciar Sesin El mdulo Snort debe de estar habilitado. Flujo Principal: Registrar Regla 1. 2. 3. 4. 5. El actor selecciona la opcin Nueva Regla. La aplicacin muestra un formulario para que el actor registre los datos de la nueva regla. El actor llena los campos obligatorios del formulario. La aplicacin verifica los datos ingresados. Si son correctos guarda los datos de la regla y muestra un mensaje de xito. El caso de uso finaliza. Flujo Alternativo: Eliminar Regla 1. 2. 3. 4. 5. El actor selecciona la opcin Eliminar Regla. La aplicacin muestra un mensaje de confirmacin. El actor acepta la eliminacin de la regla. El sistema elimina la regla y muestra un mensaje de xito. El caso de uso finaliza. Postcondicin: Se ha registrado satisfactoriamente los datos de una nueva regla.

c) Mantener registro Snort


Caso de Uso: Mantener registro histrico Descripcin: La aplicacin permitir exportar las configuraciones y reglas establecidas dentro del mdulo Snort; as como eliminar configuraciones que ya no se consideren tiles. Administrador El mdulo Snort debe de hallarse habilitado en el sistema.

Actores: Precondicin:

32

Caso de Uso: Mantener registro histrico Flujo Principal: Exportar registro histrico 1. 2. 3. 4. 5. El actor selecciona la opcin Registro histrico. La aplicacin muestra una tabla con los registros histricos de cada mdulo Snort. El actor selecciona las opcin que Exportar del registro que desee exportar. La aplicacin guardar los valores del registro dentro de un archivo. El caso de uso finaliza. Flujo Alternativo: Eliminar registro histrico 1. 2. 3. 4. 5. 6. 7. 1. 2. 3. 4. 5. El actor selecciona la opcin Registro histrico. La aplicacin muestra una tabla con los registros histricos del mdulo Snort. El actor selecciona las opcin que Eliminar del registro que desee eliminar. La aplicacin muestra un mensaje de confirmacin. El actor acepta la eliminacin del registro. La aplicacin elimina el registro. El caso de uso finaliza. Flujo Alternativo: Restaurar del registro histrico El actor selecciona la opcin Registro histrico. La aplicacin muestra una tabla con los registros histricos del mdulo Snort. El actor selecciona las opcin que Restaurar del registro que desee restaurar. La aplicacin restaura las reglas o configuraciones relacionadas con dicho registro. El caso de uso finaliza.

Postcondicin: Se ha exportado los valores del registro satisfactoriamente.

d) Generar reporte Snort


Caso de Uso: Generar Reporte Snort Descripcin: Actores: Precondicin: Generar un reporte basado en la bitcora de la herramienta en un formato de fcil lectura para el usuario. Administrador, Usuario Haberse ejecutado el caso de uso Iniciar Sesin El mdulo Iptables debe de estar habilitado. Flujo Principal: Generar Reporte Snort 1. 2. El actor selecciona la opcin Generar Reporte Snort. La aplicacin muestra un formulario que permite filtrar por rango de fechas o por un rango de cantidades.

33

Caso de Uso: Generar Reporte Snort 3. 4. 5. El actor selecciona las opciones de filtrado que desee y pulsa la opcin Ver Reporte. La aplicacin genera el reporte solicitado. El caso de uso finaliza. Snort.

Postcondicin: Se ha generado satisfactoriamente un reporte de la herramienta

34

9. Pantallas
A continuacin se presentarn los principales diseos sobre los que se ha basado la elaboracin de las pantallas de la aplicacin.

9.1. Secciones de la Pantalla

Imagen 9.1: Secciones de la pantalla Las Pantallas se hallan divididas en cuatro (4) secciones: Cabecera: Contiene el logo y el nombre de la aplicacin, asimismo, muestra el nombre del usuario y la opcin de cierre de sesin. Pie de pgina: Contiene datos relacionados a la fecha de creacin de la aplicacin. Men: Muestra el men principal de la aplicacin. Contenidos: Es la zona de la pantalla en donde se mostrarn cada una de las vistas a las que el usuario acceda.

35

9.2. Estructura del men principal

Imagen 9.2: Estructura del Men Principal

El men principal est conformado por dos (2) secciones: Mdulo Central: Contiene enlaces a cada una de las pantallas del mdulo central de la aplicacin. Mdulos Agregados: Contiene los enlaces a cada una de las vistas de los mdulos auxiliares.

9.3. Iniciar Sesin

Imagen 9.3: Inicio de Sesin

A travs de esta pantalla el usuario iniciar sesin en la aplicacin.

36

9.4. Panel de Accesos Rpidos

Imagen 9.4: Panel de Accesos Rpidos

Esta pantalla contiene una lista de accesos rpidos a las principales funcionalidades del mdulo central.

37

9.5. Administrar Usuario

Imagen 9.5: Administrar Usuario

Esta pantalla muestra la lista de usuarios registrados en el sistema; asimismo, brinda la opcin de poder eliminar el usuario seleccionado.

9.6. Registrar Usuario

Imagen 9.6: Registrar Usuario Esta pantalla permite registrar los datos de un nuevo usuario en la

38

aplicacin.

9.7. Informacin del Servidor

Imagen 9.7: Informacin del Servidor

Esta pantalla muestra las caractersticas de la configuracin del servidor (Nombre del Servidor, Puerta de enlace, DNSs, Interfaces detectadas). Adicionalmente, permite registrar una lista de direcciones IP hbiles para iniciar sesin en el equipo.

39

9.8. Administrar Servicios

Imagen 9.8: Administrar Servicios Esta pantalla muestra y administra los servicios presentes en el servidor que son administrados por cada uno de los mdulos de la aplicacin.

40

9.9. Registro Histrico de Accesos al Sistema

Imagen 9.9: Registro Histrico de Accesos al Sistema Esta pantalla muestra el registro de todos los intentos de accesos exitosos o infructuosos en el sistema, as como la cuentas de usuario que fueron utilizadas.

41

10. Arquitectura
La arquitectura a utilizar ser Web, con ello el usuario podr tener acceso remoto a una interfaz grfica para poder llevar a cabo la configuracin de las herramientas de seguridad. Como prinipal requerimiento, el usuario deber de hacer uso de un navegador de Internet.

10.1. Metas y Restricciones de la arquitectura


La meta principal de la arquitectura del sistema es mostrar los aspectos principales que influirn en la etapa de desarrollo. Se tomarn en cuenta las siguientes metas y restricciones para el diseo de la arquitectura de la aplicacin:

a) Metas 1. La aplicacin permitir, a los administradores de la red, acceder al sistema desde cualquier equipo autorizado va su direccin IP. 2. Para poder acceder a la aplicacin, se requiere de un nombre de usuario vlido as como de una contrasea. Adems, dependiendo del rango del usuario se deshabilitarn opciones de manejo de la aplicacin. 3. Simplificar el uso de las herramientas utilizadas para asegurar la red local.

b) Restricciones del Sistema 1. La aplicacin har uso de archivos Sqlite como Base de Datos, para almacenar las configuraciones llevadas a cabo. 2. Las computadoras que brindarn el servicio cliente del sis42

tema no debern de presentar potencias menores a las brindadas por una Pentium 500 MHz con al menos 128 MB de RAM y 10 MB de espacio en el disco, con un Sistema Operativo GNU / Linux Kernel 2.6.18.

10.2. Descripcin de la arquitectura de la solucin.


La aplicacin se hallar conformada por un mdulo central que permitir, dentro de su lista de funciones, administrar una serie de mdulos complementarios cada uno de los cuales aportar nuevas funcionalidades al sistema. Esto trae como beneficio la posibilidad de crear nuevos mdulos con el objetivo de agregar nuevas funcionalidades a la herramienta. A lo largo del proyecto de tesis se implementarn tres (3) mdulos complementarios, mdulo Iptables, mdulo Squid y mdulo Snort. Tanto la aplicacin como las herramientas se hallarn ubicadas en un servidor GNU/Linux que se halle ejecutando el servicio web Apache, el cual, contar con el mdulo PHP. En la Imagen 3.1 se puede apreciar la arquitectura propuesta para el presente proyecto.

43

Imagen 10.1: Arquitectura de la solucin

La aplicacin est conformada por capas, cada una de las cuales aporta una funcionalidad al sistema. La lista de capas se detallan en la tabla siguiente:

Capa Vista

Funcin que desempea Esta capa se encarga de presentar al usuario una interfaz con la que podr interactuar, permitindole ingresar valores a la aplicacin y visualizar las respuestas de la misma.

Controlador

Dentro de esta capa se hallan las clases que permiten manejar la lgica de negocio de todas las funcionalidades involucradas en el sistema. Asimismo ser la encargada de controlar la interaccin entre el mdulo central de la aplicacin con cada uno de los mdulos complementarios.

Modelo

Esta es la capa que almacena los objetos de negocio de los que hace uso la aplicacin a implementar, as como las clases que permiten llevar a cabo la persistencia contra una base de datos.

Mdulo

Esta capa contendr los diversos mdulos integrados al sistema, cada uno de los cuales aportar nuevas funcionalidades al mismo.

Tabla 10.1: Capas de la Aplicacin 44

10.3. Patrones a utilizar


Para el desarrollo del presente proyecto se har uso de los siguientes patrones: Modelo Vista Controlador (MVC): El patrn MVC est siendo utilizado para separar la capa de presentacin (Vista) de los objetos del negocio (Modelo) y la lgica del negocio (Controlador), permitiendo as independizar la implementacin de la lgica de la aplicacin del diseo de las pantallas. Data Mapper: Patrn utilizado para manejar la persistencia. Una clase

Usando este mecanismo, los objetos que pertenecen al modelo desconocen la existencia de una base de datos. base de datos y viceversa. Campo de Identidad: Consiste en almacenar el Id dentro del objeto; ello permite efectuar consultas haciendo uso de los Id, lo cual conlleva a un ahorro de tiempo. Mapeo de Llave Fornea: Consiste en representar las llaves forneas como relaciones entre dos objetos. Solitario: Este patrn es utilizado en el ahorro de recursos; su objetivo es el de evitar instanciar una nueva clase si es que esta ya ha sido instanciada anteriormente. Fachada: El patrn fachada permite establecer una interfaz a intermedia es la encargada de transferir los datos del modelo a la

travs de la cual se lleve a cabo la comunicacin entre dos mdulos. Es utilizada en el presente proyecto para garantizar la comunicacin entre los mdulos complementarios y el mdulo central.

45

Template View: Este patrn permite generar pginas web dinmicas insertando etiquetas (ejemplo: etiquetas PHP) dentro del cdigo HTML. Front Controller: Este patrn establece la creacin de una clase Controlador por cada Vista que se genere. Cada una de estas clases efectuar diferentes procedimientos dependiendo del evento que se accione en su respectiva Vista. Server Session State: La utilidad de este patrn radica en poder almacenar informacin del cliente en el servidor, para poder hacer uso de estos valores ms adelante.

10.4. Calidad
Para un mejor aprovechamiento de la arquitectura de software se dan los siguientes requerimientos de calidad: Usabilidad El sistema permitir un manejo intuitivo por parte de los usuarios. Eficiencia El programa no demorar ms de 1 minuto en guardar y aplicar las reglas generadas. Seguridad Para poder iniciar sesin en la aplicacin ser necesario contar con un usuario y una contrasea; asimismo, la direccin IP de nodo desde el cual se est accediendo debe de haber sido registrada en la aplicacin. Confiabilidad El sistema tendr en cuenta que la informacin ingresada en l sea vlida, para lo cual mostrar mensajes que expliquen al usuario acerca de los errores que ste pudiera cometer y de aquellos que

46

pueda cometer el mismo sistema. Mantenimiento El sistema ser flexible, facilitando su mantenimiento futuro. Estndares Se usar un estndar para todas las ventanas e interfaces de la aplicacin.

47

11. Modelo del Dominio


El objetivo del presente documento es describir y mostrar mediante la utilizacin de diagramas los elementos utilizados en la etapa de anlisis del desarrollo de la aplicacin. Para una mejor comprensin de las clases, se las han agrupado por mdulo: Mdulo Central, Mdulo Iptables, Mdulo Squid, Mdulo Snort.

11.1. Vista Funcional del Mdulo Central


Esta vista contiene el diagrama de clases correspondiente al mdulo central. Estas clases estn relacionadas con la configuracin del equipo en el que se halla instalada la aplicacin; as como la seguridad de la herramienta.

48

Imagen 11.1: Diagrama del Modelo del Dominio - Mdulo Central

49

Mdulo Central Cdigo CC001 CC002 CC003 CC004 CC005 CC006 CC007 Servidor Usuario Interfaz Nodo IPv4Valida RegistroHistorico Subred Clase donde se ejecuta la aplicacin. Esta clase contiene informacin del usuario que iniciado sesin en la aplicacin. Esta clase representa a una zona dentro de la red local, conectada al servidor a travs de una interfaz de red. Esta clase representa a un nodo dentro de una zona de la red local. Esta clase representa una IP desde la cual es permitida iniciar sesin en la aplicacin. Esta clase contiene informacin de lo intentos de inicio de sesin en la aplicacin. Esta clase representa una subred dentro de la red local. Descripcin Esta clase contiene la informacin bsica sobre las configuraciones de red del servidor en

Tabla 11.1: Modelo del Dominio - Mdulo Central

11.2. Vista Funcional del Mdulo Iptables


Esta vista contiene el diagrama de clases correspondiente al mdulo Iptables. Estas clases estn relacionadas con la configuracin de la configuracin de la herramienta Iptables, incluye la configuracin de las opciones genrales de la misma, as como el mantenimiento de las reglas registradas.

50

Imagen 11.2: Diagrama del Modelo del Dominio - Mdulo Iptables 51

Mdulo Iptables Cdigo CI001 CI002 CI003 CI004 CI005 CI006 CI007 CI008 CI009 CI010 CI011 CI012 CI013 Iptables ReglaIptables Cadena Table HistoricoIptables Accion Categoria DetalleReglaPredefinida Estado FechaActivacionIptables Politica Protocolo ReglaPredefinida Clase Descripcin Esta clase representa las configuraciones bsicas de la herramienta Iptables. Esta clase representa cada una de las reglas que pueden ser registradas en la aplicacin Iptables. Esta clase representa una cadena de Iptables. Esta clase representa una de las tablas propias de la aplicacin Iptables. Esta clase representa cada una de las entradas dentro del registro histrico de configuraciones de Iptables. Esta clase representa las acciones a ejecutar sobre cada regla que se defina. Esta clase representa las categoras en las que se clasifican las reglas predefinidas. Esta clase representa la regla predefinida tal cual es entendida por la aplicacin Iptables. Esta clase representa los estados de las conexiones. Esta clase representa cada una de las fechas en las cuales se utiliz alguna de las entradas dentro del registro histrico de configuraciones de Iptables. Esta clase representa las polticas predefinidas de cada cadena del Iptables. Esta clase representa cada uno de los protocolos soportados por la aplicacin. Esta clase representa la regla predefinida que el administrador de la red quiere utilizar.

Tabla 11.2: Modelo del Dominio - Mdulo Iptables

52

11.3. Vista Funcional del Mdulo Squid


Esta vista contiene el diagrama de clases correspondiente al mdulo Squid. Estas clases estn relacionadas con la configuracin de la configuracin de la herramienta Squid, incluye la configuracin de las funciones de proxy y cache, as como el mantenimiento de las reglas registradas.

53

Imagen 11.3: Diagrama del Modelo del Dominio - Mdulo Squid

54

Mdulo Squid Cdigo CQ001 CQ002 CQ003 CQ004 CQ005 CQ006 CQ007 CQ008 CQ009 CQ010 CQ011 Squid ReglaPredefinida ListaControlAcceso ReglaSquid HistoricoSquid Accion FechaActivacionSquid PuertoSquid TipoACL TipoAcceso Valor Clase Descripcin Esta clase representa las configuraciones bsicas de la herramienta Squid. Esta clase representa una regla predefinida que puede ser utilizada lista para las configuraciones de las opciones de proxy de la herramienta Squid. Esta clase agrupa un conjunto de reglas Squid, tanto para la cache como para el proxy. Esta clase representa cada una de las reglas que pueden ser registradas en el Squid. Esta clase representa cada una de las entradas dentro del registro histrico de configuraciones de Squid. Esta clase representa la accin a ejecutar sobre una regla registrada. Esta clase representa cada una de las fechas en las cuales se utiliz alguna de las entradas dentro del registro histrico de configuraciones del Squid. Clase que representa el puerto sobre el que se ejecuta el Squid. Representa los tipos de Lista de Control de Acceso. Clase que representa el tipo de acceso (web o cach) Listado de valores sobre los que se ejecutan las reglas registradas.

Tabla 11.3: Modelo del Dominio - Mdulo Squid

11.4. Vista Funcional del Mdulo Snort


Esta vista contiene el diagrama de clases correspondiente al mdulo Snort. Estas clases estn relacionadas con la configuracin de la herramienta Snort, as como el mantenimiento de las reglas predefinidas. 55

Imagen 11.4: Diagrama del Modelo del Dominio - Mdulo Snort

56

Mdulo Snort Cdigo CS001 CS002 CS003 CS004 CS005 CS006 CS007 CS008 CS009 CS010 CS011 CS012 Snort Servicio Preprocesador ReglaPredefinida HistoricoSnort FechaAplicacionSnort Libreria Parametro TipoLibreria TipoPreprocesador TipoServicio TipoValor Clase Descripcin Esta clase representa las configuraciones bsicas de la herramienta Snort. Esta clase representa los servicios que la herramienta Snort se halla manejando; as como los puertos a los que se hallan relacionados. Esta clase representa los preprocesadores que el Snort est utilizando. Esta clase representa cada una de las reglas que pueden ser registradas en la herramienta Snort. Esta clase representa cada una de las entradas dentro del registro histrico de configuraciones de Snort. Esta clase representa cada una de las fechas en las cuales se utiliz alguna de las entradas dentro del registro histrico de configuraciones del Snort. Esta clase representa las libreras que el Snort est utilizando. Esta clase representa los parmetros que el tipo de preprocesador puede recibir. Esta clase representa los tipos de libreras disponibles. Esta clase representa los tipos de preprocesadores disponibles. Esta clase representa los tipos de servicios disponibles. Esta clase representa el tipo de fichero que el Snort utiliza como librera.

Tabla 11.4: Modelo del Dominio - Mdulo Snort

57

12. Estndares de Programacin


El objetivo del presente acpite es establecer un conjunto de estndares que sern utilizados para la codificacin de las aplicaciones de software.

12.1. Clases
Los nombres de las clases deben de empezar con una letra en mayscula seguida por caracteres en minscula, sin dejar espacios en blanco. En caso un nombre de clase est formado por ms de una palabra, nicamente el carcter inicial de cada palabra estarn en mayscula, el resto de caracteres estarn en minscula. Los nombres de las clases deben de comenzar con uno de los prefijos presentados en la tabla siguiente:

Prefijo Vista DAO -

Tipo de Clase Vista de la aplicacin Objeto de Acceso de Datos Objetos de Negocio

Ejemplo ControladorUsuario VistaUsuario DAOUsuario Usuario

Controlador Objeto Controlador de la Vista

12.2. Atributos y Variables


Los nombres de las variables y atributos deben de comenzar con un prefijo identificador seguido por el nombre de la variable cuyo primer carcter debe de estar en mayscula. Las variables deben de ser definidas nicamente al inicio de cada bloque de cdigo. Asimismo los atributos deben de ser declarados al inicio de la clase (antes de definir cualquier mtodo) y siempre que se les haga referencia dentro de la clase, usar la palabra reservada this.

58

Prefijo Identificador p a l Parmetro Atributo Variable local

Alcance

Ejemplo $pUsuario $aUsuario $lUsuario

12.3. Mtodos
Los nombres de los mtodos deben de estar en minsculas. En caso un mtodo est conformado por ms de una palabra, el carcter inicial de la siguiente palabra debe de estar en maysculas. Los nombres de los mtodos deben de describir la funcionalidad que realizan. Ejemplo: agregarNombre(); iniciarServicio();

12.4. Declaracin de Objetos


El nombre de los objetos debe de ser el mismo que el de las clases; sin embargo, el primer carcter del objeto debe de ser una letra minscula. Si se hace uso de ms de un objeto del mismo tipo, se le aadir una palabra que comience con una letra mayscula la cual brinde una mejor descripcin del uso del objeto. Ejemplo: $lUsuario $lUsuarioNuevo

12.5. Colecciones de Objetos


Los nombres de las colecciones de objetos deben de ser el nombre 59

de la clase en plural. Ejemplo: $lUsuarios

12.6. Componentes
Los nombres de los componentes de la ventana estarn conformados por un prefijo que indicar el tipo de componente seguido por el nombre del componente.

Prefijo btn txt chk rdb cmb lst

Tipo de componente Image button, button, submit button, reset button Text field, test area Checkbox Radiobutton Combobox SelectList

12.7. Interfaces
Los nombres de las interfaces deben de empezar con el carcter I Ejemplo: IModulo IHistorial

12.8. Constantes
Los nombres de las constantes estarn en maysculas y si el nombre presenta espacios, estos estarn indicados con el carcter _. Ejemplo: IGV BASE_DATOS

60

12.9. Codificacin

Descripcin del archivo

Descripcin de la clase

Descripcin del mtodo

Cdigo indentado

61

13. Catlogo de Pruebas


Las pruebas son un proceso importante dentro del desarrollo de una solucin, ya que permiten detectar errores para su correccin. Las pruebas a desarrollar sern ejecutadas a lo largo de todo el proceso de implementacin de cada uno de los mdulos.

13.1. Tipos de prueba


Se llevarn a cabo los siguientes tipos de prueba: Pruebas de integracin:
Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos PI001 1 CUC01 Verificar se puedan agregar usuarios al sistema. 1. 2. Seleccionar la opcin Nuevo Usuario Llenar los campos obligatorios con informacin 3. Resultado Esperado Resultado xito Pulsar Aceptar. vlida (Nombre, Contrasea, Confirmar Contrasea). Se halla agregado un nuevo usuario al sistema.

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos

PI001 2 CUC01 Verificar se puedan modificar usuarios del sistema. 1. 2. Seleccionar la opcin Editar Usuario Modificar (Nombre, Contrasea). 3. Pulsar Aceptar los valores del usuario Confirmar Contrasea,

Resultado Esperado Resultado

Se han modificado los datos del usuario. xito

62

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos Resultado Esperado Resultado

PI001 3 CUC01 Verificar se puedan eliminar usuarios del sistema. 1. xito Seleccionar la opcin Eliminar Usuario Se ha eliminado el usuario del sistema.

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos Resultado Esperado Resultado

PI002 1 CUC02 Verificar que el sistema pueda iniciar servicios. 1. xito Pulsar sobre el cono Iniciar Servicio El servicio se inicia satisfactoriamente.

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos Resultado Esperado Resultado

PI002 2 CUC02 Verificar que el sistema pueda detener servicios. 1. xito Pulsar sobre el cono Detener Servicio El servicio se detiene de forma exitosa.

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos Resultado Esperado Resultado

PI003 1 CUC03 Verificar que el sistema pueda listar los mdulos existentes. 1. Pulsar sobre el cono Mdulos Registrados Se muestra el listado de mdulos registrados xito

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos

PI004 1 CUC04 Verificar que el sistema pueda registrar subredes 1. 2. Pulsar sobre el cono Nueva Subred Ingresar los valores: Nombre de la subred, IP, Mscara, Mscara Corta, Interfaz 3. Pulsar sobre el botn Guardar

Resultado Esperado Resultado

Se almacenan los valores de la subred. xito

63

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos

PI004 2 CUC04 Verificar que se pueden agregar nodos a una subred 1. 2. Registrar la IP del nodo y su nombre dentro de la red. Pulsar sobre el botn Agregar Nodo

Resultado Esperado Resultado

Se agrega un nuevo nodo a la subred. xito

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos Resultado Esperado Resultado

PI004 3 CUC04 Verificar que se pueden eliminar nodos de la subred 1. xito Pulsar sobre el cono Eliminar Nodo Se elimina el nodo de la subred.

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos

PI004 4 CUC04 Verificar que puedan ser modificados los valores de una subred. 1. 2. Pulsar sobre el cono Eliminar Subred Actualizar los valores: Nombre de la subred, IP, Mscara, Mscara Corta, Interfaz 3. Pulsar sobre el botn Guardar

Resultado Esperado Resultado

Se actualizan los valores de la subred. xito

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos Resultado Esperado Resultado

PI004 5 CUC02 Verificar que puedan eliminar una subred. 1. xito Pulsar sobre el cono Eliminar Subred Se elimina el registro de la subred.

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba

PI005 1 CUC05 Verificar que se pueda iniciar sesin utilizando nicamente la combinacin adecuada de usuario

64

y contrasea. Pasos 2. 3. Resultado Esperado Resultado Ingresar un nombre de usuario registrado en el sistema. Ingresar la contrasea del usuario. Se inicie sesin satisfactoriamente.

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba

PI005 2 CUC05 Verificar que se pueda iniciar sesin utilizando nicamente la combinacin adecuada de usuario y contrasea.

Pasos

1. 2.

Ingresar

un

nombre

de

usuario

registrado en el sistema Ingresar una contrasea no vlida Resultado Esperado Resultado Se muestra un mensaje indicando un error al intentar iniciar sesin. xito

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba

PI006 1 CUC06 Verificar que se pueda iniciar sesin utilizando nicamente la combinacin adecuada de usuario y contrasea.

Pasos Resultado Esperado Resultado

1.

Pulsar

sobre

el

cono

Registro

Histrico La aplicacin muestra un registro con los intentos de inicio de sesin exitosos e infructuosos. xito

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos

PI007 1 CUC07 Verificar que nicamente se pueda iniciar sesin desde equipos cuya IP ha sido autorizada. 1. Iniciar sesin desde un equipo cuya IP ha sido registrada en el sistema como IP Vlida.

Resultado Esperado Resultado

Inicia Sesin de forma exitosa. xito

Caso de Prueba

PI007 2

65

Caso de Uso Asociado Objetivo de la Prueba Pasos

CUC07 Verificar que nicamente se pueda iniciar sesin desde equipos cuya IP ha sido autorizada. 1. Iniciar sesin desde un equipo cuya IP no ha sido registrada en el sistema como IP Vlida.

Resultado Esperado

Muestra un mensaje de error indicando que no se puede iniciar sesin desde un equipo no registrado.

Resultado

xito

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos

PI008 1 CUC08 Verificar que se pueda habilitar / deshabilitar el reenvo de paquetes dentro de la red. 1. Pulsar sobre el botn habilitar / deshabilitar reenvo de paquetes dentro de la ventana de Datos del Servidor.

Resultado Esperado Resultado

El reenvo de paquetes debe de ser habilitado / deshabilitado. xito

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos

PI009 1 CUI01 Verificar 1. 2. que el sistema permita efectuar configuraciones dentro del mdulo Iptables. Pulsar sobre Configuracin Iptables. Registrar la Descripcin y luego pulsar sobre Guardar.

Resultado Esperado Resultado

Se guarda la nueva configuracin en Base de Datos. xito

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos

PI009 2 CUI01 Verificar que se pueda importar una configuracin existente para el mdulo iptables. 1. 2. 3. Pulsar sobre Configuracin Iptables. Pulsar sobre Importar Configuracin. Pulsar sobre Guardar.

Resultado Esperado

Se importan los datos del archivo xml y se

66

guardan en base de datos. Resultado xito

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos

PI010 1 CUI02 Verificar el sistema permita registrar reglas del Iptables. 1. 2. 3. Pulsar sobre Regla Iptables. Ingresar los valores que conformarn los parmetros de las reglas. Pulsar sobre Guardar.

Resultado Esperado Resultado

Se registra una nueva regla. xito

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos Resultado Esperado Resultado

PI010 2 CUI02 Verificar el sistema eliminar reglas del Iptables. 1. xito Pulsar sobre Eliminar Regla. La regla se elimina de forma exitosa.

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos Resultado Esperado Resultado

PI011 1 CUI03 Verificar que la aplicacin permita exportar una configuracin de Iptables previamente registrada. 1. 2. Pulsar sobre Histrico Iptables. Pulsar sobre Exportar Configuracin.

Se exporta la configuracin seleccionada a un archivo xml. xito

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos Resultado Esperado Resultado

PI011 2 CUI03 Verificar que la aplicacin permita aplicar una configuracin de Iptables previamente registrada. 1. 2. xito Pulsar sobre Histrico Iptables. Pulsar sobre Aplicar Configuracin.

Se aplica la configuracin seleccionada.

Caso de Prueba

PI011 3

67

Caso de Uso Asociado Objetivo de la Prueba

CUI03 Verificar que la aplicacin permita eliminar una configuracin previamente registrada en el Histrico Iptables.

Pasos Resultado Esperado Resultado

1. xito

Pulsar sobre Eliminar Configuracin .

Se elimina la configuracin seleccionada.

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos Resultado Esperado Resultado

PI012 1 CUI04 Verificar que la aplicacin permita generar un reporte basndose en la bitcora de Iptables. 1. Pulsar sobre Reporte Iptables. Se muestra una lista con los registros de actividades detectados por el Iptables. xito

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos

PI013 1 CUQ01 Verificar 1. 2. 3. que el sistema permita efectuar configuraciones dentro del mdulo Squid. Pulsar sobre Configuracin Squid. Registrar los datos solicitados en pantalla y pulsar Siguiente. Pulsar sobre Guardar.

Resultado Esperado Resultado

Se guarda la nueva configuracin en Base de Datos. xito

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos

PI013 2 CUQ01 Verificar que se pueda importar una configuracin existente para el mdulo Squid. 1. 2. 3. Pulsar sobre Configuracin Squid. Pulsar sobre Importar Configuracin. Pulsar sobre Guardar.

Resultado Esperado Resultado

Se importan los datos del archivo xml y se guardan en base de datos. xito

Caso de Prueba

PI014 1

68

Caso de Uso Asociado Objetivo de la Prueba Pasos

CUQ02 Verificar el sistema permita registrar reglas del Squid. 1. 2. 3. Pulsar sobre Reglas Squid.. Ingresar los valores que conformarn los parmetros de las reglas. Pulsar sobre Guardar.

Resultado Esperado Resultado

Se registra una nueva regla. xito

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos Resultado Esperado Resultado

PI014 2 CUQ02 Verificar el sistema eliminar reglas del Squid. 1. xito Pulsar sobre Eliminar Regla. La regla se elimina de forma exitosa.

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos Resultado Esperado Resultado

PI015 1 CUQ03 Verificar que la aplicacin permita exportar una configuracin de Squid previamente registrada. 1. 2. Pulsar sobre Histrico Squid. Pulsar sobre Exportar Configuracin.

Se exporta la configuracin seleccionada a un archivo xml. xito

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos Resultado Esperado Resultado

PI015 2 CUQ03 Verificar que la aplicacin permita aplicar una configuracin de Squid previamente registrada. 1. 2. xito Pulsar sobre Histrico Squid. Pulsar sobre Aplicar Configuracin.

Se aplica la configuracin seleccionada.

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba

PI015 3 CUQ03 Verificar que la aplicacin permita eliminar una configuracin Histrico Squid. previamente registrada en el

69

Pasos Resultado Esperado Resultado

1. xito

Pulsar sobre Eliminar Configuracin .

Se elimina la configuracin seleccionada.

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos Resultado Esperado Resultado

PI016 1 CUQ04 Verificar que la aplicacin permita generar un reporte basndose en la bitcora de Squid. 1. Pulsar sobre Reporte Squid. Se muestra una lista con los registros de actividades detectados por el Squid. xito

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos

PI017 1 CUS01 Verificar 1. 2. 3. que el sistema permita efectuar configuraciones dentro del mdulo Snort. Pulsar sobre Configuracin Snort. Registrar los datos solicitados en pantalla y pulsar Siguiente. Pulsar sobre Guardar.

Resultado Esperado Resultado

Se guarda la nueva configuracin en Base de Datos. xito

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos

PI017 2 CUS01 Verificar que se pueda importar una configuracin existente para el mdulo Snort. 1. 2. 3. Pulsar sobre Configuracin Snort. Pulsar sobre Importar Configuracin. Pulsar sobre Guardar.

Resultado Esperado Resultado

Se importan los datos del archivo xml y se guardan en base de datos. xito

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos

PI018 1 CUS02 Verificar el sistema permita registrar reglas del Snort. 1. Pulsar sobre Reglas Snort..

70

2. Resultado Esperado Resultado

Seleccionar las reglas que uno desea agregar.

Se registra una nueva regla. xito

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos Resultado Esperado Resultado

PI018 2 CUS02 Verificar el sistema eliminar reglas del Snort. 1. xito Pulsar sobre Eliminar Regla. La regla se elimina de forma exitosa.

Caso de Prueba Caso de Uso Asociado Objetivo de la Prueba Pasos Resultado Esperado Resultado

PI019 1 CUS03 Verificar que la aplicacin permita generar un reporte basndose en la bitcora de Snort. 1. Pulsar sobre Reporte Snort. Se muestra una lista con los registros de actividades detectados por el Snort. xito

Pruebas de sistema:

Caso de Prueba Aspecto a Evaluar Objetivo Resultado Observaciones

PS001 Prueba Funcional Verificar que las llamadas al sistema por parte de la aplicacin, sean ejecutadas. xito Para que las llamadas a procesos de administracin pudieran ser efectuados, fue necesario editar el archivo sudoers.

Caso de Prueba Aspecto a Evaluar Objetivo

PS002 Prueba de Desempeo Verificar que la aplicacin presente un bajo consumo de recursos por parte de memoria y procesamiento.

Resultado Observaciones

xito Las pruebas fueron realizadas limitando el consumo de memoria a 32 MB para la ejecucin de los scripts PHP.

71

Caso de Prueba Aspecto a Evaluar Objetivo Resultado Observaciones

PS003 Prueba de Desempeo Verificar xito La prueba fue realizada deshabilitando servicios no crticos para el sistema. que la pgina demore en ser visualizada, un tiempo menor a 5 segundos.

Caso de Prueba Aspecto a Evaluar Objetivo Resultado Observaciones

PS004 Prueba de Instalacin Verificar la instalacin exitosa de la aplicacin. xito -

72

14. Glosario
ARPANET: (Advanced Research Projects Agency Network) La red de computadoras creada por encargo del Departamento de Defensa de los Estados Unidos como medio de comunicacin para los diferentes organismos del pas. Computer Security Institute: Entidad que provee informacin relacionada a temas de seguridad de la informacin. Direccin IP: Nmero que identifica de manera lgica y jerrquica a un nodo dentro de una red e-business: Compra y venta de productos o de servicios a travs de medios electrnicos, tales como el Internet y otras redes de computadoras. GNU: (GNU is Not Unix) Proyecto iniciado por Richard Stallman con el objetivo de crear un sistema operativo completamente libre Internet: Red de redes. alcance mundial. Linux: Kernel de sistema operativo libre creado por Linus Torvalds en 1991. Lanzado bajo la licencia pblica general (GPL - General Public License) de GNU y desarrollado gracias a contribuciones provenientes de todo el mundo. Nodo: Cada uno de los equipos que forman parte de una red. Paquete: Un paquete de datos es una unidad fundamental de transporte de informacin dentro de una red Poltica de Seguridad: Conjunto de reglas que se establecen dentro de 73 Conjunto descentralizado de redes de

comunicacin interconectadas que funcionan como una red lgica nica, de

una organizacin para asegurar su informacin. Protocolo: Conjunto de reglas que especifican el intercambio de datos durante la comunicacin entre los nodos que forman parte de una red. Puerto: Interfaz que permite que un programa se comunique a travs de una red. Red: Conjunto de equipos conectados por medio de cables, seales, ondas o cualquier otro mtodo de transporte de datos, que comparten informacin , recursos y/o servicios.

74

También podría gustarte