Ofuscacion De Codigo
La ofuscación de código dinámica es una nueva forma de enmascarar el código, a lo largo de este artículo veremos las ventajas y riesgos que implican el descubrimiento de esta nueva técnica, así como algunos de las métodos que existen tanto para ofuscar el código, como para lograr la desofuscación del mismo, además de las principales formas y lugares donde esta técnica puedeser aplicada.
|
La ofuscación de código dinámica es una técnica que transforma el código en garabatos incomprensibles, esta técnica puede ser utilizada con dos propósitos principales, el primero como una herramienta de protección de derechos de autor del código de los programas, y el segundo como una amenaza a los mecanismos actuales de seguridad en la red.
La mayoría de las empresastratan de evitar que su código fuente pueda ser obtenido por alguien más, es por esto que hacen uso de herramientas que les permitan evitar que alguien lo pueda obtener.
Sin embargo la ofuscación también sirve como un mecanismo de para generar muchas versiones del mismo código, logrando de esta manera sobrepasar los mecanismos usuales de análisis de los sistemas de seguridad, como los antivirus.La amenaza oculta
En la actualidad, a pesar de que los antivirus son cada día más potentes y hacen uso de técnicas mucho más complejas para lograr evitar las amenazas, nace una nueva técnica que logra poner en dificultad a estos sistemas actuales de defensa, esta nueva técnica es llamada ofuscación de código dinámica, y se basa en la transformación o enmascaramiento del código para evitarque se pueda determinar la forma que tenía originalmente.
La ofuscación de código dinámica empezó a funcionar con javascript un poco después de que fuera liberado este lenguaje en 1995, se hizo por la principal razón de proteger el código que tanto trabajo les costaba desarrollar a los programadores, y que cualquier usuario podía ver usando un explorador con esas características.
Figura 1.Existen muchas herramientas que ayudan a la fácil ofuscación de código, las cuales permiten proteger los códigos dinámicos o de scripting, aunque también se puede utilizar con fines malignos
Mecanismo de protección
El código fuente de un programa es muy valioso, siendo una creación intelectual, es susceptible de ser utilizado sin haber tenido que pasar por un proceso creativo nuevamente, esdecir, una vez que se desarrollo el código puede volver a ser utilizado sin haber tenido que emplear tiempo en su desarrollo, es por esto que las empresas y desarrolladores protegen tan celosamente su código.
Una manera de entre muchas que existen en la actualidad para proteger su código, en otras palabras su propiedad intelectual, es la ofuscación, que se ofrece como una manera de poderejecutar el código por otras personas, sin que estas puedan llegar a entender cómo funciona en realidad.
La ofuscación de código ha sido propuesta por un gran número de investigadores como un medio para dificultar la realización de ingeniería inversa sobre el código. Pero las transformaciones típicas de ofuscación se basan en razonamientos estáticos sobre ciertas propiedades de los programas, locual da como resultado que la ofuscación del código pueda ser fácilmente desentrañada mediante una combinación de análisis estáticos y dinámicos.
Conceptualmente se pueden distinguir dos tipos de ofuscación de código: la ofuscación superficial y la ofuscación profunda. La primera siendo solamente un reacomodo de la sintaxis del programa, ya sea cambiando nombres de variables o algún otro métodosimilar, y la segunda que intenta cambiar la estructura actual del programa, cambiando su control de flujo o modo de referenciar sus datos, esta última teniendo menos efecto en el proceso de estar oculto a la ingeniería inversa, ya que no se ocupa de disfrazar la sintaxis del código.
Técnicas de ofuscación
Una de las técnicas de ofuscación es la llamada “aplanamiento de control de flujo...
Regístrate para leer el documento completo.