Soy el fundador y CEO de Apriorit, una empresa de desarrollo de software que proporciona servicios de ingeniería a nivel mundial a empresas tecnológicas.

Vista posterior de la codificación de hackers femeninos en el escritorio de creative office

getty

Hoy en día, los ciberatacantes están armados con una impresionante gama de armas, desde malware simple hasta sofisticadas herramientas de ingeniería inversa. Desensambladores, descompiladores y otras herramientas permiten a los hackers acceder y analizar el código fuente de la aplicación. Con esta información, los hackers pueden abusar de su software de varias maneras: extrayendo información confidencial, agregando código malicioso e incluso clonando sus aplicaciones.

Un estudio reciente de la empresa de seguridad Positive Technologies reveló que las aplicaciones populares de banca móvil son susceptibles a ataques de hackers. Los problemas de ciberseguridad más comunes identificados tenían que ver con los nombres de clases y métodos escritos explícitamente en el código fuente, la falta de protección contra la inyección de código y la falta de ofuscación de código.

La ofuscación de código en particular es una práctica prometedora para asegurar el software. Si está buscando formas de proteger su software de intrusiones, es posible que desee comenzar por fortalecer sus defensas mediante la ofuscación del código.

¿Cómo funciona la ofuscación de código?

Los métodos de ofuscación le permiten endurecer el código de la aplicación transformándolo para ocultar valores implícitos y ocultar lógica. Estas medidas hacen que sea más difícil para un tercero no autorizado mirar debajo del capó de su software.

La mayoría de las técnicas de ofuscación transforman uno de los siguientes aspectos del código:

* Datos: Haga que los elementos de código se vean como algo distinto de lo que son

• Flujo de control: Haga que la lógica ejecutable no sea determinista si el software se descompila

• Estructura de diseño: Formatee los datos, cambie el nombre de los identificadores y elimine los comentarios de código

Las herramientas de ofuscación funcionan con código fuente, código binario o de máquina y código de bytes. Para determinar qué tipo de código es mejor ofuscar, debe tener en cuenta las limitaciones de cada opción.

Al ofuscar código fuente, es posible que tenga dificultades para manejar y depurar el código ofuscado. La ofuscación binaria no solo es más complicada que las otras dos opciones, sino que debe aplicarse a cada arquitectura de sistema.

En mi empresa, a menudo elegimos ofuscación de código de bytes, ya que en este caso no tenemos que manejar código fuente o código de máquina. Sin embargo, cuando llegamos a transformar el código de bytes en código máquina, es difícil mantener todas las inyecciones de código ofuscado completamente aleatorias.

Para uno de nuestros proyectos recientes, mi equipo utilizó el compilador LLVM, que nos ayudó a garantizar un alto nivel de protección de código de bytes con poco impacto en el rendimiento del software. Además de reforzar el código, este compilador puede colocar verificadores de licencias de software al azar que hacen que sea casi imposible para los hackers descifrar el software.

¿Cómo puede proteger su aplicación con ofuscación de código?

Aunque la ofuscación es una de las prácticas de codificación segura recomendadas por OWASP, todavía no es tan popular entre muchos desarrolladores. La razón principal de esto es que cuando se usa en exceso, la ofuscación de código puede dañar el rendimiento del software.

Pero si hablamos de, por ejemplo, una aplicación de banca móvil, la importancia de proteger los datos de la cuenta bancaria de un usuario es lo suficientemente alta como para justificar el gasto de tiempo y esfuerzo adicionales en el endurecimiento equilibrado del código.

Si desea ofuscar código de la manera más efectiva, aquí hay algunas cosas a considerar:

• Antes de ofuscar su código, debe decidir qué partes de su código se pueden ofuscar. Evite ofuscar código crítico para el rendimiento. Además, asegúrese de que la ofuscación no afecte la funcionalidad del software de ninguna manera.

• preste atención al tamaño y el rendimiento del código ofuscado. Al endurecer un código grande, el tiempo de ejecución puede aumentar hasta 1000 veces.

* Agregue predicados opacos al código ofuscado para que sea imposible entender hacia dónde irá la ejecución del código. Haga que el gráfico de flujo de control parezca una ejecución de máquina de estados en lugar de una ejecución de código lineal.

* Para crear una defensa por capas, combina varias técnicas de transformación. Cuantas más técnicas de ofuscación utilice, mejor se protegerá su código.

* Utilice la ofuscación de código solo como una capa adicional de seguridad, ya que no puede sustituir a otras prácticas de seguridad.

Cuando se implementa correctamente, la ofuscación de código es una solución eficaz para proteger su software contra análisis no autorizados. No es una solución mágica, pero complicará significativamente los intentos de explotar y comprometer su software.

Forbes Technology Council es una comunidad solo por invitación para CIOs, CTOs y ejecutivos de tecnología de clase mundial. ¿Califico?

Sígueme en Twitter o LinkedIn. Echa un vistazo a mi sitio web.

Carga …

Deja una respuesta

Tu dirección de correo electrónico no será publicada.