Este artículo trata sobre la detección de vulnerabilidades de Wazuh
Requisitos previos
Instale la plataforma de seguridad de código abierto wazuh y el agente wazuh utilizando los blogs mencionados a continuación.
1: WAZUH La plataforma de seguridad de código abierto
2: Instalación del agente WAZUH
Wazuh es capaz de detectar vulnerabilidades en las aplicaciones instaladas en los agentes utilizando el módulo Vulnerability Detector. Esta auditoría de software se realiza a través de la integración de fuentes de vulnerabilidades indexadas por Canonical, Debian, Red Hat y la base de datos nacional de vulnerabilidades.
Cómo funciona
Para poder detectar vulnerabilidades, ahora los agentes pueden recopilar de forma nativa una lista de aplicaciones instaladas, enviándola periódicamente al administrador (donde se almacena en bases de datos sqlite locales, una por agente). Además, el administrador crea una base de datos de vulnerabilidad global, a partir de repositorios CVE disponibles públicamente, y la usa más tarde para correlacionar esta información con los datos del inventario de aplicaciones del agente.
La base de datos de vulnerabilidad global se crea automáticamente y actualmente extrae datos de los siguientes repositorios:
- https://canonical.com : se usa para extraer CVE para distribuciones Ubuntu Linux.
- https://www.redhat.com : se utiliza para extraer CVE para las distribuciones Red Hat y CentOS Linux.
- https://www.debian.org : se usa para extraer CVE para las distribuciones de Debian Linux.
- https://nvd.nist.gov/ : se usa para extraer CVE de la base de datos nacional de vulnerabilidad.
- https://feed.wazuh.com/ : se utiliza para extraer la fuente de MSU con CVE y parches para productos de Microsoft.
Esta base de datos se puede configurar para que se actualice periódicamente, lo que garantiza que la solución buscará los CVE más recientes.
Una vez creada la base de datos de vulnerabilidades global (con los CVE), el proceso de detección busca paquetes vulnerables en las bases de datos de inventario (únicas por agente). Las alertas se generan cuando un CVE (vulnerabilidades y exposiciones comunes) afecta un paquete que se sabe que está instalado en uno de los servidores monitoreados. Un paquete se etiqueta como vulnerable cuando su versión se encuentra dentro del rango afectado de un CVE. Los resultados se presentan como alertas y también se almacenan en una base de datos. De modo que puede verificar las alertas del último análisis o consultar la base de datos de software vulnerable de cada agente.
Tipos de escaneo
El módulo Detector de vulnerabilidades puede ejecutar un escaneo al inicio ( run_on_start ) y cada cierto período de tiempo ( intervalo ). En cualquiera de estos casos, los paquetes que ya han sido escaneados esperarán hasta que expire el tiempo de ignorar para volver a escanear. Esto mejora el rendimiento y evita alertas repetidas durante un tiempo configurable. Tenemos entonces dos tipos diferentes de escaneo:
- Análisis completo: la primera vez, Vulnerability Detector analiza todos los paquetes instalados. Después de esto, todos los paquetes disponibles se escanean nuevamente solo cuando expira el tiempo de ignorar configurado .
- Escaneos parciales: solo se escanean los paquetes nuevos mientras ignore_time sigue siendo válido.
Hay algunas consideraciones que surgen de este comportamiento:
- Cada análisis completo genera alertas para todos los paquetes, por lo que las alertas se repiten hasta que se solucionan.
- El usuario no puede activar un escaneo completo manualmente, la única opción es disminuir la configuración ignore_time .
- Los escaneos parciales generan alertas para nuevos paquetes, pero no eliminan alertas para paquetes eliminados.
- Los análisis parciales se pueden activar con un reinicio de Manager.
Consulte la configuración del detector de vulnerabilidades para obtener más detalles de configuración.
Matriz de compatibilidad
La siguiente tabla muestra los sistemas operativos en los que actualmente se admite el detector de vulnerabilidades y la configuración del proveedor necesaria para cada distribución.
Distribución | Versiones | Proveedor de configuración |
---|---|---|
Red Hat y CentOS | 5 | Base de datos nacional de vulnerabilidades de Red Hat |
6 | ||
7 | ||
8 | ||
ubuntu | fiel / 14 | Base de datos de vulnerabilidad nacional canónica |
genial / 16 | ||
biónico / 18 | ||
focal / 20 | ||
Debian | estirar / 9 | Base de datos nacional de vulnerabilidades de Debian |
destructor / 10 | ||
ventanas | Todas las versiones compatibles | Base de datos de vulnerabilidad nacionalMSU |
Mac OS | Todas las versiones compatibles | Base de datos de vulnerabilidad nacional |
Detección de vulnerabilidades
El siguiente ejemplo muestra cómo configurar los componentes necesarios para ejecutar el proceso de detección de vulnerabilidades.
- Habilite el módulo de agente utilizado para recopilar paquetes instalados en el sistema monitoreado.
Puede hacerlo agregando el siguiente bloque de configuraciones a su archivo de configuración de agente compartido:
<wodle name="syscollector">
<disabled>no</disabled>
<interval>1h</interval>
<os>yes</os>
<packages>yes</packages>
</wodle>
Si quieres escanear vulnerabilidades en agentes de Windows, también tendrás que agregar el hotfixes del escaneo:
<wodle name="syscollector">
<disabled>no</disabled>
<interval>1h</interval>
<os>yes</os>
<packages>yes</packages>
<hotfixes>yes</hotfixes>
</wodle>
Estos análisis están habilitados de forma predeterminada. Para obtener más información sobre el módulo de inventario, consulte la configuración de Sycollector. Habilite el módulo de administrador utilizado para detectar vulnerabilidades.
Puede hacer esto agregando un bloque como el siguiente a su archivo de configuración del administrador:
<vulnerability-detector>
<enabled>yes</enabled>
<interval>5m</interval>
<run_on_start>yes</run_on_start>
<provider name="canonical">
<enabled>yes</enabled>
<os>bionic</os>
<update_interval>1h</update_interval>
</provider>
<provider name="nvd">
<enabled>yes</enabled>
<update_from_year>2010</update_from_year>
<update_interval>1h</update_interval>
</provider>
</vulnerability-detector>
Recuerda reiniciar el administrador para aplicar los cambios:
systemctl restart wazuh-manager
service wazuh-manager restart
Aquí, puede ver una alerta real donde se completan los campos explicados:
** Alert 1591945867.49829472: - vulnerability-detector,gdpr_IV_35.7.d,pci_dss_11.2.1,pci_dss_11.2.3,tsc_CC7.1,tsc_CC7.2,
2020 Jun 12 07:11:07 (Debian) any->vulnerability-detector
Rule: 23505 (level 10) -> 'CVE-2019-12735 affects vim'
vulnerability.package.name: vim
vulnerability.package.version: 2:8.0.0197-4+deb9u1
vulnerability.package.architecture: amd64
vulnerability.package.condition: Package less than 2:8.0.0197-4+deb9u2
vulnerability.cvss.cvss2.vector.attack_vector: network
vulnerability.cvss.cvss2.vector.access_complexity: medium
vulnerability.cvss.cvss2.vector.authentication: none
vulnerability.cvss.cvss2.vector.confidentiality_impact: complete
vulnerability.cvss.cvss2.vector.integrity_impact: complete
vulnerability.cvss.cvss2.vector.availability: complete
vulnerability.cvss.cvss2.base_score: 9.300000
vulnerability.cvss.cvss3.vector.attack_vector: local
vulnerability.cvss.cvss3.vector.access_complexity: low
vulnerability.cvss.cvss3.vector.privileges_required: none
vulnerability.cvss.cvss3.vector.user_interaction: required
vulnerability.cvss.cvss3.vector.scope: changed
vulnerability.cvss.cvss3.vector.confidentiality_impact: high
vulnerability.cvss.cvss3.vector.integrity_impact: high
vulnerability.cvss.cvss3.vector.availability: high
vulnerability.cvss.cvss3.base_score: 8.600000
vulnerability.cve: CVE-2019-12735
vulnerability.title: CVE-2019-12735
vulnerability.rationale: getchar.c in Vim before 8.1.1365 and Neovim before 0.3.6 allows remote attackers to execute arbitrary OS commands via the :source! command in a modeline, as demonstrated by execute in Vim, and assert_fails or nvim_input in Neovim.
vulnerability.severity: High
vulnerability.published: 2019-06-05
vulnerability.updated: 2019-06-13
vulnerability.cwe_reference: CWE-78
vulnerability.references: ["http://lists.opensuse.org/opensuse-security-announce/2019-06/msg00031.html", "http://lists.opensuse.org/opensuse-security-announce/2019-06/msg00036.html", "http://lists.opensuse.org/opensuse-security-announce/2019-06/msg00037.html", "http://lists.opensuse.org/opensuse-security-announce/2019-07/msg00034.html", "http://lists.opensuse.org/opensuse-security-announce/2019-07/msg00050.html", "http://lists.opensuse.org/opensuse-security-announce/2019-08/msg00075.html", "http://www.securityfocus.com/bid/108724", "https://access.redhat.com/errata/RHSA-2019:1619", "https://access.redhat.com/errata/RHSA-2019:1774", "https://access.redhat.com/errata/RHSA-2019:1793", "https://access.redhat.com/errata/RHSA-2019:1947", "https://bugs.debian.org/930020", "https://bugs.debian.org/930024", "https://github.com/neovim/neovim/pull/10082", "https://github.com/numirias/security/blob/master/doc/2019-06-04_ace-vim-neovim.md", "https://github.com/vim/vim/commit/53575521406739cf20bbe4e384d88e7dca11f040", "https://lists.debian.org/debian-lts-announce/2019/08/msg00003.html", "https://lists.fedoraproject.org/archives/list/[email protected]/message/2BMDSHTF754TITC6AQJPCS5IRIDMMIM7/", "https://lists.fedoraproject.org/archives/list/[email protected]/message/TRIRBC2YRGKPAWVRMZS4SZTGGCVRVZPR/", "https://seclists.org/bugtraq/2019/Jul/39", "https://seclists.org/bugtraq/2019/Jun/33", "https://security.gentoo.org/glsa/202003-04", "https://support.f5.com/csp/article/K93144355", "https://support.f5.com/csp/article/K93144355?utm_source=f5support&utm_medium=RSS", "https://usn.ubuntu.com/4016-1/", "https://usn.ubuntu.com/4016-2/", "https://www.debian.org/security/2019/dsa-4467", "https://www.debian.org/security/2019/dsa-4487", "https://nvd.nist.gov/vuln/detail/CVE-2019-12735", "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-12735"]
vulnerability.assigner: [email protected]
vulnerability.cve_version: 4.0
Finalment