INES: Informe Nacional del Estado de Seguridad

Desde este post quiero presentar un poco más en detalle a una de las amigas de mi compañero Toni: INES.

INES es el acrónimo de Informe Nacional del Estado de Seguridad, pero más que un informe, se trata de una plataforma telemática que proporciona a las Administraciones Públicas un conocimiento más rápido e intuitivo de su nivel de adecuación al Esquema Nacional de Seguridad. INES, junto con la Guía CCN-STIC 824, Informe del Estado de Seguridad [PDF] servirán para elaborar el Informe Nacional del Estado de Seguridad.

Tal y como se indica en el propio manual de la plataforma, el encargado de acceder a la plataforma es el “Responsable de Seguridad”, por lo que todas las Administraciones Públicas deberían tener nombrado al correspondiente Responsable de Seguridad, para poder realizar las gestiones en la plataforma. Esta frase daría para otro post: ¿tienen todas las Administraciones Públicas un Responsable de Seguridad que ejerza realmente como tal?

El objetivo de la plataforma es doble. Por un lado sirve para que cada Administración Pública tenga un “sitio” donde pueda ir albergando, validando y analizando la información de seguridad propia de su organismo y consolidada a nivel de Administración Pública. Por otro lado, la herramienta permite que el CCN tenga acceso a través de un repositorio común a toda la información que ponen a su disposición todas las Administraciones Públicas, con lo que se da cumplimiento al artículo 35 que señala: “El Comité Sectorial de Administración Electrónica articulará los procedimientos necesarios para conocer regularmente el estado de las principales variables de la seguridad en los sistemas de información a los que se refiere el presente real decreto, de forma que permita elaborar un perfil general del estado de la seguridad en las Administraciones públicas“.

En junio de 2014 el Observatorio de Administración Electrónica elaboró una nota técnica sobre el seguimiento de la adecuación a los Esquemas Nacionales de Seguridad (ENS) y de Interoperabilidad (ENI). En ésta destaca el esfuerzo notable que han hecho las AA.PP para adaptarse a dichos esquemas como suele decirse, “con la que está cayendo”. También se resalta que pese al carácter voluntario de la incorporación de los datos por parte de las AAPP, ha habido una buena respuesta, especialmente por parte de la Administración General del Estado, seguida de las Comunidades Autónomas, Diputaciones y Ayuntamientos.

Según el informe, las Administraciones Públicas que han ofrecido sus datos voluntariamente están bastante avanzados en los aspectos relacionados con protección de instalaciones e infraestructuras, la protección de datos de carácter personal, la identificación de personas, las copias de seguridad, la política de seguridad y la identificación de Responsables de Seguridad y Sistemas. A la vista de los resultados, donde más “pinchan” es en los aspectos relacionados con la concienciación y la formación. El informe insiste en que es esencial que haya un Plan de Adecuación, un Responsable de Seguridad nombrado, se haya realizado una Categorización de los Sistemas y que se realice un Análisis de Riesgos.

No podemos acabar este post sin hacer algunas referencias. La primera a CLARA, otra de las amigas de Toni. CLARA es una herramienta creada por el CCN para analizar las características de seguridad técnica definidas en el Esquema Nacional de Seguridad. Dicho análisis de cumplimiento está basado en las normas de seguridad que han sido proporcionadas a través de la aplicación de plantillas de seguridad, según las guías CCN-STIC de la serie 800: 850A, 850B, 851A y 851B. La segunda referencia es a PILAR, una vieja conocida en el sector de la seguridad, que incorpora desde hace tiempo soporte para el ENS y mediante la que es posible realizar la valoración del cumplimiento de cada medida del Anexo II del ENS.

Acabaré diciendo que espero que el proyecto de modificación del ENS, cuya admisión de comentarios se cerró el pasado lunes 9 de febrero, no contradiga mucho de lo que he escrito. Si así fuese, me comprometo a explicar los cambios en un futuro post.

RAM Scraping en TPV’s

¿Qué es el RAM Scraping?

RAM Scraping es una técnica utilizada por cierto tipo de malware que permite leer directamente de la memoria principal, consiguiendo así acceso a información potencialmente sensible. Esta técnica es actualmente empleada para realizar ataques contra los conocidos como TPV (Terminal Punto de Venta) y tiene como objetivo el robo de información de las tarjetas de crédito asociadas a las ventas que gestiona dicho TPV.

Desde las primeras detecciones en 2009, el número de ataques de este tipo ha aumentando notablemente, siendo los Estados Unidos el país que presenta el mayor número de afectados. Quizás los casos más llamativos sean los ocurridos entre 2013 y 2014 sobre las conocidas cadenas de venta norteamericanas ‘Home Depot‘ y ‘Target‘, de cuyos sistemas se estima que se extrajeron alrededor de 150 millones de números de tarjeta en total.

[Read more…]

Cómo proteger la información en tránsito

Para hoy tenemos una entrada de Toni Grimaltos, Licenciado en Informática e integrante del Servicio de seguridad de la información DGTI de la Generalitat Valenciana.

Pocas veces una organización de la envergadura de un gobierno autonómico hace un cambio de la magnitud que supone trasladar de sede a 2500 trabajadores de diferentes organismos. En este artículo vamos a abordar la problemática de trasladar los sistemas de información y el Sistema de Gestión de la Seguridad de la Información (SGSI) de uno de los organismos implicados en ese traslado, y seguir cumpliendo con los controles que la norma ISO 27002 establece, todo ello sin vulnerar ningún artículo de la Ley Orgánica de Protección de Datos (LOPD).

Lo primero que necesitamos para que esta acción tenga éxito, es la “IMPLICACIÓN DE LA DIRECCIÓN”. Ahora bien, este ideal, ¿cómo lo traducimos a una serie de acciones reales?

[Read more…]

Tómate un respiro, tómate un Kit Kat

Hace unas semanas se conoció que Google había dejado de desarrollar actualizaciones de seguridad para los sistemas Android cuya versión sea anterior a 4.4 (también denominada Kit Kat). Esto ha causado bastante revuelo ya que se trata de una decisión que afecta a la seguridad de más 900 millones de dispositivos, casi nada.

Es importante tener en cuenta que las versiones 4.3, 4.2 y 4.1, si nos fiamos de la Wikipedia, son de julio de 2013, noviembre de 2012 y julio de 2012, respectivamente. Es decir, que la versión 4.1 no tiene ni siquiera tres años. No parece un tiempo excesivo como para dejar de dar soporte en materia de seguridad, ¿cierto?

Es evidente que sin soporte por parte del fabricante para corregir los problemas de seguridad del sistema el dispositivo queda vulnerable y, por consiguiente, también el usuario. En cierto modo, no disponer de las actualizaciones para la corrección de vulnerabilidades produce una obsolescencia del dispositivo, no por cuestiones de rendimiento como venía ocurriendo hasta el momento en los dispositivos tecnológicos, si no por cuestiones de seguridad. No podemos olvidar que no estamos hablando de lavadoras que se quedan obsoletas, sino de dispositivos que acumulan un volumen muy importante de información personal: fotografías, correo electrónico, accesos a redes sociales, banca electrónica, etc., y que van a ser uno de los principales objetivos del cibercrimen.

[Read more…]

Zen y el arte de pescar APTs (IV)

En los artículos anteriores de la serie (I, II y III) habíamos desgranado prácticamente todo el incidente de seguridad de la Empresa. Tan solo quedaba una pregunta por responder: ¿cómo demonios había llegado el malware a ejecutarse al equipo del director de marketing?

Tenemos una fecha clave: la primera descarga de logo.jpg, realizada el 6 de Octubre. La infección debería haberse producido sobre esas fechas. Los sospechosos habituales suelen ser la navegación web y el correo, aprovechando alguna vulnerabilidad del equipo al navegar por alguna página o abriendo un documento malicioso. Poco probable debido a la excelente política de actualizaciones de la Empresa, pero hay que comprobar si lo que se dice sobre el papel se cumple en la realidad.

Descargamos todos los logs de navegación y de correo, intentando buscar ese ítem malicioso, esa entrada en los registros que señala la descarga de un binario… sin éxito. Varias horas tiradas a la basura. ¿Puede ser que hayan empleado un 0-day contra la Empresa? No sería descabellado, pero aún no hemos descartado todas las posibilidades.

Queda una vía de entrada muy sencilla y desgraciadamente muy efectiva: los USB. Es posible que alguien haya pinchado un USB con el malware en el equipo del director de marketing. O puede que simplemente se lo hayan regalado y que lo haya instalado sin saberlo. Los ecos de BadUSB nos vienen a la mente: ¿ya están empezando a golpearnos con eso?

Hay una forma de saberlo: Windows tiene un listado de todos los dispositivos que se han pinchado en el equipo, así como la última fecha en la que fueron pinchados. Recuperamos de la imagen el SYSTEM desde C:\Windows\System32\config, y corremos USBDeview sobre él.

Varias memorias USB, un disco duro externo, una webcam, un dispositivo HID Logitech, un dispositivo HID Teensy++… Espera. ¿Un Teensy? !!!WTF!!! Sin palabras, llamo a mi jefe, que boquiabierto exclama: ¡Pero qué coj…!

Un Teensy es un pequeño dispositivo hardware del tamaño de una memoria USB que viene con su conector listo para conectarse a cualquier puerto USB. Cuando se conecta a un equipo se identifica como un USB HID (Human Interaction Device), en este caso un teclado. Y cuando tiene conexión, abre una ventana de comandos y lanza de un chorro todas las pulsaciones de teclado que han sido programadas. Es como un Rubber Ducky pero sin forma de USB. Un Teensy es como una mini placa base desnuda. ¿Cómo alguien en su sano juicio iba a pinchar eso en su equipo?

Llega el momento de tener un cara a cara con el director de marketing. Nos reunimos en su despacho con María y él. Las noticias vuelan, porque la tensión en el ambiente se corta con cuchillos. Empezamos a hacer una reconstrucción de los hechos, y a mitad de la segunda pregunta me quedo paralizado, casi no creyendo lo que ven mis ojos:

Como decía Sherlock Holmes: “Una vez descartado lo imposible, lo que queda, por improbable que parezca, debe ser la verdad”. Un jodido acuario USB. Como también decía Ford Fairlane: “Un-be-lie-va-ble”. Sin mediar palabra, saco un destornillador de mi maletín del portátil (hay que estar siempre preparado), le doy la vuelta al mini acuario y empiezo a desatornillarlo ante las protestas del director de marketing y el asombro del resto.

No lleva mucho encontrar el arma del delito. Cuesta creer que algo tan pequeño pueda causar tantos dolores de cabeza:

La última pieza clave del puzzle cae en su sitio. Como Rusia en la Guerra Fría con el Gran Sello, los atacantes habían entrado hasta la cocina usando un método tan simple como elegante: regalando al director de marketing un mini acuario USB.

Los atacantes al parecer conocían el gusto del director de marketing por los acuarios, así que se hicieron pasar por una empresa de acuarios y le enviaron por correo el mini acuario como detalle. El director de marketing hizo el resto.

Poco quedaba por hacer de la investigación. Los nombres de dominio habían sido comprados con una tarjeta de crédito robada, y estaban a nombre de un ciudadano tailandés que no había visto un ordenador en su vida. De la VPN poco íbamos a poder sacar (en este tipo de empresas se valora en extremo la privacidad de los usuarios, y si además no estás dentro de la Unión Europea poco podemos hacer). La información exfiltrada a estas alturas estaba ya guardada a buen recaudo por los atacantes, que a bien seguro habían conseguido su objetivo.

Nuestro trabajo había terminado, pero aún pudimos hacer un balance de lecciones aprendidas por la Empresa:

  • Los malos hacen sus deberes. El director de marketing tenía una importante presencia en redes sociales, y debió ser estudiado concienzudamente por los atacantes y designado como el blanco más fácil de la Empresa.
  • Si un atacante tiene acceso físico a un equipo, deja de ser tu equipo. Y no tiene que estar delante para tener acceso. Es necesario imponer controles y restricciones sobre los USB, y no solo a nivel de dispositivos de almacenamiento.
  • La correlación es tu amiga. Un sistema de correlación de eventos habría sido capaz de detectar la “ubicuidad” del director de marketing y haber generado una alerta que habría prevenido una mayor fuga de información.
  • La detección de anomalías es poderosa. En un buen sistema de detección de comportamientos anómalos, un dominio del estilo de www.period1co.es o una petición POST sin GET previos deberían generar una alerta de nivel alto inmediatamente.

El resto del incidente es historia: rodaron algunas cabezas, la empresa decidió (sabiamente) que necesitaba un CISO y se tomó buena nota de las lecciones aprendidas para que un incidente así no volviera a suceder.

Y nosotros aún nos seguimos maravillando de las cosas que se le ocurren a la gente … :)

LINE. Android e iOS. Análisis técnico de la mensajería instantánea.

En la actualidad, el uso de smartphones y tablets se ha convertido en una parte fundamental de nuestras vidas. El rápido crecimiento de las aplicaciones de mensajería instantánea ha hecho que servicios como llamadas telefónicas o SMS queden desplazados por los mensajes enviados desde aplicaciones en terminales móviles. Es por esto que este tipo de mensajes puedan tener cabida en un tribunal como prueba ante un delito.

En este post comentaré lo que fue mi Trabajo Fin de Grado en la Universidad de Alcalá el cual fue dirigido por el IUICP (Instituto Universitario de Investigación en Ciencias Policiales) y por lo tanto, imaginaréis que quienes lo usarán serán las FFCCSSEE en caso de que sea necesario para llevar algún tipo de investigación forense donde sea preciso recuperar conversaciones mantenida desde LINE.

¿Por qué LINE y no otro? Para chatear con una persona usando LINE no es necesario que ninguna de las partes tenga el teléfono móvil de la otra, únicamente dando el ID de usuario ya puedes mantener una conversación. El anonimato que esto ofrece, junto con las conversaciones secretas (sus mensajes se autodestruyen “permanentemente”), abre un campo muy amplio que dejo a vuestra imaginación.

Aunque no puedo dar mucha información sobre aspectos técnicos de la investigación (una pena ya que todo esto es propiedad del IUICP), sí puedo comentar el proceso que realicé, que puede dar una orientación a otras personas interesadas en este tipo de investigaciones.

Lo primero que analicé fue el protocolo usado por LINE para envío y recepción de mensajes. Debajo se puede ver una imagen con el esquema del protocolo de mensajes.

Resumiendo:

1. Un Emisor escribe un mensaje y lo envía.

2. Los Servidores de LINE lo reciben y le asignan un identificador único de mensaje (server_id) y una fecha de recepción (created_time).

3. Los servidores envían a Emisor server_id y created_time.

4. Los servidores envían a Receptor el mensaje, server_id y created_time.

En un segundo bloque, separado por Android o iOS, llevé a cabo el análisis de:

1. El sistema de archivos que utiliza LINE. En este apartado, se analiza el directorio de instalación, dónde se encuentran las bases de datos, dónde se almacenan los ficheros multimedia enviados/recibidos así como las fotos de perfil de los contactos…

2. Análisis de las bases de datos (donde se almacenan los mensajes).

  • Análisis relacional: Relación entre tablas usando sus registros.
  • Análisis de los registros: Saber qué almacena cada columna de cada tabla de la base de datos.

3. Análisis forense.

  • Ficheros de configuración: Obtención de más información, como el nombre de usuario y la foto de perfil.
  • Bases de datos: Se analiza cómo es la estructura de los mensajes una vez almacenados mediante un editor hexadecimal.

Por último, en un tercer bloque describo las aplicaciones desarrolladas a partir de las que se demuestra que es posible recuperar conversaciones desde una base de datos de LINE:

  • Lector de mensajes: Obtiene las mensajes de la base de datos y los maqueta en una interfaz HTML.
  • Recuperación de mensajes eliminados: Mediante técnicas de data-carving en busca de datos como server_id, quedando al descubierto que sí es posible recuperar mensajes eliminados de la base de datos, tanto de conversaciones normales como secretas.

Comparto a continuación la presentación que utilicé en las II Jornadas de Seguridad y Ciberdefensa de la Universidad de Alcalá, que contiene algunos detalles más del funcionamiento de LINE de los indicados arriba. Seguiré con el proyecto que llevan a cabo las Fuerzas y Cuerpos de Seguridad del Estado, analizando otras aplicaciones de mensajería instantánea y publicando en Security Art Work los avances que haga.

Evadiendo por la via rápida el challenge de CloudFlare for-fun-and-profit

Para hoy tenemos una entrada de Vicente, un antiguo compañero de S2 Grupo, administrador de sistemas y fanático de la naturaleza. Se le puede encontrar en su twitter @vicendominguez y en su blog.

¡Buenos días amigos! Vuestro sysadmin favorito al teclado hoy. Vamos a la materia.

En el mercado existen multitud de herramientas para pentesting. Todas ellas incorporan sistemas de evasión tanto de IDS, como WAF etc.; nmap incorpora fragmentación, cloak, decoys, spoof, custom data packet; sqlmap lleva check-waf y un montón de tampers, y así casi-todas. Echadle un vistazo porque la lista de aplicaciones que usáis todos los días para vuestros pentest favoritos que incorporan estos extras es considerable. Además tienen cierto éxito con los habituales sistemas de protección/detección. Ya sabéis de lo que hablo. En detección: snort, suricata…; en protección-waf: modsecurity, naxsi… y todos estos requieren algunos esfuerzos “extras” para detectar todas las posibilidades existentes. Bien. Fantástico.

Y luego de todo esto, tenemos CloudFlare.

[Read more…]

Zen y el arte de pescar APTs (III)

El capítulo anterior había quedado en un cierto impasse mientras esperábamos que nuestro experto en reversing destripara el malware encontrado. Afortunadamente, en unas pocas horas obtuvimos unos resultados preliminares la mar de interesantes:

  • El malware realiza múltiples llamadas a la librería Schannel.dll.
  • Se observan varias ocurrencias de la cadena AKCMDDC4-B2132 justo antes de dichas llamadas.
  • Muy cerca de esas llamadas el malware obtiene el nombre del equipo.

Una táctica interesante del malware que emplea cifrado es generar al vuelo una clave usando un patrón fijo y datos del equipo infectado, para así dificultar su descifrado, por lo que AKCMDDC4-B2132 podría ser una buena candidata como clave. Y la librería Schannel.dll es la que guarda todos los algoritmos de cifrado nativos de Windows, por lo que la teoría del uso de cifrado parece ser acertada.

Sabemos que si usa Schannel.dll no está empleando un método de cifrado casero, por lo que tan solo nos queda adivinar el tipo exacto que está empleando nuestro malware. Mi jefe es muy paranoico y opta por AES, mientras que yo pienso que no se han complicado la vida y tiro por RC4 (mucho menos costoso de implementar y más ligero computacionalmente).

Un mini script en Python con pycrypto, y al jefe le toca pagar el café: el tráfico está cifrado en RC4, y aplicando la clave AKCMDDC4-B2132 se descifra a la perfección.

El tráfico de las peticiones POST queda abierto ante nosotros y hiela la sangre: Lo primero que vemos son las credenciales de acceso al OWA (Outlook Web Access), el webmail de la Empresa. Lo siguiente, el contenido de lo que parece un fichero .pcf de un cliente de VPN Cisco (la configuración de una VPN Cisco). Con la contraseña incluida.

El malware no está exfiltrando documentos confidenciales: está enviando todas las llaves del reino con esas peticiones POST, obteniéndolas posiblemente mediante alguna funcionalidad de keylogger o accediendo a las contraseñas en claro guardadas a lo ancho y largo del sistema.

Ya hemos encontrado la causa de la brecha, por lo que podemos empezar la fase de contención. Llamamos a María para que revoquen todos los accesos del director de marketing mientras seguimos analizando el tráfico cifrado, en este caso el existente en la imagen logo.jpg.

Como sospechábamos, el contenido está cifrado, usando RC4 y la misma clave que en la comunicación HTTP. Una vez descifrado, el contenido es claro:

SendPass

Interesante a la par que sibilino. Al parecer el malware no funciona de forma periódica, sino cuando es invocado a través de comandos, que suceden de forma completamente asíncrona. El funcionamiento parece ser el siguiente:

  • En horario laboral, y de forma aleatoria, el malware descarga logo.jpg y descifra el comando.
  • Un tiempo aleatorio más tarde (pero también dentro de horario laboral), se realiza la comunicación POST con el resultado del comando.

El objetivo del malware es muy claro: hacer que las comunicaciones sean aperiódicas y parezcan tráfico normal para pasar desapercibidas ante los controles de seguridad.

Ya conocemos el objetivo del malware y cómo lo hace. Quedan varias preguntas muy importantes por resolver: qué se han llevado, desde cuándo lleva la Empresa comprometida y cómo han podido entrar en el equipo del director de marketing.

Para ver qué datos han podido ser exfiltrados, repasamos todas las conexiones realizadas con las credenciales del director de marketing tanto desde la VPN como desde el OWA. Al ser un equipo portátil con 3G, las conexiones vienen desde multitud de sitios. Sin embargo, tras un poco de trabajo de limpieza, una dirección se repite con cierta frecuencia, tanto en VPN como en OWA.

Examinando la dirección, encontramos que corresponde con la salida de un conocido proveedor de VPN ruso. Si ya tienes una VPN, ¿qué sentido tiene el pasar tu tráfico por otra? Extremadamente sospechoso.
Hablando con María obtenemos los eventos de inicio de sesión del director de marketing de los últimos tres meses, e intentamos buscar inconsistencias. Sabiendo lo que tenemos que buscar no tardamos en encontrar varios puntos, todos ellos dentro de horario laboral, en los que el director de marras está a la vez dentro de la Empresa y conectado por la (doble) VPN. Ya tenemos los datos de conexión del atacante y conocemos su modus operandi (bastante cuidadoso, por cierto).

Saber qué se ha podido llevar es mucho más complicado. Dado que ha podido entrar como si fuera el director de marketing, su nivel de acceso es muy elevado. Vamos a centrarnos en dos puntos de fuga principales: su cuenta de correo y el servidor corporativo.

Revisando su buzón de OWA no encontramos nada sospechoso. Todo está perfectamente en orden, ordenado y pulcro en extremo. Sin embargo, los logs de Exchange cuentan una historia totalmente diferente: hay docenas de correos electrónicos enviados a cuentas de Gmail con nombres muy similares a personal de la Empresa y otras empresas colaboradoras. Los atacantes siguen intentando mantener un perfil bajo, borrando del OWA los correos enviados para no dejar rastro.

La información exfiltrada es… complicada. Correos con información sensible, documentos de la estrategia de ventas de la Empresa, hasta lo que parece ser un indicio de que el director de marketing está teniendo un “asunto” con alguien de Finanzas. Un completo desastre.

Obtener un registro de qué información ha podido ser exfiltrada del servidor corporativo va a ser un poco más complicado. Afortunadamente tenemos algo de suerte en este aspecto: en la Empresa han apostado por una estrategia de gestión documental férrea basada en Sharepoint, por lo que todo está bastante bien organizado y pasa obligatoriamente por el CMS.

Además, algún administrador de sistemas lo suficientemente paranoico había activado la trazabilidad, por lo que tenemos un listado de quién ha accedido a qué documentos en los últimos seis meses. El problema es que no sabemos qué documentos han sido accedidos por el director de marketing o por los atacantes.

Correlar las fechas de conexión por la VPN no sería del todo efectivo ya que hay momentos de solapamiento. La solución por la que optamos es obtener un listado de los documentos accedidos durante esos solapes, y cruzarlos con los accedidos por el director de marketing. Saber qué documentos han sido accedidos por el director de marketing es algo laborioso pero realizable.

Tenemos una imagen de disco. ¿No os acordáis de ella? Pues nos va a venir de maravilla, porque Windows guarda un listado de los documentos accedidos más recientemente (MRU, Most Recently Used) para cada usuario (en versiones modernas de Windows hasta por programa). Volcamos del disco el NTUSER.DAT y lo pasamos por RegRipper para obtener el listado de ficheros sobre el que trabajar.

Aquí no tenemos tampoco buenas noticias. Entre los documentos que sabemos han sido accedidos desde la VPN y el despiece hecho con RegRipper toda la estrategia corporativa ha sido exfiltrada.

El siguiente paso es saber cuánto tiempo lleva la Empresa comprometida (trufada, como solemos usar en nuestra jerga). Para ello podemos componer una línea temporal con toda la información de la que disponemos, a saber:

  • Primera descarga de logo.jpg
  • Primera comunicación POST contra www.period1co.es
  • Accesos desde la VPN al OWA
  • Accesos desde la VPN al Sharepoint

Las piezas van encajando como un puzzle. La primera descarga de logo.jpg se produjo el 6 de Octubre, la primera comunicación POST dos días más tarde, y en ese mismo día ya se estaban descargando documentos tanto del OWA como del Sharepoint. Dos meses trufados sin que nadie se diera cuenta. Como diría Pazos de Airbag: Profesional, muy profesional.

Mientras comunicamos todo lo hallado a María para que la Empresa pueda realizar sus trabajos de contención a nivel de relaciones públicas, solo queda una pregunta por responder: ¿cómo lograron los atacantes entrar en la Empresa?

La respuesta la tendremos en el siguiente y último artículo de la serie…

El curioso caso del SGSI dentro del SGSI

Estimados lectores, esta mañana me encontraba en la máquina de café de la oficina hablando con varios compañeros sobre la filmografía del bueno de Christopher Nolan (por si no lo conocen, es el director de películas como Memento o la más reciente Interstellar). Pues bien, dentro de su filmografía podemos encontrar una que juega con el concepto de la recursividad. Se llama Origen y en mi humilde opinión es una gran película, con un reparto de lujo (Leonardo Dicaprio, Marion Cotillard, Ellen Page, etc.)

Y ustedes se preguntarán ¿y todo esto a qué viene? Algo tan sencillo como que la recursividad me ha sugerido la idea de escribir un post sobre un reciente proyecto en el que he participado y que finalmente ha terminado con la obtención de un certificado ISO 27001.

Este proyecto tenía numerosas particularidades que lo hacían especialmente complejo. Por ponerles en contexto, el proyecto consistía en la implantación de un SGSI para ciertos procesos de una plataforma online de una importante multinacional.

La primera particularidad era su reducido alcance. La segunda era que la sede española ya disponía de un SGSI certificado. La tercera era que se trataba de un proyecto que pertenecía a la matriz internacional, con un equipo de personal dedicado, y no a la sede española. La cuarta era que los servicios que prestaban departamentos transversales de la sede española (TI, RRHH, etc.) para nosotros eran parcialmente opacos. La quinta era que los sistemas de información estaban ubicados en un proveedor certificado por la ISO 27001. La sexta era que el SGSI debía ser en inglés (pero bueno esto no es especialmente relevante)…

Así pues, voy a tratar de exponerles ciertas situaciones que se me plantearon como cuestiones durante el proyecto. Espero que mi experiencia les pueda ser útil.

¿Se puede certificar por la ISO 27001 un proyecto y no una empresa? Sí, la norma no necesariamente requiere certificar una empresa es más, por norma general se certifican procesos de negocio de la misma. Pero también se puede certificar, por ejemplo, proyectos realizados en una UTE (Unión Temporal de Empresas). No obstante, siempre deberá haber un CIF detrás.

Si quiero certificar un proyecto dentro de mi empresa, la cual ya está certificada, ¿es necesario definir otro SGSI? No, tan solo bastará con ampliar el alcance del mismo. Siempre y cuando lo hagamos con la misma entidad de certificación. Si quieren hacerlo con otra entidad entonces deberán definir un SGSI nuevo o ampliar el alcance y someter el SGSI a otra auditoría. En este caso, por requerimiento de la matriz, la entidad certificadora debía ser otra distinta y partir de un SGSI nuevo.

¿Existe algún problema en seleccionar un alcance muy limitado? No, siempre y cuando tenga sentido. No obstante, un alcance limitado no nos eximirá de implantar gran parte de controles, como podemos pensar en un primer momento. Por ejemplo los controles relacionados con Recursos Humanos o con la seguridad física, casi al 100% nos serán de aplicación.

¿Puedo utilizar el comodín del SGSI existente para alegar que un control está implantado en el nuevo SGSI? Sí, pero ojo que el auditor puede auditar ese control, es decir por estar certificado no hará un dogma de fe y lo dará por válido. Puede darse el caso de que un proceso que sea idéntico para los dos SGSIs, por ejemplo el CV Screening, un auditor lo de por válido y otro no. Por eso, podemos referenciar en nuestra declaración de aplicabilidad cómo está implantado el control en el otro SGSI, pero siempre debemos revisar que en efecto se está cumpliendo.

¿Cómo tratamos a los servicios transversales (TI, RRHH, etc.) que nos prestan desde una sede concreta, pero sobre los que no tenemos control directo? Mi recomendación, y dada la casuística en este caso, es la definición y suscripción de OLAs (Operation Level Agreements) que reflejen: Los servicios prestados, los niveles de servicio asociados y aspectos de seguridad requeridos por el proyecto. Sin embargo, aquí deberemos tener cuidado en las formas de proceder y en las “exigencias que impondremos”, puesto que podemos encontrarnos con reticencias por parte de nuestros proveedores internos.

Si mis sistemas de información están en un proveedor de housing/hosting certificado por la ISO 27001, ¿el auditor verificará las medidas de seguridad de mi proveedor in situ? Pues depende, pero en más de una ocasión puedo confirmarles que durante la auditoría el auditor ha solicitado visitar las instalaciones del proveedor y revisar las medidas de seguridad existentes. A pesar de que el proveedor esté certificado por la ISO 27001, la ISO 20000, o este acreditado como Tier III.

Finalmente, otra de las lecciones aprendidas de este proyecto, es que no siempre un alcance acotado o la existencia de un SGSI previo puede disminuir la complejidad del proyecto de implantación de ISO 27001. Así que como siempre les decía a mis alumnos de taekwondo nunca subestimes a tu rival.

En cualquier caso, le doy mi más sincera enhorabuena a este proyecto por la obtención de la certificación ISO 27001.

P.D. Y por si se lo estaban preguntando, Dicaprio tampoco consiguió el Oscar con esta película.

Defensas frente a ataques ARP

Recientemente he estado revisando documentación de controles de red a nivel 2 y justo vino a mi memoria el post de Borja Merino de hace algún tiempo.

En el post, Borja hablaba de cómo hacer frente a ataques DHCP mediante la funcionalidad DHCP Snooping de Cisco, hablando de puertos confiables y no confiables, y de la tabla de asociación IP-MAC usada. También hace referencia a DAI (Dynamic ARP Inspection) como funcionalidad de seguridad para poder evitar posibles ataques MitM como ARP poisoning; es justo esta funcionalidad en la que nos centraremos en la entrada de hoy.

DAI es una medida de seguridad disponible en switches Cisco que nos permite validar los paquetes ARP de la red; al igual que en el post de Borja, DAI utiliza la tabla de asociaciones IP-MAC generada por DHCP Snooping, aunque esto es opcional. Para este post, daremos de alta las entradas de forma manual, algo poco eficaz en entornos grandes.

DAI intercepta las peticiones y respuestas de los puertos no confiables (untrusted) y las valida contra la tabla antes de actualizar su cache y permitir el tráfico. Puesto que el comportamiento por defecto es definir todos los puertos como untrusted, deberemos especificar los puertos confiables (trusted) mediante el comando ip arp inspection trust para evitar el bloqueo de puertos, por ejemplo de puertos de conexión con servidores o enlaces troncales entre switches.

Nuestra arquitectura de red es similar a la vista en el post de Borja, disponemos de un switch, en este caso un Cisco 3750, dos equipos de usuarios y un servidor DHCP aunque éste último, no vamos a usarlo ya que se configurarán manuales.

Lo primero que hacemos es comprobar que existe conectividad entre ambos equipos (¡cuántas veces hemos asumido que todo funciona antes de modificar algo y luego, cuando no va y tenemos que ir deshaciendo lo realizado, vemos que antes tampoco funcionaba como tocaba!). Una vez aseguramos la conectividad, procedemos a activar DAI.

Por defecto, DAI inspecciona todos los paquetes ARP enviados desde los puertos no confiables para asegurar la presencia de una correspondencia IP-MAC en la tabla de asociaciones. Aunque pueden activarse validaciones de seguridad adicionales mediante el comando ip arp inspection validate, nosotros usaremos las funcionalidades por defecto.

Switch(config)# ip arp inspection vlan 1

La activación, como hemos comentado anteriormente, define todos los puertos como no confiables:

Switch# show ip arp inspection interfaces 

 Interface        Trust State     Rate (pps)    Burst Interval
 ---------------  -----------     ----------    --------------
…
 Gi1/0/20         Untrusted               15                 1
…
 Gi1/0/24         Untrusted               15                 1

Por lo que se comprobaría la presencia en la tabla de asociaciones de una entrada, algo que hemos dicho que realizaríamos de forma manual, y al no encontrar ninguna, bloqueará el tráfico. Esto podemos verlo claramente en el log que muestra la consola, y donde se especifica MAC origen, IPs origen, destino e interfaz.

01:16:20: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Gi1/0/20, vlan 1.([0024.beec.2526/172.18.0.222/0000.0000.0000/172.18.0.111/01:16:20 UTC Mon Mar 1 1993])

Aunque ya hemos visto que funciona, podremos validar que la funcionalidad se encuentra activada y se está bloqueando el tráfico:

Switch# show ip arp inspection vlan 1

Source Mac Validation      : Disabled
Destination Mac Validation : Disabled
IP Address Validation      : Disabled

 Vlan     Configuration    Operation   ACL Match          Static ACL
 ----     -------------    ---------   ---------          ----------
    1     Enabled          Active                         

 Vlan     ACL Logging      DHCP Logging      Probe Logging
 ----     -----------      ------------      -------------
    1     Deny             Deny              Off          

Switch#  show ip arp inspection statistics

 Vlan      Forwarded        Dropped     DHCP Drops      ACL Drops
 ----      ---------        -------     ----------      ---------
    1            0            971            971              0

El siguiente paso será añadir manualmente, las asociaciones IP-MAC de cada uno de los equipos en la tabla, especificando la interfaz donde están conectados:

Switch(config)# ip source binding 0024.beec.2526 vlan 1 172.18.0.222 interface gigabitEthernet 1/0/20                                                                                               
Switch(config)# ip source binding 0050.5b00.0dff vlan 1 172.18.0.111 interface gigabitEthernet 1/0/24

Y ver que se han almacenado correctamente:

Switch# show  ip source binding
MacAddress          IpAddress        Lease(sec)  Type           VLAN  Interface
------------------  ---------------  ----------  -------------  ----  --------------------
00:50:5B:00:0D:FF   172.18.0.111     infinite    static          1     GigabitEthernet1/0/24
00:24:BE:EC:25:26   172.18.0.222     infinite    static          1     GigabitEthernet1/0/20

Esta asociación también podría hacerse definiendo una ACL.

Llegados a este punto, volveríamos a tener conectividad, por lo que si volvemos a comprobar las estadísticas, vemos que ya aparece tráfico reenviado:

Switch#  show ip arp inspection statistics 

 Vlan      Forwarded        Dropped     DHCP Drops      ACL Drops                                                                                                                                           
 ----      ---------        -------     ----------      ---------                                                                                                                                           
    1            120            316            316              0      

Hasta aquí, solo hemos visto el comportamiento normal del sistema, pero ahora, vamos a enviar tráfico con una dirección MAC (o IP) distinta de las introducidas en la tabla anterior; esto puede hacerse de forma manual cambiando la configuración del adaptador de red, o con herramientas de manipulación de tráfico como scapy.

Al cambiar la dirección MAC perdemos la conexión con el equipo remoto, y volvemos a ver avisos en el log donde se indica la nueva dirección MAC, la cual no aparece en la tabla de asociaciones:

1:32:15: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Gi1/0/24, vlan 1.([0050.5b00.0df1/172.18.0.111/0000.0000.0000/172.18.0.222/01:32:15 UTC Mon Mar 1 1993])

Y vemos cómo el número de paquetes dropeados aumenta:

Switch#  show ip arp inspection statistics 

 Vlan      Forwarded        Dropped     DHCP Drops      ACL Drops
 ----      ---------        -------     ----------      ---------
    1            135            380            380              0

Esta configuración mostrará un aviso en el log, pero es más interesante configurar el equipo para que, en caso de detectar que el número de paquetes ARP que no tienen presencia en la tabla, supere un umbral definido, por ejemplo un paquete por segundo, bloquee el puerto (err-disabled) durante un periodo de tiempo (y lo notifique por SNMP).

Switch(config)# errdisable recovery cause arp-inspection   
Switch(config)#  interface gigabitEthernet 1/0/24
Switch(config-if)# ip arp inspection limit 1 

Puesto que el equipo sigue intentando conectarse, el puerto se bloquea automáticamente:

01:42:47: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Gi1/0/24, vlan 1.([0050.5b00.0df1/172.18.0.111/0000.0000.0000/172.18.0.222/01:42:46 UTC Mon Mar 1 1993])
01:42:47: %SW_DAI-4-PACKET_RATE_EXCEEDED: 2 packets received in 998 milliseconds on Gi1/0/24.
01:42:47: %PM-4-ERR_DISABLE: arp-inspection error detected on Gi1/0/24, putting Gi1/0/24 in err-disable stateexit
01:42:48: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet1/0/24, changed state to down

Y así lo veremos el estado de la interfaz sospechosa:

Switch# show  interfaces gigabitEthernet 1/0/24 status 

Port      Name               Status       Vlan       Duplex  Speed Type
Gi1/0/24                     err-disabled 1            auto   auto 10/100/1000BaseTX

También podríamos verlo si tenemos activado el log de violaciones detectadas por DAI mediante el comando show ip arp inspection log.

Dado que no hemos modificado el tiempo, el puerto estará 5 minutos bloqueado, pudiendo ver cuanto tiempo queda hasta la próxima comprobación:

Switch# show  errdisable  recovery                     
ErrDisable Reason    Timer Status
-----------------    --------------
arp-inspection       EnabledTimer interval: 300 seconds

Interfaces that will be enabled at the next timeout:

Interface    Errdisable reason    Time left(sec)    Errdisabled vlans
---------    -----------------    --------------    -----------------
Gi1/0/24     arp-inspection            118  

Si mientras el puerto esta bloqueado, volvemos a dejar la dirección MAC correcta, una vez venza el timeout, el puerto volverá a levantar correctamente y recuperaremos la conectividad:

01:48:51: %PM-4-ERR_RECOVER: Attempting to recover from arp-inspection err-disable state on Gi1/0/24control Disabled
01:48:54: %LINK-3-UPDOWN: Interface GigabitEthernet1/0/24, changed state to up
01:48:55: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet1/0/24, changed state to up

Como comentaba Borja en su entrada, existen distintas funcionalidades de seguridad a este nivel que debemos tener en cuenta a la hora de comprar nuevos equipos. No obstante, es habitual que este tipo de medidas vengan desactivadas por defecto y queden sin configurar salvo para casos puntuales.

Como reflexión final para los lectores, ¿disponen de medidas de seguridad a nivel 2 en sus organizaciones?