{"id":53949,"date":"2026-10-21T16:59:24","date_gmt":"2026-10-21T14:59:24","guid":{"rendered":"https:\/\/www.fabriziogiancola.eu\/?p=53949"},"modified":"2026-10-21T16:59:24","modified_gmt":"2026-10-21T14:59:24","slug":"mobile-verification-toolkit-burp-suite","status":"publish","type":"post","link":"https:\/\/www.fabriziogiancola.eu\/index.php\/2026\/10\/21\/mobile-verification-toolkit-burp-suite\/","title":{"rendered":"Mobile Verification Toolkit &amp; Burp Suite"},"content":{"rendered":"\n<p class=\"has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-link-color has-medium-font-size wp-elements-1 wp-block-paragraph\"><strong>Appunti di mobile malware analysis &#8211; revisione e aggiornamento (ottobre 2026)<\/strong><\/p>\n\n\n\n<h1 class=\"wp-block-heading has-medium-font-size\">Nota di revisione<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Ho ripreso alcuni appunti, risalenti ormai al 2024 , li ho verificati sulla documentazione ufficiale corrente (MVT, androidqf, PortSwigger, Android Developers) e su fonti di threat intelligence. Pensavo fosse cambiato poco e invece:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>MVT non analizza pi\u00f9 i dispositivi Android \u201cdal vivo\u201d via ADB.<\/strong> Il comando <code>check-adb<\/code>, deprecato nella v2.7.0, \u00e8 stato rimosso: la procedura supportata \u00e8 <em>acquisizione con androidqf \u2192 analisi con<\/em> <code>mvt-android check-androidqf<\/code>. Anche il controllo VirusTotal si esegue ora sull\u2019acquisizione androidqf.<\/li>\n\n\n\n<li><strong>Il repository di androidqf \u00e8 passato sotto<\/strong> <strong>mvt-project<\/strong> (<code>github.com\/mvt-project\/androidqf<\/code>); la mia versione 1.6 negli appunti \u00e8 superata.<\/li>\n\n\n\n<li><strong>iOS: un backup cifrato va prima decifrato<\/strong> con <code>mvt-ios decrypt-backup<\/code>; <code>check-backup<\/code> lanciato direttamente sul backup cifrato non funziona. Aggiunta l\u2019analisi di <em>sysdiagnose<\/em> \/ <code>shutdown.log<\/code>.<\/li>\n\n\n\n<li><strong>MVT usa ora il calendar versioning<\/strong> (es. v2026.7.29, v2026.9.1) con rilasci mensili; l\u2019installazione raccomandata \u00e8 da PyPI (<code>pipx install mvt<\/code>), quella da Git \u00e8 per lo sviluppo.<\/li>\n\n\n\n<li><strong>Burp Suite su Android:<\/strong> spiegato <em>perch\u00e9<\/em> da Android 7 serve il root (le app non si fidano delle CA installate dall\u2019utente) e aggiunte le complicazioni di Android 14 (store CA nel modulo APEX Conscrypt). Le procedure valgono anche per Burp Community.<\/li>\n\n\n\n<li><strong>Sezioni teoriche:<\/strong> verificate e corrette. Le correzioni puntuali sono nel <em>Registro delle modifiche<\/em> (\u00a7 8).<\/li>\n\n\n\n<li><strong>Data la pubblicazione sul blog, ho aggiunto<\/strong> una premessa metodologica forense, una tabella di strumenti open source integrativi e uno use case operativo.<\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-link-color has-medium-font-size wp-elements-2\">1. Premessa metodologica<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">MVT e Burp rispondono a due domande diverse e vanno usati in momenti diversi.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-regular\"><table class=\"has-fixed-layout\"><thead><tr><td>&nbsp;<\/td><td><strong>MVT + androidqf \/ libimobiledevice<\/strong><\/td><td><strong>Burp Suite (e proxy affini)<\/strong><\/td><\/tr><\/thead><tbody><tr><td>Domanda<\/td><td><em>Questo dispositivo mostra tracce di compromissione note?<\/em><\/td><td><em>Che cosa trasmette questa app e a chi?<\/em><\/td><\/tr><tr><td>Natura<\/td><td>Triage forense consensuale, basato su IOC (STIX2) ed euristiche<\/td><td>Analisi dinamica del traffico (man-in-the-middle)<\/td><\/tr><tr><td>Dove<\/td><td>Sul dispositivo oggetto di verifica, con acquisizione documentata<\/td><td><strong>In laboratorio<\/strong>, su dispositivo di test o emulatore con il campione<\/td><\/tr><tr><td>Esito<\/td><td>Rilevamento di indicatori noti; un esito negativo <strong>non<\/strong> prova l\u2019assenza di compromissione<\/td><td>Endpoint C2, dati esfiltrati, protocolli<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Alcuni punti fermi, coerenti con ISO\/IEC 27037 e NIST SP 800-101 Rev.&nbsp;1:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Autorizzazione e consenso.<\/strong> La verifica di un dispositivo altrui richiede titolo (consenso informato del titolare o provvedimento dell\u2019Autorit\u00e0 Giudiziaria). In ambito penale valutare se l\u2019operazione sia un accertamento ripetibile (art. 359 c.p.p.) o non ripetibile (art. 360 c.p.p.).<\/li>\n\n\n\n<li><strong>Invasivit\u00e0 minima e documentata.<\/strong> androidqf installa temporaneamente un agente di raccolta sul telefono e l\u2019attivazione del Debug USB modifica le impostazioni: ogni azione va annotata (ora, operatore, comandi). androidqf produce command.log, acquisition.json e hashes.csv; MVT registra il proprio command.log.<\/li>\n\n\n\n<li><strong>Integrit\u00e0.<\/strong> Calcolare e verbalizzare gli hash (SHA-256) dell\u2019archivio di acquisizione; conservare l\u2019acquisizione grezza, cos\u00ec da poterla rianalizzare con IOC pi\u00f9 recenti senza toccare di nuovo il dispositivo.<\/li>\n\n\n\n<li><strong>Niente MITM sui reperti.<\/strong> Installare una CA di Burp e instradare il traffico di un dispositivo in sequestro altera il reperto e pu\u00f2 esporre comunicazioni di terzi. L\u2019analisi dinamica si fa sul campione (APK\/IPA) in ambiente controllato.<\/li>\n\n\n\n<li><strong>Riservatezza.<\/strong> L\u2019invio di hash a VirusTotal \u00e8 un\u2019interrogazione verso un servizio esterno: \u00e8 <em>opt-in<\/em> in MVT e va valutato caso per caso. Non caricare mai i campioni senza autorizzazione.<\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-link-color has-medium-font-size wp-elements-3\">2. Mobile Verification Toolkit (MVT)<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Repository: <em><a href=\"https:\/\/github.com\/mvt-project\/mvt\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/mvt-project\/mvt<\/a><\/em> &#8211;  Documentazione: <em><a href=\"https:\/\/docs.mvt.re\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.mvt.re<\/a><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">MVT \u00e8 sviluppato originariamente dall\u2019Amnesty International Security Lab. Confronta gli artefatti estratti da dispositivi Android e iOS con indicatori di compromissione in formato <strong>STIX2<\/strong> (<em>Structured Threat Information Expression<\/em>, <em><a href=\"https:\/\/oasis-open.github.io\/cti-documentation\/stix\/intro.html\" target=\"_blank\" rel=\"noopener\">https:\/\/oasis-open.github.io\/cti-documentation\/stix\/intro.html<\/a><\/em>) e segnala anomalie note (ad es. processi, domini, percorsi o profili di configurazione sospetti).<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-dark-gray-color has-text-color has-link-color has-medium-font-size wp-elements-4\">2.1 Installazione (Ubuntu\/Kali)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">MVT richiede <strong>Python 3.10 o superiore<\/strong> ed \u00e8 supportato ufficialmente su Linux e macOS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>sudo apt install python3 python3-venv python3-pip sqlite3 libusb-1.0-0<br>sudo apt install pipx\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <em># Ubuntu 23.04+ \/ Kali<\/em><br>pipx ensurepath\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <em># poi aprire un NUOVO terminale<\/em><br>pipx install mvt\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <em># versione stabile da PyPI (raccomandata)<\/em><\/code><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>libusb-1.0-0<\/code> serve solo per <code>mvt-android<\/code>.<\/li>\n\n\n\n<li>Sulle versioni Ubuntu 22.04 o precedenti: <code>python3 -m pip install --user pipx &amp;&amp; python3 -m pipx ensurepath<\/code>.<\/li>\n\n\n\n<li>L\u2019installazione da Git (<code>pipx install --force git+https:\/\/github.com\/mvt-project\/mvt.git<\/code>) \u00e8 destinata a provare funzioni in sviluppo; per tornare alla versione PyPI occorre prima <code>pipx uninstall mvt<\/code>.<\/li>\n\n\n\n<li>Il pacchetto installa tre comandi: <code>mvt <\/code>(comandi comuni),<code> mvt-ios, mvt-android<\/code>. Verifica: <code>mvt-android version<\/code>.<\/li>\n\n\n\n<li>Per Android servono gli <strong>Android SDK Platform-Tools<\/strong> aggiornati (<code>adb<\/code>): i pacchetti delle distribuzioni (<code>sudo apt install adb<\/code>) possono essere troppo vecchi per i dispositivi recenti; in caso di problemi usare quelli ufficiali Google.<\/li>\n\n\n\n<li>\u00c8 disponibile anche un\u2019immagine Docker (dalla release v2026.9.1 anche per ARM64).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\">2.2 Indicatori di compromissione (IOC)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>mvt download-iocs\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <em># scarica gli indicatori pubblici e li carica automaticamente<\/em><br><\/code><strong>Modo 1: opzione <code>--iocs<\/code> nel comando di analisi.<\/strong> Vale solo per quell\u2019esecuzione. Puoi ripetere l\u2019opzione per caricare pi\u00f9 file:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>mvt-android check-androidqf --iocs ~\/ioc\/campagna1.stix2 --iocs ~\/ioc\/campagna2.stix2 \\ --output ~\/casi\/2026-001\/mvt\/ ~\/casi\/2026-001\/&lt;UUID>\/<br><\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Modo 2: variabile d\u2019ambiente <code>MVT_STIX2<\/code>.<\/strong> La imposti una volta e vale per tutti i comandi MVT lanciati da quel terminale. I percorsi dei file vanno separati con <code>:<\/code>. Dopo l\u2019<code>export<\/code> lanci l\u2019analisi normalmente, senza <code>--iocs<\/code>:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>export MVT_STIX2=\"\/home\/user\/IOC1.stix2:\/home\/user\/IOC2.stix2\" mvt-android check-androidqf --output ~\/casi\/2026-001\/mvt\/ ~\/casi\/2026-001\/&lt;UUID>\/<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Raccolte pubbliche principali:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Amnesty International \u2014 <em><a href=\"https:\/\/github.com\/AmnestyTech\/investigations\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/AmnestyTech\/investigations<\/a><\/em> (Pegasus, Predator\/Cytrox, campagne Android, NoviSpy\u2026)<\/li>\n\n\n\n<li>MVT project \u2014 <em><a href=\"https:\/\/github.com\/mvt-project\/mvt-indicators\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/mvt-project\/mvt-indicators<\/a><\/em><\/li>\n\n\n\n<li>Stalkerware \u2014 <em><a href=\"https:\/\/github.com\/Te-k\/stalkerware-indicators\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/Te-k\/stalkerware-indicators<\/a><\/em> (include un file STIX compatibile con MVT)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Il download non \u00e8 automatico a ogni esecuzione: rilanciare <code>mvt download-iocs <\/code>prima di ogni analisi e verbalizzare la data degli indicatori usati.<\/p>\n\n\n\n<h1 class=\"wp-block-heading has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-link-color has-medium-font-size wp-elements-5\">3. Android<\/h1>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\">3.1 Che cosa \u00e8 cambiato<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019analisi diretta via ADB (<code>mvt-android check-adb<\/code>) <strong>\u00e8 stata rimossa<\/strong> da MVT. Secondo la documentazione, la raccolta via ADB era incoerente tra produttori e versioni, incompleta e duplicava i moduli di analisi. Il flusso supportato \u00e8 ora in due fasi separate:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Acquisizione<\/strong> con <strong>androidqf<\/strong> (binario Go autonomo, con un agente di raccolta che non dipende dalla shell del telefono e non richiede Python sul PC del titolare).<\/li>\n\n\n\n<li><strong>Analisi<\/strong> con <code>mvt-android check-androidqf<\/code>, anche in un secondo momento e su una macchina diversa.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Comandi <code>mvt-android<\/code> d\u2019interesse oggi:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Comando<\/strong><\/td><td><strong>Uso<\/strong><\/td><\/tr><\/thead><tbody><tr><td>check-androidqf<\/td><td>Analizza un\u2019acquisizione androidqf (cartella o archivio) &#8211; <strong>flusso principale<\/strong><\/td><\/tr><tr><td>check-bugreport<\/td><td>Analizza un <em>bug report<\/em> Android generato a parte (.zip)<\/td><\/tr><tr><td>check-backup<\/td><td>Analizza un backup Android (adb backup, oggi utile quasi solo per gli SMS)<\/td><\/tr><tr><td>check-intrusion-logs<\/td><td>Analizza gli <em>Intrusion Logs<\/em> di Android Advanced Protection raccolti separatamente<\/td><\/tr><tr><td>check-iocs<\/td><td>Riconfronta risultati JSON gi\u00e0 prodotti con nuovi IOC<\/td><\/tr><tr><td>download-iocs<\/td><td>Scarica gli indicatori STIX2 pubblici<\/td><\/tr><tr><td>version<\/td><td>Versione installata<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019elenco esatto per la propria versione si ottiene con <code>mvt-android --help<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\">3.2 Preparazione del dispositivo<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Attivare le <strong>Opzioni sviluppatore<\/strong> (toccare 7 volte <em>Numero build<\/em>), poi <strong>Debug USB<\/strong>; utile anche <strong>Rimani attivo<\/strong> (lo schermo non si blocca durante la raccolta).<\/li>\n\n\n\n<li>Collegare via USB, sbloccare il telefono e <strong>autorizzare l\u2019impronta RSA<\/strong> del PC alla richiesta.<\/li>\n\n\n\n<li>Verificare: <code>adb devices<\/code> deve mostrare il dispositivo come device (non <code>unauthorized<\/code>).<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\">3.3 Acquisizione con androidqf<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Repository: <em><a href=\"https:\/\/github.com\/mvt-project\/androidqf\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/mvt-project\/androidqf<\/a><\/em> (fork mantenuto dal progetto MVT del progetto originario botherder\/androidqf). Le release contengono eseguibili per Linux, Windows e macOS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code><em># scaricare l'ultima release per linux_amd64 da ...\/androidqf\/releases\/latest<\/em><br>chmod +x androidqf_vX.Y.Z_linux_amd64<br>.\/androidqf_vX.Y.Z_linux_amd64\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <em># modalit\u00e0 interattiva<\/em><\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In modalit\u00e0 interattiva androidqf chiede: tipo di backup (nessuno \/ solo SMS \/ completo), quali APK scaricare (nessuno \/ solo non di sistema \/ tutti), se rimuovere le copie di APK di sistema gi\u00e0 attendibili, se raccogliere gli Intrusion Logs. Ogni scelta ha un flag equivalente, utile per procedure standardizzate:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>.\/androidqf -serial &lt;seriale> -backup none -download all -non-interactive -output \/casi\/2026-001\/<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Flag principali: <code>-backup\/-b, -download\/-d, -remove-trusted\/-r, -intrusion-logs\/-i, -hash-files\/-H, -browser-history e -magisk-modules<\/code> (questi due richiedono root). Il backup completo richiede comunque la conferma sullo schermo del telefono.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output.<\/strong> Un archivio di acquisizione nella cartella corrente (o in <code>-output<\/code>) contenente, tra l\u2019altro: propriet\u00e0 di sistema (getprop), impostazioni, processi, servizi, dumpsys, log, elenco pacchetti con hash (packages.json) ed eventuali APK, bug report, files.json, acquisition.json, hashes.csv, command.log.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Cifratura dell\u2019acquisizione (consigliata).<\/strong> Se nella cartella di lavoro \u00e8 presente un file key.txt con una o pi\u00f9 chiavi pubbliche <em>age<\/em> (una per riga), androidqf produce direttamente<code> &lt;UUID>.zip.age<\/code>. Decifratura sulla postazione di analisi:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>age --decrypt -i ~\/chiavi\/privata.txt -o &lt;UUID>.zip &lt;UUID>.zip.age<\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\">3.4 Analisi con MVT<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>mvt download-iocs<br>mvt-android check-androidqf --output ~\/casi\/2026-001\/mvt\/ ~\/casi\/2026-001\/&lt;UUID>\/<\/code><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>VirusTotal (opzionale, opt-in).<\/strong> Interroga gli hash SHA-256 dei soli APK non di sistema. La chiave si passa con la variabile <code>MVT_VT_API_KEY<\/code> (o il valore di configurazione <code>VT_API_KEY<\/code>). Per non esaurire la quota gratuita MVT attende 16 secondi tra le richieste; regolabile con <code>--delay<\/code>:<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><code>MVT_VT_API_KEY=&lt;chiave> mvt-android check-androidqf --virustotal --delay 30 ~\/casi\/2026-001\/&lt;UUID>\/<\/code><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Bug report generato a parte<\/strong> (quando non si pu\u00f2 usare androidqf): <code>mvt-android check-bugreport ~\/percorso\/bugreport.zip<\/code>. Il valore diagnostico \u00e8 limitato: il formato cambia tra versioni e produttori.<\/li>\n\n\n\n<li><strong>Backup Android:<\/strong> <code>mvt-android check-backup ~\/percorso\/backup.ab<\/code>. I backup locali sono in via di dismissione e contengono pochi dati (le app salvano sul cloud).<\/li>\n\n\n\n<li><strong>Riconfronto con nuovi IOC<\/strong> su risultati gi\u00e0 prodotti: <code>mvt-android check-iocs --iocs nuovo.stix2 ~\/casi\/2026-001\/mvt\/<\/code>.<\/li>\n\n\n\n<li><strong>Intrusion Logs (Android 16, Advanced Protection).<\/strong> Se sul dispositivo \u00e8 attiva la modalit\u00e0 <em>Advanced Protection<\/em> con <em>Intrusion Logging<\/em>, androidqf pu\u00f2 scaricarli e decifrarli (la chiave \u00e8 protetta dal PIN del dispositivo); <code>check-androidqf<\/code> li analizza automaticamente (query DNS, connessioni in uscita, avvio di processi, attivit\u00e0 ADB).<\/li>\n\n\n\n<li>Dalle versioni recenti MVT segnala anche <strong>chiavi ADB attendibili inattese<\/strong> sul dispositivo: un indizio utile se qualcuno ha avuto accesso fisico al telefono con il debug attivo.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Leggere i risultati.<\/strong> Nella cartella di output MVT scrive un JSON per modulo, i file <code>*_detected.json<\/code> con le sole corrispondenze, <code>timeline.csv \/ timeline_detected.csv<\/code> e il proprio log. Le righe di avviso (WARNING) indicano corrispondenze con IOC o euristiche: vanno verificate, non sono conclusioni. <mark>Ogni positivo va confermato su altri artefatti; un negativo <strong>non<\/strong> dimostra che il dispositivo sia pulito (gli IOC coprono solo campagne note e gli strumenti, essendo open source, possono essere studiati dagli attaccanti).<\/mark><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\">3.5 Connessione via Wi-Fi (ADB senza cavo)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Con la rimozione di <code>check-adb<\/code> questa parte non riguarda pi\u00f9 direttamente MVT, ma resta utile per <code>adb\/androidqf<\/code> quando la porta USB non \u00e8 utilizzabile. <strong>Per un\u2019acquisizione forense preferire sempre l\u2019USB:<\/strong> il Wi-Fi introduce una rete e un canale aggiuntivi da documentare.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Android 11 e successivi &#8211; Debug wireless con abbinamento:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>PC e telefono sulla stessa rete Wi-Fi.<\/li>\n\n\n\n<li><em>Opzioni sviluppatore \u2192 Debug wireless \u2192 Associa dispositivo con codice di accoppiamento<\/em>: annotare IP, porta e codice.<\/li>\n\n\n\n<li>Sul PC: <code>adb pair &lt;IP>:&lt;porta><\/code> e inserire il codice.<\/li>\n\n\n\n<li>Verificare con <code>adb devices<\/code> (eventualmente <code>adb connect &lt;IP>:&lt;porta><\/code> usando la porta mostrata nella schermata principale di <em>Debug wireless<\/em>, diversa da quella di abbinamento).<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Android 10 e precedenti \u2014 metodo legacy:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>adb devices\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<em># dispositivo collegato via USB, debug USB autorizzato<\/em><br>adb tcpip 5555\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<em># mette adbd in ascolto TCP sulla porta 5555<\/em><br><em># scollegare il cavo<\/em><br>adb connect &lt;indirizzo_IP>:5555<br>adb devices\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <em># deve comparire &lt;indirizzo_IP>:5555\u00a0 device<\/em><\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il dispositivo di rete si indica ad <code>adb <\/code>(e agli strumenti che lo usano, come androidqf con <code>-serial<\/code>) con la forma IP:porta. Al termine: <code>adb disconnect<\/code> e disattivare il debug wireless.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\"><strong>3.6 Burp Suite con un dispositivo Android<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Riferimento: <em><a href=\"https:\/\/portswigger.net\/burp\/documentation\/desktop\/mobile\/config-android-device\" target=\"_blank\" rel=\"noopener\">https:\/\/portswigger.net\/burp\/documentation\/desktop\/mobile\/config-android-device<\/a><\/em> (valida per Burp <strong>Professional e Community<\/strong>).<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Listener:<\/strong> <em>Settings \u2192 Tools \u2192 Proxy \u2192 Proxy listeners \u2192 Add<\/em>; porta libera (es. 8082), <em>All interfaces<\/em>.<\/li>\n\n\n\n<li><strong>Proxy sul dispositivo:<\/strong> impostazioni della rete Wi-Fi \u2192 Proxy <em>Manuale<\/em> \u2192 IP del PC con Burp e porta del listener. Sugli emulatori il proxy si imposta dalle impostazioni dell\u2019emulatore.<\/li>\n\n\n\n<li><strong>Certificato CA:<\/strong> esportare la CA di Burp in formato <strong>DER<\/strong> con estensione esplicita .der (o .cer) e installarla sul dispositivo.<\/li>\n\n\n\n<li><strong>Test:<\/strong> <em>Proxy \u2192 Intercept on<\/em>, aprire un sito HTTPS dal browser del dispositivo e verificare il traffico in <em>HTTP history<\/em>.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Perch\u00e9 \u201cda Android 7 serve il root\u201d.<\/strong> Da Android 7.0 (API 24) le app che dichiarano <code>targetSdkVersion \u2265 24<\/code> <strong>si fidano per impostazione predefinita solo delle CA di sistema<\/strong>, non di quelle installate dall\u2019utente (la <em>Network Security Configuration<\/em> dell\u2019app pu\u00f2 cambiare questo comportamento). Installare la CA come <em>utente<\/em> basta quindi per il browser, non per la maggior parte delle app. Per intercettare le app occorre una delle strade seguenti:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>CA nello store di sistema<\/strong> (richiede root o un emulatore con immagine <em>Google APIs<\/em>, non <em>Google Play<\/em>). Da <strong>Android 14<\/strong> le CA di sistema sono nel modulo <strong>APEX Conscrypt<\/strong> (\/apex\/com.android.conscrypt\/cacerts), immutabile: il classico <em>remount<\/em> di \/system non basta pi\u00f9 e servono tecniche apposite (bind-mount nei namespace dei processi, moduli Magisk dedicati), valide fino al riavvio.<\/li>\n\n\n\n<li><strong>Modifica dell\u2019app<\/strong> in laboratorio per farle accettare le CA utente: ad es. <strong>apk-mitm<\/strong> (ripacchettizza l\u2019APK modificando la Network Security Configuration e disattivando i controlli di <em>certificate pinning<\/em> pi\u00f9 comuni).<\/li>\n\n\n\n<li><strong>Instrumentazione dinamica<\/strong> con <strong>Frida<\/strong> \/ <strong>objection<\/strong> per aggirare il <em>certificate pinning<\/em> a runtime.<\/li>\n\n\n\n<li>In alternativa a Burp: <strong>mitmproxy<\/strong> o <strong>HTTP Toolkit<\/strong> (open source, con automazioni specifiche per Android) o <strong>PCAPdroid<\/strong> (vedi \u00a7 5).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><mark>Il root, come ricorda PortSwigger, compromette il modello di sicurezza del dispositivo: farlo <strong>solo<\/strong> su dispositivi di test<\/mark>.<\/p>\n\n\n\n<h1 class=\"wp-block-heading has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-link-color has-medium-font-size wp-elements-6\">4.iOS<\/h1>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\">4.1 libimobiledevice<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>ideviceinfo\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <em># verifica se la suite \u00e8 presente e il dispositivo visibile<\/em><br>sudo apt install libimobiledevice-utils\u00a0\u00a0 <em># altrimenti installarla<\/em><\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se <code>ideviceinfo<\/code> non vede il dispositivo collegato:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>sudo usbmuxd -f -v\u00a0\u00a0\u00a0\u00a0\u00a0<em># avvia il demone in primo piano con output dettagliato<\/em><br>idevicepair pair\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<em># poi confermare \"Autorizza\" e inserire il codice sul telefono<\/em><\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\">4.2 Backup con idevicebackup2<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Abilitare la <strong>cifratura del backup<\/strong>: un backup cifrato contiene pi\u00f9 dati (ad es. portachiavi, cronologia Safari, dati salute, alcune impostazioni di rete), utili all\u2019analisi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>idevicebackup2 -i encryption on\u00a0\u00a0\u00a0\u00a0\u00a0 <em># imposta una password di backup<\/em><br>idevicebackup2 -i changepw\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <em># se ne esiste gi\u00e0 una nota e si vuole cambiarla<\/em><br>idevicebackup2 -i encryption off\u00a0\u00a0\u00a0\u00a0 <em># disattiva (richiede la password attuale)<\/em><br>idevicebackup2 backup --full \/casi\/2026-002\/backup\/<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se la password di backup preesistente \u00e8 sconosciuta e non \u00e8 modificabile, l\u2019alternativa \u00e8 un backup non cifrato (meno dati) oppure, previo consenso del titolare, il reset della password di backup da <em>Impostazioni \u2192 Generali \u2192 Trasferisci o inizializza iPhone \u2192 Inizializza \u2192 Inizializza tutte le impostazioni<\/em> (non cancella i dati, ma reimposta le impostazioni: va verbalizzato).<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\">4.3 Decifrare e controllare il backup con mvt-ios<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Un backup cifrato va decifrato prima del controllo.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code><em># la password via variabile d'ambiente evita di lasciarla nella riga di comando<\/em><br>read -s MVT_IOS_BACKUP_PASSWORD &amp;&amp; export MVT_IOS_BACKUP_PASSWORD<br>mvt-ios decrypt-backup -d \/casi\/2026-002\/decrypted\/ \/casi\/2026-002\/backup\/&lt;UDID>\/<br>unset MVT_IOS_BACKUP_PASSWORD<\/code><br><br><code>mvt download-iocs<br>mvt-ios check-backup --output \/casi\/2026-002\/mvt\/ \/casi\/2026-002\/decrypted\/<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In alternativa: <code>mvt-ios extract-key -k \/percorso\/chiave \/percorso\/backup<\/code> salva la chiave di decifratura grezza, da usare poi con <code>decrypt-backup<\/code> (opzione <code>--key-file<\/code>). La chiave \u00e8 un dato sensibile: custodirla come il reperto. Per acquisizioni <em>full file system<\/em> (dispositivi jailbroken o strumenti commerciali) esiste <code>mvt-ios check-fs<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\"><strong>4.4 Sysdiagnose e shutdown.log<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Il <strong>sysdiagnose<\/strong> \u00e8 un archivio di log di sistema generato dal dispositivo (combinazione di tasti volume + laterale, poi recupero da <em>Impostazioni \u2192 Privacy e sicurezza \u2192 Analisi e miglioramenti \u2192 Dati analisi<\/em>). Contiene <code>shutdown.log<\/code> (in <code>system_logs.logarchive\/Extra<\/code>), che registra a ogni riavvio i processi ancora attivi: Kaspersky (gennaio 2024) ha mostrato che infezioni Pegasus, Reign e Predator lasciano tracce ricorrenti, come processi \u201cappiccicosi\u201d che ritardano lo spegnimento e percorsi di esecuzione anomali (<code>\/private\/var\/db\/, \/private\/var\/tmp\/<\/code>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>mvt-ios check-sysdiagnose --output .\/risultati .\/sysdiagnose_AAAA.MM.GG_hh-mm-ss+0200.tar.gz<br>mvt-ios check-sysdiagnose --list-modules .\/sysdiagnose_....tar.gz\u00a0\u00a0 <em># mostra i moduli disponibili<\/em><\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nota: il comando esiste dalle release 2026; i controlli forensi sono forniti da moduli\/plugin installati, senza i quali MVT registra solo le informazioni del dispositivo. Strumento complementare: gli script open source <strong>iShutdown<\/strong> di Kaspersky (<em><a href=\"https:\/\/github.com\/KasperskyLab\/iShutdown\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/KasperskyLab\/iShutdown<\/a><\/em>). Il metodo dipende dai riavvii: chiedere al titolare di non riavviare <em>dopo<\/em> il sospetto potrebbe far perdere informazioni, mentre il riavvio periodico \u00e8 comunque una buona misura difensiva &#8211; valutare caso per caso.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\"><strong>4.5 Burp Suite con un dispositivo iOS<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Riferimento: <em><a href=\"https:\/\/portswigger.net\/burp\/documentation\/desktop\/mobile\/config-ios-device\" target=\"_blank\" rel=\"noopener\">https:\/\/portswigger.net\/burp\/documentation\/desktop\/mobile\/config-ios-device<\/a><\/em> (la pagina cita Burp Professional, ma i passaggi funzionano anche con la Community Edition).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Impostazioni del proxy in Burp:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><em>Settings \u2192 Tools \u2192 Proxy<\/em>.<\/li>\n\n\n\n<li>In <em>Proxy listeners<\/em> fare clic su <em>Add<\/em>.<\/li>\n\n\n\n<li>Scheda <em>Binding<\/em>: <em>Bind to port<\/em> 8082 (o altra porta libera); selezionare <em>All interfaces<\/em>, <em>OK<\/em>, confermare con <em>Yes<\/em>.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"538\" height=\"340\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2026\/10\/image.png\" alt=\"\" class=\"wp-image-53950\" style=\"aspect-ratio:1.5823529411764705;width:538px;height:auto\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2026\/10\/image.png 538w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2026\/10\/image-300x190.png 300w\" sizes=\"auto, (max-width: 538px) 85vw, 538px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Listener di Burp su tutte le interfacce<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Impostazioni del proxy su iOS:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><em>Impostazioni \u2192 Wi-Fi<\/em>, connettersi alla stessa rete del PC.<\/li>\n\n\n\n<li>Toccare l\u2019icona (i) accanto alla rete.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"413\" height=\"263\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2026\/10\/image-1.png\" alt=\"\" class=\"wp-image-53951\" style=\"aspect-ratio:1.570342205323194;width:413px;height:auto\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2026\/10\/image-1.png 413w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2026\/10\/image-1-300x191.png 300w\" sizes=\"auto, (max-width: 413px) 85vw, 413px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Dettaglio della rete Wi-Fi<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>Configura proxy \u2192 Manuale<\/em>.<\/li>\n\n\n\n<li><em>Server<\/em>: IP del PC con Burp; <em>Porta<\/em>: 8082; <em>Salva<\/em>.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"384\" height=\"442\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2026\/10\/image-4.png\" alt=\"\" class=\"wp-image-53954\" style=\"aspect-ratio:0.8687782805429864;width:384px;height:auto\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2026\/10\/image-4.png 384w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2026\/10\/image-4-261x300.png 261w\" sizes=\"auto, (max-width: 384px) 85vw, 384px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Proxy manuale su iOS<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Installazione della CA di Burp (necessaria per HTTPS):<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Con Burp in esecuzione, aprire in Safari <code>http:\/\/burpsuite<\/code> e quindi tap su <em>CA Certificate<\/em>.<\/li>\n\n\n\n<li>In <em>Impostazioni<\/em> tap su <em>Profilo scaricato<\/em> \u2192 <em>Installa<\/em> \u2192 <em>Installa<\/em> \u2192 <em>Fine<\/em> (i profili installati sono poi in <em>Impostazioni \u2192 Generali \u2192 VPN e gestione dispositivi<\/em>).<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"422\" height=\"328\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2026\/10\/image-3.png\" alt=\"\" class=\"wp-image-53953\" style=\"aspect-ratio:1.2865853658536586;width:422px;height:auto\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2026\/10\/image-3.png 422w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2026\/10\/image-3-300x233.png 300w\" sizes=\"auto, (max-width: 422px) 85vw, 422px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Installazione del profilo<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>Impostazioni \u2192 Generali \u2192 Info \u2192 Impostazioni attendibilit\u00e0 certificati<\/em>: attivare l\u2019interruttore per <em>PortSwigger CA<\/em>.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"374\" height=\"338\" src=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2026\/10\/image-2.png\" alt=\"\" class=\"wp-image-53952\" style=\"aspect-ratio:1.106508875739645;width:374px;height:auto\" srcset=\"https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2026\/10\/image-2.png 374w, https:\/\/www.fabriziogiancola.eu\/wp-content\/uploads\/2026\/10\/image-2-300x271.png 300w\" sizes=\"auto, (max-width: 374px) 85vw, 374px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Attendibilit\u00e0 del certificato<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Test:<\/strong> in Burp <em>Proxy \u2192 Intercept<\/em> \u2192 <em>Intercept is off<\/em> per attivarlo; aprire una pagina HTTPS dal dispositivo: la pagina deve caricarsi senza avvisi e le richieste devono comparire in Burp.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Limiti.<\/strong> Le app con <em>certificate pinning<\/em> rifiuteranno comunque la connessione; su iOS aggirarlo richiede jailbreak e Frida\/objection. Al termine <strong>rimuovere il profilo e disattivare il proxy<\/strong>: una CA di intercettazione lasciata attendibile \u00e8 essa stessa un rischio.<\/p>\n\n\n\n<h1 class=\"wp-block-heading has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-link-color has-medium-font-size wp-elements-7\"><strong>5. Strumenti open source integrativi<\/strong><\/h1>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Strumento<\/strong><\/td><td><strong>Piattaforma<\/strong><\/td><td><strong>A che cosa serve<\/strong><\/td><td><strong>Note<\/strong><\/td><\/tr><\/thead><tbody><tr><td><strong>androidqf<\/strong><\/td><td>Android<\/td><td>Acquisizione rapida per MVT<\/td><td><em><a href=\"https:\/\/github.com\/mvt-project\/androidqf\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/mvt-project\/androidqf<\/a><\/em><\/td><\/tr><tr><td><strong>iShutdown<\/strong><\/td><td>iOS<\/td><td>Analisi di shutdown.log da sysdiagnose<\/td><td><em><a href=\"https:\/\/github.com\/KasperskyLab\/iShutdown\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/KasperskyLab\/iShutdown<\/a><\/em><\/td><\/tr><tr><td><strong>ALEAPP \/ iLEAPP<\/strong><\/td><td>Android \/ iOS<\/td><td>Parsing di artefatti e report HTML (app, posizioni, uso)<\/td><td>Complementari a MVT per la ricostruzione degli eventi<\/td><\/tr><tr><td><strong>MobSF<\/strong><\/td><td>Android \/ iOS<\/td><td>Analisi statica (e dinamica su Android) di APK\/IPA, report<\/td><td><em><a href=\"https:\/\/github.com\/MobSF\/Mobile-Security-Framework-MobSF\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/MobSF\/Mobile-Security-Framework-MobSF<\/a><\/em>; mantenerlo aggiornato (vulnerabilit\u00e0 note nel 2026)<\/td><\/tr><tr><td><strong>jadx \/ apktool<\/strong><\/td><td>Android<\/td><td>Decompilazione DEX \u2192 Java; disassemblaggio smali e risorse<\/td><td>Base dell\u2019analisi statica manuale<\/td><\/tr><tr><td><strong>APKiD<\/strong><\/td><td>Android<\/td><td>Identifica packer, offuscatori, compilatori<\/td><td>Indica se il campione \u00e8 stato \u201cprotetto\u201d<\/td><\/tr><tr><td><strong>Quark-Engine<\/strong><\/td><td>Android<\/td><td>Valutazione comportamentale (regole) di APK<\/td><td>Utile per lo smistamento di molti campioni<\/td><\/tr><tr><td><strong>Ghidra<\/strong><\/td><td>Multi<\/td><td>Reverse engineering di librerie native (.so) e binari iOS<\/td><td>Alternativa open source a IDA Pro<\/td><\/tr><tr><td><strong>Frida \/ objection<\/strong><\/td><td>Android \/ iOS<\/td><td>Instrumentazione dinamica, bypass di pinning e anti-root<\/td><td>Solo su dispositivi di test<\/td><\/tr><tr><td><strong>apk-mitm<\/strong><\/td><td>Android<\/td><td>Prepara un APK per l\u2019intercettazione HTTPS<\/td><td>Ripacchettizza: l\u2019APK non \u00e8 pi\u00f9 quello originale<\/td><\/tr><tr><td><strong>mitmproxy<\/strong><\/td><td>Multi<\/td><td>Proxy di intercettazione scriptabile (Python)<\/td><td>Alternativa a Burp per automatizzare<\/td><\/tr><tr><td><strong>HTTP Toolkit<\/strong><\/td><td>Multi<\/td><td>Intercettazione con configurazione guidata di Android<\/td><td>Versione base open source<\/td><\/tr><tr><td><strong>PCAPdroid<\/strong><\/td><td>Android<\/td><td>Cattura del traffico senza root (VPN locale), export PCAP, decifratura TLS via addon mitmproxy<\/td><td><em><a href=\"https:\/\/github.com\/emanuele-f\/PCAPdroid\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/emanuele-f\/PCAPdroid<\/a><\/em>; ottimo anche per il triage sul campo<\/td><\/tr><tr><td><strong>Wireshark \/ tcpdump<\/strong><\/td><td>Multi<\/td><td>Analisi dei PCAP<\/td><td>Con SSLKEYLOGFILE per il TLS decifrato<\/td><\/tr><tr><td><strong>SpyGuard<\/strong> (erede di TinyCheck)<\/td><td>Rete<\/td><td>Hotspot Wi-Fi che segnala comunicazioni verso infrastrutture di stalkerware\/spyware<\/td><td>Analisi di rete senza toccare il telefono<\/td><\/tr><tr><td><strong>age<\/strong><\/td><td>Multi<\/td><td>Cifratura delle acquisizioni androidqf<\/td><td><em><a href=\"https:\/\/github.com\/FiloSottile\/age\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/FiloSottile\/age<\/a><\/em><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h1 class=\"wp-block-heading has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-link-color has-medium-font-size wp-elements-8\"><strong>6. Use case: sospetto stalkerware su uno smartphone Android<\/strong><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Scenario illustrativo, costruito per la formazione.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Contesto.<\/strong> Una donna denuncia atti persecutori (art. 612-bis c.p.) da parte dell\u2019ex compagno, che sembra conoscere i suoi spostamenti e il contenuto di alcune conversazioni. Riferisce che, mesi prima, l\u2019uomo ha avuto per qualche ora il suo telefono (Android 14). Chiede di verificare il dispositivo e presta consenso informato scritto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Obiettivo.<\/strong> Stabilire se sul telefono sono presenti applicazioni di sorveglianza note o tracce compatibili, documentando l\u2019attivit\u00e0 in modo utilizzabile nel procedimento.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\"><strong>6.1 Prima di toccare il telefono<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Sicurezza della persona.<\/strong> Rimuovere uno stalkerware pu\u00f2 avvisare chi lo controlla e aggravare il rischio. La decisione su <em>se e quando<\/em> rimuoverlo va presa insieme alla persona e, se coinvolto, al centro antiviolenza (cfr. le indicazioni della Coalition Against Stalkerware, <em><a href=\"https:\/\/stopstalkerware.org\" target=\"_blank\" rel=\"noopener\">https:\/\/stopstalkerware.org<\/a><\/em>).<\/li>\n\n\n\n<li><strong>Titolo e verbale.<\/strong> Consenso (o provvedimento), qualificazione dell\u2019atto (ripetibile o no), operatori, orari, stato del dispositivo all\u2019arrivo (acceso, batteria, rete, foto dello schermo).<\/li>\n\n\n\n<li><strong>Isolamento.<\/strong> Modalit\u00e0 aereo con Wi-Fi spento, salvo diversa scelta motivata: se interessa osservare il traffico in uscita, si valuta un\u2019analisi di rete separata (vedi 6.5).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\"><strong>6.2 Acquisizione<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>mkdir -p \/casi\/2026-001 &amp;&amp; cd \/casi\/2026-001<br>cp ~\/chiavi\/age_pubblica_ufficio.txt .\/key.txt\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <em># acquisizione cifrata<\/em><br>.\/androidqf_vX.Y.Z_linux_amd64 -backup sms -download all -output \/casi\/2026-001\/<br>sha256sum *.zip.age | tee hash_acquisizione.txt<\/code><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Backup degli SMS: utile perch\u00e9 alcuni stalkerware usano SMS di comando; richiede la conferma sul telefono.<\/li>\n\n\n\n<li><code>-download all<\/code> conserva tutti gli APK per l\u2019analisi statica successiva.<\/li>\n\n\n\n<li>Al termine: revocare le autorizzazioni di debug, disattivare il Debug USB (o lasciarlo come trovato, secondo il verbale) e annotarlo.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\"><strong>6.3 Triage con MVT<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>age --decrypt -i ~\/chiavi\/age_privata.txt -o acq.zip &lt;UUID>.zip.age<br>mvt download-iocs<br>mvt-android check-androidqf --output .\/mvt\/ .\/acq.zip<br>grep -i warning .\/mvt\/command.log<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Che cosa cercare, oltre alle corrispondenze con gli IOC stalkerware:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>app con nomi o icone \u201cdi sistema\u201d (es. <em>System Service<\/em>, <em>Wi-Fi Update<\/em>) installate da <em>sideload<\/em> e non dal Play Store (installer in packages.json \/ dumpsys);<\/li>\n\n\n\n<li><strong>servizi di accessibilit\u00e0<\/strong> e <strong>amministratori del dispositivo<\/strong> attivi non riconosciuti dalla titolare;<\/li>\n\n\n\n<li>permessi per notifiche, SMS, posizione in background, microfono, <em>Usage Access<\/em>;<\/li>\n\n\n\n<li>Google Play Protect disattivato;<\/li>\n\n\n\n<li>chiavi ADB attendibili inattese (indizio di accesso fisico con debug attivo);<\/li>\n\n\n\n<li>dalla timeline: data di installazione dell\u2019app sospetta, da confrontare con il periodo in cui l\u2019ex compagno ha avuto il telefono.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\"><strong>6.4 Analisi del campione (in laboratorio)<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Sull\u2019APK sospetto estratto dall\u2019acquisizione, <strong>su una copia e mai sul reperto<\/strong>:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>sha256sum sospetto.apk<br>apkid sospetto.apk\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <em># packer \/ offuscatori<\/em><br>jadx -d src\/ sospetto.apk\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <em># decompilazione<\/em><br><em># MobSF: caricare l'APK dall'interfaccia web \u2192 manifest, permessi, URL e domini, certificato di firma<\/em><\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Elementi da estrarre: package name, certificato di firma, endpoint e domini del pannello, permessi, componenti (receiver di avvio, servizi di accessibilit\u00e0). Gli hash si possono confrontare su VirusTotal <strong>senza caricare il file<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\"><strong>6.5 Analisi dinamica (facoltativa, in laboratorio)<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Su un <strong>dispositivo di test<\/strong> o emulatore: installare il campione, intercettare con PCAPdroid (cattura senza root) o mitmproxy\/Burp (con CA di sistema o APK preparato con apk-mitm), Frida per il pinning. Obiettivo: identificare l\u2019infrastruttura di raccolta (server, account), i dati trasmessi e la frequenza. Questi elementi orientano le richieste ai fornitori e la ricostruzione del fatto (possibili ulteriori ipotesi di reato, come gli artt. 615-ter, 617-bis e 617-quater c.p., da valutare caso per caso).<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\"><strong>6.6 Cosa annotare<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Struttura minima: quesito; descrizione del reperto e stato all\u2019arrivo; strumenti e versioni (MVT vX, androidqf vY, data degli IOC); hash; operazioni svolte con orari; risultati (corrispondenze, artefatti a supporto, cronologia); limiti (un negativo non esclude compromissioni sconosciute); eventuali raccomandazioni (rimozione concordata, ripristino, cambio credenziali, verifica dell\u2019account Google e dei dispositivi collegati).<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\"><strong>6.7 Variante iOS (sospetto spyware mercenario)<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Per un giornalista o un avvocato con iPhone: backup cifrato con idevicebackup2 \u2192 mvt-ios decrypt-backup \u2192 mvt-ios check-backup con gli IOC Amnesty; sysdiagnose \u2192 mvt-ios check-sysdiagnose e iShutdown. Un positivo va confermato da un laboratorio specializzato (ad es. Amnesty Security Lab, Citizen Lab, Access Now Digital Security Helpline). Misura raccomandata: attivare la <strong>Modalit\u00e0 di isolamento<\/strong> (<em>Lockdown Mode<\/em>).<\/p>\n\n\n\n<h1 class=\"wp-block-heading has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-link-color has-medium-font-size wp-elements-9\"><strong>7. Quadro teorico<\/strong><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019impianto (tipologie di malware, vettori d\u2019infezione, tecniche di analisi, IoC, prevenzione) \u00e8 stato aggiornato.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Tipologie ed esempi.<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>Spyware mercenario:<\/em> Pegasus (NSO; la variante Android fu chiamata <em>Chrysaor<\/em>), Predator (Intellexa\/Cytrox). <em>Spyware \u201cartigianale\u201d \/ locale:<\/em> NoviSpy (Serbia, documentato da Amnesty nel dicembre 2024). <em>Stalkerware:<\/em> app commerciali di \u201cmonitoraggio\u201d installate da chi ha accesso fisico.<\/li>\n\n\n\n<li><em>Ransomware:<\/em> <strong>WannaLocker<\/strong> (2017) era un ransomware Android che imitava l\u2019interfaccia di WannaCry, non una sua \u201cversione mobile\u201d.<\/li>\n\n\n\n<li><em>Adware:<\/em> HummingBad (2016) -aveva anche funzioni di rooting.<\/li>\n\n\n\n<li><em>Trojan:<\/em> FakeSpy (si spacciava per app di servizi postali); oggi vanno citati soprattutto i <strong>trojan bancari<\/strong> che abusano dei servizi di accessibilit\u00e0.<\/li>\n\n\n\n<li><em>Rootkit \/ backdoor:<\/em> <strong>Carrier IQ non \u00e8 un buon esempio<\/strong>: era un software diagnostico preinstallato dagli operatori, molto contestato nel 2011 per la privacy, non un rootkit malevolo. Esempio pi\u00f9 pertinente: <strong>Triada<\/strong>, backdoor modulare finita anche nel firmware di dispositivi economici.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Tecniche e strumenti.<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>Analisi statica:<\/em> sui dispositivi mobili si analizza il bytecode DEX\/smali e le librerie native, raramente il sorgente. Strumenti: jadx, apktool, Ghidra (open source); IDA Pro \u00e8 commerciale.<\/li>\n\n\n\n<li><em>Analisi dinamica:<\/em> <strong>Cuckoo Sandbox<\/strong> (e la sua estensione CuckooDroid) non \u00e8 pi\u00f9 mantenuto da anni; preferire MobSF (dynamic analyzer), Frida, emulatori Android Studio.<\/li>\n\n\n\n<li><em>Memoria:<\/em> <strong>LiME<\/strong> richiede root e un modulo compilato per il kernel esatto; sui dispositivi moderni (kernel GKI, moduli firmati) \u00e8 raramente praticabile. Oggi la memoria si esamina soprattutto a livello di processo, con Frida.<\/li>\n\n\n\n<li><em>Rete:<\/em> Wireshark, tcpdump, mitmproxy, Burp, PCAPdroid. <strong>Fiddler<\/strong> non \u00e8 uno strumento \u201cper iOS\u201d: \u00e8 un proxy da PC che pu\u00f2 intercettare anche un iPhone configurato come sopra. <strong>tPacketCapture<\/strong> non \u00e8 aggiornato da anni: usare PCAPdroid.<\/li>\n\n\n\n<li><em>Piattaforme:<\/em> <strong>Santoku Linux<\/strong> non \u00e8 pi\u00f9 manutenuta; usare MobSF e una distribuzione aggiornata (Kali, Ubuntu) con gli strumenti del \u00a7 5.<\/li>\n\n\n\n<li><em>Acquisizione:<\/em> \u201cUFED\u201d \u00e8 il prodotto di Cellebrite. Accanto agli strumenti commerciali in dotazione: androidqf, libimobiledevice, ALEAPP\/iLEAPP.<\/li>\n\n\n\n<li><em>Antivirus mobili:<\/em> sono utili per la prevenzione, non per l\u2019analisi forense. Per la PA italiana: nel marzo 2022 l\u2019ACN ha raccomandato di rivalutare e diversificare le soluzioni di sicurezza di aziende legate alla Federazione Russa (Kaspersky citato negli appunti).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Aggiunte necessarie.<\/strong> Indicatori e strumenti basati su IOC (MVT), protezioni di piattaforma (Lockdown Mode su iOS, Advanced Protection e Intrusion Logging su Android 16), riferimenti metodologici (OWASP MASTG, NIST SP 800-101 Rev.&nbsp;1, ISO\/IEC 27037).<\/p>\n\n\n\n<h1 class=\"wp-block-heading has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-link-color has-medium-font-size wp-elements-10\"><strong>8. Registro delle modifiche<\/strong><\/h1>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td>#<\/td><td><strong>Versione 2024<\/strong><\/td><td><strong>Correzione \/ aggiornamento<\/strong><\/td><\/tr><\/thead><tbody><tr><td>1<\/td><td>Installazione da Git come alternativa standard<\/td><td>Installazione raccomandata pipx install mvt (PyPI); Git solo per sviluppo. Richiesto Python \u2265 3.10<\/td><\/tr><tr><td>2<\/td><td>mvt-android chek-adb (refuso) e analisi via ADB<\/td><td>check-adb rimosso da MVT. Usare androidqf + check-androidqf<\/td><\/tr><tr><td>3<\/td><td>download-apks &#8211;output &#8230; e poi check-backup sul risultato<\/td><td>download-apks produceva APK e un JSON, non un backup: check-backup \u00e8 per i backup Android .ab. Oggi gli APK si acquisiscono con androidqf (-download)<\/td><\/tr><tr><td>4<\/td><td>check-iocs sul JSON come passo obbligatorio<\/td><td>Gli IOC si applicano gi\u00e0 durante i check-*; check-iocs serve a riconfrontare risultati esistenti con nuovi indicatori<\/td><\/tr><tr><td>5<\/td><td>VirusTotal con download-apks &#8211;virustotal \/ &#8211;from-file<\/td><td>check-androidqf &#8211;virustotal (opt-in, &#8211;delay, solo APK non di sistema)<\/td><\/tr><tr><td>6<\/td><td>androidqf da botherder\/androidqf, v1.6<\/td><td>Repository mvt-project\/androidqf, ultima release; cifratura con <em>age<\/em><\/td><\/tr><tr><td>7<\/td><td>Bugreport \u201cottenuto da androidqf\u201d passato a check-bugreport<\/td><td>La cartella androidqf si analizza con check-androidqf; check-bugreport per bug report generati a parte<\/td><\/tr><tr><td>8<\/td><td>Wi-Fi: adb tcpip 5555 + check-adb &#8211;serial<\/td><td>Aggiunto il debug wireless con abbinamento (Android 11+); check-adb non pi\u00f9 disponibile; preferire USB in ambito forense<\/td><\/tr><tr><td>9<\/td><td>Burp Android: \u201cda Android 7 serve il root\u201d senza spiegazione<\/td><td>Spiegata la fiducia nelle sole CA di sistema (API 24+), Android 14\/APEX, alternative (emulatore, apk-mitm, Frida)<\/td><\/tr><tr><td>10<\/td><td>iOS: check-backup direttamente su backup cifrato<\/td><td>Aggiunto decrypt-backup (password via variabile d\u2019ambiente) ed extract-key<\/td><\/tr><tr><td>11<\/td><td>\u2014<\/td><td>Aggiunti sysdiagnose, check-sysdiagnose, shutdown.log\/iShutdown<\/td><\/tr><tr><td>12<\/td><td>Burp iOS \u201csolo Professional\u201d<\/td><td>Procedura valida anche per Community; percorsi menu iOS aggiornati; rimozione della CA a fine test<\/td><\/tr><tr><td>13<\/td><td>\u2014<\/td><td>Aggiunti premessa forense, IOC e repository, strumenti open source, use case<\/td><\/tr><tr><td>14<\/td><td>Sezioni teoriche generate con IA<\/td><td>Corretti esempi ed elenchi di strumenti (vedi \u00a7 7)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h1 class=\"wp-block-heading has-dark-gray-color has-very-light-gray-to-cyan-bluish-gray-gradient-background has-text-color has-background has-link-color has-medium-font-size wp-elements-11\"><strong>9. Fonti<\/strong><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Documentazione ufficiale e repository<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>MVT \u2014 documentazione: <em><a href=\"https:\/\/docs.mvt.re\/en\/latest\/\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.mvt.re\/en\/latest\/<\/a><\/em>; installazione: <em><a href=\"https:\/\/docs.mvt.re\/en\/latest\/install\/\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.mvt.re\/en\/latest\/install\/<\/a><\/em><\/li>\n\n\n\n<li>MVT \u2014 rimozione dell\u2019analisi ADB: <em><a href=\"https:\/\/docs.mvt.re\/en\/latest\/android\/adb\/\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.mvt.re\/en\/latest\/android\/adb\/<\/a><\/em><\/li>\n\n\n\n<li>MVT \u2014 metodologia Android: <em><a href=\"https:\/\/docs.mvt.re\/en\/latest\/android\/methodology\/\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.mvt.re\/en\/latest\/android\/methodology\/<\/a><\/em><\/li>\n\n\n\n<li>MVT \u2014 IOC: <em><a href=\"https:\/\/docs.mvt.re\/en\/latest\/iocs\/\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.mvt.re\/en\/latest\/iocs\/<\/a><\/em><\/li>\n\n\n\n<li>MVT \u2014 controllo backup iOS: <em><a href=\"https:\/\/docs.mvt.re\/en\/latest\/ios\/backup\/check\/\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.mvt.re\/en\/latest\/ios\/backup\/check\/<\/a><\/em><\/li>\n\n\n\n<li>MVT \u2014 sysdiagnose: <em><a href=\"https:\/\/docs.mvt.re\/en\/latest\/ios\/sysdiagnose\/\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.mvt.re\/en\/latest\/ios\/sysdiagnose\/<\/a><\/em><\/li>\n\n\n\n<li>MVT \u2014 release v2.7.0 (deprecazione check-adb): <em><a href=\"https:\/\/github.com\/mvt-project\/mvt\/releases\/tag\/v2.7.0\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/mvt-project\/mvt\/releases\/tag\/v2.7.0<\/a><\/em>; v2026.7.29 e v2026.9.1: <em><a href=\"https:\/\/newreleases.io\/project\/github\/mvt-project\/mvt\/release\/v2026.9.1\" target=\"_blank\" rel=\"noopener\">https:\/\/newreleases.io\/project\/github\/mvt-project\/mvt\/release\/v2026.9.1<\/a><\/em><\/li>\n\n\n\n<li>androidqf: <em><a href=\"https:\/\/github.com\/mvt-project\/androidqf\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/mvt-project\/androidqf<\/a><\/em><\/li>\n\n\n\n<li>PortSwigger, Android: <em><a href=\"https:\/\/portswigger.net\/burp\/documentation\/desktop\/mobile\/config-android-device\" target=\"_blank\" rel=\"noopener\">https:\/\/portswigger.net\/burp\/documentation\/desktop\/mobile\/config-android-device<\/a><\/em><\/li>\n\n\n\n<li>PortSwigger, iOS: <em><a href=\"https:\/\/portswigger.net\/burp\/documentation\/desktop\/mobile\/config-ios-device\" target=\"_blank\" rel=\"noopener\">https:\/\/portswigger.net\/burp\/documentation\/desktop\/mobile\/config-ios-device<\/a><\/em><\/li>\n\n\n\n<li>Android Developers, adb e debug wireless: <em><a href=\"https:\/\/developer.android.com\/tools\/adb\" target=\"_blank\" rel=\"noopener\">https:\/\/developer.android.com\/tools\/adb<\/a><\/em><\/li>\n\n\n\n<li>OWASP MASTG, Android Network Security Configuration: <em><a href=\"https:\/\/mas.owasp.org\/MASTG\/knowledge\/android\/MASVS-NETWORK\/MASTG-KNOW-0014\/\" target=\"_blank\" rel=\"noopener\">https:\/\/mas.owasp.org\/MASTG\/knowledge\/android\/MASVS-NETWORK\/MASTG-KNOW-0014\/<\/a><\/em><\/li>\n\n\n\n<li>PCAPdroid: <em><a href=\"https:\/\/github.com\/emanuele-f\/PCAPdroid\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/emanuele-f\/PCAPdroid<\/a><\/em><\/li>\n\n\n\n<li>MobSF: <em><a href=\"https:\/\/github.com\/MobSF\/Mobile-Security-Framework-MobSF\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/MobSF\/Mobile-Security-Framework-MobSF<\/a><\/em><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ricerca e threat intelligence<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Amnesty International Security Lab, <em>Tech Guide: Detecting NoviSpy spyware with AndroidQF and MVT<\/em> (dic. 2024): <em><a href=\"https:\/\/securitylab.amnesty.org\/latest\/2024\/12\/tech-guide-detecting-novispy-spyware-with-androidqf-and-the-mobile-verification-toolkit-mvt\/\" target=\"_blank\" rel=\"noopener\">https:\/\/securitylab.amnesty.org\/latest\/2024\/12\/tech-guide-detecting-novispy-spyware-with-androidqf-and-the-mobile-verification-toolkit-mvt\/<\/a><\/em><\/li>\n\n\n\n<li>Amnesty Tech, indicatori: <em><a href=\"https:\/\/github.com\/AmnestyTech\/investigations\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/AmnestyTech\/investigations<\/a><\/em><\/li>\n\n\n\n<li>Kaspersky \/ Securelist, <em>Shutdown.log: lightweight iOS malware detection method<\/em> (gen. 2024): <em><a href=\"https:\/\/securelist.com\/shutdown-log-lightweight-ios-malware-detection-method\/111734\/\" target=\"_blank\" rel=\"noopener\">https:\/\/securelist.com\/shutdown-log-lightweight-ios-malware-detection-method\/111734\/<\/a><\/em><\/li>\n\n\n\n<li>HTTP Toolkit, <em>Android 14 blocks modification of system certificates, even as root<\/em>: <em><a href=\"https:\/\/httptoolkit.com\/blog\/android-14-install-system-ca-certificate\/\" target=\"_blank\" rel=\"noopener\">https:\/\/httptoolkit.com\/blog\/android-14-install-system-ca-certificate\/<\/a><\/em><\/li>\n\n\n\n<li>Cybersecurity360, raccomandazioni ACN sui prodotti legati alla Russia (mar. 2022): <em><a href=\"https:\/\/www.cybersecurity360.it\/cybersecurity-nazionale\/attenti-a-tecnologia-russa-come-kaspersky-ecco-i-consigli-dellagenzia-cyber-nazioanle\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.cybersecurity360.it\/cybersecurity-nazionale\/attenti-a-tecnologia-russa-come-kaspersky-ecco-i-consigli-dellagenzia-cyber-nazioanle\/<\/a><\/em><\/li>\n\n\n\n<li>Coalition Against Stalkerware: <em><a href=\"https:\/\/stopstalkerware.org\" target=\"_blank\" rel=\"noopener\">https:\/\/stopstalkerware.org<\/a><\/em><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Standard<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ISO\/IEC 27037:2012 \u2014 <em>Guidelines for identification, collection, acquisition and preservation of digital evidence<\/em>.<\/li>\n\n\n\n<li>NIST SP 800-101 Rev.\u00a01 (2014) \u2014 <em>Guidelines on Mobile Device Forensics<\/em>.<\/li>\n\n\n\n<li>OWASP Mobile Application Security Testing Guide (MASTG): <em><a href=\"https:\/\/mas.owasp.org\/MASTG\/\" target=\"_blank\" rel=\"noopener\">https:\/\/mas.owasp.org\/MASTG\/<\/a><\/em><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Appunti di mobile malware analysis &#8211; revisione e aggiornamento (ottobre 2026) Nota di revisione Ho ripreso alcuni appunti, risalenti ormai al 2024 , li ho verificati sulla documentazione ufficiale corrente (MVT, androidqf, PortSwigger, Android Developers) e su fonti di threat intelligence. Pensavo fosse cambiato poco e invece: 1. Premessa metodologica MVT e Burp rispondono a &hellip; <a href=\"https:\/\/www.fabriziogiancola.eu\/index.php\/2026\/10\/21\/mobile-verification-toolkit-burp-suite\/\" class=\"more-link\">Leggi tutto<span class=\"screen-reader-text\"> &#8220;Mobile Verification Toolkit &amp; Burp Suite&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":0,"footnotes":""},"categories":[5,12,14,15],"tags":[152,153,73,150,149,151,154,155],"class_list":["post-53949","post","type-post","status-publish","format-standard","hentry","category-burp-suite","category-cyber-security","category-digital-forensics","category-ethical-hacking","tag-androidqf","tag-burp-suite","tag-dfir","tag-malware-analysis","tag-mobile-forensics","tag-mvt","tag-spyware","tag-stalkerware"],"_links":{"self":[{"href":"https:\/\/www.fabriziogiancola.eu\/index.php\/wp-json\/wp\/v2\/posts\/53949","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fabriziogiancola.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fabriziogiancola.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fabriziogiancola.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fabriziogiancola.eu\/index.php\/wp-json\/wp\/v2\/comments?post=53949"}],"version-history":[{"count":36,"href":"https:\/\/www.fabriziogiancola.eu\/index.php\/wp-json\/wp\/v2\/posts\/53949\/revisions"}],"predecessor-version":[{"id":54020,"href":"https:\/\/www.fabriziogiancola.eu\/index.php\/wp-json\/wp\/v2\/posts\/53949\/revisions\/54020"}],"wp:attachment":[{"href":"https:\/\/www.fabriziogiancola.eu\/index.php\/wp-json\/wp\/v2\/media?parent=53949"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fabriziogiancola.eu\/index.php\/wp-json\/wp\/v2\/categories?post=53949"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fabriziogiancola.eu\/index.php\/wp-json\/wp\/v2\/tags?post=53949"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}