Un handbook de Base64 para analistas de seguridad


El esquema de codificación Base64 se utiliza a menudo para ocultar los elementos de texto sin formato en las primeras etapas de un ataque que no se pueden ocultar bajo el velo del cifrado. He aquí cómo ver sus trucos.

Si tiene niños pequeños, se identificará con el valor de poder hablar en código. Durante unos años, pude usar Pig Latin para hablar de manera encubierta con mis hijos. Fue útil y sorprendentemente efectivo, hasta que decodificaron el esquema y comenzaron a hablar en latín de cerdo frente a mí. Superposición de Artypay.

Pienso en esto cada vez que soy testigo de ataques en los que las piezas están codificadas (no cifradas) para ocultar lo que está sucediendo. Una de estas codificaciones suele ser Base64. ¿Por qué esto es tan común? La mayoría de las máquinas hablan Foundation64, pero la mayoría de los analistas de seguridad no.

En esta publicación, explicaré qué es el esquema de codificación Foundation64, luego discutiré cómo se usa tanto para el bien como para el mal. A continuación, analizaré algunas aplicaciones de detección comunes de Foundation64 y dónde a veces se quedan cortas, dando consejos sobre lo que puede hacer para fortalecerlas. Finalmente, abordaré algunos otros algoritmos de codificación en la naturaleza para ayudar a completar el tema y tal vez darle la capacidad de calcular cuándo los malos pueden estar tratando de ocultar algo.

¿Qué es Foundation64?
Foundation64 es un esquema de codificación que puede tomar cualquier entrada binaria y representarla usando un conjunto de 64 caracteres ASCII. Es importante tener en cuenta que Base64 es no cifrado es un esquema de codificación, por lo que decodificarlo es trivial. Las herramientas de codificación / decodificación de Foundation64 sencillas y gratuitas son fáciles de encontrar en línea.

La codificación en Foundation64 es una operación inflacionaria: la cadena de entrada de 11 caracteres «Hello Entire world» se convierte en 16 caracteres en Base64.

«Hola mundo» – (Foundation64Encode) -> «SGVsbG8gV29ybGQ =»

Veamos algunas cadenas de Base64 más.

«Cadena secreta» => U2VjcmV0IHN0cmluZw ==

«Asegúrate de beber tu ovaltine» => QmUgc3VyZSB0byBkcmluayB5b3VyIG92YWx0aW5l

Todos contienen caracteres del conjunto (A-Za-z0-9 / +) y pueden terminar con -2 signos iguales. ¿Por qué estos personajes? El propósito de Base64 es codificar cualquier cosa (es decir, datos binarios) en los caracteres que se transportan fácilmente mediante protocolos de solo texto.

Por ejemplo, el correo electrónico se diseñó originalmente solo para transportar datos de texto. A medida que el correo electrónico evolucionó, los protocolos que lo entregaban no lo hicieron. No era posible adjuntar documentos binarios como imágenes y archivos multimedia. El camino de menor resistencia para permitir que el correo electrónico progresara fue crear un esquema de codificación de binario a texto en lugar de alterar el protocolo.

Una faceta del protocolo SMTP que aclara esto es el indicador de fin de mensaje. En SMTP, la señal que united states un cliente de correo electrónico para mostrar el remaining de un mensaje es que proporcione una sola línea que contenga solo un punto. (Los detalles de implementación del protocolo SMTP, aunque largos, son sorprendentemente fáciles de leer: https://tools.ietf.org/html/rfc2821. ¿No es extraño este truco de período? ¿Qué pasa si un autor de correo electrónico quisiera enviar una sola línea con un punto en su correo electrónico?) Envíe datos arbitrarios (que no sean de texto) como parte del cuerpo del mensaje y posiblemente podría interferir con esta función de protocolo, y probablemente con otras también.

Otro ejemplo legítimo común del uso de Foundation64 es incrustar datos binarios sin procesar (por ejemplo, imágenes) en línea con páginas html. Después de todo, HTML es un protocolo de solo texto, y si desea llevar una imagen directamente en la página, en lugar de un hipervínculo para que el navegador tome una conexión separada, Foundation64 es su respuesta.

¿Por qué los atacantes pueden usar Foundation64?
Base64 se usa a menudo para ocultar los elementos de texto sin formato de un ataque que no se pueden ocultar bajo el velo del cifrado. Busque el uso de Foundation64 en las primeras etapas de los ataques, cuando la brecha es limitada.

El uso de cifrado genuine es difícil durante las primeras etapas del ataque porque el cifrado requiere herramientas e intercambio de claves. El adversario no puede garantizar la disponibilidad de las herramientas criptográficas necesarias. y accesible en el host de la víctima para descifrar cualquier cosa. Pero las herramientas Foundation64 son mucho más ubicuas.

Incluso si suponemos que las herramientas no son un problema, llevar una clave simétrica con la carga útil cifrada anula el propósito Las claves asimétricas no son una solución, ya que esto requiere tanto infraestructura como mayor exposición. Cuando un adversario united states of america cifrado, generalmente ocurre más tarde en el ataque y se suma a la infraestructura de terceros.

Ejemplos:
Repasemos un sencillo ejercicio de codificación. La codificación de las dos letras «IN» en Foundation64 se convierte en «SU4 =». Al igual que:

¡Importante!
Hay una gran conclusión para asimilar al mirar las tablas y el ejemplo: no hay una traducción directa entre ASCII y su equivalente en Foundation64. En otras palabras, el carácter «A» se traduce en tres representaciones diferentes en Foundation64 dependiendo de cuál sea el desplazamiento. Es este malentendido el que está en la raíz del problema con muchas detecciones de seguridad de Foundation64.

Estas cadenas codificadas ilustran esto:

«Cadena secreta» = Base64 => U2VjcmV0IHN0cmluZw ==

«UNCadena secreta «= Foundation64 => QVNlY3JldCBTdHJpbmc =

«Automóvil club británicoCadena secreta «= Base64 => QUFTZWNyZXQgU3RyaW5n

— Ahora que anteponemos más caracteres, las cosas comienzan a repetirse —

«AAACadena secreta «= Base64 => QUFBU2VjcmV0IFN0cmluZw ==

Una detección que mira la versión Foundation64 de «Top secret String» debe considerar que tiene tres representaciones.

Técnicas comunes de análisis de Base64 y descuidos
Al analizar una cadena que se cree que son datos de texto sin formato ocultos con Base64, es importante recordar que la cadena sospechosa puede ser solo un fragmento. Puede ser necesario agregar relleno al principio y ajustar el relleno al final para sacar el texto decodificado. Veamos un ejemplo usando el Herramienta CyberChef.

(«Técnicas de análisis y descuidos», continúa en la página 2 de 2)

Daniel Smallwood es ingeniero sénior de investigación de amenazas en IronNet, la compañía que cierra la brecha entre los enfoques tradicionales de ciberseguridad y la amenaza moderna. Antes de IronNet, Daniel pasó más de 18 años en seguridad y desarrollo de program para empresas … Ver biografía completa

Anterior

1 de 2

próximo

Lectura recomendada:

Más información





Enlace a la noticia authentic