Cómo escanear su entorno en busca de versiones vulnerables de Curl

Cómo escanear su entorno en busca de versiones vulnerables de Curl

How to Scan Your Environment for Vulnerable Versions of Curl PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Los equipos de seguridad no tienen que entrar en modo de crisis para abordar el vulnerabilidades corregidas recientemente en la herramienta de línea de comandos curl y la biblioteca libcurl, pero eso no significa que no tengan que preocuparse por identificar y reparar los sistemas afectados. Si los sistemas no son explotables de inmediato, los equipos de seguridad tienen algo de tiempo para realizar esas actualizaciones.

Este consejo técnico ofrece orientación sobre lo que los equipos de seguridad deben hacer para garantizar que no estén en riesgo.

cURL, una herramienta de red fundamental para sistemas Unix y Linux, se utiliza en líneas de comando y scripts para transferir datos. Su prevalencia se debe al hecho de que se utiliza como utilidad independiente (curl) y como biblioteca que se incluye en muchos tipos diferentes de aplicaciones (libcurl). La biblioteca libcurl, que permite a los desarrolladores acceder a las API de curl desde su propio código, puede introducirse directamente en el código, usarse como una dependencia, usarse como parte de un paquete de sistema operativo, incluirse como parte de un contenedor Docker o instalarse en un Nodo del clúster de Kubernetes.

¿Qué es CVE-2023-38545?

La vulnerabilidad de alta gravedad afecta curl y libcurl versiones 7.69.0 a 8.3.0, y la vulnerabilidad de baja gravedad afecta a las versiones 7.9.1 a 8.3.0 de libcurl. Sin embargo, las vulnerabilidades no se pueden explotar en condiciones predeterminadas. Un atacante que intentara activar la vulnerabilidad necesitaría apuntar curl a un servidor malicioso bajo el control del atacante, asegurarse de que curl esté usando un proxy SOCKS5 usando el modo de resolución de proxy, configurar curl para que siga automáticamente las redirecciones y establecer el tamaño del búfer en un tamaño más pequeño. tamaño.

Según la Yair Mizrahi, investigador senior de seguridad de JFrog, la biblioteca libcurl es vulnerable , solamente si se establecen las siguientes variables de entorno: CURLOPT_PROXYTYPE  establecer para escribir CURLPROXY_SOCKS5_HOSTNAME, o CURLOPT_PROXY or CURLOPT_PRE_PROXY  establecer el esquema calcetines5h://. La biblioteca también es vulnerable si una de las variables de entorno del proxy está configurada para usar el calcetines5h:// esquema. La herramienta de línea de comandos es vulnerable sólo si se ejecuta con el -socks5-nombre de host bandera, o con -apoderado (-x) o –preproxy configurado para usar el esquema calcetines5h://. También es vulnerable si curl se ejecuta con las variables de entorno afectadas.

“El conjunto de condiciones previas necesarias para que una máquina sea vulnerable (ver sección anterior) es más restrictivo de lo que se creía inicialmente. Por lo tanto, creemos que la gran mayoría de los usuarios de curl no se verán afectados por esta vulnerabilidad”, escribió Mizrahi en el análisis.

Escanear el entorno en busca de sistemas vulnerables

Lo primero que deben hacer las organizaciones es definir el alcance de sus entornos para identificar todos los sistemas utilizando curl y libcurl para evaluar si existen esas condiciones previas. Las organizaciones deben inventariar sus sistemas y evaluar sus procesos de entrega de software utilizando herramientas de análisis de composición de software para código, escaneo de contenedores y utilidades de gestión de la postura de seguridad de las aplicaciones, señala Alex Ilgayev, jefe de investigación de seguridad de Cycode. Aunque la vulnerabilidad no afecta todas las implementaciones de curl, sería más fácil identificar los sistemas afectados si el equipo comienza con una lista de posibles ubicaciones para buscar.

Los siguientes comandos identifican qué versiones de curl están instaladas:

Linux/Mac OS:

buscar / -name curl 2>/dev/null -exec echo "Encontrado: {}"; -exec {} --versión;

ventanas:

Get-ChildItem -Path C: -Recurse -ErrorAction SilentlyContinue -Filter curl.exe | ForEach-Object { Write-Host "Encontrado: $($_.FullName)"; & $_.NombreCompleto --versión }

GitHub tiene un consulta para ejecutar en Defender para Endpoint para identificar todos los dispositivos en el entorno que tienen curl instalado o usan curl. Qualys ha publicado sus reglas por utilizar su plataforma.

Las organizaciones que utilizan contenedores Docker u otras tecnologías de contenedores también deben escanear las imágenes en busca de versiones vulnerables. Se espera una cantidad considerable de reconstrucciones, particularmente en imágenes de Docker y entidades similares que incorporan copias de Liburl. Docker se ha unido una lista de instrucciones en la evaluación de todas las imágenes.

Para buscar repositorios existentes:

habilitar el repositorio de Docker Scout --org /demo-scout

Para analizar imágenes de contenedores locales:

política de Docker Scout [IMAGEN] --org [ORG]

Este número resalta la importancia de realizar un seguimiento meticuloso de todo el software de código abierto que se utiliza en una organización, según Henrik Plate, investigador de seguridad de Endor Labs.

"Conocer todos los usos de curl y libcurl es un requisito previo para evaluar el riesgo real y tomar medidas correctivas, ya sea parchando curl, restringiendo el acceso a los sistemas afectados desde redes no confiables o implementando otras contramedidas", dijo Plate.

Si la aplicación viene con una lista de materiales de software, sería un buen lugar para comenzar a buscar ejemplos de rizo, añade John Gallagher, vicepresidente de Viakoo Labs.

El hecho de que las fallas no sean explotables no significa que las actualizaciones no sean necesarias. Hay parches disponibles directamente para curl y libcurl, y muchos de los sistemas operativos (Debian, Ubuntu, Red Hat, etc.) también han impulsado versiones fijas. Esté atento a las actualizaciones de seguridad de otras aplicaciones, ya que libcurl es una biblioteca utilizada por muchos sistemas operativos y aplicaciones.

Una solución alternativa hasta que se puedan implementar las actualizaciones es forzar a curl a utilizar la resolución de nombres de host local al conectarse a un proxy SOCKS5, según Mizrahi de JFrog. Esta sintaxis utiliza el esquema calcetines5 y no calcetines5h: rizo -x calcetines5://someproxy.com. En la biblioteca, reemplace la variable de entorno. CURLPROXY_SOCKS5_HOSTNAME   CURLPROXY_SOCKS5.

Según Benjamin Marr, ingeniero de seguridad de Intruso, los equipos de seguridad deberían monitorear los indicadores curl en busca de cadenas excesivamente grandes, ya que eso indicaría que el sistema había sido comprometido. las banderas son –socks5-nombre de hosto -apoderado or –preproxy configurado para usar el esquema calcetines5h://.

Sello de tiempo:

Mas de Lectura oscura