Introducción
Remote Event Monitor and Analisys
System, es una propuesta para una arquitectura de monitoreo
multiproposito, distribuida, que permitirá hacer
configuraciones muy versátiles, tan sencillas o complejas
como se crea necesario, su diseño orientado a componentes,
permitirá su modificación de una forma muy sencilla
que no requerirá recompilar el software.
Esto también
permite que sea más depurable y administrable, de tal
forma que al detectar una falla en algún componente, lo
único que se necesitara hacer es reemplazar el componente
defectuoso con una versión más reciente que arregle
el problema.
En un ambiente en el que se necesita tener
control de una cantidad de datos muy grande y que se necesita
extraer información de los mismos de manera eficiente y
cercana al tiempo real, y que ademas exista la posibilidad de
delegar el uso de esta información a un dispositivo o
pieza de software, es conveniente la aplicación de un
sistema que de manera distribuida, o centralizada, analice el
progreso de un suceso, y que basado en los eventos que genere el
ámbito en que se desenvuelva tenga la capacidad de dar un
diagnostico de alto nivel que pueda ser usado para tomar cartas
en el asunto. Ya sea por un ser humano o por un dispositivo,
sistema o software.
Existen varios ambientes donde se
podría desenvolver de manera apropiada un sistema similar
como pueden ser Lineas de producción, experimentos
científicos, estados bursátiles o financieros, y de
mi especial interés, sistemas de computo "seguros"
es decir, su uso para detectar (y en un mundo feliz predecir)
intentos de intrusión, intrusiones o fallas que puedan
poner en riesgo la seguridad, de un sistema de computo, y ademas,
la capacidad para proponer o llevar a cabo una medida o plan de
contingencia que puede incluir la notificación del suceso
a una persona a través de correo electrónico, una
impresora e incluso un beeper.
Su aplicación como SDI
tiene varias consideraciones importantes, que pueden ubicarse en
tres niveles Ambiente de implementación, Carácter
de la Implementación, Ambiente de red.
Ambiente de
implementación :
Sistema
Operativo.
Lugares
donde se generaran los eventos.
Eventos
relevantes e irrelevantes
Si la implementación del
sistema requiere modificar o no codigo fuente del software.
Ambiente de red :
Tipo de
red en que se va a ocupar
¿Es
esta una red publica o privada ?
¿Es
confiable?
¿De hecho se va a ocupar
una red ?
Carácter de la Implementación
:
¿Experimental
o Practico?
Nivel
de seguridad y monitoreo requerido
Forma de abstracción de los
datos
¿Como se va a representar la información?
Los primeros dos niveles pueden ser
fáciles de responder, ya que el sistema operativo y las necesidades
de red, pueden ser fáciles de definir por lo que tendremos una respuesta
casi intuitiva a estas preguntas.
Las que resultan un poco mas dificil de responder son las del
carácter, y para contestarlas vamos a definirlas un
poco mejor.
Carácter Experimental o Practico?
Esta
pregunta se refiere a que tipo de algoritmos se van a ocupar para
poder generar información útil, si estos serán
simples inferencias, o serán algoritmos "inteligentes"
o expertos, si estos tendrán la capacidad de modificarse a
si mismos o su manera de funcionar, en base a un patrón de
modelado estadístico o simples reglas.
Lo cual puede
generar otra pregunta importante para decidir el carácter
de la implementación :
¿que tan propenso será
el sistema a dar falsos positivos y falsos negativos?
Estos
puntos son candidatos a generar bastante trabajo de
investigación.
Nivel de seguridad y monitoreo
requerido
Con esto quiero referirme a que tanta atención
se va a poner en la seguridad y que tan depurado va a estar el
sistema operativo, por ejemplo, en un sistema que sirve en el
mundo real como servidor web, no es de gran interés
revisar el tipo de documentos que sus usuarios usan, ya que la
cantidad de usuarios que hay son pocos y por defecto, en la
mayoría de los casos, se asume que son usuarios confiables
(p.e. las cuentas de los administradores).
Por lo contrario,
en un ambiente militar, se requerirá saber a que tipo de
información accesa cada usuario, con que frecuencia, y
también con que frecuencia trata de accesar a información
clasificada, incluso podría ser de interés modelar
el comportamiento de los usuarios para detectar anomalías
y reportarlas al encargado de dar mantenimiento a la
seguridad.
¿Como se va a representar la
información?
Este es probablemente el problema mas
interesante de la implementación, ya que dar un formato a
los datos que se generan y su relación con el análisis
que llevan a cabo es muy delicado, una buena aproximación
a este problema en mi propuesta actual, es la de tener eventos
que contengan varios campos requeridos como fecha, hora, origen,
nombre, etcétera. y un campo de propiedades que almacena
una cantidad variable de datos, en forma de un arreglo, el
problema con este campo, es que su estandarización no es
del todo intuitiva, ya que el significado de cada elemento es
asignado de acuerdo a su posición a la hora de analizarlo.