Darse cuenta de que un vector de ataque se ha estado ejecutando en su red justo debajo de sus narices puede ser impactante. Usted hizo su parte al implementar lo que parecían ser defensas de seguridad efectivas, pero el atacante logró pasarlas de todos modos. ¿Cómo fue eso posible?
Podrían haber implementado la inyección de procesos insertando códigos maliciosos en sus procesos legítimos. ¿Cómo funciona la inyección de procesos y cómo se puede prevenir?
¿Qué es la inyección de proceso?
La inyección de procesos es un proceso mediante el cual un atacante inyecta códigos maliciosos en un proceso legítimo y en vivo en una red. Prevaleciente con ataques de malware, permite a los actores cibernéticos infectar sistemas de las formas más sencillas. Una técnica avanzada de ciberataque, el intruso inserta malware en sus procesos válidos y disfruta de los privilegios de esos procesos.
¿Cómo funciona la inyección de proceso?
Los tipos de ataques más efectivos son aquellos que pueden ejecutarse en segundo plano sin levantar sospechas. Normalmente, podría detectar una amenaza de malware describiendo y examinando todos los procesos en su red. Pero detectar la inyección de procesos no es tan fácil porque los códigos se esconden bajo las sombras de sus procesos legítimos.
Dado que ha incluido en la lista blanca sus procesos autorizados, sus sistemas de detección los certificarán como válidos sin ninguna indicación de que algo anda mal. Los procesos inyectados también eluden el análisis forense del disco porque los códigos maliciosos se ejecutan en la memoria del proceso lícito.
El atacante utiliza la invisibilidad de los códigos para acceder a todos los aspectos de su red a los que pueden acceder los procesos legítimos bajo los que se esconden. Esto incluye ciertos privilegios administrativos que no otorgaría a casi nadie.
Aunque la inyección de procesos puede pasar fácilmente desapercibida, los sistemas de seguridad avanzados pueden detectarlos. Por lo tanto, los ciberdelincuentes elevan el nivel al ejecutarlo de la manera más sencilla que estos sistemas pasarán por alto. Utilizan procesos básicos de Windows como cmd.exe, msbuild.exe, explorer.exe, etc. para lanzar tales ataques.
3 Técnicas de Inyección de Proceso
Existen diferentes técnicas de inyección de proceso para diferentes propósitos. Dado que los actores de amenazas cibernéticas conocen muy bien varios sistemas y su nivel de seguridad, implementan la técnica más adecuada para aumentar su tasa de éxito. Veamos algunos de ellos.
1. Inyección DLL
La inyección de DLL (Biblioteca de enlaces dinámicos) es una técnica de inyección de procesos en la que el hacker utiliza un biblioteca de enlaces dinámicos para impactar un proceso ejecutable, obligándolo a comportarse de maneras que no pretendía o esperar.
El ataque inyecta el código con la intención de anular el código original en su sistema y controlarlo de forma remota.
Compatible con varios programas, la inyección de DLL permite que los programas utilicen el código varias veces sin perder validez. Para que un proceso de inyección de DLL sea exitoso, el malware debe contener datos del archivo DLL contaminado en su red.
2. Inyección de PE
Una ejecución portátil (PE) es un método de inyección de procesos en el que un atacante infecta un proceso válido y activo en su red con una imagen PE dañina. Es más simple que otras técnicas de inyección de procesos, ya que no requiere habilidades de codificación de shell. Los atacantes pueden escribir fácilmente el código PE en C++ básico.
La inyección de PE no tiene disco. El malware no necesita copiar sus datos en ningún disco antes de que comience la inyección.
3. Proceso de vaciado
Process Hollowing es una técnica de inyección de procesos en la que, en lugar de utilizar un proceso legítimo existente, el atacante crea un nuevo proceso pero lo infecta con código malicioso. El atacante desarrolla el nuevo proceso como un archivo svchost.exe o un bloc de notas. De esa manera, no lo encontrará sospechoso incluso si lo descubriera en su lista de procesos.
El nuevo proceso malicioso no comienza a ejecutarse inmediatamente. El ciberdelincuente lo desactiva, lo conecta al proceso legítimo y le crea espacio en la memoria del sistema.
¿Cómo se puede prevenir la inyección de procesos?
La inyección de procesos puede arruinar toda su red, ya que el atacante podría tener el nivel más alto de acceso. Usted hace su trabajo mucho más fácil si los procesos inyectados están al tanto de sus activos más valiosos. Este es un ataque que debe esforzarse por evitar si no está listo para perder el control de su sistema.
Estas son algunas de las formas más efectivas de prevenir la inyección de procesos.
1. Adoptar la lista blanca
La lista blanca es el proceso de enumerar un conjunto de aplicaciones que pueden ingresar a su red según su evaluación de seguridad. Debe haber considerado inofensivos los elementos de su lista blanca y, a menos que el tráfico entrante esté dentro de la cobertura de su lista blanca, no pueden pasar.
Para evitar la inyección de procesos con la lista blanca, también debe agregar la entrada del usuario a su lista blanca. Debe haber un conjunto de entradas que puedan pasar a través de sus controles de seguridad. Por lo tanto, si un atacante realiza alguna entrada fuera de su jurisdicción, el sistema lo bloqueará.
2. Supervisar Procesos
En la medida en que una inyección de proceso puede eludir algunos controles de seguridad, puede cambiarlo prestando mucha atención al comportamiento del proceso. Para hacer esto, primero debe delinear el rendimiento esperado de un proceso específico y luego compararlo con su rendimiento actual.
La presencia de códigos maliciosos en un proceso provocará algunos cambios, por pequeños que sean en un proceso. Normalmente, pasaría por alto esos cambios porque son insignificantes. Pero cuando esté interesado en descubrir diferencias entre el rendimiento esperado y el rendimiento actual a través de la supervisión de procesos, notará la anomalía.
3. Codificar salida
Los actores de amenazas cibernéticas a menudo usan Cross-Site Scripting (XSS) para inyectar peligrosas códigos en una inyección de proceso. Estos códigos se convierten en scripts que se ejecutan en segundo plano en su red sin su conocimiento. Puede evitar que eso suceda examinando y limpiando todas las entradas sospechosas. A su vez, se mostrarán como datos y no como códigos maliciosos como se pretendía.
La codificación de salida funciona mejor con la codificación HTML, una técnica que le permite codificar la salida variable. Identifica algunos caracteres especiales y los reemplaza con alternativas.
Evite la inyección de procesos con seguridad basada en inteligencia
La inyección de procesos crea una cortina de humo que encubre códigos maliciosos dentro de un proceso válido y operativo. Lo que ves no es lo que obtienes. Los atacantes entienden la eficacia de esta técnica y la usan continuamente para explotar a los usuarios.
Para combatir las inyecciones de procesos, debe ser más astuto que el atacante siendo no tan obvio con sus defensas. Implementar medidas de seguridad que serán invisibles en la superficie. Pensarán que están jugando contigo, pero sin que ellos lo sepan, eres tú quien los está jugando.