Paper

download Paper

If you can't read please download the document

description

Paer Investigacion de hardware

Transcript of Paper

RESUMEN: Este trabajo presenta la herramienta Gestor de Recursos de Hardware y Software (GRHS). Encargada de realizar inventarios de piezas y programas instalados en una red de computadoras. Su motivacin fue la falta de flexibilidad de las herramientas para la definicin y deteccin de incidencias. GRHS permite que el usuario defina los cambios de componentes que constituyen incidencias. Enva notificaciones de incidencias mediante correos electrnicos, SMS y mensajera instantnea. Ejecuta acciones automticas en las estaciones involucradas en las incidencias. Todas sus aplicaciones estn diseadas usando la ingeniera basada en componentes. Est escrita en tecnologas libres como python, django y postgreSQL. Para la comunicacin entre aplicaciones usa el protocolo HTTP en conjunto con REST. Est diseado para las plataformas Microsoft Windows y GNU/Linux. Permite su aplicacin en varios entornos con caractersticas especficas por su flexibilidad de configuracin. La modularidad de sus aplicaciones permite adicionar nuevas funcionalidades y desactivar algunas de las existentes. Palabras Clave: inventario de hardware, inventario de software, seguridad informtica

I. INTRODUCCIN El desarrollo de las tecnologas de la informtica y las comunicaciones ha provocado la necesidad del uso de computadoras en empresas e instituciones. Estas computadoras generalmente son activos fijos tangibles [1] de estas empresas. Las cuales no estn exentas de extravos, cambios de piezas y robos. El control manual de cada pieza en una red de computadoras se torna engorroso cuando los activos aumentan considerablemente. Se han desarrollado herramientas de inventario de hardware y software (HIHS) para facilitar el proceso de control de estos medios. Estas herramientas son capaces de realizar inventarios de las piezas y de los programas instalados. Algunas de ellas detectan los cambios ocurridos, pero ninguna de las existentes permite que el usuario defina qu constituye una incidencia. Algunas de estas herramientas solo permiten notificar los cambios mediante correos electrnicos sin explotar las nuevas tecnologas de comunicacin como SMS (Short Message Service) y mensajera instantnea. Algunas de estas herramientas permiten monitorizar la conexin de nuevos dispositivos de hardware o instalacin/des-instalacin de programas, pero ninguna toma el control de las computadoras donde ocurren cambios. Estas limitaciones constituyen la motivacin para el presente trabajo. Esta investigacin tiene como objetivo desarrollar una herramienta que flexibilice la definicin de incidencias y aumente las vas de notificacin de las mismas reduciendo el tiempo de deteccin y notificacin de incidencias. Los principales aportes del mismo son: El usuario puede definir qu cambio constituye una incidencia. Aumenta las vas de notificacin de incidencias a SMS y mensajera instantnea. Permite realizar acciones automticas en las computadoras. Disminuye el tiempo de deteccin de incidencias. Detecta la adicin de nuevos dispositivos de hardware en el momento de su conexin. Detecta la instalacin de nuevos programas cuando est ocurriendo. Registra todos los cambios realizados en cada computadora. Solo enva los cambios ocurridos y no el inventario completo. Este trabajo est estructurado de la siguiente forma: la seccin II aborda los conceptos, tecnologas y caractersticas de la investigacin; la seccin III presenta los resultados, la discusin y el trabajo futuro.

II. MATERIALES Y MTODOS Existen varios significados para el trmino inventario. Uno cercano al tratado en esta investigacin es inventario fsico definido en las ciencias econmicas. El inventario fsico se define como la verificacin peridica de las existencias de materiales, equipos, muebles e inmuebles con que cuenta una dependencia o entidad, a efecto de comprobar el grado de eficacia en los sistemas de control administrativo, el manejo de los materiales, el mtodo de almacenaje y el aprovechamiento de espacio en el almacn [1]. En el presente trabajo se referir a inventario como la verificacin peridica de los componentes o piezas de las computadoras, de JC-ICIMAF 2014 2los programas instalados y de los sistemas operativos.

A continuacin se muestran los principales conceptos que se abordarn en el presente trabajo: componente: pieza de computadora, programa instalado o propiedad del sistema operativo. cambio: es la sustitucin, adicin o sustraccin de un componente. incidencia: es un cambio no autorizado. periodos de cambio: es un segmento de tiempo en el cual estn autorizados cambios en un componente determinado. cliente: aplicacin que se encuentra en las computadoras y que reporta informacin a las dems aplicaciones de GRHS. usuario: persona encargada de controlar las computadoras en la entidad. A. Trabajos Relacionados La herramienta de inventario de hardware y software (HIHS) ms completa es NetSupport DNA pues brinda variadas funcionalidades. A pesar que detecta incidencias en los cambios en piezas, programas, el control del ancho de banda, la energa y el consumo del CPU, no se pueden activar o desactivar para dispositivos especficos que no sean de inters para el usuario. No tiene soporte para los sistemas operativos Debian, Ubuntu y Nova, los ms populares de la familia Linux en Cuba. NetSupport DNA no permite tomar el control de las estaciones de trabajo o computadoras involucradas en determinadas incidencias automticamente. Requiere del ge stor de base de datos Microsoft SQL Server limitando su entorno de despliegue [2].

La herramienta Total Network Inventory 2 (TNI2) necesita de una cuenta de administracin de dominio para obtener la informacin de las computadoras. No permite detectar incidencias. Utiliza una forma de centralizacin de la informacin para cada plataforma: en Linux, utilizan SSH y un servidor FTP; en Windows utilizan los recursos compartidos de Windows. El tiempo para obtener un inventario depende de la velocidad de la conexin porque en cada orden de anlisis tienen que instalar, ejecutar y desinstalar la aplicacin recolectora. El contenido de los inventarios son enviados en su totalidad por tanto no detectan los cambios ocurridos en los componentes. La HIHS VEO Ultimate se caracteriza por las acciones de control que puede tomar remotamente y las tareas distribuidas en las computadoras. Posee una arquitectura cliente - servidor usada para comunicar la consola del administracin con las estaciones de trabajo. Pueden realizar in ventarios mediante tareas programadas. Permite tomar el control del ratn y el teclado, desbloquea la sesin del usuario, toma imgenes del escritorio de las computadoras, explora y transfiere archivos y establece tareas programadas. Permite des-instalar programas no permitidos en las polticas de la entidad. No permite crear un historial de inventarios, ni detectar cambios en los mismos. Solo es compatible con plataformas Windows, siendo una limitacin en las empresas cubanas pues en varias se utilizan plataformas GNU/Linux. No posee ninguna estrategia de notificacin de alertas [3].

LOGINventory es una HIHS no tiene agentes o clientes. Puede inventariar todos los equipos que utilicen el protocolo IP como computadoras, telfonos, switches, hubs, routers, e tc. Permite consultar remotamente WMI (Windows Management Instrumentation) mediante el protocolo SNMP con el mdulo LOGINquiry. La informacin consultada la almacena en un fichero .li5 para cada dispositivo. Estos ficheros son procesados por el mdulo LOGINsert y almacenados en una base de datos. Esta informacin es consultada por el mdulo de reportes. LOGINventory no permite detectar cambios, solo obtener la informacin de los equipos conectados. Esta herramienta solo es compatible con la plataforma Windows. No permite obtener los cambios en el momento que ocurren. Al no detectar cambios no puede notificar comportamientos anmalos en las computadoras, ni tomar acciones de control [4]. Una de las HIHS software libre es CACIC. Su objetivo principal de CACIC es minimizar el consumo de recursos en el proceso de obtencin de los inventarios. Para ello utilizan varias tecnologas como PHP, Python, DelphiTM y como gestor de base de datos MySQL. Implementa una arquitectura cliente-servidor. Permite que se especifican las configuraciones de dnde, cmo, cundo y cules datos obtener de las computadoras. Esta herramienta no detecta cambios, solo tiene soporte para el idioma portugus y funciona en plataformas Windows y Linux [5].

La otra HIHS software libre es OCSInventory NG. Esta implementa la arquitectura cliente-servidor, con clientes para Windows y Linux. No almacena un historial de inventarios, ni detecta cambios. Cada vez que realiza un inventario lo enva en su totalidad, enva informacin innecesaria en el intercambio entre sus aplicaciones. No permite monitorizar la instalacin o des-instalacin de programas, as como, la conexin o des-conexin de dispositivos. Utiliza las tecnologas PHP, Perl y MySQL [6]. Las herramientas existentes no permiten que el usuario pueda configurar qu es una incidencia para ellos. Algunas no son capaces de detectar cambios. No son capaces de tomar acciones automticamente, solo lo hace VEO y NetSupport DNA pero necesitan de la interaccin con una persona o mediante tareas programadas. La mayora de estas herramientas no minimizan el volumen de informacin de intercambio entre aplicaciones, envan el inventario en su totalidad. Ellas emplean variadas formas de obtencin de inventarios, unas los obtienen mediante clientes o servicios que se ejecutan en las computadoras, otras mediante cuentas de administracin de dominio y otros usando el protocolo SNMP. La primera va tiene como ventaja que permite tomar el control de la computadora cuando sea necesario, pero tiene como inconveniente el despliegue de los clientes en las computadoras. El uso de SNMP es una buena opcin para la obtencin de informacin de cualquier dispositivo sin importar su tipo o sistema operativo, pero tiene como inconveniente que necesita que est activado el soporte de este protocolo y no JC-ICIMAF 2014 3permite realizar acciones en las estaciones de trabajo. Por estas razones se decide desarrollar una herramienta nueva con las premisas de explotar al mximo las potencialidades de las tecnologas a utilizar, que sea simple y se pueda extender con facilidad.

B. Arquitectura La arquitectura de GRHS es N-Tiers y aplica ingeniera basada en componentes [7] para las aplicaciones. Est compuesto por tres aplicaciones: gclient, gserver y gadmin. La aplicacingclient se encarga de recopilar la informacin de los clientes, detectar los cambios, detectar las incidencias y de tomar las acciones de control. La aplicacin gserver recopila la informacin de todos los inventarios, almacena las configuraciones y tiene la informacin de todos los clientes. La aplicacin gadmin es la consola de administracin de GRHS. Esta es utilizada para establecer las configuraciones, enviar rdenes a los clientes, mostrar reportes de los inventarios y mostrar la informacin de los clientes. Los clientes obtienen informacin de la aplicacin gserver y esta le puede enviar rdenes a los mismos. Por su parte la aplicacin gadmin es quien le comunica las configuraciones y rdenes a la aplicacin gserver. Una vez que se hayan establecido las configuraciones para GRHS se comporta como un conjunto de aplicaciones autnomas, no necesitan de la interaccin con el usuario. La aplicacin gclient est diseada mediante componentes . Un componente es un conjunto de ficheros que pueden ser de varios tipos que juntos se encargan de una determinada funcionalidad. La aplicacin gclient est compuesta por los componentes: ncleo, inventario, configuracin, incidencias y acciones. El componente inventario es el encargado de obtener la informacin de hardware y software de la computadora y detectar los cambios ocurridos. El configuracin es el que gestiona todas las configuraciones establecidas en el servidor. El componente incidencias detecta los cambios que constituyen anomalas y el de acciones ejecuta operaciones establecidas en las configuraciones al detectarse una incidencia. En tanto el componente ncleo posee la lgica de comunicacin con el servidor y registra las acciones ejecutadas por la aplicacin. La comunicacin entre los componentes se realiza mediante servicios que son exportados por los mismos. Para ello se auxilia del mdulo pydi el cual implementa el patrn inversin del control muy similar al utilizado en el marco de trabajo Symfony 2 [8].

La aplicacin gserver y gadmin son una separacin lgica de un proyecto del marco de trabajo django. Ambas son formadas por un conjunto de aplicaciones django que permiten su funcionamiento como un todo. Django es un marco de trabajo web para python con un diseo modular mediante aplicaciones. Esta caracterstica facilita que este proyecto pueda ser separado en su despliegue, dndole la responsabilidad de un servidor de recolectar la informacin de las aplicaciones gclient, a otro de comunicarse con los clientes y a otro de interactuar con los administradores o usuarios. Las aplicaciones que componen a gserver son: inventario, configuracin, clientes, acciones e incidencia. Por su parte gadmin tiene las aplicaciones: inventario, configuracin, clientes, acciones, incidencia y cuentas. La aplicacin cuentas realiza la gestin de los usuarios permitidos a usar gadmin. La aplicacinclientes muestra la informacin recolectada de los clientes. La aplicacin acciones es la que contiene toda la lgica de envo de mensajes a los interesados. La aplicacin configuracin es utilizada en ambas aplicaciones para establecer las configuraciones de GRHS. La aplicacin inventario se encarga de almacenar los inventarios realizados en todos los clientes. La aplicacin incidencia almacena todas las incidencias ocurridas en cada uno de los clientes. Toda la informacin utilizada por GRHS es almacenada en una base de datos. Se recomienda usar postgreSQL pero puede usarse cualquiera delas soportadas por el framework django. En tanto en los clientes se recomienda utilizar SQlite pero puede usarse cualquiera delas soportadas por el ORM pewee. La comunicacin entre gclient y gserver es mediante el protocolo HTTP/HTTPS El formato de intercambio de informacin es JSON. Para la comunicacin con el servidor se utiliza la tecnologa REST. El servidor gestiona las peticiones de los clientes mediante la implementacin de REST de la aplicacin django-rest-framework. La tecnologa REST se basa en el tipo de peticin de HTTP, cada tipo de peticin realiza una accin determinada. Por ejemplo las peticiones GET son para obtener informacin, POST para almacenar, PUT para modificar y DELETE para eliminar. Esta forma de comunicacin permite la comunicacin entre aplicaciones desarrolladas en varias tecnologas y es una forma sencilla y rpida de comunicacin. Adems permite gestionar los permisos a cada una de las vistas de la aplicacin gserver.

C. Tecnologas utilizadas Para cumplir con la premisa de explotar al mximo las tecnologas se decide utilizar python en todas las aplicaciones. En el cliente se adopta el diseo modular gestionado por el mdulo pydi. Este diseo se basa en componentes donde cada uno brinda servicios que pueden consumir los dems componentes. Con esta estrategia se minimiza la dependencia entre los componentes, permitiendo la fcil extensin de nuevas funcionalidades. El cliente utiliza la biblioteca bottle para brindar los servicios HTTP para la comunicacin de las rdenes del servidor. En el cliente el almacenamiento de la informacin se realiza apoyado en el ORM pewee. Por defecto se utiliza el gestor de base de datos SQlite aunque soporta muchos ms. El marco de trabajo django implementa el patrn arquitectnico modelo-vista-plantilla. En este patrn el modelo es el encargado de realizar todas las funcionalidades. La vista es quin decide que funcionalidad del modelo a utilizar y la informacin que se va a mostrar. En tanto la plantilla decide cmo se mostrar la informacin.JC-ICIMAF 2014 4La aplicacin gserver se apoya en la aplicacin django restframework para la gestin de las peticiones REST de los clientes pertimiendo agilizar el desarrollo de las aplicaciones. La aplicacin gadmin utiliza el marco de trabajo Bootstrap [9] y JQuery de javascript para las interfaces del usuario. En gserver se utilizan varios intermediarios, un intermediario en django realiza una funcin determinada en el procesamiento de peticin/respuesta del marco de trabajo. Para el registro de los clientes se usa el intermediario register. Este interviene en las peticiones realizadas para identificar de qu cliente proviene la peticin y rellenar los datos necesarios para las dems vistas. En caso de ser uno nuevo se registra en GRHS. El intermediario register permite que el cliente no necesite conocer su identificador en GRHS. Este identificador puede ser generado mediante algoritmos de cifrado aplicados a la informacin de las piezas procesador y placa madre o utilizar un identificador especificado en las configuraciones del cliente. La primera variante permite que una computadora mantenga su identificador hasta tanto no se cambien estas piezas, mientras que la segunda no se limita a las piezas para identificar una computadora pero puede ser objeto de errores en la configuracin de los clientes. Cualquiera de las dos variantes no limita el historial de una computadora por el sistema operativo utilizado porque en varios escenarios es comn tener varios sistemas operativos.

D. Definicin de incidencias La definicin de incidencias en GRHS es establecida a los cambios en los componentes. Estas tienen tipo, componente, estado y nivel. El tipo se corresponde con el tipo de inventario que se realice, por ejemplo, hardware o software. El componente es la parte del inventario que puede tener cambios, por ejemplo, teclado para el tipo hardware o antivirus para el tipo software. El estado se refiere al tipo de cambio que puede ocurrir, por ejemplo, sustrado para el teclado o desactivado para el antivirus. El nivel representa una agrupacin de incidencias segn el nivel de seguridad que defina el usuario, por ejemplo, la desactivacin del antivirus corresponde a un nivel crtico o la sustraccin de un teclado a un nivel medio. Esta definicin de incidencias permite que el usuario de forma sencilla establezca qu cambios, en qu componentes, constituyen una incidencia y el nivel de violacin de seguridad que representa para la entidad. En los ejemplos mostrados anteriormente se emitir una incidencia de nivel crtico cuando se desactive el componente antivirus y una incidencia de nivel medio cuando se sustraiga un teclado. Los valores que toman cada uno de los campos de la definicin de incidencia son nomencladores, que pueden ser modificados ante la adicin de nuevas funcionalidades como tipos, estados o componentes. Esto significa que si se le adicionara una funcionalidad que permita detectar cundo est sin tinta la impresora solo es necesario adicionar un nuevo estado sin tinta y un nuevo componente impresora.

E. Ejecucin de acciones automticas

Las acciones automticas son tareas que se ejecutan cuando se produce determinada incidencia. Las acciones que realiza GRHS se dividen en tres categoras: acciones de control, toma de imgenes y alertas. Las acciones de control son apagar, reiniciar, hibernar y suspender. Las alertas son las notificaciones por correo electrnico, sms o mensajera instantnea. GRHS soporta dos toma de imgenes: la del escritorio para conocer qu ventanas estaban abiertas y la del sospechoso (persona que utiliza la computadora involucrada en la incidencia) mediante una cmara. Las acciones de control y la toma de imgenes son tomadas en los clientes. Las alarmas son ejecutadas en la aplicacin gserver del servidor. Estas acciones son definidas en las configuraciones establecidas por el usuario en la aplicacin gadmin. Esta configuracin contiene las imgenes, alertas, acciones y nivel. Los tres primeros campos se corresponden con los tipos de acciones automticas, los cuales pueden contener ninguno o varios. En el caso del campo nivel representa ante qu tipo de incidencias se ejecutarn estas acciones. Si se tomase el ejemplo planteado en la seccin II.D. Se pueden establecer acciones automticas para los niveles crtico y medio. Para el nivel crtico se tomarn las imgenes del escritorio y del sospechoso, se enviar una alerta por correo electrnico y por sms al usuario, y se apagar la computadora. Para el nivel medio se tomarn las dos imgenes, se enviar una alerta mediante correo electrnico al usuario y no se aplicar ninguna accin de control. Se puede observar que estas acciones automticas se pueden extender hasta donde se desee. Por ejemplo, ante una incidencia de un nivel determinado se podra bloquear el ratn y el teclado. En otro caso se podra bloquear un dispositivo de almacenamiento no permitido en esa computadora, justo en el momento de su conexin. Lo mismo puede suceder cuando ocurra algn evento que necesite el anlisis personal de una persona autorizada de seguridad informtica, se podra bloquear la sesin en ejecucin y determinados usuarios.

III. RESULTADOS Y DISCUSIN

La herramienta GRHS resuelve los problemas de reduccin de volumen de informacin y del tiempo de notificacin a la aplicacin servidora porque la informacin intercambiada por sus aplicaciones son solo los cambios y no el inventario completo y porque reconoce algunos cambios en el momento que ocurren mediante la monitorizacin. El lenguaje python permiti ahorrar tiempo en el desarrollo de la ejecucin de tareas automticas por sus caractersticas dinmicas y por las bibliotecas existentes para estas acciones. Este lenguaje permiti desarrollar varias aplicaciones modulares logrando bajo acoplamiento y alta cohesin por sus caractersticas dinmicas. La utilizacin de django para las aplicaciones servidoras demostr que su diseo es excelente para lograr desacoplar las aplicaciones en varios servidores. El uso de la JC-ICIMAF 2014 comunicacin mediante la web con REST permiti reducir considerablemente el tiempo de implementacin de la herramienta. La combinacin de bottle y el ORM pewee permitieron garantizar la disponibilidad de los clientes y del almacenamiento y recuperacin de la informacin. El uso de los marcos de trabajo de javascript jQuery y Bootstrap permiti el diseo de una interfaz agradable en un corto tiempo de desarrollo. El diseo modular de las aplicaciones de GRHS permiten que el usuario pueda personalizar esta herramienta para su entorno de acuerdo a las necesidades existente en su entidad. Como trabajo futuro se eliminarn algunas de las limitaciones presentes en esta versin de GRHS. Se pretende aumentar los dispositivos inventariados a impresoras, escner y dispositivos de interconexin. Se trabajar en la deteccin de equipos no inventariados que estn conectados a la red de la entidad. Se adicionarn bsquedas avanzadas y cuadros de mando para mostrar la informacin de los inventarios. Se adaptar a entornos jerrquicos para que las aplicaciones de forma nativa compartan la informacin que gestionan.

REFERENCIAS [1] A. Fernndez y otros, Diccionario de Trminos Econmicos Contables y Agroeconmicos,Ed. Universidad de Oriente, 2005. [2] NetSupport. (2014, marzo 6). NetSupport DNA [Online]. Disponible: http://www.netsupportdna.com/. [3] SC QMA. (2014, febrero 26). VEO Ultimate. [Online]. Disponible: http://www.veo.com.mx/. [4] GmbH LOGIN. (2014, marzo 3). LOGINventory. [Online]. Disponible: http://www.loginventory.com/loginventory. [5] CACIC Comunidad. (2014, febrero 24). CACIC. [Online]. Disponible: http://www.latinuxpress.com/books/drafts/cacic/caps/23.html. [6] OCS. (2014, febrero 28). OCS Inventory NG. [Online]. http://www.ocsinventory-ng.org/. [7] I. Sommerville. Ingeniera de software, Ed: Addison-Wesley Iberoamericana, 1988. [8] J. Eguiluz. Desarrollo Web gil con Symfony 2. Ed: easybook, 2012. [9] Twitter. (2014, febrero 25). Twitter Bootstrap. [Online]. Disponible: http://twitter.github.io/bootstrap/.