
burner-net v1.3.0
Cliente HTTP antirforense de confianza cero. Elimina secretos. Corta rastros. RCP en un tanque sigiloso. 👻
BurnerNet
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
De un Vistazo
| Á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 |
Por Qué Usarlo
Usa BurnerNet cuando un cliente HTTP normal sea demasiado confiado para tu entorno.
Ayuda cuando quieres:
- mantener clientes de solicitud de corta duración en lugar de compartir un transporte global
- reducir la dependencia del DNS local y otros valores predeterminados del host
- obtener tokens, certificados y secretos de verificación solo cuando sea necesario
- mantener la lógica de verificación de respuestas en tu propio código de aplicación
- reducir cadenas de texto plano evidentes y metadatos en compilaciones endurecidas
Para Quién Es
BurnerNet se adapta a proyectos como:
- aplicaciones de escritorio Windows con autenticación de alto valor, licencias o solicitudes de actualización
- código incrustado o inyectado que se ejecuta en un host en el que no confías plenamente
- herramientas que desean controles de transporte más estrictos sin renunciar a una API C++ fluida
Pila Estándar vs BurnerNet
| 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 |
Resultados Defensivos
- Arquitectura de Memoria Cero-Fantasma: BurnerNet utiliza un Prefijo-Tamaño Scrubber personalizado para enganchar las rutas internas de asignación de memoria de los flujos
libcurly 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. - Barrido de Marcos de Pila: Después de cada solicitud, la biblioteca limpia proactivamente su propia pila de hilos (limpieza de marca de agua alta). Esto está destinado a destruir fragmentos de transporte efímeros antes de que el control regrese a tu aplicación.
- Heap de Objetivo Móvil: La combinación de transportes desechables y encabezados de metadatos alineados crea una alta dispersión del espacio de direcciones, haciendo que la memoria del proceso sea impredecible y resistente al mapeo estable de punteros.
- Estado de solicitud de corta duración: BurnerNet está diseñado en torno a clientes desechables en lugar de transportes singleton a nivel de proceso.
- Menos confianza en el host: El soporte DoH, el soporte de clave fijada y la auditoría de transporte ayudan a reducir la dependencia de valores predeterminados locales comprometidos.
- Menor exposición de texto plano: Las devoluciones de llamada del proveedor y las utilidades de borrado seguro reducen la vida útil de certificados, claves, tokens y otros buffers sensibles.
- Verificación propiedad de la aplicación: La verificación de respuestas permanece en tu código a través de
WithResponseVerifier(...)en lugar de estar codificada en una biblioteca compartida. - Huella estática más difícil: las compilaciones endurecidas pueden establecer
BURNERNET_DIAGNOSTIC_STRINGS=0para queErrorCodeToString(...)devuelva valores establesE<número>sin incrustar nombres de error simbólicos. - Opciones de implementación ligeras en importaciones:
BURNERNET_HARDEN_IMPORTS=1puede resolver dependencias de tiempo de ejecución dinámicamente en lugar de anunciarlas directamente en la tabla de importación, utilizando la rutaKernelResolverde BurnerNet en Windows. - Aislamiento de Pila de Llamadas (Transferencia Asíncrona): Cuando se habilita mediante
.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.
Sigilo Verificado
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:
- Apagón IAT: No se observaron entradas para
libcurl.dll,ws2_32.dll,bcrypt.dllocrypt32.dllen el binario auditado. - Oscurecimiento de memoria: Los escaneos forenses (Cheat Engine "All Strings") no lograron descubrir URLs canarias sensibles ni encabezados en el heap o stack del proceso.
- Ceguera del Depurador: Las pruebas integradas verifican que la biblioteca desencadena un "Cambio de Identidad". El Tomador de Decisiones (tu app) y el Transportador (BurnerNet) operan en IDs de Hilo distintos, reduciendo el rastreo de arriba a abajo durante sesiones de depuración en vivo.
- Ruido a Señal: La biblioteca apunta a la higiene forense dentro de su autoridad de borrado, reconociendo "sombras" restantes a nivel de sistema en el SO y el entorno de ejecución.
Detalles y metodología de auditoría:
Primeros Pasos
Ruta más rápida:
- Añade BurnerNet a tu compilación con CMake o volcado de fuente de Visual Studio.
- Incluye
<burner/net.h>. - Crea un cliente de pila, envía una solicitud, luego déjalo salir del ámbito.
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;
}