La odisea de (intentar) hacer las cosas bien…

Hace unos días, Antonio Sanz comentaba en su post “He descubierto una vulnerabilidad: ¿Y ahora qué?” las distintas opciones que existen cuando se encuentra una vulnerabilidad de seguridad.

En este post, pretendo contar mi experiencia acerca de un responsible-disclosure que llevo coordinando desde octubre de 2013. Para situar al lector en contexto, decir que en dicho mes encontré un par de fallos de seguridad en un dispositivo HMI (Human-Machine-Interface) perteneciente a un sistema de control industrial. Explotando las dos vulnerabilidades de manera simultánea, la situación se puede volver algo “peliaguda” para el operador del sistema, lo que no es ningún tipo de consuelo si tenemos en cuenta la finalidad de los sistemas que son vulnerables.

Nada más encontrar la vulnerabilidad, realicé una pequeña búsqueda de buzones de contacto de la empresa, para ponerme a hablar directamente con ellos y agilizar el trámite. A día de hoy, todavía espero respuesta.

La segunda opción fue contactar con el ICS-CERT, la organización encargada de lidiar con este tipo de problemas en cuanto a sistemas industriales se refiere. Amablemente, al día siguiente nos comunicaron que se iban a poner en contacto con el fabricante para poder solucionar el problema.

Sin embargo, no es oro todo lo que reluce, y tras varios intentos infructuosos de contactar con el fabricante, ICS-CERT decidió gestionar el incidente con otro CERT, ya que sería más fácil para este último ponerse en contacto con la empresa en cuestión. Tras verificar qué versiones del dispositivo son vulnerables, miramos el reloj y nos damos cuenta de que ya estamos en Navidades, con lo que entre vacaciones y fiestas, retomamos las conversaciones un 8 de enero de 2014, cuando nos dicen que van a preguntar al otro CERT para ver el estado de la vulnerabilidad.

La siguiente noticia que tenemos es un 13 de febrero, cuando nos confirman que el fabricante ha verificado la existencia de la vulnerabilidad y nos comunican que van a investigar si ésta afecta a más equipos, mientras trabajan para solucionarla; contactamos con otro CERT, gubernamental, para ver si a ellos les hacen más caso, pero parece que no… Nosotros, por nuestra parte seguimos insistiendo para conocer el estado del incidente, hasta que un 29 de abril nos confirman que el estado sigue siendo el mismo que en febrero.

Más tarde, en mayo nos informan de que el fabricante ha hecho públicas las vulnerabilidades, y que ICS-CERT va a crear un advisory (toma ya, nosotros callados y estos van y…). Ya en junio, el mismo ICS-CERT nos comunica que las vulnerabilidades sólo afectan a los productos vendidos internacionalmente (si yo fuera desconfiado, sospecharía…), y que el fabricante no notificará a sus clientes nacionales, pero sí a los extranjeros; la fecha estimada para ello es mitad de junio o principios de julio (por suerte para ellos, en el correo no dicen si será este julio, o el de dentro de diez años, cuando el producto ya esté obsoleto, y por tanto, nadie lo tenga).

En resumen, llevamos desde octubre de 2013 y hemos llegado a julio de 2014 y la vulnerabilidad es conocida desde hace nueve meses por parte del fabricante. Sin embargo, el cliente final, quien es realmente vulnerable, no lo sabe. Por estos motivos, hemos decidido hacer pública la vulnerabilidad en los próximos días. Seguid conectados. Para animar la espera, podéis comentar vuestras experiencias al reportar vulnerabilidades en los comentarios de esta entrada.

PD Nada que reprochar ni al ICS-CERT ni a ningún otro de los CERT que han intentado, junto a nosotros, hacer las cosas bien… creemos que el principal, y único, problema, lo ha aportado el fabricante…

Tercer informe sobre Protección de II.CC. de S2 Grupo. La información está ahí fuera

Continuando con la línea de trabajo iniciada con los dos anteriores informes sobre protección de infraestructuras críticas S2 Grupo acaba de publicar la tercera entrega. En esta ocasión nos hemos fijado en un problema creciente del que no se habla demasiado: la disponibilidad de información detallada sobre nuestras II.CC. libremente accesible a través de internet, especialmente en lo referente a sus instalaciones, procesos, sistemas de control, procedimientos de operación y, por último, organización y gestión de la seguridad.

En SAW ya hemos hablado de este asunto en alguna ocasión (véase, por ejemplo, esta entrada en el blog). Sin embargo, la gravedad de la cuestión merece una aproximación más sistemática que nos permita hacernos una idea clara de la magnitud del problema. Así, al iniciar la investigación que ha dado lugar al informe nos planteamos responder a las siguientes preguntas:

  • Descubrir qué tipo de información está disponible en internet acerca de nuestras II.CC.
  • Determinar el origen de la información.
  • Estimar el grado de riesgo que puede suponer el uso de la información hallada por parte de un atacante.
  • Establecer si existe alguna diferencia entre los distintos subsectores en que se divide el conjunto de II.CC.
  • Analizar los resultados obtenidos para dibujar un cuadro general que nos permita avanzar conclusiones al respecto.

El foco de la investigación se puso en aquellos sectores considerados críticos según la Ley 8/2011 en los que se hace un uso extendido de sistemas de control industrial. De esta forma nos hemos quedado con:

  • Sector sanitario.
  • Energía.
  • Trasporte.
  • Industria química.
  • Industria nuclear.
  • Abastecimiento de agua.
  • Alimentación.
  • Administración.
  • Sector aeroespacial.

El trabajo ha consistido en la búsqueda en internet de información relativa a sistemas de control, procesos, seguridad física y lógica, equipamiento y maquinaria, etc. de una organización destacada de cada uno de los sectores. Las búsquedas se han realizado entre los meses de noviembre de 2013 y febrero de 2014.
Una vez obtenida la información, esta se ha caracterizado y clasificado para determinar:

  • El tipo de información.
  • El contexto en el que está contenida.
  • El origen.
  • La consideración subjetiva del impacto que podría suponer el uso de esta información. Se han establecido tres niveles: bajo, medio y alto.

Es importante subrayar que la idea detrás de esta investigación no es realizar una campaña exhaustiva de localización de información, algo que, por otra parte, es casi imposible, sino obtener una visión cualitativa de la magnitud del problema, sus causas y posibles soluciones.

Los resultados de la investigación

Se ha localizado información de prácticamente todos los sectores analizados con alguna excepción notable, como el caso del aeroespacial. Los principales canales por los que se difunde son:

  • Proyectos de fin de carrera y tesis doctorales
  • Pliegos de contratación de las Administraciones públicas
  • Casos de éxito de proveedores
  • Publicaciones técnicas especializadas en cada sector
  • Artículos técnicos

Nuestra investigación pone de manifiesto que la información es elaborada y publicada por todos los actores participantes en la vida de una II.CC. El papel de terceros tales como empresas constructoras o contratistas de mantenimiento es poco sorprendente. Sí lo es, en cambio, el hecho de las propias AA.PP. o empresas operadoras de II.CC. ofrezcan tanta información y con tanto detalle acerca de sus propias instalaciones. Una mención específica merecen ciertas universidades que se constituyen en auténticos repositorios online de información técnica muy específica.

En ocasiones los propios empleados ofrecen información fuera de la actividad diaria de la compañía; es el caso de los artículos técnicos publicados con el conocimiento (o no) de sus organizaciones. Hemos localizado, por ejemplo presentaciones elaboradas por personal de una I.C. para su empleo durante un curso de formación. El material describe exhaustivamente componentes y sistemas de la I.C. ofreciendo, incluso, detalles de la operación, gestión, etc., todo ello con abundante material gráfico.

Adicionalmente hemos querido cuantificar los resultados obtenidos. Para ello hemos realizado un análisis en que:

  • A cada sector se le ha asignado un valor de probabilidad entre 1 y 3, que cuantifica la facilidad de localizar información.
  • Además, se ha valorado, nuevamente de 1 a 3, el impacto posible de la información localizada.

El producto de ambas variables constituye el riesgo calculado para cada sector. Este valor se ha ponderado considerando el tamaño relativo de cada sector medido como el número de empleados. La razón para esto es que en lo relativo a la disponibilidad de información, el factor definitivo detrás del problema son las personas: esto es, la solución pasa por modificar la forma en que las personas gestionan la información dentro de cada organización. De esta forma, es más fácil que se filtren documentos sensibles cuanto mayor sea el número de personas que intervengan en su custodia, clasificación o difusión.

Los resultados se muestran en la siguiente gráfica:

Del análisis del gráfico extraemos las siguientes conclusiones:

  • Los sectores con un menor número de empleados, como el aeroespacial o la industria nuclear, no suponen un grave problema a pesar de las ideas a priori acerca del impacto de un ataque sobre estas infraestructuras. Un tamaño pequeño del sector significa que una situación de riesgo (en cuanto a la gestión de la información) es abordable de forma manejable, dado el reducido número de personas implicado (lo que facilita la labor de cambiar procedimientos, establecer políticas, avanzar en la concienciación, etc.)
  • Los sectores de agua, industria química y alimentación se encuentran en la zona alta tanto en cuanto a riesgo como a magnitud del problema, entre otras cosas a causa del elevado número de personas que trabajan en estas organizaciones.
  • Algo similar ocurre con el transporte, que si bien no posee un valor de riesgo alto sí se encuentra en una situación difícil debido a su tamaño.
  • Se evidencia el grave problema que supone la gestión actual de la información en la Administración Pública y organizaciones afines. En el origen están los requerimientos de publicidad exigidos en los procedimientos de contratación.

Conclusiones

El estudio realizado, si bien limitado por necesidad, pone de manifiesto un problema al que generalmente se concede poca o nula consideración cuando se habla de la ciberseguridad de sistemas de control industrial y su relación con la protección de infraestructuras críticas: la absoluta inconsciencia con la que se maneja y hace pública información sensible de gran interés para posibles atacantes. Ello es especialmente grave en un contexto en el que el diseño de una APT tiene como un elemento esencial el conocimiento profundo de la organización objetivo, tanto para diseñar el malware como los mecanismos de infección (por ejemplo, la planificación de un ataque de ingeniería social).

El tipo de información y los mecanismos de publicación son diversos, pero hay uno que destaca sobre todos los demás: las licitaciones de concursos públicos.

El segundo mecanismo que se encuentra detrás de la proliferación de información sensible es la necesidad, a medias científica y a medias comercial, de mostrar las propias habilidades, de forma que se publicitan las propias referencias con todo tipo de detalles. Cuando se mira desde el punto de vista de la ciberseguridad, no deja de resultar chocante la cantidad de información detallada que se ofrece al público general, en ocasiones ante el desconocimiento del promotor o titular y en otros casos con la aquiescencia cuando no la propia participación del mismo.

Independientemente de que la seguridad por oscuridad no es una opción válida, no debe olvidarse que, del mismo modo que el primer paso en un ataque es la recopilación de información, el primer paso de una estrategia de defensa debe ser el control de la misma.

Líneas de acción propuestas

¿Qué puede hacerse para afrontar este problema? Las líneas de trabajo básicas propuestas en el informe son las siguientes:

  • Analizar la legislación en lo relativo a contratación pública para compatibilizar las exigencias de publicidad y libre concurrencia con la necesidad de salvaguardar cierta información.
  • Realizar sesiones de concienciación en las organizaciones mostrando el riesgo que supone el uso de cierta información por parte de agentes malintencionados.
  • Establecer políticas de clasificación de la información en todos los ámbitos.

Para terminar

La investigación realizada pone de manifiesto el grave problema existente con la proliferación de información descontrolada en internet en relación con nuestras II.CC. El principal problema, de hecho, es la absoluta falta de conciencia acerca de las posibles consecuencias con la que se maneja esa información. Como siempre, las personas son parte fundamental en la cadena de la seguridad y, en este ámbito, queda mucho trabajo por hacer.

El informe completo está disponible para su consulta en este enlace.

Referencias
[1]Ley 8/2011. Boletín Oficial del Estado, núm. 102, sec. I, pág. 43370. Abril de 2011.
[2] Resolución de 15 de noviembre de 2011 de la Secretaría de Estado de Seguridad. Boletín Oficial del Estado, núm. 282, sec. III, pág. 124147. Noviembre de 2011.
[3] Ley 30/2007 de 30 de octubre de Contratos del Sector Público
[4] 1er Informe sobre la protección de infraestructuras críticas en España. 2011. S2 Grupo.
[5] 2º informe sobre la protección de infraestructuras críticas en España. 2012. S2 Grupo.

He descubierto una vulnerabilidad: ¿Y ahora qué?

Imaginemos que Pepe es una persona con conocimientos de seguridad informática que, por simple curiosidad, se dedica a investigar en busca de posibles fallos de seguridad.

Una noche, a las 3.00AM, descubre un fallo de seguridad grave en un SO para móviles que permite al atacante hacerse con el control total del teléfono. Pepe sabe perfectamente que tiene en sus manos una vulnerabilidad gravísima, para la que hasta donde él sabe no hay solución posible, lo que se denomina un 0-day [1].

Nervioso, Pepe piensa en lo que podría hacer, y multitud de posibilidades saltan a su mente.

Podría simplemente publicarlo en su blog de seguridad bajo lo que se denomina full disclosure (revelación completa) [2], y directamente dar acceso a todo el mundo a la información para que se pudiera fabricar una solución. Esto le aseguraría ser el primero en publicarla, y ganar reconocimiento como investigador (en un mundillo en el que la reputación cuenta, y mucho).

Pero al dar la información al mismo tiempo tanto a fabricantes como a los posibles intrusos, Pepe provocaría una carrera en la que seguramente los usuarios serían los damnificados (el proceso de parchear una vulnerabilidad conlleva un proceso de control de cambios, que es por fuerza mucho más lento que el desarrollo de un exploit que solo necesita aprovecharse de la misma).

Otra opción sería ponerse en contacto con el fabricante del SO e informarle del fallo de seguridad bajo lo que se llama responsibledisclosure (revelación responsable) [3], dándole tiempo para que pueda preparar el parche que la resuelva antes de su publicación. De esta forma Pepe seguiría llevándose el mérito, pero no pondría en peligro a los usuarios al disponer de la solución al mismo tiempo de su publicación.

Puede suceder que el fabricante ignore a Pepe (ya sea por falta de canales de comunicación eficaces, o por política de la empresa). En este caso Pepe podría acudir a un CERT como el del INTECO [4], que se encargaría de contactar con la empresa (y así le daría una cierta cobertura a Pepe en el caso de tener luego problemas)… o pasar a la opción anterior y revelar directamente la información en Internet.

En el caso en el que Pepe estuviera más interesado en una ganancia económica más que de prestigio (que la fama no paga la conexión a Internet), tendría también varias opciones.

Lo primero que podría hacer Pepe es comprobar si el fabricante ofrece algún tipo de programa de bug bounty (caza de fallos) [5], en los que el fabricante ofrece recompensas por encontrar fallos de seguridad que pueden ir desde camisetas exclusivas hasta dinero contante y sonante. Esta opción es interesante porque en casi todos los programas hay un “Hall of fame”, que permitiría a Pepe a su vez ganar reconocimiento por haber encontrado el fallo.

El problema de esta opción es que casi siempre los fabricantes pagan poco. Muy poco. Si Pepe lo que quiere realmente es el dinero (y su ética personal es lo suficientemente laxa), tiene otras alternativas mucho más ventajosas.

Pepe podría llevar su fallo de seguridad a sitios como ZDI (Zero Day Initiative) [6], que ofrecen recompensas por fallos de seguridad bajo el modelo de responsibledisclosure. Estas empresas luego ofrecen servicios de alerta temprana (Pepe sabe que pocas empresas dan algo gratis), pero al final la vulnerabilidad se soluciona, y Pepe tiene más dinero en el bolsillo (y sobre todo, estas iniciativas son una buena opción en caso de que el fabricante no tenga un bug bounty en activo).

Pero donde está el dinero de verdad es en la venta privada: Pepe podría vender su 0-day a empresas especializadas en la compra de vulnerabilidades, pero que en lugar de publicar la información la guardan y crean exploits que pueden vender de forma privada. Algunas de estas empresas como Vupen [7] tienen una política estricta de ventas (en principio solo a países “buenos”), aunque no se sabe dónde pueden acabar ni para qué pueden ser usados. Por tener tienen hasta listas de precios [8].

El tema es que el precio es bueno. Muy bueno. Se rumorea que se ha llegado a pagar hasta 250K$ por un 0-day muy similar al suyo, que puede ser fácilmente diez veces más de lo que el fabricante o iniciativas como ZDI podrían pagar. Eso sí, Pepe no puede decirle nunca a nadie lo que ha hecho, por la cuenta que le trae (es lo que tiene trabajar con empresas que trabajan con gobiernos que tienen agencias de tres letras).

Podría ser que Pepe no estuviera interesado en ser “fichado” por estas empresas (nunca se sabe las vueltas que da la vida). En ese caso podría acudir a algún bróker de vulnerabilidades [9], que por una módica comisión se encargaría de hacer de intermediario con las empresas pertinentes y le ayudaría a mantener su preciado anonimato.

Pero estos bróker no crecen debajo de las piedras (y no son especialmente accesibles). Y Pepe quiere el dinero. La última opción que le queda es venderlo en el mercado negro [10], en el que hay multitud de lugares en los que venderlo. Y en algunos de ellos le pueden pagar en preciosas e irrastreables BitCoins. Y si Pepe tiene muy pocos escrúpulos, no creo que tenga muchos problemas en venderlo en varios lugares a la vez…

Estas son las opciones que Pepe baraja en su mente a las 3.00AM mientras toma su décimo café del día…

Si pasamos de la ficción a la realidad, el problema existente está bastante claro: Los incentivos económicos son mucho más atractivos que el mero reconocimiento, e incluso los programas que mezclan ambos aspectos se quedan cortos en la parte económica.

Esta oferta viene dada por la existencia de una demanda por parte de algunos gobiernos (principalmente de aquellas partes destinadas a la obtención de inteligencia), que en mi opinión han valorado erróneamente la naturaleza de doble filo de una vulnerabilidad. Si bien el estar en posesión de una vulnerabilidad nos permite poder usarla para atacar otros sistemas, nuestros propios sistemas también siguen siendo vulnerables a dichos ataques.

Y si se realiza una evaluación de la cantidad de sistemas y del valor de la información contenida en los mismos en mi opinión se tiene más que perder guardando que publicando…

Ante esta elección subscribo totalmente la opinión de Bruce Scheneier [11]: Todo el proceso de la investigación sobre vulnerabilidades debería estar enfocado a la mejora de la seguridad de los sistemas, el objetivo inicial para el que fue creado.

Para ello es obligatorio reencauzar el (bastante torcido hoy) proceso, ofreciendo una serie de incentivos tanto monetarios como de reconocimiento que conviertan el hecho de hacer pública una vulnerabilidad sea siempre más atractivo que venderla.

¿Qué nos haría falta?. Una idea sería crear algo similar a BugCrowd, un servicio de creación de bug bounties que gestiona búsquedas de vulnerabilidades, y dotándolo de procedimientos de responsibledisclosure.

Esta organización debería de ser internacional, completamente imparcial y financiada tanto por gobiernos como por las compañías de tecnología. Su principal objetivo: mejorar la seguridad de todos los elementos que componen Internet para todo el mundo, independientemente de qué país o sistema sea empleado. A vista de pájaro, un posible candidato para liderar esta iniciativa podría ser el IAB (Internet Architecture Board) [13], que tiene una distribución de miembros suficientemente variada como para compensar los diversos intereses existentes.

El otro lado de la ecuación reside en los propios investigadores: si nadie vendiera las vulnerabilidades que encontrara, y si el resto de la comunidad repudiara a aquellos que sí que lo hacen, lograríamos de una forma sensible reducir la oferta y/o redirigirla a la iniciativa anterior.

Cierto, el mercado negro aún seguiría actuando (y lo sigue haciendo en la situación actual), y aún tendríamos investigadores que no tendrían problemas éticos o morales en seguir vendiendo sus vulnerabilidades, pero se lograría en cierta medida retomar el control de todo el proceso.

Lo que sí que es cierto es que la situación actual tiene unas perspectivas poco halagüeñas, y es necesario hacer algo al respecto. El cómo (y en este caso muy importante, el cuánto) es algo que tenemos que decidir entre todos.

[1] Zero Day
[2] Full disclosure
[3] Responsibledisclosure
[4] INTECO-CERT
[5] BugCrowd – List of bug bounty programs
[6] Zero day Initiative
[7] Vupen
[8] Lista de precios de vulnerabilidades
[9] The Grugq
[10] Selling exploits for bitcoins in underground market
[11] Scheneier :The Vulnerabilities Market and the Future of Security
[12] BugCrowd
[13] Internet Architecture Board

Vigilancia digital en la coronación de Felipe VI

Hemos estado viendo durante estos últimos días un amplio despliegue de seguridad entorno a la coronación de Felipe VI como nuevo rey de España. Francotiradores, equipos de artificieros/Tedax, Guardia civil y no me extrañaría, GEAS por las alcantarillas de Madrid. Todos ellos ejerciendo su trabajo para garantizar la seguridad de la corona. ¿Pero qué ocurre con el panorama digital? , ¿Qué ocurre en el campo de batalla de los bits?, ¿Por qué es necesario ampliar el espectro de protección al entorno virtual?

En un contexto más directo con el proceso in situ de la proclamación, imaginemos por el momento que algún grupo contrario a la monarquía, pudiera acceder a la red informática del congreso de los diputados y manipular el audio de la sala reproduciendo constantemente el “Himno de Riego”, o por ejemplo controlar a voluntad el alumbrado de la sala mientras el nuevo rey recibe su corona, convirtiendo la sala en una auténtica discoteca de alto standing. O puede ser más simple todavía, realizar una denegación de servicio sobre las infraestructuras de comunicaciones y dejar sin señal de transmisión a los medios que cubran el evento.

Los riesgos directos son múltiples pero no hay que descuidar los indirectos, es decir aquellos que pueden afectar a la imagen de la corona, como por ejemplo la modificación de su famosa página web o incluso los que no son directamente relacionados con la familia real, como pueden ser los servicios digitales de instituciones públicas o fuerzas y cuerpos de seguridad del estado.

Es por eso que durante estos días no solo hay que tener en cuenta la seguridad física del evento sino la digital ya que en muchas ocasiones esta puede sobrepasar el terreno virtual, y sino péguenle un vistazo a este interesante artículo de la revista Wired.

Kippo – Playlog

Al hilo del post donde se empezó a analizar la distribución HoneyDrive me ha parecido curioso mostraros una de las funcionalidades que nos ofrece el primer honeypot que estuvimos viendo: Kippo.

Esta utilidad, ubicada en el directorio /opt/kippo/utils/ es el script en Python playlog.py. Como su propio nombre indica, es un reproductor de logs; en este caso, muestra todo aquello que teclea uno de los atacantes que ha conseguido acceso a nuestro Honeypot. Para ejecutarlo basta con pasarle una de las sesiones de las capturas, ubicadas en el directorio /opt/kippo/log/tty/.

/opt/kippo/utils# ./playlog.py ../log/tty/20140618-131141-6038.log

El resultado es como el que se muestra en el siguiente video:



Como puede verse, se muestra una especie de grabación de lo que el atacante ha hecho al entrar en nuestro honeypot vía SSH, así como los resultados que va obteniendo. Además, incluye también lo que teclea cuando supuestamente se ha cerrado la conexión con nuestro servicio ficticio.

Aparte de esta curiosa utilidad, el honeypot Kippo nos facilita otras como, por ejemplo, createfs.py, que permite generar una estructura de ficheros y directorios a gusto del consumidor. En paralelo a estas herramientas, HoneyDrive nos ofrece unos scripts localizados en /opt/kippo-scripts/ para observar diferentes estadísticas y datos de lo obtenido por el Honeypot.

En el siguiente post mostraremos los resultados obtenidos en el despliegue de Kippo, aunque esperamos que sea en un entorno más amigable que mostrando el contenido de los ficheros. Estén atentos a su canal de emisión y recepción favorito.

Algunos comentarios sobre la LSP

Como ayer adelantábamos, estuvimos compartiendo mesa redonda con Esteban Gándara, uno de los padres de la nueva LSP, y como también comentamos ayer, aprovechamos para preguntarle sobre el papel de la seguridad “informática” en esta nueva Ley o, más concretamente, en el Reglamento de Desarrollo asociado… Dijimos que iba a dar juego para otro post, aquí lo tenéis :)

Personalmente, me impresionaron y mucho dos cosas de Gándara, al que no conocía en persona: la primera, su conocimiento sobre Seguridad Privada; aunque parecerá algo obvio pensando que es el máximo responsable del CNP en la materia, escucharlo hablar y responder a las dudas que todos planteábamos te dejaba con la boca abierta… Y la segunda, al hilo de las explicaciones y respuestas que daba al auditorio, su capacidad para explicar estos temas de forma amena, demostrando algo que a muchos nos parecía hasta ayer imposible: hablar de una Ley, con sus disposiciones, títulos, preámbulos y todo eso, sin hacerse en absoluto pesado ni tirar de términos que sólo los juristas conocen y que nosotros, comunes mortales, jamás entenderemos… Chapeau!!

Dejando de un lado el continente y centrándonos en el contenido, el Comisario Jefe de la UCSP dejó una cosa muy clara: la seguridad informática no es seguridad privada. La nueva Ley abre las puertas a que empresas de seguridad “clásicas” presten servicios de lo que denominan seguridad informática, pero como “nuestra seguridad” no es “seguridad privada” el Reglamento apenas regulará temas que nos conciernen. La LSP, como cualquier legislación, está acotada a un ámbito concreto del que no se va a salir y, en este caso, no se mojará en nuestro sector; sí que ha abierto las puertas a introducirse en él a empresas de seguridad “clásicas” -algo que en teoría no podían hacer, pero que en la práctica podían hacer de mil maneras-, pero poco más…

Además, el dejar fuera a seguridad “informática” había sido algo completamente consciente: por un lado, nuestras actividades no están alineadas con el concepto de Seguridad Privada, como comentaba, y además, el impacto que se podría causar en el sector si de la noche a la mañana se regula en la LSP podría ser de aúpa… Creo que estamos todos de acuerdo en que si esto se hace de la noche a la mañana no sería muy positivo, pero en algún momento habrá que plantearlo, no sé si en la LSP o en otra Ley, planificarlo correctamente y abordar el desbarajuste que tenemos ahora mismo en nuestro sector.

Al hilo de lo anterior, Gándara estaba de acuerdo -o eso me pareció- en que el sector necesita algún tipo de regulación, dada la importancia de la seguridad TIC hoy en día: una Ley de Ciberseguridad o como la quieran llamar en su momento, que sería estupenda pero que NO tiene nada que ver con la LSP ni con Seguridad Privada. Podría ser del Ministerio del Interior, del Ministerio de Defensa, de Presidencia o de cualquier sitio, porque en ciberseguridad muchos trabajamos en varios frentes menos acotados que en Seguridad Privada, pero ya se verá… si se ve.

El Reglamento de Desarrollo que algún día se publicará lo que vendrá a hacer es detallar las directrices de la Ley: básicamente, las empresas de seguridad “informática” podremos -algo completamente voluntario, al contrario de lo que sucede en Seguridad Privada- darnos de alta en un registro del Ministerio del Interior. Aparte de pagar las tasas, este registro obligará a, de una forma u otra, remitir las alertas (no sabemos cuáles, ni cómo, ni dónde…) al MIR de manera periódica y poco más. Si no se remiten no pasará nada: se sanciona a la empresa y punto :)

¿Y qué obtenemos a cambio, si esto es voluntario? Aparentemente un cierto reconocimiento: el sello de la UCSP, del Ministerio o de quien corresponda dando fe de que estamos dados de alta y reconocidos, y por tanto cubrimos nuestras obligaciones al respecto. ¿Esto nos diferenciará de la competencia, por ejemplo comercialmente? No lo sé, pero si todos estamos dados de alta en el registro, tengo mis reservas. En cualquier caso, toca esperar a la publicación del Reglamento de Desarrollo y a partir de ahí resolveremos alguna duda…

Para acabar, y como curiosidad, estuvimos comentando por qué nos llaman “seguridad informática”, a lo que la respuesta fue que es el término más extendido en el sector (frente a seguridad TIC, seguridad lógica, seguridad de la información, ciberseguridad…). En esto no estoy muy de acuerdo, pero bueno: sepamos que para “los de seguridad física” seguiremos siendo “los de seguridad informática” (y dando gracias que no nos llaman otra cosa… eso sí, o nosotros a ellos ;)

La nueva LSP

Esta tarde los compañeros de AVADISE organizan, en la Universidad Politécnica de Valencia, una jornada sobre la Ley de Seguridad Privada (Ley 5/2014, de 4 de abril de 2014): la nueva LSP. Vamos a participar en una mesa redonda junto a representantes del SEPROSE (Guardia Civil) y la UCSP (Cuerpo Nacional de Policía) a la que han invitado a diferentes representantes de la Seguridad Privada, en el sentido más amplio de ésta. Y este amplio sentido incluye, por supuesto, la ciberseguridad, seguridad informática, seguridad de la información… o como ahora le llamemos a “esto”.

La nueva LSP se publicó hace algo más de dos meses y en ella se hace referencia directa a los servicios de seguridad informática (en muchos blogs de seguridad se habló del tema en su momento); el Reglamento de Desarrollo regulará ciertos ámbitos de nuestra actividad, lo cual a priori, al menos bajo mi punto de vista, es muy interesante (otra cosa será lo que el Reglamento depare en su momento, que ya discutiremos).

La anterior LSP data de 1992; 22 añitos han pasado entre una y otra, periodo que desde un punto de vista legal no es nada (ahí tenemos la Ley de Enjuiciamiento Criminal, con alguna revisión pero que data de 1882 -sí, 1882-) pero que, en seguridad, es una eternidad. A principios de los 90 no sabíamos lo que era el phishing, el grooming, el timo nigeriano ni nada de eso -al menos no con esos nombres-; no teníamos media casa conectada a Internet (con suerte un módem que encendíamos por la noche con miedo a la factura telefónica para tirar a una BBS o a algún dialup de estrangis); no teníamos móviles, ni tabletas, ni USB ni nada parecido. Parece claro que las cosas han cambiado bastante, y la legislación tiene que ir adaptándose a ello, a los nuevos delitos -o a los delitos clásicos cometidos con nuevos medios- y, especialmente, a los nuevos roles en el mundo de la seguridad.

Y es que no es de recibo que para vigilar el perímetro físico de una fábrica de cerámica se requiera un determinado perfil y para auditar las tripas de la tecnología sobre la que se basa una central nuclear no se pida nada oficial. No se trata de comenzar de nuevo el flame de si esto lo puede/debe hacer un Ingeniero Informático, un CISA, un CPP, un Director de Seguridad Privada o un tipo de Cuenca que se tiene que llamar Paco. Se trata de que alguien con la suficiente autoridad determine de una u otra forma quién puede hacerlo y bajo qué circunstancias (y con qué responsabilidades, que muchas veces nos gusta olvidarnos de este tema) y a partir de ahí discutiremos.

Sé que el CCN está trabajando ya en un esquema de acreditación de personas para definir roles de trabajo en el ámbito de la seguridad, al margen de certificaciones generalmente estadounidenses que nos pueden gustar más o menos, pero no son “nuestras”. Desconozco los detalles y el estado de esta iniciativa, también interesante (si alguien los sabe, se agradecerán ;), y por supuesto no sé si la LSP tratará de aprovechar este trabajo -no lo sé, pero lo intuyo-. En cualquier caso, tendremos que estar atentos a ambas líneas, porque provienen justamente de dos de los actores que bajo mi punto de vista deben marcar las pautas de ciberseguridad en España, cada uno en su ámbito de actuación, por encima de empresas, asociaciones, grupos de interés y demás (escuchando la opinión de éstos, por supuesto, pero con independencia).

Esperaremos a ver qué nos depara el Reglamento de Desarrollo; aprovechando que esta tarde estará por la jornada Esteban Gándara, Comisario Jefe de la UCSP y uno de los padres de la criatura, pediré pistas sobre el rol de la seguridad informática en ese nuevo Reglamento. Seguro que da para algún post más :)

Cómo sobrevivir a Windows XP y no morir en el intento: Lecciones aprendidas

Fotografía de Antonio SanzPara este miércoles tenemos una entrada de Antonio Sanz, Ingeniero Superior de Telecomunicaciones y Master en ICT por la Universidad de Zaragoza.

Actualmente es el Responsable de Sistemas y Seguridad del I3A (Instituto de Investigación en Ingeniería de Aragón), y trabaja como perito en informática forense. Posee las certificaciones CISA, CISM, CHFI e ITILf, y sus áreas de interés actuales son la respuesta ante incidentes, la informática forense y el cibercrimen. Tuitea como @antoniosanzalc y es un imprescindible en cuestiones de ciberseguridad, cibercrimen y APTs entre otros aspectos, dándole una perspectiva geopolítica sumamente interesante.

El fin de vida de Windows XP ha traído, está trayendo (y traerá) muchos quebraderos de cabeza tanto a administradores de sistemas como a los expertos en seguridad. En este artículo se pretende ofrecer soluciones y consejos basados en nuestra experiencia en el I3A (Instituto de Investigación en Ingeniería) de la Universidad de Zaragoza.

El primer paso a seguir es definir el objetivo del proyecto y los parámetros de partida. El objetivo principal no debería ser reemplazar Windows XP por otro sistema operativo, sino apoyar los procesos de negocio (en nuestro caso la investigación realizada por nuestros miembros). Ese apoyo se traduce directamente en este caso en una gestión del riesgo, orientada a controlar y reducir el mismo hasta niveles aceptables.

Como parte de los parámetros iniciales se tiene que el proyecto debería terminar lo antes posible (de forma óptima a principios de Abril, cuando se daba por finalizado el soporte). Por razones obvias de la coyuntura económica actual, el gasto a realizar debería de ser el mínimo posible.

[Read more…]

Ataques Black Hat SEO Cloaking contra sitios Joomla

El “Cloaking” es una técnica de posicionamiento Web (Black Hat SEO) por la que se pretende engañar a los motores de búsqueda y mejorar así la posición de ciertos resultados. Consiste en mostrar un contenido de la Web diferente para el usuario y para el bot que la rastrea con el fin de manipular lo que éste indexa. Para entender mejor este tipo de técnicas os recomiendo la lectura de la saga “Técnicas SEO para gente de moral relajada” en “Un informático en el lado del mal”.

Recientemente hemos identificado un aumento de ataques contra CMS Joomla para explotar posibles vulnerabilidades con motivo de llevar a cabo la técnica de “Cloaking” descrita anteriormente, con el objetivo de favorecer sitios Web de venta de determinadas sustancias “médicas” (las típicas farmacias online). En este caso, en el que hablamos de sitios vulnerados por terceros, el “Cloaking” se complica un poco más.

Un escenario de “Cloaking” que podemos encontrarnos, por ejemplo, es aquel en el que si hacemos una determinada búsqueda en Google sobre una página legítima, aparentemente no vulnerada y ajena totalmente a lo que pudiera ser una farmacia online, nos muestra, que en parte del contenido que tiene cacheado aparezcan términos como “viagra”,”pills”,“drugs”, etc. provocando cierto daño reputacional a dicha página.

Por ejemplo, lanzando un dork como:

site:midominio intext:”viagra”,”pills”,”drugs”

sobre un dominio objetivo, es posible que nos indexen resultados como los siguientes, de páginas que han sido comprometidas para tal fin:

Si visitamos una de estas webs afectadas como un usuario normal, el contenido de la misma es legítimo a ojos del usuario, y no se ve por ninguna parte ningún tipo de contenido relacionado con las palabras mencionadas (viagra, drugs…) que sí aparecen cacheadas tras hacer la búsqueda. Sin embargo, si el sitio se visita con un user-agent de Googlebot, el contenido de esta página cambia y es entonces cuando se muestran enlaces a sitios relacionados con la venta de sustancias ilegales o similares. Un ejemplo real de lo que nos hemos encontrado es el siguiente:

A la izquierda se muestra un fragmento de la Web cuando lo visita un usuario cualquiera, con un user-agent habitual, aparentemente todo normal. A la derecha se muestra el mismo fragmento de la Web cuando lo visita el robot de Google. Como se ve, aparecen ciertas líneas (en verde) con el texto “buying viagra from boots”, “red viagra pills”…etc, y redirigen a sitios como:

hxxp://www. xxxxxxxx. org/search-results-viagra-buy-online/
hxxp://www. xxxxxxxxx. org/buying-viagra-from-boots/
hxxp://xxxxxx.com/red-viagra-pills/
[…]

Bien, los atacantes a través de dicha técnica aprovechan la visibilidad y buena reputación que puedan tener las páginas de las que se aprovechan para posicionar las suyas.

Como se ha comentado al inicio de este post, hemos detectado en las últimas semanas una campaña de explotación de sitios Joomla para llevar a cabo la técnica descrita. La mayoría de los sitios afectados usan versiones vulnerables y muy antiguas de Joomla (rama 1.5) aunque una de las principales vías de entrada que hemos detectado en este caso ha sido a través de versiones vulnerables del componente EXtplorer (com_extplorer). Este componente es explotable a través de diversos tipos de vulnerabilidades pero la que se está usando de forma masiva para este tipo de ataques es la denominada “eXtplorer v2.1 Arbitrary File Upload Vulnerability” descubierta por Brendan Coles a finales de 2012 y para la cual hay exploit público desde enero de 2013. Las versiones de eXtplorer afectadas a este bypass de la autenticación en este caso son la 2.1.2, 2.1.1, 2.10 y 2.1.0RC5.

Hemos encontrado de manera repetida que los atacantes han aprovechado estos Joomla vulnerables para subir un fichero malicioso llamado joomla_rss.php, y modificar el fichero application.php para que referencie a joomla_rss.php (ver imagen siguiente en la que se muestra la línea modificada del fichero application.php que referencia a joomla_rss.php, dentro de la función ‘render()’). Ambos en la carpeta includes.

Debajo podemos ver parte de la función render() en el fichero application.php:

Una línea correcta para este fichero sería:

JResponse::setBody($document→render($caching, $params));

El fichero joomla_rss.php tiene un aspecto similar a este y su funcionalidad es devolver determinadas páginas a ciertas IP o bots, es decir, es el causante de insertar/esconder los spam-links en la página afectada.

Otros ficheros maliciosos no relacionados directamente con esta técnica de “Cloaking” pero que también hemos encontrado de manera repetida en algunos Joomla han sido cpanel_config.php o jindex.php. Ambos presentan un aspecto similar a código siguiente:

Este tipo de shell aprovecha el contenido que se pasa en las cookies de una petición para ejecutarlo, pudiendo ejecutar cualquier tipo de parámetro en el equipo, o subir por ejemplo otros ficheros maliciosos. Una sencilla PoC metiendo un print a continuación evidencia el funcionamiento de la misma:

En definitiva, parece ser que los atacantes ven un filón en los componentes vulnerables de Joomla y continuamente escanean Internet en búsqueda de los mismos. Recientemente desde Spiderlabs alertaban también de otra vía de entrada masiva para comprometer sitios Joomla a través del JCE, que muy probablemente también estén usando para “Cloaking” o cualquier otro tipo de actividad maliciosa.

Para finalizar, recomendar actualizar siempre a las últimas versiones, componentes incluidos y usar solo los componentes, módulos y plugins estrictamente necesarios para los requerimientos de la Web. Recomendable usar también algún tipo de solución IPS/IDS o WAF tipo ModSecurity. La solución no pasa únicamente por eliminar los ficheros maliciosos.

Evitando la identificación de Dionaea

En entradas anteriores ya se ha hablado sobre Dionaea, un honeypot de baja interacción que ofrece una gran variedad de servicios de red. El principal problema al que nos enfrentamos a la hora de desplegar un honeypot es como personalizar los servicios emulados para hacerlos indetectables ante herramientas de escaneado. Cuanto más le cueste a un atacante detectar que se encuentra ante un honeypot, más posibilidades tendremos de analizar su metodología, capturar exploits, binarios, etc.

Vamos a instalar Dionaea y modificar algunos de sus servicios para que no sean identificados por el escáner de red más utilizado, Nmap.

Podemos obtener Dionaea desde la página del proyecto. En la propia página se encuentran los pasos necesarios para su instalación. En nuestro caso hemos utilizado Ubuntu 12.04 como sistema operativo base. Los servicios activos por defecto en la instalación del honeypot son:

Una vez instalado Dionaea, lanzamos un escáner con Nmap para ver qué servicios son identificados y asociados con Dionaea gracias a su capacidad de fingerprinting:

# nmap -v -O -sV -sT -sU 192.168.100.10

En el resumen de la salida del escaneado mostrado a continuación se puede observar como algunos de los servicios los ha identificado y asociado a Dionaea. Uno de los primeros pasos en un test de intrusión es el descubrimiento de los activos de una red y sus servicios, por lo que si un atacante analiza la red con Nmap, detectará la existencia de este honeypot y probablemente cese el ataque y no conseguiremos capturar toda la información que quisiéramos.

Nota: La versión de Nmap utilizada es la 6.00. Otras versiones pueden modificar la capacidad de detección en función de las firmas o huellas que incorpore.

PORT     	STATE         	SERVICE      	VERSION 
21/tcp		open         	 ftp		Dionaea honeypot ftpd 
80/tcp   	open          	http		? 
135/tcp  	open          	msrpc		? 
443/tcp  	open          	ssl/https	? 
445/tcp  	open          	microsoft-ds 	Dionaea honeypot smbd 
1433/tcp	 open          	ms-sql-s     	Dionaea honeypot MS-SQL server 
3306/tcp 	open          	mysql        	MySQL 5.0.54 
5060/tcp 	open          	sip          	(SIP end point; Status: 200 OK)
5061/tcp 	open          	ssl/sip      	(SIP end point; Status: 200 OK) 
69/udp   	open|filtered 	tftp 
5060/udp 	open          	sip          	(SIP end point; Status: 200 OK)

Para personalizar los servicios y que no sean detectados por Nmap, primero hay que saber en qué se basa Nmap para identificarlos. Cuando Nmap intenta descubrir el producto que se encuentra tras un servicio, compara las cadenas de respuesta del servicio con los patrones incluidos en el fichero “nmap-service-probes” (localizado en /usr/share/nmap/). En la URL http://nmap.org/book/vscan-technique.html podemos ver el proceso seguido por Nmap para la detección de servicios. Por tanto, si conseguimos identificar y modificar los servicios de Dionaea en función de estos patrones, podemos conseguir que el servicio no sea identificado como Dionaea, o bien simular cualquier otro producto. Por ejemplo, podemos pasar de un servidor Apache a un IIS o un Tomcat.

Vamos a buscar en el fichero nmap-service-probes el servicio FTP de Dionaea y nos encontraremos con la siguiente línea:

match ftp m|^220 Welcome to the ftp service\r\n| p/Dionaea honeypot ftpd/

Esta línea contiene un mensaje de bienvenida característico de Dionaea, el cual es mostrado a un cliente FTP cuando se conecta al servicio y, además, el producto al que está asociado (Dionaea). Por tanto, tendremos que modificar este mensaje para que Nmap no pueda asociarlo a Dionaea. Hay que editar el fichero /usr/lib/dionaea/python/dionaea/ftp.py para cambiar este mensaje.

Este fichero escrito en Python es la implementación que realiza Dionaea de un servidor FTP. Cada servicio implementado por el honeypot se estructura en módulos, algo que va a facilitar bastante la personalización de estos servicios.

Podemos aprovecharnos de las huellas contenidas en el fichero nmap-service-probes y modificar el mensaje para que represente a un servidor ProFTPD, así que vamos a cambiar el mensaje inicial de Dionaea en ftp.py por uno de ProFTPD:

self.reply(WELCOME_MSG, "Welcome to the ftp service")
self.reply(WELCOME_MSG, "ProFTPD 1.2.8 Server")

El siguiente servicio que vamos a modificar es microsoft-ds (SMB/CIFS). En este caso, si buscamos el patrón correspondiente en nmap-service-probes, se puede ver como busca una coincidencia en la respuesta del servidor durante el establecimiento de la conexión. Esta coincidencia o patrón es:

\x00\x34\0W\0O\0R\0K\0G\0R\0O\0U\0P\0\0\0H\0O\0M\0E\0U\0S\0E\0R\0-\0.\0.\0.\0.\0.\0.

Este se corresponde con los campos que representan el nombre del dominio y del equipo, es decir, si el nombre del dominio es WORKGROUP y el nombre del equipo es HOMEUSER-XXXXXX, donde X es cualquier carácter alfanumérico, entonces el servicio es identificado como un servicio de Dionaea.

Para camuflar el servicio de compartición de ficheros e impresoras de Windows, tan solo hay que modificar los valores de los campos OemDomainName y ServerName en el fichero /usr/lib/dionaea/python/dionaea/smb/include/smbfields.py. Vamos a cambiar los siguientes valores y conseguiremos evitar que sea identificado:

OemDomainName: WORKGROUP → MIDOMINIO
ServerName: HOMEUSER-3AF6FE → EQUIPO-TEST	 

El tercer servicio identificado es el sistema de base de datos Microsoft SQL Server en el puerto 1433. Si buscamos este servicio en el fichero de patrones de Nmap, se puede ver una cadena en hexadecimal:

match ms-sql-s m|^\x04\x01\x00\x2b\x00\x00\x00\x00\x00\x00\x1a\x00\x06\x01\x00\x20\x00
   \x01\x02\x00\x21\x00\x01\x03\x00\x22\x00\x00\x04\x00\x22\x00\x01\xff\x08\x00\x02\x10
   \x00\x00\x02\x00\x00| p/Dionaea honeypot MS-SQL server/ 

Esta cadena se corresponde con la respuesta del honeypot a un paquete TDS (Tabular Data Streams) de pre-login en el proceso de conexión al servicio de base de datos. Si se realiza una captura de paquetes con un sniffer y analizamos las conexiones, podemos ver como esta cadena es la correspondiente al campo Token Type (en codificación hexadecimal) que tiene el valor 0x00.

Si cambiamos el valor 0x00 del campo Token Type, conseguiremos evitar la detección ante un escaneo de Nmap. Este campo se modifica en el fichero /usr/lib/dionaea/python/dionaea/mssql/mssql.py. Vamos a cambiar el valor establecido por 0xAA, que se corresponde con un mensaje de error, aunque podemos poner cualquier otro. Una lista de los valores aceptados para este campo los podemos encontrar en FreeTDS.

r.VersionToken.TokenType = 0x00 → 0xAA

Por ultimo, el servicio HTTPS no es identificado en el escaneo, pero basta con acceder a la URL del servidor web y echar un vistazo al certificado que presenta:

El certificado es emitido por Nephentes Development Team, los creadores del honeypot precursor de Dionaea (Nephentes), además de mostrar la URL del proyecto Dionaea. Así que debemos generar un certificado con algo más de “credibilidad” y sustituir al generado por defecto. Debido a que el certificado es generado en tiempo de compilación, hay que modificar los datos del certificado en el fichero dionaea/src/connection.c antes de compilar el honeypot.

Tras modificar los datos anteriores en los servicios, volvemos a realizar un escaneo de puertos al honeypot:

PORT     	STATE         	SERVICE       VERSION 
21/tcp		open          	ftp		ProFTPD 1.2.8 
80/tcp   	open          	http		? 
135/tcp  	open          	msrpc		? 
443/tcp  	open          	ssl/https	? 
445/tcp  	open          	microsoft-ds	? 
1433/tcp	open          	ms-sql-s	? 
3306/tcp 	open          	mysql         	MySQL 5.0.54 
5060/tcp 	open          	sip           	(SIP end point; Status: 200 OK) 
5061/tcp 	open          	sip-tls		? 
69/udp   	open|filtered	tftp 
5060/udp 	open          	sip           	(SIP end point; Status: 200 OK) 

Como se puede ver, los servicios descritos ya no son identificados como servicios de Dionaea, por lo que hemos conseguido evitar que un escaneo simple de Nmap detecte nuestro honeypot. Si realmente se quiere utilizar el honeypot para detectar ataques no automatizados y engañar a un atacante, entonces habrá que realizar una personalización más detallada de los servicios del honeypot para que generen un entorno mucho más realista y con mayores similitudes al servicio real que se intenta emular.