7082 Letture
Monitorare il funzionamento delle applicazioni con Charles

Monitorare il funzionamento delle applicazioni con Charles

Presentiamo Charles, un proxy server locale che permette di investigare sul funzionamento di siti, applicazioni web, programmi e app installate su dispositivi mobili di ogni tipo, smascherandone i segreti più reconditi.

C'è un programma compatibile con i sistemi Windows, macOS e Linux che permette di verificare quali dati scambia ciascuna applicazione installata su PC così come su qualunque dispositivo mobile, equipaggiato con qualunque sistema operativo (quindi anche Android e iOS).
Il suo nome breve è Charles anche se l'appellativo completo è Charles Web Debugging Proxy: una volta installato su una qualunque macchina, il programma è in grado di registrare tutto il traffico dati scambiato con i server remoti.

Scaricabile a questo indirizzo, Charles registra in una sorta di file di log l'intera sequenza di operazioni compiute da qualunque applicazione. Così facendo è possibile non soltanto scoprire a quali indirizzi IP o URL si collega un'app ma anche conoscere l'esatto contenuto di ciascuna richiesta.

Charles si frappone fra il sistema locale e i server remoti accessibili via Internet controllando in tempo reale il contenuto di tutti i pacchetti dati che vengono scambiati. Questo server proxy permette anche di installare un certificato root sul sistema locale così da decodificare il contenuto del traffico HTTPS.


Vi diciamo come noi utilizziamo Charles: per esaminare approfonditamente il comportamento delle app che installiamo sui nostri dispositivi mobili predisponiamo una macchina virtuale con Virtualbox (vi si può installare Windows o una distribuzione Linux).
Accedendo al menu Dispositivi, Rete, Impostazioni di rete di Virtualbox, impostiamo l'interfaccia di rete della macchina virtuale su Scheda con bridge in modo che essa sia raggiungibile e accessibile da qualunque dispositivo collegato alla LAN.

Monitorare il funzionamento delle applicazioni con Charles

Dopo aver installato Charles nella macchina virtuale, il consiglio è quello di avviare il programma e accedere al menu Help, SSL Proxying, Install Charles Root Certificate.

Monitorare il funzionamento delle applicazioni con Charles

Così facendo, il certificato root di Charles sarà installato sul sistema locale e in Windows sarà visibile premendo la combinazione di tasti Windows+R, digitando certmgr.msc e cercandolo nella sezione Autorità di certificazione radice attendibili, Certificati.

Monitorare il funzionamento delle applicazioni con Charles

A questo punto, portandosi nel menu Proxy, SSL Proxying Settings si potrà cliccare sul pulsante Add, nella scheda SSL Proxying e digitare * sia nel campo Host che Port.

Monitorare il funzionamento delle applicazioni con Charles

Così facendo Charles riuscirà a decodificare tutto il traffico dati scambiato attraverso protocolli crittografici, come HTTPS, che "chiamano in causa" gli algoritmi SSL/TLS.

Ogni volta che si avvia Charles il programma modifica automaticamente la configurazione del sistema operativo così che tutte le applicazioni installate passino attraverso il proxy server locale.

Per verificarlo basta premere la combinazione di tasti Windows+R, digitare inetcpl.cpl quindi accedere alla scheda Connessioni e infine fare clic sul pulsante Impostazioni LAN. Cliccando su Avanzate si può notare come Charles abbia impostato come proxy l'indirizzo locale 127.0.0.1 sulla porta 8888.

Monitorare il funzionamento delle applicazioni con Charles

Con questa configurazione Edge, Internet Explorer, le altre applicazioni Windows e Google Chrome faranno transitare il traffico attraverso il server proxy di Charles.
Nel caso di Firefox è necessario importare manualmente il certificato root di Charles salvabile utilizzando il menu Help, SSL Proxying, Save Charles Root Certificate.

Impostando l'indirizzo IP privato della macchina virtuale sul quale Charles è stato installato nelle impostazioni proxy di qualunque dispositivo mobile, è possibile far in modo che tutto il traffico transiti attraverso il server proxy locale e venga così monitorato e memorizzato.

L'indirizzo IP privato assegnato alla macchina virtuale sul quale Charles è installato può essere recuperato velocemente dalla stessa interfaccia del programma cliccando su Help quindi su Local IP address.

Monitorare il funzionamento delle applicazioni con Charles

Già visitando un qualunque sito web sulla macchina virtuale si noterà come Charles provveda ad "annotare" tutte le richieste e gli elementi via a via caricati.

Monitorare il funzionamento delle applicazioni con Charles

Con un clic sulla scheda Contents si possono esaminare nel dettaglio le informazioni scambiate, comprese quelle trasferite via HTTPS.

Attivando un'app su un dispositivo mobile sul quale si sia configurato il sistema operativo per collegarsi all'IP privato della macchina virtuale sul quale Charles è installato (indicando anche la porta 8888), si potrà esaminarne il comportamento passo-passo impostando eventualmente dei breakpoint, utilissimi ai fini di debugging.


La sequenza temporale delle operazioni compiute dalle app o da una applicazioni web sono verificabili accedendo alla scheda Sequence di Charles (i tempi sono indicati nelle colonne Start e Duration).

Charles è un programma che viene fornito in prova per 30 giorni dal momento dell'installazione: durante tale periodo mostrerà dei nag screen invitando all'acquisto di una licenza e non potrà essere usato per più di 30 minuti consecutivi. Fatta eccezione per queste due restrizioni, Charles è estremamente versatile e tutte le sue funzionalità possono essere liberamente sfruttate.
Maggiori informazioni sulla configurazione del certificato di Charles possono essere trovate a questo indirizzo.


Monitorare il funzionamento delle applicazioni con Charles