Los barcos son bestias mecánicas con muchas piezas que funcionan para garantizar viajes seguros y exitosos. Un equivalente digital sería el software. Al igual que el desarrollo de software, la construcción naval implica varios pasos y una ingeniería precisa. Luego, cuando todo está completo, los constructores prueban sus creaciones en diferentes condiciones para garantizar que la embarcación sea segura y funcione según lo diseñado. Casi todo el mejor software que usamos hoy en día pasa por pruebas para garantizar que también sea seguro.
Una de esas pruebas es la inyección de fallas. En comparación con la construcción naval, la inyección de fallas sería similar a los ingenieros náuticos que perforan intencionalmente sus barcos para ver cómo manejan el hundimiento...
¿Qué es la inyección de fallas y por qué es importante?
La inyección de fallas es la práctica de crear defectos intencionalmente en un sistema. El objetivo de esta práctica es analizar cómo se comporta el sistema bajo estrés. Los ingenieros de hardware y software suelen inducir fallas en su hardware o software por varias razones.
Por un lado, quieren descubrir y abordar fallas que podrían surgir fuera del entorno controlado del laboratorio de producción. Esto es importante porque no tienen control sobre las condiciones bajo las cuales los clientes usarán sus productos. El calor podría comprometer los componentes o los materiales que mantienen unidos los componentes; una falla del servidor podría causar que una región entera pierda el acceso a su servicio de transmisión favorito; los atacantes podrían desencadenar una falla que rompa las funciones de seguridad. Cuando ocurren tales eventos, los desarrolladores y fabricantes de dispositivos quieren asegurarse de que sus productos aún proteger la integridad de los datos y la seguridad de los usuarios o ajustar la distribución de la carga para minimizar el servicio ruptura.
En última instancia, la inyección de fallas es necesaria para que las aplicaciones y el hardware sean seguros, protegidos y confiables. Del mismo modo, la inyección de fallas ayuda a los fabricantes a proteger la propiedad intelectual, reducir el riesgo de pérdida y conservar la confianza de sus clientes. No pondría su dinero en un banco si su aplicación falla todo el tiempo y los piratas informáticos tienen un día de campo para descifrarla, ¿verdad?
¿Cómo funcionan los ataques de inyección de fallas?
Los fabricantes realizan intencionalmente inyección de fallas para descubrir fallas que podrían comprometer la seguridad de sus productos. Nada impide que los atacantes hagan lo mismo para exponer las debilidades de un sistema y explotarlas. Después de todo, las herramientas utilizadas para realizar la inyección de fallas son públicas y los métodos no son demasiado complejos.
Además, los atacantes experimentados pueden ser creativos con sus métodos y llevar el sistema más allá de lo normal. En este punto, debe saber que la inyección de fallas puede ser física (en hardware) o digital (en software). Del mismo modo, las herramientas y los métodos utilizados en los ataques de inyección de fallas pueden adoptar cualquiera de las dos formas. Los fabricantes y los piratas suelen combinar herramientas físicas y digitales en sus pruebas y ataques, respectivamente.
Algunas herramientas utilizadas para la inyección de fallas son FERRARI (Fault and ERRor Automatic Real-time Injector), FTAPE (Fault Tolerance And Performance Evaluator), Xception, Gremlin, Holodeck y ExhaustiF. Mientras tanto, los métodos de la FIA a menudo implican bombardear el sistema con intensos pulsos electromagnéticos, elevando la temperatura ambiental, bajando la tensión GPU o CPU, o provocar un cortocircuito. Con las herramientas y los métodos de la FIA, pueden corromper un sistema durante el tiempo suficiente para explotar un reinicio, eludir un protocolo o robar datos confidenciales.
Prevención de ataques de inyección de fallas
No tiene que preocuparse por prevenir los ataques de la FIA si es un consumidor habitual. Esa responsabilidad recae en el fabricante del dispositivo o el desarrollador de software, al igual que la seguridad del barco es trabajo de la tripulación de navegación. Los fabricantes y desarrolladores hacen esto diseñando protocolos de seguridad más resistentes y dificultando la extracción de datos para los piratas informáticos.
Sin embargo, no hay sistemas perfectos. Los atacantes desarrollan nuevos métodos de ataque a menudo, y no están limitados en la forma en que aplican esos métodos, ya que no siguen las reglas. Por ejemplo, un hacker puede combinar FIA con un ataque de canal lateral, especialmente si su acceso al dispositivo es limitado. El equipo del otro lado debe reconocer este hecho al diseñar sistemas resilientes y planificar sus pruebas de inyección de fallas.
¿Deberías preocuparte por la FIA?
No directamente. Hay más amenazas de seguridad cibernética que lo afectan más personalmente que los ataques de inyección de fallas. Además, la FIA rara vez es encubierta. Un atacante necesitará acceso físico a su dispositivo para ejecutar un ataque de inyección de fallas. Además, los métodos de inyección de fallas son generalmente invasivos y provocan cierto nivel de daño temporal o permanente en el sistema. Por lo tanto, es muy probable que note que algo anda mal o que se quede con un dispositivo que no puede usar.
El problema, por supuesto, es que el atacante puede haber robado datos confidenciales en el momento en que se dé cuenta de la manipulación. Depende del fabricante o desarrollador prevenir el ataque en primer lugar y mejorar la seguridad de sus productos.