Steve McIntyre has posted an update on Debian’s UEFI Secure Boot status, to the debian-boot and debian-efi mailing lists. Excerpt:
I’ve just pushed changes to a few bits of d-i this weekend to make SB work for amd64:
* build/util/efi-image: […]
* build/config/arm.cfg, build/config/x86.cfg: […]
* debian/control: […]
* grub-installer/grub-installer: […]
The effect of these changes is that the next daily and weekly debian installer images (tomorrow) should Just Work (TM) end-to-end with UEFI Secure Boot. The changes to efi-image also mean that our next live image builds will do SB (for live and installation).
I’ll test all these again in the next couple of days to verify that things have pulled through as I expect, then it’s time to post to d-d-a and write a blog too. We’ve made great progress already. These last changes just tie it all together for end users.
“UefiLog is a lightweight log system in UEFI environment“
From BlackHat USA 2018’s Tool Arsenal:
Micro-Renovator: Bringing Processor Firmware up to Code
by Matt King
The mitigations for Spectre highlighted a weak link in the patching process for many users: firmware (un)availability. While updated microcode was made publicly available for many processors, end-users are unable to directly consume it. Instead, platform and operating system vendors need to distribute firmware and kernel patches which include the new microcode. Inconsistent support from those vendors has left millions of users without a way to consume these critical security updates, until now. Micro-Renovator provides the ability to apply microcode updates without modifying either platform firmware or the operating system, through simple (and reversible) modifications to the EFI boot partition.
Re: https://firmwaresecurity.com/2018/09/27/apt28-malware-lojax-uses-uefi-rootkit/ and https://firmwaresecurity.com/2018/08/05/bluehat-v18-first-strontium-uefi-rootkit-unveiled/
Sednit UEFI malware is back in the news, because of the recent CCC video, some are hearing about it for the first time, and because Kaspersky Lab is tweeting about it, confusing people that the news came from Kaspersky instead of ESET. Instead, I wish Kaspersky’s GReAT team would be giving some new news about their UEFI research, as hinted from an upcoming BlueHat Israel talk:
[..]For the past year, Kaspersky’s Global Research and Analysis Team (GReAT) extracted and processed thousands of UEFI dumps, applying anomaly analysis and code similarity techniques in order to find the “things that lurk in the shadows”[…]
A library for using the boot & runtime services provided by conforming UEFI implementations.
1) Get the library constants and data structures moved over from C.
2) Split the UEFI library into meaningful modules.
OS Development on Windows – Part 1: Building a UEFI Application in NASM
This is a series of articles on developing your own operating system. We will be focusing on modern techniques, like UEFI booting and 64-bit assembly, and everything will be created from scratch. I will be going step-by-step, explaining every tool we use and every line of code, so that you have a thorough understanding of the process. You should be able to copy-paste these steps and get the same results I am describing. In addition, we will be doing this on Windows and using the tools available on this platform only. OS development is almost exclusively done on UNIX-like systems because the tools are more readily available and documented. I hope to show you how easy this is to do on Windows too.[…]
WIP UEFI EDK2 Implementation for Nintendo Switch
Someone needs to sit down and clarify the various UEFI Rust bindings/libraries, which ones are better than others, which are usable, etc. I think there’s about 4 different Rust/UEFI implementations now.
Here’s a new set of UEFI/Rust bindings and samples.
Written in C. Requires Ruby. There are a few BGRT tools, this one is about a week old.
A new UEFI-centric project. I wish I had time this month to look at what this is, the docs hint at Java being used? and there is Rust code. Via Google Translate:
It is a CP / M-like OS that runs on UEFI and runs on X86-64 architecture.
This program group starts with UEFI and forms an OS that runs on the X86-64 architecture.
Regarding tools/scripts to generate a UEFI USB thumbdrive boot disk, there’s:
1) Rufus (a native GUI app for Windows), which has been around for years.
2) USB_UEFI_Shell, a Unix script, came out two weeks ago.
3) WinInst-UEFI-USB is a macOS script that generates a Windows-centric drive, and this was initially released yesterday.
[[I think there are a few other scripts that I’ve blogged about, but forget the project names at the moment, will create a future post when I can extend the list. There’s also the Tianocore/EDK2 script that DUET uses (or rather used, DUET was just deprecated from EDK2); I think Cloverboot has variations of that script. I guess I should also create a list of documentation that describes how to do this in the future as well. The CHIPSEC user documentation’s UEFI install instructions are one example app that includes this. There’re about a dozen other documents…]]
It is widely known, that UEFI BIOS security aims at preventing the SPI flash memory tampering in the first place. […] Let’s see how such an update process is implemented in our well-known rolling stone Intel NUC Kit NUC7i3BNH. As we can see from the CHIPSEC framework output below, all the mentioned protections are enabled. […]
Highlights — from my perspective — include:
* The bsdinstall(8) utility now supports UEFI+GELI as an installation option.
* The bhyve(8) utility is now able to be run withing a jail(8).
PS: There’re a few days left to purchase a FreeBSD 25th Anniversary t-shirt: