Una telecamera IP progettata per funzionare attraverso il cloud può diventare un dispositivo completamente autonomo, capace di trasmettere video sulla rete locale. Il problema è capire che cosa impedisca al firmware di utilizzare funzionalità già presenti in hardware. Eric Park, sviluppatore e appassionato di reverse engineering, ha affrontato proprio questa sfida: modificare una telecamera economica basata sulla piattaforma Tuya, utilizzando Ghidra e strumenti AI per individuare e rimuovere le limitazioni software.
Molte telecamere commercializzate tra il 2015 e il 2022 utilizzano Linux embedded, ma dipendono da applicazioni proprietarie e servizi remoti. Quando il produttore interrompe il supporto, oppure l’utente blocca la comunicazione con Internet, l’hardware può diventare praticamente inutilizzabile. Eppure, spesso, le capacità necessarie per funzionare in autonomia, senza dipendere da server remoti, sarebbero già presenti.
Dentro il firmware della telecamera: Linux, ARM e servizi nascosti
Nel suo resoconto tecnico, Park riprende un esperimento iniziato nel 2025. La telecamera utilizza un SoC Anyka AK3918 e un firmware basato su Linux 3.4.35, kernel risalente al 2013.
Attraverso l’uso di Binwalk (strumento open source per analizzare firmware ed estrarne i componenti interni, download), il ricercatore ha estratto l’immagine firmware e identificato 3 componenti fondamentali: un kernel ARM in formato uImage, un filesystem CramFS e una partizione JFFS2. L’applicazione principale, chiamata ppsapp, contiene la logica proprietaria che controlla il dispositivo.
L’analisi delle stringhe presenti nell’eseguibile ha rivelato riferimenti a ONVIF, standard utilizzato per l’interoperabilità dei sistemi di videosorveglianza, e a RTSP, protocollo che permette di gestire sessioni di streaming multimediale.
Compaiono perfino gli indirizzi dei flussi video, con percorsi come /Streaming/Channels/101 e /Streaming/Channels/102. La telecamera, insomma, possiede già buona parte del software necessario per trasmettere immagini senza passare dai server Tuya.
Ghidra permette di scoprire perché ONVIF non si attiva
Park utilizza Ghidra, piattaforma di reverse engineering sviluppata dalla NSA, per esaminare il binario ARM da circa 2,4 MB. Il decompilatore ricostruisce una rappresentazione in linguaggio C delle istruzioni macchina, consentendo di seguire il comportamento delle funzioni.
L’indagine parte dalla variabile onvif_enable, presente nel file tuya_config.json: seguendo i riferimenti nel codice, Park identifica le routine che leggono la configurazione e controllano l’avvio del server ONVIF sulla porta TCP 8000.
Purtroppo, però, la modifica diretta dei byte del firmware può compromettere i controlli CRC (checksum); inoltre, alcune funzioni responsabili dell’attivazione dei servizi della telecamera non erano richiamabili attraverso il normale percorso di esecuzione. Il ricercatore decide allora di intervenire direttamente sulle istruzioni ARM.
Come l’intelligenza artificiale aiuta a modificare il firmware
La parte più interessante arriva quando Park ha aggiunto all’analisi manuale quella effettuata servendosi di un modello linguistico.
Inizialmente, l’AI ha aiutato ad interpretare una complessa funzione decompilata; successivamente, dopo aver individuato l’interfaccia seriale UART della scheda, il ricercatore si è trovato dinanzi a una password che protegge l’accesso a U-Boot, il bootloader del dispositivo.
Utilizzando DeepSeek V4.1 Flash 1017 attraverso OpenRouter, piattaforma che permette di accedere via API a modelli AI di diversi fornitori, e OpenCode, agente open source per analizzare, scrivere e modificare codice con l’assistenza dell’AI, Park è riuscito a identificare la password nel dump del firmware. La stringa non compare in chiaro: i caratteri sono offuscati: l’AI permette di individuare la routine di verifica e ricostruisce il valore originale.
DeepSeek ha poi scovato ulteriori punti del binario ARM da modificare. Una delle patch sostituisce un salto condizionale con un salto incondizionato; un’altra trasforma una funzione di controllo in una routine che restituisce immediatamente zero: in questo modo è stato possibile esporre le porte TCP 8000 e 8554 e attivare il server ONVIF svincolandolo dal cloud proprietario.
Un approccio simile è alla base di REA (Reverse Engineer Anything), progetto open source che integra Ghidra e altri strumenti di reverse engineering con agenti AI. Come abbiamo mostrato analizzando gli eseguibili Windows, l’intelligenza artificiale può esplorare funzioni, seguire le chiamate e interpretare il codice decompilato, lasciando agli strumenti specializzati l’analisi effettiva delle istruzioni macchina.
Recuperare telecamere obsolete: opportunità e rischi
L’esperimento dimostra quanto una limitazione commerciale possa incidere sulle possibilità effettive dell’hardware. Nel caso di specie, sono bastate alcune modifiche mirate a un eseguibile proprietario e alla sua logica di avvio.
Un approccio complementare è quello descritto nel nostro approfondimento su Strix, il progetto che cerca streaming e funzionalità nascoste nelle telecamere IP.
Strix prova a individuare interfacce video accessibili attraverso la rete; Park affronta invece il problema intervenendo direttamente sul firmware quando i servizi locali risultano disabilitati o subordinati al cloud.
Modificare un firmware comporta rischi rilevanti: un’immagine firmware incompatibile o danneggiata può impedire l’avvio della telecamera, rendendola inutilizzabile (il cosiddetto “brick“). Nei casi più gravi, il recupero richiede un programmatore SPI, un dispositivo hardware che permette di leggere e riscrivere direttamente il chip di memoria flash contenente il firmware. SPI (Serial Peripheral Interface) è infatti un’interfaccia di comunicazione seriale utilizzata anche per collegare le memorie flash ai microprocessori. Con un programmatore esterno, spesso collegato ai pin del chip sulla scheda elettronica, è possibile ripristinare una copia funzionante del firmware anche quando la telecamera non riesce più ad avviarsi normalmente.
Inoltre, abilitare servizi originariamente disattivati può introdurre nuove superfici di attacco. Meglio quindi isolare le telecamere su una VLAN dedicata, limitarne l’accesso tramite firewall e verificare autenticazione e aggiornamenti disponibili.
Un aspetto significativo è il ruolo dell’AI: Park non le affida ciecamente l’intero lavoro. Utilizza Ghidra, esamina il codice, verifica le modifiche e affronta personalmente i problemi hardware. L’assistenza del modello AI gli costa alla fine appena 0,22 dollari: un esempio concreto di come l’intelligenza artificiale possa rendere il reverse engineering più accessibile, senza sostituire la comprensione tecnica necessaria per ottenere risultati affidabili.