¿Qué es la prueba de penetración?
Penetration Testing ha ido evolucionando a lo largo del año con un fuerte aumento de ataques altamente sofisticados. Todas las organizaciones ahora son conscientes del daño causado por los ataques cibernéticos. Las organizaciones privadas y gubernamentales ahora están realizando pruebas de penetración programadas cada tres meses o menos. Los ataques aumentan día a día y ahora casi todos los dispositivos son vulnerables a una vulnerabilidad de día cero sin parchear. Los ataques como Meltdown y Spectre han ido tan profundo que explotan una vulnerabilidad a nivel del procesador. Asimismo, el firmware también es uno de los vectores de ataque importantes. Este documento analiza varios métodos para la ingeniería inversa del firmware de un enrutador y el proceso de backdooring.
¿Qué es Firmware?
El firmware se utiliza para controlar una pieza de hardware a través del software. El firmware viene preinstalado en dispositivos como enrutadores, teléfonos inteligentes, computadoras y otros dispositivos IoT. Los firmwares son específicos del hardware. No solo difieren de los dispositivos de otros fabricantes, sino que también difieren de los dispositivos del mismo fabricante. Los firmwares suelen actuar como un entorno operativo en dispositivos muy complejos. En cambio, en dispositivos menos complejos, actúan como un Sistema Operativo y se encargan del control completo del hardware. Los firmwares se mantienen en ROM; memoria no volátil. En la mayoría de los enrutadores, el sistema de archivos de firmware se basa en el sistema operativo Linux. Los firmwares pueden ser reemplazados pero no pueden ser eliminados por el usuario
¿Qué es la ingeniería inversa?
La ingeniería inversa es el proceso de descompilar un producto para exponer su arquitectura interna y aprender cómo se construyó. El firmware del enrutador está principalmente en formato binario, ya que son específicos del hardware y no se pueden leer.
Por lo tanto, tienen ingeniería inversa para descomprimir el sistema de archivos presente en él. Después de descomprimir el sistema de archivos, los archivos dentro del sistema de archivos son visibles. Luego, un investigador de seguridad analiza el archivo para descubrir fallas de seguridad en el código. O los archivos en el sistema de archivos se pueden manipular y se puede agregar una puerta trasera al sistema de archivos que permite al atacante controlar el enrutador, así como la red y otros dispositivos conectados a la red. La ingeniería inversa permite a los investigadores comprender el sistema de archivos, el flujo de código y las funcionalidades del firmware.
Hay varios métodos disponibles para la ingeniería inversa del firmware de un enrutador. Recientemente, la Agencia de Seguridad Nacional (NSA) lanzó su herramienta de ingeniería inversa: Ghidra. Linux tiene varias utilidades incorporadas que permiten a los usuarios descomprimir el sistema de archivos de firmware sin el uso de herramientas de terceros.
Herramientas de ingeniería inversa:
- Binwalk: es una utilidad incorporada de Linux que nos permite tallar y analizar archivos binarios.
- Unsquashfs: es una herramienta para descomprimir o extraer el sistema de archivos squashfs.
- Hexdump: permite a los usuarios ver la vista hexadecimal de los datos de entrada específicos con la capacidad de extraer el contenido del archivo en múltiples formatos, como decimal, octal y ASCII.
- Objdump: muestra información sobre los archivos de objetos y se utiliza para desensamblar archivos ejecutables.
- Strings: extrae las strings incrustadas dentro de los archivos binarios y otros archivos ejecutables
- GDB: el depurador de GNU ayuda a descompilar ejecutables y archivos binarios que están escritos en C, C++, etc.
- Radare2: es un marco creado para la ingeniería inversa y el análisis de binarios.
- Ghidra: consiste en un conjunto de herramientas de ingeniería inversa y código abierto con licencia de la NSA.
- IDA: es un software comercial que permite depurar y descompilar el código fuente de los ejecutables.
- Kit de modificación de firmware: permite la descompresión de varios firmware en dispositivos integrados. Es compatible con varios sistemas de archivos y versiones, como SquashFS 2.0, 3.0 y 4.0.
Publicación traducida automáticamente
Artículo escrito por pratyushabsp y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA