Reverse Engineering per dispositivi IoT — Video e slide

Come già saprete, il 27 ottobre si è tenuto in tutta Italia il Linux Day 2018 e su YouTube potete trovare tutti i talk dell’edizione di Vicenza. Il mio intervento è stato relativo al reverse engineering di dispositivi IoT, che è risultato un argomento abbastanza apprezzato dai numerosi studenti dell’ITIS presenti tra il pubblico.

Di seguito trovate il video, così come disponibile su YouTube. Purtroppo ci sono stati dei problemi di acustica dovuti alla forma piuttosto bizzarra dell’edificio: un unico locale che doveva contenere tutto l’evento. Quindi l’audio non è ottimale, però almeno le parole si capiscono bene… portate pazienza. 🙂

Le slide sono disponibili su Slideshare e le potete scaricare in PDF cliccando qui.

Vi ricordo infine che posso lavorare all’analisi di altri dispositivi e applicazioni IoT (e non solo). Per discutere eventuali progetti o collaborazioni potete utilizzare la mia pagina contatti.

Annunci

I video e le slide dei miei talk al Linux Day 2017

Come vi avevo precedentemente notificato, lo scorso 28 ottobre ho partecipato al Linux Day 2017 organizzato dal LUG Vicenza. In realtà i video sono stati pubblicati quasi subito, ma è stato un periodo un po’ pieno e riesco ad informarvi solo ora. Qui di seguito trovate i video e le slide di ciascun intervento. 🙂

Pubblicità invasiva e spiona: come proteggersi su Android

Il video è disponibile su YouTube:

Le slide sono su SlideShare (cliccate qui per il PDF):

Su questo argomento avevo anche scritto il post Bloccare le pubblicità sui dispositivi Android che potete usare come riferimento per seguire più facilmente le istruzioni date nel video.

Come sviluppo le applicazioni web

Il video è disponibile su YouTube:

Le slide sono su SlideShare (cliccate qui per il PDF):

L’app mostrata durante il talk è disponibile su GitHub.

Come si creano le app Android — Linux Day 2016

Il 22 ottobre si è svolto il Linux Day 2016 in tutta Italia. Come ormai faccio da anni, ho partecipato all’organizzazione di quello di Bassano del Grappa (VI) assieme a GrappaLUG.

Il Linux Day è un evento fantastico per vari motivi: è gratuito, si trova in decine di città in tutto il paese, e consente alle persone di avvicinarsi a Linux e conoscere varie tematiche relative al mondo del software libero.

Quest’anno ho deciso di proporre un talk basato essenzialmente sul mio lavoro, parlando dello sviluppo di app per Android, il quale è un sistema operativo basato su Linux, perciò eravamo pienamente in tema. 🙂

Di seguito potete vedere la registrazione del talk e le slide su SlideShare. Se volete scaricarle, le trovate sul sito del GrappaLUG. Naturalmente fatemi sapere se avete qualche domanda o dubbio. Buona visione!

Sbloccare i siti di streaming legale senza VPN con UnoTelly

Mi è stato proposto di provare UnoTelly, un servizio di SmartDNS e VPN commerciale. In particolare, questo articolo riporta la mia opinione obiettiva e imparziale sui due servizi. Mi sono focalizzato soprattutto sul servizio UnoDNS e un po’ meno su UnoVPN.

Accesso senza VPN con UnoDNS

UnoDNS è un servizio che permette di accedere ai siti web bypassando le restrizioni geografiche. Permette quindi di collegarsi a dei siti web di streaming legale specialmente in lingua inglese: Hulu, BBC iPlayer, CBS, e molti altri. A questi si aggiungono i siti di varie emittenti di varie nazioni, come ad esempio Italia, Francia, Germania, Danimarca, eccetera.

Essendo basato sugli SmartDNS, il servizio consente di sbloccare contemporaneamente tutti i siti supportati, indipendentemente dal paese per cui sono abilitati. I server DNS di UnoTelly si occupano di farci apparire come navigatori del paese più adeguato il minimo indispensabile per accedere al sito, mentre il resto del traffico non viene dirottato.

Hulu_UnoTelly
Accesso immediato ad Hulu.com tramite UnoDNS

Questo tipo di scelta ha due vantaggi rispetto alle “classiche” VPN. Il primo riguarda la velocità di navigazione: i servizi VPN non sempre sono efficienti e possono rallentare la velocità. Questo è un problema specialmente per i video. L’altro vantaggio riguarda il supporto a diversi dispositivi: qualsiasi apparecchio collegato a Internet consente di impostare dei server DNS, quindi non è necessario che supporti le VPN.

Impostando i DNS nel router, inoltre, si attivano automaticamente tutti i dispositivi della rete di casa. Questo significa sbloccare computer, smartphone, tablet, console, set-top box con Android e molto altro.

Una funzione particolare di UnoDNS è chiamata Dynamo: permette di scegliere quale nazione preferire per alcuni servizi. Un esempio molto conosciuto è Netflix, che è disponibile (con programmi diversi) in diverse nazioni. Dato che Netflix consente ai clienti di viaggiare usando lo stesso account, è possibile abbonarsi a Netflix con account USA e poi impostare Dynamo per sbloccare i programmi nel Regno Unito, cambiando la scelta ogni volta lo si desideri.

La mia valutazione

Ho provato UnoDNS con diversi siti. L’attivazione è molto semplice e il sito di UnoTelly contiene un wizard che spiega i semplici passi da eseguire. Si tratta solo di attivare i DNS e, se si ha un IP dinamico, periodicamente è necessario premere il pulsante Update IP sul sito di UnoTelly. È possibile anche configurare l’aggiornamento automatico dell’IP.

Ho verificato il perfetto funzionamento del servizio su Hulu, BBC iPlayer e CBS.

Poi ho testato un canale francese, France 3, e il risultato non è stato ugualmente soddisfacente. Il servizio infatti non è riuscito a consentire l’accesso, anche se il canale risulta tra gli oltre 350 siti supportati:

Errore di accesso sul sito di France 3
Errore di accesso sul sito di France 3

Va detto, per correttezza, che il sito contiene una sezione dedicata alla richiesta di aggiunta di nuovi canali e sicuramente è possibile segnalare questo tipo di problemi.

Complessivamente ho avuto comunque un’impressione molto positiva, specialmente per le caratteristiche del servizio DNS (velocità e compatibilità) e l’opzione Dynamo. Pertanto, considerando diversi fattori, si ottiene questo risultato:

  • Facilità d’uso: 9/10
  • Velocità: 10/10
  • Compatibilità con i dispositivi: 10/10
  • Supporto ai canali: 8/10
  • Totale: 9/10

Navigazione protetta con UnoVPN

UnoTelly propone anche un piano comprensivo sia di UnoDNS che di accesso VPN, ovviamente a un prezzo più alto. Le località VPN consentite sono: Stati Uniti, Regno Unito, Paesi Bassi, Canada e Germania.

Come ho già scritto in passato, le VPN sono un modo ormai “classico” e funzionale per accedere a siti web con restrizioni geografiche. Nella pratica, ci si collega a un server posizionato in un determinato paese e tutto il traffico web viene dirottato lì, “uscendo” su Internet con un indirizzo IP situato nella nazione in cui si trova il server.

Oltre al fatto di essere dirottato, il traffico viene anche criptato, diventando illeggibile a chi si trova tra il nostro computer e il server della VPN. Questo è leggermente meno comodo per vedere video su siti di diversi paesi, in quanto bisogna connettersi alla VPN giusta di volta in volta. Tuttavia ha un grande vantaggio in termini di privacy.

Con una buona VPN, è possibile navigare tranquillamente senza temere intercettazioni illegali o registrazioni del traffico da parte di malintenzionati o governi oppressivi. Questo vale anche in luoghi con un livello di sicurezza bassissimo, per esempio quando si usa il Wi-Fi gratuito all’interno di un locale pubblico.

Quando si sceglie un provider VPN, specialmente per questioni di privacy, è importante verificare quale sia la policy riguardo ai log (registrazioni) del traffico effettuato e la giurisdizione in cui si trova. Per motivi che sono noti a tutti, andrebbero evitati i provider basati negli Stati Uniti. UnoTelly è fornito da Unovation Inc., un’azienda che si trova in Canada e ha una privacy policy abbastanza buona.

Bisogna considerare anche i protocolli offerti. Le informazioni fornite su UnoVPN consigliano agli utenti di usare PPTP. Se lo scopo è avere più velocità per i video può anche andare, ma se l’obiettivo è la privacy non ci siamo. Molto meglio OpenVPN, il quale viene offerto ma in modalità “sperimentale”:

If our regular PPTP VPN works for you, please continue to use that instead. OpenVPN is still in BETA and we are still ironing out the wrinkles. PPTP VPN is also generally faster than OpenVPN.

La mia valutazione

A prima vista, ero convinto che anche il servizio UnoVPN fosse orientato a sbloccare l’accesso dei video online. Purtroppo però mi sono dovuto ricredere. Usando il server USA non sono riuscito a sbloccare neppure Hulu:

Malfunzionamento di Hulu con la VPN statunitense
Malfunzionamento di Hulu con la VPN statunitense

Per il resto, UnoVPN si comporta come molte altre VPN, senza meriti speciali. Ovviamente i fattori da considerare sono un po’ diversi rispetto ai DNS, e il risultato è:

  • Facilità d’uso: 8/10
  • Protocolli supportati: 4/10
  • Supporto canali e nazioni: 2/10
  • Giurisdizione canadese: 7/10
  • Totale: 5/10

Conclusione

I servizi di SmartDNS sono un valido strumento per accedere ai servizi di streaming legale, indipendentemente dalla nazione di provenienza. UnoDNS è un’ottima scelta sia per la facilità d’uso che per l’interessante funzione Dynamo. Ci sono problemi con qualche canale ma sono convinto che siano risolvibili.

Dato che i prezzi variano col tempo, non ho voluto entrare nei dettagli ma vi rimando al sito ufficiale. I piani di breve durata sono un pochino più costosi, mentre quelli annuali sono più convenienti. Ritengo comunque che sia un servizio assolutamente adeguato per chi ama film e serie TV e fa un uso intenso e regolare di questi siti.

Per gli utenti che hanno esigenze ridotte e poco frequenti, è possibile cavarsela anche con opzioni gratuite, come VPNGate, con le limitazioni del caso. In particolare la maggiore difficoltà ad attivare dispositivi “da salotto” come set-top box e smart TV.

Riguardo a UnoVPN, non ritengo che sia un servizio particolarmente utile per sbloccare i siti web che sono già attivati senza sforzo da UnoDNS. Come strumento per proteggere la privacy nelle reti poco sicure lo reputo sufficiente, senza troppi fronzoli. Ci sono comunque altri servizi che offrono un numero maggiore di nazioni.

Estrarre la rubrica da un BlackBerry con software danneggiato

Un’amica mi ha sottoposto un dispositivo BlackBerry 9780 per un’analisi. Lo scopo era quello di recuperare il contenuto integrale della rubrica contatti, in quanto il software di sistema era pesantemente danneggiato e il dispositivo faticava ad accendersi. Dopo alcuni minuti di inattività, crashava improvvisamente con un messaggio di tipo App Error.

La prima cosa da fare, in questo caso, è rimuovere la batteria e reinserirla, per effettuare un reset. Dopo diversi tentativi in cui il dispositivo sembrava bloccato all’avvio, ho verificato che effettivamente il sistema si avviava, mettendoci però 11 minuti. Alla fine del caricamento, comparivano numerosi messaggi di errore relativi al software basato su Java.

Schermata di caricamento ed errori del software
Schermata di caricamento ed errori del software

In questi casi è possibile premere ripetutamente OK per raggiungere il menu del telefono. Dopo aver effettuato questa operazione, sono iniziate le difficoltà reali:

  • la rubrica mostrava la lista dei contatti (nomi) ma non era possibile aprirli per visualizzare i numeri
  • le impostazioni di sistema non erano accessibili e facevano crashare il dispositivo
  • non si riusciva ad effettuare un accoppiamento via bluetooth
  • il programma BlackBerry Desktop Manager, oltre a essere solo per Windows o Mac, non riusciva a connettersi al dispositivo

Il fatto di non poter aprire le impostazioni di sistema significava non potersi collegare al Wi-Fi per tentare di esportare i contatti tramite qualche app. I problemi col bluetooth lasciavano il collegamento USB come unica speranza.

Il mio piano infatti era quello di effettuare un backup con il software ufficiale di BlackBerry e poi esportare la rubrica. Dopotutto è possibile usare Windows in macchina virtuale (come quelle fornite da Microsoft sul sito Modern.ie) oppure creare una USB avviabile tramite le varie Release Candidate per sviluppatori. Peccato solo per l’errore nefasto restituito da BlackBerry Desktop Manager per Windows:

BlackBerry® Desktop Manager non è in grado di comunicare con il dispositivo BlackBerry connesso. Se il dispositivo si sta riavviando oppure la batteria è completamente scarica, fare clic su Riprova per tentare di ristabilire la connessione una volta completato il riavvio. In caso contrario, per risolvere il problema potrebbe essere necessario aggiornare BlackBerry® Device Software.

Come spesso accade, mi sono reso poi conto che Linux poteva venire in aiuto e salvare la situazione. Per evitare di installare troppo software sul mio portatile, ho creato una chiavetta USB avviabile con Xubuntu 14.10, assicurandomi di attivare la persistenza per poter salvare i dati recuperati. Ad ogni modo, qualsiasi distribuzione dovrebbe andare bene.

Per evitare problemi, ho effettuato nuovamente il reset del BlackBerry. Nel frattempo ho fatto partire Xubuntu. Una volta avviato il sistema, ho installato Barry, un software open source per gestire i dispositivi BlackBerry:

sudo apt-get install barrydesktop

Ho collegato il BlackBerry col cavo USB e ho avviato il programma con i permessi di amministratore, per evitare errori di accesso negato:

sudo barrydesktop

Barry ha individuato il dispositivo senza batter ciglio e mi ha chiesto di dargli un nome. Ho cliccato su Config… e poi sul primo tasto Configure… (quello relativo al backup) per selezionare tutti i campi disponibili. In realtà era di fondamentale importanza recuperare soltanto la rubrica, ma ero curioso di vedere quanto si potesse effettivamente estrarre.

Selezione degli elementi da estrarre
Selezione degli elementi da estrarre

Dopo aver salvato le mie scelte, ho dovuto solo premere il tasto Backup nella finestra principale:

Barry durante l'operazione di backup
Barry durante l’operazione di backup

Il processo si è interrotto “brutalmente” al 42%, probabilmente a causa degli errori software. Barry ha mostrato un messaggio di errore indicando quali campi non erano stati estratti. Ha quindi provveduto a salvare quello che era stato recuperato, incluso il contenuto integrale della rubrica. Il BlackBerry è poi crashato nuovamente.

Dato che il processo era stato avviato come amministratore, è stato necessario copiare i file dalla cartella dei backup alla home dell’utente che stavo utilizzando:

sudo cp /root/.barry/backup ~
sudo chmod a+r ~/backup

L’obiettivo finale era esportare i contatti in un formato “universale” che si potesse agevolmente aprire e magari importare su Gmail. Dato che Barry effettua il backup in un formato proprietario, ho utilizzato un comodo script chiamato BlackBerry-Address-Book-to-CSV.

È sufficiente scaricare il file ZIP, estrarlo ed eseguirlo sul file di backup. Si tratta solo di dare pochi comandi:

wget https://github.com/mintern/BlackBerry-Address-Book-to-CSV/archive/master.zip
unzip master.zip
cd BlackBerry-Address-Book-to-CSV-master
./bbab2csv ~/backup/[PIN]/[NOME].tar.gz

Al posto di [PIN] e [NOME] vanno inseriti il PIN del dispositivo e il nome dell’archivio creato da Barry, che varia di volta in volta. L’output in formato CSV viene mostrato nel terminale, se volete salvarlo su un file potete ripetere l’ultimo comando ridirezionando l’output:

./bbab2csv ~/backup/[PIN]/[NOME].tar.gz > ~/contatti_BB.csv

Il file risultante si trova nella home e si può aprire tranquillamente con LibreOffice oppure importare in un account Gmail, per sincronizzarlo con un dispositivo Android. Ovviamente va salvato in un posto sicuro, specialmente se si sta usando Linux su una live USB.

Il procedimento di recupero con Linux, alla fine, è stato molto veloce. La maggior parte del tempo è stata persa nei vari riavvii del dispositivo e tentando di far funzionare il software ufficiale di BlackBerry, che non è stato di alcun aiuto per estrarre i dati.

Tuttavia, BlackBerry Desktop Manager si è rivelato utile perlomeno per far tornare funzionante il telefono. Una volta collegato il cavo USB e ricevuto il messaggio di errore, ho cliccato su Aggiorna. Alla proposta di fare un backup ho risposto di no (altrimenti si sarebbe bloccato di nuovo) e ho confermato di voler formattare il dispositivo.

Alla fine del processo, il BlackBerry era perfettamente funzionante e tristemente vuoto. Avviando di nuovo Linux, con Barry ho potuto ripristinare la rubrica di cui era stato fatto il backup in precedenza.

La morale che si può trarre da questa esperienza è che da un BlackBerry con software danneggiato a volte si possono recuperare dei dati. Inoltre, non sempre l’applicazione ufficiale è la scelta migliore. Anzi, Barry consente di accedere almeno a una parte delle informazioni in casi in cui BlackBerry Desktop Manager non è in grado di collegarsi al dispositivo, con l’ulteriore vantaggio di non essere costretti a usare Windows.