25 sept 2023

Introducción a AMSI

 


¡Muy buenas a todos! Hoy vamos a sumergirnos en el mundo del AMSI. Seguro que has oído hablar de él, pero ¿sabes realmente cómo funcionan? Bueno, ¡no te preocupes! Estamos aquí para explicarte todo lo que necesitas saber de una manera sencilla y amigable.

Imagina que estás escribiendo código y quieres que se ejecute en tu equipo. Los lenguajes interpretados, en lugar de compilar el código a código máquina antes de ejecutarlo, estos lenguajes utilizan un traductor especial llamado intérprete. Este intérprete se encarga de traducir y ejecutar las instrucciones, línea por línea, a medida que las encuentre.

Con los lenguajes interpretados, no solo puedes tener tus instrucciones en un archivo en tu disco duro, sino que también tienes la opción de pasar las instrucciones directamente al intérprete. Esto significa que el contenido no necesita tocar el disco duro en ningún momento.

Ahora, hablemos de algo importante: la diferencia entre el malware en el disco y en la memoria RAM. Para los antivirus, analizar el disco duro es relativamente sencillo. Muchos antivirus leen el disco a medida que el usuario navega por las carpetas, lo que les permite realizar un análisis eficiente. Si detectan una firma asociada a un malware, saltará una notificación y el archivo malicioso será puesto en cuarentena. Sin embargo, la detección de malware que ya está inyectado en la memoria RAM es mucho más compleja por dos razones:
  •  La memoria RAM es muy cambiante, lo que convierte en algo muy complejo de analizar.
  • Una vez un proceso está ya en RAM, esas instrucciones están en ejecución, y en caso de ser un malware, podría haber realizado ya las acciones maliciosas, haberse migrado de proceso y borrado el rastro principal, etc.

Ahora que hemos aclarado eso, déjame presentarte a nuestro protagonista de hoy: el AMSI (Antimalware Scan Interface). El AMSI nace como respuesta a la difícil tarea de analizar la memoria RAM y la necesidad de examinar las ejecuciones antes de que ocurran. Microsoft la desarrolló en forma de API, de tal manera que las soluciones de seguridad puedan llamar a las funciones implementadas.

¿Qué significa esto en términos más sencillos? Básicamente, proporciona una forma de capturar comandos en tiempo de ejecución, como los de PowerShell, JScript, VB/VBA y .NET. Una vez capturados, los enviará al antivirus, para que este lo analice antes de ejecutarlos. Si el antivirus determina que el comando es malicioso, el AMSI notificará a la aplicación y evitará su ejecución.

A pesar de que no todos AV/EDR utilizan AMSI como medida de protección, cada vez son más lo que la incluyen, por lo que es fundamental entender cómo funciona. Una vez sabemos el por qué existe AMSI y cuál es su cometido, es hora de entender exactamente cómo es el flujo normal de su funcionamiento.

La diferencia entre un programa y un proceso es que el programa son instrucciones para un cometido específico, y un proceso son las mismas instrucciones que tiene el programa, pero añadiéndole zonas de memoria reservadas para variables y otras necesidades.

En Windows, se utilizan las DLL (Dynamic Link Libraries) para extender la funcionalidad de un programa. Cuando un programa se carga en RAM en forma de proceso, y carga una DLL, las funcionalidades se integran directamente dentro de la zona virtual del proceso. Por ejemplo, en cuando se ejecuta PowerShell, DLLs como ntdll, kernel32 y AMSI forman parte de la memoria del proceso.

Pongamos un ejemplo. Tenemos un proceso PowerShell, desde el cual se va a tratar de lanzar comandos, y en el equipo está instalado y activado Windows Defender. Vamos a explicar el flujo de comunicación en cuanto a AMSI se refiere.

Sabemos que AMSI es una librería dinámica que se carga en procesos como PowerShell, que está pensada para que actúe como intermediario entre el propio proceso y el AV/EDR.

En el momento que se introduce un comando, PowerShell, mediante el uso de funciones de la API AMSI, se comunicará con el proceso Windows Defender para enviar el contenido del comando. Windows defender lo analizará y enviará en forma de respuesta si lo que se está ejecutando es malicioso o no.

La comunicación entre el proceso que usa AMSI y Windows Defender se realiza mediante RPC. RPC es una forma que tiene Windows para comunicar varios procesos (pudiendo ser procesos que se encuentran en diferentes equipos). Básicamente, es una implementación estándar que permite comunicación por red entre procesos con la arquitectura cliente-servidor.

En resumen, AMSI como tal no es una medida de seguridad (porque no es quien analiza si hay malware o no), es un estándar mediante el cual los procesos como PowerShell envían datos al AV/EDR (mediante RPC), de tal forma que se pueda determinar si ejecutar un comando sería perjudicial para el equipo. En base a lo que devuelva la medida de seguridad en cuestión, PowerShell lo ejecutará o no.

Y por hoy ¡ya está bien!, continuaremos con AMSI en futuras entregas, dejando las RPC entre tus neuronas para que no sufran inundaciones.

Juan Gabriel Ruiz, Senior Security Analyst at Zerolynx y Justo Martín, Security Analyst at Zerolynx.



18 sept 2023

Riesgos corporativos derivados del uso de ChatGPT

 


A final del mes de noviembre de 2022 se publicó el prototipo de chatbot de inteligencia artificial (IA), ChatGPT, desarrollado por la organización OpenAI. Unos meses más tarde, en marzo de 2023, se lanzó la última versión del chatbot, el modelo GPT-4. Su uso comenzó a popularizarse llevando a algunos países como Italia a plantear cómo el servicio gestionaba la información que se le proporcionaba. Posteriormente, el país bloqueó ChatGPT por incumplimiento sobre la protección de datos personales durante veinte días. Tras dicho periodo OpenAI realizó una serie de cambios para seguir operando, como: mostrar de forma detallada qué datos personales se recopilan, cómo se procesan y la posibilidad de que los usuarios se nieguen a que los datos se usen en otras IAs. Actualmente la Unión Europea se encuentra en proceso de elaboración de la primera norma sobre IA, esta afectaría también a la IA generativa utilizada por ChatGPT[1]. Se espera que esté lista a finales de 2023.

La aparición de ChatGPT como servicio abierto al público supuso un nuevo momento histórico del ámbito cibernético. Gran cantidad de usuarios desafiaron con su ingenio a la IA y probaron su usabilidad, muestra de ello los 67 millones de resultados de Google ante la pregunta ¿Para qué usar ChatGPT? Las respuestas a la cuestión son amplias y variadas, sobre gran cantidad de ámbitos, donde cabría mencionar el uso con intención maliciosa del servicio: generación de nuevos malware o contenidos para un phishing más eficaz.

Para los usuarios la capacidad de la IA para resolver los problemas rápidamente ha prevalecido ante el hecho de que se trata de un servicio prestado por una organización y que esta podría obtener beneficios en un futuro gracias al entrenamiento y los datos proporcionados. No obstante, OpenAI se presenta como una organización sin ánimo de lucro y con el objeto de crear una IA segura para la humanidad. Esto habría participado en la generación de confianza sobre los consumidores.

Asimismo, parece olvidado aquello de que “la información es poder”. La confianza de los usuarios podría haber colaborado en este olvido masivo. Hoy en día, la exposición en Internet de una persona media es bastante alta y se carece de perspectiva sobre las consecuencias que esto puede conllevar. En esta línea, los usuarios realizan peticiones a ChatGPT que conllevan proporcionarle información personal o confidencial como, por ejemplo: generar un curriculum vitae, redactar un contrato legal, seleccionar entre varios documentos PDF a un candidato, etc.

Tal confianza en el servicio ha promovido la expansión del uso de la IA desde el plano personal al corporativo. Esta situación está llevando a que el establecimiento de límites sea una necesidad en las empresas. Grandes corporaciones como Samsung ya han prohibido o limitado su uso como consecuencia de incidentes relacionados con la pérdida de información corporativa.

Actualmente, existe controversia acerca del uso de la información que se le proporciona a ChatGPT, puesto que a pesar de que dicha tecnología afirma no almacenar los datos, numerosos usuarios habrían podido acceder a informaciones proporcionadas por otros (véase código de desarrollo de productos internos[2] o licencias para Windows 11 Pro[3]).

También se han detectado fallos en las respuestas proporcionadas, ya bien por ser falsas o por ser inventadas, como le sucedió a un abogado estadounidense que utilizó ChatGPT para su argumentación jurídica en un escrito que presentó a juicio y en el que la IA inventó precedentes legales inexistentes, por lo que ahora podría ser sancionado[4].

Además, cabe recordar que ChatGPT tampoco es infalible en el ámbito de la ciberseguridad. Como servicio, para su utilización requiere de usuario, cuenta de correo electrónico, número de teléfono móvil y contraseña. En la actualidad ya se han detectado las primeras filtraciones de datos con la exposición de unas 100.000 cuentas de usuarios[5]. En la información filtrada aparte de contener la necesaria para el acceso al servicio también se encontraría aquella enviada a ChatGPT, es decir, el registro de las conversaciones mantenidas con la IA por un usuario en concreto.

En síntesis, los riesgos corporativos derivados del uso de la IA son numerosos y variados como la utilización en las consultas de información personal o confidencial (propiedad de la empresa o sobre de la que es responsable en su gestión), las posibles brechas de seguridad y las filtraciones de datos en el servicio e incluso la aceptación de la premisa de que el juicio de la IA es de mayor valor que el de uno mismo. Por todo esto, las organizaciones tendrán que preguntarse: ¿vale la pena asumir estos riesgos?


Noelia B., Analista de Inteligencia.