lunes, 24 de agosto de 2026

Llueve sobre mojado...


La NSA vuelve a decir lo que llevamos mas de 10 años diciendo en Titanium...

Esta mañana al leer el advisory conjunto de NSA, CISA, FBI, Departamento de Energía y EPA sobre la amenaza activa contra PLCs Siemens S7 lo hemos pensado: Llueve sobre mojado. Cinco agencias. Cinco. Firmando un documento cuyo mensaje central, resumido sin piedad, es: amigo, no pongas el PLC (ni cualquier otra cosa que no sea necesaria) en Internet.

Vamos con los hechos, que son maravillosamente aburridos. Los atacantes están buscando PLCs Siemens expuestos —S7-200, 300, 400, 1200 y 1500, incluidos los F de seguridad funcional, que es donde uno empieza a ponerse serio— usando servicios de escaneo público como Censys o ZoomEye. Es decir: no hay un 0-day fabuloso, no hay un implante de nación-estado con nombre de constelación. Hay un buscador, un puerto 102 abierto al mundo y, en demasiados casos, autenticación por defecto o directamente inexistente.

Después entran, leen bloques de datos, entienden el proceso y se quedan ahí. El advisory lo dice con una honestidad que se agradece: esto no parece un ataque, parece preparación de un ataque. Reconocimiento persistente, prueba de capacidades y pre-posicionamiento para el día que a alguien le interese escribir en lugar de leer.

Traducido a román paladino: alguien está tomando notas de tus sistemas de planta con calma y sin prisa.

La parte que ha ocupado los titulares es la de la IA. Los actores están usando asistentes de IA para generar scripts de explotación apoyados en snap7/python-snap7, una librería abierta de toda la vida, y disfrazarlos de herramientas legítimas de monitorización OT. La NSA lo describe como una evolución de las capacidades del adversario porque reduce drásticamente el conocimiento técnico y el tiempo necesarios para tener algo que funcione.

Y es verdad. Pero conviene ponerlo en su sitio, porque hay mucho vendedor de humo afilando el PowerPoint estos días.

La IA no ha abierto el puerto 102. La IA no ha dejado la contraseña en blanco. La IA no ha decidido que el histórico se conectase directamente contra la red de proceso porque "es que si no, no va". La IA solo ha bajado el peaje de entrada al club de los que saben hablar S7comm. Ese club, hasta hace poco, exigía leerse manuales de Siemens (bastante áridos) y pelearse con capturas de tráfico un fin de semana entero. Ahora exige una noche, un buen prompt y si te pones tonto un gintonic.

Lo que la IA ha hecho es eliminar el último argumento de la seguridad por oscuridad. Ese en el que tanto se apoyó el mundo industrial durante dos décadas: "sí, está expuesto, pero ¿quién va a saber programar un S7-300?". Pues mira, ahora cualquiera. La oscuridad se ha acabado. El resto del problema es exactamente el mismo problema de siempre.

Entre todas las recomendaciones —inventario, parcheo, segmentación, control de accesos, monitorización con herramientas ICS-aware, hardening específico de S7— hay un párrafo que a mí me parece el más importante del documento y que ha pasado sin pena ni gloria.

Dice, más o menos, que estas medidas son especialmente relevantes para quienes trabajan con integradores o proveedores de servicio con acceso remoto a los PLCs, porque el propietario del activo puede no ser consciente de que sus sistemas están expuestos y en riesgo.

Porque la conversación real que tenemos en las plantas no es "no queremos protegernos". Casi nunca lo es. La conversación real es un responsable de mantenimiento diciéndote con toda la buena fe del mundo que su red está aislada, y tú encontrando cuarenta minutos después un router 4G que puso el integrador en 2019 para no tener que venir desde Zaragoza cada vez que fallaba una receta. Nadie mintió. Simplemente nadie lo sabía.

Y de ahí se deduce lo único que de verdad importa de todo este advisory: no puedes proteger lo que no sabes que tienes, y no sabes que lo tienes porque nunca lo has inventariado. No es casualidad que la primera de las siete acciones de mitigación sea, literalmente, hacer inventario. Ni que la primera de las "top mitigations" del resumen ejecutivo sea la misma. Antes que parchear. Antes que segmentar. INVENTARIAR.

Llevamos años diciéndolo. Ahora lo firman cinco agencias federales. A ver si así....

Entonces, ¿qué hago el lunes?

Sin misticismos, y en este orden:

>Sal a buscar tus S7. Todos. Los del proyecto y los que no están en ningún plano. Firmware contra copia de referencia, y mapea qué estaciones tienen TIA Portal o STEP 7.

>Mira quién entra desde fuera. Cada acceso remoto de cada integrador, cada VPN abierta "temporalmente" en 2021, cada router de operadora bajo un armario. Este es el punto donde aparecen las sorpresas de verdad.

>Cierra el 102 en el perímetro. No hay ningún motivo legítimo para que S7comm hable con Internet. Ninguno.

>Pon contraseña a los autómatas y configura los niveles de protección. Sí, ya sé que da pereza. Hazlo igual.

>Empieza a mirar el tráfico. Aunque sea con poco. Una sesión S7comm un domingo a las tres de la mañana desde una IP que no es de nadie conocido no debería ser un descubrimiento arqueológico seis meses después.

>Manda el advisory a tus integradores y pídeles por escrito qué han implementado. El propio documento te lo recomienda; úsalo como palanca.

Nada de esto es nuevo. Nada de esto es sexy.

Pero es que ese es exactamente el problema: llevamos mucho tiempo avisando (evangelizando?) de cosas aburridas, y el adversario acaba de conseguir una herramienta que le permite explotarlas más rápido que nunca.

Llueve sobre mojado, sí. Pero el agua sigue entrando por el mismo agujero del tejado que señalamos la primera vez. Y ahora, además, hay más gente sabiendo dónde está el agujero.

Si queréis leer el advisory original:

Defending Against an Active Threat to Siemens S7 Series PLCs

PDF Advisory

martes, 15 de junio de 2021

Vulnerabilidad zero day en Primion-Digitek EVALOS Secure 8

 

Durante un ejercicio de hacking ético industrial a uno de nuestros clientes, detectamos una vulnerabilidad zero day crítica en una aplicación de control de accesos y personal de planta. En este caso se trata de la aplicación Evalos8 (Primion-Digitek), en concreto en la versión v1.0.1.55 del módulo Secure8. No hemos podido acceder a otras versiones anteriores de este producto para verificar si se reproduce la vulnerabilidad, por lo que estas podrían verse igualmente afectadas.

Primion-Digitek se especializa en implantación de controles de acceso, fichaje, control de personal, etc. Tienen implantados sus sistemas tanto en infraestructuras críticas, como pueden ser aeropuertos, industrias eléctricas, hospitales, así como en edificios de administración pública, entre otros.

En este caso, hemos descubierto una vulnerabilidad de tipo Blind SQL Injection en el módulo de autenticación contra el gestor administrativo de la aplicación. Mediante esta vulnerabilidad, es posible la extracción de usuarios y hashes SHA-1 de las contraseñas. A la vez, sería posible la extracción de cualquier otro dato almacenado en la base de datos.

A esta vulnerabilidad de Blind SQL Injection se le ha asignado el código CVE-2021-3604

Todo comenzó cuando empezamos a evaluar posibles vectores de ataque que bien nos permitieran realizar un bypass de la autenticación (SQL Injection), nos ofrecieran un resultado booleano diferente dependiendo del payload introducido (Blind SQL Injection), u ofreciesen un retraso de tiempo dependiendo del payload introducido (Time Based SQL Injection).

En este caso, conseguimos resultados diferentes con los siguientes payloads, indicando que el parámetro introducido estaba siendo inyectado y ejecutado en una consulta SQL:

·         admin‘ or ‘a’=’a

·         admin’ or ‘a’=’b

 




 

Una vez que verificamos la posibilidad de evaluar consultas booleanas, es posible la obtención de datos mediante la evaluación de una consulta de tipo ‘prueba y error’:

·         ‘ or (<campo> LIKE ‘xxx%’)#

Dado que los campos son desconocidos, podemos extraer la información que necesitamos consultando la información contenida en las tablas INFORMATION_SCHEMA.TABLES y INFORMATION_SCHEMA.COLUMNS de SQLServer. De esta manera se han conseguido los nombres de columna ‘usuario’ y ‘ClaveAcceso’ de la tabla de usuarios referenciada en la consulta de autenticación.

Una vez tenemos estos datos en nuestro poder, es posible la extracción de la información de usuarios. Para ello desarrollamos un exploit que comprueba todos los caracteres del diccionario hasta obtener un usuario válido.

A continuación, se repite este proceso, pero con la columna ‘ClaveAcceso’.

Los datos obtenidos como password son una serie numérica de 120 dígitos de longitud, y la frecuencia de los números 0, 1 y 2 es mayor al resto. De aquí podemos deducir que puede tratarse de una serie de números menores de 255, y concatenados en grupos de tres. Tras comprobar que, tomando los números en tríos de dígitos, ninguno es mayor a 255, probamos a pasarlos a hexadecimal, obtenido un posible hash de 40 caracteres. Inmediatamente, nos viene a la cabeza el tipo de hash SHA-1, el cual tiene una longitud de 40 caracteres.

Finalmente probamos a crackear el hash, obteniendo la contraseña en claro en menos de 1 segundo, ya que tenía una longitud de 1 carácter.

A partir de aquí, es trivial la construcción de un exploit válido que extraiga todos los usuarios y hashes del sistema.

Una vez dentro del sistema, es posible la edición los permisos acceso, pudiendo generar nuevos usuarios, revocar la entrada a otros, control de zonas críticas de la planta, etc. De esta manera, la seguridad física de una infraestructura crítica quedaría comprometida por completo, permitiendo el acceso a la infraestructura y a las zonas más críticas a cualquier usuario que tomase el control de esta aplicación.



Podemos obtener dos conclusiones importantes de este caso:

La primera es que es muy importante no conformarse únicamente en el análisis de vulnerabilidades conocidas durante una fase de pentest, ni con el uso de herramientas automáticas. Existen componentes que, al no ser usados de una manera más extendida, pueden tener vulnerabilidades fácilmente explotables, ya que, por desgracia, muchos desarrollos no han contemplado un desarrollo seguro de la aplicación.

La otra es que, desde una simple vulnerabilidad en un componente de software, se puede poner en grave riesgo una infraestructura crítica al completo, comprometiendo la seguridad física de la misma, por lo que es fundamental identificar estos componentes críticos en las aplicaciones a desplegar en dichas infraestructuras e, idealmente, evaluar su seguridad antes de su despliegue, con empresas como Titanium Industrial Security, que disponen de los medios humanos y materiales para hacer esto.

Enlace a la publicación de INCIBE:

https://www.incibe-cert.es/alerta-temprana/avisos-sci/vulnerabilidad-inyeccion-sql-primion-digitek-secure-8

Para finalizar, agradecer a INCIBE por la ayuda prestada en la notificación y gestión de la vulnerabilidad y felicitarlos por su reciente nombramiento como Root CNA.

miércoles, 18 de noviembre de 2020

Full Stack Developers para León


 

 

 

 

 

 

 

Estamos buscando 5 Full Stack Developers para nuestro centro de desarrollo de software que acabamos de inaugurar en León.
Si eres un apasionado de la tecnología, tienes dominio y experiencia y quieres formar parte de un proyecto de largo recorrido y referencia en su sector, no esperes más y apúntate!

 

https://www.infojobs.net/leon/full-stack-developers/of-i8d45e0facf412f98f93d0c6ad2a579

 

lunes, 16 de noviembre de 2020

DSTREAMS- INVESTIGACIÓN Y DESARROLLO DE METODOLOGÍA EN LA INTELIGENCIA ARTIFICIAL (ML) ORIENTADO A CASOS INDUSTRIALES DE USO DE DATOS CONTÍNUOS DE ULTRA-ALTA VELOCIDAD





INVESTIGACIÓN Y DESARROLLO DE METODOLOGÍA EN LA INTELIGENCIA ARTIFICIAL (ML) ORIENTADO A CASOS INDUSTRIALES DE USO DE DATOS CONTÍNUOS DE ULTRA-ALTA VELOCIDAD

 

  • Organismo Público de Financiación: Ministerio de Ciencia e Innovación y la Agencia Estatal de Investigación
  • Programa: Retos RTC2019-0006871-1
  • Beneficiarios: Aingura IIoT, S.L. (líder), Titanium Industrial Security, S.L., Universidad Politécnica de Madrid, Universidad de la Iglesia de Deusto, Barcelona Supercomputing Center.
  • Presupuesto total: 2.864.671,20€

 

jueves, 29 de octubre de 2020

Invitación evento Fireeye: Cyber Defense Live 2020

 

 Os invitamos al evento anual en EMEA el 3 de Noviembre y en España el 11 de Noviembre, con interesantes presentaciones y nuestra participación en el booth virtual.

 

Si quereis asistir, registraros en el siguiente enlace: https://www.fireeye.com/company/events/cyber-defence-live-emea/spain.html

Os esperamos