アップデヌト䞀芧に戻る
New releaseAug 2, 2026

burner-net v1.3.0

れロトラストのアンチフォレンゞックHTTPクラむアント。機密情報を消去。痕跡を断぀。ステルスタンクの䞭のCPR。👻

共有

BurnerNet

れロトラスト、アンチフォレンゞックHTTPクラむアント。秘密を消去し、痕跡を断぀。ステルスタンクのCPR。👻

BurnerNetはC++20のアンチフォレンゞックHTTPクラむアントです。ロヌカルマシンを完党には信頌できないアプリケヌション向けに、流暢なCPRラむクなAPIを提䟛したす。RAMから秘密を物理的に消去し、実行痕跡を断ち切るこずで、スキャナやデバッガからロゞックを隠したす。

通垞のHTTP向けには慣れたホスト互換のデフォルトを、敵察的な環境向けには明瀺的なHardenedプロファむルを提䟛したす。どちらのパスも短呜なクラむアントを掚奚し、高床な信頌はアプリケヌションが所有したす。

BurnerNetでダりンロヌドしたペむロヌドを保護したい堎合は、RipStop Codec をチェックしおください。むンメモリアセットのスクランブル解陀に圹立ちたす。

Principles • Getting Started • Integration Paths • Security Reality

抂芁

領域BurnerNet
蚀語C++20
プラットフォヌムWindows x64/x86第䞀玚、Linux確認枈み
トランスポヌトlibcurlベヌスのHTTP(S)
メモリ衛生安党な消去ナヌティリティず消去アロケヌタ
フォレンゞック衛生BurnerNet管理のトランスポヌト状態党䜓での自動ヒヌプ/スタックスクラビング
動的解析コヌルスタック分離により、コンシュヌマずトランスポヌトの間のリンクを断぀こずができたす
ビルド匷化蚺断文字列削陀オプション、難読化リテラル、匷化ビルドでのC++ランタむムメタデヌタ削枛
ランタむム匷化DoHサポヌト、プロバむダベヌスのシヌクレット、より厳栌な信頌制埡
統合CMakeたたはVisual Studio゜ヌスドロップ

なぜ䜿うのか

通垞のHTTPクラむアントが環境に察しお信頌しすぎおいる堎合にBurnerNetを䜿甚したす。

次の堎合に圹立ちたす

  • リク゚ストクラむアントを共有のグロヌバルトランスポヌトではなく短呜にしたい
  • ロヌカルDNSやその他のホストデフォルトぞの䟝存を枛らしたい
  • トヌクン、蚌明曞、怜蚌シヌクレットを必芁なずきだけ取埗したい
  • レスポンス怜蚌ロゞックをアプリケヌションコヌド内に保持したい
  • 匷化ビルドで平文の文字列やメタデヌタを枛らしたい

誰のためのものか

BurnerNetは次のようなプロゞェクトに適しおいたす

  • 高䟡倀の認蚌、ラむセンス、たたはアップデヌトリク゚ストを行うWindowsデスクトップアプリ
  • 完党には信頌できないホストで動䜜する組み蟌みコヌドたたはむンゞェクションコヌド
  • 流暢なC++ APIを諊めずに、より厳栌なトランスポヌトチェックを必芁ずするツヌル

暙準スタック vs BurnerNet

項目兞型的なHTTPスタックBurnerNet
クラむアントの寿呜共有され、長寿呜であるこずが倚い䜿い捚おクラむアントずバヌストスコヌプでの䜿甚向けに蚭蚈
機密倀秘密が蚭定やメモリに必芁以䞊に留たるこずが倚いプロバむダコヌルバックが䜿甚盎前に秘密を取埗
DNSず信頌通垞、ロヌカルリゟルバずホストデフォルトを継承DoHフォヌルバックやピン留めキヌを含む、より厳栌な信頌制埡をサポヌト
怜蚌アプリ固有の敎合性チェックは埌付けされるこずが倚いプリフラむト、トランスポヌト、レスポンス怜蚌フックず連携するよう蚭蚈

防埡的成果

  • Zero-Ghost Memory Architectureれロゎヌストメモリアヌキテクチャ: BurnerNetはカスタムのPrefix-Size Scrubberを䜿甚しお、libcurlおよびOpenSSLバック゚ンドのフロヌの内郚メモリ割り圓おパスをフックしたす。機密性の高いトランスポヌトバッファは、BurnerNet管理のラむフタむムを離れる際に消去されたす。この衛生状態は、ドキュメントに蚘茉された監査枈み構成においお、WindowsずLinuxの䞡方で怜蚌されおいたす。
  • Stack-Frame Swipingスタックフレヌムスワむピング: リク゚ストごずに、ラむブラリは自身のスレッドスタックを積極的にスクラブしたすハむりォヌタヌマヌクスクラビング。これにより、アプリケヌションに制埡が戻る前に、䞀時的なトランスポヌト断片が砎壊されるこずを意図しおいたす。
  • Moving-Target Heap移動暙的ヒヌプ: 䜿い捚おトランスポヌトずアラむンメントされたメタデヌタヘッダの組み合わせにより、高いアドレス空間分散が生たれ、プロセスメモリが予枬䞍可胜になり、安定したポむンタマッピングに察しお耐性が生たれたす。
  • 短呜なリク゚スト状態: BurnerNetはプロセス党䜓のシングルトントランスポヌトではなく、䜿い捚おクラむアントを䞭心に蚭蚈されおいたす。
  • ホストぞの信頌を枛らす: DoHサポヌト、ピン留めキヌサポヌト、トランスポヌト監査により、䟵害されたロヌカルデフォルトぞの䟝存を枛らしたす。
  • 平文露出の軜枛: プロバむダコヌルバックず安党な消去ナヌティリティにより、蚌明曞、キヌ、トヌクン、その他の機密バッファの寿呜を短瞮したす。
  • アプリ所有の怜蚌: レスポンス怜蚌は、共有ラむブラリにハヌドコヌドされる代わりに、WithResponseVerifier(...) を介しおコヌド内に残りたす。
  • 静的フィンガヌプリントの困難化: 匷化ビルドでは BURNERNET_DIAGNOSTIC_STRINGS=0 を蚭定できるため、ErrorCodeToString(...) はシンボリックな゚ラヌ名を埋め蟌たずに安定した E<番号> 倀を返したす。
  • むンポヌト軜量なデプロむオプション: BURNERNET_HARDEN_IMPORTS=1 により、Windows䞊のBurnerNetの KernelResolver パスを䜿甚しお、むンポヌトテヌブルに盎接公開する代わりに、ランタむム䟝存関係を動的に解決できたす。
  • Call Stack Isolationコヌルスタック分離Async Handoff: .WithStackIsolation(true) で有効にするず、ラむブラリはトランスポヌトラむフサむクルをデタッチされたワヌカヌスレッドで実行したす。これにより、呌び出し元のコヌルスタックを物理的に切断し、アプリケヌションロゞックの盎接的なトップダりントレヌスを枛らすこずができたす。

怜蚌枈みステルス

BurnerNetは、むンポヌト軜量な匷化モヌドを䞻匵するだけでなく、特定のテスト構成に関する監査ノヌトも同梱しおいたす。Windows x64 Releaseで BURNERNET_HARDEN_IMPORTS=ON の監査においお

  • IAT BlackoutIATブラックアりト: 監査察象バむナリでは、libcurl.dll、ws2_32.dll、bcrypt.dll、crypt32.dll の゚ントリは芳枬されたせんでした。
  • Memory Dark-outメモリダヌクアりト: フォレンゞックスキャンCheat Engineの「すべおの文字列」では、機密性の高いカナリアURLやヘッダがプロセスヒヌプやスタックで発芋されたせんでした。
  • Debugger Blindnessデバッガブラむンドネス: 統合テストでは、ラむブラリが「アむデンティティシフト」をトリガヌするこずを確認しおいたす。意思決定者アプリずトランスポヌタヌBurnerNetは異なるスレッドIDで動䜜し、ラむブデバッグセッション䞭のトップダりントレヌスを䜎枛したす。
  • Noise-to-Signalノむズ察シグナル: ラむブラリは、その消去暩限内でのフォレンゞック衛生を目指しおいたすが、OSやランタむム環境に残るシステムレベルの「圱」を認めおいたす。

監査の詳现ず方法論

はじめに

最速のパス

  • CMakeたたはVisual Studio゜ヌスドロップでBurnerNetをビルドに远加したす。
  • <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 はStandardデフォルトを䜿甚したすシステムCA、DNS、プロキシ、TLSピアおよびホスト名怜蚌が有効です。WithCasualDefaults() はStandard互換性゚むリアスずしお匕き続き利甚可胜です。

セキュリティ重芖のトラフィックには、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) // explicit fallback, after DoH
    .WithResponseVerifier(VerifySignedResponse)
    .Build();

Hardenedでは、ピアおよびホスト名怜蚌、スタック分離、DoHファヌストルヌティング、アプリレスポンス怜蚌、アプリ所有のトラストマりントが必芁です。氞続的な WithMtls(...) 資栌情報は拒吊されたす。WithMtlsProvider(...) を䜿甚しおください。

統合パス

1. 暙準CMake

䞋流のプロゞェクトが既にCMakeを䜿甚しおいお、最もクリヌンな䟝存関係管理パスを垌望する堎合に䜿甚したす。

ドキュメント

2. Visual Studio゜ヌスドロップ

環境がMSBuildファヌストであるか、BurnerNetを .vcxproj 内で盎接コンパむルしたい堎合に䜿甚したす。

ドキュメント

3. 匷化ランタむムむンポヌト

ランタむム䟝存関係の露出を枛らし、ブヌトストラップロヌディングを明瀺的に管理する準備ができおいる堎合に䜿甚したす。

有効化

  • BURNERNET_HARDEN_IMPORTS=1
  • Windows䞊のBurnerNetの KernelResolver パスを䜿甚しお、よりむンポヌト軜量なランタむムフットプリントをサポヌト

参考

Linuxサポヌト BurnerNetはLinux䞊で完党なフォレンゞックパリティメモリ消去ずスタック分離を提䟛したす。ビルド手順に぀いおは docs/LINUX_USAGE.md を参照しおください。

䜿甚䞊の泚意

掚奚されるデフォルト

  • クラむアントを䜿い捚おトランスポヌトずしお扱う
  • 高信頌トラフィックず䜎信頌トラフィックを異なるクラむアントに分離する
  • mTLS玠材、ベアラトヌクン、レスポンス怜蚌シヌクレットにはプロバむダコヌルバックを䜿甚する
  • ビゞネスルヌルずトラストアンカヌはアプリケヌションに保持する

䟋ずドキュメント

䟋

ドキュメント

芁件

  • C++20
  • Windows x64/x86 たたは LinuxGCC 13+ / Clang 15+
  • libcurl 7.87.0+ および OpenSSL ヘッダ
  • Linuxガむド docs/LINUX_USAGE.md を参照

セキュリティの珟実ずホワむトボックス防埡

BurnerNetは、攻撃コストをプロフェッショナルレベルに匕き䞊げるために蚭蚈された匷化レむダヌです。私たちは、ステルスは衚面的なものではなく、アヌキテクチャに基づくべきであるずいう原則に基づいおいたす。

攻撃者が゜ヌスコヌドを持っおいれば、BurnerNetを迂回できるのでしょうか BurnerNetの゜ヌスコヌドを知っおいるこずは、それだけで党おのダりンストリヌムアプリケヌションぞのマスタヌキヌにはなりたせん。BurnerNetはKerckhoffsの原理に埓っおいたす。ラむブラリは、アプリ固有のトラストアンカヌHMACシヌクレット、ピン留めキヌ、UIロゞック、ポリシヌフックがアプリケヌションによっお所有されたたたになるように蚭蚈されおいたす。トランスポヌト局を知っおいおも、特定のセキュリティフロヌを自動的に普遍的に迂回できるわけではありたせん。

  • ステルスは遅延ずしお 匷化により、攻撃者は暙準的な䟿利なツヌルから離れ、面倒な呜什レベルの分析ぞず远いやられたす。
  • デヌタをルヌトずしお Functional Dependency関数䟝存性原則6を䜿甚しお、サヌバヌ提䟛のデヌタなしではアプリが文字通り壊れるようにしたす。
  • ゎヌストの利点 攻撃者がリク゚ストロゞックを芋぀ける頃には、スタック分離ずメモリ消去が、圌らが必芁ずするフォレンゞック蚌拠をすでに砎壊しおいたす。

カテゎリ