INTEL-SA-00290: Intel® Data Direct I/O Technology (Intel® DDIO) and Remote Direct Memory Access (RDMA): VUSec’s NetCAT

From the VUSec site:

NetCAT shows that network-based cache side-channel attacks are a realistic threat. Cache attacks have been traditionally used to leak sensitive data on a local setting (e.g., from an attacker-controlled virtual machine to a victim virtual machine that share the CPU cache on a cloud platform). With NetCAT, we show this threat extends to untrusted clients over the network, which can now leak sensitive data such as keystrokes in a SSH session from remote servers with no local access. The root cause of the vulnerability is a recent Intel feature called DDIO, which grants network devices and other peripherals access to the CPU cache. Originally, intended as a performance optimization in fast networks, we show DDIO has severe security implications, exposing servers in local untrusted networks to remote side-channel attacks.

Intel agrees this is a significant vulnerability, having awarded NetCAT a bounty and recommending users to “limit direct access from untrusted networks when DDIO & RDMA are enabled“. This essentially means that in untrusted network environments DDIO and/or RDMA should be disabled to provide security. To the best of our knowledge, this is the first time a major hardware vendor like Intel cautions against using a CPU feature in untrusted local networks.

https://software.intel.com/security-software-guidance/insights/more-information-netcat

https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00290.html

VuSec info:

Roadmap to TPM documentation from UEFI POV

William Leara, a UEFI firmware engineer, has a new blog post giving a roadmap to the TCG’s TPM specs:

A Roadmap to TCG’s TPM Documentation: The Trusted Platform Module (TPM) found in most computers today is a device governed by the specifications of the Trusted Computing Group (TCG). Truly grokking how a TPM operates is a daunting task: the specification for the TPM, called the TPM Library Specification, currently comes in four parts, totaling 2237 pages. (!) However, even those 2237 pages aren’t the whole story. This article provides a roadmap to the various specifications that define the TPM, in order to provide the reader with a comprehensive picture of what documentation is available, and what must be studied to acquire TPM mastery.[…]

https://www.basicinputoutput.com/2019/09/a-roadmap-to-tcgs-tpm-documentation.html

KLEE-Native, a fork of KLEE that operates on binary program snapshots by lifting machine code to LLVM bitcode

Binary symbolic execution with KLEE-Native

by Sai Vegasena, New York University, and Peter Goodman, Senior Security Engineer

KLEE is a symbolic execution tool that intelligently produces high-coverage test cases by emulating LLVM bitcode in a custom runtime environment. Yet, unlike simpler fuzzers, it’s not a go-to tool for automated bug discovery. Despite constant improvements by the academic community, KLEE remains difficult for bug hunters to adopt. We’re working to bridge this gap! My internship project focused on KLEE-Native, a fork of KLEE that operates on binary program snapshots by lifting machine code to LLVM bitcode. […]

https://github.com/trailofbits/klee

Purism: Announcing the PureBoot Bundle: Tamper-evident Firmware from the Factory

We have been promoting the benefits of our PureBoot tamper-evident firmware with a Librem Key for some time, but until now our laptops have shipped with standard coreboot firmware, that didn’t include tamper-evident features. To get tamper-evident features, you had to reflash your Librem laptop with PureBoot firmware after the fact, using our standard firmware update process. One of the biggest challenges for most people using PureBoot was the initial setup process–but many people might find installing an OS challenging too. The best way to solve this challenge is for us to do the setup for you–and that’s what we are happy to announce today.[…]

https://puri.sm/posts/announcing-the-pureboot-bundle-tamper-evident-firmware-from-the-factory/

Samsung Trusted Boot and TrustZone Integrity Management Explained

When you boot up any device, that jump rom a powered-down processor to a device running trusted software requires hardware support. The old Basic Input/Output System (BIOS) of over 30 years ago didn’t provide any protections — it could barely get an operating system loaded. Since then, system vendors have been trying to build more security into the boot process. Industry-standard approaches such as Unified Extensible Firmware Interface (UEFI) have set the groundwork and created best practices. Today, smartphones need that same protection. The Android community has specified some starting points, but device vendors, such as Samsung, have built on those to bring smartphone security to “enterprise-ready” levels. The end goal is to make sure the smartphone is running trusted software. Two components helping ensure that are secure booting with Samsung Trusted Boot and kernel integrity checking through TrustZone-based Integrity Management Architecture (TIMA).[…]

SMMMmmmm

I got a super nice project, and for that I needed to learn how the SMM really works. Again I started dipping my toes in this ocean of knowledge and I hope I don’t get too excited and drown myself before even getting started 😉 For the people who are not sure if they want to read all this: In SMM, it is possible to modify SMM saved execution context. SMM also sets its own IDT, it is initialized by the BIOS (DXE) and tons of cool stuff. Normally, CS base address is system-management RAM (SMRAM) base address and SMM code is copied to SMRAM in UEFI initialization and SMRAM is locked right after for security reasons. […]

https://barbieauglend.re/2019-08-15-system-managing-god/

Google SafeSide: A project to understand and mitigate software-observable side-channels

SafeSide is a project to understand and mitigate software-observable side-channels: information leaks between software domains caused by implementation details outside the software abstraction. Unlike other side-channel attacks — e.g. measuring power use or electromagnetic emissions — software-observable side-channels don’t require physical access or proximity. Our early focus is on transient execution attacks and leaks from software cryptography implementations.

https://github.com/google/safeside

ARM ASL Interpreter: Example implementation of Arm’s Architecture Specification Language (ASL)

Copyright Arm Limited (c) 2017-2019
Version 0.0 alpha

https://github.com/ARM-software/asl-interpreter

Project ACRN 1.2 released

This release includes:

  • Support for OVMF as virtual boot loader for Service VM to launch Clearlinux, VxWorks or Windows. Secure boot is also supported
  • Support for Kata containers.
  • Windows as a Guest (WaaG): USB host (xHCI) mediator
  • Virtualization support for Always Running Timer (ART)

BootBandit: A macOS bootloader attack

[…]In this paper, we discuss an attack that borrows concepts from the evil maid. We assume exploitation can be used to infect a bootloader on a system running macOS remotely to install code to steal the user’s password. We explore the ability to create a communication channel between the bootloader and the operating system to remotely steal the password for a disk protected by FileVault 2. On a macOS system, this attack has additional implications due to “password forwarding” technology, in which a user’s account password also serves as the FileVault password, enabling an additional attack surface through privilege escalation.[…]

https://onlinelibrary.wiley.com/doi/full/10.1002/eng2.12032

Dropbox/OCP RunBMC: the first open source hardware spec for the BMC

https://www.opencompute.org/documents/ocp-runbmc-daughterboard-card-design-specification-v1-4-1-pdf

https://blogs.dropbox.com/tech/2019/08/runbmc-ocp-hardware-spec-solves-data-center-bmc-pain-points/

https://blog.dropbox.com/topics/technology/dropbox-contributes-runbmc-spec-to-the-open-compute-project0

Qiling: binary emulation framework

Qiling is an advanced binary emulation framework, with the following features:

  • Cross platform: Windows, MacOS, Linux, BSD
  • Cross architecture: X86, X86_64, Arm, Arm64, Mips
  • Multiple file formats: PE, MachO, ELF
  • Emulate & sandbox machine code in a isolated enviroment
  • Provide high level API to setup & configure the sandbox
  • Fine-grain instrumentation: allow hooks at various levels (instruction/basic-block/memory-access/exception/syscall/IO/etc)
  • Allow dynamic hotpatch on-the-fly running code, including the loaded library
  • True framework in Python, make it easy to build customized security analysis tools on top

https://github.com/qilingframework/qiling

Qualcomm Secure Boot

[…]In 2017, we released our first public whitepaper describing the philosophy and implementation of the Qualcomm Technologies’ Secure Boot solution. Since then, the solution has been improved and we are pleased to make available a new release of the “Secure Boot and Image Authentication” technical overview whitepaper.[…]

https://www.qualcomm.com/news/onq/2019/08/21/secure-boot-and-image-authentication-improvements

https://www.qualcomm.com/documents/secure-boot-and-image-authentication-technical-overview-v20

MELoader: Linux i386 tool to load and execute ME modules

[…]This tool requires a rom library dump from the ME to use. See https://github.com/ptresearch/IntelTXE-PoC for a means of acquiring one, though that will yield a ROM for a different chipset (BXT). That chipset shares most core ME peripherals with SPT so changing the code will mostly mean tweaking addresses.

https://github.com/peterbjornx/meloader