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::$old_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::$_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::$ext-thumbnail_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_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::$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

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
Trojan Source ovvero come nascondere codice dannoso nei progetti opensource

Trojan Source ovvero come nascondere codice dannoso nei progetti opensource

Le proprietà del sistema di codifica Unicode possono essere sfruttate per celare codice potenzialmente dannoso nei sorgenti delle applicazioni.
Trojan Source ovvero come nascondere codice dannoso nei progetti opensource

Un gruppo di ricercatori accademici dell’Università di Cambridge ha scoperto una nuova modalità di attacco chiamata Trojan Source che permette di iniettare codice potenzialmente dannoso nel sorgente di qualunque progetto facendo in modo che non possa essere individuato con una revisione umana.

Trojan Source si basa su un semplice trucco che non richiede la modifica del compilatore: per questo può riguardare qualunque progetto sviluppato in Go, C++, C#, JavaScript, Java, Rust e Python.

In informatica un carattere di controllo è un carattere non visualizzabile che non rappresenta in sé un simbolo scritto. Tutti i caratteri nella tabella ASCII al di sotto della posizione 32 fanno parte di questa categoria: in un altro articolo abbiamo visto cosa sono e come ottenere i caratteri speciali usando la tastiera.

Due degli autori della ricerca, Nicholas Boucher e Ross Anderson, spiegano che è possibile sfruttare una caratteristica del sistema di codifica Unicode per fare in modo che il comportamento del codice compilato sia diverso da quello che appare evidente limitandosi a una semplice analisi del sorgente.

Righe che sembrano semplici commenti possono diventare codice che verrà invece preso in considerazione al momento della compilazione. Usando codici Unicode è infatti possibile specificare la direzione con cui un testo viene elaborato: un aggressore può così produrre codice sorgente sintatticamente valido nella maggior parte dei linguaggi moderni per i quali l’ordine di visualizzazione dei caratteri presenta, solo all’apparenza, una logica che diverge dalla logica reale.

Questo comportamento abbinato ai già noti attacchi omografici può avere conseguenze disastrose.
Negli attacchi omografici viene sfruttata possibile di sovrapporre visualmente caratteri simili: si pensi allo zero e alla lettera “O”, alla “l” minuscola con la “i” maiuscola oppure a una “H” latina e a una “H” cirillica. Il compilatore tratterà correttamente il codice trovandosi dinanzi a funzioni diverse ma l’occhio umano può essere facilmente tratto in inganno.

Un modo per difendersi da Trojan Source è quello di rifiutare l’uso di caratteri di controllo per la direzionalità del testo nei principali linguaggi di programmazione e nei compilatori. Nella maggior parte dei casi questa semplice soluzione può essere sufficiente anche perché gli sviluppatori possono sempre usare degli escape anziché inserier nel codice sorgente caratteri potenzialmente pericolosi.

Alle due problematiche sono stati assegnati i codici identificativi CVE-2021-42574 e CVE-2021-42694.

Ti consigliamo anche

Link copiato negli appunti