Archives for noviembre 2013

Seguridad Wi-Fi empresarial – Servidores radius (II)

En el capítulo anterior se hizo un resumen de los tipos de configuraciones que se pueden tener en un servidor radius. Ahora se describe la manera de configurar un servidor con Freeradius.

Como no podría ser de otra manera, no nos hacemos responsables del resultado de llevar a cabo las siguientes acciones y modificaciones, así que se recomienda aplicarlas primero sobre entornos no críticos además de no ejecutar nunca un script de una fuente no confiable o que se ignora lo que hace. ¿Somos una fuente confiable? Sí.

La instalación se puede hacer en cualquier sistema Linux. En este caso se ha escogido Debian wheezy. Para instalar Freeradius, primero se deben obtener algunos paquetes que son necesarios:

apt-get install dpkg-dev fakeroot libpam0g-dev libmysqlclient-dev libgdbm-dev libldap2-dev \
   libsasl2-dev libiodbc2-dev bind9 libkrb5-dev libperl-dev libpcap-dev libreadline-dev \
   libsnmp-dev libpq-dev libtalloc-dev libyubikey-dev libsqlite3-dev

[Read more…]

La seguridad de los datos: Transmisión del conocimiento

Durante algún tiempo me he estado preguntando si dentro de este foro de seguridad cabía un tema como el que voy a exponer ya que aunque está relacionado con la gestión de la información (más bien del conocimiento), está también relacionado con el modo en que la información y los métodos de seguridad y control de la misma son aplicados o ignorados en la pequeñas y medianas empresas, sobre todo, cuando son empresas familiares.

Hablo concretamente de la manera en que información crítica para un negocio es considerada tabú a la hora de documentarla y más aún de transmitirla a otros individuos que forman parte de la toma de decisiones y gestión de aquél, ignorando el riesgo que supone conservarla para uno mismo, en lugar de transmitirla o dejar constancia de ella para garantizar su continuidad. Esto vale tanto para los dueños o gerentes de las empresas, como para los empleados “genios” de las mismas, muchas veces considerados imprescindibles, hasta que desaparecen y no ocurre nada. Tengo ejemplos que he vivido durante mi servicio a diversas empresas.

Una fábrica de muebles con la que trabajé tenía un director con el conocimiento de ciertos asuntos tales como las mezclas de barnices y pinturas a través de las que obtenía calidades muy diferenciadas de su competencia, o las mezclas que hacía juntando láminas de diversas maderas traídas desde muy lejos pero que daban un resultado tal que el mundo árabe (su principal cliente) no cesaba en pedidos. Pues bien, cuando este director falleció repentinamente, la diferencia de calidad de esa producción desapareció y los clientes dejaron de hacer pedidos. La fábrica cerró y posteriormente la gran tienda de muebles también.

Otros ejemplos que podría contar los viví en el área del textil, en la de la alimentación y en la fabricación de sistemas electrónicos de seguridad. En todos ellos, la falta de transmisión del conocimiento fue evidente y el final se produjo de la misma manera que he relatado antes: cuando desapareció el experto, se acabó el negocio. Y aquí podría nombrar aquello que circula a nivel global ¿Qué sucederá con Apple tras la desaparición de su genio?

¿Por qué sucede esto? Unas veces porque quien debe transmitir el conocimiento no lo hace a tiempo o simplemente no lo hace. Otras porque tras algunos años en la universidad, quién debe aprender del experto, considera que sabe más que este y emprende un camino ignorando lo que se le pretende enseñar. “El abuelo está fuera de su tiempo” suele decirse, ignorando que el abuelo empezó en la calle sin nada y montó un negocio que prosperó en épocas tan duras o más que las actuales y que probablemente conserva aquellos conocimientos e ideas iniciales a las que añade la experiencia de largos años gestionándolo y que por lo tanto, si a ello se unieran las nuevas enseñanzas adquiridas en la universidad por el sucesor, podrían marcar distancia con su competencia. Lo he vivido demasiadas veces.

También el empleado experto, que solo él conoce una gestión determinada y fundamental para el buen funcionamiento de la empresa y que es considerado persona imprescindible por su superior, es un riesgo evidente, ya que no comparte con nadie ese conocimiento y en caso de no estar disponible, puede ser un serio problema para el funcionamiento de la empresa.

Llegados aquí, creo que de algún modo, debe asegurarse la transmisión del conocimiento de gestión de los negocios y funciones, sin que ello deba representar un riesgo para quienes lo poseen o para la compañía. Puede parecer absurdo, pero no lo es. Hoy en día existen medios suficientemente seguros para proteger cualquier patente, documento o fórmula que expresen la clave de un producto, de una idea de mercado o de un modo de gestionar los puntos críticos de un negocio, y guardarlos a buen recaudo de curiosos y competidores. Por lo tanto la cuestión es más bien de actitud personal y de confianza en el nuevo depositario de este conocimiento.

¿Cómo debería hacerse? No soy un experto en ello, pero el modo en que otras empresas lo han hecho y continúan en el mercado me demuestra que lo primero que debe hacerse es clasificar la información y hacer un inventario de ella, para poner en claro qué información, proceso o producto es el que diferencia o simplemente mantiene viva a la empresa, léase la fórmula de unas magdalenas, la de la Coca Cola o la base química de fabricación de un plástico para pantallas, de unas baterías que duran más que las de la competencia, de un cristal para objetivos de instrumentos ópticos que ni se raya ni se empaña, etc. Todos ellos son ejemplos de productos que actualmente están en el mercado.

De este modo, la información identificada como importante y no pública, que deba ser resguardada de algún modo, será “Confidencial”. Aquella que resulte crítica para el negocio será información “Secreta”, la que responda a ciertas calificaciones, tales como “de carácter personal” (LOPD y RDLOPD) se identificarán como “Personal o Privada”, etc. Documentar y proteger esta información con las medidas de seguridad adecuadas es esencial, pero también no olvidar transmitir el conocimiento práctico de la fabricación y comercialización de ciertos productos o servicios que cuya descripción en papel es cuanto menos compleja o imposible. Esta información habrá que transmitirla a pie de cañón, viviendo una temporada en la misma fábrica o viendo cada paso estratégico en la organización, cada detalle que el “abuelo” o el “genio” controlan y conocen y aprendiendo de ellos.

Aquí aparece el segundo problema más frecuente: ceder el conocimiento y más tarde el asiento, y aceptar permanecer detrás vigilante, por si acaso, es otro paso difícil pero necesario. Ahí es donde “el abuelo” puede fallar y el “genio” puede considerar que peligra su estatus. Si el abuelo piensa que el secreto mejor guardado es el que no se cuenta, estamos mal y si el genio se niega a transmitir su experiencia también. Al primero, será necesario hacerle ver el problema de su posible indisposición, jubilación, o como queramos llamarlo, pero el hecho es que tendrá que pensar en que pasaría o qué pasará cuando el no pueda seguir con la dirección o la gestión que realiza. Al genio, probablemente se le pueda convencer con la posibilidad de una promoción o una compensación de otro tipo, pero tampoco estará exento de problemas. Lo mejor es no crear estos genios en las empresas y mantener un nivel de conocimiento adecuado y compartido en cada función de la misma, de modo que en todos los puestos haya una persona de respaldo.

Me recuerda aquello que decían los profesores en los cursos de seguridad “el ordenador más seguro es el que no está conectado a ninguna red y si está apagado mejor”, lo cual no comparto en absoluto ya que la información debe fluir, eso sí, por cauces definidos, controlados y seguros. La información que no fluye está muerta, no produce beneficio, no se actualiza y tarde o temprano será olvidada.

La conclusión de este planteamiento es que quién decide dar pasos adelante para que el negocio le sobreviva debe identificar a las personas a las que tendrá que transmitir el conocimiento, asegurando su capacidad y fidelidad, pero también debe proveerse de medios de almacenamiento, control y seguridad de todo lo que considere esencial en sus negocios y para ello, no bastará su criterio sino que deberá confiar en su equipo y a la vez, en los expertos externos que pueda necesitar, cuidando bien los términos de los contratos de confidencialidad que pudieran firmarse y limitando así la diseminación de ese conocimiento estratégico.

Herramientas, tecnología y personal preparado hay en el mercado, solo falta la claridad en el planteamiento “sucesorio” y la correcta elección del equipo que continuará sus pasos.

XP: El ataque de los muertos vivientes

Fotografía de Antonio SanzPara este miércoles tenemos una entrada de Antonio Sanz, que después de mucho perseguirlo se ha prestado a colaborar con nosotros :)

Antonio es 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 próximo 8 de Abril Microsoft finaliza el soporte extendido para Windows XP [1], Office 2003 e Interner Explorer 8, lo que supone que ya no ofrecerá de forma oficial actualizaciones de seguridad. Esto supone un grave problema, ya que XP tiene una cuota a nivel mundial del 30-35% en función de la fuente consultada.

En España, Luis Corrons (Director Técnico de PandaLabs/Panda Security) afirmó en el 7ENISE [2] que en un estudio realizado entre grandes empresas y AAPP Windows XP suponía un 81% de las estaciones de trabajo [3]. Para hacernos una idea de la magnitud del problema, cuando Microsoft finalizó el soporte a Windows 2000 en 2010 tan solo tenía un 0.4% de la cuota de mercado [4].

Los problemas de la migración de Windows XP a un sistema operativo superior (Windows 7 o Windows 8) son variados. En primer lugar está el problema de la potencia de los equipos [5], ya que no todos los equipos tendrán hardware lo suficientemente potente como para correr 7/8 (aunque en mi experiencia, un Pentium IV con 2Gb de RAM, si se le desactiva Aero y otros servicios puede ser todavía usable).

[Read more…]

El reto de la Ciberseguridad Industrial

En los últimos años estamos asistiendo a un cambio vertiginoso y radical en el Mapa de Riesgos que afectan a los sistemas de control industrial (ICS).

Tradicionalmente este tipo de sistemas han estado aislados físicamente y desarrollados con sistemas y protocolos específicos pero, en aras de la eficiencia y la flexibilidad, se han integrado con los sistemas estándar de las tecnologías de la información y comunicaciones, con la particularidad de que un fallo en su funcionamiento puede causar la destrucción de equipamiento de costes elevados, la interrupción de operaciones críticas a todos los niveles, un gran impacto económico, una pérdida importante de confianza e incluso la pérdida de vidas humanas.

Los ICS (Sistemas de Control Industrial, por sus siglas en inglés: Industrial Control Systems) en general, encargados de controlar líneas de producción, sistemas de protección contra incendios, arranque y parada de grupos electrógenos, etc, o los distintos tipos en particular: PLCs (Programable Logic Controllers), SCADAS (Supervisory Control and Data Aquisition), RTE (Real Time Embedded Systems), RTU (Remote Terminal Unit), etc., integrados en el mundo TI aprovechan, por tanto, las grandes ventajas de esta tecnología, pero están expuestos a un mundo lleno de nuevas amenazas.

Nos encontramos con un problema añadido al abordar la seguridad de este tipo de sistemas. La convergencia entre los Sistemas de Información Corporativa y los Sistemas de Control Industrial nos ha trasladado a un mundo en el que máquinas, personas e información están interconectados entre sí intercambiando datos, órdenes de control o información a todos los niveles. Mientras los Sistemas de Información Corporativa han estado habitualmente gestionados por profesionales del mundo TIC, los Sistemas de Control Industrial han estado gestionados por otros colectivos como el de los Ingenieros Industriales que, en líneas generales, se ha mantenido alejado y distante del mundo digital y, sobre todo, de sus amenazas. Este es uno de los grandes obstáculos que tenemos que salvar: la incredulidad de los profesionales que gestionan y manejan este tipo de sistemas de control ante la posibilidad de sufrir un “Ciberataque” que afecte al normal funcionamiento de los Sistemas de Control Industrial. Por decirlo de otra manera, una gran mayoría de estos profesionales, directamente, no creen que este tipo de incidentes, ya sea de una forma fortuita o deliberada, puedan producirse y aún en el caso en el que puedan producirse, la inmensa mayoría está convencida de que el impacto sobre el funcionamiento de sus sistemas industriales sería mínimo. Esta creencia representa, en si misma, un problema muy serio para las empresas en particular y para la sociedad en general cuando los sistemas de control industrial son los responsables de velar por el buen funcionamiento de lo que conocemos por Infraestructuras Críticas Nacionales.

Todos los países desarrollados se han puesto manos a la obra a marchas forzadas con declaraciones, normativas, leyes, guías de buenas prácticas y todo tipo de documentos que, entre otras muchas cosas, coinciden en la necesidad de conseguir, a toda costa, una cultura de la ciberseguridad apropiada a las amenazas a las que nos enfrentamos como sociedad.

Así, por ejemplo, la Unión Europea ha publicado, en febrero de 2013, su “Estrategia de Ciberseguridad de la Unión Europea” donde afirma que “Los incidentes de ciberseguridad, tanto deliberados como accidentales, están incrementándose a un ritmo alarmante y podrían llegar a perturbar el suministro de servicios que damos por descontados como el agua, la asistencia sanitaria, la electricidad o los servicios móviles”.

Hasta la fecha la oscuridad con la que se han tratado este tipo de incidentes no ha ayudado mucho a que determinado tipo de colectivos aprendan de los problemas ajenos y de hecho, uno de los aspectos en los que están incidiendo las estrategias de ciberseguridad que se están diseñando por parte de los estados es la obligatoriedad de informar, a los órganos competentes en la materia, sobre los incidentes de seguridad, con el fin de poder compartir información entre organizaciones que ayude a evitar que el mismo tipo de amenaza pueda materializarse sobre más de un objetivo. Cuando nos paramos a leer con detenimiento los sumarios ejecutivos o las exposiciones de motivos de todas estas normas, directivas, leyes o documentos de todo tipo se da cuenta de la dimensión del problema al que nos estamos enfrentando. Según el Foro Económico Mundial hay un 10% de probabilidad de que se interrumpan sistemas críticos en los próximos 10 años con daños por valor de más de 250.000 millones de $. Una afirmación parecida la recoge Gartner en sus predicciones para los próximos años. Symantec valora las pérdidas mundiales anuales por ciberdelincuencia en 300.000 millones de $. En una consulta pública en Europa casi el 57% de los encuestados declara haber sufrido durante el año pasado incidentes de seguridad con un impacto significativo en sus actividades.

La motivación por la que se produce este tipo de ciberataques es múltiple y variada según los expertos. Desde el simple despecho de empleados insatisfechos al espionaje industrial, pasando por el hacktivismo, el ciberterrorismo, el ciberterrorismo de estado, los accidentes o el puro hacking perpetrado por mafias con intereses claramente económicos.

Esto no parece suficiente. Nuestra percepción, como expertos en la materia, es francamente negativa. El grado de desconocimiento en nuestra sociedad es alarmante. Se recoge en las encuestas. Según el eurobarómetro de 2012 el 71% de los españoles reconoce estar mal informado de los riesgos relacionados con la ciberseguridad, frente al 58% de los europeos. Si en los casos de ciberdelincuencia en general la situación es alarmante, en el caso de los sistemas de control industrial en particular, y por tanto de la ciberseguridad industrial, nuestra percepción es que la situación es mucho más grave. En términos generales no se percibe el riesgo. Se percibe como un vector de desarrollo de negocio para las empresas consultoras especializadas en seguridad. Evidentemente eso es cierto, es una oportunidad de desarrollo de una carrera profesional para todos los expertos en seguridad, pero tan cierto como esto es que las ciberamenazas sobre nuestra sociedad existen y si no actuamos pagaremos las consecuencias.

La estrategia de ciberseguridad europea acaba con un “Ha llegado el momento de actuar”. Leon Panetta, Secretario de Defensa de los EEUU ha llegado a decir que “el próximo Pearl Harbor podría consistir en un ciberataque que hiciera descarrilar trenes de pasajeros o cargados con sustancias químicas letales”. Sin llegar a analizar estos extremos, desde estas líneas queremos hacer un llamamiento a la acción, una petición para que se aplique el sentido común y se revise la seguridad de todos y cada uno de los sistemas conectados de una u otra forma a la red, ya sea porque gestionamos una infraestructura importante, ya sea porque queremos proteger nuestros secretos industriales, ya sea porque no queremos que nos roben o que la competencia se entere de nuestra estrategia comercial. Sea por el motivo que sea hagan ustedes que sus equipos técnicos, informáticos o no, revisen la seguridad digital de sus sistemas. Construyamos entre todos una sociedad segura protegiendo no solo la sociedad física tradicional, sino también, la sociedad digital en la que vivimos desde hace ya años.

Metadatos: el algodón no engaña

A raíz de todo el revuelo que hay estos días en torno a los metadatos, he estado revisando las distintas herramientas de borrado de metadatos para ficheros PDF que existen. En principio, las herramientas que analicé funcionan en sistemas GNU/Linux, aunque eso no implica que algunas no puedan funcionar en otros sistemas.

Partí de un PDF que generé yo mismo, y que tal y como se puede ver en la siguiente imagen contiene metadatos:

Metadatos

[Read more…]

¿GPS Spoofing? (II)

Prosiguiendo con el post anterior sobre GPS Spoofing, vamos a detallar el proceso que se realiza en GPS Spoofing.

Un ataque de GPS Spoofing se basa en suplantar la señal original del satélite GPS “engañando” al receptor GPS. Esto se logra mediante la construcción de una señal fraudulenta a partir de las señales transmitidas por los satélites GPS realizando conversiones de digital a analógico. Creada la señal “fraudulenta/suplantada” se va aumentando lentamente la potencia de la señal suplantada, hasta llegar a solapar la señal real (emitida por los satélites GPS) y a partir de ese instante el atacante pasa a controlar el sistema GPS receptor. En la siguiente ilustración se puede observar el proceso de suplantación:

La Universidad de Texas, bajo la dirección del Profesor Todd Humphreys, demostró que no únicamente se puede controlar un Drone. Para ello realizó un experimento por el que llegó a controlar un barco de 80 millones de dólares de uno 65 metros de eslora en la costa Italiana. El experimento se basó en ubicarse en la proa del barco con el sistema diseñado por propios estudiantes de la universidad, provocando las señales fraudulentas, y modificar así la trayectoria del barco en 3 grados. Los resultados dejan claro cómo afecta esta técnica al sistema GPS y como puede impactar en la actualidad.

Asimismo, cabe señalar que existe una técnica denominada Jamming GPS. En este caso, se trata de interrumpir/bloquear las señales GPS. La combinación de ambas técnicas (GPS Spoofing y Jamming GPS), se puede llegar a controlar un Drone militar tal y como realizó el gobierno iraní. En la siguiente ilustración, se puede observar el ataque llevado a cabo por el gobierno iraní a un Drone de los Estados Unidos.

Hasta ahora hemos estado comentado como son de vulnerables los sistemas GPS. Sin embargo, ¿como podemos defendenos frente a este tipo de ataques? ¿Es posible aplicar medidas palitivas que nos informen de si estamos siendo manipulados por un tercero?

A la hora de securizar las señales GPS civiles se podría optar por emplear señales cifradas, tal y como se hace en la señales GPS militares. Sin embargo, de hacerlo así el GPS civil dejaría de ser una herramienta tal y como la conocemos ahora (económica y viable) y probablemente dejaría de utilizarse.

En este sentido los investigadores de la Universidad de Oklahoma encontraron en el 2011 dos soluciones posibles. Una de ellas es aumentar la intensidad de la señal de los GPS civiles, lo que haría más difícil para un GPS spoofer engañar al sistema de navegación. Sin embargo, su implementación presenta dificultades importantes. La otra opción, más práctica en su opinión, es aplicar “algoritmos de anti-spoofing triviales en los receptores de GPS”, que se encargarían de alertan al sistema receptor de la falsificación de la señal GPS mediante la comparación de la intensidad y la potencia de la señales GPS recibidas, de los intervalos de tiempo y los identificadores de los satélites GPS.

Los gobiernos también han comenzado a preocuparse por proteger sus señales GPS. Este es el caso de Corea del Sur que anunció que planea lanzar una red de torres eLORAN (mejorada navegación de largo alcance), debido a las interrupciones producidas desde Corea del Norte. Este sistema de navegación (eLORAN) emite señales de posicionamiento desde estaciones base, emitiendo señales más fuertes, evitando bloqueadores o interrupciones de señales GPS. El Reino Unido también tiene planes para construir un sistema de este tipo.

Referencias:

Evasión de autenticación con inyección SQL

Los ataques de inyección SQL son muy conocidos y temidos por tener un impacto tremendo en la seguridad de una aplicación, además de ser la vulnerabilidad más común, según el Top Ten de OWASP. Cuando pensamos en una inyección SQL, enseguida la relacionamos con fuga de información o robo de credenciales, porque el ataque más usual es volcar tablas de la base de datos que utiliza la aplicación vulnerable.

En este post voy a hablaros de otro método para aprovechar una vulnerabilidad de inyección SQL: saltarse un formulario de login, pudiendo autenticarse sin conocer credenciales.

Partamos de un ejemplo típico: un formulario con un campo de usuario y otro de contraseña. La aplicación hará una consulta a la base de datos muy parecida al código a continuación:

[...]
$usuario=$_POST['usuario'];
$pass=$_POST['password'];
$query="SELECT * FROM users WHERE usuario = '$usuario' AND password = '$pass'";
[...]

[Read more…]

Seguridad y Redes Sociales

(Este artículo fue publicado previamente por José Rosell en la revista Economia3)

Es un hecho, y por tanto no vamos a extendernos en su justificación en estas líneas, que los procesos de negocio son altamente dependientes de la tecnología y que cada vez lo son más y no solo de la tecnología en sí misma, sino del uso que hacemos de ella.

En los últimos años hemos asistido asombrados al nacimiento y desarrollo vertiginoso de las redes sociales en el mundo. La rapidez de su expansión y su intensidad de uso, así como su importancia en todos los campos de nuestra sociedad, están obligando a organizaciones de todo el mundo a tomar cartas en el asunto. Por si fuera poco, la reciente proliferación de dispositivos móviles, “smartphones” y tabletas, que nos permiten un acceso ubicuo a la información, ha terminado de complicar el panorama desde el punto de vista de la gestión y el control de la información.

En 2008 el 45% de los internautas eran usuarios de redes sociales mientras que en 2011 lo son el 91%, de los que el 55% usan las redes sociales a través de dispositivos móviles. (Fuente: Observatorio de redes sociales del BBVA. IV Oleada. Abril de 2012)

Un factor adicional que hace más complicado el análisis del uso de las redes sociales y su impacto en nuestras organizaciones son los continuos vaivenes de su tipología y forma de uso, como se desprende del citado informe. Cuando empezamos a entender sus implicaciones y diseñamos una tímida pauta de actuación en esta materia, nos podemos encontrar con que su uso haya cambiado o “mutado” hasta el punto de dejar nuestras medidas obsoletas. No hay más que ver que, según el mismo estudio, en 2008, el uso de twitter entre los internautas apenas alcanzaba el 1% mientras que en 2011 la cifra de usuarios activos de twitter alcanzaba el 32%, cifra que se incrementa hasta el 51% si contamos usuarios que no se consideran especialmente activos en la red social.

[Read more…]

Recolección distribuida de IOCs

Los Indicadores de Compromiso (IOCs) (de los que ya hablamos en el informe Detección de APTs) son una tecnología que está teniendo un gran auge en los últimos años y que consiste en utilizar XML Schemas para describir las características técnicas de una amenaza por medio de las evidencias de compromiso que la misma deja en el equipo comprometido tras la infección: procesos, entradas de registro, ficheros descargados, etc.

La empresa Mandiant ha desarrollado un framework open-source, llamado OpenIOC que nos permite a través de dos tools (IOC Editor e IOC Finder), desde describir de forma semántica el comportamiento del malware/APTs por medio de ficheros XML (IOC Editor) hasta utilizar los mismos para buscar signos de infección en una máquina sin necesidad de llegar a realizar un análisis exhaustivo de la misma para identificar el tipo de amenaza (IOC Finder).

Con IOC Editor podemos definir una gran cantidad de características y además posee una interfaz de edición muy intuitiva para crear nuestros ficheros IOC:

De lo que se trata al definir un fichero IOC es de buscar por ejemplo localizaciones específicas en el sistema de ficheros, registro u otras partes del SO que habitualmente sean usadas por malware, buscar rastros que pudieran haber dejado herramientas usadas por los atacantes, señales de actividad de los intrusos sobre los sistemas que indiquen movimientos laterales que muestren un comportamiento anormal del usuario…etc. Lo ideal es buscar datos muy concretos para evitar falsos positivos. En definitiva, la definición de IOCs permite a las organizaciones definir piezas de inteligencia de amenazas de una manera estandarizada. Los ficheros IOC al estar definidos bajo un mismo estándar son más fáciles de intercambiar para compartir información entre la comunidad. Así, sitios como http://iocbucket.com/, http://ioc.forensicartifacts.com/ o los propios foros de Mandiant pueden sernos de gran ayuda para encontrar determinados IOCs o compartir los que nosotros hayamos creado.

Un extracto de una fichero IOC (elaborado por AlientVault) sería por ejemplo el que muestra la siguiente figura correspondiente a la APT Red-October. Con esta plantilla y con la ayuda de IOC Finder se podría localizar indicios del Red-October en nuestras máquinas.

Con IOC Finder, a través del parámetro “collect” se recopilará un conjunto de datos (procesos, entradas de registro,etc.) en el equipo sospechoso y los irá almacenando en forma de ficheros XML (crea hasta 50) en un directorio que crea “audits” para tal fin. Así si ejecutamos en el equipo por ejemplo:

>mandiant_ioc_finder.exe collect -o /INDICADORES

Nos generará los ficheros XML correspondientes (proceso que puede tardar horas) y los copiará en la ruta /INDICADORES que le indicamos con el parámetro -o (para más información sobre los parámetros ver guía del usuario de IOC Finder). Una vez este proceso ha finalizado a través del parámetro “report” procederemos al procesamiento de esos ficheros XML por el que se buscarán los patrones de infección que queremos localizar con ayuda de los ficheros IOC de los que dispongamos o hayamos definido. Así por ejemplo si ejecutamos:

>mandiant_ioc_finder.exe report -s ./INDICADORES/audits -i FICHEROXML.ioc -t html

nos indica que la fuente de nuestros datos (-s) está en la ruta /INDICADORES/audits, que buscamos los patrones de infección definidos en FICHEROXML.ioc y que el informe de resultados nos lo muestre en formato html (-t). Un ejemplo de uno de esos informes de salida extraído de este artículo de Mandiant se muestra a continuación:

Los IOCs representan una manera eficiente y rápida para identificar y definir amenazas avanzadas que de otra forma resultarían muy complejas de evidenciar y que, en algunos casos, pasarían inadvertidas por sistemas AV o HIDS. Hay que considerar por tanto su uso para analizar equipos que muestren comportamientos extraños como por ejemplo aquellos que presentan patrones de tráfico poco comunes.

Si adquirimos soltura definiendo IOCs pueden ser de gran efectividad en el ciclo de vida de una investigación ante un incidente de seguridad.

El proceso sería el siguiente: tras una evidencia inicial de un equipo/s comprometidos se investiga vía análisis forense cual es el IOC de la intrusión y se crea. Una vez creados se despliega en nuestros sistemas o redes objetivo para buscar la existencia de este IOC en otros sitios. Si se identifican nuevos sistemas sospechosos se recolectarán estas nuevas evidencias que tras analizarlas nos ayudarán a identificar más en profundidad la intrusión, descartar falsos positivos,etc, que nos ayudarán a refinar y crear nuevos IOCs de forma que volvemos a iniciar el círculo hasta que creamos haber recopilado toda la información necesaria.

Este proceso puede ser muy lento si tenemos que ir equipo por equipo ejecutando el IOC Finder así que dependiendo de la infraestructura que haya o diseño de la red podemos pensar en automatizar este proceso ayudándonos de ciertas infraestructuras.

Por ejemplo, imaginemos que nuestras máquinas forman parte de un Active Directory (AD) por el cual podemos administrar los inicios de sesión en los equipos conectados a la red, establecer políticas por ejemplo a determinadas Unidades Organizativas (OU), grupos de usuarios, desplegar programas en muchos equipos, etc. Podríamos valernos de diversos métodos que podemos implementar con dicho AD para automatizar el proceso de recolección de IOCs en varios equipos.

Así pues, supongamos un escenario ficticio en el que tenemos un Controlador de Dominio “midominio”, del que forman parte varias OU (Departamento 1, Departamento 2, etc). Dentro de esas OU tenemos varios equipos y usuarios sobre los que podemos realizar de manera centralizada ciertas acciones (lo recomendable es tener equipos y usuarios en OU diferentes pero para comodidad de las pruebas lo he establecido así):

Supongamos por ejemplo que dentro de mi Departamento 1 se ha encontrado una máquina comprometida, la he analizado y he creado mi IOC y quiero comprobar en todas las máquinas de ese mismo departamento si hay alguna otra que presenta ese mismo IOC valiéndome del IOC Finder.

Con el AD podemos hacer, entre otras acciones, lo siguiente:

  • Asignar vía GPO scripts de inicio y apagado del equipo: Cada vez que el equipo se encienda/apague se ejecutarán los scripts que le hayamos asignado. Lo hará con privilegios de la cuenta System.
  • Asignar vía GPO scripts de inicio y cierre de sesión del usuario: Cada vez que el usuario inicie/cierre sesión se ejecutarán los scripts que le hayamos asignado. Se ejecutará con los permisos del usuario en cuestión, por lo que habitualmente habría que darle permisos de Administrador.
  • Asignar directamente al perfil del usuario/s el script que queramos que se ejecute al inicio. Lo hará con los privilegios que cuente el usuario, por tanto habría que darle permisos de Administrador normalmente.

Así pues supongamos que —por poner un ejemplo— podemos crearnos un vbscript, recolector.vbs que nos llame a nuestro mandiant_ioc_finder.exe y al cual le indicamos que nos copie todos los ficheros XML resultados en una ubicación compartida a la que los usuarios/equipos lleguen y tengan permiso de escritura. Habitualmente en muchas organizaciones se puede utilizar por ejemplo el servidor del AV —al que los equipos tienen acceso para actualizaciones y similares— creando una carpeta para tal fin, yo he llamado “indicadores” a esta carpeta. Grosso modo, de manera muy simple, nuestro vbscript podría ser contener líneas similares a las siguientes:

Set WshShell = WScript.CreateObject(“WScript.Shell”)
WshShell.run(“mandiant_ioc_finder.exe collect -o //10.0.0.3/indicadores”)

En este caso incluiremos el mandiant_ioc_finder.exe en la misma ubicación que recolector.vbs.

Si optamos por la opción de crear una GPO vinculada a mi OU=Departamento 1 para que recolector.vbs sea ejecutado al inicio de sesión del usuario los pasos a seguir serían los siguientes (para asignar el script al inicio/apagado del equipo los pasos son similares, he escogido por comodidad que se ejecutara al inicio de sesión del usuario):

1. Dejo mandiant_ioc_finder.exe y recolector.vbs en el recurso compartido NETLOGON de mi controlador de dominio u otra carpeta compartida de dominio.

2. Me sitúo sobre la OU sobre la que quiero aplicar la directiva en cuestión, en este caso Departamento 1, y presiono boton derecho del ratón para desplegar el cuadro de diálogo de Propiedades, en el que me dirigiré a la pestaña Directiva de grupo y pulsando en Nuevo crearé un vínculo de objeto de directiva de grupo al que le he llamado “Recolección de IOCs”:

Una vez nombrada, presionamos en Editar para su configuración:

Como vemos en la imagen anterior podemos aplicar la configuración específica sobre el equipo “Configuración del equipo”, o sobre el usuario “Configuración de usuario”. Para asignar un script al inicio de sesión del usuario, nos dirigimos a Configuración de usuario>Configuración de Windows>Secuencia de comandos(inicio de sesión/cierre de sesión) —de igual forma para asignar un script al inicio/apagado del equipo iriamos a Configuración del equipo>Configuración de Windows>Secuencia de comandos—. Una vez en este punto, elegimos en este caso la ejecución del script al inicio de sesión del usuario, y pulsamos en Agregar para cargar el/los script/s que queramos asignar al inicio:

Si pulsamos en Examinar nos lleva a la ubicación en la que tenemos que dejar nuestros ejecutables:

Y seleccionamos nuestro .vbs:

Una vez hecho esto la directiva ya estaría creada y cada vez que los usuarios iniciaran sesión en los equipos de Departamento 1 ejecutarían el recolector.vbs, con lo que en la carpeta indicadores comenzarían a llegar nuestros primeros resultados (podemos probar en un equipo de prueba que funciona forzando una actualización de las directivas con el comando gpupdate /force e iniciando sesión). Una vez en destino los ficheros podrían procesarse. Podría incluso pensarse en automatizar también este proceso.

Si no queremos aplicar una directiva de grupo podemos recurrir a asignar el script directamente como secuencia de inicio de sesión, seleccionado en nuestro AD el usuario/s que queramos, botón derecho > Propiedades y en Perfil podemos introducir directamente el script que deseamos que se ejecute al inicio de sesion de esos usuarios escogidos:

Comentar que el comportamiento de los scripts puede perfilarse mediante algunas políticas que se sitúan en el apartado Plantillas Administrativas (grupo que contiene todas las configuraciones de políticas basadas en el registro de Windows Server), por ejemplo ejecutar la secuencia de comandos de inicio de sesión de forma síncrona/asíncrona, tiempo de espera máximo para secuencias de comandos de directivas de grupo, etc.

Probablemente hayan soluciones mucho más elaboradas, lo que dependerá también de cada infraestructura, de la carga de la red (igual al inicio de sesión o arrancado del equipo la ejecución de este script ralentice mucho la máquina y haya que programar esta tarea para otra hora, o conviene hacerlo al final del día…etc, importante probarlo todo primero en PREPRODUCCIÓN y junto a los administradores y expertos en AD de la organización), del objetivo de los investigadores, del administrador del dominio, etc. En cualquier caso mi objetivo es dar unas pinceladas genéricas de como podría pensar hacerse este despliegue en un AD para automatizar este proceso. Agradecería cualquier aportación o sugerencia al respecto.

Nota: documentación sobre implementación y gestión de AD hay mucha y muy variada, con grandes libros y foros de ayuda ya que es una tecnología muy extendida, como por ejemplo este PDF sobre Administración avanzada de Windows Server 2008 R2. Yo realicé las pruebas implantando un controlador de dominio sobre un Windows Server 2003 y con Windows 7 como equipos de usuarios.

Reto de reversing

En la entrada de hoy les proponemos un reto dirigido a los aficionados a la ingeniería inversa.

Para participar, pueden descargar el siguiente binario. Se trata de un ejecutable PE para Windows 32-bit que contiene un algoritmo de validación de números de serie:

Los números de serie están formados por 16 dígitos numéricos, pudiendo tomar cada uno de ellos un valor entre 0 y 9. El objetivo del reto es obtener un número de serie válido sin modificar el binario (es decir, se trata de obtener la segunda de las salidas del pantallazo anterior sin necesidad de manipular el programa; tan sólo hallando el mecanismo de validación con ingeniería inversa).

Esperamos que disfruten del reto. ¡Un saludo!

Enlaces de interés: