Esta semana en la columna de Seguridad: Cacti RCE

Esta semana comenzamos con la vulnerabilidad de ejecución remota de código (RCE) que puede ser una molestia para los administradores de sistemas. Cacti, una solución de gráficos y monitoreo del sistema, tiene un par de errores que se encadenan para permitir que un atacante con acceso no autenticado a un puerto HTTP/S ejecute comandos bash de manera trivial. La primera mitad de este ataque pasa por alto la autenticidad y es irritantemente trivial. Código de autenticación Cacti confía Forwarded-For: encabezado en la solicitud. Configúrelo en la IP del servidor y el código de autenticación lo tratará como una solicitud de host local, sin pasar por ningún proceso de autenticación real.

La otra mitad se encuentra en remote_agent.php punto final, ¿dónde está poller_id establecido por el usuario y tratado como una cadena. Entonces, si es correcto host_id y local_data_id elemento iniciado, esa cadena se concatena ua proc_open() Llamada de función. La cadena no se desinfecta, por lo que es lo suficientemente trivial como para incluir otro comando de inicio, al soltar webshell, por ejemplo.

La versión 1.2.23 de Cacti contiene una corrección, y se lanzó la 2. Es probable que esta sea explotada y, si la explotación automatizada aún no ha comenzado, probablemente lo hará pronto. Entonces, si tiene una instalación de Cacti, verifique que la interfaz no esté expuesta al mundo.

Token web JSON

Los investigadores de la Unidad 42 han encontrado un exploit que se puede usar para lograr RCE en el proyecto JsonWebToken. El problema es con esta biblioteca. verify() función que toma token de argumentos para verificar, clave para usar y opciones. Si no se especifican algoritmos en el objeto de opciones, la clave se trata como una cadena PEM. Él toString() el método de esa clave se llama durante la validación real, y se supone que es una matriz o un búfer. Pero, ¿y si la llave pasara? verify() la función era en realidad un objeto complejo, trayendo su propio toString() método con el juego. En ese punto tenemos ejecución de código arbitrario. Y si este código se ejecuta en el lado del servidor bajo node.jssignifica que el servidor colapsó.

Pero espera, no es tan simple, ¿verdad? No es que un JWT válido pueda contener un objeto arbitrario; eso sería un problema en sí mismo. Entonces CVE-2022-23529 es un trampolín. Es un código inseguro, pero el resto de la aplicación debe tener otra vulnerabilidad para que esté disponible.

SCOTUS trata con NSO

Estamos echando un vistazo poco común a una historia política, ya que la Corte Suprema de los Estados Unidos hizo una declaración decisiva, al negarse a hacer una declaración. WhatsApp está demandando a NSO Group, y NSO ha argumentado que todas sus acciones fueron tomadas como agentes de gobiernos legítimos, lo que debería otorgarles inmunidad frente a demandas. El Noveno Circuito dictaminó que esta defensa era ridícula, por lo que la NSO naturalmente apeló a la Corte Suprema. En caso de denegación de juicio, el tribunal superior envía una declaración de que la sentencia del tribunal inferior sigue siendo válida, lo que significa que el juicio continúa. Debería haber algunos detalles interesantes durante esta demanda, así como otras demandas que son inminentes, como la demanda de Apple que ya se presentó.

SBOM y VEX

Una lista de materiales de software (SBOM, por sus siglas en inglés) es una palabra de moda en estos días, y aún no hemos analizado la idea aquí en esta columna. La idea ha existido por un tiempo, basada en una lista de materiales tradicional que podría venir con una versión de hardware. SBOM es simplemente una lista de bibliotecas y archivos binarios que forman parte de una solución de software. Idealmente, una empresa tendría SBOM para todas sus soluciones de software y dispositivos y podría verificar automáticamente si están expuestos a CVE publicados.

Suena genial, pero desafortunadamente no es tan simple como parece. El artículo anterior de Chainguard trata principalmente sobre los documentos Vulnerability Exploitability Exchange (VEX), un formato estandarizado para declarar productos inmunes a una vulnerabilidad. Así que tomemos la vulnerabilidad JWT anterior. Una solución particular puede enviarse con una biblioteca JWT vulnerable, pero un ingeniero de software analiza el problema y cómo se usa la biblioteca y confirma que la solución no es realmente vulnerable. Se crea un documento VEX, se agrega a la base de datos SBOM y la solución de escaneo de vulnerabilidades automatizada sabe ignorar esa vulnerabilidad para esa solución.

TikTok VM en su navegador

JavaScript es todo código abierto, ¿verdad? Es un lenguaje interpretado que se ejecuta en el navegador del consumidor, por lo que, por definición, al menos la fuente está disponible. Excepto que muchos sitios web hacen todo lo posible para disfrazar el código JS en algo completamente ilegible. Y el actual campeón de ofuscación tiene que ser TikTok. [Ibiyemi Abiodun] pasó algún tiempo trabajando en la ingeniería inversa de ese código, basado en intentos anteriores [Veritas].

Y eso es magia profunda. Después de seguir algunos pasos para desenmascarar usando babel, se vuelve obvio que el código de bytes se está alimentando a la máquina virtual JS. Esta entrada de blog termina con un pseudoensamblado que necesita un descompilador dedicado para una mayor comprensión. Esperamos una tercera parte, quizás de otro investigador.

SugarCRM bajo fuego

En diciembre se publicó un día 0 para SugarCRM en seclists.org y se desarrolló rápidamente una revisión. La explotación es un par de defectos triviales. El primero es un puente de autenticación, donde la solicitud se envía con el nombre de usuario y la contraseña establecidos en 1, que funciona para generar una cookie de autenticación válida. El segundo es la carga ilimitada de archivos al directorio de imágenes. Cargue el script PHP, luego acceda a la URL de ganancia instantánea.

Desafortunadamente, este está siendo explotado en la naturaleza, y alrededor del 12% de las implementaciones de SugarCRM disponibles ya han sido descifradas. El exploit se descubrió con varias cadenas de búsqueda que devolverían implementaciones potencialmente vulnerables, por lo que no sorprende que las máquinas fueran explotadas. Si tiene un marco de SugarCRM en línea, probablemente sea el momento de verificar si hay compromisos.

bits y bytes

VScode es realmente algo. Proyecto de código abierto de Microsoft que rápidamente se convirtió en el favorito de una gran cantidad de desarrolladores. Es un gran IDE y tiene una extensa biblioteca de extensiones. Y eso podría ser un problema. Las extensiones de VSCode se ejecutan sin un espacio aislado y tienen esencialmente los mismos privilegios de la cuenta de usuario que ejecuta VSCode. Otro lugar para tener cuidado con los errores tipográficos y trucos similares.

Amazon ha anunciado que está introduciendo el cifrado del lado del servidor como estándar para los nuevos objetos S3. Tengo preguntas sobre qué tan útil es esto en realidad, ya que no hace nada para proteger contra el problema más común que encontramos con el almacenamiento S3: las fugas de tokens de autenticación. Al menos ayudaría a prevenir ataques físicos, pero eso ya parece poco probable.

Y hablando de llaves, [Tom Forbes] escribió la madre de todas las cadenas de expresiones regulares, en un esfuerzo por encontrar claves de AWS publicadas inadvertidamente en paquetes y repositorios. (('|")((?:ASIA|AKIA|AROA|AIDA)([A-Z0-7]{16}))('|").*?(n^.*?){0,4}(('|")[a-zA-Z0-9+/]{40}('|"))+|('|")[a-zA-Z0-9+/]{40}('|").*?(n^.*?){0,3}('|")((?:ASIA|AKIA|AROA|AIDA)([A-Z0-7]{16}))('|"))+ es un poco complicado, pero encontró 57 claves de AWS activas solo en PyPi. Impresionante.

Leave a Reply

Your email address will not be published. Required fields are marked *