
Anunciamos una semana de errores prehistóricos. La vulnerabilidad en el archivador WinRAR, descubierta y cerrada a finales de enero, fue descrita en detalle por especialistas de Check Point Software (
noticias ,
investigación original). En el peor de los casos, una infracción le permite descomprimir el archivo malicioso en una ubicación arbitraria de su disco duro, por ejemplo, en el directorio de ejecución automática de Windows.
Esta vulnerabilidad te hace pensar en usar bibliotecas de terceros difíciles de verificar en tu software, pero no solo. Hoy hablaremos brevemente sobre el problema en sí, la decisión de los desarrolladores de WinRAR de abandonar la biblioteca para desempaquetar archivos en formato ACE, y también abordaremos el tema de actualizar WinRAR en las computadoras de los usuarios. Mirando hacia el futuro: aunque las noticias causaron una seria resonancia, es más probable que sea una historia de final feliz. Pero vale la pena prestar especial atención a la clase de vulnerabilidades asociadas con el procesamiento de cualquier archivo que llegue a su computadora.
En el informe original, antes de demostrar el problema, hay muchos detalles (interesantes), pero veamos el resultado de inmediato.
El archivo preparado se guarda en el escritorio, el usuario intenta descomprimirlo allí, pero el archivo ejecutable se escribe en el directorio de ejecución automática. Como sucedio Los investigadores utilizaron tecnología fuzzing, a saber, el paquete
WinAFL , respaldado por el equipo de Google Project Zero y que es la versión para Windows de
American Fuzzy Loop . Al igual que otras herramientas similares, WinAFL le permite examinar la seguridad (o estabilidad) del software al pasar datos aleatorios (o no del todo) a la aplicación y preservar la reacción. Los fuzzers pueden considerarse una especie de "varita mágica" de un investigador de seguridad. Ayudan a detectar varios bloqueos del programa en lugares donde no deberían estar.
Sin embargo, un informe de Check Point muestra que las cosas no son tan simples. La investigación de WinAAR con WinAFL ayudó a identificar varios bloqueos inesperados de la aplicación y condujo a los investigadores a una biblioteca que procesa archivos en formato ACE, un estándar de archivo patentado. Esta biblioteca (unacev2.dll) se actualizó por última vez en 2006 y no tenía mecanismos de protección estándar (como ASLR o DEP). Además, estuvo presente en todas las versiones de WinRAR durante los últimos 19 años y, como resultó más tarde, todo este tiempo fue vulnerable. En el momento en que se descubrió el error, los desarrolladores de WinRAR no tenían acceso a su código fuente. ACE fue generalmente un archivador comercial en un momento, la biblioteca de desempaquetado era gratuita, pero legalmente podía crear archivos en este formato solo con la utilidad patentada WinACE (se actualizó hasta 2007,
el sitio web del programa existió hasta 2017; y ahora este es claramente un software abandonado )
Encontrar una vulnerabilidad simple como Path Traversal cuando el archivador desempaqueta el archivo en un directorio arbitrario no funcionó, tuve que configurar una utilidad fuzzing nuevamente, pero esta vez después de estudiar las características de formato usando el programa WinACE original y el
código distribuido libremente para desempacar Python En el siguiente viaje por fallas aleatorias, los investigadores encontraron un archivo que no se guardó en absoluto donde se suponía que WinAFL debía guardar el resultado de ejecutar la biblioteca.

El hecho es que el archivador ACE le permite guardar la ruta completa al archivo comprimido. En una situación normal, esta ruta se agrega a la ruta de desempaquetado seleccionada al descomprimir. Durante el fuzzing, resultó que algunos conjuntos de datos permitieron hacer que la ruta sea absoluta, es decir, desempaquetar el archivo no donde el usuario lo indicó, sino en cualquier lugar, pero esto no es muy bueno. Además, parece ser simple: debe aplicar el mismo truco cuando trabaje no con la biblioteca directamente, sino con WinRAR, ¿verdad? En realidad no: la vulnerabilidad no se reprodujo. No volveré a contar todo el historial de encontrar la combinación correcta de parámetros y pasar por alto otra etapa de validación en WinRAR: el programa verifica y elimina el delito de la ruta de guardado para evitar tales situaciones. Pero comprueba, como resultó, no todas las opciones posibles.

Esto es lo que pasó. Esta es una captura de pantalla del análisis de un archivo "preparado" utilizando el código de Python mencionado anteriormente. El doble c: \\ al comienzo de la ruta es procesado por la biblioteca unacev2 y WinRAR en sí, de modo que el archivo se escribe en un directorio arbitrario. Parece ser un exploit listo? De nuevo no, o más bien no realmente. Intentar escribir el ejecutable en el directorio de ejecución automática en esta configuración activará la protección de Windows. Pero los investigadores lograron encontrar una forma de evitar esta limitación si el archivo se guarda en el directorio del usuario, por ejemplo, en la carpeta Descargas o en el escritorio (lo cual es bastante probable). Como se muestra en el video al principio, el archivo preparado se guardó en el directorio de ejecución automática del usuario navegando a una carpeta más arriba en la ruta del archivo.
Cual es el resultado? En WinRAR 5.70 Beta 1, la vulnerabilidad se solucionó al abandonar por completo el uso de una biblioteca obsoleta para trabajar con archivos ACE. Es poco probable que alguien se moleste seriamente por esto. Por cierto, el consejo dado en un
artículo en el sitio web de ZDNet - "No abra archivos sospechosos en formato ACE" - es un poco incorrecto. WinRAR no detecta archivos con permiso, y el exploit funcionará con una versión vulnerable del programa, incluso si el archivo ACE preparado tiene la extensión RAR (o cualquier otra). No abra archivos sospechosos; esto es bueno, pero generalmente necesita actualizarse.
Ahora deje de pensar en la publicación por un minuto y vea qué versión de WinRAR ha instalado (a menos que, por supuesto, use este archivador). Para referencia: la versión 5.50 se lanzó en 2017, 5.00 - en 2012, 3.90 - en 2009. Con cierta probabilidad, la fecha de lanzamiento de WinRAR corresponderá aproximadamente a la fecha de configuración inicial del sistema, ya que todavía no hay una función de actualización automática en este programa. Como puede ver en el tweet de la compañía de corredores de vulnerabilidad Zerodium, existe una demanda de exploits de trabajo en los archivadores. Vulnerabilidades como las que se encuentran en la biblioteca de archivos ACE se pueden usar para ataques masivos o dirigidos a las computadoras de las víctimas. Cabe señalar que las posibilidades de una operación exitosa de este error están lejos de ser absolutas. Es muy probable que el servicio de correo bloquee el archivo infectado (por ejemplo, para GMail, por ejemplo, los archivos protegidos con contraseña y los archivos con archivos ejecutables no se omiten allí) o el software antivirus. A menos que, por supuesto, lo tengas.
Sin embargo, todos estos recordatorios molestos de la necesidad de actualizar uno de los docenas de programas instalados en la computadora tienen sentido. De lo contrario, es fácil pasar por alto una vulnerabilidad grave que funcionará en el momento más inoportuno. Para ser justos, notamos que los problemas serios en WinRAR
aparecen con poca frecuencia.
Descargo de responsabilidad: las opiniones expresadas en este resumen pueden no coincidir siempre con la posición oficial de Kaspersky Lab. Los estimados editores generalmente recomiendan tratar cualquier opinión con escepticismo saludable.