¿Qué es la ofuscación y cómo funciona? (2024)

¿Qué es la ofuscación?

La ofuscación significa hacer algo difícil de entender. El código de programación a menudo se confunde para proteger la propiedad intelectual o los secretos comerciales, y para evitar que un atacante realice ingeniería inversa de un programa de software propietario.

Cifrar parte o todo el código de un programa es un método de ofuscación. Otros enfoques incluyen eliminar los metadatos potencialmente reveladores, reemplazar los nombres de clases y variables con etiquetas sin significado y agregar código no utilizado o sin significado a un script de aplicación. Una herramienta llamada ofuscador convertirá automáticamente el código fuente sencillo en un programa que funciona de la misma manera, pero que es más difícil de leer y comprender.

Desafortunadamente, los escritores de códigos maliciosos también usan estos métodos para evitar que las herramientas antimalware detecten sus mecanismos de ataque. El ataque SolarWinds de 2020 es un ejemplo de piratas informáticos que utilizan la ofuscación para evadir las defensas.

Las técnicas de desofuscación se pueden utilizar para realizar ingeniería inversa, o deshacer, la ofuscación. Estas técnicas incluyen la división del programa, que implica reducir el código del programa a solo las declaraciones relevantes en un punto particular del programa. La optimización del compilador y la síntesis de programas son otras dos técnicas de desofuscación. La ofuscación tiene como objetivo hacer que la ingeniería inversa sea difícil y que no valga la pena.

¿Cómo funciona la ofuscación?

La ofuscación en el código de computadora utiliza frases indirectas complejas y lógica redundante para hacer que el código sea difícil de entender para el lector. El objetivo es distraer al lector con la complicada sintaxis de lo que está leyendo y dificultarle la determinación del verdadero contenido del mensaje.

Con el código informático, el lector puede ser una persona, un dispositivo informático u otro programa. La ofuscación también se utiliza para engañar a las herramientas antivirus y otros programas que dependen en gran medida de las firmas digitales para interpretar el código. Los descompiladores están disponibles para lenguajes como Java, sistemas operativos como Android e iOS y plataformas de desarrollo como .NET. Pueden aplicar ingeniería inversa automáticamente al código fuente; La ofuscación tiene como objetivo dificultar la descompilación de estos programas también.

La ofuscación de código no se trata de cambiar el contenido del código original de un programa, sino de hacer que el método de entrega y la presentación de ese código sean más confusos. La ofuscación no altera el funcionamiento del programa ni su salida final.

Lo que sigue es un fragmento de ejemplo de código JavaScript normal:

var greeting = 'Hello World';greeting = 10;var product = greeting * greeting;

Ese mismo fragmento en forma ofuscada se ve así:

var _0x154f=['98303fgKsLC','9koptJz','1LFqeWV','13XCjYtB','6990QlzuJn','87260lXoUxl','2HvrLBZ','15619aDPIAh','1kfyliT','80232AOCrXj','2jZAgwY','182593oBiMFy','1lNvUId','131791JfrpUY'];var _0x52df=function(_0x159d61,_0x12b953){_0x159d61=_0x159d61-0x122;var _0x154f4b=_0x154f[_0x159d61];return _0x154f4b;};(function(_0x19e682,_0x2b7215){var _0x5e377c=_0x52df;while(!![]){try{var _0x2d3a87=-parseInt(_0x5e377c(0x129))*parseInt(_0x5e377c(0x123))+-parseInt(_0x5e377c(0x125))*parseInt(_0x5e377c(0x12e))+parseInt(_0x5e377c(0x127))*-parseInt(_0x5e377c(0x126))+-parseInt(_0x5e377c(0x124))*-parseInt(_0x5e377c(0x12f))+-parseInt(_0x5e377c(0x128))*-parseInt(_0x5e377c(0x12b))+parseInt(_0x5e377c(0x12a))*parseInt(_0x5e377c(0x12d))+parseInt(_0x5e377c(0x12c))*parseInt(_0x5e377c(0x122));if(_0x2d3a87===_0x2b7215)break;else _0x19e682['push'](_0x19e682['shift']());}catch(_0x22c179){_0x19e682['push'](_0x19e682['shift']());}}}(_0x154f,0x1918c));var greeting='Hellox20World';greeting=0xa;var product=greeting*greeting;

La versión ofuscada es casi imposible de seguir con el ojo humano.

CONTENIDO RELACIONADO Dar a los reclusos una segunda oportunidad como agentes del centro de llamadas de la prisión

Técnicas de ofuscación

La ofuscación implica varios métodos diferentes. A menudo, se utilizan varias técnicas para crear un efecto de capas.

Los programas escritos en lenguajes de software compilados, como C # y Java, son más fáciles de ofuscar. Esto se debe a que crean instrucciones de nivel intermedio que generalmente son más fáciles de leer. Por el contrario, C ++ es más difícil de ofuscar, porque se compila en código de máquina, con el que es más difícil trabajar para la gente.

Algunas técnicas de ofuscación comunes incluyen las siguientes:

  • Renombrar. El ofuscador altera los métodos y los nombres de las variables. Los nuevos nombres pueden incluir caracteres invisibles o no imprimibles.
  • Embalaje. Esto comprime todo el programa para que el código sea ilegible.
  • Flujo de control. El código descompilado está hecho para que parezca una lógica espagueti, que no está estructurada y es difícil de mantener un código donde la línea de pensamiento está oscurecida. Los resultados de este código no son claros y es difícil saber cuál es el objetivo del código con solo mirarlo.
  • Transformación de patrones de instrucciones. Este enfoque toma instrucciones comunes creadas por el compilador y las intercambia por instrucciones más complejas y menos comunes que efectivamente hacen lo mismo.
  • Inserción de código ficticio. Se puede agregar código ficticio a un programa para que sea más difícil de leer y realizar ingeniería inversa, pero no afecta la lógica o el resultado del programa.
  • Eliminación de metadatos o código no utilizado. El código y los metadatos no utilizados brindan al lector información adicional sobre el programa, al igual que las anotaciones en un documento de Word, que pueden ayudarlo a leerlo y depurarlo. La eliminación de metadatos y código no utilizado deja al lector con menos información sobre el programa y su código.
  • Inserción de predicado opaco. Un predicado en código es una expresión lógica que es verdadera o falsa. Los predicados opacos son ramas condicionales, o declaraciones si-entonces, donde los resultados no se pueden determinar fácilmente con análisis estadístico. La inserción de un predicado opaco introduce un código innecesario que nunca se ejecuta, pero que desconcierta al lector que intenta comprender la salida descompilada.
  • Anti-Debug. Los ingenieros de software legítimos y los piratas informáticos utilizan herramientas de depuración para examinar el código línea por línea. Con estas herramientas, los ingenieros de software pueden detectar problemas con el código y los piratas informáticos pueden utilizarlas para aplicar ingeniería inversa al código. Los profesionales de la seguridad de TI pueden utilizar herramientas anti-depuración para identificar cuando un pirata informático está ejecutando un programa de depuración como parte de un ataque. Los piratas informáticos pueden ejecutar herramientas anti-depuración para identificar cuándo se está utilizando una herramienta de depuración para identificar los cambios que están realizando en el código.
  • Anti-manipulación. Estas herramientas detectan el código que ha sido manipulado y, si se ha modificado, detiene el programa.
  • Cifrado de cadenas. Este método utiliza cifrado para ocultar las cadenas en el ejecutable y solo restaura los valores cuando son necesarios para ejecutar el programa. Esto hace que sea difícil pasar por un programa y buscar cadenas en particular.
  • Transposición de código. Este es el reordenamiento de rutinas y ramas en el código sin tener un efecto visible en su comportamiento.
CONTENIDO RELACIONADO ¿Qué es la planificación de recursos empresariales (ERP)?

Cómo medir el éxito de la ofuscación

El éxito de los métodos de ofuscación se puede medir utilizando los siguientes criterios:

  • Fuerza. La medida en que el código transformado resiste los intentos automatizados de desofuscación determina la fuerza. Cuanto más esfuerzo, tiempo y recursos requiera, más sólido será el código.
  • Diferenciación. El grado en que el código transformado difiere del original es otra medida de cuán efectivo es. Algunas de las formas utilizadas para juzgar la diferenciación incluyen:
    • El número de predicados que contiene el nuevo código.
    • La profundidad del árbol de herencia (DIT): una métrica utilizada para indicar la complejidad del código. Un DIT más alto significa un programa más complejo.
  • Gastos. Un método de ofuscación rentable será más útil que uno que sea caro, sobre todo en lo que respecta a su escalabilidad para aplicaciones más grandes.
  • Complejidad. Cuantas más capas agregue el ofuscador, más complejo será el programa, lo que hará que la ofuscación sea más exitosa.

Ventajas de la ofuscación

Las principales ventajas de la ofuscación son las siguientes:

  • Secreto. La ofuscación oculta la valiosa información contenida en el código. Esta es una ventaja para las organizaciones legítimas que buscan proteger el código de la competencia y los atacantes. Por el contrario, los delincuentes aprovechan el secreto de la ofuscación para ocultar su código malicioso.
  • Eficiencia. Algunas técnicas de ofuscación, como la eliminación de código no utilizado, tienen el efecto de reducir el tamaño del programa y hacer que su ejecución requiera menos recursos.
  • Seguridad. La ofuscación es un método de seguridad integrado, a veces denominado autoprotección de la aplicación. En lugar de utilizar un método de seguridad externo, funciona dentro de lo que se protege. Es ideal para proteger aplicaciones que se ejecutan en un entorno que no es de confianza y que contienen información confidencial.
CONTENIDO RELACIONADO Prueba de lápiz tradicional frente a la nube: ¿cuál es la diferencia?

Desventajas de la ofuscación

Una de las principales desventajas de la ofuscación es que también se usa en malware. Los creadores de malware lo utilizan para evadir los programas antivirus que escanean el código en busca de funciones específicas. Al ocultar esas características, el malware parece legítimo para el software antivirus.

Las técnicas comunes que utilizan los autores de malware incluyen:

  • Exclusivo o (XOR). Una operación que oculta datos aplicando valores XOR al código para que solo un ojo entrenado pueda descifrarlo.
  • ROT-13. Una instrucción que sustituye el código por caracteres aleatorios.

Con la ofuscación, en lugar de desarrollar nuevo malware, los autores vuelven a empaquetar los métodos de ataque de uso común para disfrazar sus características. En algunos casos, los actores malintencionados incluyen técnicas específicas del proveedor.

Otra desventaja de la ofuscación es que puede dificultar la lectura del código. Por ejemplo, el código que utiliza el método de ofuscación de cifrado de cadenas requiere el descifrado de las cadenas en tiempo de ejecución, lo que ralentiza el rendimiento.

Ofuscación y vientos solares

Un ataque a SolarWinds, un fabricante de software de administración y monitoreo de TI de Austin, Texas, que se cree que comenzó en septiembre de 2019, resultó en la violación de una serie de otras empresas y agencias gubernamentales. El ataque fue descubierto en diciembre de 2020 y se atribuye a piratas informáticos rusos. Inicialmente comprometió la plataforma de gestión de TI Orion de SolarWinds.

Los atacantes utilizaron el malware Sunburst, que combinó técnicas de ofuscación, aprendizaje automático y IA para colocar una puerta trasera en las actualizaciones de software para la plataforma Orion. Para disfrazar sus esfuerzos y eludir las defensas, alteraron los registros de auditoría, eliminaron archivos y programas después de su uso y falsificaron la actividad para que aparecieran como aplicaciones legítimas en la red.

Se sospecha que este ataque a la cadena de suministro no ha sido detectado durante más de un año. El malware insertado en el código de Orion permanece inactivo y oculto hasta que los usuarios descargaron las actualizaciones infectadas. Luego se propagó a través de la red sin ser detectado e infectó una larga lista de organizaciones que usaban Orion.

La ofuscación es una de las muchas técnicas que emplean los piratas informáticos para irrumpir en los sistemas de TI. Aprender más acerca de defenderse de varios tipos de ataques de ciberseguridad en la guía de planificación en profundidad de ciberseguridad de Krypton Solid.

¿Qué es la ofuscación y cómo funciona? (2024)

FAQs

¿Qué es el ofuscación? ›

Gral. Estado de la persona que sufre una pérdida pasajera del entendimiento y de la capacidad de razonar o de darse cuenta con claridad de las cosas.

¿Qué es ofuscación de los datos y con qué propósito se utiliza? ›

En tecnología, la ofuscación es sinónimo de seguridad. Es una herramienta que se utiliza para aumentar la seguridad del código. En términos generales, la ofuscación convierte el código de un software o proyecto en un tipo de código que es más difícil de comprender para los humanos.

¿Qué es ofuscar una base de datos? ›

En el mundo de la tecnología, la ofuscación de datos, que también se conoce como enmascaramiento de datos, es el proceso de reemplazar información sensible existente en entornos de prueba o de desarrollo con la información que parece información real de producción, pero no sirve para nadie que desee darle mal uso.

¿Qué es ofuscación en ciberseguridad? ›

La ofuscación es una técnica que sirve para escribir un código malicioso de tal forma que un sistema antivirus no pueda detectarlo. El propósito de esto es modificar el código fuente de un malware, de manera que diga lo mismo pero sea muy difícil de entender para los filtros de protección del sistema.

¿Cómo se puede evitar la ofuscación? ›

b) Conserve la calma: respire, póngase en los zapatos de esa persona, mírela con atención, no conteste si se siente atacado. La idea no es reaccionar, sino responder, hacernos cargo, buscar soluciones. A veces, con tan solo brindar la escucha, calma y atención disminuirá en minutos la ofuscación del cliente.

¿Qué significa la palabra ofuscado Wikipedia? ›

La ofuscación se refiere a encubrir el significado de una comunicación haciéndola más confusa y complicada de interpretar.

¿Qué es el sinonimo de ofuscado? ›

2 deslumbrado, alumbrado, encandilado, cegado, ciego. Ejemplo: La luz del flash lo dejó ofuscado. Oscurecido o ensombrecido: 3 oscurecido, ensombrecido, ennegrecido, nublado, enturbiado, sombreado.

¿Cómo se conjuga ofuscar? ›

Indicativo
presente
yoofusco
ofuscas
él, ella, ustedofusca
nosotros, nosotrasofuscamos
3 more rows

¿Qué son los datos y para qué sirven? ›

Un dato es una representación simbólica (numérica, alfabética, algorítmica, espacial, etc.) de un atributo o variable cuantitativa o cualitativa. Los datos describen hechos empíricos, sucesos y entidades.

¿Qué son las técnicas de enmascaramiento? ›

Las técnicas de enmascaramiento de datos ocultan datos específicos dentro de una tabla de una base de datos para garantizar que la seguridad de los datos se mantiene. El enmascaramiento de datos se aplica en todas las aplicaciones y entornos a fin de mantener la integridad del negocio.

¿Cómo ofuscar código PHP? ›

La ofuscación de código es una técnica que permite ocultar el código para que no sea descifrado o sea difícil de descifrar, y asi evitar que se conozcan y/o modifiquen los algoritmos. Para lograr esto vamos a usar 3 funciones base64_encode, base64_decode y eval.

¿Cómo funciona el ciberseguridad? ›

La ciberseguridad es el conjunto de procedimientos y herramientas que se implementan para proteger la información que se genera y procesa a través de computadoras, servidores, dispositivos móviles, redes y sistemas electrónicos.

¿Qué se debe saber sobre ciberseguridad? ›

Cuando se habla de ciberseguridad, generalmente se asocia a las ciberamenazas y al cibercrimen, sin embargo, esta también tiene que ver con las buenas prácticas a implementar para proteger la información y prevenir o detectar los ataques cibernéticos a los que está expuesta cualquier organización o persona.

¿Qué hace un ciberseguridad? ›

La ciberseguridad es la práctica de defender las computadoras, los servidores, los dispositivos móviles, los sistemas electrónicos, las redes y los datos de ataques maliciosos. También se conoce como seguridad de tecnología de la información o seguridad de la información electrónica.

¿Qué es R8 Android? ›

Retrace de R8 es una herramienta que permite obtener el seguimiento de pila original a partir de uno ofuscado. Para reconstruir el seguimiento de pila, haz coincidir los nombres de las clases y de los métodos que aparecen en un archivo de asignación con sus definiciones originales.

¿Cómo se escribe ofuscado? ›

ofuscado, -a. I. 1. adj.

¿Qué significa Ofuscante en el diccionario? ›

adj. Que ofusca . El ofuscante resplandor del sol . Una pasión ofuscante .

¿Qué cosas no deben compartir en Internet? ›

El Instituto de Ciberseguridad español (Incibe) explica qué datos no debes compartir por Internet y qué consecuencias pueden tener tus actos.
  • No compartas tu número de móvil ni correo electrónico.
  • Dirección y ubicación.
  • Fotos de menores.
  • Fotos que te puedan comprometer.
  • Documentos personales.
  • Conversaciones privadas.
Jun 13, 2022

¿Cuál es la diferencia entre información y conocimiento? ›

El conocimiento se adquiere con la práctica y a través de la experiencia. La información es el conjunto de datos que adecuadamente organizados nos dan una idea de lo que está sucediendo a nuestro alrededor. La información es la base para la toma de decisiones.

¿Qué es más importante en una investigación el dato la información o el conocimiento? ›

Con todo lo que ya sabemos podemos establecer una jerarquía ascendente entre estos tres términos. En la base tenemos los datos, de los cuales se extrae la información a partir de los cuales puede llegarse al conocimiento.

¿Cómo se escribe la palabra obcecado? ›

Adjetivo. Obcecado, obseso, ofuscado.

¿Cómo limpiar datos en PHP? ›

En estos casos, puede usar la función clearstatcache() para borrar la información que PHP examina del archivo. Debería observar también que PHP no examina información sobre archivos no existentes. Por lo que si llama a file_exists() con un archivo que no existe, se devolverá false a menos que cree el archivo.

Top Articles
Latest Posts
Article information

Author: Reed Wilderman

Last Updated:

Views: 5957

Rating: 4.1 / 5 (52 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Reed Wilderman

Birthday: 1992-06-14

Address: 998 Estell Village, Lake Oscarberg, SD 48713-6877

Phone: +21813267449721

Job: Technology Engineer

Hobby: Swimming, Do it yourself, Beekeeping, Lapidary, Cosplaying, Hiking, Graffiti

Introduction: My name is Reed Wilderman, I am a faithful, bright, lucky, adventurous, lively, rich, vast person who loves writing and wants to share my knowledge and understanding with you.