La tercera y última jornada de ekoparty estuvo cargada de charlas y, entre ellas, asistimos a la presentación de Sofiane Talmat, Security Consultant de IOActive, titulada “System updates, attack and defense”. El objetivo fue mostrar distintas maneras en que los procesos de actualización del sistema pueden ser vulnerados a partir de diferentes vectores de ataque.
Entre que se descarga y ejecuta una actualización, se puede hacer que el sistema verifique un ejecutable como legítimo para luego sustituirlo
En el tiempo entre que se descarga y se ejecuta una actualización, si el proceso no está asegurado, se puede hacer que el sistema verifique un ejecutable como legítimo para luego sustituirlo. Sucede que un binario se descarga y ejecuta como administrador, es decir, con todos los privilegios de sistema, pero Talmat demostró que se puede hacer ejecutar uno modificado.
Según el orador, es posible atacar binarios y archivos de actualización o de configuración, entre otros. Lo preocupante en este caso es que se ponga en peligro el proceso de actualización, una operación crítica para mantener el software al día y protegido con parches de seguridad que solucionen vulnerabilidades.
Un posible escenario de ataque consiste en copiar archivos a una carpeta con permisos de modificación, modificar los binarios y luego ejecutarlos desde ahí. Se buscan operaciones de archivos, archivos descargados, sus privilegios de archivos y carpetas, archivos y carpetas temporarios.
Los posibles vectores de ataque serían:
- IPC insegura
La comunicación entre procesos (IPC, del inglés Inter-Process Communication) es una función básica de los sistemas operativos, un mecanismo que permite a los procesos comunicarse y sincronizarse entre sí, normalmente a través de un sistema de bajo nivel de paso de mensajes que ofrece la red subyacente.
Sockets, tuberías anónimas y con nombre o mailslots son algunas de las implementaciones de IPC, y si su diseño presenta fallas, la comunicación podría alterarse.
- Rutas de archivos relativas en archivos de configuración, que puedan llevar al ejecutable a realizar cosas que no estaba preparado o hecho para hacer.
- Firmas digitales: creación de certificados o abuso de certificados legítimos.
- Explotación de comunicaciones inseguras: ataques Man-In-The-Middle, o engañar al sistema realizando ataques DNS.
- Desempaquetar archivos comprimidos y modificarlos, aprovechando la ventana de tiempo que existe entre el momento en que se verifica la firma y aquel en que se desempaqueta el archivo.
De esta forma, Sofiane Talmat describió diferentes posibilidades de ataque y cómo estas podrían llevar a una total subversión del sistema.
En febrero de este año, Talmat había descubierto, junto a su colega Michael Milvich, vulnerabilidades de elevación de privilegios de “alta severidad” en el servicio de actualización de sistema de Lenovo. Allí, los usuarios pueden descargar los últimos drivers y actualizaciones, y los investigadores encontraron que era vulnerable a ataques Man-In-The-Middle, mediante los cuales los atacantes podían interceptar las descargas.
La vulnerabilidad CVE-2015-2233 permitía a atacantes tanto locales como remotos evadir las validaciones de firma de los dispositivos y reemplazar aplicaciones legítimas de Lenovo con otras maliciosas. En tanto, CVE-2015-2219 era una falla en el sistema de tokens de seguridad, que permitía el acceso de usuarios sin privilegios a las computadoras Lenovo como "system user", para que ejecutaran sus propios comandos y programas maliciosos. Por último, CVE-2015-2234 permitía a usuarios locales sin privilegios ejecutar comandos como usuario administrador.
En mayo, Lenovo emitió los parches y actualizaciones correspondientes, por lo que este caso sirve como ejemplo y para medir el potencial impacto de un sistema de actualización con fallas de seguridad.