Some models of Gigabyte motherboards download firmware updates insecurely
wired.com
wired.com
The rest of the article is just ranting that if you enable the option in the BIOS to install Gigabyte's software it will end up being installed.
So the next question probably should be, are we sure there is no other signing mechanism at play here? If the blob downloaded needs to pass some sort of signature verification to be loaded, the use/lack of HTTPs wouldn't be a big factor in the security model.
The issue here is not motherboard can execute arbitrary code. Motherboards are trusted hardware. You pass all your keystrokes, network traffic and memory transfers over it.
The issue is motherboard uses its trusted status to run software that performs raw HTTP downloads for firmware. Which is probably bad but might alternatively just be futureproofing to avoid having to deal with expiring certs.
FTP is still advertised for download of this OS, but any tampering or otherwise corrupted files will not pass a signature test when signify is invoked.
The keys are rotated for every release, the next expected key is always included in the current OpenBSD release.
This system would be safe to fetch sensitive content over cleartext http.
EDIT: Here is a paper on signify:
Date: Wed, 31 May 2023 14:13:10 UTC
Valid-Until: Wed, 07 Jun 2023 14:13:10 UTC
which allows spotting any tries of "downgrading" repository to previous version with potentially insecure packagesOf course, you still have to get current time somehow but I guess once RTC is set the device can assume the changes in time won't be huge and just use any kind of https source for that.
It's also useful to issue short lived certs and use the expiry date to handle revocation rather than maintaining a CRL.
https://security.googleblog.com/2015/12/an-update-on-sha-1-c...
Even OCSP was affected: https://cabforum.org/2022/01/26/ballot-sc53-sunset-for-sha-1...
Public CAs are not very secure as NSA proved and I am not sure why there is no better alternative yet.
Or, the cert could have been issued by an authority which issued the cert despite compliance problems.
Web PKI is different than code signing, but if you look at the discussions within the CAB forum, there are very good reasons to limit certificate lifetime.
So the HTTP request leaks information about the update and could be MITM, but the result could at best be an older version? (Which could be a known exploitable one!)
Which is why it might be more future proof to embed your own non expiring cert and use an out-of-band signature verification for firmware rather than relying on being able to establish an HTTPS connection forever.
No harm in also running HTTPS on top of that as you can renew the TLS certificate without issue.
If you have working signature infrastructure you don't need encryption. There is some danger, attacker can see what you are getting, but that's far lower than "the update broke"
They notably aren't saying that the firmware or loader is doing no validation on the executable. Most likely this has some sort of home grown signature on the blob, because if it didn't they instantly would have cooked up a MitM exploit to demonstrate. The fact that they didn't implies that it doesn't work.
That's not to say this is a good design (it's clearly not) or that it can't be abused in non-malware ways (junkware, etc...). But it does seem like it's being spun as a clear security hole when my guess is that it isn't (it certainly hasn't been shown to be).
No, the firmware copies a program from itself to Windows, that program then downloads and executes another program from the internet, without verifying it correctly.
Article says: "The firmware does not implement any cryptographic digital signature verification or any other validation over the executables." So unless that is downright wrong the MitM path is wide open. There is a signature check built into Windows, but way too much stuff has been signed to make that a meaningful barrier.
"The firmware does not implement any cryptographic digital signature verification or any other validation over the executables."
Unless your Windows was configured to only run signed software or Gigabyte would apply the Mark of the Web to these files (which would make it harder for them to run their own update process), the executable file downloaded and run as a service doesn't seem to get checked.
As far as I can make out from the blog post, a MitM attack during the motherboard update process would allow for the motherboard to be flashed with malicious software which in turn would indeed allow for dropping Windows executables onto the system. Luckily, barely anyone uses the built-in online updater for their motherboards.
The https://software-nas/Swhttp/LiveUpdate4 URL is a pretty potential risk. You don't even need MitM to pretend to be that URL as it's not a FQDN. If there's any kind of HTTPS certificate validation that URL seems pretty useless in general. Maybe it's some kind of internal testing server that made it into production?
> The rest of the article is just ranting
I am puzzled by your conclusion.
Edit:
> enable the option in the BIOS to install Gigabyte's software it will end up being installed
Am i blind? Zero snark intended but where in the article is that mentioned?
Now, that junk is preloaded onto the motherboard? Argh.
At least I can still opt not to install it, but jeez.
https://docs.kernel.org/arm64/acpi_object_usage.html says:
> Microsoft only table, will not be supported.
(I know, it's for arm64, but there seems to be no other docs)
But, you can use your Linux kernel to see what's inside your motherboard. Check /sys/firmware/acpi/tables/WPBT, if you have one.
source: https://michlstechblog.info/blog/windows-identify-a-wpbt-bin...
Edit: Found it, it's called WPBT and was a thing at least in 2015 [1], with ASUS using it in 2018 to deploy an upgrade tool [2] and an APT group to deploy a rootkit named as "Lojax" [3].
[1] https://michlstechblog.info/blog/windows-identify-a-wpbt-bin...
[2] https://www.heise.de/hintergrund/Asus-verankert-Update-Tool-...
[3] https://www.heise.de/news/Lojax-Der-Spion-der-aus-dem-BIOS-k...
Even today, I think this is how the Dell Computrace anti-theft mechanism works. If you format the disk and install windows afresh, the computrace agent will install itself on the first bootup and ping the internet to see if the system is marked stolen. If you run Linux on your stolen machine, it works fine.
Obviously there are (stolen) "Linux" machines on ebay which work fine, unless you install windows even once, and then they become computrace locked.
> Eclypsium automated heuristics detected firmware on Gigabyte systems that drops an executable Windows binary that is executed during the Windows startup process.
...Windows startup process allows for executing "dropped binaries"? Would this be via replacing legit startup binary, or another vector?
[0] https://eclypsium.com/blog/supply-chain-risk-from-gigabyte-a...
> During the Driver Execution Environment (DXE) phase of the UEFI firmware boot process, the “WpbtDxe.efi” firmware module uses the above GUID to load the embedded Windows executable file into memory...
Even if a vendor doesn't use WPBT because the reputation of WPBT its a bit iffy these days, they'll just create a fake ACPI node that triggers WIndows Update to download a specific driver from the vendor, which is basically the same thing.
MSI uses this second option for the almost identically named option in the BIOS, and it will also download as much "potentially unwanted applications" as Gigabyte's (was that the Windows Defender euphemism for vendor malware again?) .
Like Gigabyte, it's an option which is disabled by default, but tends to "get enabled" a lot. They don't really have to sneak it in -- even power users enable it since they see the motherboard crapware as a benefit (e.g. temperature sensing, color LED strips and related crap)
That would be probably our job, to raise awareness. But it's exhausting and the result is bloat, crap and spyware as default.
Understanding users would never consent to this. But the majority simply doesn't and I get pragmatic and find solutions, that work for me. Like WindowsDebloat and Linux.
And avoiding touching normal peoples computers, unless with the permission to clean up a bit before using. Not much else one can do.
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Device Installer\DisableCoInstallers = 1Don't get me wrong, it doesn't apply only to MSI. HP's update software ("Support Assistant") for example is spyware by any definition.
You say "documented feature", I say "attractive nuisance".
Although firmware always can tamper with the operating system, it's not a good idea. By formalizing a way to do it, thus making it much easier and more reliable, Microsoft encourages motherboard vendors to do it... which is (1) pretty much guaranteed to lead to them at least sometimes doing things like injecting security holes, and (2) pretty much guaranteed to cause problems that even experienced sysadmins have trouble debugging when it goes wrong in whatever way.
It also further entrenches Windows, of course...
Like here is a mystery zip file with a binary blob and no patch notes off some ftp server in asia. Frequently with a different binary for mainland china for unspecified reasons.
Also, the mainland binaries are usually the ones with the backdoor.
If you're going to make these claims, back them up.
You don't use devices that reputable sources have directly indicated as having backdoors in a secure environment. Period.
As it says in the audit that Supermicro themselves performed "A representative sample of our motherboards were tested..." which basically means nothing since they didn't examine the boards in question. Lest we forget[0]. I doubt the NSA are the only ones engaging in this type of behaviour.
So as the Bitcoin people like to say "don't trust verify".
[0] - https://www.schneier.com/blog/archives/2015/03/cisco_shippin...
https://eclypsium.com/wp-content/uploads/Gigabyte-Affected-M...
Still grossly irresponsible on Gigabyte's part...
Let the people who actaully know how to implement secure software repositories and tools for fetching content from them do their jobs. Motherboard manufacturers should stick to what _they're_ good at and just produce timely firmware updates throughout the life of the product.
Quite predictably however, some motivated individuals have reverse-engineered how these codes are generated and made online tools that can generate them as well(1).
There was a setting to disable the override password, but that was left disabled. I do wonder what the point of this secure password is if you leave a backdoor password enabled anyway.
So I ended up building a separate firewall to isolate myself from that thing.
It's quite remarkable really.
https://download.microsoft.com/download/8/A/2/8A2FB72D-9B96-...
But what is happening here is that Gigabyte actually downloads an application at startup and places _THAT_ one into the WPBT to be executed.
Are they signed?
Does Windows allow the execution of an exe from WPBT that is not signed, or self-signed?
In my opinion Microsoft should release a patch that blocks WPBT execution on Gigabyte until they've proven that they're secure. That is what I expect from the OS.
Bridge the network ports.
Install WireShark.
Port 1 to router, port 2 to motherboard.
Boot computer and see what goes over the bridge?
I'm not sure that is a real solution. The motherboard manufacturer could target other OSes as well, so unless you use a Mac where the hardware is fully controlled by Apple, you'll end up at risk.
In any OS, you'd proba ly have to maintain an explicit "allow list" for any executables that you are OK running on your machine, and make sure that you don't accept any updates without explicitly checking the source yourself.
So short of "don't use EFI" or "don't use Windows", there's not much you can do. There shouldn't be an easy way to disable this, as it'll brick devices when it shouldn't (missing drivers), or doesn't brick devices when it should (bypassing theft protection).
I add an Intel ethernet card to systems that I build as they will offload more work than the typical Realtek controller on a motherboard.
inb4 intellectual property, UEFI software aren't special, they are trash
(Medium I know) https://grzegorztworek.medium.com/using-uefi-to-inject-execu...