I ricercatori di F-Secure hanno pubblicato un white-paper nel quale sono evidenziate le numerose problematiche di sicurezza nelle telecamere IP prodotte dalla cinese Foscam , spesso vendute in white-label e pertanto presenti sul mercato anche per mezzo di produttori terzi (ad esempio Opticam ).
Si tratta di 18 vulnerabilità presenti nelle webcam Opticam i5 , con firmware 1.11.1.8 e versione del software 2.72.1.32 , e Foscam C2 , con firmware di sistema 1.5.2.11 e versione software 2.21.1.128 , che spaziano dalle classiche problematiche legate all’utilizzo di credenziali predefinite standard a più serie vulnerabilità sull’interfaccia di amministrazione e sui software installati a bordo delle stesse.
È opportuno notare come molte delle debolezze riportate riguardino aspetti e funzionalità non configurabili dall’utente e richiedono interventi da parte del produttore. Pertanto le best practice tipiche in questi casi, come il cambio della password predefinita alla prima installazione, potrebbero non essere sufficienti a limitare la possibilità di compromissioni.
Foscam ha ricevuto segnalazioni da parte di F-Secure; tuttavia, poiché non sono state prese contromisure, è stata effettuata una full-disclosure delle vulnerabilità.
CREDENZIALI PREDEFINITE E BACKDOORS
Sono proprio le credenziali di accesso al pannello di amministrazione a costituire l’oggetto della prima vulnerabilità segnalata in quanto non sono generate in modo casuale: il nome utente di amministrazione è admin e la password è assente. Ciò apre anche alla possibilità di accedere allo stream video RTSP e di effettuare trasferimenti di dati mediante il protocollo FTP.
Anche le credenziali del demone FTP a bordo della webcam sono le medesime e non è impostata alcuna password. Come se non bastasse, i parametri di autenticazione FTP sono hard-coded , pertanto è pregiudicata la possibilità dell’utente di cambiarle; la password di amministrazione dell’interfaccia web, invece, può essere modificata, tuttavia essa viene salvata per fini di backup in un file di configurazione protetto da credenziali ancora una volta hard-coded , permettendo a un malintenzionato di compromettere altri sistemi nel caso in cui la stessa sia utilizzata anche altrove; inoltre è presente un utente hard-coded per l’accesso alle funzionalità dell’interfaccia web.
Un’ulteriore backdoor è costituita dal demone telnet , incluso nel firmware e abilitato, ma non documentato nelle specifiche tecniche; ciò apre ad attacchi persistenti, esecuzione di codice arbitrario fino alla compromissione dell’intera rete a cui la webcam è connessa.
INIEZIONE ED ESECUZIONE DI COMANDI ARBITRARI
Vi sono poi numerose altre vulnerabilità a livello di interfaccia web , come la possibilità di iniettare comandi eseguendoli con privilegi di root nel parametro usrName
della funzione addUser
dello script CGIProxy.fcgi
.
La funzionalità di ripristino della configurazione da un backup, inoltre, permette di caricare un file XML che sarà salvato nel percorso /mnt/mtd/app/config/ProductConfig.xml . Questo file viene letto da uno script bash, /mnt/mtd/boot.sh
, che viene eseguito nella sequenza di avvio ed effettua la valutazione ( eval
) del parametro modelName ; analogamente al caso appena descritto, ciò può comportare l’iniezione e l’esecuzione di comandi arbitrari come root.
PRINCIPIO DEL PRIVILEGIO MINIMO, QUESTO SCONOSCIUTO
Il file /mnt/mtd/boot.sh è impostato con permessi di lettura, scrittura ed esecuzione per tutti gli utenti ( 777 , per i lettori abituati a trattare con il formato ottale di Linux). Ciò permette a chiunque di riscriverne il contenuto, comportando l’ esecuzione di codice arbitrario all’accensione della IP camera .
Nella directory /mnt/mtd/app , anch’essa con privilegi 777 , sono memorizzati alcuni archivi che contengono i file binari della distribuzione Linux a bordo della webcam. Questi vengono estratti in RAM all’avvio del sistema ma, a causa dei permessi impostati, è possibile per un malintenzionato alterarne il contenuto installando codice malevolo persistente.
IMPLEMENTAZIONE DI ONVIF
L’implementazione di ONVIF (Open Network Video Interface Forum), standard per favorire l’ intercompatibilità tra le apparecchiature di videosorveglianza , nasconde numerose problematiche dovute soprattutto alla mancanza di autenticazione.
La funzione SetDNS
, ad esempio, espone le Foscam a modifiche non autorizzate del server DNS di riferimento, comportando anche la possibilità di eseguire comandi arbitrari e di installare script persistenti senza fornire credenziali. La stessa è soggetta anche ad attacchi di tipo buffer overflow basati sulla corruzione dello stack , che possono portare all’acquisizione di privilegi ulteriori e al crash dei servizi, causando situazioni di Denial of Service.
È presente, inoltre, una vulnerabilità di tipo Cross Site Scripting persistente sfruttabile tramite la chiamata ONVIF SetHostname
. Il metodo GetStreamUri
, che fornisce l’indirizzo RTSP per l’acquisizione del flusso video, permette di estrarre le credenziali di amministrazione ed è possibile invocare la funzione SystemReboot
per forzare un riavvio del sistema (scatenando l’esecuzione dello script boot.sh
).
FIREWALL E CONTROLLO DEGLI ACCESSI
Non sono previste restrizioni sulle form di login , esponendo le Foscam ad attacchi di forza bruta , tuttavia è presente un firewall applicativo per impedire eventuali accessi non autorizzati agli endpoint dei vari servizi.
Tralasciando la debolezza del meccanismo di autorizzazione – basato sull’ autenticazione mediante indirizzo IP – l’implementazione del firewall nasconde numerose problematiche: le porte bloccate sono esclusivamente quelle relative all’interfaccia web ( 88 per HTTP e 443 per HTTPS ) e non è previsto alcun meccanismo per bloccare gli altri protocolli esposti ( ONVIF sulla porta 888 , FTP sulla porta 50021 , RTSP sulla 65534 e Telnet sulla 23 ). L’accesso all’endpoint di RTSP sulla porta 88 , inoltre, non è bloccato, sebbene l’autenticazione non funzioni.
Il firewall permette altresì di scoprire informazioni sulla validità delle credenziali comportando l’eventualità di attacchi brute force anche quando gli accessi all’interfaccia web sono bloccati : l’utilizzo di credenziali valide da parte di un indirizzo non autorizzato restituisce un codice di errore -8 , mentre l’utilizzo di credenziali errate restituisce in ogni caso il codice di errore -2 .
DENIAL OF SERVICE
Un’ultima vulnerabilità, ma non per importanza, è presente nel server RTSP che, nell’interpretazione dell’header Content-Length
elabora i numeri negativi in modo non corretto causando il blocco (mediante esaurimento della memoria) o l’interruzione del servizio RtspServer
.
IN CONCLUSIONE…
Le vulnerabilità presentate sono fuori dal controllo dell’utente medio: il responsabile della risoluzione di tali problematiche è il produttore stesso; sono molteplici le soluzioni applicabili dall’esterno, tra cui l’adozione di tecnologie firewall e proxy per introdurre livelli di autenticazione e autorizzazione aggiuntivi.
La principale raccomandazione rilasciata da F-Secure per la mitigazione di queste vulnerabilità, in ogni caso, è quella di installare le IP Camera su una rete dedicata , oppure segregando lo stack di rete al livello 2 ISO/OSI mediante l’utilizzo di VLAN .
Ricordiamo inoltre l’esistenza del progetto OpenIPCamera che fornisce firmware open source per molte telecamere IP in commercio.
Patrizio Tufarolo