Secuestró los anuncios de su televisor Samsung con la clave comprometida de una autoridad certificadora

Secuestró los anuncios de su televisor Samsung con la clave comprometida de una autoridad certificadora

Escucha este artículo en audio (2:06 min, resumen del artículo original)

📻 Versión en audio: si prefieres escuchar en vez de leer, el resumen del artículo está justo aquí arriba.

Secuestró los anuncios de su televisor Samsung con la clave comprometida de una autoridad certificadora

Daniel Vrátil pagó su televisor Samsung de 2022 como cualquier persona, y aun así el aparato decidió por su cuenta que la pantalla de inicio debía llevar publicidad. Bloquearlos por DNS funcionó un tiempo, hasta que al mover cableado en su homelab se le escapó una regla y los anuncios volvieron. Lo que hizo después es el mejor ejemplo de este mes de por qué la confianza PKI en el firmware de consumo es un campo minado: interceptó el tráfico de su propia tele, y de paso secuestró los anuncios.

La puerta que nadie cerró

El televisor no acepta certificados personalizados en su trust store, así que interceptar su HTTPS parecía imposible. Lo que lo abrió todo fue conocido: las claves de la CA india eMudhra comprometidas en octubre (ya las cubrimos aquí el mes pasado, incluida la clave que era literalmente el número 4). Lo nuevo es qué pasó con esa apertura: la gente de mitmproxy agregó un flag --emudhra que firma certificados falsos con esas claves, y Samsung todavía no había publicado la actualización que revoca la CA en la trust store del firmware de su tele. Resultado: Vrátil enrutó todo el tráfico del TV a un mitmproxy con reglas en Mikrotik e iptables y vio el flujo completo en texto claro.

El flujo de anuncios, por dentro

Es más simple de lo que uno imagina. Cuando la tele vuelve al Smart Hub, llama a tvx.adgrx.com/impressions/tile con datos del equipo y recibe un JSON: objeto vacío o descripción del anuncio a pintar en la parte superior de la pantalla. Aparte, cuando pasa algo «interesante», reporta eventos a catalyst.adgrx.com/adopportunity. Con la clave comprometida firmó un certificado comodín para *.adgrx.com, apuntó el DNS del router a su NAS y ahí corrió un pequeño servidor en Rust que responde ese endpoint con un anuncio donde la imagen es una foto de su familia. Cualquier otra consulta al dominio de anuncios responde 204 No Content, así que el tracking queda en negro. El código está en su GitHub, con la advertencia honesta de que cada modelo de Samsung puede usar endpoints distintos.

Por qué esto no es solo una broma divertida

Reemplazar anuncios por fotos es simpático, pero el mismo mecanismo sin filtro de buena voluntad sirve para lo contrario: inyectar contenido falsificado en un televisor — un phishing que vive dentro de tu sala de estar, con interface de Samsung. Vrátil lo dice sin rodeos: hay aplicaciones mucho más siniestras para esta falla. Y la parte que a mí como admin de VPS me deja pensando es la ventana de exposición: mitmproxy ya explica en su blog que la mayoría de las implementaciones TLS embebidas no verifican revocación ni usan Certificate Transparency. O sea, el parche del resto del mundo — revocar la CA — no llega al dispositivo hasta que el fabricante publique un update, y el fabricante no tiene ningún apuro con un hardware que ya vendió.

El ejercicio de hoy si tienes IoT en tu red — teles, cámaras, cajas con firmware de años atrás — es hacer inventario de quién firma lo que ese hardware cree: qué CAs en las que confía, hace cuánto no recibe update y qué dominios habla. Si el dispositivo no acepta certificados tuyos ni updates del fabricante, piénsalo como el servidor sin parches que dejaste expuesto con tal de que siguiera encendido: la confianza no vence por sí sola, vence cuando alguien la usa.

Fuente de inspiración: Hijacking Samsung TV Smart Hub Ads — Daniel Vrátil

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

Deja una respuesta

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