<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: rvbbit</title>
    <description>The latest articles on DEV Community by rvbbit (@buter_chkalova).</description>
    <link>https://dev.to/buter_chkalova</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4069992%2Fbc4688c1-ca96-4712-8cb4-465661535072.jpg</url>
      <title>DEV Community: rvbbit</title>
      <link>https://dev.to/buter_chkalova</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/buter_chkalova"/>
    <language>en</language>
    <item>
      <title>Rvbbit Ghost: Can VPNs, Tor, and Disposable VMs Really Protect Your Identity?</title>
      <dc:creator>rvbbit</dc:creator>
      <pubDate>Thu, 15 Oct 2026 21:09:15 +0000</pubDate>
      <link>https://dev.to/buter_chkalova/rvbbit-ghost-can-vpns-tor-and-disposable-vms-really-protect-your-identity-5a90</link>
      <guid>https://dev.to/buter_chkalova/rvbbit-ghost-can-vpns-tor-and-disposable-vms-really-protect-your-identity-5a90</guid>
      <description>&lt;p&gt;&lt;strong&gt;What if your IP address is hidden, your traffic is routed through multiple privacy layers, and your virtual machine disappears after every session — but you can still be identified?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This question is more complicated than it appears.&lt;/p&gt;

&lt;p&gt;In cybersecurity, we spend considerable time studying how attackers compromise systems, establish persistence, manipulate network traffic, and extract sensitive information. Yet another question deserves equal attention:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How much information can an observer collect about a researcher operating inside a supposedly isolated environment?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A VPN can change the network address visible to an external service. Tor can distribute trust across multiple relays. Virtual machines can establish useful isolation boundaries. Disposable environments can reduce persistent application data.&lt;/p&gt;

&lt;p&gt;But none of these mechanisms automatically makes an operator anonymous.&lt;/p&gt;

&lt;p&gt;A compromised host can observe its guests. Network traffic may reveal timing patterns. Browser activity can disclose identity. A single authenticated account can defeat several layers of network privacy.&lt;/p&gt;

&lt;p&gt;I wanted to examine these problems through practical security engineering rather than theoretical promises.&lt;/p&gt;

&lt;p&gt;That research led me to develop &lt;strong&gt;Rvbbit Ghost&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/buter-chkalova/rvbbit-ghost" rel="noopener noreferrer"&gt;https://github.com/buter-chkalova/rvbbit-ghost&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Rvbbit Ghost is an experimental Windows-based orchestration system for disposable Whonix research sessions. It combines VirtualBox isolation, signed-image verification, an OpenVPN-before-Tor architecture, session lifecycle management, and security validation.&lt;/p&gt;

&lt;p&gt;It is not an invisibility tool, an exploitation framework, or a guarantee of anonymity.&lt;/p&gt;

&lt;p&gt;Its purpose is to explore a narrower and more useful question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can we make sensitive, authorized research sessions more isolated, more repeatable, and less likely to expose persistent data — without pretending that the underlying operating system has become trustworthy by magic?&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The Real Problem: Anonymity Is Not a Single Security Property
&lt;/h2&gt;

&lt;p&gt;When people discuss online anonymity, they frequently reduce the problem to one measurement:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What IP address does the destination see?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That is only one part of the attack surface.&lt;/p&gt;

&lt;p&gt;Consider a research environment in which the public IP address has been successfully concealed.&lt;/p&gt;

&lt;p&gt;An observer might still identify or correlate an operator through:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Browser fingerprinting and application characteristics.&lt;/li&gt;
&lt;li&gt;Authenticated accounts and reused identifiers.&lt;/li&gt;
&lt;li&gt;Traffic timing, duration, and volume.&lt;/li&gt;
&lt;li&gt;Endpoint telemetry and host-level execution records.&lt;/li&gt;
&lt;li&gt;Files downloaded from a protected environment and opened elsewhere.&lt;/li&gt;
&lt;li&gt;Metadata exposed through documents or communications.&lt;/li&gt;
&lt;li&gt;Compromised operating systems, hypervisors, or browser processes.&lt;/li&gt;
&lt;li&gt;Behavioral patterns connecting multiple supposedly independent sessions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Anonymity, privacy, and isolation overlap, but they are not interchangeable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Network privacy&lt;/strong&gt; concerns what network observers can learn.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Identity separation&lt;/strong&gt; concerns whether different activities can be connected to the same person.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Execution isolation&lt;/strong&gt; concerns whether activity inside one environment can affect another.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data disposability&lt;/strong&gt; concerns what application state persists after the environment has been destroyed.&lt;/p&gt;

&lt;p&gt;A system can improve one of these properties while providing relatively little protection for the others.&lt;/p&gt;

&lt;p&gt;This distinction became the foundation of Rvbbit Ghost.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5g42jeycm1z0mnjr6v65.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5g42jeycm1z0mnjr6v65.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 1. Rvbbit Ghost architecture and security boundaries.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  2. Architecture: Windows → Whonix → OpenVPN → Tor
&lt;/h2&gt;

&lt;p&gt;The project uses Windows 10/11 as the host operating system, VirtualBox as the virtualization layer, and Whonix as the guest environment.&lt;/p&gt;

&lt;p&gt;The intended traffic path is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Whonix-Workstation
        |
        | Internal VirtualBox network
        v
Whonix-Gateway
        |
        | OpenVPN tunnel
        v
     VPN provider
        |
        | Tor connection
        v
     Tor network
        |
        v
     Internet
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The ordering matters.&lt;/p&gt;

&lt;p&gt;Whonix-Workstation does not receive a direct VirtualBox NAT adapter. Its only network interface connects to a session-specific internal network shared with Whonix-Gateway.&lt;/p&gt;

&lt;p&gt;The Gateway handles external connectivity and is configured to establish OpenVPN before Tor.&lt;/p&gt;

&lt;p&gt;This means Workstation is not intended to have an independent route to the Internet.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why separate Workstation and Gateway?
&lt;/h3&gt;

&lt;p&gt;A single operating system handling browsing, applications, network routing, and privacy enforcement combines several responsibilities within one environment.&lt;/p&gt;

&lt;p&gt;Separating these components provides a clearer security boundary.&lt;/p&gt;

&lt;p&gt;Whonix-Workstation contains the browser session.&lt;/p&gt;

&lt;p&gt;Whonix-Gateway handles the network routing.&lt;/p&gt;

&lt;p&gt;VirtualBox controls the guest networking configuration.&lt;/p&gt;

&lt;p&gt;The Windows launcher manages installation, verification, session creation, readiness checks, and cleanup.&lt;/p&gt;

&lt;p&gt;This does not mean the Gateway is invulnerable. A sufficiently capable attacker compromising the Gateway or the underlying host may undermine the intended routing restrictions.&lt;/p&gt;

&lt;p&gt;But separation creates a structure in which specific assumptions can be identified and tested.&lt;/p&gt;

&lt;p&gt;That is a meaningful engineering advantage.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Why Put a VPN Before Tor?
&lt;/h2&gt;

&lt;p&gt;This is one of the more interesting architectural decisions.&lt;/p&gt;

&lt;p&gt;Tor already provides network anonymity properties through its relay architecture. Adding a VPN does not automatically make Tor more anonymous.&lt;/p&gt;

&lt;p&gt;Instead, it changes the distribution of information among observers.&lt;/p&gt;

&lt;p&gt;In the VPN-before-Tor configuration:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The ISP can observe:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The subscriber's Internet connection.&lt;/li&gt;
&lt;li&gt;The VPN endpoint.&lt;/li&gt;
&lt;li&gt;Connection timing, duration, and traffic volume.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The VPN provider can observe:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The subscriber's source IP address.&lt;/li&gt;
&lt;li&gt;Connections from its infrastructure toward the Tor network.&lt;/li&gt;
&lt;li&gt;Traffic timing and volume.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Tor entry relay typically observes:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The VPN exit address rather than the subscriber's home address.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The destination website observes:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Tor exit address.&lt;/li&gt;
&lt;li&gt;Browser characteristics and data voluntarily submitted to the service.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In an uncompromised configuration, the destination should not directly learn the operator's home IP address through ordinary network routing.&lt;/p&gt;

&lt;p&gt;However, an important limitation remains:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The VPN provider becomes another party capable of observing and potentially correlating network metadata.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If an adversary can observe multiple points across the path, timing analysis may remain possible.&lt;/p&gt;

&lt;p&gt;This is why I do not describe VPN-before-Tor as a universal improvement over Tor alone.&lt;/p&gt;

&lt;p&gt;Its value depends on the threat model.&lt;/p&gt;

&lt;p&gt;For one scenario, concealing direct public Tor connections from the ISP may be useful. For another, adding a VPN provider may introduce an unnecessary dependency.&lt;/p&gt;

&lt;p&gt;The important question is not how many layers exist.&lt;/p&gt;

&lt;p&gt;It is &lt;strong&gt;which observer each layer is intended to constrain&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Fail-Closed Networking: A Security Boundary Must Survive Failure
&lt;/h2&gt;

&lt;p&gt;Security controls are relatively easy to describe when every component works correctly.&lt;/p&gt;

&lt;p&gt;The more interesting question is what happens when a dependency fails.&lt;/p&gt;

&lt;p&gt;Suppose a VPN connection unexpectedly terminates.&lt;/p&gt;

&lt;p&gt;Does Tor continue through the host's ordinary network route?&lt;/p&gt;

&lt;p&gt;Does the Workstation retain connectivity?&lt;/p&gt;

&lt;p&gt;Does the user receive a warning, or does the environment silently continue operating under different assumptions?&lt;/p&gt;

&lt;p&gt;Rvbbit Ghost requires a fail-closed configuration in Whonix-Gateway.&lt;/p&gt;

&lt;p&gt;The operator must configure the appropriate tunnel firewall and verify that connectivity fails when OpenVPN is stopped.&lt;/p&gt;

&lt;p&gt;The intended behavior is straightforward:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VPN active
    |
    v
Tor permitted
    |
    v
Workstation connectivity permitted


VPN unavailable
    |
    v
Tor egress blocked
    |
    v
Workstation Internet connectivity fails
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This protects against a category of configuration failures in which traffic could otherwise follow an unintended route.&lt;/p&gt;

&lt;p&gt;There is an important implementation detail.&lt;/p&gt;

&lt;p&gt;The Windows launcher does not independently inspect and cryptographically prove the state of the VPN tunnel inside the guest.&lt;/p&gt;

&lt;p&gt;Instead, it requires a fresh operator-confirmed readiness check before starting Workstation.&lt;/p&gt;

&lt;p&gt;This is &lt;strong&gt;operator attestation, not automatic verification of the tunnel by the host&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That limitation is documented deliberately.&lt;/p&gt;

&lt;p&gt;Adding a host-to-guest monitoring mechanism could provide additional automation, but it would also create another integration channel between the Windows host and the isolated guest.&lt;/p&gt;

&lt;p&gt;In security engineering, improving observability can sometimes weaken isolation.&lt;/p&gt;

&lt;p&gt;That trade-off deserves explicit consideration.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Reducing the Host–Guest Attack Surface
&lt;/h2&gt;

&lt;p&gt;Virtualization is frequently treated as if creating a VM automatically produces a strong security boundary.&lt;/p&gt;

&lt;p&gt;In reality, virtualization environments provide numerous integration mechanisms designed for convenience.&lt;/p&gt;

&lt;p&gt;Some are useful in everyday computing but undesirable in sensitive research environments.&lt;/p&gt;

&lt;p&gt;Rvbbit Ghost disables several VirtualBox integration features, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Shared clipboard and clipboard file transfer.&lt;/li&gt;
&lt;li&gt;Drag and drop.&lt;/li&gt;
&lt;li&gt;Shared folders.&lt;/li&gt;
&lt;li&gt;USB integration.&lt;/li&gt;
&lt;li&gt;Audio integration.&lt;/li&gt;
&lt;li&gt;VirtualBox remote display.&lt;/li&gt;
&lt;li&gt;VirtualBox recording.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Because every integration point can become a channel through which information crosses the host–guest boundary.&lt;/p&gt;

&lt;p&gt;A shared clipboard can accidentally transfer sensitive material between environments.&lt;/p&gt;

&lt;p&gt;A shared folder can expose host files to guest software.&lt;/p&gt;

&lt;p&gt;External device access can increase the complexity of the isolation boundary.&lt;/p&gt;

&lt;p&gt;Disabling these features does not eliminate hypervisor vulnerabilities or prevent a compromised Windows administrator from observing the guest.&lt;/p&gt;

&lt;p&gt;It does reduce unnecessary interaction between the two environments.&lt;/p&gt;

&lt;p&gt;The principle is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do not create a cross-boundary capability unless the workflow actually requires it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the same philosophy used in reducing attack surfaces across operating systems, container environments, and enterprise networks.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Disposable Virtual Machines: Reducing Persistent State
&lt;/h2&gt;

&lt;p&gt;Persistence is central to both offensive and defensive cybersecurity.&lt;/p&gt;

&lt;p&gt;Attackers seek persistence to maintain access.&lt;/p&gt;

&lt;p&gt;Defenders examine persistent artifacts to understand how an intrusion occurred.&lt;/p&gt;

&lt;p&gt;Privacy engineering introduces a different question:&lt;/p&gt;

&lt;p&gt;What application data should remain after a legitimate research session ends?&lt;/p&gt;

&lt;p&gt;Rvbbit Ghost uses disposable linked clones derived from clean Whonix snapshots.&lt;/p&gt;

&lt;p&gt;The lifecycle follows this model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Verified Whonix appliance
          |
          v
     Imported base
          |
          v
     Clean snapshot
          |
          v
   Disposable VM pair
          |
          v
     Research session
          |
          v
       Shutdown
          |
          v
    Validated cleanup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each session creates a temporary Gateway and Workstation pair with session-specific identities and networking.&lt;/p&gt;

&lt;p&gt;During normal shutdown, the session VMs and their associated differencing disks are removed.&lt;/p&gt;

&lt;p&gt;The goal is to avoid carrying browser cookies, browsing history, cache, local storage, and other session-specific state into the next research session.&lt;/p&gt;

&lt;p&gt;This reduces the risk of accidental cross-session contamination.&lt;/p&gt;

&lt;p&gt;But it is essential to distinguish &lt;strong&gt;logical disposal from secure physical erasure&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Deleting a virtual disk does not prove that every underlying storage block has been overwritten or rendered unrecoverable.&lt;/p&gt;

&lt;p&gt;Windows filesystem journals, page files, backups, crash dumps, SSD behavior, and other storage mechanisms may preserve artifacts beyond the lifecycle of a VM.&lt;/p&gt;

&lt;p&gt;Likewise, the clean base images and project maintenance state persist by design.&lt;/p&gt;

&lt;p&gt;Rvbbit Ghost therefore makes a limited, defensible claim:&lt;/p&gt;

&lt;p&gt;It reduces persistent browser-session state.&lt;/p&gt;

&lt;p&gt;It does not guarantee forensic-proof deletion.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Supply-Chain Security: Isolation Begins Before the First Boot
&lt;/h2&gt;

&lt;p&gt;A disposable environment is not trustworthy merely because it is temporary.&lt;/p&gt;

&lt;p&gt;If the original VM image has been modified maliciously, every disposable clone may inherit the compromise.&lt;/p&gt;

&lt;p&gt;For this reason, Rvbbit Ghost includes supply-chain verification during installation.&lt;/p&gt;

&lt;p&gt;The project downloads a pinned Whonix appliance from the official source and verifies its OpenPGP signature using GnuPG and a pinned upstream signing-key fingerprint.&lt;/p&gt;

&lt;p&gt;The purpose is to reduce the risk of importing an unauthorized or modified base image.&lt;/p&gt;

&lt;p&gt;The trust chain still depends on components such as the Windows host, Gpg4win, package installation mechanisms, firmware, and the verified upstream software.&lt;/p&gt;

&lt;p&gt;Cryptographic signature verification does not eliminate these dependencies.&lt;/p&gt;

&lt;p&gt;It makes one important part of the supply-chain boundary more explicit and testable.&lt;/p&gt;

&lt;p&gt;For me, this is a central lesson:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security architecture must account for how trusted components enter the system, not only how those components behave after installation.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  8. What Could an Attacker Still Do?
&lt;/h2&gt;

&lt;p&gt;This is where the project becomes particularly interesting from an offensive-security and threat-modeling perspective.&lt;/p&gt;

&lt;p&gt;Rather than asking whether the architecture is anonymous, we can examine hypothetical attack scenarios and identify which defensive assumptions they challenge.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scenario A: Network Traffic Correlation
&lt;/h3&gt;

&lt;p&gt;Imagine a sophisticated adversary capable of observing traffic at multiple points across a network.&lt;/p&gt;

&lt;p&gt;The adversary cannot necessarily decrypt Tor traffic, but may observe connection timing and traffic volume.&lt;/p&gt;

&lt;p&gt;If activity entering one part of a system can be correlated with activity leaving another, traffic analysis may reveal relationships that encryption alone does not hide.&lt;/p&gt;

&lt;p&gt;Rvbbit Ghost does not eliminate this class of attack.&lt;/p&gt;

&lt;p&gt;OpenVPN-before-Tor changes the directly observable source address at the Tor entry point, but it does not make timing correlations mathematically impossible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security lesson:&lt;/strong&gt; Encryption protects content, but metadata remains an important part of the attack surface.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scenario B: Browser-Based Identification
&lt;/h3&gt;

&lt;p&gt;Suppose a website collects browser characteristics and observes user activity.&lt;/p&gt;

&lt;p&gt;Tor Browser is designed to reduce fingerprinting and make users harder to distinguish.&lt;/p&gt;

&lt;p&gt;However, unusual configuration changes, additional extensions, disclosed personal information, and authenticated identities can undermine those protections.&lt;/p&gt;

&lt;p&gt;Rvbbit Ghost intentionally relies on the standard Tor Browser rather than attempting to create a heavily customized browser fingerprint.&lt;/p&gt;

&lt;p&gt;This is an important distinction.&lt;/p&gt;

&lt;p&gt;Making a browser appear technically unusual can sometimes make it more identifiable, not less.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security lesson:&lt;/strong&gt; Anonymity sets are often more valuable than arbitrary customization.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scenario C: Host Compromise
&lt;/h3&gt;

&lt;p&gt;Consider a Windows computer already compromised by malware with sufficient privileges.&lt;/p&gt;

&lt;p&gt;The malicious software may potentially observe processes, keystrokes, screen content, storage activity, or information accessible through the hypervisor.&lt;/p&gt;

&lt;p&gt;Network routing inside Whonix does not prevent a compromised host from observing data before it is encrypted or after it is decrypted inside the guest.&lt;/p&gt;

&lt;p&gt;The attacker may not need to defeat Tor at all.&lt;/p&gt;

&lt;p&gt;This is a fundamental limitation.&lt;/p&gt;

&lt;p&gt;A sufficiently privileged malicious host cannot be made harmless by placing an application inside VirtualBox.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security lesson:&lt;/strong&gt; A privacy boundary cannot be stronger than the trusted infrastructure enforcing it against an adversary that controls that infrastructure.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scenario D: Malicious Downloaded Content
&lt;/h3&gt;

&lt;p&gt;Imagine a researcher downloading a document from an untrusted website during an authorized investigation.&lt;/p&gt;

&lt;p&gt;Inside the isolated environment, the document remains subject to the protections and vulnerabilities of the guest.&lt;/p&gt;

&lt;p&gt;If the researcher exports the document and opens it directly on the Windows host, the original security boundary no longer applies to that execution.&lt;/p&gt;

&lt;p&gt;A malicious document may exploit the application used to open it, and an external application may initiate its own network activity.&lt;/p&gt;

&lt;p&gt;The VPN/Tor routing policy for Whonix-Workstation does not automatically protect arbitrary Windows applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security lesson:&lt;/strong&gt; Isolation is a property of an execution environment, not a permanent property of a downloaded file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scenario E: Identity Correlation Across Sessions
&lt;/h3&gt;

&lt;p&gt;A researcher creates two disposable virtual machines on different days.&lt;/p&gt;

&lt;p&gt;Both sessions use Tor.&lt;/p&gt;

&lt;p&gt;Both VMs are subsequently deleted.&lt;/p&gt;

&lt;p&gt;Are they necessarily unlinkable?&lt;/p&gt;

&lt;p&gt;No.&lt;/p&gt;

&lt;p&gt;If both sessions authenticate to the same account, reuse identifying information, or produce uniquely recognizable content, they may be linked independently of the network path.&lt;/p&gt;

&lt;p&gt;Deleting cookies does not erase information already collected by remote services.&lt;/p&gt;

&lt;p&gt;The system can create fresh application state, but it cannot guarantee that a human operator will behave as an unrelated identity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security lesson:&lt;/strong&gt; Operational security is not something that infrastructure can fully automate.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scenario F: Virtualization and Escape Vulnerabilities
&lt;/h3&gt;

&lt;p&gt;A vulnerability in a browser, guest operating system, virtualization component, or host driver can potentially undermine the assumed separation.&lt;/p&gt;

&lt;p&gt;Disabling integrations reduces exposure, but it is not a proof that VM escape or host compromise is impossible.&lt;/p&gt;

&lt;p&gt;Rvbbit Ghost does not claim protection against unknown hypervisor vulnerabilities or malicious firmware.&lt;/p&gt;

&lt;p&gt;These threats remain outside its assurance boundary.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security lesson:&lt;/strong&gt; Reducing available attack paths is valuable even when eliminating every possible path is unrealistic.&lt;/p&gt;




&lt;h2&gt;
  
  
  9. What Remains Visible After the Session?
&lt;/h2&gt;

&lt;p&gt;One of the most important decisions in this project was not to disable Windows security logging.&lt;/p&gt;

&lt;p&gt;Rvbbit Ghost does not erase Windows Event Logs, disable Defender, manipulate audit records, or falsify execution history.&lt;/p&gt;

&lt;p&gt;That is intentional.&lt;/p&gt;

&lt;p&gt;A host operating system can generate many types of evidence associated with virtual-machine execution.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Process execution and PowerShell activity.&lt;/li&gt;
&lt;li&gt;VirtualBox configuration and diagnostic records.&lt;/li&gt;
&lt;li&gt;Security-product telemetry.&lt;/li&gt;
&lt;li&gt;Network connection metadata.&lt;/li&gt;
&lt;li&gt;Filesystem activity and storage artifacts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Disabling selected logging features does not guarantee that execution becomes unobservable.&lt;/p&gt;

&lt;p&gt;Other components may continue recording information.&lt;/p&gt;

&lt;p&gt;Moreover, selectively manipulating forensic records can weaken incident response and undermine legitimate investigations.&lt;/p&gt;

&lt;p&gt;My objective was not to turn Windows into an anti-forensic platform.&lt;/p&gt;

&lt;p&gt;It was to isolate the browser session and reduce unnecessary persistence within the project-controlled environment.&lt;/p&gt;

&lt;p&gt;This distinction matters professionally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Privacy engineering and anti-forensic manipulation are not the same discipline.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A responsible research environment should have an explicit data-retention model and documented limitations rather than making unsupported claims about disappearing without a trace.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Engineering Reliability Is Part of the Security Model
&lt;/h2&gt;

&lt;p&gt;Many security tools focus heavily on the initial configuration while paying less attention to what happens after an unexpected interruption.&lt;/p&gt;

&lt;p&gt;But real systems crash.&lt;/p&gt;

&lt;p&gt;Power can fail.&lt;/p&gt;

&lt;p&gt;Processes may terminate halfway through cleanup.&lt;/p&gt;

&lt;p&gt;A VM may be deleted successfully while another remains registered.&lt;/p&gt;

&lt;p&gt;Rvbbit Ghost addresses these lifecycle problems through several engineering mechanisms.&lt;/p&gt;

&lt;h3&gt;
  
  
  Validated resource cleanup
&lt;/h3&gt;

&lt;p&gt;Project-specific VM names and recorded UUIDs are checked before destructive cleanup operations.&lt;/p&gt;

&lt;p&gt;The objective is to avoid accidentally deleting unrelated VirtualBox machines.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cross-process locking
&lt;/h3&gt;

&lt;p&gt;Installation, startup, maintenance, auditing, and cleanup operations require coordinated access to project state.&lt;/p&gt;

&lt;p&gt;A cross-process lock reduces the risk of conflicting state changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Atomic state persistence
&lt;/h3&gt;

&lt;p&gt;The project uses atomic state replacement and schema migration to make stored lifecycle information more resilient.&lt;/p&gt;

&lt;h3&gt;
  
  
  Interrupted-session recovery
&lt;/h3&gt;

&lt;p&gt;If a session is interrupted, the project can identify registered session resources and attempt validated recovery and cleanup.&lt;/p&gt;

&lt;h3&gt;
  
  
  Clean-base maintenance
&lt;/h3&gt;

&lt;p&gt;Updated clean snapshots can be created after controlled maintenance and renewed VPN checks.&lt;/p&gt;

&lt;p&gt;These mechanisms may be less visually impressive than encryption or traffic routing, but they are important.&lt;/p&gt;

&lt;p&gt;A security control that works only when every operation completes perfectly is not a particularly reliable control.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Failure handling is part of the security architecture.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  11. Validation: What Has Actually Been Tested?
&lt;/h2&gt;

&lt;p&gt;I think security research should distinguish implementation, automated validation, and real-world assurance.&lt;/p&gt;

&lt;p&gt;The repository includes a PowerShell validation suite covering important properties such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PowerShell syntax and configuration checks.&lt;/li&gt;
&lt;li&gt;Pinned release metadata and expected download origins.&lt;/li&gt;
&lt;li&gt;Network isolation invariants.&lt;/li&gt;
&lt;li&gt;Invalid signature rejection.&lt;/li&gt;
&lt;li&gt;State migration and atomic persistence.&lt;/li&gt;
&lt;li&gt;Lock contention.&lt;/li&gt;
&lt;li&gt;Audit failure behavior.&lt;/li&gt;
&lt;li&gt;Partial cleanup and recovery handling.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These checks provide useful confidence in specific parts of the implementation.&lt;/p&gt;

&lt;p&gt;However, the project remains an &lt;strong&gt;experimental research prototype&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Static and mocked behavior checks do not prove that the full environment will work correctly across every combination of Windows, VirtualBox, Whonix, and VPN provider versions.&lt;/p&gt;

&lt;p&gt;Full end-to-end validation requires a properly configured Windows test host.&lt;/p&gt;

&lt;p&gt;I do not consider this a minor distinction.&lt;/p&gt;

&lt;p&gt;There is a substantial difference between saying:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“The project contains tests for critical security invariants.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And saying:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“The complete system has been independently proven secure.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The first is an engineering statement.&lt;/p&gt;

&lt;p&gt;The second would require a much stronger body of evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  12. Where Could This Research Go Next?
&lt;/h2&gt;

&lt;p&gt;Rvbbit Ghost also provides a foundation for investigating improvements to isolated research environments.&lt;/p&gt;

&lt;p&gt;Several areas are particularly interesting.&lt;/p&gt;

&lt;h3&gt;
  
  
  More systematic adversarial testing
&lt;/h3&gt;

&lt;p&gt;A useful next step would be a reproducible laboratory test matrix covering network failures, unexpected shutdowns, isolation misconfigurations, and recovery behavior.&lt;/p&gt;

&lt;p&gt;Instead of relying solely on successful startup scenarios, the objective would be to deliberately test where assumptions break.&lt;/p&gt;

&lt;p&gt;For example, a controlled experiment could measure whether connectivity is consistently blocked under different VPN failure conditions.&lt;/p&gt;

&lt;p&gt;The test results should be recorded and compared against the architecture's intended invariants.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stronger readiness verification
&lt;/h3&gt;

&lt;p&gt;Operator-confirmed VPN checks are an acknowledged limitation.&lt;/p&gt;

&lt;p&gt;Research could explore how to verify guest networking state more reliably without creating excessive host-to-guest trust or integration.&lt;/p&gt;

&lt;p&gt;The difficult part is not merely collecting another status value.&lt;/p&gt;

&lt;p&gt;It is establishing whether that status provides trustworthy evidence of the actual routing behavior.&lt;/p&gt;

&lt;h3&gt;
  
  
  Formalized session lifecycle testing
&lt;/h3&gt;

&lt;p&gt;Disposable environments benefit from precise state models.&lt;/p&gt;

&lt;p&gt;Installation, initialization, launch, execution, shutdown, recovery, and removal can be treated as explicit states with permitted transitions.&lt;/p&gt;

&lt;p&gt;Future testing could focus on whether unexpected transitions leave behind resources or violate isolation assumptions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Comparative host security
&lt;/h3&gt;

&lt;p&gt;Windows with a hosted hypervisor is a practical environment for experimentation.&lt;/p&gt;

&lt;p&gt;It is not the strongest possible architecture for every threat model.&lt;/p&gt;

&lt;p&gt;Comparing Windows-hosted Whonix with Linux-based configurations and Qubes-Whonix could help identify where architectural changes provide greater security value than additional scripts.&lt;/p&gt;

&lt;h3&gt;
  
  
  Privacy and forensic artifact measurement
&lt;/h3&gt;

&lt;p&gt;Another useful research direction would be to compare what remains after normal VM shutdown across different storage and host configurations.&lt;/p&gt;

&lt;p&gt;This could include project-controlled data, retained maintenance state, VirtualBox artifacts, and relevant host telemetry.&lt;/p&gt;

&lt;p&gt;The objective should be accurate measurement, not concealment or destruction of legitimate audit evidence.&lt;/p&gt;

&lt;p&gt;A careful study could distinguish between data that is removed from ordinary application use and data that may remain accessible through forensic examination.&lt;/p&gt;




&lt;h2&gt;
  
  
  13. Where Rvbbit Ghost Fits Into Offensive Security
&lt;/h2&gt;

&lt;p&gt;Offensive security is not limited to exploiting vulnerable applications.&lt;/p&gt;

&lt;p&gt;It also involves understanding operating-system behavior, trust relationships, attack surfaces, network protocols, and the assumptions that make an attack possible.&lt;/p&gt;

&lt;p&gt;Rvbbit Ghost approaches these subjects from the environment-design perspective.&lt;/p&gt;

&lt;p&gt;For an authorized researcher, it provides an experimental platform for studying:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Network isolation and routing dependencies.&lt;/li&gt;
&lt;li&gt;Trust boundaries between host and guest systems.&lt;/li&gt;
&lt;li&gt;Operational security and identity correlation.&lt;/li&gt;
&lt;li&gt;Data persistence and disposal.&lt;/li&gt;
&lt;li&gt;Supply-chain validation.&lt;/li&gt;
&lt;li&gt;Security control failures and recovery.&lt;/li&gt;
&lt;li&gt;The limits of layered privacy architectures.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It does not include an exploitation framework, credential theft functionality, persistence payloads, or mechanisms for bypassing customer attribution requirements.&lt;/p&gt;

&lt;p&gt;That separation is deliberate.&lt;/p&gt;

&lt;p&gt;Professional penetration testing operates within written authorization and rules of engagement.&lt;/p&gt;

&lt;p&gt;Some engagements require declared source IP addresses, comprehensive audit logs, or specific network routes. In those situations, Tor and consumer VPN infrastructure may be inappropriate.&lt;/p&gt;

&lt;p&gt;A privacy-oriented research environment should never override the customer's security requirements.&lt;/p&gt;

&lt;p&gt;Understanding when &lt;em&gt;not&lt;/em&gt; to use a tool is part of using that tool professionally.&lt;/p&gt;

&lt;h2&gt;
  
  
  14. The Most Important Lesson: More Layers Do Not Automatically Mean More Security
&lt;/h2&gt;

&lt;p&gt;It is tempting to describe a chain containing Windows, virtualization, a VPN, Whonix, and Tor as inherently secure because it contains multiple technologies.&lt;/p&gt;

&lt;p&gt;But security is not simply the number of layers between an operator and a destination.&lt;/p&gt;

&lt;p&gt;Each layer introduces assumptions.&lt;/p&gt;

&lt;p&gt;Windows must remain trustworthy enough to host the environment.&lt;/p&gt;

&lt;p&gt;VirtualBox must enforce its intended boundaries.&lt;/p&gt;

&lt;p&gt;The Whonix images must be authentic.&lt;/p&gt;

&lt;p&gt;The VPN must behave according to the configured policy.&lt;/p&gt;

&lt;p&gt;Tor and the browser must operate within their expected threat models.&lt;/p&gt;

&lt;p&gt;The operator must avoid revealing identity through unrelated channels.&lt;/p&gt;

&lt;p&gt;Some layers mitigate specific exposures. Others introduce new dependencies.&lt;/p&gt;

&lt;p&gt;The correct engineering question is therefore not:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;How can I add another privacy layer?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What exact failure or adversary does this layer protect against, how can I verify that protection, and what new risks does it introduce?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That question should guide the evolution of the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Rvbbit Ghost is not an attempt to create a machine that cannot be observed.&lt;/p&gt;

&lt;p&gt;It is an attempt to explore how far isolation, disposable execution, explicit routing requirements, and disciplined lifecycle management can go on a conventional Windows host.&lt;/p&gt;

&lt;p&gt;The project reflects an approach to cybersecurity that I consider increasingly important:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understand the attacker. Model the trust boundaries. Test the failure conditions. Build defensive controls. Document what those controls cannot do.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A VPN does not make identity disappear.&lt;/p&gt;

&lt;p&gt;Tor does not protect against every compromised endpoint.&lt;/p&gt;

&lt;p&gt;Virtualization does not eliminate the underlying host from the trusted computing base.&lt;/p&gt;

&lt;p&gt;Deleting a VM does not erase every trace of execution.&lt;/p&gt;

&lt;p&gt;And a sophisticated architecture does not compensate for poor operational security.&lt;/p&gt;

&lt;p&gt;But none of that makes isolation, privacy controls, or disposable environments meaningless.&lt;/p&gt;

&lt;p&gt;It makes precise threat modeling more important.&lt;/p&gt;

&lt;p&gt;The goal is not perfect invisibility.&lt;/p&gt;

&lt;p&gt;The goal is to understand exposure, reduce unnecessary risk, and build systems whose security properties can be explained and tested.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security begins where assumptions are challenged — not where promises are made.&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Explore the Project
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Rvbbit Ghost — Experimental Whonix Session Orchestration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/buter-chkalova/rvbbit-ghost" rel="noopener noreferrer"&gt;https://github.com/buter-chkalova/rvbbit-ghost&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Additional technical documentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/buter-chkalova/rvbbit-ghost/blob/main/docs/ARCHITECTURE.md" rel="noopener noreferrer"&gt;Architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/buter-chkalova/rvbbit-ghost/blob/main/docs/THREAT-MODEL.md" rel="noopener noreferrer"&gt;Threat Model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/buter-chkalova/rvbbit-ghost/blob/main/docs/OPSEC.md" rel="noopener noreferrer"&gt;Operational Security&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/buter-chkalova/rvbbit-ghost/blob/main/docs/LOGGING.md" rel="noopener noreferrer"&gt;Logging and Data Disposal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/buter-chkalova/rvbbit-ghost/blob/main/docs/AUTHORIZED-PENTESTING.md" rel="noopener noreferrer"&gt;Authorized Pentest Use&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Rvbbit Ghost is an experimental, open-source research prototype intended for authorized security assessments, privacy research, and controlled laboratory environments. It does not guarantee anonymity or protect against every adversary.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Author: rvbbit &lt;br&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/buter-chkalova" rel="noopener noreferrer"&gt;buter-chkalova&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>privacy</category>
      <category>powershell</category>
      <category>security</category>
    </item>
    <item>
      <title>RVBBIT: What I Learned Building a Linux Kernel Rootkit PoC — and Why I Ended Up Studying Detection</title>
      <dc:creator>rvbbit</dc:creator>
      <pubDate>Sun, 09 Aug 2026 14:58:07 +0000</pubDate>
      <link>https://dev.to/buter_chkalova/rvbbit-what-i-learned-building-a-linux-kernel-rootkit-poc-and-why-i-ended-up-studying-detection-32h</link>
      <guid>https://dev.to/buter_chkalova/rvbbit-what-i-learned-building-a-linux-kernel-rootkit-poc-and-why-i-ended-up-studying-detection-32h</guid>
      <description>&lt;p&gt;I didn't start RVBBIT with the idea of building a security framework.&lt;/p&gt;

&lt;p&gt;It was much simpler than that.&lt;/p&gt;

&lt;p&gt;I wanted to understand Linux rootkits beyond reading about them.&lt;/p&gt;

&lt;p&gt;I had been studying techniques such as syscall hooking, DKOM, process hiding and kernel module hiding separately, and at some point I realized that reading another explanation wasn't going to answer the questions I had.&lt;/p&gt;

&lt;p&gt;I wanted to see what happened when these techniques actually lived together.&lt;/p&gt;

&lt;p&gt;So I started writing RVBBIT.&lt;/p&gt;

&lt;p&gt;The first version was an educational Linux kernel rootkit PoC. The techniques themselves were not new, and I don't want to pretend otherwise. Most of them have been documented and discussed for years.&lt;/p&gt;

&lt;p&gt;What made the project interesting to me was putting several of them into one implementation and watching where they interacted, where they broke, and what they failed to hide.&lt;/p&gt;

&lt;p&gt;That last part eventually changed the direction of the project completely.&lt;/p&gt;

&lt;p&gt;Project RVBBIT:&lt;br&gt;
&lt;a href="https://github.com/buter-chkalova/project-rvbbit" rel="noopener noreferrer"&gt;https://github.com/buter-chkalova/project-rvbbit&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  It started with hiding things
&lt;/h2&gt;

&lt;p&gt;The original goal was fairly straightforward: take several established Linux rootkit techniques and understand them by implementing them.&lt;/p&gt;

&lt;p&gt;RVBBIT ended up covering experiments around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;process hiding and DKOM;&lt;/li&gt;
&lt;li&gt;kernel module hiding;&lt;/li&gt;
&lt;li&gt;syscall interception;&lt;/li&gt;
&lt;li&gt;filesystem visibility;&lt;/li&gt;
&lt;li&gt;TCP connection visibility;&lt;/li&gt;
&lt;li&gt;selected interference with eBPF-related mechanisms;&lt;/li&gt;
&lt;li&gt;persistence.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At first, I was looking at each feature mostly from the offensive side.&lt;/p&gt;

&lt;p&gt;Can a process disappear from a normal enumeration path?&lt;/p&gt;

&lt;p&gt;Can a loaded module disappear from the view an administrator normally expects?&lt;/p&gt;

&lt;p&gt;Can directory entries be filtered before userspace sees them?&lt;/p&gt;

&lt;p&gt;Can the representation of a TCP connection be changed without removing the connection itself?&lt;/p&gt;

&lt;p&gt;Those are useful implementation questions, but after working on the project for a while I noticed that they all had something in common.&lt;/p&gt;

&lt;p&gt;I wasn't really removing things.&lt;/p&gt;

&lt;p&gt;I was changing how they were observed.&lt;/p&gt;

&lt;p&gt;That sounds obvious when written down. It wasn't as obvious to me when I started.&lt;/p&gt;


&lt;h2&gt;
  
  
  A hidden process is still a process
&lt;/h2&gt;

&lt;p&gt;Take process hiding.&lt;/p&gt;

&lt;p&gt;A running process has kernel state associated with it. Userspace tools don't somehow inspect the physical reality of the machine and discover processes independently. They ask the operating system for information.&lt;/p&gt;

&lt;p&gt;Normally we can think about it roughly like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kernel state
     |
     v
kernel interface
     |
     v
userspace
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If code inside the kernel interferes with that path, the result changes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;actual state
     |
     v
modified observation path
     |
     v
reported state
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The process may still be executing.&lt;/p&gt;

&lt;p&gt;The interesting part is that one observer no longer reports it.&lt;/p&gt;

&lt;p&gt;This distinction started appearing everywhere in RVBBIT.&lt;/p&gt;

&lt;p&gt;With DKOM-style manipulation, the object can continue to exist while a relationship used to enumerate it has changed.&lt;/p&gt;

&lt;p&gt;With file hiding, the file doesn't necessarily stop existing. A directory listing can simply stop reporting its entry.&lt;/p&gt;

&lt;p&gt;With network hiding, the connection can remain active while one representation of network state no longer shows it.&lt;/p&gt;

&lt;p&gt;So I gradually stopped thinking in terms of:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"How do I hide X?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and started thinking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Which view of X am I actually changing?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That turned out to be a much better question.&lt;/p&gt;




&lt;h2&gt;
  
  
  The techniques aren't new. Combining them was the useful part.
&lt;/h2&gt;

&lt;p&gt;This is something I want to be explicit about.&lt;/p&gt;

&lt;p&gt;RVBBIT does not contain some previously unknown Linux rootkit primitive.&lt;/p&gt;

&lt;p&gt;DKOM isn't new.&lt;/p&gt;

&lt;p&gt;Syscall interception isn't new.&lt;/p&gt;

&lt;p&gt;Module hiding isn't new.&lt;/p&gt;

&lt;p&gt;Neither is filtering filesystem or network information.&lt;/p&gt;

&lt;p&gt;But studying these things separately can make them look cleaner than they really are.&lt;/p&gt;

&lt;p&gt;Once several mechanisms exist inside the same project, you start running into relationships between them.&lt;/p&gt;

&lt;p&gt;A concealment mechanism may affect one observation path and leave another untouched.&lt;/p&gt;

&lt;p&gt;A persistence mechanism creates artifacts outside the kernel.&lt;/p&gt;

&lt;p&gt;A method that works on one kernel version may depend on assumptions that disappear on another.&lt;/p&gt;

&lt;p&gt;Two security tools may look independent while actually receiving information through the same kernel mechanism.&lt;/p&gt;

&lt;p&gt;Those interactions became more interesting to me than adding another hiding feature.&lt;/p&gt;

&lt;p&gt;Interestingly, this was also one of the things other researchers noticed about RVBBIT.&lt;/p&gt;

&lt;p&gt;In April 2026, the Spanish cybersecurity publication Hackplayers published a technical analysis of the project:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RVBBIT: anatomía de un rootkit LKM moderno basado en stealth, DKOM y anti-eBPF&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.hackplayers.com/2026/04/rvbbit-anatomia-de-un-rootkit-lkm.html" rel="noopener noreferrer"&gt;https://www.hackplayers.com/2026/04/rvbbit-anatomia-de-un-rootkit-lkm.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They went through several parts of the implementation, including DKOM, syscall interception, hiding mechanisms and the project's interaction with eBPF-related observability.&lt;/p&gt;

&lt;p&gt;What I appreciated about their analysis was that they didn't present RVBBIT as a completely new rootkit technique. They looked at it as a case study that brought a number of existing ideas together.&lt;/p&gt;

&lt;p&gt;That's much closer to how I see the project myself.&lt;/p&gt;

&lt;p&gt;Later, the project also appeared in a Chinese technical article on CSDN:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;内核里的“幽灵”：一套Linux Rootkit隐身术完全拆解&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.csdn.net/chen1415886044/article/details/161462914" rel="noopener noreferrer"&gt;https://blog.csdn.net/chen1415886044/article/details/161462914&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Seeing other people independently take the code apart was probably more useful than getting another GitHub star. It showed me which parts of the project were understandable from the outside and which ideas attracted attention without me explaining them first.&lt;/p&gt;




&lt;h2&gt;
  
  
  Syscall hooking gave me a different kind of question
&lt;/h2&gt;

&lt;p&gt;Syscall interception is a good example of how my thinking changed.&lt;/p&gt;

&lt;p&gt;From the offensive side, the idea is familiar.&lt;/p&gt;

&lt;p&gt;Very roughly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;userspace
    |
    v
system call
    |
    v
sys_call_table
    |
    v
kernel handler
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Change the relevant mapping and you can redirect execution.&lt;/p&gt;

&lt;p&gt;When I first worked with this, I was interested mainly in the interception itself.&lt;/p&gt;

&lt;p&gt;Later I realized the defensive question was almost sitting next to it:&lt;/p&gt;

&lt;p&gt;If I expect a syscall entry to point somewhere, and it suddenly points somewhere else, can I verify that?&lt;/p&gt;

&lt;p&gt;That sounds like a small change in perspective, but it changes the problem.&lt;/p&gt;

&lt;p&gt;Instead of trying to recognize every possible behavior produced by a hook, you can start asking questions about integrity.&lt;/p&gt;

&lt;p&gt;What was the expected target?&lt;/p&gt;

&lt;p&gt;What is the current target?&lt;/p&gt;

&lt;p&gt;Where does my expected value come from?&lt;/p&gt;

&lt;p&gt;And, more importantly: why should I trust that source?&lt;/p&gt;

&lt;p&gt;The last question is where things become difficult.&lt;/p&gt;

&lt;p&gt;A detector inside a compromised kernel is still inside a compromised kernel.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;code&gt;/proc&lt;/code&gt; taught me not to confuse tools with independent observers
&lt;/h2&gt;

&lt;p&gt;Another thing that became obvious while working on visibility was that running two different commands does not necessarily give you two independent observations.&lt;/p&gt;

&lt;p&gt;Imagine two tools receiving their information through the same modified kernel path:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;             kernel state
                  |
             modified path
                  |
          +-------+-------+
          |               |
        tool A           tool B
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Both tools agree.&lt;/p&gt;

&lt;p&gt;And both can still be wrong.&lt;/p&gt;

&lt;p&gt;This matters when thinking about rootkit detection because "I'll compare what two tools report" only helps if those tools ultimately depend on sufficiently independent sources.&lt;/p&gt;

&lt;p&gt;If both trust the same compromised representation, agreement doesn't tell us much.&lt;/p&gt;

&lt;p&gt;This became one of the ideas I wanted to explore further.&lt;/p&gt;




&lt;h2&gt;
  
  
  eBPF made the observability problem even more interesting
&lt;/h2&gt;

&lt;p&gt;I also became interested in eBPF because modern Linux security tooling doesn't have to rely entirely on periodic enumeration.&lt;/p&gt;

&lt;p&gt;It can observe events much closer to where they occur.&lt;/p&gt;

&lt;p&gt;That changes the problem for a traditional rootkit.&lt;/p&gt;

&lt;p&gt;RVBBIT contains experiments involving selected BPF-related operations, but I don't consider this some universal "anti-eBPF" mechanism. Real eBPF-based security systems are considerably more complicated than that.&lt;/p&gt;

&lt;p&gt;The useful lesson was different.&lt;/p&gt;

&lt;p&gt;Imagine a security system stops receiving the telemetry it expects.&lt;/p&gt;

&lt;p&gt;Does that mean nothing happened?&lt;/p&gt;

&lt;p&gt;Or does it mean something interfered with the observer?&lt;/p&gt;

&lt;p&gt;Those two states look similar from the perspective of an empty event stream, but from a security perspective they are completely different.&lt;/p&gt;

&lt;p&gt;At that point I started thinking about the observer itself as something whose integrity matters.&lt;/p&gt;

&lt;p&gt;That idea later carried over into RVBBIT Arsenal.&lt;/p&gt;




&lt;h2&gt;
  
  
  At some point I stopped wanting more rootkit features
&lt;/h2&gt;

&lt;p&gt;There was a point where I could have continued adding things to RVBBIT.&lt;/p&gt;

&lt;p&gt;Another hiding mechanism. Another hook. Another persistence experiment.&lt;/p&gt;

&lt;p&gt;But I wasn't sure that would make the project more useful.&lt;/p&gt;

&lt;p&gt;The question I kept coming back to was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If I know exactly how I hid something, where should I look for the evidence I failed to remove?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That became the reason for starting the second project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RVBBIT Arsenal:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/buter-chkalova/rvbbit-arsenal" rel="noopener noreferrer"&gt;https://github.com/buter-chkalova/rvbbit-arsenal&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Arsenal separates the work into offensive and defensive sides:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9ply3y5u0v0dyhwebq93.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9ply3y5u0v0dyhwebq93.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I initially thought about this as "attack versus defense."&lt;/p&gt;

&lt;p&gt;I don't anymore.&lt;/p&gt;

&lt;p&gt;The model I find more useful now is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;technique
   |
   v
state modification
   |
   v
visibility change
   |
   v
something remains observable
   |
   v
detection idea
   |
   v
limitations
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The last step matters just as much as the others.&lt;/p&gt;




&lt;h2&gt;
  
  
  RvbbitSafe isn't an "anti-rootkit"
&lt;/h2&gt;

&lt;p&gt;The defensive part of Arsenal is called RvbbitSafe.&lt;/p&gt;

&lt;p&gt;An earlier version of the project used much stronger language around the defensive side. Looking back, I don't think that was technically justified.&lt;/p&gt;

&lt;p&gt;RvbbitSafe isn't a universal Linux anti-rootkit, and I don't present it as one now.&lt;/p&gt;

&lt;p&gt;It's a research prototype built around a simpler idea:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;if one representation of system state has been manipulated, can another representation expose the difference?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Process visibility is a good example.&lt;/p&gt;

&lt;p&gt;Imagine two ways of reasoning about whether the same process exists:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;              process
                 |
        +--------+--------+
        |                 |
        v                 v
     view A             view B
        |                 |
        +--------+--------+
                 |
              compare
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Normally, we expect the views to agree.&lt;/p&gt;

&lt;p&gt;If I deliberately alter the state used by one of them and the other remains intact, the disagreement can become a detection signal.&lt;/p&gt;

&lt;p&gt;This is generally described as a cross-view approach.&lt;/p&gt;

&lt;p&gt;But while implementing it, another problem becomes obvious.&lt;/p&gt;

&lt;p&gt;How independent are those views really?&lt;/p&gt;

&lt;p&gt;If an attacker modifies both of them, the detector can lose the discrepancy.&lt;/p&gt;

&lt;p&gt;If they share some lower-level dependency that has already been corrupted, they may agree for the wrong reason.&lt;/p&gt;

&lt;p&gt;So the interesting part isn't just:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I have two views."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It's:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What does each view trust?"&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  This became the main question for me
&lt;/h2&gt;

&lt;p&gt;A simplified security stack might look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;security application
        |
        v
userspace interface
        |
        v
kernel interface
        |
        v
kernel structures
        |
        v
hardware
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every observer sits somewhere in that stack.&lt;/p&gt;

&lt;p&gt;And every observer has a trust boundary.&lt;/p&gt;

&lt;p&gt;If the attacker operates below it, the information above that boundary may no longer describe reality accurately.&lt;/p&gt;

&lt;p&gt;That sounds theoretical, but RVBBIT gave me concrete examples of it.&lt;/p&gt;

&lt;p&gt;A userspace process monitor can trust &lt;code&gt;/proc&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Then kernel code changes what &lt;code&gt;/proc&lt;/code&gt; reports.&lt;/p&gt;

&lt;p&gt;A kernel detector can avoid that userspace problem.&lt;/p&gt;

&lt;p&gt;But now the question becomes which kernel structures the detector trusts.&lt;/p&gt;

&lt;p&gt;Move the observer down a layer and you don't eliminate trust. You move the trust boundary.&lt;/p&gt;

&lt;p&gt;That is probably the biggest thing I learned from these projects.&lt;/p&gt;

&lt;p&gt;Not how to unlink something from a list.&lt;/p&gt;

&lt;p&gt;Not how to intercept a syscall.&lt;/p&gt;

&lt;p&gt;Those are useful technical exercises, but the more general lesson was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Detection is only as trustworthy as the assumptions behind the observer.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Where the two projects stand now
&lt;/h2&gt;

&lt;p&gt;I think of the projects differently today.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project RVBBIT&lt;/strong&gt; is the original offensive research PoC.&lt;/p&gt;

&lt;p&gt;It collects several established Linux kernel manipulation and concealment techniques in one place and provides a relatively compact environment for studying how they interact.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RVBBIT Arsenal&lt;/strong&gt; is the continuation of that work.&lt;/p&gt;

&lt;p&gt;Instead of asking only how visibility can be manipulated, it tries to reason about what remains visible afterward.&lt;/p&gt;

&lt;p&gt;The relationship is roughly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;RVBBIT
   |
   |  How can I manipulate this view?
   v
RVBBIT Arsenal
   |
   |  What survives the manipulation?
   v
Detection research
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Neither project is meant to represent production malware.&lt;/p&gt;

&lt;p&gt;RVBBIT doesn't claim reliable evasion against modern EDR products.&lt;/p&gt;

&lt;p&gt;It doesn't claim that the techniques are novel.&lt;/p&gt;

&lt;p&gt;RvbbitSafe doesn't claim generic rootkit detection.&lt;/p&gt;

&lt;p&gt;I think those limitations make the projects more useful, not less.&lt;/p&gt;

&lt;p&gt;They make it possible to discuss what the code actually demonstrates instead of what an idealized rootkit or detector could theoretically do.&lt;/p&gt;




&lt;h2&gt;
  
  
  If I started RVBBIT again
&lt;/h2&gt;

&lt;p&gt;I'd do one thing very differently.&lt;/p&gt;

&lt;p&gt;I would document the defensive side while writing the offensive code.&lt;/p&gt;

&lt;p&gt;For every mechanism, I'd keep notes around five questions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What exactly am I changing?&lt;/li&gt;
&lt;li&gt;Which observer stops seeing it?&lt;/li&gt;
&lt;li&gt;Which state remains untouched?&lt;/li&gt;
&lt;li&gt;Who could observe that remaining state?&lt;/li&gt;
&lt;li&gt;How could that observation fail?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That would have saved me a lot of time later.&lt;/p&gt;

&lt;p&gt;It also would have made the progression from RVBBIT to Arsenal much more obvious from the beginning.&lt;/p&gt;

&lt;p&gt;But I probably wouldn't have understood why those questions mattered without first building the offensive side.&lt;/p&gt;

&lt;p&gt;So maybe doing it backwards was useful after all.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;I don't currently think RVBBIT needs a huge list of additional concealment features.&lt;/p&gt;

&lt;p&gt;There are already enough mechanisms there to ask interesting questions.&lt;/p&gt;

&lt;p&gt;I'm more interested in going deeper into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Linux kernel observability;&lt;/li&gt;
&lt;li&gt;cross-view detection;&lt;/li&gt;
&lt;li&gt;kernel integrity;&lt;/li&gt;
&lt;li&gt;eBPF-based telemetry;&lt;/li&gt;
&lt;li&gt;sensor integrity;&lt;/li&gt;
&lt;li&gt;trust boundaries;&lt;/li&gt;
&lt;li&gt;the difference between an object's state and its representation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In other words, I'm still interested in offensive kernel techniques.&lt;/p&gt;

&lt;p&gt;I'm just increasingly interested in what they teach us about defense.&lt;/p&gt;

&lt;p&gt;RVBBIT started with a fairly simple question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How can kernel code change what userspace sees?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The question I'm left with is better:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;If I can't trust what I'm seeing, where can I get another view?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I don't think there is one universal answer.&lt;/p&gt;

&lt;p&gt;That's exactly why I want to keep working on it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Projects
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Project RVBBIT — Linux Kernel Rootkit Research PoC&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/buter-chkalova/project-rvbbit" rel="noopener noreferrer"&gt;https://github.com/buter-chkalova/project-rvbbit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RVBBIT Arsenal — Offensive &amp;amp; Defensive Linux Kernel Security Research&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/buter-chkalova/rvbbit-arsenal" rel="noopener noreferrer"&gt;https://github.com/buter-chkalova/rvbbit-arsenal&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Independent technical coverage
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hackplayers (Spain)&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;RVBBIT: anatomía de un rootkit LKM moderno basado en stealth, DKOM y anti-eBPF&lt;/em&gt;&lt;br&gt;
&lt;a href="https://www.hackplayers.com/2026/04/rvbbit-anatomia-de-un-rootkit-lkm.html" rel="noopener noreferrer"&gt;https://www.hackplayers.com/2026/04/rvbbit-anatomia-de-un-rootkit-lkm.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CSDN (China)&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;内核里的“幽灵”：一套Linux Rootkit隐身术完全拆解&lt;/em&gt;&lt;br&gt;
&lt;a href="https://blog.csdn.net/chen1415886044/article/details/161462914" rel="noopener noreferrer"&gt;https://blog.csdn.net/chen1415886044/article/details/161462914&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;RVBBIT and RVBBIT Arsenal are research projects intended for cybersecurity education, controlled laboratory experimentation, malware analysis, and defensive security research. Kernel-level experiments should only be performed on systems you own or where you have explicit authorization.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>linux</category>
      <category>rootkit</category>
      <category>kernel</category>
    </item>
  </channel>
</rss>
