The Control Journal
Assessment GuidesSeptember 3, 20269 min read

Can a Coding Assessment Detect a Virtual Machine?

A browser tab, a screen share, and a desktop lockdown app infer very different things about a VM. What each layer can actually observe, as of September 2026.

CControl Editorial Team

It depends entirely on which layer is running the assessment, and the gap between layers is larger than most advice admits. A coding assessment that lives in an ordinary browser tab cannot see your hypervisor at all; it can only read fingerprinting signals that correlate with virtualization. A desktop lockdown app can check directly, and at least one major hiring platform documents that it does. Academic-style exam browsers go furthest and refuse to launch inside a virtual machine by default.

This article explains what each layer can observe, how reliable those observations are, and why a virtual machine is a worse idea than the content farms selling it suggest — not because detection is certain, but because the environments where it would matter are the same ones that block it outright, and the environments that do not block it are not watching your host anyway. Facts are current as of 3 September 2026 and are drawn from vendor documentation.

The four layers, and what each one can see

"The assessment" is not one thing. Before asking whether a VM is visible, identify which of these you are actually facing:

LayerWhat it runs asCan it see virtualization?
Browser-based assessmentA web page in your normal browserOnly indirect fingerprint signals
Screen share in a live interviewA capture stream you selectOnly what is inside the shared surface
Desktop lockdown appA native app you installYes, and some vendors block on it
Exam browser (Respondus, SEB)A native app replacing your desktopYes, and refuses to run by default

The rest of this article works down that list. If you are not sure which layer applies to you, the invitation email and the platform's own pre-test disclosure are the authoritative answer, not general advice.

What a browser tab can actually observe

A web page has no API for "am I running in a virtual machine." There is no navigator.isVirtualMachine. What a page can do is collect ordinary device characteristics and notice that the combination looks unusual.

The graphics renderer string is the strongest browser-side hint

The WEBGL_debug_renderer_info extension exposes two values, UNMASKED_VENDOR_WEBGL and UNMASKED_RENDERER_WEBGL, described by MDN as the "vendor string" and "renderer string of the graphics driver" (MDN Web Docs, WEBGL_debug_renderer_info). MDN records the extension as baseline and widely available across browsers since April 2017.

Inside a virtual machine, that string frequently names the virtual adapter or a software rasterizer rather than a physical GPU. A 2018 Mozilla bug report from a Firefox user running inside VMware records the graphics device being identified as "VMware SVGA 3D" (Bugzilla #1429587). Guest systems without paravirtualized graphics commonly fall back to the software renderers llvmpipe or SwiftShader. The fraud-detection vendor FingerprintIQ describes exactly this technique, stating that it analyzes "WebGL renderer strings for virtual GPU indicators (llvmpipe, VirtualBox, VMware SVGA)" (FingerprintIQ, VM detection signals) — a vendor description of its own product, not independently verified behavior.

There is a second-order signal in the same place. That Mozilla bug is a report of WebGL being disabled in the VM, with Firefox reporting FEATURE_FAILURE_UNKNOWN_DEVICE_VENDOR because the VMware driver was not on the vendor allowlist. A page that expects hardware rendering and gets a hard WebGL initialization failure has learned something too. Absence is legible.

Core counts, memory, and screen geometry are weaker corroboration

navigator.hardwareConcurrency and navigator.deviceMemory report values a hypervisor assigns, and default VM configurations cluster on round numbers such as 2 or 4 cores paired with 4 GB. Guest displays often report unusual resolutions that no shipping laptop panel uses. FingerprintIQ names this same pair, citing "screen resolution patterns and CPU core counts typical of VM configurations."

None of these is conclusive on its own. Taken together they form a probability, which is why FingerprintIQ frames the approach as multi-signal and notes that "VM usage combined with other signals can indicate organized fraud rings."

Why these remain heuristics

Every one of these signals has an innocent explanation, and browsers actively interfere with collecting them. MDN notes that the renderer extension "might only be available to privileged contexts or not work at all" depending on browser privacy settings, and that in Firefox the extension is disabled outright when privacy.resistFingerprinting is set to true. A candidate on a hardened browser profile produces the same blank as a candidate hiding something.

More importantly, the browser layer is the wrong place to look. A web page inferring virtualization is inferring it about the environment the page itself is running in. It learns nothing about a separate machine, a separate device, or the host underneath. This is the same structural limit that governs what an interview website can learn about other applications running on your computer: the browser sandbox is the boundary, and fingerprinting does not cross it.

What a desktop lockdown app can observe

Once you install a native application, the sandbox is gone and the question changes from inference to a direct system query.

HackerRank's Desktop App Mode is explicit about this. Among its integrity controls, HackerRank's own documentation lists that it "prevents the test from running on a virtual machine" (HackerRank, Desktop App Mode). The same documentation describes a single non-mirrored monitor requirement, force-closing of other applications, gaze detection through the webcam, and detection of new monitors connected mid-test. Note the verb: HackerRank documents prevention, not silent flagging. The failure mode is that the test does not start.

If you want the full picture of what installing that class of software involves, we covered it separately in what HackerRank's Desktop App Mode installs and watches.

Exam browsers block virtual machines by default

The academic proctoring tier is stricter still, and its documentation is the clearest public evidence of how this works.

Safe Exam Browser's Windows manual states that "SEB detects when it was started in a virtual instead of a native environment and refuses to run, if not explicitly allowed to," and describes the corresponding setting, "Allow SEB to run inside virtual machine," as indicating "if SEB is allowed to run in a virtual machine (e.g. for exams in virtual desktop environments) or not (in order to prevent potential manipulation)" (Safe Exam Browser Windows User Manual). Detection is on, and permission is a deliberate exception an administrator grants.

Respondus LockDown Browser is blunter. Its support documentation covers the warning "The browser cant be used in virtual machine software such as Virtual PC, VMWare and Parallels," and states that students are not permitted to run LockDown Browser when a virtual machine is detected on the system, extending the restriction to thin apps and Windows emulators (Respondus Support). The article's suggested remedies are telling: remove leftover virtualization drivers from Device Manager, or use a different computer. There is no documented instructor override.

ProctorU's operating-system requirements take the same position without the technical drama: "If you are running within a virtual machine when you connect with us, you will be asked to exit your virtual machine and reconnect using your host operating system to take your test" (ProctorU, Operating Systems). That specific page is now marked deprecated in favor of ProctorU's current equipment requirements, so treat it as evidence of a long-standing policy rather than today's exact wording.

Some platforms deliver the assessment inside a VM on purpose

The assumption that a virtual machine is inherently suspicious does not survive contact with the vendors.

Inspera documents Virtual Desktop Infrastructure as a supported, opt-in delivery mode: the functionality "must be activated for your institution by contacting Service Desk," the institution supplies the VDI itself because "the VDI solution is not provided by Inspera," and it is designed for use inside Safe Exam Browser on Windows and Mac (Inspera Help Center, Virtual Desktop Infrastructure). This is precisely the exception SEB's allowVirtualMachine setting exists to enable.

The same logic appears on the hiring side, where assessments that test desktop software have to run that software somewhere, and a provisioned virtual environment is the natural answer. Virtualization is not the signal. Unsanctioned virtualization in a context where the platform expected a native host is the signal.

The false positives nobody plans for

This is where the naive framing breaks down, and it is the part worth raising with a recruiter before test day rather than after.

Plenty of candidates are legitimately virtualized. Anyone taking an assessment on a corporate laptop that routes work through Citrix, Azure Virtual Desktop, or a similar managed desktop is inside a virtual environment by employer policy and often cannot opt out. Cloud development machines produce the same profile. So does a Linux user running Windows-only assessment software in a VM because the vendor ships no Linux build — Respondus's own troubleshooting acknowledges leftover virtualization drivers can trigger the warning on a machine that is not virtualized at all.

The browser-layer signals are looser still. A privacy-hardened Firefox profile suppresses the renderer string. Low-end and GPU-less hardware falls back to software rendering without any hypervisor involved. A conservative fingerprinting rule that treats a software renderer as evidence of virtualization will catch those candidates too.

If an integrity signal does fire, it is a flag and not a verdict, and the process that follows varies enormously by employer — what actually happens after a coding assessment flags you covers that path in detail.

What to do before the assessment

  • Identify the layer. A browser link, a downloadable desktop app, and a live screen share have different rules. The install prompt tells you which one you are in.
  • Read the platform's own disclosure. Pre-test screens and invitation emails state the environment requirements, and they override general advice including this article.
  • Disclose a required virtual desktop in advance. If your only available machine is a managed VDI, say so to the recruiter before the session and ask for an alternative or a note on file. This is a scheduling problem when raised early and an integrity problem when discovered late.
  • Do not treat a VM as a workaround. In the lockdown tier it prevents the test from starting; in the browser tier there is nothing for it to defeat.

Where a desktop assistant fits, and where it does not

Control is a desktop AI interview assistant for Windows and macOS, built for interviews, assessments, and screen-share workflows as a native overlay rather than a browser extension. Its scope is the screen-share and live-interview layer, and its documented behavior concerns what appears in a shared capture surface — a different mechanism from the OS-level enforcement an installed lockdown app performs.

That distinction matters here more than anywhere. When an assessment ships as a lockdown desktop app that force-closes other applications and refuses to run in a VM, that is not a workflow where candidate-side assistance applies, and stacking a virtual machine underneath does not change the outcome. The honest read of HackerRank's documentation is that this tier is designed to be a closed environment, and it should be treated as one. Control publishes a small free allowance — 5 messages and 2 minutes of voice for new users, with paid access from a $12 day pass — which is enough to test how the app behaves in your own setup before you rely on it for anything, and to establish which of your upcoming sessions it is actually appropriate for.

The short version

A browser-based coding assessment cannot detect your virtual machine directly; it can only infer virtualization from graphics renderer strings, core counts, and screen geometry, all of which have innocent explanations and all of which privacy settings can suppress. A desktop lockdown app can check directly, and HackerRank documents that its Desktop App Mode prevents tests from running on a VM. Exam browsers including Safe Exam Browser and Respondus LockDown Browser refuse to launch in a virtual machine unless an administrator explicitly allows it. And several platforms deliver assessments inside virtual desktops deliberately, which is why the useful question is never "is a VM detectable" but "what did this specific platform say it expects, and does my machine match it."

Continue exploring