G DATA Techblog: Análisis de malware con una base de datos gráfica

Las bases de datos de gráficos están creciendo en popularidad debido a que su modelo de datos orientado a la conexión es un ajuste natural para muchos dominios donde las conexiones entre entidades son de importancia central. En esta publicación analizamos si una base de datos de gráficos puede ayudarnos a analizar malware, tanto de forma manual como de aprendizaje automático.

Como proveedor de antivirus, analizamos varios cientos de miles de posibles muestras de malware por día. Tenemos que clasificar estas nuevas muestras, lo que significa en primer lugar que simplemente tenemos que decidir si la muestra es benigna o maliciosa. En caso de que sea malicioso, queremos saber si pertenece a una familia de malware que ya conocemos o si es un malware completamente nuevo. Cuando la muestra de malware es completamente nueva, entonces un analista humano probablemente debería echarle un vistazo y crear una nueva detección. En caso de que pertenezca a una familia ya conocida, mejoramos la detección de la familia si es necesario para detectar también la nueva muestra.

Las familias de malware consisten en muestras de malware que comparten el mismo comportamiento y que también tienen principalmente el mismo código. Sus autores simplemente cambian partes del binario para evitar detecciones por escáneres estáticos basados ​​en firmas. Esto se puede hacer, por ejemplo, utilizando un empaquetador diferente. Por lo tanto, las muestras de malware que pertenecen a la misma familia se ven diferentes en el disco, pero siguen mostrando el mismo comportamiento. Queremos utilizar este hecho para nuestra clasificación, ya que nos permite asignar muestras de malware a familias conocidas según su comportamiento.

El comportamiento de las muestras de malware puede ser representado por características. La dirección IP de un host contactado es, por ejemplo, una característica de este tipo, el nombre de un archivo creado es otro. Esto nos lleva a la pregunta de cómo podemos encontrar muestras de malware que tengan muchas características en común, ya que eso probablemente signifique que las muestras pertenecen a la misma familia de malware.

¿Por qué usar una base de datos gráfica para el análisis de malware?

Una base de datos de gráficos es una base de datos que modela datos en un gráfico que consta de vértices y bordes. Los vértices y los bordes normalmente pueden tener propiedades y un borde conecta dos vértices entre sí. Los bordes se tratan como “ciudadanos de primera clase” en una base de datos gráfica que refleja la importancia de modelar las relaciones en una base de datos gráfica. Este modelo hace que las bases de datos de gráficos sean una buena opción para casos de uso en los que es importante encontrar relaciones, especialmente cuando las relaciones son más complejas porque requieren atravesar varios bordes. Las bases de datos relacionales, por el contrario, requieren uniones costosas computacionales para consultar las relaciones.

Ya que encontrar relaciones entre muestras de malware es exactamente el problema que estamos tratando de resolver, una base de datos gráfica es un ajuste natural para nuestro caso de uso. Solo necesitamos crear el gráfico con muestras y sus características de una manera que nos permita encontrar relaciones entre las muestras basadas en sus características compartidas.

Elegir una base de datos de gráficos

El buen soporte para el marco de Apache TinkerPop fue el requisito más importante para nuestra elección del sistema de base de datos de gráficos, ya que TinkerPop es el estándar de facto para las bases de datos de gráficos y su computación. El uso de una base de datos habilitada para TinkerPop significa que evitamos el bloqueo de proveedores, ya que podríamos cambiar fácilmente a otra base de datos habilitada para TinkerPop y también que nos beneficiamos del creciente ecosistema de TinkerPop. Otro requisito importante para nosotros fue la escalabilidad horizontal. Estos dos criterios principales nos llevaron a la base de datos JanusGraph , una base de datos gráfica alojada en la Fundación Linux.

Ambos de estos proyectos, Apache TinkerPop y JanusGraph, no son solo proyectos de código abierto, sino que también están respaldados por una comunidad abierta que fue otro punto de decisión importante para nosotros. Ahora contribuimos a ambos proyectos de manera regular, no solo para implementar características que son importantes para nosotros sino también porque queremos que estos proyectos y sus comunidades crezcan. Una comunidad saludable y en crecimiento generalmente resulta en un ecosistema en crecimiento que incluye nuevas bibliotecas y herramientas que también podrían ser útiles para nosotros en algún momento.

Otra buena ventaja de JanusGraph también es que su almacenamiento e índices de fondo son conectables. Esto nos permitió migrar de Apache Cassandra a ScyllaDB más fácil de configurar. También puede proporcionar un camino hacia una base de datos gráfica que no solo es escalable sino que también ofrece transacciones ACID con un backend basado en FoundationDB para el cual ya existe un primer adaptador de almacenamiento JanusGraph .

 

30/11/2018, autor: Florian Hockmann, Stefan Hausotte

Comentarios

comments

Powered by Facebook Comments