
Genera file dannosi utilizzando l'attacco bidi pubblicato di recente (CVE-2021-42574)
// Aggiornamento: 05.11.2021
Ora è possibile non solo codificare, ma anche decodificare i file. Ciò significa che ora i file contenenti caratteri bidi supportati possono essere convertiti in file template con segnaposto bidi (LRO, ...).
Genera file dannosi utilizzando la vulnerabilità dell'attacco bidi pubblicata di recente, scoperta nella specifica Unicode e che colpisce molti interpreti / compilatori.
Citazione da cve.mitre.org:
È stato scoperto un problema nell'algoritmo bidirezionale della specifica Unicode fino alla versione 14.0. Esso consente il riordino visivo dei caratteri tramite sequenze di controllo, che possono essere utilizzate per creare codice sorgente che mostra una logica diversa rispetto all'ordinamento logico dei token elaborati da compilatori e interpreti. Gli attaccanti possono sfruttare questo meccanismo per codificare codice sorgente per compilatori che accettano Unicode, in modo che vulnerabilità mirate vengano introdotte in modo invisibile ai revisori umani.
Vedi il rapporto sull'algoritmo bidirezionale di unicode.org:
https://www.unicode.org/reports/tr9/tr9-42.html
Vedi la fonte originale della Camebridge University:
https://www.trojansource.codes/trojan-source.pdf
python3 codegen.py [-h] [-m MODE] [-i INFILE] [-o OUTFILE] [-u] [-a]
Questo convertirà un file template contenente segnaposto bidi in un file con caratteri bidi reali. Tutti gli esempi sono tratti dal PDF di riferimento. Per eseguire questi esempi, esegui codegen.py con gli argomenti richiesti:
python3 codegen.py -m encode -i infile.xyz -o outfile.xyz ed esegui/compila outfile.xyz.
Questo convertirà un file contenente caratteri bidi in un file con i corrispondenti segnaposto bidi. NOTA: l'output non può essere eseguito, poiché è solo un template.
python3 codegen.py -m decode -i infile.xyz -o outfile.xyz
Per creare i propri template, imposta i segnaposto (python3 codegen.py -u) dove vuoi che appaiano i caratteri speciali. Vedi gli esempi per avere una prima impressione di come potrebbe apparire un template.
La seguente tabella (tratta dal report originale di Camebridge) mostra i caratteri attualmente supportati da questo script.
~ https://www.trojansource.codes/trojan-source.pdf
| arg | argomento lungo | parametro | descrizione |
|---|
| -h | --help | nessuno | mostra questo messaggio di aiuto ed esce |
| -i | --infile | INFILE | File di input (template) contenente segnaposto Unicode |
| -o | --outfile | OUTFILE | File di output in cui salvare il codice finale |
| -u | --uctable | nessuno | Caratteri bidi supportati |
| -a | --about | nessuno | Stampa il testo informativo |
| -m | --mode | MODE | Usa e|ncode per convertire il template in codice dannoso e d|ecode viceversa |