
Cliente HTTP antirforense de confianza cero. Elimina secretos. Corta rastros. RCP en un tanque sigiloso. 👻
Cliente HTTP antirforense y de confianza cero. Borra secretos. Corta rastros. RCP en un tanque sigiloso. 👻
BurnerNet es un cliente HTTP antirforense en C++20. Proporciona una API fluida, similar a CPR, para aplicaciones que no pueden confiar plenamente en la máquina local: borra físicamente los secretos de la RAM y corta los rastros de ejecución para ocultar tu lógica de escáneres y depuradores.
Ofrece valores predeterminados familiares compatibles con el host para HTTP ordinario y un perfil Hardened explícito para entornos hostiles. Ambos caminos favorecen clientes de corta duración; la confianza avanzada sigue siendo propiedad de la aplicación.
¿Buscas proteger las cargas descargadas por BurnerNet? Prueba RipStop Codec para desencriptar activos en memoria.
Principios • Primeros Pasos • Rutas de Integración • Realidad de Seguridad
| Área | BurnerNet |
|---|---|
| Lenguaje | C++20 |
| Plataforma | Windows x64/x86 (Primera Clase), Linux (Verificado) |
| Transporte | HTTP(S) con respaldo de libcurl |
| Higiene de memoria | Utilidades de borrado seguro y asignadores de borrado |
| Higiene forense | Limpieza automática de heap/stack en todo el estado de transporte gestionado por BurnerNet |
| Análisis dinámico | El aislamiento de la pila de llamadas puede cortar el enlace entre consumidor y transporte |
| Endurecimiento de compilación | Eliminación opcional de cadenas de diagnóstico, literales ofuscados, metadatos reducidos del runtime de C++ en compilaciones endurecidas |
| Endurecimiento en tiempo de ejecución | Soporte DoH, secretos basados en proveedores y controles de confianza más estrictos |
| Integración | CMake o volcado de fuente de Visual Studio |
Usa BurnerNet cuando un cliente HTTP normal sea demasiado confiado para tu entorno.
Ayuda cuando quieres:
BurnerNet se adapta a proyectos como:
libcurl y con respaldo OpenSSL. Los buffers de transporte sensibles se borran cuando salen de la vida gestionada por BurnerNet. Esta higiene se verifica tanto en Windows como en Linux dentro de las configuraciones auditadas descritas en la documentación.WithResponseVerifier(...) en lugar de estar codificada en una biblioteca compartida.BURNERNET_DIAGNOSTIC_STRINGS=0 para que ErrorCodeToString(...) devuelva valores estables E<número> sin incrustar nombres de error simbólicos.BurnerNet no solo afirma tener un modo endurecido ligero en importaciones; también incluye notas de auditoría para configuraciones probadas específicas. En una auditoría de Windows x64 Release con BURNERNET_HARDEN_IMPORTS=ON:
libcurl.dll, ws2_32.dll, bcrypt.dll o crypt32.dll en el binario auditado.Detalles y metodología de auditoría:
Ruta más rápida:
<burner/net.h>.Ejemplo mínimo:
#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 usa valores predeterminados Estándar: CA del sistema, DNS y proxy con verificación de par TLS y nombre de host habilitada. WithCasualDefaults() sigue disponible como un alias de compatibilidad Estándar.
Para tráfico crítico de seguridad, usa el perfil Hardened. Build() rechaza controles faltantes antes de cualquier solicitud:
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();
Hardened requiere verificación de par y nombre de host, aislamiento de pila, enrutamiento primero DoH, un verificador de respuestas de la aplicación y un montaje de confianza propiedad de la aplicación. Las credenciales persistentes WithMtls(...) son rechazadas; usa WithMtlsProvider(...).
Úsalo cuando tu proyecto descendente ya usa CMake y quieres la ruta más limpia gestionada por dependencias.
Documentación:
Úsalo cuando tu entorno sea principalmente MSBuild o quieras que BurnerNet se compile directamente dentro de tu .vcxproj.
Documentación:
Úsalo cuando quieras reducir la exposición obvia de dependencias en tiempo de ejecución y estés preparado para gestionar la carga de arranque explícitamente.
Habilitar:
BURNERNET_HARDEN_IMPORTS=1KernelResolver de BurnerNet en Windows para soportar una huella de tiempo de ejecución más ligera en importaciones.Referencia:
Soporte Linux: BurnerNet proporciona paridad forense completa (Borrado de Memoria y Aislamiento de Pila) en Linux. Consulta docs/LINUX_USAGE.md para instrucciones de compilación.
Valores predeterminados recomendados:
Ejemplos:
Documentación:
libcurl 7.87.0+ y encabezados OpenSSLBurnerNet es una capa de endurecimiento diseñada para elevar el costo del ataque a un nivel profesional. Operamos bajo el principio de que el sigilo debe ser arquitectónico, no solo superficial.
¿Puede un atacante eludir BurnerNet si tiene el código fuente?
El conocimiento del código fuente de BurnerNet no es, por sí mismo, una llave maestra para todas las aplicaciones descendentes. BurnerNet sigue el Principio de Kerckhoffs: la biblioteca está diseñada para que tus anclajes de confianza específicos de la aplicación (secretos HMAC, claves fijadas, lógica de UI, hooks de política) sigan siendo propiedad de la aplicación. Conocer la capa de transporte no produce automáticamente una elusión universal de tu flujo de seguridad específico.
| Aspecto | Pila HTTP típica | BurnerNet |
|---|
| Vida del cliente | A menudo compartida y de larga duración | Diseñado para clientes desechables y uso de ráfaga |
| Valores sensibles | Los secretos suelen permanecer en configuración o memoria más tiempo del necesario | Las devoluciones de llamada del proveedor los obtienen cerca del uso |
| DNS y confianza | Generalmente hereda el resolvedor local y los valores predeterminados del host | Soporta controles de confianza más estrictos, incluida la reserva DoH y claves fijadas |
| Verificación | Las comprobaciones de integridad específicas de la aplicación a menudo se añaden después | Construido para funcionar con hooks de verificación previa, de transporte y de respuesta |
BURNERNET_HARDEN_IMPORTS=1 puede resolver dependencias de tiempo de ejecución dinámicamente en lugar de anunciarlas directamente en la tabla de importación, utilizando la ruta KernelResolver de BurnerNet en Windows..WithStackIsolation(true), la biblioteca ejecuta el ciclo de vida del transporte en un hilo de trabajo separado. Esto puede cortar físicamente la pila de llamadas del llamante y reducir el rastreo directo de arriba a abajo de la lógica de la aplicación.