presencia local en: argentina - chile ... … · argentina - chile ... los sistemas operativos y...

12
Presencia local en: Argentina - Chile - Colombia - Perú www.neosecure.com

Upload: trinhtuyen

Post on 06-Oct-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Presencia local en: Argentina - Chile ... … · Argentina - Chile ... Los sistemas operativos y aplicaciones que corren sobre los mismos utilizan varios ... en cuyo caso el riesgo

Presencia local en: Argentina - Chile - Colombia - Perúw w w . n e o s e c u r e . c o m

Page 2: Presencia local en: Argentina - Chile ... … · Argentina - Chile ... Los sistemas operativos y aplicaciones que corren sobre los mismos utilizan varios ... en cuyo caso el riesgo

Los sistemas operativos y aplicaciones que corren sobre los mismos utilizan varios tipos de recursos de hardware, como son: el teclado, la pantalla, la red, el acceso a un disco externo, un lector de códigos de barra, un Pinpad, lector de tarjetas, etc. Todo esto, dependiendo del propósito con que se haya diseñado una aplicación. En algún momento dado los datos que llegan desde estos periféricos son procesados por las aplicaciones y se mantienen por un tiempo dentro de estructuras de datos en la memoria princi-pal (RAM). Este tiempo depende principalmente de cómo fue construida la aplicación por el programa-dor, teniendo casos en que el dato permanece en memoria hasta que el sistema operativo es reiniciado y otros que permanecen solo por fracciones de segundos. El sistema operativo tiene aplicaciones y sucede lo mismo con los datos que son procesados, por ejemplo, la aplicación que solicita al usuario sus credenciales para iniciar sesión en algún momento guardará el username y el password en texto claro en alguna estructura de datos antes de que ésta sean procesada.

Por un tema práctico, los sistemas operativos modernos incluyen mecanismos de apoyo para que los programadores puedan depurar las aplicaciones mientras corren y de esta manera poder resolver problemas en la lógica de programación. Estos mecanismos permiten que una aplicación dada, por ejemplo el entorno de desarrollo del programador, pueda conectarse a otro proceso y leer su memoria para realizar la depuración. Incluso, a través de este mismo mecanismo es posible para un proceso modificar la memoria de otro proceso.

En este paper se describirá cómo es posible aprovechar esta característica de los sistemas operativos y ejecutar una técnica llamada “RAM Scraping”, para extraer los datos de interés de una aplicación cualquiera.

01SECCIÓN

Paper Investigación Hugo Saavedra

Subgerente Innovación - NeoSecure

En la Subgerencia de Innovación se estudian las diferentes amenazas con el objetivo de entender cómo operan y así

definir y probar los mejores controles de seguridad para proteger a nuestros clientes.

INTRODUCCIÓN

Page 3: Presencia local en: Argentina - Chile ... … · Argentina - Chile ... Los sistemas operativos y aplicaciones que corren sobre los mismos utilizan varios ... en cuyo caso el riesgo

Antes de entender la técnica, es necesario entender qué son las estructuras de datos en programación y cómo estas son manejadas en la memoria de una aplicación que corre sobre un sistema operativo.

Una estructura de datos no es más que una forma de organizar datos en una aplicación para que al programador le resulte más fácil su procesamiento. Cada aplicación requiere de estructuras de datos diferentes y cada programador las puede definir a su elección. A continuación se presenta un ejemplo práctico de una estructura de datos que define los atributos de una persona y el tipo de dato asociado:

Struct Persona { Nombre: TipoDato, Apellido: TipoDato, Dirección: TipoDato, Email: TipoDato, Fono: TipoDato}Entonces, el programador asigna de la siguiente manera los datos a esta estructura:Persona.Nombre = “Juan”;Persona.Apellido = “Rodriguez”;Persona.Dirección = “La Concepción 1760”;…Etc.

Suponiendo que se leyeron varios registros de personas y se almacenaron en una lista enlazada en la memoria de la aplicación llamada “agenda.exe”, y si se realizara una copia de la memoria mediante el siguiente comando:

C:\forense\Win64dd.exe /d /f c:\memory.dmp

Al abrir el archivo memory.dmp, se vería es algo similar a la figura 1 al ubicar los segmentos de memoria que contienen la estructura de datos.

02SECCIÓN

DESCRIPCIÓN TÉCNICA

Page 4: Presencia local en: Argentina - Chile ... … · Argentina - Chile ... Los sistemas operativos y aplicaciones que corren sobre los mismos utilizan varios ... en cuyo caso el riesgo

02SECCIÓN

Muchos de los datos de la memoria de la aplicación contienen valores que no son interpretables por un humano, puesto que puede ser código de máquina, punteros y otras estructuras internas. Entonces, el RAM Scraping no es nada más que descartar los segmentos con código de máquina y filtrar los datos irrelevantes para posteriormente buscar los datos de interés.

Siguiendo este mismo ejemplo, el resultado de ejecutar el RAM Scraping de la aplicación agenda.exe se vería como:

C:\forense\ramscrap.exe -f c:\memory.dmpJuan RodriguezLa Concepción [email protected]

PedroOrmazabalLa Concepción [email protected]

Figura 1: Memory Dump

Page 5: Presencia local en: Argentina - Chile ... … · Argentina - Chile ... Los sistemas operativos y aplicaciones que corren sobre los mismos utilizan varios ... en cuyo caso el riesgo

02SECCIÓN

Técnicamente se requieren de 4 pasos para realizar el RAM Scraping bajo el sistema operativo Windows, los cuales se describen a continuación:

Buscar el proceso de interés, para el cual se extraerán los datos desde memoria

Elevar los privilegios a SE_DEBUG_NAME

Abrir el proceso de interés con la llamada a sistema “OpenProcess”

Realizar el dump de memoria y el RAM Scraping

Para los pasos 1 a 3 existen herramientas públicas, siendo el foco de este estudio el paso 4 el cual se lleva a cabo con diferentes técnicas. Por ejemplo, algunas técnicas extraen toda la memoria, otras sólo las direc-ciones marcadas como “datos”, y otras además van filtrando en tiempo real los datos no legibles. Las técni-cas más avanzadas reconocen las estructuras de datos y validan que los datos extraídos coincidan con datos válidos, por ejemplo, información de tarjetas de crédito. Cada técnica supone un uso diferente de recursos de CPU y memoria, los cuales obviamente aumentan cuando aumenta la complejidad de la búsqueda en tiempo real.

Sería caótico si cualquier usuario pudiera leer la memoria de una aplicación cualquiera del sistema operati-vo. Es por esto que existen restricciones de seguridad y privilegios específicos para realizar este tipo de operaciones prácticamente en todos los sistemas operativos modernos. En general, se requieren privile-gios de administración o de depuración con el fin de leer y/o escribir en la memoria de una aplicación. Sin embargo, existen diversas técnicas de hacking que permiten a un atacante elevar sus privilegios y leer la memoria de cualquier proceso.

1.

2.

3.

4.

Page 6: Presencia local en: Argentina - Chile ... … · Argentina - Chile ... Los sistemas operativos y aplicaciones que corren sobre los mismos utilizan varios ... en cuyo caso el riesgo

La técnica de RAM Scraping se ha venido utilizando silenciosamente desde inicios del año 2008 por una serie de amenazas del tipo malware. Sin embargo, hay herramientas disponibles públicamente que sirven más bien en la auditoria de seguridad de sistemas y que utilizan esta misma técnica desde varios años atrás.

3.1. Malware para PoS

El malware destinado para equipos de punto de venta (PoS en inglés) tiene por objetivo capturar en claro los datos del Track 1 y 2 [*1] de tarjetas de crédito desde la memoria del POS. Esto es posible ya que a pesar de que la normativa PCI exige que los datos del Track 1 y 2 estén cifrados, los mismos se mantienen en la memoria RAM en texto claro por algunos instantes mientras son procesados. Normalmente el malware de PoS ejecuta el dump de memoria a intervalos de tiempo fijo (por ej. Cada 10 segundos) para luego realizar RAM Scraping ya sea en el mismo equipo PoS o uno externo con mayor poder de procesa-miento. Con este método los atacantes capturan gran parte de las transacciones, si es que no todas, con el riesgo de poder reproducir (clonar) las tarjetas de crédito, o de vender los registros en el mercado negro.

Los casos de empresas atacadas con este tipo de malware son múltiples e incluyen a empresas tales como: Target (70 millones de tarjetas), Home Depot (56 millones de tarjetas), Hilton Hotels (monto desconoci-do), por nombrar algunas. En estas empresas fue utilizado algún malware de las familias indicadas en la figura 2. En esta figura se puede apreciar cómo ha aumentado el número de familias en el tiempo, lo cual está directamente relacionado con el aumento de los grupos de hackers atacantes (Cyberdelincuentes).

03SECCIÓN CASOS DE USO DEL RAM SCRAPING

Figura 2: Familia de Malware PoS RAM scraper (Fuente: Trend Micro)*1: Referencia sobre Track 1 y 2 en https://www.q-card.com/support/magnetic-stripe-card-standards.asp

Page 7: Presencia local en: Argentina - Chile ... … · Argentina - Chile ... Los sistemas operativos y aplicaciones que corren sobre los mismos utilizan varios ... en cuyo caso el riesgo

03SECCIÓN 3.2. Captura de credenciales y tokens de autenticación

3.2.1. Captura de tokens

Cada vez que en un servidor Windows un usuario se autentica se genera un token. Este token permane-ce en la memoria hasta el próximo reboot, y posee una copia del hash de la password que el usuario ingresó con el fin de evitar que el usuario esté reingresando su contraseña todo el tiempo cuando este trata de acceder a otros recursos de la red. Mediante RAM Scraping es posible obtener el token completo y utilizarlo en un ataque llamado “Pass-the-hash”, en el cual un atacante puede conectarse con los privilegios del usuario dueño del token a otros recursos de la red sin hacer uso de la contraseña. En la figura 3 se puede apreciar el resultado de la herramienta “Windows Credential Editor”, que muestra los hashes de los usuarios que han hecho inicio de sesión alguna vez en el servidor.

Normalmente, un atacante utilizará esta técnica para capturar el token del usuario Domain Admin, para luego acceder al Active Directory y crear un nuevo usuario con los mismos privilegios, pero con una contraseña conocida.

3.2.2. Captura de contraseñas

Mediante la misma herramienta anterior, y si los usuarios han realizado logon recientemente en el servidor, es posible recuperar las contraseñas en texto claro, tal cual se aprecia en la figura 4 (ofuscado debido a razones obvias). Esto es posible ya que el “formulario” de la aplicación que solicita la contraseña necesita guardar en texto claro la contraseña antes de calcular su hash, y como las estructuras de datos no son purga-das muy a menudo, el atacante puede encontrar las contraseñas en memoria.

Figura 3: Windows Credentials Editor ejecutando un RAM Scraping

Page 8: Presencia local en: Argentina - Chile ... … · Argentina - Chile ... Los sistemas operativos y aplicaciones que corren sobre los mismos utilizan varios ... en cuyo caso el riesgo

03SECCIÓN

Figura 4: Captura de credenciales con contraseña en texto claro

3.2.3. Captura de las credenciales de VPN

Lo mismo que sucede con los “formularios” que solicitan la contraseña de Windows puede ocurrir con práctica-mente cualquier aplicación que solicite alguna contraseña. Los clientes de VPN que se instalan en el sistema operativo también son vulnerables al RAM Scraping, en cuyo caso el riesgo podría ser mayor que el caso anterior, ya que el equipo víctima normalmente será un portátil conectado remotamente (desde el hogar) y en general sin contar con las protecciones perimetrales de la empresa. Luego, el atacante puede conectarse mediante las credenciales capturadas y utilizar un canal permitido y autorizado para perpetrarse en la red. Esto se puede apreciar en la figura 5 y 6.

Figura 5: Captura credenciales cliente VPN Figura 6: Ramscraping del cliente VPN

Page 9: Presencia local en: Argentina - Chile ... … · Argentina - Chile ... Los sistemas operativos y aplicaciones que corren sobre los mismos utilizan varios ... en cuyo caso el riesgo

03SECCIÓN

3.2.4. Captura de las credenciales de usuario de una aplicación Web

Utilizando herramientas de dump de memoria, apuntando a los procesos que atienden las solicitudes http y https, tales como Internet Information Services (IIS) y Apache, es posible capturar las credenciales de usuarios autenticándose en la aplicación Web independiente del cifrado SSL/TLS. Este proceso es posible ya que el proceso maneja los datos en texto claro cuando salen del túnel cifrado. Es relativamente sencillo realizar RAM Scraping ya que las palabras claves de búsqueda en el dump de memoria son fácilmente rescatables desde el formulario de autenticación de la aplicación. En la figura 7 se puede apreciar un formulario de login bajo conexión segura https.

Figura 7: Formulario autenticación

Uso de SSL

Luego de llenar el formulario con las credenciales de “John Smith” y hacer clic en “Sign in” la solicitud es derivada a la URL https://secure.bankofamerica.com/login/sign-in, por lo tanto, si se filtran de los dump de memoria los bloques que contienen las palabras “login/sign-in” es probable que se capturen las credenciales de todos los usuarios. En la figura 8 podemos ver un extracto de la memoria del proceso httpd (apache), simulando el Ramscraping en un laboratorio con la réplica del sitio Bank of America. En el dump de memoria claramente se puede apreciar que el usuario, correspondiente al campo “Access_ID”, y la contraseña, correspondiente al campo “passcode”, están en texto claro.

Page 10: Presencia local en: Argentina - Chile ... … · Argentina - Chile ... Los sistemas operativos y aplicaciones que corren sobre los mismos utilizan varios ... en cuyo caso el riesgo

03SECCIÓN

Figura 8: Ramscraping del proceso Apache

3.2.5. Captura de credenciales de forma genérica

En general, la técnica de RAM Scraping ha ido reemplazando en el tiempo a la técnica de keylogging para el robo de credenciales de cualquier tipo de aplicación o sistema operativo, puesto que los antivirus han incorpo-rado controles de seguridad bastante robustos que impiden capturar las teclas pulsadas por los usuarios. Adicionalmente, el hackear estos controles de seguridad anti-keylogging es un acción muy evidente y fácil de detectar, por lo que el hacker no podría pasar inadvertido.

Page 11: Presencia local en: Argentina - Chile ... … · Argentina - Chile ... Los sistemas operativos y aplicaciones que corren sobre los mismos utilizan varios ... en cuyo caso el riesgo

04SECCIÓN

CONCLUSIONESLa técnica de RAM Scraping no ha evolucionado mucho, pero lo que ha evolucionado es su uso en ataques avanzados (APT). En las primeras versiones se observó una operación bastante básica, que consiste en los siguientes pasos:

i) Infección: se introduce el malware mediante downloader, exploit o cualquier otra técnica

ii) Búsqueda: busca una lista de procesos predefinidos (codificado en duro)

iii) RAM Scraping: se realiza el dump de memoria de los procesos seleccionados

iv) Extracción manual: mediante un proceso manual se extraen los archivos de dump

En el tiempo se han ido agregando diversas técnicas que apuntan a que el proceso sea más eficiente. El proceso de infección se ha mejorado notablemente al punto que los antivirus sólo detectan entre el 10% y 15% de estas amenazas.

El proceso en general ha sido dividido en más partes, con el fin de que cada una sea más específica. Por ejemplo, para el proceso de RAM Scraping: el dump de memoria, la búsqueda de los datos mediante expre-siones regulares, el filtrado de la información irrelevante y la escritura en archivos de forma cifrada.

La extracción manual de los datos ha sido cambiada por técnicas de exfiltración avanzadas, por ejemplo: dividir los archivos en varios paquetes pequeños, controlar el horario de extracción para coincidir con los horarios peak de la red, utilizar comunicaciones cifradas (SSL), utilizar canales encubiertos, etc.

Como conclusión final, la evolución del RAM Scraping parece ir por la vía de permanecer oculto mientras se extraen la mayor cantidad de datos relevantes posibles en un periodo corto de tiempo. Se debe considerar que se trata de una amenaza a la cual prácticamente la totalidad de los sistemas y aplicaciones son vulnera-bles y que no hay un único control de seguridad que solucione el problema.

Page 12: Presencia local en: Argentina - Chile ... … · Argentina - Chile ... Los sistemas operativos y aplicaciones que corren sobre los mismos utilizan varios ... en cuyo caso el riesgo

Debido a que el RAM Scraping es una de tantas técnicas utilizadas en los ataques APT, no hay un único control de seguri-dad que permita protegerse de esta amenaza. Además, como se indica en el punto anterior, es importante tener en cuenta la evolución, ya que es claro que la técnica se está optimizando rápidamente. Es por esto que se deben considerar mecanismos y controles de seguridad que mitiguen la posibilidad de un ataque avanzado.

Las siguientes son algunas recomendaciones que aplican para el caso de equipos PoS:

Generalidades: parches al día, antivirus, IPS de red y filtros de perímetros actualizados. Separación de redes: Aislar de Internet las cajas y dispositivos del tipo PoS, con el fin de minimizar la exposición

a malware. Desplegar un control de seguridad que detecte indicadores de compromiso y prevenga el avance de un ataque Desplegar un sistema de lista blanca, que sólo permita correr las aplicaciones autorizadas Asegurarse que las aplicaciones de negocio purguen de forma segura los datos de memoria y caché de disco.

Mantener datos confidenciales el menor tiempo posible en la RAM.

Por otro lado, se recomienda lo siguiente en usuarios y sistemas críticos para el negocio:

Realizar bastionamiento de los sistemas críticos, para disminuir la exposición de servicios innecesarios que puedan dejar una puerta de entrada para un ataque

- Desplegar un control de seguridad para detectar modificaciones a la configuración de equipamiento crítico (detección de problemas de integridad)

Monitorear a tiempo real los logs de todos los sistemas de seguridad Monitorear la actividad de los usuarios con altos privilegios, detectando desviaciones en el comportamiento de

línea base.

05SECCIÓN

CÓMO PROTEGERSE