UEFI vulnerabilities classification focused on BIOS implant delivery

View story at Medium.com

Debian UEFI Secure Boot changes!

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.

More info:

https://lists.debian.org/msgid-search/20190113192343.qg3ekmtnyepscwxb@tack.einval.com

UEFI-based screen capture tools

I notice that Microsoft’s Project Mu has a PrintScreenLogger tool (Ctrl+PrtScn):

https://github.com/Microsoft/mu_plus/tree/release/201808/MsGraphicsPkg/PrintScreenLogger

https://microsoft.github.io/mu/dyn/mu_plus/MsGraphicsPkg/PrintScreenLogger/Readme/#printscreenlogger-operation

and that it is already getting some forks:

https://github.com/vscpp/PrintScreenLogger

Before that, there was RU.EFI command line tool (F12):

https://firmwaresecurity.com/2016/09/09/ru-efi-updated-screen-snapshot-support/

and Nikolaj’s CrScreenShotDXE (LeftCtrl+LeftAlt+F12):

https://firmwaresecurity.com/2016/01/04/screenshot-taking-uefi-dxe-driver/

https://firmwaresecurity.com/2016/08/23/william-reviews-crscreenshotdxe/

And there are probably a few other options I’m not aware of, including by IBVs/ODMs.

MicroRenovator: Pre-OS microcode updater

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.

https://github.com/syncsrc/MicroRenovator

https://www.blackhat.com/us-18/arsenal/schedule/#micro-renovator-bringing-processor-firmware-up-to-code-12081

 

MicroRenovator

SedNit, CCC, Kaspersky and ESET

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”[…]

https://firmwaresecurity.com/2019/01/01/costin-raiu-kaspersky-lab-the-things-that-lurk-in-the-shadows/

 

NASM-UEFI: UEFI sample application built in NASM

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.[…]

https://github.com/BrianOtto/nasm-uefi

https://hackerpulp.com/os/os-development-windows-1-building-uefi-applications-nasm/

UEFI

ELVM/8cc: compile any C code into UEFI EBC binary

https://retrage01.hateblo.jp/entry/2018/12/19/000000

https://github.com/retrage/elvm/tree/retrage/ebc-v2

https://esolangs.org/wiki/Main_Page

tools to create UEFI USB boot drives

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.

https://rufus.ie/

2) USB_UEFI_Shell, a Unix script, came out two weeks ago.

https://github.com/skyskyshinysky/usb_uefi_shell

3) WinInst-UEFI-USB is a macOS script that generates a Windows-centric drive, and this was initially released yesterday.

https://github.com/core-process/wininst-uefi-usb

[[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…]]

Embedi: NUClear explotion

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. […]

https://embedi.org/blog/nuclear-explotion/

FreeBSD 12.0 released

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).

https://lists.freebsd.org/pipermail/freebsd-announce/2018-December/001856.html

https://www.freebsd.org/releases/12.0R/relnotes.html

PS: There’re a few days left to purchase a FreeBSD 25th Anniversary t-shirt:

https://www.customink.com/fundraising/freebsd25

Celebrate 25 Years of FreeBSD and Support the Project Fundraiser - unisex shirt design - front