¿Qué tan difícil es encontrar puertas traseras integradas en el hardware?

Es muy, muy difícil. Más difícil que el diagnóstico avanzado de amenazas persistentes.

En mi experiencia, solo los encuentras por accidente.

Permítanme contarles acerca de una puerta trasera que construí, en oh, alrededor de 1990. Se incorporó a un sistema cliente, con el conocimiento del CEO, pero nadie más en la compañía.

Los cortafuegos eran raros. Solo aparecieron en la mayoría de los lugares después del gusano Morris en 1988. Había construido uno de los pocos anteriores, que lo mantuvo fuera del Centro de Investigación Bellaire de Shell, razón por la cual obtuve este concierto.

Para este ejercicio, había una dirección IP fija de la que siempre vendría, y quería acceso raíz a través de Telnet a un sistema UNIX.

Reescribí “telnetd” para reconocer el tráfico entrante de mi “base” y, si recibía una secuencia especial de caracteres, bifurcar inmediatamente un shell raíz. Después de leer Reflections On Trusting Trust, también modifiqué el comando “make” para que si alguien intentara reconstruir “telnetd” (un evento de muy baja probabilidad en este sistema) que hiciera una “compilación falsa” y una “instalación falsa” , y si intentaron hacer lo mismo con “make”, también lo “falsificaría”, lo instalarían, eliminarían la fuente y esperarían.

Ahora. Piénsalo. ¿Cómo exactamente encuentras esto? Nunca sabrías que estaba allí a menos que se usara. Está escuchando en un puerto en el que espera tener algo escuchando. Es pasivo a menos que se active. ¿Cómo lo encuentras?

Si tuviera firmas hash para cada archivo en la distribución ANTES de instalarlo, notará dos archivos diferentes: los binarios para “make” y “telnetd”. El “telnetd” modificado es indistinguible del comportamiento original, a menos que usted provenga de mi “base” Y emita la secuencia de comando críptico. La “marca” modificada es indistinguible de la original a menos que intente construir dos programas, en los cuales los usuarios de ese sistema eran muy poco probables.

Pero no tenías eso. Podría intentar verificar las firmas hash de otro sistema, pero con todo construido desde la fuente, había una alta probabilidad de que el uso de un conjunto diferente de opciones de tiempo de compilación o modificaciones locales arrojaría falsos positivos.

Nunca, nunca lo encontrarás a menos que lo hayas descubierto mientras lo usas. Ya sea olfateando el cable en el momento o archivos de registro del sistema después del hecho (suponiendo que quien accedió al sistema no borró sus huellas), o por algún cambio causado durante el acceso.

No hace falta decir que nunca se encontró.

Ahora avancemos 15 años. Estamos hablando de sistemas embebidos. Eche un vistazo a este artículo para obtener una buena visión general de qué es exactamente un Sistema en un chip, ahí es donde voy a comenzar. Leer -> Sistema en un chip: lo que necesita saber sobre SoC

¿Atrás? Bueno.

Ahora pensemos en lo que esto significa en decir, su refrigerador conectado a Internet. ¿No tienes uno? Prueba este: 28 cu. refrigerador de 4 puertas y pantalla digital LCD de 8 “con aplicaciones

Seriamente. OK, está ejecutando Linux. ¿Cual version? ¿Qué hay encima de la capa del núcleo? Está en la memoria flash con un poco de RAM. ¿Quién lo actualiza a medida que se encuentran los exploits? Apuesto a que tu mamá promedio de fútbol no va a estar escribiendo en la pantalla táctil “sudo apt-get update” cuando obtengas un bocadillo de medianoche …

Ahora piense en algo más compacto, como una cámara de seguridad con WiFi. O un teléfono inteligente. ¿Cómo exactamente lo vas a encontrar?

Olfatear el cable, buscando “actividad inusual”? Con un millón de aplicaciones instaladas en el teléfono, ¿cómo comenzarías a resolverlo?

Recuerde, una buena puerta trasera no deja rastro, hasta que se accede.

Eso es lo que los hace efectivos. Eso es lo que les da miedo.

No es fácil, ni es para el software (este último es teóricamente más fácil de realizar ingeniería inversa).

Algunas de las puertas traseras se encuentran después de una actividad de red inusual.