
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:
| 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 |
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_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.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;
}