
Implementazione Python della libreria CaRT per (de)inertizzare file.
Il formato di file CaRT viene utilizzato per archiviare/trasferire malware e i relativi metadati. Neutralizza il malware rendendolo non eseguibile e lo cifra in modo che i software antivirus non possano segnalare il file CaRT come malware.
Ora che STIX v2 utilizza JSON come codifica, puoi raggruppare direttamente il tuo report STIX nel formato CaRT.
Quando CaRT codifica i file, aggiunge i metadati dal file *.cartmeta con lo stesso prefisso del tuo file.
Pertanto, se salvi il tuo report STIX in un file .cartmeta, il file CaRT risultante conterrà
l'intero report STIX al suo interno.
Esempio:
$ ls
file.exe - File I want to encode
file.exe.cartmeta - Stix report of file.exe
$ cart file.exe
$ ls
file.exe - File I want to encode
file.exe.cartmeta - Stix report of file.exe
file.exe.cart - CaRT file containing both the file.exe and its STIX report
CaRT ha un'intestazione obbligatoria che si presenta così
4s h Q 16s Q
CART<VERSION><RESERVED><ARC4KEY><OPT_HEADER_LEN>
Dove VERSION è 1 e RESERVED è 0. Nella maggior parte dei casi, la chiave RC4 utilizzata per decifrare il file è memorizzata nell'intestazione obbligatoria ed è sempre la stessa (le prime 8 cifre di pi greco due volte). Tuttavia, CaRT offre la possibilità di sostituire la chiave, che in tal caso memorizza byte nulli nell'intestazione obbligatoria. A quel punto dovrai conoscere la chiave per eseguire l'unCaRT del file...
L'intestazione facoltativa di CaRT è un blob RC4 di OPT_HEADER_LEN byte di un'intestazione serializzata in JSON
RC4(<JSON_SERIALIZED_OPTIONAL_HEADER>)
Il blocco dati di CaRT è un blocco zlib seguito da un blocco RC4
RC4(ZLIB(block encoded stream))
Come l'intestazione facoltativa, il piè di pagina facoltativo di CaRT è un blob RC4 di OPT_FOOTER_LEN byte di un piè di pagina serializzato in JSON
RC4(<JSON_SERIALIZED_OPTIONAL_FOOTER>)
CaRT termina il file con un piè di pagina obbligatorio che consente al formato di leggere il piè di pagina e restituire gli hash senza leggere l'intero file
4s QQ Q
TRAC<RESERVED><OPT_FOOTER_LEN>
Installando il pacchetto pip, si ha accesso alla libreria CaRT e anche all'interfaccia a riga di comando di CaRT.
L'interfaccia a riga di comando di CaRT ha la seguente priorità per le sue opzioni:
~/.cart/cart.cfgQueste sono le opzioni disponibili nell'interfaccia a riga di comando di CaRT:
usage: cart [options] file1 file2 ... fileN
The CaRT file format is used to store/transfer malware and its associated metadata.
It neuters the malware so it cannot be executed and encrypts it so anti-virus software
cannot flag the CaRT file as malware.
positional arguments:
file
options:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-d, --delete Delete original after operation succeeded
-f, --force Replace output file if it already exists
-i, --ignore Ignore RC4 key from conf file
-j JSONMETA, --jsonmeta JSONMETA
Provide header metadata as JSON blob
-k KEY, --key KEY Use private RC4 key (base64 encoded). Same key must be provided to unCaRT.
-m, --meta Keep metadata around when extracting CaRTs
-n FILENAME, --name FILENAME
Use this value as metadata filename
-o OUTFILE, --outfile OUTFILE
Set output file
-s, --showmeta Only show the file metadata
CaRT is smart enough to determine if a file needs to be CaRTed or unCaRTed.
To CaRT an unCaRTed file: cart file1
To unCaRT a CaRTed file: cart file1
It is the same command!
Il file di configurazione di CaRT si presenta così:
[global]
# rc4_key is a base64 representation of your key
rc4_key: AvUzYXNkZg==
# keep_meta is an equivalent to -m in the CLI
keep_meta: True
# force is an equivalent to -f in the CLI
force: True
# default_header is a key/value pair of data to be added to the CaRT in the optional header
[default_header]
poc: Your Name
poc_email: [email protected]
Esistono anche implementazioni di CaRT in Rust e Java. Dai un'occhiata qui sotto:
Il formato di file CaRT consente di archiviare e trasferire i malware e i metadati associati. Neutralizza i malware in modo che non possano essere eseguiti e li cifra così che il software antivirus non segnali il file CaRT come malware.
Ora che STIX v2 utilizza JSON per la codifica, puoi includere i tuoi report STIX direttamente nel formato CaRT.
Quando CaRT codifica i file, aggiunge i metadati dal file *.cartmeta con lo stesso prefisso utilizzato dal tuo file.
Di conseguenza, se salvi il tuo report STIX in un file .cartmeta, il report completo verrà integrato nel file CaRT risultante.
Per esempio:
$ ls
file.exe - Fichier à coder
file.exe.cartmeta - Rapport STIX du fichier file.exe
$ cart file.exe
$ ls
file.exe - Fichier à coder
file.exe.cartmeta - Rapport STIX du fichier file.exe
file.exe.cart - Fichier CaRT contenant à la fois le fichier file.exe et son rapport STIX