Ir al contenido

Detección de vulnerabilidades de Wazuh

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:

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ónVersionesProveedor de configuración
Red Hat y CentOS5Base de datos nacional de vulnerabilidades de Red Hat
6
7
8
ubuntufiel / 14Base de datos de vulnerabilidad nacional canónica
genial / 16
biónico / 18
focal / 20
Debianestirar / 9Base de datos nacional de vulnerabilidades de Debian
destructor / 10
ventanasTodas las versiones compatiblesBase de datos de vulnerabilidad nacionalMSU
Mac OSTodas las versiones compatiblesBase 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.

  1. 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/package-announce@lists.fedoraproject.org/message/2BMDSHTF754TITC6AQJPCS5IRIDMMIM7/", "https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/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&amp;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: cve@mitre.org
vulnerability.cve_version: 4.0

Finalment

Compartir:
Etiquetas:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *