
عميل HTTP ذو ثقة صفرية ومضاد للطب الشرعي. يمسح الأسرار. يقطع الآثار. CPR في دبابة تخفٍ. 👻
عميل HTTP صفر ثقة ومقاوم للطب الشرعي. يمسح الأسرار. يقطع الآثار. CPR في خزان التخفي. 👻
بورنرنت هو عميل HTTP مقاوم للطب الشرعي بلغة C++20. يوفر واجهة برمجة تطبيقات سلسة تشبه CPR للتطبيقات التي لا يمكنها الوثوق الكامل بالجهاز المحلي—يمسح الأسرار فيزيائيًا من الذاكرة ويقطع آثار التنفيذ لإخفاء منطقك عن الماسحات الضوئية والمصححات.
يقدم إعدادات افتراضية مألوفة ومتوافقة مع المضيف لـ HTTP العادي وملف تعريف مشدد (Hardened) صريح للبيئات المعادية. كلا المسارين يفضلان العملاء قصيري العمر؛ الثقة المتقدمة تظل مملوكة للتطبيق.
هل تتطلع إلى حماية الحمولات التي تم تنزيلها بواسطة BurnerNet؟ اطلع على RipStop Codec لفك تشويش الأصول في الذاكرة.
المبادئ • بدء الاستخدام • مسارات التكامل • واقع الأمان
| المجال | BurnerNet |
|---|---|
| اللغة | C++20 |
| المنصة | Windows x64/x86 (ذو أولوية أولى), Linux (موثوق) |
| النقل | HTTP(S) مدعوم بـ libcurl |
| نظافة الذاكرة | أدوات مسح آمنة ومخصصات مسح |
| النظافة الشرعية | تنظيف تلقائي للكومة/المكدس عبر حالة النقل المدارة بواسطة BurnerNet |
| التحليل الديناميكي | يمكن لعزل مكدس الاستدعاءات قطع الارتباط بين المستهلك والنقل |
| تشديد البناء | إزالة اختيارية لسلاسل التشخيص، حرفيات مشوشة، بيانات تشغيل C++ مخفضة في البناءات المشددة |
| تشديد وقت التشغيل | دعم DoH، أسرار قائمة على المزود، وضوابط ثقة أكثر صرامة |
| التكامل | CMake أو إسقاط المصدر في Visual Studio |
استخدم BurnerNet عندما يكون عميل HTTP العادي واثقًا جدًا لبيئتك.
يساعدك عندما تريد:
BurnerNet يناسب مشاريع مثل:
libcurl وتدفقات OpenSSL. يتم مسح مخازن النقل الحساسة عند مغادرتها العمر المدار بواسطة BurnerNet. تم التحقق من هذه النظافة على كل من Windows و Linux ضمن التهيئات المدققة الموضحة في الوثائق.WithResponseVerifier(...) بدلاً من ترميزه ثابتًا في مكتبة مشتركة.BURNERNET_DIAGNOSTIC_STRINGS=0 بحيث يعيد ErrorCodeToString(...) قيم E<number> مستقرة دون تضمين أسماء أخطاء رمزية.BURNERNET_HARDEN_IMPORTS=1 حل التبعيات في وقت التشغيل ديناميكيًا بدلاً من الإعلان عنها مباشرة في جدول الاستيراد، باستخدام مسار الخاص بـ BurnerNet على Windows.لا يدعي BurnerNet مجرد وضع مشدد خفيف الاستيراد؛ بل يأتي أيضًا مع ملاحظات تدقيق لتكوينات محددة تم اختبارها. في تدقيق Windows x64 Release مع BURNERNET_HARDEN_IMPORTS=ON:
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() متاحًا كاسم مستعار للتوافق القياسي.
لحركة المرور الحيوية أمنيًا، استخدم ملف التعريف المشدد. يرفض 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) // explicit fallback, after DoH
.WithResponseVerifier(VerifySignedResponse)
.Build();
يتطلب المشدد التحقق من النظير واسم المضيف، عزل المكدس، توجيه DoH أولاً، مدقق استجابة للتطبيق، وتركيب ثقة مملوك للتطبيق. يتم رفض بيانات الاعتماد الثابتة WithMtls(...)؛ استخدم WithMtlsProvider(...).
استخدم هذا عندما يستخدم مشروعك النهائي بالفعل CMake وترغب في أنظف مسار مُدار بالتبعيات.
الوثائق:
استخدم هذا عندما تكون بيئتك MSBuild أولاً أو ترغب في تجميع BurnerNet مباشرة داخل ملف .vcxproj الخاص بك.
الوثائق:
استخدم هذا عندما تريد تقليل التعرض الواضح لتبعيات وقت التشغيل وتكون مستعدًا لإدارة تحميل التمهيد بشكل صريح.
تمكين:
BURNERNET_HARDEN_IMPORTS=1KernelResolver الخاص بـ BurnerNet على Windows لدعم بصمة وقت تشغيل أخف استيرادًاالمرجع:
دعم Linux: يوفر BurnerNet تكافؤًا شرعيًا كاملاً (مسح الذاكرة وعزل المكدس) على Linux. راجع docs/LINUX_USAGE.md لتعليمات البناء.
الإعدادات الافتراضية الموصى بها:
أمثلة:
الوثائق:
libcurl 7.87.0+ ورؤوس OpenSSLBurnerNet هو طبقة تشديد مصممة لرفع تكلفة الهجوم إلى المستوى المهني. نعمل على مبدأ أن التخفي يجب أن يكون معماريًا، وليس سطحيًا فقط.
هل يمكن لمهاجم تجاوز BurnerNet إذا كان لديه الكود المصدري؟
معرفة الكود المصدري لـ BurnerNet ليست بحد ذاتها مفتاحًا رئيسيًا لكل تطبيق نهائي. يتبع BurnerNet مبدأ Kerckhoffs: تم تصميم المكتبة بحيث تظل مراسي الثقة الخاصة بتطبيقك (أسرار HMAC، المفاتيح المثبتة، منطق واجهة المستخدم، خطافات السياسة) مملوكة للتطبيق. معرفة طبقة النقل لا تؤدي تلقائيًا إلى تجاوز عالمي لتدفق الأمان الخاص بك.
| الجانب | مكدس HTTP النموذجي | BurnerNet |
|---|
| عمر العميل | غالبًا ما يكون مشتركًا وطويل العمر | مصمم لعملاء يمكن التخلص منهم واستخدام نطاق الانفجار |
| القيم الحساسة | غالبًا ما تبقى الأسرار في التهيئة أو الذاكرة لفترة أطول من اللازم | عمليات استدعاء المزود تجلبها قرب الاستخدام |
| DNS والثقة | عادة ما يرث المُحَلِّل المحلي والإعدادات الافتراضية للمضيف | يدعم ضوابط ثقة أكثر صرامة بما في ذلك الاحتياطي DoH والمفاتيح المثبتة |
| التحقق | غالبًا ما يتم إضافة فحوصات السلامة الخاصة بالتطبيق لاحقًا | مبني للعمل مع خطافات التحقق قبل الرحلة والنقل والاستجابة |
KernelResolver.WithStackIsolation(true)، تنفذ المكتبة دورة حياة النقل على خيط عامل منفصل. يمكن لهذا قطع مكدس استدعاءات المتصل فيزيائيًا وتقليل التتبع المباشر من الأعلى إلى الأسفل لمنطق التطبيق.