Positive Technologies: Intel VISA: Through the Rabbit Hole

BlackHat Asia 2019 presentation:

The complexity of x86-based systems has become so great that not even specialists can know everything. The recently discovered Meltdown/Spectre vulnerabilities, as well as numerous issues in Intel Management Engine, underscore the platform’s mindboggling intricacies. So, the chips manufacturer has to actively use of various means for manufacturing verification and post-silicon debugging. We found that modern Platform Controller Hub (PCH) and CPU contain a full-fledged logic signal analyzer, which allows monitoring the state of internal lines and buses in real time—a gold mine for researchers. A vulnerability previously discovered by us, INTEL-SA-00086, enabled studying this technology, which is called Intel Visualization of Internal Signals Architecture (VISA). We believe it is used for manufacturing line verification of chips. With an enormous number of settings, VISA allows for the creating of custom rules for capturing and analyzing signals. VISA documentation is subject to an NDA and not available to ordinary users. However, we will show how, with the help of publicly available methods, one can access all the might of this technology WITHOUT ANY HARDWARE MODIFICATIONS on publicly available motherboards. With VISA, we succeeded in partially reconstructing the internal architecture of PCH and, within the chip, discovered dozens of devices that are invisible to the user yet are able to access certain critical data. In our talk, we will demonstrate how to read signals from PCH internal buses (for example, IOSF Primary and Side Band buses and Intel ME Front Side Bus) and other security-sensitive internal devices.

https://www.blackhat.com/asia-19/briefings/schedule/index.html#intel-visa-through-the-rabbit-hole-13513

OffensiveCon: Attacking Hardware Root of Trust from UEFI Firmware

Many hardware vendors armoring modern Secure Boot by moving Root of Trust to the hardware. It is definitely the right direction to create more difficulties for the attacker. But usually, between hardware and firmware exist many layers of code. Also, hardware vendors always fighting for boot performance which creates interesting security issues in actual implementations. In this presentation, I’ll explain new security issues to bypass specific implementation of Intel Boot Guard technology in one of the most common enterprise vendors. The actual vulnerability allows the attacker to bypass Intel Boot Guard security checks from OS without physical access to the hardware. Also, I’ll cover topics including Embedded Controller (EC) with focus on UEFI Firmware cooperation and Authenticated Code Module (ACM) runtime environment. It is brand new research not based on my previous Boot Guard discoveries.

https://www.offensivecon.org/speakers/2019/alex-matrosov.html

clang: Automatic variable initialization

Automatic variable initialization: Add an option to initialize automatic variables with either a pattern or with zeroes. The default is still that automatic variables are uninitialized. Also add attributes to request uninitialized on a per-variable basis, mainly to disable initialization of large stack arrays when deemed too expensive.[…]

https://reviews.llvm.org/rL349442

Wave Computing to open source MIPS ISA

Wave Computing®, the Silicon Valley company that is accelerating artificial intelligence (AI) from the edge to the data center, announced it will open source its MIPS instruction set architecture (ISA) to accelerate the ability for semiconductor companies, developers and universities to adopt and innovate using MIPS for next-generation system-on-chip (SoC) designs. Under the MIPS Open program, participants will have full access to the most recent versions of the 32-bit and 64-bit MIPS ISA free of charge – with no licensing or royalty fees. Additionally, participants in the MIPS Open program will be licensed under MIPS’ hundreds of existing worldwide patents.

https://wavecomp.ai/wave-computing-launches-the-mips-open-initiative

Eurocom GdrSecInfo computer security workshop: presentations online

Presentations:

An honest look at the state of enterprise security
The need for Hardware roots of trust
Understanding Linux Malware
Security and privacy issues in avionics communications
Formal methods: from source-level safety to binary-level security
BinCAT: purrfecting binary static analysis

https://gdr-securite-ssl.loria.fr/pmwiki.php/SSL/Sophia21112018

IDC_Importer: A Binary Ninja plugin for importing IDC database dumps from IDA Pro

IDC Importer (Plugin)

Author: SpecterDev

Allows users to import idc database dumps from IDA into Binary Ninja. Making the switch from IDA to Binary Ninja but need your function names and symbols to carry over? This plugin will take an IDC file and automatically import the functions, strings, and comments.

https://github.com/Cryptogenic/idc_importer

What is Keystone and it’s first open-source release?

Re: https://firmwaresecurity.com/2018/11/12/keystone-open-source-secure-hardware-enclave/

There is a new document on their site, with more info on this project.

https://keystone-enclave.org/2018/12/13/what-is-keystone.html

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

rust-guide: Guide to develop secure applications with Rust

The object of this document is to provide hints and recommendations for secure applications development using the Rust programming language. It is not intended to be a course on how to write Rust programs, there are already plenty of good learning resources for this purpose (see the External references section below). The purpose is rather to guide the programmer and to inform him about certain pitfalls, especially in case he is involved in the development of applications with strong security requirements. These recommendations form a complement to the good level of trust the Rust language already provides. That said, recalls are sometimes necessary for clarity, and the experienced Rust programmer may rely solely on Recommendation or Warning inserts.

https://github.com/ANSSI-FR/rust-guide

Rootkits and Bootkits: all chapters now available in Early Access (~600 p)

Rootkits and Bootkits: Reversing Modern Malware and Next Generation Threats
by Alex Matrosov, Eugene Rodionov, and Sergey Bratus
April 2019 (estimated), 504 pp.
ISBN-13:  9781593277161

https://nostarch.com/rootkits

PS: While you’re ordering this at NoStarch.com, note:

flare-emu: IDA Pro + Unicorn Engine

flare-emu marries IDA Pro’s binary analysis capabilities with Unicorn’s emulation framework to provide the user with an easy to use and flexible interface for scripting emulation tasks. It is designed to handle all the housekeeping of setting up a flexible and robust emulator for its supported architectures so that you can focus on solving your code analysis problems. Currently, flare-emu supports the x86, x86_64, ARM, and ARM64 architectures.[…]

https://github.com/fireeye/flare-emu

Embedi: NUClear explotion

https://twitter.com/_embedi_/status/1072876745383124992

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/

binaryanalysis-ng: Binary Analysis Next Generation (BANG): framework for checking firmware

Binary Analysis Next Generation (BANG) is a framework for unpacking files (like firmware) recursively and running checks on the unpacked files. Its intended use is to be able to find out the provenance of the unpacked files and classify/label files, making them available for further analysis.

https://github.com/armijnhemel/binaryanalysis-ng