Deprecated: Creation of dynamic property Timber\Site::$pingback is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Site.php on line 180

Deprecated: Creation of dynamic property Timber\User::$name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/User.php on line 118

Deprecated: Creation of dynamic property Timber\Post::$has_disclaimer is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_lock is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_last is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_meta_box_present is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_send_notification is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_modify_title_and_content is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_notification_custom_heading is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_notification_custom_content is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_category is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_blz_affiliation_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_content_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_speciali is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskw is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_metadesc is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_linkdex is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_content_score is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskeywords is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_keywordsynonyms is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_estimated-reading-time-minutes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_thumbnail_id is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$response_body is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_indexnow_last_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_date_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$ping_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_password is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$to_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$pinged is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_content_filtered is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$guid is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$menu_order is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_mime_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_count is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$filter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71
Rutto nell'app Banca Intesa: spiacevole, ma il problema è un altro

Rutto nell'app Banca Intesa: spiacevole, ma il problema è un altro

Il ritrovamento del file rutto.mp3 nell'app di Banca Intesa ha scatenato discussioni infinite. La vera preoccupazione, però, riguarda la scarsa ottimizzazione di tante app bancarie. Le nostre riflessioni sull'argomento.

In queste ore si fa un gran parlare di un file dal nome inequivocabile, rutto.mp3, scoperto tra le “pieghe” dell’app Banca Intesa per i dispositivi mobili. Il rutto è considerato come un atto d’indecenza e di volgarità, anche se al tempo dell’Antica Roma non solo era concesso ma anche apprezzato, perché valutato come un giudizio positivo rispetto a ciò che si era mangiato. Ciò che lascia perplessi è la presenza di un file audio sconveniente all’interno di un’applicazione bancaria, utilizzata da milioni di italiani – ogni giorno – per accedere ai loro conti, ad informazioni riservate e per muovere denaro.

Rutto app Banca Intesa: una gaffe che resterà negli annali ma che non rappresenta il problema più grave

Da che mondo è mondo, o meglio almeno dagli anni ’70 (ovvero una vita fa), gli sviluppatori software sono soliti inserire nelle loro realizzazioni degli easter eggs (letteralmente, “uova di Pasqua“). Si tratta di scherzi innocui che attivano funzionalità normalmente nascoste agli occhi degli utenti. In passato, abbiamo descritto alcuni easter eggs di Windows e Office.

Inserire la registrazione audio di un rutto in un’app finanziaria è una caduta di stile che non può essere giustificata. E si scopre che la stessa app di Banca Intesa contiene ad esempio l’immagine di una modella codificata in base 64.

Sebbene non possano essere considerati easter eggs, non ci stracciamo le vesti. A nostro avviso, il problema è un altro. Ed è molto più grave. Com’è possibile che un’applicazione come quella di Intesa Sanpaolo (come peraltro quelle di altri istituti di credito) abbia una dimensione pari a 600-700 MB?

Cliccando qui potete trovare l’app di Banca Intesa Sanpaolo sottoposta “ai raggi X” di Emerge Tools (ne parliamo più avanti).

Rutto app Banca Intesa Sanpaolo: cos'è successo

Come sono strutturati i pacchetti delle app mobili

Scoprire cosa c’è dentro il pacchetto di un’applicazione per Android o iOS può essere relativamente facile grazie alla struttura dei file e agli strumenti disponibili per l’analisi del codice.

Le applicazioni Android sono generalmente confezionate in file APK (Android Package), mentre quelle iOS in pacchetti IPA (iOS App Store Package). Questi file contengono al loro interno il codice eseguibile, le risorse (come immagini e file audio), i file manifest e altre configurazioni, spesso in formati leggibili. Ad esempio, gli APK sono fondamentalmente file ZIP, il che consente di estrarli facilmente e visualizzare il loro contenuto.

APK e IPA contengono codice che può essere disassemblato o decompilato. Con strumenti appositi come JADX per Android o class-dump per iOS, è possibile estrarre il codice sorgente (esistono comunque altri tool dei quali abbiamo parlato nell’articolo citato in precedenza).

Sebbene il codice estratto possa essere offuscato (ovvero reso meno leggibile intenzionalmente), ci sono tecniche avanzate che consentono di arrivare a una buona comprensione del funzionamento di qualunque app.

Esistono inoltre molti strumenti open source e commerciali che facilitano il reverse engineering delle app mobili. Ad esempio, APKTool permette di decompilare un APK e ottenere i file di risorse (come layout XML e configurazioni), mentre Frida è un framework che consente di analizzare in tempo reale il comportamento delle app.

Emerge Tools: protagonisti della scoperta nell’app di Intesa Sanpaolo

Come si legge in questo post, per accorgersi della presenza di alcuni elementi curiosi all’interno dell’app per l’home banking di Intesa Sanpaolo, alcuni ricercatori hanno beneficiato dei servigi di Emerge Tools. Si tratta di una suite di strumenti che gli sviluppatori possono utilizzare per costruire e migliorare le loro app.

Attualmente, gli Emerge Tools integrano sei prodotti: Size Analysis, Snapshots, Performance Analysis, Launch Booster, Reaper e Build Distribution. A partire dall’applicazione in formato pacchettizzato, è quindi possibile scoprirne tutti “i segreti” ed evidenziare tutti i possibili margini di miglioramento.

Nel caso di iOS, Emerge chiede di caricare soltanto file xcarchive (.xcarchive.zip) o xcframework (.xcframework.zip) compressi. I file Xcode Archive sono generalmente il risultato del sistema di build CI.

Parlando invece di Android, Emerge supporta i file .apk e .aab, senza necessità di compressione. Per ottenere i migliori risultati, è consigliata l’inclusione delle mappature R8 e Proguard usate per offuscare l’applicazione.

Il problema delle app Android/iOS approssimative e non ottimizzate

Non ci scandalizziamo per la presenza di un file rutto.mp3 che pesa appena 8 KB. Rimaniamo basiti, piuttosto, per la scarsa ottimizzazione di tante app Android e iOS provenienti da aziende e sviluppatori che non dovrebbero essere superficiali quando si parla di migliorare il funzionamento delle loro applicazioni. Soprattutto nei casi in cui, come in quello di specie, le app non solo gestiscono dati personali ma anche informazioni altamente sensibili. Non è una novità che le informazioni relative allo stato finanziario di una persona o di un’entità siano considerate dati sensibili.

Eppure, già con una semplicissima analisi con Emerge, si apprende che nel caso dell’app di Intesa 140 MB di spazio potrebbero essere recuperati semplicemente facendo leva su interventi di bassissimo profilo.

Quando un programma è compilato, i file binari contengono non solo il codice eseguibile, ma anche simboli di debug e informazioni aggiuntive utilizzate durante lo sviluppo, come i nomi delle funzioni e variabili. Rimuovendo queste informazioni (“simboli”) si alleggerisce il file in produzione senza compromettere le funzionalità del software. L’app Intesa sarebbe più leggera di oltre 100 MB se si fosse posta in essere questa attenzione basilare.

Le immagini, specialmente nei formati non ottimizzati, possono occupare molto spazio. Anche qui si sarebbero risparmiati 30 MB. Per non parlare della rimozione dei duplicati, che avrebbe contribuito all’ottimizzazione delle risorse.

A quando gli audit imposti dalla normativa per le app più critiche?

La questione del rutto o la modella codificata in base64 sono insomma sono la punta dell’iceberg. In Italia come in Europa, le app di mobile banking devono rispettare normative di sicurezza rigorose, ma non esiste un obbligo di audit formale.

Le normative come il Regolamento generale sulla protezione dei dati (GDPR) impongono requisiti severi sulla gestione dei dati personali, che includono l’implementazione di misure di sicurezza adeguate. Molte banche europee scelgono di sottoporre le loro app ad audit regolari per garantire che siano conformi a queste normative e per ridurre i rischi di frode e attacchi informatici.

L’introduzione del Digital Markets Act (DMA) potrebbe influenzare ulteriormente le pratiche di audit e sicurezza nel settore bancario europeo, aumentando la necessità di controlli rigorosi.

A nostro avviso il punto è proprio questo: sarebbe auspicabile che il legislatore imponesse, per le app che gestiscono anche dati sensibili, di effettuare audit regolari, tesi a verificare in primis la sicurezza delle applicazioni e la piena compatibilità con le buone prassi di sviluppo software in ottica DevSecOps.

In sede di auditing il soggetto indipendente chiamato a verificare l’applicazione potrebbe evidenziare anche criticità legate alla struttura dell’app e alle risorse impegnate.

Credit immagine in apertura: iStock.com – Pekic

Ti consigliamo anche

Link copiato negli appunti