frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Open in hackernews

I made my VM think it has a CPU fan

https://wbenny.github.io/2025/06/29/i-made-my-vm-think-it-has-a-cpu-fan.html
288•todsacerdoti•6h ago

Comments

lpapez•5h ago
Using such tricks might seem like a cute way for malware to make analysis difficult, but often times calling these obscure system APIs can be detected statically, and you bet that it will flagged as suspicious by AV software. If the malware binary is not obfuscated to hide such calls, I'd even call them "counterproductive" for the malware authors!

The legit programs interested in these APIs are almost always binaries signed by well known (and trusted) CAs - making it sensible for the analysis to report sus behavior.

I worked as a junior in this field, and one of my tasks was to implement regex pattern matching to detect usages of similar APIs. Surprisingly effective at catching low hanging fruit distributed en masse.

amelius•5h ago
So, from a security perspective, maybe we should run all software inside a VM then?
neoromantique•5h ago
Qubes OS exists
jbverschoor•5h ago
That’s how the Xbox works too
keyringlight•4h ago
IIRC the xbox one onwards (switching from PowerPC to AMD x86) gave them synergy with AMD's efforts to push hard into servers with virtualization, as well as MS pushing Azure
boricj•5h ago
We wouldn't need to if we used capability-based operating systems.
immibis•3h ago
Every app would have a long permissions dialog. Every app would want to read your CPU fan for no good reason (just as another piece of fingerprint) so you'd get use to clicking accept so you could use any apps at all. The malware would still get through. This already happened on mobile.
eddythompson80•5h ago
That leaves you vulnerable to side channel attacks. From a security perspective, we shouldn’t run software at all, but if you have to, just use AWS Lambda.
amelius•4h ago
What kind of side-channel attacks? You mean caching-related?
tclancy•2h ago
My response is in the queue, please be patient.
jeroenhd•4h ago
You'd lose things like hardware acceleration.

That said, plenty of malware will stop downloading additional modules or even erase itself when it detects things that could indicate it's being analysed, like VirtualBox drivers, VMWare hardware IDs, and in the case of some Russian malware relying on the "as long as we don't hack Russians the government won't care" tactic, a Russian keyboard layout.

It won't stop less sophisticated malware, but running stuff inside of a VM can definitely have viruses kill themselves out of fear of being analysed.

OneDeuxTriSeiGo•3h ago
> You'd lose things like hardware acceleration.

This is increasingly less true. SR-IOV and S-IOV are becoming increasingly common even in consumer hardware and OS manufacturers are increasingly leaning on virtualisation as a means to protect users or provide conveniences.

WSL has helped with virtualisation support quite a bit as a means of getting hardware manufacturers to finally play nice with consumer virtualisation.

And Microsoft is even now provides full ephemeral Windows VM "sandboxes". The feature that came with them that surprised me was that they support enabling proper GPU virtualisation as well.

AshamedCaptain•1h ago
But then you have your "VMs" accessing the real hardware, so the benefits of the VM reduce if not disappear. You literally can't have the cake and eat it too.
smegger001•3h ago
Soundlike having a virtual.Russian keyboard and installing VMware tools or virtualbox addons to host and not using them is the new low overhead antivirus.
jeroenhd•4h ago
Malware is signed surprisingly often these days, you can't rely on malware companies not to sign their binaries anymore. Hacked code signing certificates seem to be all over the place and Microsoft seems very reluctant to revoke trust out of fear of actually breaking their original customers' software.

Same goes for the common vulnerable drivers that malware likes to load so they can get into the kernel. A weird tiny binary making WMI calls may stand out, but a five year old overclocking utility full of vulnerabilities doing the same queries wouldn't.

From the research I've read, this doesn't seem to be about avoiding detection as much as it's about not detonating the real payload on a malware analyst's machine. If the AV flags the binary or the detection trips, the second stage isn't downloaded and the malware that does stuff that makes the news doesn't execute (yet).

gruez•4h ago
>Hacked code signing certificates seem to be all over the place and Microsoft seems very reluctant to revoke trust out of fear of actually breaking their original customers' software.

AFAIK most (all?) code signing CAs are cracking down on this (or maybe Microsoft is pushing them) by mandating that signing keys be on physical or cloud hosted HSMs. For instance if you try to buy a digicert code signing certificate, all the delivery options are either cloud or physical HSMs.

https://www.digicert.com/signing/code-signing-certificates

dom96•3h ago
Anti virus software just guessing what is and isn’t malware by analysing static calls is actually really annoying. If you’re doing that then why not just make an allow list of trusted software and mark any software not in that list as being malware. It’ll work just about the same.
mystified5016•3h ago
That's pretty much exactly how it works now. We instead analyze programs and guess that they're safe.

Well, after we send a copy of the program to Microsoft, of course

xyst•2h ago
The trick is to become a company like "CrowdStrike", get your crappy software that runs at kernel level signed, then you can run all of the "suspicious" calls to sys apis all you want. Forget determining if it’s a VM or not.

Just push untested code/releases on production machines across all of your customers. Then watch the world burn, flights get delayed, critical infrastructure gets hammered, _real_ people get impacted.

_Legitimate_ companies have done more damage to American companies than black hat hackers or state actors can ever dream of.

The folks behind xz util within libzma aspire to cause the amount of damage companies like ClownStrike and SolarWinds have caused.

AshamedCaptain•5h ago
I am yet to see _any_ consumer-oriented motherboard where SMBIOS descriptions have even a passing relationship to the actual hardware. I would not be surprised if this malware would also fail in 50% of real hardware out there. But I also guess malware can afford this failure rate; as long as it guarantees it also fails on 100% of VMs/debuggers, it is worth it.

But if these assumptions are true then I'd presume malware authors would do timing checks rather than the trivially "emulable" SMBIOS.

baby_souffle•5h ago
> I am yet to see _any_ consumer-oriented motherboard where SMBIOS descriptions have even a passing relationship to the actual hardware.

This seems to be especially true for cheap chineese boxes. If I had a dollar for every time I saw "to be filled in by OEM" strings in "live/production" BIOS images ... i'd be retired :).

smileybarry•5h ago
I’m fairly sure my expensive ASUS ROG motherboard (ergo: not even their budget line) also had a “to be filled in by OEM” string that I couldn’t even override. (ASUS have a utility but it’s not publicly available, probably just for computer shops)
gruez•4h ago
That's basically my experience for 2 other "gaming" motherboard brands that aren't ASUS as well. My guess is that people who build their own PCs probably don't care about SMBIOS serial numbers being properly populated, so why bother?
iforgotpassword•3h ago
But that's exactly the point. Computer shops that sell complete systems are supposed to put their name in the "system manufacturer" field. If you bought the mainboard yourself and built your own system, then who do you think should have replaced that string?
dragonwriter•2h ago
If you buy a motherboard to build your own (or any, even if it is for someone else) PC, you are the OEM.
kotaKat•4h ago
Bonus points for a non-unique UEFI UUID that is already enrolled in some random company's Microsoft Intune / Windows Autopilot instance so when you fire it up off a fresh Windows install it begs you to sign into $RANDOM_COMPANY_WITH_BAD_IT_CONTROLS.

Triple-points if the vendor includes a sticker telling you to complete Windows OOBE without connecting it to the Internet to avoid this.

snickerdoodle12•3h ago
I still can't believe that microsoft allows companies to essentially brick machines they don't even own like that. Seems criminal to me.
dylan604•2h ago
More criminal than hard coding UUID for some other device?
snickerdoodle12•1h ago
You can do whatever you want with your device. Microsoft is also doing whatever they want with your device.
sweetjuly•22m ago
If the OEM hadn't messed up and reused UUIDs, it would be "Microsoft letting companies do whatever they want with their device", which is not unreasonable. OEMs reusing UUIDs for some ridiculous reason is breaking down the chain of "whose device is it".
iforgotpassword•3h ago
But this is correct, if the Mainboard was bought as is and was not part of a complete system, the system manufacturer is obviously not filled out as there is none.
encom•3h ago

    # Manufacturer: Micro-Star International Co., Ltd.
    # Product Name: PRO Z790-A WIFI (MS-7E07)

    $ sudo cat /sys/firmware/dmi/tables/DMI | strings | grep -i filled | wc -l
    10
Sigh...
msgodel•4h ago
How does Linux find the fans these days? Is it an ACPI/EFI thing now? Nearly all my machines seem to have correct fans/sensors.
surajrmal•4h ago
Yes acpi is far more reliable.
AshamedCaptain•15m ago
Through a bazillion of practically motherboard-model-specific hacks:

https://lxr.linux.no/#linux+v6.7.1/drivers/hwmon/

frollogaston•3h ago
Is it the actual malware checking this or some researcher-created malware samples?
hinkley•2h ago
Malware has bugs. In fact some viruses have done far more damage than the author intended due to bugs.

There was a substantially effective virus years ago that made it around the world in 90 minutes, and it turns out a bug in its networking code caused it to spread half as fast as it should have. Meaning it should have been everywhere in 45 minutes. You can still do a lot of damage without hitting every machine in existence.

wkat4242•5h ago
Huh so new antimalware tactic: Buy passively cooled PC :)

And also set up a Russian keyboard: https://krebsonsecurity.com/2021/05/try-this-one-weird-trick...

dale_glass•4h ago
Passively cooled PC probably won't work because the board will still have fan headers even if nothing is connected to them.
dom96•4h ago
So we just need to implement the opposite of what OP has on our PCs, i.e. make OS think there are no fans.
wkat4242•2h ago
Yes and another method of controlling them.
syntaxfree•2h ago
External cooling device?
theodric•2h ago
The computer knows there's a fan because it sees tacho output. If it doesn't see tacho, shrug. You can get an external temperature-controlled PWM controller for a few units of your local currency on AliExpress, steal 12V from somewhere (Molex header or whatever) and run the fans off that. Figure out where to put the temp sensor to get the desired effect.

There are far better ways to do this, but they require software engineering, not €3 and 15 minutes.

patrakov•3h ago
Writing this from a passively cooled (Streacom FC8 Evo) Linux PC with a Russian keyboard.

    # dmidecode 3.6
    Getting SMBIOS data from sysfs.
    SMBIOS 2.8 present.

    Handle 0x002C, DMI type 27, 15 bytes
    Cooling Device
        Temperature Probe Handle: 0x0029
        Type: <OUT OF SPEC>
        Status: <OUT OF SPEC>
        Cooling Unit Group: 1
        OEM-specific Information: 0x00000000
        Nominal Speed: Unknown Or Non-rotating
        Description: Cooling Dev 1

    Handle 0x002F, DMI type 27, 15 bytes
    Cooling Device
        Temperature Probe Handle: 0x0029
        Type: <OUT OF SPEC>
        Status: <OUT OF SPEC>
        Cooling Unit Group: 1
        OEM-specific Information: 0x00000000
        Nominal Speed: Unknown Or Non-rotating
        Description: Not Specified

    Handle 0x0037, DMI type 27, 15 bytes
    Cooling Device
        Temperature Probe Handle: 0x0036
        Type: Power Supply Fan
        Status: OK
        Cooling Unit Group: 1
        OEM-specific Information: 0x00000000
        Nominal Speed: Unknown Or Non-rotating
        Description: Cooling Dev 1
So a cooling device is still present.

Sensor data:

    iwlwifi_1-virtual-0
    Adapter: Virtual device
    temp1:        +59.0°C  

    acpitz-acpi-0    # Fake, always reports these temperatures
    Adapter: ACPI interface
    temp1:        +27.8°C  
    temp2:        +29.8°C  

    coretemp-isa-0000
    Adapter: ISA adapter
    Package id 0:  +51.0°C  (high = +86.0°C, crit = +92.0°C)
    Core 0:        +51.0°C  (high = +86.0°C, crit = +92.0°C)
    Core 1:        +47.0°C  (high = +86.0°C, crit = +92.0°C)
    Core 2:        +49.0°C  (high = +86.0°C, crit = +92.0°C)
    Core 3:        +49.0°C  (high = +86.0°C, crit = +92.0°C)
irusensei•3h ago
> Streacom FC8 Evo

I normally think PC cases are gaudy and boring even when trying to evoke some style. That stuff in Streacom website however makes me want to build something with it.

peter422•4h ago
Pretty funny that a blog post talking about complex and innovative ways to help investigate malware has a block of the lowest quality, scummiest ads that probably lead to malware.
ajd555•4h ago
I wonder if making a user endpoint actually look like a VM could help? Maybe adding some VM like flags to throw off some malware? I feel that bad actors would catch on, but it might offer some protection for some low hanging vulnerabilities?
staplung•4h ago
That’s nothing. I make my VMs think they have dust.
brcmthrowaway•4h ago
What an arcane piece of tech. Why not use EFI?
jmkni•4h ago
Hang on, does this mean the MacBook Air is less vulnerable to some malware?
b0a04gl•3h ago
Mitre ATT&CK's T1497.001 (VM Detection) lists SMBIOS checks as a known vector means its open for injection anyways.

i did one little expirement on faking VM's powersupply. done it with 'HotReplaceable=Yes' and 'Status=OK', and you suddenly look like a $5k baremetal server.

cmd used

pip install dmigen dmigen -o smbios.bin \

--type0 vendor="American Megatrends",version="F.1" \

--type1 manufacturer="Dell Inc.",product="PowerEdge T630" \

--type39 name="PSU1",location="Bay 1",status=3,hotreplaceable=1

dragonwriter•3h ago
FYI: You need two line breaks to force an actual break on HN, or you need to indent each line by two to force code mode.
snickerdoodle12•3h ago
What's up with the body shaming in this article?

> But that’s smol pp way of thinking

redundantly•3h ago
Because they think it's funny. Personally, I just found it off-putting and stopped reading.
marcosscriven•1h ago
Fascinating article. It prompted two questions for me:

1) With the level of expertise, would it be as easy, or easier, to modify the check in the malware itself?

2) How much work would it be for a something like KVM to fake absolutely everything about a PC so it was impossible to tell it was a VM?

acrophiliac•1h ago
Misread the title as "I made my VM think it WAS a CPU fan" and was a bit disappointed to find the actual article was not about a VM with an identity crisis.
1vuio0pswjnm7•1h ago
I haven't bought a computer cooled by a fan in over 13 years.

SlugOS has a working PMM, VMM, and Heap allocator

https://imgur.com/a/MG06P0A
1•OSDeveloper•58s ago•1 comments

Nanosaur: Jetson robot 3D printable, open-source, ROS 2 and Isaac ROS based

https://nanosaur.ai/
1•882542F3884314B•7m ago•0 comments

Reimplementing Dynamic Arrays

https://github.com/florianmarkusse/FLOS/blob/master/articles/dynamic-array/article.md
1•flox901•8m ago•0 comments

Ask HN: Languages Designed for WASM?

1•90s_dev•9m ago•2 comments

Foxing

https://en.wikipedia.org/wiki/Foxing
1•perihelions•14m ago•0 comments

Mailcoach

https://www.mailcoach.app
1•effortlessback•15m ago•0 comments

TenZorro – AI-based platform with various digital services

https://tenzorro.com/en
1•paulo20223•19m ago•0 comments

Boeing 787 software may have caused AI crash: Aviation expert

https://sundayguardianlive.com/investigation/boeing-787-software-may-have-caused-ai-crash-aviation-expert
1•fcpguru•19m ago•1 comments

Mathematician Terence Tao's three hour long conversation with Lex Fridman [video]

https://www.youtube.com/watch?v=HUkBz-cdB-k
1•ViktorRay•20m ago•0 comments

Ask HN: According to HN and r/reactjs, NextJS = bad. Yet many sites use it. Why?

1•consumer451•20m ago•0 comments

UV-C light kills nearly everything–except this unusual organism

https://www.science.org/content/article/uv-c-light-kills-nearly-everything-except-unusual-organism
1•domofutu•26m ago•0 comments

ESP32-LLM: Running a Little Language Model on the ESP32

https://github.com/AIWintermuteAI/esp32-llm
1•lnyan•28m ago•0 comments

Ruthless prioritization while the dog pees on the floor

https://longform.asmartbear.com/prioritization/
1•kiyanwang•29m ago•0 comments

Y Combinator (Math) Explained

https://anish.ink/posts/ycombinator.html
2•kaiwenwang•31m ago•0 comments

Ask HN: What Happened to James Halliday ( Substack)?

1•bit1993•32m ago•0 comments

Silicon Valley Insider Exposes Cult Like AI Companies [video]

https://www.youtube.com/watch?v=8enXRDlWguU
1•ttctciyf•32m ago•1 comments

Uncovering and addressing the secret water footprint of AI models

https://arxiv.org/abs/2304.03271
1•1vuio0pswjnm7•32m ago•0 comments

Semantic Kernel for JavaScript

https://kerneljs.com/
1•afshinmeh•32m ago•1 comments

Show HN: Kanban-Board agent management for software dev agents, open source

https://github.com/cairn-dev/cairn
1•brich4419•37m ago•0 comments

Buridan's Ass

https://en.wikipedia.org/wiki/Buridan%27s_ass
1•danielschreber•38m ago•0 comments

Apple's Swift Working to Support Android App Development

https://www.macrumors.com/2025/06/27/swift-to-support-android-app-development/
1•have-a-break•38m ago•0 comments

Cozy cats live in a Raspberry Pi-powered luxury automated smart house

https://www.tomshardware.com/raspberry-pi/cozy-cats-live-in-a-raspberry-pi-powered-luxury-automated-smart-house
3•Bluestein•40m ago•0 comments

The Asymmetry of Destruction

https://passingtime.substack.com/p/the-asymmetry-of-destruction
6•27153•40m ago•1 comments

A blog post is a long and complex search query to find people (2022)

https://www.henrikkarlsson.xyz/p/search-query
1•Tomte•41m ago•0 comments

Female lineages and changing kinship patterns in Neolithic Çatalhöyük

https://www.science.org/doi/10.1126/science.adr2915
1•domofutu•41m ago•0 comments

CEOs say AI is just a tool to help workers, but our jobs are already on the line

https://gizmodo.com/ceos-are-quietly-telling-us-the-truth-ai-is-replacing-you-2000621907
31•rntn•42m ago•26 comments

Show HN: I built an AI chatbot that learns from your website to answer questions

https://github.com/The-Pocket/PocketFlow-Tutorial-Website-Chatbot
1•zh2408•43m ago•0 comments

Childhoods of Exceptional People

https://www.henrikkarlsson.xyz/p/childhoods
1•almost-exactly•43m ago•0 comments

GoFreeTranslate – A translation app written in Go using Gio UI

https://github.com/argosopentech/go-free-translate
1•argosopentech•44m ago•0 comments

Show HN: AI-generated conf-style feedback to imp your paper before submission

https://review.cspaper.org/
1•philCS•45m ago•0 comments