
Genera file dannosi utilizzando l'attacco omoglifico recentemente pubblicato (CVE-2021-42694)
Genera file dannosi sfruttando la vulnerabilità relativa agli attacchi tramite omoglifi pubblicata di recente, scoperta almeno in C, C++, C#, Go, Python, Rust, JS, ...
Citazione da cve.mitre.org
È stato scoperto un problema nelle definizioni dei caratteri della specifica Unicode fino alla versione 14.0. La specifica consente a un avversario di produrre identificatori di codice sorgente, come nomi di funzioni, utilizzando omoglifi che risultano visivamente identici a un identificatore bersaglio. Gli avversari possono sfruttare questo per iniettare codice tramite definizioni di identificatori avversari nelle dipendenze software a monte, invocate in modo ingannevole nel software a valle.
I dati grezzi per gli omoglifi (homoglyphs.txt) sono presi da qui e sono stati puliti per eliminare i caratteri in corsivo e dissimili.
Vedi la fonte originale dell'Università di Cambridge:
https://www.trojansource.codes/trojan-source.pdf
python3 codegen.py [-h] [-i INFILE] [-o OUTFILE] [-r] [-a]
| argomento | argomento lungo | parametro | descrizione |
|---|
| -h | --help | nessuno | mostra questo messaggio di aiuto ed esci |
| -i | --infile | INFILE | File di input contenente i segnaposto per gli omoglifi |
| -o | --outfile | OUTFILE | File di output in cui salvare il codice finale |
| -r | --random | nessuno | Se il flag è impostato, scegli un omoglifo casuale; altrimenti usa il primo |
| -a | --about | nessuno | Stampa il testo informativo |
Gli esempi sono stati creati da me o sono tratti dal PDF di riferimento. Per eseguire questi esempi, esegui codegen.py con gli argomenti richiesti:
python3 codegen.py -i infile.xyz -o outfile.xyz ed esegui/compila outfile.xyz.
Attualmente sono supportate solo le cifre [0-9], oltre ai caratteri minuscoli e maiuscoli [a-zA-Z]. Per sostituire un carattere supportato all'interno del tuo template con un omoglifo (casuale), racchiudi semplicemente il carattere tra segni di dollaro $. Guarda gli esempi per avere una prima idea di come potrebbe apparire un template.