Reverse Engineering einer IP-Kamera (Teil 3): Zwinge sie, meine Sprache zu sprechen

Veröffentlicht von TheJoe am

Geschätzte Lesezeit: 5 Minuten

Eines Tages wachst du auf, guardi un vecchio dispositivo che sedimenta in un cassetto da tanti anni – nel mio caso una telecamera IP con un glorioso ma ostinato chip HiSilicon hi3510 – e decidi che è arrivato il momento di fare le cose per bene. Ti dici: Basta cloud proprietari, basta app ambigue sullo smartphone. Oggi configuro il salvataggio dei video via FTP direttamente sul mio computer locale.. Scelta un poobbligata, anche perché spesso a questi dispositivi cessa il supporto “Wolke” nel giro di pochi mesi dal loro lancio sul mercato.

Nel mio caso anziché usare il mio PC Linux userò il mio server Linux. Medientresor öffnen (OMV) è una distribuzione basata su Debian che mi permette di gestire i miei file e le mie condivisioni in modo semplice come farei con un NAS. Inoltre ho la possibilità di avviare docker e qualsiasi servizio supportie poi è Linux: ho a disposizione tutti gli strumenti con cui ho familiarità.

C’è solo un piccolo, enorme problema: nelle impostazioni di questa telecamera non esiste alcuna voce relativa all’FTP. Una voce nella mia testa mi suggerisce: “Hey, un momentonon avevo trovato la voce FTP nei file di configurazione?” In effetti è così, ma nell’interfaccia della cam non puoi inserire un server di destinazione, non puoi cambiare username, password o porte.

“Ok, questa cam in uno dei suoi file di configurazione ha l’indirizzo di un server FTP, una porta FTP e una coppia di credenziali, ma nell’interfaccia non si vede niente. Quindi questa cam lo usa o no l’FTP? E se lo usacosa trasmette? Dove trasmette? Come trasmette?”

Il dispositivo è una scatola nera e l’FTP è probabilmente programmato dal produttore cinese per impacchettare i video e spedirli dritti e solo sui loro server remoti attraverso un’applicazione proprietaria.

Wunderbar! Inizia così una di quelle classiche avventure notturne fatte di terminali aperti, pacchetti di rete catturati al volo e ore passate a fare reverse engineering su un firmware che non voleva saperne di collaborare. Se anche voi siete intrappolati nel limbo dei codici di errore di una cam cinese, ecco come ne sono uscito vivo.


Primo ostacolo: Il grande inganno del DNS (L’errore -2)

La prima cosa che fai quando un dispositivo non si connette è controllare i file di configurazione. Scaricando il file config_action.ini della telecamera, è emerso il primo dettaglio ridicolo: il firmware ignorava completamente l’IP locale del NAS che avevo inserito a schermo. Nel suo codice c’era scritto, rigido come il marmo, che per fare qualsiasi test la cam doveva prima contattare il server della casa madre: www.myidoorbell.com. Inutile dire che quel sito ormai non esista piùma la cam non lo sa.

Finché la cam non riceveva risposta da quell’indirizzo web, il test FTP non partiva neanche, sputando un generico Errore -2 (host non raggiungibile), o almeno questo è quello che pensavo.

Come risolvere? Ho usato AdGuard Home (un DNS locale come altri) per creare una regola di riscrittura DNS personalizzata. Ho detto al mio router: Senti, quando la telecamera cerca www.myidoorbell.com, non mandarla su internet. Dalle l’IP del mio OMV (192.168.5.10)”.

A quel punto la cam ha abboccato all’amo. Ma l’errore è diventato un altro.


Secondo ostacolo: La sintassi sporca e i log muti (L’errore -3)

Risolto il DNS, il codice d’errore della cam è passato da -2 a -3. Un passo avanti, einige, ma c’era un problema frustrante: il server FTP di OpenMediaVault (ProFTPD) non mostrava assolutamente nulla nei log. Il deserto totale.

Cercando nei meandri dei firmware HiSilicon, si scopre che questi chip inviano comandi FTP con una sintassisporca”, aggiungendo spazi vuoti casuali alla fine delle stringhe. Per digerire questa roba, ho dovuto creare un file di configurazione personalizzato per ProFTPD (/etc/proftpd/conf.d/cam_fix.conf) inserendo alcune direttive di tolleranza, einschließlich:

MultilineRFC2228 on
ServerIdent on "Ready"

Questo ha ripulito i messaggi, ma il test continuava a fallire con errore -3 e ProFTPD rimaneva ostinatamente muto. Warum?


Die “Boss Finale”: L’intercettazione con tcpdump

Quando i log del software ti mentono o stanno zitti, c’è solo una cosa da fare: ascoltare direttamente i cavi di rete. Ho aperto il terminale di OMV e ho lanciato il comando diagnostico definitivo per intercettare il traffico della cam:

sudo tcpdump -ni any host 192.168.5.125

Ho rilanciato il test ed ecco apparire la scena del crimine in tempo reale. La cam bussava alla porta 21 (FTP), il server rispondeva dicendo di essere pronto, la cam inviava lo username e a quel punto il server le sbatteva la porta in faccia con questo messaggio:

FTP: 550 Richiesto SSL/TLS sul canale di controllo

Mistero svelato! Di default, le versioni recenti di OpenMediaVault sono (richtig) configurate per pretendere connessioni FTP criptate e sicure (FTPS). Ma il vecchio chip della telecamera, essendo rudimentale, non supportava minimamente la crittografia e parlava solo l’FTP classico in chiaro. Sentendosi rifiutare la connessione per mancanza di TLS, la cam chiudeva la sessione all’istante, impedendo persino la registrazione del login nei log di sistema.

Schau hier:  Reverse Engineering einer IP-Kamera (Teil 2): Eine alte Kamera aus der chinesischen Cloud befreien

È bastato andare nella dashboard di OMV, disattivare l’obbligo del TLS/SSL nelle impostazioni del servizio FTP (consentendo il traffico in chiaro nella rete locale) e riavviare il demone.

Infine, un ultimo tocco: dal dump dei pacchetti ho notato che la cam troncava la password a soli 8 Zeichen, ignorando gli spazi successivi generati dal bug del suo stesso pannello web. Ho allineato la password dell’utente Linux su OMV a quegli 8 caratteri esatti con sudo chpasswd und…

HTTP/1.1 200 OK -> result="0"

Vittoria! La cam ha effettuato il login, ha scritto il suo file di test dentro la cartella condivisa e ha chiuso la sessione. Il controllo era finalmente mio.


Una riflessione necessaria: Di chi sono i nostri dati?

Questa smanettata notturna, oltre alla soddisfazione di aver piegato l’hardware al mio volere, mi ha lasciato addosso una profonda inquietudine.

Ve le ricordate le tre domande iniziali? EranoCosa trasmette?”, “Dove trasmette?” und “Come trasmette?”.

Pensateci bene. Compriamo dispositivi elettronici scintillanti, spesso attirati da prezzi stracciati e scatole dal design pulito. Li scartiamo, li colleghiamo alla presa di corrente e installiamo un’app che ci chiede di creare l’ennesimo account cloud. In quel preciso istante, stiamo infilando dentro le nostre case, nelle nostre stanze, davanti alla nostra intimità familiare, un occhio elettronico gestito dalSignor Nessuno”.

Durante questa analisi abbiamo scoperto due cose agghiaccianti su questo dispositivo di dubbia provenienza:

  1. Zero consenso, zero trasparenza: Anche se configuri la cam per lavorare localmente, il firmware è programmato per bypassare le tue scelte e inviare dati a un server remoto (www.myidoorbell.com) situato chissà dove, senza che l’utente abbia mai firmato o compreso un reale consenso per la gestione di quel traffico.
  2. La totale assenza di sicurezza: La telecamera pretendeva di spedire flussi video e credenziali di accesso attraverso una connessione FTP completamente in chiaro, non cifrata. Significa che chiunque, lungo la catena di nodi internet tra casa nostra e il server cinese, avrebbe potuto intercettare, guardare e salvare i nostri video senza alcuno sforzo.

La sovranità dei dati non è un concetto astratto per filosofi del web; è la decisione consapevole di riprendersi le chiavi di casa propria. Spendere un’ora a configurare un server locale, costringendo un pezzo di silicio ribelle a lavorare sotto le nostre regole e isolandolo da internet mi ha divertito, ma non è solo un passatempo da nerd. È l’unico modo rimasto per tracciare un confine invalicabile tra la nostra vita privata e l’opacità di un mercato tecnologico che ci vorrebbe costantemente trasparenti, tracciati e vulnerabili.

Quando comprerai il tuo prossimo pezzo di tecnologia pensa bene a ciò che potrebbe esserci dietro, perché oggi non esistono solo le telecamere di sorveglianza, ma gli spioncini smart, telecamere integrate nelle lampadine sotto al portico, telecamere sulle auto, telecamere sui robot aspirapolvere. Ci fidiamo veramente di tutti questi produttori?


TheJoe

Ich halte diesen Blog als ein Hobby von 2009. Ich bin begeistert von Grafik, Technologie, Open Source Software. Unter meinen Artikel wird nicht schwierig sein, über die Musik finden, und einige persönliche Reflexionen, aber ich bevorzuge die direkte Linie des Blogs vor allem auf Technologie. Weitere Informationen Kontaktieren Sie mich.

0 Kommentare

Hinterlasse eine Antwort

Avatar-Platzhalter

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden.