Cómo asignar automáticamente fallas de aplicaciones a las técnicas MITRE ATT&CK y las contramedidas D3FEND

Jan 16 2023
Usando Neo4J Data Fabric y NeoSemantics bajo el capó
Los exploits detectados en paquetes de software de código abierto (como log4j) impulsaron a la industria a encontrar una solución para monitorear, detectar, prevenir y reparar vulnerabilidades y debilidades en las aplicaciones. Esta necesidad es relevante para todo el ciclo de vida del desarrollo de software e incluye componentes de software de desarrollo propio o de terceros.

Los exploits detectados en paquetes de software de código abierto (como log4j ) impulsaron a la industria a encontrar una solución para monitorear, detectar, prevenir y reparar vulnerabilidades y debilidades en las aplicaciones. Esta necesidad es relevante para todo el ciclo de vida del desarrollo de software e incluye componentes de software de desarrollo propio o de terceros. Para abordar esta necesidad, las organizaciones utilizan métodos de detección para descubrir componentes de software vulnerables, como Pruebas de seguridad de aplicaciones estáticas (SAST), Pruebas de seguridad de aplicaciones dinámicas (DAST) y más.

Estos métodos de escaneo generalmente descubren fallas de seguridad en el código fuente, pero carecen de la capacidad de proporcionar la imagen completa requerida para que un experto en seguridad analice el software. Por ejemplo:

(1) ¿Cómo podría un atacante aprovechar la falla detectada?

(2) ¿Qué contramedidas podría utilizar el propietario del código para evitar este exploit?

En este punto, los gráficos de conocimiento de ciberseguridad disponibles públicamente, como D3FEND y OWASP OdTM , pueden ayudar. Estos gráficos de conocimiento contienen información de vulnerabilidades, sus técnicas ATT&CK asociadas y las contramedidas correspondientes. Una proyección de las fallas de la aplicación sobre estos gráficos de conocimiento fusionados permite el aumento de cada falla con el contexto de las técnicas potenciales de ATT&CK y las contramedidas correspondientes. La siguiente figura muestra un ejemplo de tal aumento.

Ejemplo de un informe de hallazgos de seguridad de la aplicación aumentada

En este blog, presentamos una arquitectura de federación de datos basada en ontologías para la tarea de aumento de informes de seguridad de aplicaciones. Este aumento permite agrupar las fallas de las aplicaciones descubiertas según las técnicas de ataque y sus correspondientes contramedidas. Esta agrupación facilita las tareas de priorización de remediación y evaluación de amenazas mediante herramientas complementarias (como Accenture IntelGraph ) que pueden categorizar aún más las técnicas según los grupos de amenazas y proporcionar un plan de remediación en consecuencia.

Para lograr lo anterior:

(1) Creamos una base de conocimiento federada de repositorios de conocimiento público (D3FEND y OdTM) a través de las tecnologías Neo4J Data Fabric y NeoSemantics

(2) Luego, construimos una representación gráfica de conocimiento de un informe de hallazgos de seguridad de la aplicación compuesto por fallas detectadas en el código de la aplicación.

(3) Finalmente, utilizamos consultas de gráficos de federación de datos para asociar cada falla detectada con información de D3FEND y OdTM.

En el resto del blog explicaremos cómo se hace esto. Primero, describimos Neo4J Data Fabric y NeoSemantics en pocas palabras. Luego, profundizamos en los componentes específicos de Data Fabric. Finalmente, demostramos cómo realizamos un aumento de un informe de hallazgos a través de una consulta de federación de datos.

Arquitectura de federación de datos basada en ontologías

¿Qué es el tejido de datos Neo4J?

El tejido Neo4J es una forma de almacenar y recuperar datos de múltiples bases de datos utilizando una sola consulta de cifrado. Tiene dos casos de uso principales: primero, la federación de datos, que es la capacidad de acceder a los datos disponibles en fuentes distribuidas en forma de gráficos inconexos. En segundo lugar, la fragmentación de datos, que es la capacidad de acceder a los datos disponibles en fuentes distribuidas en forma de un gráfico común dividido en múltiples bases de datos. En este blog demostramos el caso de uso de la federación de datos.

¿Qué es la NeoSemántica?

NeoSemantics es un complemento que permite el uso de RDF y sus vocabularios asociados en Neo4j. Las funcionalidades clave de NeoSemantics son las siguientes. Primero, importación y exportación de Ontologías/Taxonomías en diferentes vocabularios ( OWL , SKOS , RDFS ). Segundo, validación de gráficos basada en restricciones SHACL. En tercer lugar, la inferencia básica, como la recuperación de todos los nodos de la misma categoría ontológica. En este blog demostramos la funcionalidad de importación de NeoSemantics.

Componentes de Data Fabric

Ahora describamos los diferentes componentes del Data Fabric. En general, Data Fabric se compone de dos tipos de bases de datos: una base de datos que contiene información recopilada concreta y bases de datos que contienen información recopilada de repositorios de conocimiento público.

Los repositorios de conocimiento público en Data Fabric se componen de dos ontologías:

(1) La ontología D3FEND contiene información sobre las técnicas de ataque, cómo podrían comprometer los artefactos digitales y cómo estos artefactos digitales podrían defenderse mediante técnicas defensivas.

(2) La ontología OWASP OdTM contiene información sobre vulnerabilidades (CVE), su categorización en debilidades (CWE), qué patrones de ataque están habilitados en consecuencia y qué técnicas de ataque podrían aplicarse como parte del patrón de ataque.

La información concreta recopilada en el tejido contiene información sobre las aplicaciones, sus módulos, los hallazgos descubiertos dentro de cada módulo y un mapeo de cada hallazgo a una referencia CVE o CWE.

Una vez que toda la información se carga en el gráfico a través del complemento NeoSemantics y las diferentes bases de datos se configuran en el mismo Data Fabric, la información se fusiona al hacer coincidir los objetos compartidos en las bases de datos mediante una propiedad de identificador compartido. Es decir, el mismo nodo de instancia de "Tipo CVE" en el gráfico de hallazgos de seguridad de la aplicación tendrá el mismo identificador que el nodo de instancia "CVE" en el gráfico de ontología OWASP OdTM. Todos los objetos compartidos se combinan en consecuencia (resaltados en naranja en la figura a continuación). Después de fusionar la información, podemos crear una consulta que atraviese caminos desde la búsqueda de fallas hasta las técnicas de ataque y defensa correspondientes.

Componentes de Data Fabric

Ampliación de un informe de resultados a través de una consulta de federación de datos

La siguiente figura muestra el gráfico de conocimiento de los hallazgos de seguridad de la aplicación. El nodo amarillo representa una aplicación escaneada, los nodos rojos representan los módulos de la aplicación, los nodos de color marrón claro representan fallas que se descubrieron dentro de los módulos. Las referencias CWE están representadas por nodos naranjas.

Ejemplo de un gráfico de conocimiento de hallazgos de seguridad de la aplicación

Ahora que hemos visto un ejemplo del gráfico de hallazgos de seguridad de la aplicación, veamos cómo ocurre la magia de la estructura.

La siguiente figura muestra un ejemplo de una consulta de federación de datos. La consulta obtiene resultados y recupera sus técnicas de ataque, técnicas defensivas y artefactos digitales relacionados.

Esta consulta se compone de un componente por cada base de datos que interviene en la tarea de aumento del informe. Primero, recuperamos los CWE relacionados (resaltados en verde) de cada hallazgo (resaltado en amarillo) dentro del gráfico de conocimiento de hallazgos de seguridad de la aplicación. En segundo lugar, tomamos los CWE recuperados del paso anterior y recorremos las técnicas de ataque correspondientes (resaltadas en púrpura) de la ontología OWASP OdTM. Finalmente, tomamos las técnicas de ataque recuperadas del paso anterior y recorremos los artefactos digitales y las técnicas defensivas correspondientes de la ontología D3FEND.

Ejemplo de una consulta de federación de datos

Y ahora todos han visto cómo aumentamos automáticamente el hallazgo de seguridad de una aplicación con los patrones de ataque, las técnicas de ataque, los artefactos digitales y las contramedidas correspondientes. A continuación, se muestra una representación visual de un informe de resultados de seguridad de aplicaciones aumentado.

Ejemplo de un informe de hallazgos de seguridad de aplicaciones aumentado: una vista gráfica

Resumen

Hemos visto en este blog que Data Fabric y NeoSemantics permiten la creación de una base de conocimiento federada , especialmente utilizando ontologías públicas. Además, conectar múltiples ontologías disponibles públicamente de esa manera permite responder las siguientes preguntas:

Si mi software tiene una vulnerabilidad o debilidad conocida,
(1)
¿Cuáles son los patrones y técnicas de ataque potenciales que podrían usarse para explotarlo?
(2)
¿Cuáles son las contramedidas potenciales que podría tomar para evitar tal explotación?

No olvide consultar mi sesión en NODES'22 para obtener más perspectivas de los temas discutidos.

Gracias a Dan Klein , líder del grupo de investigación y desarrollo de seguridad cibernética de Accenture Labs Israel, por sus contribuciones.

© Copyright 2021 - 2023 | unogogo.com | All Rights Reserved