Search Results for: cloud

La importancia del bastionado de servidores – Parte 2. Bastionando el servidor

Hoy publicamos el segundo de tres artículos cortesía de Jorge García sobre la importancia del bastionado de servidores. Aquí tenéis todos los artículos de la serie [1] [2] [3]

De acuerdo, tenemos la misión de hospedar una aplicación web de comercio online y ofrecerla al mundo en un servidor que tenemos en propiedad. Nuestro objetivo es que sea lo más inexpugnable posible a todos los niveles. Dado que se trata de una aplicación web, es previsible que el principal vector de entrada de ataques sea a través de vulnerabilidades de la propia aplicación. A ver, no nos engañemos, todos los CMS son firmes candidatos a tener vulnerabilidades severas. El esquema de cómo estará organizada la plataforma es el habitual en un servidor virtual:

Por lo tanto, la cuestión es elegir un CMS con estas premisas:

  1. Que se desarrolle activamente y esté respaldado por una comunidad numerosa de desarrolladores o por una gran empresa. Esto nos garantiza que cuando se publique una vulnerabilidad, ésta sea rápidamente corregida.
  2. Que el CMS instalado sea la última versión disponible de una rama que tenga soporte, y que se prevea que siga teniéndolo durante bastante tiempo. No hay que olvidar que, dado que no disponemos de entorno de desarrollo en casa, las actualizaciones o migraciones implican pérdida de servicio que a su vez implica potencial pérdida de dinero.
  3. Que sea compatible con el sistema operativo del servidor que disponemos. Una consideración que es obvia pero importante.
  4. Que el historial de vulnerabilidades críticas sea lo más bajo posible. Un CMS que se desarrolla activamente y tiene buen soporte pero que de media se descubre una vulnerabilidad crítica cada semana no es viable de mantener ni seguro de utilizar.

[Read more…]

Simple & crazy covert channels (II): MATLAB

Desde que empecé a estudiar en la universidad le tengo bastante manía a una herramienta que para muchos es excepcional y vital en sus trabajos. Esa herramienta es MATLAB.

Como a la mayoría de cosas a las que tengo manía, siempre intento utilizarlas para hacer el mal, por ello durante el siguiente artículo vamos a ver unos sencillos trucos para la utilización de esta herramienta para llevar a cabo la ejecución, persistencia, comunicación y exfiltración de información en nuestras auditorias de seguridad.

Durante el artículo, vamos a dar por hecho que la herramienta se encuentra instalada en el equipo de la víctima (cosa no poco probable en caso de que el objeto de nuestra auditoria tenga como objeto el ámbito ingenieril o científico). [Read more…]

MUS CTF DFIR – MOBILE (Nivel 1)

Este fin de semana se pronosticaba un tiempo de perros en Madrid, y todavía estaba arrastrando un malware elegante que no terminaba de curar, así que tocaba casa y manta. Y el mismo viernes por la tarde me entero que la gente de Magnet había abierto al público el reto forense que habían jugado en el MUS (Magnet User Summit), junto con una licencia de prueba de Magnet Axiom para poder probarlo y cacharrear al gusto.

Un poco de AC/DC, leche con miel y whisky (ambos son buenos para currar el catarro, o eso dicen) y un buen reto forense no son un mal plan para el finde ;-)

Enlaces de interés:

[Read more…]

IoT en la industria 4.0 – Nuestros datos ¿colaboración o aprovechamiento?

El pasado 7 de febrero se celebró en Madrid un encuentro en el Observatorio Vodafone de la Empresa en el que expertos en cloud, inteligencia artificial, robótica y transformación digital dieron una visión sobre cómo afrontar los retos de la industria 4.0. Ya en anteriores artículos de Joan Balbastre acerca de la industria 4.0, podíamos ver qué caracteriza esta revolución industrial y sus principios de diseño básicos. En estos artículos, se nombran hasta seis diferentes principios y uno de ellos, nos permite centrarnos en este texto: la orientación al servicio. Esta orientación resultó ser el eje fundamental de todo el evento.

Bien es cierto que, ante las fuertes competencias entre empresas de diferentes sectores, la optimización de los productos o servicios prestados se ha convertido en prioridad. Existen muchas maneras de mejorar una empresa o producto. En los últimos años, la recopilación de información ha pasado a ser uno de los pilares fundamentales en los que se basa la revolución de la industria 4.0. Los datos recopilados de los consumidores permiten a las empresas realizar diferentes acciones como el mantenimiento preventivo, aseguramiento de la calidad, gestión de defectos en tiempo real, gestión de operaciones, etc. Un claro ejemplo del cambio que están sufriendo las empresas de la industria es el caso de Quality Espresso, que ha pasado de producir únicamente un producto, diseñando, produciendo y comercializando cafeteras, a la prestación de un servicio añadido gracias a la recopilación de información. Las máquinas de café de Quality Espresso no solo permiten tener conectividad con diferentes dispositivos, sino que también son capaces de recabar información estadística para la empresa, a fin de mejorar los productos o incluso influir en el diseño de nuevos, tal y como se indicó en el evento.

[Read more…]

Agujas, pajares e imanes: Análisis forense de malware fileless (I)

[Nota: Esta serie de posts es una narración de un análisis forense de un caso práctico totalmente ficticio (pero contada, esperamos, de forma didáctica y con gracia y salero). Si queréis una versión con la misma dosis técnica pero con menos narrativa, podéis consultar el vídeo de la charla que el autor dio en las XII Jornadas STIC del CCN-CERT, o echar un ojo las slides de la presentación].

[Nota 2: Estos posts desgranan un taller de análisis forense básico. Habrá algunas cosas que se podrían hacer de manera más eficiente y elegante, pero la idea era hacerlas de forma sencilla para que fueran fáciles de entender. Y como todo buen taller práctico, se puede seguir paso a paso: el CCN-CERT está alojando en LORETO todo el material, que podéis descargar desde aquí. Tenéis tanto las evidencias en bruto (si queréis primero intentar encontrar el bicho por vuestra cuenta sin leer nada de la solución) como una guía paso a paso con todas las herramientas y evidencias necesarias en cada paso].

Un nuevo día empieza en las instalaciones del MINAF (Ministerio de la Alegría y la Felicidad), lo que para Ángela de la Guarda (CISO del MINAF) significa café, reuniones y papeleo. Al menos, el proyecto del ENF (Esquema Nacional de Felicidad) está de una vez saliendo adelante…

[Read more…]

Grupo WIRTE atacando a Oriente Medio

Desde LAB52 de S2 Grupo se ha llevado a cabo una investigación sobre un actor sobre el que desde LAB52 no se han podido encontrar referencias o similitudes en fuentes abiertas y al que se ha identificado como WIRTE.

El equipo de DFIR (Digital Forensics and Incident Response) de S2 Grupo identificó por primera vez este actor en agosto de 2018 y a partir de ese instante se ha llevado a cabo el seguimiento durante los últimos meses.

Este grupo ataca a Oriente Medio y no utiliza mecanismos muy sofisticados, al menos en la campaña iniciada en agosto de 2018 que fue la monitorizada. Se considera poco sofisticado por el hecho de que los scripts están sin ofuscar, las comunicaciones van sin cifrar por HTTP, utilizan Powershell (cada vez más monitorizado), etcétera. Pese a este modus operandi aparentemente poco sofisticado respecto a otros actores, consiguen infectar a sus víctimas y llevar a cabo sus objetivos. Además, como se verá durante este artículo, la tasa de detección de alguno de los scripts en el mes de diciembre de 2018 por los principales fabricantes de antivirus es baja, aspecto que es necesario resaltar. Hay que ser consciente que una vez se ejecutan estos scripts es cuando el análisis por comportamiento de muchas soluciones los detectarán, pero este hecho no ha sido objeto de estudio por parte de LAB52.

Este actor en todos los artefactos analizados muestra a sus víctimas un documento señuelo en árabe con diferentes temáticas. Durante el informe se analizarán estos documentos y quienes podrían ser los objetivos dependiendo de la temática tratada en el documento. [Read more…]

Análisis de Linux.Haikai: dentro del código fuente

Hace unos días conseguimos el código fuente del malware Haikai, el cual corresponde a una más de la multitud de implementaciones llevadas a cabo por el continuo reciclaje de código fuente perteneciente a diferentes botnets IoT. A pesar de que no hemos identificado ninguna novedad respecto a versiones de malware IoT anteriores, nos ha permitido la obtención de mucha información sobre las técnicas, mejoras y autores.

Comentar también que, según diferentes registros obtenidos, esta botnet ha estado actuando durante gran parte del último mes de junio.

En las siguientes líneas se analizará el código, así como las posibles atribuciones y las implementaciones no referenciadas en el hilo de ejecución, las cuales nos permiten adivinar que el código va mutando en diferentes líneas en paralelo para una misma función.

Así pues vamos a comenzar analizando la estructura de los ficheros. [Read more…]

Las herramientas de los dioses

Hoy en SAW no vamos a hablar de seguridad sino de religión. De la religión verdadera, de la buena: de Unix. Y de sus dioses: Kernighan, Ritchie, Thompson… podríamos citar unos cuantos. Y de las herramientas que, en los años setenta, estos dioses nos enviaron a los pobres mortales, como el maná caído del cielo para el pueblo elegido. Y es que estos dioses crearon un sistema operativo de verdad, con unas herramientas técnicamente maravillosas y una filosofía muy sencilla: capacidades simples que combinadas hacen tareas complejas. La perfección. La vida es Unix ejecutando un script. Han pasado más de cuarenta años y nosotros, pobres mortales que éramos el pueblo elegido, ¿qué hemos hecho en este tiempo? Tratar de deshonrar ese legado divino con capas artificiales e inútiles (“de abstracción”, las llaman, para tratar de darles sentido) que introducen dos problemas innecesarios en cualquier entorno tecnológico “moderno”: complejidad, y por tanto probabilidad de error, y lentitud. Sirva de ejemplo el ejecutable “true”, al hilo de la historia que hace poco comentaba Rob Pike en Twitter:

$ >mytrue;chmod +x mytrue
$ ./mytrue
$ echo $?
0
$

Un programa cuya única finalidad es devolver siempre 0. Un ejecutable vacío. VACÍO. No puede haber algo más simple y que funcione, desde hace cuarenta años… pues bien, aquí entramos los mortales. Año 2018:

$ ls -l /usr/bin/true
-rwxr-xr-x 1 root wheel 17760 29 abr 2017 /usr/bin/true
$ file /usr/bin/true
/usr/bin/true: Mach-O 64-bit executable x86_64
$ otool -L /usr/bin/true
/usr/bin/true:
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0)
$ /usr/bin/true
$ echo $?
0
$

Por supuesto, este es solo un ejemplo, y no de los graves, sobre cómo nos gusta complicarnos. Como dijo un profeta hace años, “Those who do not understand Unix are condemned to reinvent it, poorly.”. Me imagino el brainstorming inicial en un grupo que luego acaba sacando a la luz determinadas tecnologías:

– Tíos, vamos a hacer unas herramientas para manejar grandes conjuntos de datos que ahora están en ficheros planos.
– Pero, si ya tenemos awk, sed, grep…
– Funcionan demasiado bien y la gente no contrata mantenimiento. Escuchad, las llamaremos “bases de datos”.
– ¿Bases de datos? Irás de coña, ¿no?
– No, no, lo tengo todo atado: hacen que el fichero por debajo sólo se pueda procesar con nuestro programa metiendo varias capas de abstracción, pero realmente también están manejando archivos de texto, como hasta ahora…
– Jajajaja, ¡qué cabrón! ¡No hay huevos, Larry!
– Sujetadme la cerveza.

#define SELECT grep
#define ALTER sed
#define DELETE cut
#define DROP “>”
int make_program_look_bigger[1000000];

– Eres el puto amo, Larry. ¿Qué va a ser lo próximo, chicos? ¿Un lenguaje de programación que pueda convertir esta Sun 3500 en un 8086, con alguna excusa? ¿Qué se os ocurriría?
– Podemos meter un sleep en las líneas pares de nuestro código C y decimos que es independiente de plataforma.
– Jajajajajaja, no colará… Espera, ¿qué haces, James?
– Sujetadme la cerveza…

Evidentemente, situaciones como las anteriores se producen porque aunque sabemos que Unix es la religión verdadera, Kernighan, Ritchie y demás son sus dioses y algunos otros son sus profetas, aún así hay entre nosotros ateos (los llamaremos así para no ser crueles, aunque el nombre técnico es Human Malware), perfiles aparentemente técnicos que no han querido, sabido o podido ver la luz verdadera; los perfiles no técnicos están disculpados, porque Unix no ha iluminado sus vidas aún. Todos conocemos a algún ateo: son los que siempre buscan soluciones complejas a problemas triviales. Preguntadle a cualquier creyente cómo realizar una operación sobre, pongamos, un log, y con una línea de awk lo resolverá. Preguntadle a un ateo y definirá una estructura en base de datos, parseará el log con un programa en Java que tira de varias librerías bajadas de github para convertirlo en un XML, para luego insertarlo en la base de datos de antes, y montará un comité para determinar aspectos críticos, como elegir los tonos pastel para la interfaz gráfica o analizar la ubicación de los botones en una aplicación web que conecta vía API contra un servidor en cloud que a su vez aplica técnicas de machine learning sobre el puto log. ¿Y esto para qué? Para sacar las líneas que contienen la cadena “foo”. Ojo, en el tercer campo, ahí es nada.

Dentro de esa familia que estamos denominando amablemente “ateos” podemos diferenciar varios tipos característicos; son los siguientes:

Proceseitor. Lo arregla todo con comités, procesos, procedimientos, controles, controles de los controles, seguimientos periódicos y derivados. Realmente esta subespecie no es un ateo, sino que es peor: está intentando convertir gente a otra religión, ITIL, considerada como secta destructiva en muchos entornos. Debe considerarse a proceseitor como ALTAMENTE PELIGROSO y, en caso de encontrase con uno, se recomienda no acercarse a él y avisar inmediatamente a las autoridades; también podemos cambiarles alguna de sus obras de cabecera, como Coaching for IT Strategists: a fist fucking approach, por un ejemplar de The Magic Garden Explained o The Design of the Unix Operating System, lo que conseguirá una combustión espontánea en cuanto comiencen la lectura.

Visual developer. Programador que no sabe usar punteros y por tanto reniega de C; el scripting no es una alternativa porque “son ñapas”. Ante un problema (“especificación de requisitos” le llaman) analiza durante días la situación, hace comparativas entre varias tecnologías, monta unos entornos de desarrollo para realizar benchmarkings y, en seis meses, determina que va a desplegar diez capas de abstracción para empoderar al usuario en su relación con la tecnología y evitar así el tratamiento personalizado del dato. Ríete tú de ISO/OSI. Por supuesto el programa nunca funcionará, pero será por culpa de una especificación de requisitos incorrecta; en estos casos, invitar al ateo leer e interiorizar las Sagradas Escrituras, The C Programming Language y The Unix Programming Environment, puede ser útil, aunque no tanto como un disparo en la rodilla.

Segurata. Acaba de actualizar su LinkedIn para poner que es “Senior Security Architect, Red Team Leader and Chief Strategist Hacker” porque se ha leído un manual de metasploit mientras acaba el máster y ya va a tope, con su Kali Linux y sus menús; por supuesto, prefiere ese manual al Computer Networks o al Modern Operating Systems de Tanenbaum, porque Tanenbaum no es jaker y además usa troff, y eso no es cool… Al contrario que en el caso anterior, el disparo en la rodilla suele ser contraproducente, porque el ateo seguiría molestando y encima se pondría paranoico, activando en su vida el modo MOSSAD_CLAIMS_FOR_ME y siendo aún más pesado; es más efectivo modificar su /etc/hosts para apuntar www.sgae.es a www.fsb.ru, convencerlo para atacar a la SGAE por el tema del canon de los CD, que nunca pasa de moda, y dejar que la naturaleza siga su curso.

DevOps. Administra máquinas Ubuntu y se ha comprado una Raspberry, así que lo debemos considerar devops, porque cree que es un BOFH de verdad pero de vez en cuando se le escapan palabros como XML o agile. Acude regularmente a encuentros endogámicos donde algunos devops explican a otros devops cosas de devops, con dockers y tal, y cuenta la leyenda que una vez uno de ellos recompiló un núcleo Linux y no se lo contó a los demás. A Quarter Century of Unix History puede ser un buen detalle con estos ateos, para que sean conscientes de que muchas cosas no las han descubierto ellos, como también puede serlo un teclado sin intro, que nunca viene mal en estos casos. Y si además nos lo queremos pasar bien, tampoco está mal meterles el evil.sh en su .bash_profile.

El usuario. Aunque se considera a sí mismo un perfil técnico porque una vez consiguió salir de vi y se hizo youtuber e instagramer a la vez, realmente sus conocimientos no son muy amplios y debemos considerarlo un usuario. De vez en cuando dice frases como “Nosotros, los técnicos” o “Aquí todos venimos de la parte técnica”, que te suenan como cuando los gibraltareños dicen “Nozotro lo ingleze”. Ante este tipo particular de ateo no podemos recomendar ninguna lectura, sólo comprensión y paciencia, y también hablarles despacito para que no hagan swap; por otro lado, es fácil -y divertido, hay que decirlo- entretenerlos con algunos palabros sabiamente combinados para que no molesten, como “Es que en el red team estamos trabajando con una VPN a través de USB que envía paquetes TCP a dispositivos IoT”. Ale, a procesar, campeón.

¿Qué hacemos con esta gente? Guardad el AK-47, por favor, que os veo venir y no debemos legislar en caliente. La situación es compleja, principalmente porque los ateos no tienen depredadores naturales y, sobre todo en los últimos años, se han dedicado a reproducirse de manera exponencial; si os cruzáis con uno podéis regalarle condones para frenar su tendencia reproductiva, pero un consejo: jamás os hagáis los héroes, que esta gente ya no tiene nada que perder, como los administradores de Lotus Notes, y pueden incluso ponerse agresivos. Por ejemplo, a proceseitor le molestan especialmente cosas como que alguien se salte el paso 3, punto 3.8, apartado 3.8.A, párrafo 3.8.A.c, línea 3.8.A.c.XVI, del procedimiento “Gestión de recursos informáticos corporativos en plena sinergia con el negocio”, que dice que todo renice debe ser aprobado mediante un burofax con el sello oficial, firmado por el IT Manager y dirigido al Business Strategist de la organización. Se pone nervioso, le da vueltas la cabeza y empieza a hablar en ITIL.

En SAW no tenemos la solución mágica para hacer frente al colectivo de ateos que pululan en las organizaciones; algunos ingenuos piensan que se pueden recuperar con iniciativas sencillas, por ejemplo con campañas donde se use el hashtag #AdoptaUnAteo (#AdoptALuser) para enviarles indirectas simpáticas que traten de marcarles el buen camino, del tipo “biff también avisa de nuevos mensajes… desde hace 40 años y sin soniditos ridículos, imbécil #AdoptaUnAteo”, “Menos stackoverflow y más RTFM #AdoptaUnAteo” o “No abras ficheros CSV con Excel, hijo de puta! #AdoptaUnAteo”. Pero nosotros sabemos que esto no funcionará: ni devolverá al ateo al camino verdadero ni tampoco conseguiremos que convierta el agua en vino. Por eso miramos a la Historia: ¿qué se ha hecho de siempre con la gente que abandona la religión verdadera? Dos cosas: exorcismos y sacrificios humanos. Punto.

Si vamos a exorcizar ateos, por ejemplo poseídos por systemd, debemos ir con cuidado; desde SAW recomendamos que un exorcismo lo ejecuten sólo profesionales, porque si sale mal nos confiamos, creemos haberlo recuperado y un día nos encontramos al falso creyente diciendo en un foro que ifconfig está deprecated. Cuando se dé cuenta de que vamos a exorcizarlo, el ateo tratará de confundirnos para hacernos creer que ha visto la luz verdadera; puede decir cosas en idiomas desconocidos, fruto de la posesión, del tipo “Powered by Solaris…” o “alias nano=‘rm -f’”, pero no nos dejemos engañar: al acercarle el Essential System Administration, su solo contacto le producirá quemaduras, comenzará a girar la cabeza 180 grados, a escupir espuma por la boca y a soltar blasfemias como “Has visto lo que ha hecho la cerda de tu hija”, “Tómame, tómame” o “Yo soy el Maligno y capturo SIGKILL”. Cuidado. Aquí es cuando el exorcista, un profesional, arrojará varios SIGTERM contra el PID del ateo y pronunciará unas palabras sagradas para liberar su alma:

Te exorcizamos Espíritu Inmundo, quienquiera que seas, Java, XML o Word. En el nombre de Unix seas arrojado de las almas de la religión verdadera. No oses oscurecer a los elegidos a quienes pretendes hacerte semejante; te lo ordena Brian, te lo ordena Dennis, te lo ordena Rob, que se hicieron carne y habitaron entre nosotros. Que los descendientes de MULTICS se apiaden de ti, que la pureza de un buen script limpie tu alma, que uses goto cuando tengas que usarlo. Unix es la senda y yo soy su pastor, así está escrito en mi GECOS. Hosanna, K&R, limpiad esta alma.

En este momento el ateo debe mostrar signos de reconversión, por ejemplo desinstalando la máquina virtual de Java o recitando de memoria la página man de getpwent(3). Si no es así ya debemos rociarlo de SIGKILL o, directamente, ejecutar un shutdown, que es el último recurso del exorcista antes de pasar a mayores: si el exorcismo no funciona ya sólo nos queda el sacrificio humano. Por ejemplo, en SAW, desde el fallecimiento de Ritchie hace más de siete años, mensualmente sacrificamos en su honor a un ateo en la hoguera, a la antigua, con encanto; lo hemos puesto en el cron y así no falla, que si no luego se reencarnan en consultores ISO y la liamos. Pero no penséis que es un simple kill -9, no: antes de quemarlo lo abrimos en canal con un CD donde están las fuentes de System V, nos comemos sus vísceras, bebemos su sangre y rezamos dos scriptnuestros para que aquellos dioses que se hicieron carne en los 70 vuelvan a poner cordura en este mundo 4.0 que nos rodea. Todo esto en honor a los creadores de maravillas como Unix, C o awk y, por qué no, también porque nos gusta.

DISCLAIMER: Todo este post está basado en hechos ficticios y no refleja en ningún momento opiniones personales del autor, efectivamente y no. Cualquier parecido con la realidad es pura coincidencia.

Laboratorio de Hacking (II): Portal cautivo Zsun Wifi Card Reader (2ª parte)

Vamos con la segunda parte del artículo sobre el portal cautivo Zsun Wifi Card Reader (ver 1ªparte).

Necesitamos que nuestra aplicación PHP sea la fachada de nuestra red Wifi pero también necesitamos acceder a OpenWRT para administrarlo debidamente. Esto podemos hacerlo si ejecutamos LuCI (la interfaz web de OpenWRT) en un puerto alternativo. Instalaremos Lighttpd y PHP para alojar nuestro portal, y moveremos uHTTP y LuCI en el puerto 8080. Hay que comentar que Lighttpd es capaz de manejar certificados SSL y reescrituras de URL para que podamos configurar nuestro portal cautivo. [Read more…]

Laboratorio de Hacking (II): Portal cautivo Zsun Wifi Card Reader (1ª parte)

Este pequeño aparato nos puede hacer la vida más fácil en nuestro laboratorio, ya sea con la configuración que viene de serie o instalándole nosotros OpenWRT para ganar funcionalidades.

ZSUN Wifi Card Reader

  • Memoria RAM: 64MB
  • Memoria Almacenamiento: 16MB Flash + MicroSD
  • SoC: Atheros AR7240 CPU (400Mhz) + Atheros AR9331 Chipset (Wifi Integrado)
  • Conectividad: 802.11 b/g/n Wi-Fi hasta 150Mbps
  • Alimentación: Puerto USB

El dispositivo tiene pines GPIO, y para acceder a algunos de ellos es necesario separar las dos placas, cosa que no es recomendable porque nos quedaríamos sin puerto microSD. [Read more…]