Cyberteam

  • Home
  • Attività
    • Network Security Assessment
    • Password Hacking
      • Password Intelligence
      • Password Security Management
      • Multi-Factor Authentication
    • Cyber Intelligence
    • Vulnerability Assessment
    • NIS 2
    • Penetration Testing
    • Spear Phishing
    • Academy
    • Database Health Check
    • Legal 4 Tech
      • Legal 4 Tech
      • AGID/GDPR
    • Digital Forensics
  • Ethical Hacker
    • chi sono
    • Lavora con noi
  • CT per il sociale
  • Contatti
  • CyberNews

Trojan Source –
come ti “ignetto” le vulnerabilità nel codice sorgente

Trojan Source –
come ti “ignetto” le vulnerabilità nel codice sorgente

by Maurizio / giovedì, 04 Novembre 2021 / Published in Cyber Security

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.

Non solo, ma allo stesso tempo, questa vulnerabilità modifica anche la logica definita dal codice sorgente, rendendo il codice esposto a un’ampia varietà di minacce informatiche, che includono anche minacce legate alle supply chain, oramai bersaglio prediletto degli attaccanti.

Abuso degli standard di codifica del testo

L’intero attacco Trojan Source è stato dimostrato rilevando come questo attacco può interagire con il software e le relative supply chain.

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.

Attacco bidirezionale e omoglifo

I ricercatori hanno dimostrato che un modo per ottenerlo è utilizzare i controlli Unicode per il testo bidirezionale (ad esempio LRI -isolato da sinistra a destra e RLI -isolato da destra a sinistra) per dettare la direzione in cui viene visualizzato il contenuto. Questo metodo è ora tracciato come CVE-2021-42574.

I controlli bidirezionali (Bidi) LRI e RLI sono caratteri invisibili e non sono gli unici. Iniettando queste istruzioni, un compilatore può compilare codice completamente diverso da quello che vede un essere umano.

Nell’immagine seguente, utilizzando i controlli RLI/RLI all’interno della stringa, la seconda riga viene compilata mentre l’occhio umano la legge come un commento che il compilatore ignorerebbe.

Iniettando i caratteri Unicode Bidi di override in commenti e stringhe, un attacante potrebbe “produrre codice sorgente sintatticamente valido nella maggior parte delle lingue moderne per cui l’ordine di visualizzazione dei caratteri presenta una logica che diverge dalla logica reale”.

Un altro modo è un attacco omoglifo (CVE-2021-42694), in cui due caratteri diversi hanno una rappresentazione visiva simile, come il numero “zero” e la lettera “O”, o la “L” minuscola e la “i” maiuscola.

In un attacco omoglifo Trojan Source come esemplificato di seguito, l’occhio umano vedrà entrambe le funzioni identiche, mentre il compilatore distingue tra il latino “H” e il cirillico “H” e tratta il codice come avente due funzioni diverse, quindi il risultato non sarà lo stesso.

In un documento [PDF] che descrive in dettaglio il nuovo metodo di attacco Trojan Source, i ricercatori evidenziano che i caratteri di override bidirezionali (Bidi) persistono attraverso l’azione di copia / incolla sulla maggior parte dei browser, editor e sistemi operativi.

I ricercatori hanno testato l’attacco Trojan Source contro più editor di codice e repository basati sul Web che sono comunemente usati nella programmazione e hanno scoperto che il loro metodo ha funzionato su molti di essi.

Seguendo il principio di utilizzare bidi overrides per creare codice valido quando riordinato, i ricercatori hanno trovato almeno tre tecniche che consentono di sfruttare il codice sorgente:

  • Early Returns: nascondendo un’istruzione “return” autentica in un commento in modo che possa causare la restituzione di una funzione prima di quanto sembri
  • Commenting Out: ingannare la revisione umana inserendo codice importante, ad esempio un condizionale, in un commento in modo che venga ignorato dal compilatore o dall’interprete
  • Stretched Strings: ordinare il codice in modo inverso per farlo sembrare al di fuori di una stringa letterale

Un modo per difendersi da Trojan Source è rifiutare l’uso di caratteri di controllo per la direzionalità del testo nelle specifiche del linguaggio e nei compilatori che implementano i linguaggi.

“Nella maggior parte delle impostazioni, questa semplice soluzione potrebbe essere sufficiente. Se un’applicazione vuole stampare testo che richiede sostituzioni Bidi, gli sviluppatori possono generare tali caratteri utilizzando sequenze di escape anziché incorporare caratteri potenzialmente pericolosi nel codice sorgente.

Divulgazione coordinata

Il 25 luglio, i ricercatori hanno informato più maintainers di prodotti che sono stati colpiti dal metodo di attacco Trojan Source e hanno fissato un periodo di divulgazione di 99 giorni sottoposto a embargo.

Il Centro di coordinamento CERT ha anche ricevuto un rapporto sulle vulnerabilità e ha assistito alla divulgazione coordinata fornendo una piattaforma di comunicazione condivisa per i fornitori che implementano le difese.

A seguito del loro rapporto, i ricercatori hanno ricevuto una media di $ 2.246 in bug bounties da cinque dei destinatari, anche se 11 di loro avevano un programma di bug bounty.

Al momento, molti compilatori non sono in grado di fermare il metodo di attacco Trojan Source, nonostante quasi due dozzine di fornitori di software siano consapevoli della minaccia.

Poiché molti maintainers devono ancora implementare una patch, i due ricercatori raccomandano ai governi e alle aziende di identificare i propri fornitori e di spingerli ad adottare le necessarie difese.

Maurizio

Maestro del Caos Digitale e Guardiano del Cyberspazio, naviga nel mare oscuro della sicurezza informatica da oltre vent’anni, armato di codice e un irresistibile papillon.
Con la precisione di un bisturi e l’umorismo di un hacker, ha trasformato centinaia di “comuni mortali IT” in veri e propri ninja dell’Ethical Hacking. La sua missione? Insegnare l’arte della difesa digitale a migliaia di ignare risorse aziendali, un firewall alla volta.
Tre segreti che lo rendono un unicorno nel mondo cyber:

Ha una relazione quasi ossessiva con le password. Alcuni collezionano francobolli, lui colleziona hash crittografici.
Il suo gatto si chiama Hash. Sì, come l’algoritmo. No, non miagola in binario (ancora).
Indossa sempre un papillon, perché chi ha detto che non si può hackerare con stile?

Se lo cercate, seguite la scia di bit verdi: è il suo colore preferito. Perché anche nel mondo digitale, è sempre primavera per la sicurezza!

Condividi
Tagged under: codice sorgente, omoglifo, SUPPLY-CHAIN ATTACK, trojan-source, vulnerabilità

What you can read next

Head Mare: Gli Ethical Hacker
che Fanno Tremare il Cremlino
2022 che anno sarà
per la sicurezza?
La Rete Fantasma di GitHub:
Un Nuovo Livello di Sofisticazione nel Phishing

Categorie

  • AI
  • Analisi Tecnica
  • Attività
  • Cyber Security
  • Dark Web
  • Data Leak
  • GDPR
  • HACKER
  • Industria 4.0
  • IOT
  • MongoDB
  • Password
  • Ransomware
  • Smartworking
  • Vulnerabilità

Recent Posts

  • La Grande Truffa delle Email:
    Quando i Router Diventano Complici

    Ricercatori di sicurezza di Infoblox hanno rece...
  • Microsoft MFA Down:
    Quando la Sicurezza Va in Vacanza

    Microsoft ha avvisato gli utenti di un problema...
  • La paranoia
    è la vera sicurezza

    Siamo all’ultimo articolo di questo spettacolo ...
  • Phishing 2.0:
    come aggirare il 2FA con un sorriso

    Cyberteam vi descrive come il vostro adorato 2F...
  • 2FA:
    Il falso senso di sicurezza

    Oggi parleremo del 2FA, o come mi piace chiamar...
  • GET SOCIAL

© 2024.Tutti i diritti riservati. EURO INFORMATICA SPA - Viale della Repubblica 63/4, 36066 Sandrigo (VI)
P. IVA/CF 02367910243 - Cap Soc. 100.000 Euro i.v. - REA 0226275 - VI - Reg. Imp. 30100-VI-116

PRIVACY POLICY - COOKIE POLICY - DICHIARAZIONE DI ACCESSIBILITA'

TOP
  • Sei sotto attacco?