
पायथन में CaRT लाइब्रेरी का कार्यान्वयन, फ़ाइलों को (अ)निष्क्रिय (un)inerting करने के लिए।
CaRT फ़ाइल प्रारूप का उपयोग मैलवेयर और उससे जुड़े मेटाडेटा को संग्रहीत/स्थानांतरित करने के लिए किया जाता है। यह मैलवेयर को बेअसर कर देता है ताकि उसे निष्पादित न किया जा सके और उसे एन्क्रिप्ट कर देता है ताकि एंटी-वायरस सॉफ़्टवेयर CaRT फ़ाइल को मैलवेयर के रूप में चिह्नित न कर सके।
अब जब STIX v2 एन्कोडिंग के रूप में JSON का उपयोग करता है, तो आप अपनी STIX रिपोर्ट को सीधे CaRT प्रारूप में बंडल कर सकते हैं।
जब CaRT फ़ाइलों को एन्कोड करता है, तो यह आपकी फ़ाइल के समान उपसर्ग वाली *.cartmeta फ़ाइल से मेटाडेटा जोड़ता है।
इसलिए, यदि आप अपनी STIX रिपोर्ट को .cartmeta फ़ाइल में सहेजते हैं, तो परिणामी CaRT फ़ाइल में पूरी
STIX रिपोर्ट उसके भीतर अंतर्निहित होगी।
उदाहरण:
$ 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 का एक अनिवार्य शीर्षलेख होता है जो इस प्रकार दिखता है
4s h Q 16s Q
CART<VERSION><RESERVED><ARC4KEY><OPT_HEADER_LEN>
जहाँ VERSION का मान 1 है और RESERVED का मान 0 है। अधिकांश मामलों में, फ़ाइल को डिक्रिप्ट करने के लिए उपयोग की जाने वाली RC4 कुंजी अनिवार्य शीर्षलेख में संग्रहीत होती है और हमेशा समान होती है (पाई के पहले 8 अंक, दो बार)। हालाँकि, CaRT कुंजी को अधिलेखित करने का विकल्प प्रदान करता है जो तब अनिवार्य शीर्षलेख में नल बाइट्स संग्रहीत करता है। फ़ाइल को unCaRT करने के लिए आपको कुंजी जानने की आवश्यकता होगी...
CaRT का वैकल्पिक शीर्षलेख, JSON क्रमबद्ध शीर्षलेख का एक OPT_HEADER_LEN बाइट्स RC4 ब्लॉब है
RC4(<JSON_SERIALIZED_OPTIONAL_HEADER>)
CaRT का डेटा ब्लॉक पहले zlib और फिर RC4 ब्लॉक होता है
RC4(ZLIB(block encoded stream))
वैकल्पिक शीर्षलेख की तरह, CaRT का वैकल्पिक फ़ुटर, JSON क्रमबद्ध फ़ुटर का एक OPT_FOOTER_LEN बाइट्स RC4 ब्लॉब है
RC4(<JSON_SERIALIZED_OPTIONAL_FOOTER>)
CaRT अपनी फ़ाइल को एक अनिवार्य फ़ुटर के साथ समाप्त करता है, जो प्रारूप को फ़ुटर पढ़ने और हैश लौटाने की अनुमति देता है बिना पूरी फ़ाइल पढ़े
4s QQ Q
TRAC<RESERVED><OPT_FOOTER_LEN>
pip पैकेज स्थापित करके, आपको CaRT लाइब्रेरी और CaRT CLI दोनों तक पहुँच प्राप्त होती है।
CaRT CLI के विकल्पों के लिए निम्नलिखित प्राथमिकता होती है:
~/.cart/cart.cfg में दिए गए विकल्पों द्वारा अधिलेखित किए जाते हैंCaRT CLI में उपलब्ध विकल्प ये हैं:
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!
CaRT की कॉन्फ़िगरेशन फ़ाइल इस प्रकार दिखती है:
[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]
Rust और Java में भी CaRT के कार्यान्वयन उपलब्ध हैं। इन्हें नीचे देखें:
CaRT फ़ाइल प्रारूप मैलवेयर और संबंधित मेटाडेटा को संग्रहीत और स्थानांतरित करने की अनुमति देता है। यह मैलवेयर को बेअसर करता है ताकि उन्हें निष्पादित न किया जा सके और उन्हें एन्क्रिप्ट करता है ताकि एंटी-वायरस सॉफ़्टवेयर CaRT फ़ाइल को मैलवेयर के रूप में चिह्नित न करे।
अब जब STIX का संस्करण 2 एन्कोडिंग के प्रयोजनों के लिए JSON का उपयोग करता है, तो आप अपनी STIX रिपोर्ट को सीधे
CaRT प्रारूप में समूहित कर सकते हैं। जब CaRT फ़ाइलों को एन्कोड करता है, तो यह आपकी फ़ाइल द्वारा उपयोग किए गए समान उपसर्ग वाली
*.cartmeta फ़ाइल से मेटाडेटा जोड़ता है। परिणामस्वरूप, यदि आप अपनी STIX रिपोर्ट को .cartmeta फ़ाइल में सहेजते हैं,
तो पूरी रिपोर्ट परिणामी CaRT फ़ाइल में एकीकृत हो जाएगी।
उदाहरण के लिए:
$ 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