Martes , agosto 21 2018

Suscribete gratis a nuestro boletin semanal

VISIONA . DESARROLLADORES . CONECTADOS .

Suscribete nuestro boletin semanal

PATROCINADORES
.
Home / Medición y Pruebas / Análisis binario ayuda a corregir posibles riesgos en códigos reciclados

Análisis binario ayuda a corregir posibles riesgos en códigos reciclados

Abrimos el baúl de contenido técnico para un área en la que cada vez más ingenieros proyectan frustración al momento de comenzar con la detección de vulnerabilidades en el código de terceros que prevén reutilizar.

ElectronicosOnline.com Magazine / Oswaldo Barajas

¿Cuál es la mejor herramienta o técnica para identificar las vulnerabilidades en el código de terceros que se utilizará como fragmento reciclado? En realidad, existen bastantes en el mercado, desde herramientas de paga o soluciones fácilmente obtenibles en la comunidad opensource.

Pero, en medio de todo este mar de alternativas y de información disponible en la red, lo más recomendable es escuchar a los colegas con mayor experiencia en busca de una guía para ahorrarse tiempo en la investigación de campo, y en esta ocasión hablaremos de una técnica que, sin lugar a dudas, debe formar parte del plan de gestión de riesgos durante la vida de desarrollo de un proyecto.

Hablamos del Análisis Binario, una alternativa ampliamente utilizada para inspeccionar el código de terceros en busca de riesgos de seguridad, bugs o falsas iteraciones que puedan generar un comportamiento errático en las salidas de nuestro sistema.

En los últimos años, el reciclaje de código ha pasado de ser un factor poco utilizado en el desarrollo de software, a una fuerza dominante en la industria incluso al grado de ser considerado como una práctica que raya en la tendencia, pues ahorra tiempo en la planificación del proyecto, ahorra recursos como dinero, y decrece el tiempo en la recaudación de requerimientos técnicos.

La compañía GrammaTech explica cómo el Análisis Binario ha generado excelentes resultados en la revisión del código libre, y dentro de su artículo titulado: “Eliminating Vulnerabilities in ThirdParty Code with Binary Analysis”, toma como fuente de información a la agencia de investigación industrial VDC Research, para afirmar que una gran parte de los sistemas embebidos que actualmente son desarrollados utilizan elementos externos de carácter libre u opensource, y aunque esto facilita la construcción del sistema cobra factura posteriormente en el etapa de pruebas y depuración.

Principales aplicaciones de los códigos reciclados. Se valoran más en áreas como Comunicaciones, Bases de Datos o para habilitar Librerías estándares.
 

“En base con el último reporte de VDC Research, la mayoría del software que se ejecuta en los sistemas embebidos ha sido creado en la actualidad por fuentes externas, no por los equipos de trabajo de las compañías. Algunos de estos módulos son de código abierto, pero en los dispositivos embebidos, aproximadamente el 30% del código es desarrollado por terceros como parte de software comercial, incluyendo instrumentos de desarrollo con interfaces gráficas de usuarios, librerías de criptografías, middleware, bases de datos y otros”, menciona el documento de GrammaTech.

El documento también señala que las principales áreas de usabilidad del código reciclado están dirigidas al desarrollo de aplicaciones en segmentos como Comunicaciones, Bases de Datos, y Librerías.

En caso de que los módulos no sean sometidos a un análisis robusto de forma previa, los resultados pueden ser catastróficos para las organizaciones que lo ejecutan constantemente como parte de sus operaciones, o en sus productos finales.

Millonarias pérdidas se han registrado tan solo en la última década en el seno de importantes compañías de talla internacional, debido a que los errores no fueron detectados a tiempo durante el ciclo de validación y pruebas.

- PUBLICIDAD -

GrammaTech subraya que en este mismo período su acercamiento con instituciones académicas de renombre, y agencias de investigación como DARPA de Estados Unidos, le han permitido recolectar muestras colectivas de los principales problemas a los que se enfrentan los ingenieros desarrolladores con el uso de códigos reciclables y el uso de herramientas de análisis.

En este fragmento de código se ha detectado un puntero NULL o vacío en un módulo binario. En este proceso el sistema de revisión determina la ubicación del problema y genera un informe del mismo para que pueda ser resuelto.
 

“Los fabricantes que comparten código vulnerable o riesgoso pueden esperar problemas de seguridad, perder su reputación y su dinero. Incluso, si las vulnerabilidades no se utilizan como base para un ataque, pueden provocar dificultades cuando el software se usa normalmente, lo que puede implicar una costosa reparación”, añade el documento.

El Análisis Binario ayuda a las compañías -y principalmente a los equipos de ingeniería- a escanear los componentes del software tales como librerías o módulos completos del sistema sin la necesidad de tener a la mano la documentación de dicho código o cualquiera de sus formas de ayuda como argumentos, comentarios en líneas de código o declaración de variables.

Aunque existen diversas herramientas en el mercado, algunas de estas pueden no ofrecer un análisis completo a los usuarios, y otros pueden no contar con interfaces entendibles para poder manipular los ciclos de revisión.

GrammaTech aprovecha su documento para señalar su entorno de validación CodeSonar, el cual somete a un análisis binario los archivos ejecutables que han sido “despojados” de sus diccionarios de datos o tablas de símbolos que son sumamente importantes para enlazar las acciones sintácticas del código, lo cual genera conflictos al momento de depurarlo.

El documento subraya que existen muchas razones por las que, quienes desarrollaron esos códigos deciden eliminar o suprimir estos elementos de su código de forma deliberada, siendo algunas razones: el ahorro de espacio, la protección de su propiedad intelectual, candados aplicados para proteger el módulo de una ingeniería inversa, o uso inadecuado para utilizarlo como herramientas de hackeo.

En la imagen aparece un pantallazo de un proceso de revisión con el CodeSonar en el que se informa de un error o bug dentro del código aplicando muestreos de Análisis Binario y Estático.
 

Para encontrar estos bugs, vulnerabilidades, inconsistencias o errores, como se desee definirlos, los ingenieros de pruebas deben ser capaces de analizar concienzudamente los módulos ejecutables. Implementar un recurso complementario como el análisis estático conlleva más allá de seguir el protocolo recomendado de trabajo, y a menudo se debe tomar en cuenta el uso de herramientas adicionales.

En el caso de plataformas integrales como CodeSonar, estas pueden suministrar análisis estáticos también para revisar archivos ejecutables, esto con el fin de dotar de mayores elementos de seguridad a los usuarios quienes deseen implementar otra técnica además del análisis binario convencional.

Los resultados del análisis binario también se pueden utilizar para comparar y contrastar la seguridad relacionada de los diferentes componentes opensource para que el equipo de desarrollo pueda tomar la mejor decisión sobre qué módulos utilizar.

Plataformas como CodeSonar son una buena elección para quienes deseen llevar a la práctica análisis binario, estático o por bloques, sobre códigos de fuente abierta que pretendan reciclar en sus proyectos entrantes, principalmente si se trata de código destinado para sistemas embebidos.

- PUBLICIDAD -

Revisa también ...

Bitcoin se vuelve una montaña rusa y su futuro se vuelve incierto

Un estudio sectorial enumeró todas las criptomonedas que actualmente circulan o circularon en el mercado, …

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *