
ज़ीरो-ट्रस्ट एंटी-फॉरेंसिक HTTP क्लाइंट। गुप्त जानकारी मिटाता है। निशान काटता है। स्टील्थ टैंक में CPR। 👻
ज़ीरो-ट्रस्ट, एंटी-फोरेंसिक 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 क्लाइंट आपके वातावरण के लिए बहुत अधिक भरोसेमंद हो।
यह आपकी मदद करता है जब आप चाहते हैं:
BurnerNet ऐसी परियोजनाओं में फिट बैठता है जैसे:
libcurl और OpenSSL-समर्थित प्रवाहों के आंतरिक मेमोरी आवंटन पथों को हुक करने के लिए एक कस्टम Prefix-Size Scrubber का उपयोग करता है। संवेदनशील परिवहन बफ़र BurnerNet-प्रबंधित जीवनकाल छोड़ने पर मिटा दिए जाते हैं। यह स्वच्छता दस्तावेज़ों में वर्णित ऑडिट किए गए कॉन्फ़िगरेशन के भीतर Windows और Linux दोनों पर सत्यापित है।WithResponseVerifier(...) के माध्यम से आपके कोड में रहता है, बजाय एक साझा लाइब्रेरी में हार्डकोड किए जाने के।BURNERNET_DIAGNOSTIC_STRINGS=0 सेट कर सकते हैं ताकि ErrorCodeToString(...) प्रतीकात्मक त्रुटि नामों को एम्बेड किए बिना स्थिर E<number> मान लौटाए।BURNERNET_HARDEN_IMPORTS=1 रनटाइम निर्भरताओं को सीधे आयात तालिका में विज्ञापित करने के बजाय गतिशील रूप से हल कर सकता है, Windows पर BurnerNet के पथ का उपयोग करके।BurnerNet केवल आयात-लाइट हार्डन मोड का दावा नहीं करता; यह विशिष्ट परीक्षण किए गए कॉन्फ़िगरेशन के लिए ऑडिट नोट्स के साथ आता है। BURNERNET_HARDEN_IMPORTS=ON के साथ Windows x64 Release ऑडिट में:
libcurl.dll, ws2_32.dll, bcrypt.dll, या crypt32.dll के लिए कोई प्रविष्टि नहीं देखी गई।ऑडिट विवरण और पद्धति:
सबसे तेज़ पथ:
<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() किसी भी अनुरोध से पहले लापता नियंत्रणों को अस्वीकार करता है:
auto secure = burner::net::ClientBuilder(burner::net::ClientProfile::Hardened)
.WithMtlsProvider(ProvideMtlsCredentials)
.WithSecurityPolicy(AppSecurityPolicy{})
.WithDnsFallback(burner::net::DnsMode::Doh,
"https://resolver.example/dns-query",
"Primary DoH")
.AllowSystemDns(true) // स्पष्ट फ़ॉलबैक, DoH के बाद
.WithResponseVerifier(VerifySignedResponse)
.Build();
Hardened के लिए पीयर और होस्टनाम सत्यापन, स्टैक अलगाव, DoH-प्रथम रूटिंग, एक ऐप प्रतिक्रिया सत्यापनकर्ता, और एक ऐप-स्वामित्व वाला विश्वास माउंट आवश्यक है। स्थायी WithMtls(...) क्रेडेंशियल अस्वीकार किए जाते हैं; WithMtlsProvider(...) का उपयोग करें।
इसका उपयोग तब करें जब आपका डाउनस्ट्रीम प्रोजेक्ट पहले से CMake का उपयोग करता है और आप सबसे स्वच्छ निर्भरता-प्रबंधित पथ चाहते हैं।
दस्तावेज़:
इसका उपयोग तब करें जब आपका वातावरण MSBuild-प्रथम है या आप BurnerNet को सीधे अपने .vcxproj के अंदर संकलित करना चाहते हैं।
दस्तावेज़:
इसका उपयोग तब करें जब आप स्पष्ट रनटाइम निर्भरता एक्सपोज़र को कम करना चाहते हैं और बूटस्ट्रैप लोडिंग को स्पष्ट रूप से प्रबंधित करने के लिए तैयार हैं।
सक्षम करें:
BURNERNET_HARDEN_IMPORTS=1KernelResolver पथ का उपयोग करता हैसंदर्भ:
Linux समर्थन: BurnerNet Linux पर पूर्ण फोरेंसिक समानता (मेमोरी वाइपिंग और स्टैक अलगाव) प्रदान करता है। बिल्ड निर्देशों के लिए docs/LINUX_USAGE.md देखें।
अनुशंसित डिफ़ॉल्ट:
उदाहरण:
दस्तावेज़ीकरण:
libcurl 7.87.0+ और OpenSSL हेडरBurnerNet एक हार्डनिंग लेयर है जिसे हमले की लागत को पेशेवर स्तर तक बढ़ाने के लिए डिज़ाइन किया गया है। हम इस सिद्धांत पर काम करते हैं कि स्टील्थ वास्तुशिल्प होना चाहिए, सिर्फ सतही नहीं।
क्या कोई हमलावर BurnerNet को बायपास कर सकता है यदि उसके पास स्रोत कोड है? BurnerNet के स्रोत कोड का ज्ञान अपने आप में हर डाउनस्ट्रीम एप्लिकेशन के लिए एक मास्टर कुंजी नहीं है। BurnerNet Kerckhoffs के सिद्धांत का पालन करता है: लाइब्रेरी को इस तरह डिज़ाइन किया गया है कि आपके ऐप-विशिष्ट विश्वास एंकर (HMAC रहस्य, पिन कुंजियाँ, UI तर्क, नीति हुक) एप्लिकेशन के स्वामित्व में रहें। परिवहन परत को जानने का मतलब आपके विशिष्ट सुरक्षा प्रवाह का स्वचालित सार्वभौमिक बाईपास नहीं है।
| चिंता | सामान्य HTTP स्टैक | BurnerNet |
|---|
| क्लाइंट जीवनकाल | अक्सर साझा और लंबे समय तक चलने वाला | डिस्पोजेबल क्लाइंट और बर्स्ट-स्कोप उपयोग के लिए डिज़ाइन किया गया |
| संवेदनशील मान | रहस्य अक्सर कॉन्फ़िग या मेमोरी में आवश्यकता से अधिक समय तक रहते हैं | प्रदाता कॉलबैक उन्हें उपयोग के करीब लाते हैं |
| DNS और विश्वास | आमतौर पर स्थानीय रिज़ॉल्वर और होस्ट डिफ़ॉल्ट प्राप्त करता है | DoH फ़ॉलबैक और पिन कुंजियों सहित कड़े विश्वास नियंत्रणों का समर्थन करता है |
| सत्यापन | ऐप-विशिष्ट अखंडता जाँच अक्सर बाद में जोड़ी जाती हैं | प्री-फ़्लाइट, परिवहन, और प्रतिक्रिया सत्यापन हुक के साथ काम करने के लिए बनाया गया |
KernelResolver.WithStackIsolation(true) के माध्यम से सक्षम होने पर, लाइब्रेरी परिवहन जीवनचक्र को एक अलग वर्कर थ्रेड पर निष्पादित करती है। यह कॉलर के कॉल स्टैक को भौतिक रूप से तोड़ सकता है और एप्लिकेशन तर्क की सीधी ऊपर-से-नीचे ट्रेसिंग को कम कर सकता है।