
burner-net v1.3.0
ज़ीरो-ट्रस्ट एंटी-फॉरेंसिक HTTP क्लाइंट। गुप्त जानकारी मिटाता है। निशान काटता है। स्टील्थ टैंक में CPR। 👻
BurnerNet
ज़ीरो-ट्रस्ट, एंटी-फोरेंसिक HTTP क्लाइंट। गुप्त जानकारी मिटाएं। निशान काटें। एक स्टील्थ टैंक में CPR। 👻
BurnerNet एक C++20 एंटी-फोरेंसिक HTTP क्लाइंट है। यह उन ऐप्स के लिए एक सहज, CPR-जैसा API प्रदान करता है जो स्थानीय मशीन पर पूरी तरह भरोसा नहीं कर सकते—भौतिक रूप से RAM से गुप्त जानकारी मिटाना और स्कैनर व डीबगर से आपके तर्क को छिपाने के लिए निष्पादन निशान काटना।
यह सामान्य HTTP के लिए परिचित होस्ट-संगत डिफ़ॉल्ट और शत्रुतापूर्ण वातावरण के लिए एक स्पष्ट Hardened प्रोफ़ाइल प्रदान करता है। दोनों पथ अल्पकालिक क्लाइंट का पक्ष लेते हैं; उन्नत विश्वास ऐप के स्वामित्व में रहता है।
BurnerNet द्वारा डाउनलोड किए गए पेलोड को सुरक्षित रखना चाहते हैं? इन-मेमोरी एसेट डिस्क्रैम्बलिंग के लिए RipStop Codec देखें।
सिद्धांत • शुरुआत करना • एकीकरण पथ • सुरक्षा वास्तविकता
एक नज़र में
| क्षेत्र | BurnerNet |
|---|---|
| भाषा | C++20 |
| प्लेटफ़ॉर्म | Windows x64/x86 (प्रथम श्रेणी), Linux (सत्यापित) |
| परिवहन | libcurl-समर्थित HTTP(S) |
| मेमोरी स्वच्छता | सुरक्षित मिटाने वाली उपयोगिताएँ और मिटाने वाले आवंटक |
| फोरेंसिक स्वच्छता | BurnerNet-प्रबंधित परिवहन स्थिति में स्वचालित हीप/स्टैक स्क्रबिंग |
| गतिशील विश्लेषण | कॉल स्टैक अलगाव उपभोक्ता और परिवहन के बीच की कड़ी को तोड़ सकता है |
| बिल्ड हार्डनिंग | वैकल्पिक डायग्नोस्टिक-स्ट्रिंग हटाना, अस्पष्ट शाब्दिक, हार्डन बिल्ड में कम C++ रनटाइम मेटाडेटा |
| रनटाइम हार्डनिंग | DoH समर्थन, प्रदाता-आधारित रहस्य, और कड़े विश्वास नियंत्रण |
| एकीकरण | CMake या Visual Studio स्रोत-ड्रॉप |
इसका उपयोग क्यों करें
BurnerNet का उपयोग तब करें जब सामान्य HTTP क्लाइंट आपके वातावरण के लिए बहुत अधिक भरोसेमंद हो।
यह आपकी मदद करता है जब आप चाहते हैं:
- अनुरोध क्लाइंट को एक वैश्विक परिवहन साझा करने के बजाय अल्पकालिक रखना
- स्थानीय DNS और अन्य होस्ट डिफ़ॉल्ट पर निर्भरता कम करना
- टोकन, प्रमाणपत्र और सत्यापन रहस्य केवल आवश्यकता पड़ने पर ही प्राप्त करना
- प्रतिक्रिया सत्यापन तर्क को अपने स्वयं के एप्लिकेशन कोड में रखना
- हार्डन बिल्ड में स्पष्ट प्लेनटेक्स्ट स्ट्रिंग और मेटाडेटा को कम करना
यह किसके लिए है
BurnerNet ऐसी परियोजनाओं में फिट बैठता है जैसे:
- उच्च-मूल्य वाले प्रमाणीकरण, लाइसेंसिंग या अपडेट अनुरोधों वाले Windows डेस्कटॉप ऐप्स
- एक होस्ट में एम्बेडेड या इंजेक्ट किया गया कोड जिस पर आप पूरी तरह भरोसा नहीं करते
- वे उपकरण जो एक सहज C++ API को छोड़े बिना कड़े परिवहन जाँच चाहते हैं
मानक स्टैक बनाम BurnerNet
| चिंता | सामान्य HTTP स्टैक | BurnerNet |
|---|---|---|
| क्लाइंट जीवनकाल | अक्सर साझा और लंबे समय तक चलने वाला | डिस्पोजेबल क्लाइंट और बर्स्ट-स्कोप उपयोग के लिए डिज़ाइन किया गया |
| संवेदनशील मान | रहस्य अक्सर कॉन्फ़िग या मेमोरी में आवश्यकता से अधिक समय तक रहते हैं | प्रदाता कॉलबैक उन्हें उपयोग के करीब लाते हैं |
| DNS और विश्वास | आमतौर पर स्थानीय रिज़ॉल्वर और होस्ट डिफ़ॉल्ट प्राप्त करता है | DoH फ़ॉलबैक और पिन कुंजियों सहित कड़े विश्वास नियंत्रणों का समर्थन करता है |
| सत्यापन | ऐप-विशिष्ट अखंडता जाँच अक्सर बाद में जोड़ी जाती हैं | प्री-फ़्लाइट, परिवहन, और प्रतिक्रिया सत्यापन हुक के साथ काम करने के लिए बनाया गया |
रक्षात्मक परिणाम
- ज़ीरो-घोस्ट मेमोरी आर्किटेक्चर: BurnerNet
libcurlऔर OpenSSL-समर्थित प्रवाहों के आंतरिक मेमोरी आवंटन पथों को हुक करने के लिए एक कस्टम Prefix-Size Scrubber का उपयोग करता है। संवेदनशील परिवहन बफ़र BurnerNet-प्रबंधित जीवनकाल छोड़ने पर मिटा दिए जाते हैं। यह स्वच्छता दस्तावेज़ों में वर्णित ऑडिट किए गए कॉन्फ़िगरेशन के भीतर Windows और Linux दोनों पर सत्यापित है। - स्टैक-फ्रेम स्वाइपिंग: प्रत्येक अनुरोध के बाद, लाइब्रेरी अपने स्वयं के थ्रेड स्टैक (हाई-वॉटर मार्क स्क्रबिंग) को सक्रिय रूप से साफ करती है। इसका उद्देश्य आपके एप्लिकेशन पर नियंत्रण लौटने से पहले क्षणिक परिवहन अंशों को नष्ट करना है।
- मूविंग-टार्गेट हीप: डिस्पोजेबल ट्रांसपोर्ट और संरेखित मेटाडेटा हेडर का संयोजन उच्च पता-स्थान फैलाव बनाता है, जिससे प्रक्रिया मेमोरी अप्रत्याशित और स्थिर पॉइंटर-मैपिंग के प्रति प्रतिरोधी हो जाती है।
- अल्पकालिक अनुरोध स्थिति: BurnerNet प्रक्रिया-व्यापी सिंगलटन ट्रांसपोर्ट के बजाय डिस्पोजेबल क्लाइंट के आसपास डिज़ाइन किया गया है।
- होस्ट पर कम विश्वास: DoH समर्थन, पिन-कुंजी समर्थन, और परिवहन ऑडिटिंग समझौता किए गए स्थानीय डिफ़ॉल्ट पर निर्भरता को कम करने में मदद करते हैं।
- कम प्लेनटेक्स्ट एक्सपोज़र: प्रदाता कॉलबैक और सुरक्षित मिटाने वाली उपयोगिताएँ प्रमाणपत्रों, कुंजियों, टोकनों और अन्य संवेदनशील बफ़र के जीवनकाल को कम करती हैं।
- ऐप-स्वामित्व वाला सत्यापन: प्रतिक्रिया सत्यापन
WithResponseVerifier(...)के माध्यम से आपके कोड में रहता है, बजाय एक साझा लाइब्रेरी में हार्डकोड किए जाने के। - कठिन स्थैतिक फिंगरप्रिंटिंग: हार्डन बिल्ड
BURNERNET_DIAGNOSTIC_STRINGS=0सेट कर सकते हैं ताकिErrorCodeToString(...)प्रतीकात्मक त्रुटि नामों को एम्बेड किए बिना स्थिरE<number>मान लौटाए। - आयात-लाइट तैनाती विकल्प:
BURNERNET_HARDEN_IMPORTS=1रनटाइम निर्भरताओं को सीधे आयात तालिका में विज्ञापित करने के बजाय गतिशील रूप से हल कर सकता है, Windows पर BurnerNet केKernelResolverपथ का उपयोग करके। - कॉल स्टैक अलगाव (एसिंक हैंडऑफ़):
.WithStackIsolation(true)के माध्यम से सक्षम होने पर, लाइब्रेरी परिवहन जीवनचक्र को एक अलग वर्कर थ्रेड पर निष्पादित करती है। यह कॉलर के कॉल स्टैक को भौतिक रूप से तोड़ सकता है और एप्लिकेशन तर्क की सीधी ऊपर-से-नीचे ट्रेसिंग को कम कर सकता है।
सत्यापित स्टील्थ
BurnerNet केवल आयात-लाइट हार्डन मोड का दावा नहीं करता; यह विशिष्ट परीक्षण किए गए कॉन्फ़िगरेशन के लिए ऑडिट नोट्स के साथ आता है। BURNERNET_HARDEN_IMPORTS=ON के साथ Windows x64 Release ऑडिट में:
- IAT ब्लैकआउट: ऑडिट किए गए बाइनरी में
libcurl.dll,ws2_32.dll,bcrypt.dll, याcrypt32.dllके लिए कोई प्रविष्टि नहीं देखी गई। - मेमोरी डार्क-आउट: फोरेंसिक स्कैन (Cheat Engine "All Strings") प्रक्रिया हीप या स्टैक में संवेदनशील कैनरी URL या हेडर खोजने में विफल रहे।
- डीबगर ब्लाइंडनेस: एकीकृत परीक्षण सत्यापित करते हैं कि लाइब्रेरी एक "आइडेंटिटी शिफ्ट" ट्रिगर करती है। निर्णय-निर्माता (आपका ऐप) और ट्रांसपोर्टर (BurnerNet) अलग-अलग थ्रेड आईडी पर काम करते हैं, जो लाइव डीबगिंग सत्रों के दौरान ऊपर-से-नीचे ट्रेसिंग को कम करते हैं।
- शोर-से-सिग्नल: लाइब्रेरी अपने मिटाने के अधिकार के भीतर फोरेंसिक स्वच्छता का लक्ष्य रखती है, जबकि OS और रनटाइम वातावरण में शेष सिस्टम-स्तरीय "छायाओं" को स्वीकार करती है।
ऑडिट विवरण और पद्धति:
शुरुआत करना
सबसे तेज़ पथ:
- CMake या Visual Studio स्रोत-ड्रॉप के साथ BurnerNet को अपने बिल्ड में जोड़ें।
<burner/net.h>शामिल करें।- एक स्टैक क्लाइंट बनाएं, एक अनुरोध भेजें, फिर इसे स्कोप छोड़ने दें।
न्यूनतम उदाहरण:
#include <iostream>
#include <burner/net.h>
int main() {
burner::net::Client client;
if (!client.IsReady()) {
std::cerr << burner::net::ErrorCodeToString(client.InitError()) << '\n';
return 1;
}
const auto response = client
.Get("https://example.com")
.WithHeader("Accept", "text/html")
.WithTimeoutSeconds(10)
.Send();
if (!response.TransportOk()) {
std::cerr << burner::net::ErrorCodeToString(response.transport_error) << '\n';
return 1;
}
std::cout << "HTTP " << response.status_code << '\n';
return 0;
}
Client मानक डिफ़ॉल्ट का उपयोग करता है: सिस्टम CA, DNS, और प्रॉक्सी जिसमें TLS पीयर और होस्टनाम सत्यापन सक्षम है। WithCasualDefaults() मानक संगतता उपनाम के रूप में उपलब्ध रहता है।
सुरक्षा-महत्वपूर्ण ट्रैफ़िक के लिए, Hardened प्रोफ़ाइल का उपयोग करें। Build() किसी भी अनुरोध से पहले लापता नियंत्रणों को अस्वीकार करता है: