B-Sides Portland schedule announced

Workshop highlights:

http://www.bsidespdx.org/workshops

Hands-on JTAG for fun and root shells
JTAG may be almost 30 years old with little change, but that doesn’t mean most people really understand what it does and how. This workshop will start with a brief introduction to what JTAG really is, then quickly dive into some hands-on practice with finding, wiring, and finally exploiting a system via JTAG.
For this workshop, we’ll target a Raspberry Pi with an ARM microprocessor. In order to interact with the system, we’ll use a JTAG interface cable from FTDI. We won’t do any hardware modifications, but we will hook up wires in weird and wonderful ways to make the Raspberry Pi do things it otherwise shouldn’t.

Presentation highlights:

http://www.bsidespdx.org/speakers2015

Jtagsploitation: JTAG to Root, 5 Ways
JTAG comes up in nearly every hardware-related hack. In order to do anything via JTAG, you generally need a hardware debugging device that connects to anything from a standard header to undocumented test points scattered around a device. JTAG access is almost always ‘game over’ but it’s not always clear how to turn that hardware access into privileged software access on the system.
This talk will enumerate a number of different ways to turn a ‘check’ for jtag access into the ‘checkmate’ of root shell access. Each example will demonstrate a unique method for getting root access via JTAG. Each method is also general enough to be broadly applicable across different hardware architectures and implementations. Example code and scripts will be released at the talk.

Scared Poopless – LTE and *your* laptop
With today’s advancement in connectivity and internet access using 3G and LTE modems it seems we all can have a device that’s always internet capable, including our laptops, tablets, 2 in 1’s ultrabook. It becomes easier to be online without using your WiFi at all.  In our talk we will demonstrate and discuss the exploitation of an internal LTE modem from Huawei which can be found in a number of devices including laptops by HP.

NSA Playset: Bridging the Airgap without Radios
The NSA ANT catalog contains a number of hardware implants that enable communication, command and control, and data exfiltration over alternate channels that would not typically be monitored. The listed tools fall short when it comes to exfiltrating data from particularly secure or heavily monitored, or radio hostile locations.
This talk introduces a new addition to the NSA Playset. BLINKERCOUGH is inspired by some of the capabilities described in the ANT catalog and expands upon the features of CHUCKWAGON in a number of ways. BLINKERCOUGH is implanted inside an unremarkable cable and communicates optically to jump air gaps, escape faraday cages, and communicate out-of-band with zero radio footprint. This talk will outline the development of the hardware, present several use cases, and demonstrate its use to escape a faraday cage.
http://bsidespdx2015.eventzilla.net/web/event?eventid=2139090484

Pinczakko’s PCI Expansion ROM research

Darmawan Salihun (@Pinczakko) wrote an excellent article a few years ago on PCI Expansion ROMs. It shows how to write custom code and use it from an Expansion ROM, very detailed article, with pointers to related ones for background, and sample code. If you haven’t read this, it’s a great primer on PCI OpROM security. And that is just ONE of the  MANY excellent articles on BIOS he’s written. Read the “Malicious PCI Expansion ROM” article listed there, in addition to above-described research. I wish Pinczakko would write more articles!

https://sites.google.com/site/pinczakko/building-a-kernel-in-pci-expansion-rom
https://sites.google.com/site/pinczakko/bios-articles

Linaro’s 96Boards initiative

Earlier this year, ARM’s Linaro created 96Boards.org.

The 96Boards initiative is designed to offer a single software and hardware community across multiple vendor boards supporting a range of different features. A fixed set of minimum functions including USB, SD, HDMI and standardized low speed and high speed peripheral connectors are provided. Vendors may add customized hardware and feature sets provided the minimum functions are available. We expect this to extend the platform life, increase the market for add-on hardware, and accelerate open source upstreaming of support for new SoC features. The 96Boards standard specification and this website are maintained by the Linaro Community Board Group (LCG). Linaro is a collaborative software engineering organization focused on the ARM architecture. Corporate members of Linaro provide funding and engineers plus direction through various steering committees and resources are split into semi-autonomous groups with their own members.

There are currently two 96Boards specifications for low-cost ARMv7-A and ARMv8-A development boards:
* The Consumer Edition (CE) targets the mobile, embedded and digital home segments.
* The Enterprise Edition (EE) targets the networking and server segments.

They have 3 boards listed currently:
* DragonBoard 410c: Board based on Qualcomm Snapdragon™ 410 processor
* The HiKey Board: Board based on HiSilicon Kirin 6220 processor
* 96Boards UART Serial Adapter: a USB to UART interface to be used with any 96Boards Consumer or Enterprise Edition board.

https://www.96boards.org/ce-specification
https://www.96boards.org/ee-specification
https://www.96boards.org/products/

Marcin Juszkiewicz has a good blog post on 96boards as well:
http://marcin.juszkiewicz.com.pl/2015/06/26/96boards-goes-enterprise/

ARM Devices has a video discussing adding 96boards hardware targets to LAVA, the CI server by Linaro for embedded device testing.

LAVA Lab to integrate HiKey from 96Boards.org

new list of IDA Plugins

There’s a new list of IDA Pro plugins:

https://twitter.com/agelastic/status/644766426973106177

Of the dozens on the list, besides the classics, I found a handful of interesting ones I’d never heard of, including these 3 ROM/firmware-related ones:

* Bootroom Analysis Library: IBAL is the IDA Pro Bootrom Analysis Library, which contains a number of useful functions for analyzing embedded ROMs.
* EFI Scripts: Some IDA scripts and tools to assist with reverse engineering EFI executables.
* Sega Genesis/Megadrive Tools: Special IDA Pro tools for the Sega Genesis/Megadrive romhackers. Tested work on v5.2, v6.6. Should work on other versions.

I’ve mentioned a few (3?) UEFI-centric IDA plugins in earlier blog posts, plugins I didn’t see on this list. I guess I need to track them down and help with this list.

https://github.com/onethawt/idaplugins-list/blob/master/README.md
https://github.com/onethawt/idaplugins-list/

NVMe Summit presentations available

The presentation PDFs (no A/V) are now available for the NVMe Flash Memory Summit, as well as NVME’s presentations from IDF.

The Flash Memory Summit presentations ZIP includes all of the PDFs of that conference, including one on NVMe security, discussing OVAL, Self Encrypting Drives (SEDs), integration with Trustworthy Computing standards, among other things.

http://www.nvmexpress.org/presentations/

D-Link releases private keys in firmware

D-Link left their private keys in their firmware, for attackers to exploit!

http://tweakers.net/nieuws/105137/d-link-blundert-met-vrijgeven-privesleutels-van-certificaten.html

Google.Translation of article below:

D-Link blunder by releasing private keys of certificates

By Olaf van Miltenburg

D-Link had accidentally private keys for certificates signed by which software is released. The keys were to distill out of open-source firmware packages of the manufacturer. Criminals had certificates thereby exploit. Malware writers can use the certificates to sign their malicious code, which for example is Windows look like legitimate software. The certificate is a guarantee that the programs will actually come from the relevant company. The blunder was discovered by bartvbl, who pointed to the editorial on the issue. He had purchased the DCS-5020L-surveillance camera from D-Link and wanted to download the firmware. D-Link firmware source code of many open source under a GPL license available. “It turned out what to look through the files that were in private keys to sign with code”, reports bartvbl, “In fact, in some batch files were the commands and pass phrases that were needed.” The user was able to verify that the key could be used to create a file that was not D-Link with a certificate signing. In early September expired certificates, so the trick no longer works. Even after providing the expiration date remains signed software that is to be seen as valid. Only after the withdrawal of the certificates given by W indows check a certificate stating that they are not valid. That withdrawal has already happened. That is no longer the abuse problem. Security firm Fox-IT request, confirms the findings of the user. Yonathan Klijnsma, researcher at the company: “T he code signing certificate is indeed a firmware packages, firmware version 1.00b03 whose source February 27 this year, was released this certificate was therefore issued for expired, a big mistake.”. He even found four other certificates in the same folder. D-Link has released new versions of the firmware, where the certificates no longer in it. The company late in a statement regularly update the firmware “in the latest safety and quality standards” to meet. The company stressed that there was no intent. “D-Link prevent at all times to develop product features that intentionally provide unauthorized access to the device or network, including, for example backdoors.” Furthermore, the company Tweakers promises that early next week new firmware comes out which security issues are also resolved.

There’s a Y-Combinator thread, as well:
https://news.ycombinator.com/item?id=10235382

http://securityadvisories.dlink.com/security/

UEFI-NTFS updated

Pete Batard of Akeo Consulting has updated UEFI:NTFS boot loader:

UEFI:NTFS – Boot NTFS partitions from UEFI

This generic bootloader, which is primarily intended for use with Rufus, is meant to allow seamless booting from an EFI bootloader, that resides on an NTFS partitions. In other words, UEFI:NTFS is designed to remove the UEFI restriction of being able to natively boot from FAT32 only, and allow NTFS boot without the need for any user intervention. This can be used, for instance, for booting an USB Windows NTFS installation media, in EFI mode, allowing support for files that are larger than 4GB (something a native EFI FAT32 partition cannot support), or allow indiscriminate EFI or BIOS boot of Windows To Go drives. The way this works, in conjuction with Rufus, is as follows:

* Rufus creates 2 partitions on the target USB disk (these can be MBR or GPT partitions). The first one is an NTFS partition occupying almost all the drive, that contains the Windows files (for Windows To Go, or for regular installation), and the second is a very small FAT partition, located at the very end, that contains an NTFS EFI driver (see http://efi.akeo.ie) as well as the UEFI:NTFS bootloader.
* When the USB drive boots in EFI mode, the first NTFS partition gets ignored by the EFI firmware and the UEFI:NTFS bootloader from the bootable FAT partition is executed.
* UEFI:NTFS then loads the relevant NTFS EFI driver, locates the existing NTFS partition on the same media, and executes the /efi/boot/bootx64.efi or /efi/boot/bootia32.efi that resides there. This achieves the exact same outcome as if the EFI firmware had native NTFS support and could boot straight from NTFS.

https://github.com/pbatard/uefi-ntfs

Akeo Consulting is an Irish Software Development company, expertise ranging from OSS development, Embedded Systems and SoCs development, Security, Web Services technologies, Operating Systems, Reverse Engineering, e-Papertechnologies and more. Pete has a blog with UEFI- and other firmware-related posts, and other UEFI-related projects.

http://pete.akeo.ie/
http://efi.akeo.ie/
http://akeo.ie

Off-topic rant: These kinds of hacks are needed because UEFI requires FAT32 for it’s EFI System Partition (ESP). Apple also supports HFS+ as well as FAT for their ESP. UEFI spec requires vendors only support FAT. As I understand this, it’s mainly because FAT is widely-supported, Microsoft requires it for Windows OEMs, and having more than one file system would make life a bit more complex for UEFI developers, a complexity that Apple’s UEFI developers are already dealing with.  With a little bit of interop testing, each OS could have an EFI file system that understands it’s preferred native file system format, which may enable better disk encryption, and fewer support issues with the foreign FAT file system. A problem with using any other file system for UEFI is that all vendors won’t necessarily support it, an install-time issue. I wish we had Ext4 and ZFS file system drivers for UEFI in mainstream use (inside IBV solutions, so they’re useful). Microsoft will of course require only FAT for Windows OEMs. Personally, I’d like to see the UDF file system, used by DVDs, more widely adopted as the second file system for UEFI ESP, as a FAT alternative. Most OSes already support UDF (though with some edge-case errors, which could be fixed), and it’s one of the few common file systems that support large files. If you have to deal with some large ISO/image in the UEFI Shell, you’re limited by FAT32’s small file size limits. Someone has already submitted a UDF into Tianocore. It isn’t perfect, there are probably better choices for some flash-based systems, but it could enable a FAT-free Linux/FreeBSD system.

ESC Minneapolis in November

ECS, the Embedded Systems Conference, takes place in a few cities. The next one is in Minneapolis.MN.US in early November.
The ESC Minneapolis Technical Conference Program consists of 4 topic groups covering all aspects of embedded system design and IoT, from design through hardware, systems, and connected devices.

http://www.embeddedconf.com/minneapolis/
http://www.embeddedconf.com/minneapolis/scheduler/list

I didn’t see a lot of security presentations in the schedule, but did find these:

* Effective Use of a Memory Protection Unit (MPU) in Safety-critical C/C++ Code, German Rivera (Freescale)
* Using MISRA to Secure Your IOT Device, Greg Davis (Green Hills Software)
* 100% Open Source Development for the ARM Cortex M, Michael Anderson (The PTR Group, Inc.)
* Writing Reliable C and C++ Code, Greg Davis (Green Hills Software)
* Preventing Breaches: Five Ways to Protect Your Software Supply Chain, Rod Cope (Rogue Wave Software)

 

AMI updates firmware of Intel Compute Stick

BIOS manufacturer AMI has updated their Aptio V UEFI-based firmware solution for the Intel Compute Stick. The update adds “UEFI Bluetooth Keyboard Support”.

Excerpt:
AMI is pleased to announce the addition of UEFI Bluetooth® keyboard support for the Intel® Compute Stick in its flagship Aptio® V UEFI Firmware. The Intel® Compute Stick is a small form factor computer with a quad-core Intel® Atom™ processor and Intel® HD Graphics. It features integrated WiFi® and Bluetooth capability and offers 32 GB of storage and 2 GB of RAM memory along with a USB 2.0 port and microSD™ card reader that can be plugged into any HDMI capable monitor. Users can add their own Bluetooth peripherals, such as keyboard and mouse, to create a full-fledged computer from this tiny yet powerful device. By adding Bluetooth keyboard support to Aptio V, the flagship UEFI firmware from American Megatrends, users of small form factor devices like the Intel® Compute Stick can now access the UEFI BIOS settings with their Bluetooth keyboard to make BIOS customizations that get the most out of these pocket powerhouse computers.
“Intel is pleased to have partnered with AMI on this achievement,” said Joel Christensen, General Manager, Intel® Compute Stick. “Adding the ability to utilize Bluetooth keyboards while in BIOS is a great step in improving the end user experience.”

(I’m not sure if this is a new UEFI protocol for BT keyboards, or just a normal BT stack with a normal keyboard, nor if this is new AMI code or part of what is in Tianocore.org.)

More Information:

http://www.ami.com/news/press-releases/?PressReleaseID=330&/American%20Megatrends%20Adds%20UEFI%20Bluetooth%C2%AE%20Keyboard%20Support%20for%20Intel%C2%AE%20Compute%20Stick%20to%20Aptio%C2%AE%20V%20UEFI%20Firmware/

Multiple updates from Apple

Apple has released security updates for OS X Server, iTunes, Xcode, and iOS to address multiple vulnerabilities. Exploitation of some of these vulnerabilities may allow a remote attacker to take control of an affected system. Available updates include:

* OS X Server v5.0.3 for OS X Yosemite v10.10.4 or later
* iTunes 12.3 for Windows 7 and later
* Xcode 7.0 for OS X Yosemite v10.10.4 or later
* iOS 9 for iPhone 4s and later, iPod touch (5th generation) and later, iPad 2 and later

https://www.us-cert.gov/ncas/current-activity/2015/09/16/Apple-Releases-Security-Updates-OS-X-Server-iTunes-Xcode-and-iOS

https://support.apple.com/en-us/HT205219
https://support.apple.com/en-us/HT205212
https://support.apple.com/en-us/HT201222

Frida 5.0 released

Frida is a cross-platform reverse-engineering tool.

Frida is Greasemonkey for native apps, or, put in more technical terms, it’s a dynamic code instrumentation toolkit. It lets you inject snippets of JavaScript into native apps on Windows, Mac, Linux, iOS and Android. Frida also provides you with some simple tools built on top of the Frida API. These can be used as-is, tweaked to your needs, or serve as examples of how to use the API.

Frida 5.0 has been announced. (On Twitter, their blog still shows 4.2 as the last release, from earlier in the Summer.)

https://github.com/frida/frida

http://www.frida.re/news/2015/06/18/frida-4-2-released/

http://www.frida.re/

Linux firmware update

As pointed out on Phoronix, there’s a new blog post by Peter Jones of Red Hat on the status of firmware updates on Linux.

http://blog.uncooperative.org/blog/2015/09/16/an-update-on-firmware-updates/

Phoronix has been covering this much better than I have:

http://www.phoronix.com/scan.php?page=search&q=ESRT

http://www.phoronix.com/scan.php?page=search&q=fwupd

http://www.phoronix.com/scan.php?page=news_item&px=Linux-UEFI-Firmware-Sept

VMware security announcement

VMWare hasn’t had a security update in a few months, and broke that record today:

https://www.vmware.com/security/advisories/VMSA-2015-0006

VMSA-2015-0006
VMware vCenter Server updates address a LDAP certificate validation issue
VMware Security Advisory
Advisory ID:     VMSA-2015-0006
Synopsis:     VMware vCenter Server updates address a LDAP certificate validation issue
Issue date:     2015-09-16
Updated on:     2015-09-16 (Initial Advisory)
CVE numbers:     CVE-2015-6932

seL4 Developer Day, October, Malibu

Two things to announce for seL4:

They’ve released a roadmap for development and verification.

And they’ve a Developer Day event happening next month. I missed the information about their first Developer Day last month. They’ve just announced a second Developer day, October 8-9, organized in conjunction with DARPA, hosted at HRL Labs, in Malibu, California.

https://sel4.systems/Info/Roadmap/
https://sel4.systems/Community/Devdays/
https://sel4.systems/lists/listinfo/announce

U-Boot roadmap and upcoming Mini-Summit

I asked on the U-Boot mailing list for a roadmap to current/upcoming architectural changes, and Lukasz Majewski was kind enough to point me to some sources of information.

Please look into ELCE2014 slides from u-boot mini summit at Dusseldorf (slides are available at denx.de webpage). There was a presentation from Simon Glass regarding device model road map.

http://www.denx.de/wiki/U-Boot/MiniSummitELCE2014
http://www.denx.de/wiki/U-Boot/DriverModel

There will be u-boot Mini Summit held at ELCE 2015 in Dublin. I think that the road map issue is a good topic for our overall discussion panel.

http://www.denx.de/wiki/U-Boot/SummitELCE2015
http://events.linuxfoundation.org/events/linuxcon-europe/extend-the-experience/co-located-events

Facebook’s OpenBMC project

I just learned about Facebook’s OpenBMC, thanks to Sai Dasari of Facebook, who just posted a message to the Open Compute Project’s hardware management list, talking about DMTF Redfish and Facebook’s OpenBMC.

 OpenBMC is an open software framework to build a complete Linux image for a Board Management Controller (BMC).

When we were developing Facebook’s top-of-rack “Wedge” switch, we followed our usual process in the beginning; our partner was responsible for developing the BMC software. However, in the first months of the project, many requirements for the BMC software emerged, introducing extra complexity, coordination, and delays into the BMC software-development process. To address these challenges, at one of Facebook’s hackathon events, four engineers worked to create our own BMC software. Within 24 hours, we were able to build a minimum BMC software image, including an SSH server and the ability to change fan speed, power-on the host CPU, and blink some LEDs. It was far from a production image, but it gave us a strong confidence that we could eventually develop our own BMC software for “Wedge.” Fast-forward eight months, and we’ve deployed our solution — code-named “OpenBMC” — into production along with Wedge. And today we’re sharing OpenBMC with the open source community in the hope that we can collaborate based on this open software framework for next-generation system management.

More Information:
https://code.facebook.com/posts/1471778586452119/openbmc-for-server-porting-and-supporting-new-features-for-yosemite-/
https://code.facebook.com/posts/1601610310055392/introducing-openbmc-an-open-software-framework-for-next-generation-system-management/
https://github.com/facebook/openbmc
https://twitter.com/hashtag/openbmc

 

Security focus of next Linaro Connect

Linaro Connect is happening in 4 days in San Francisco.

“The theme for the week is security.”

The security track:
* Security requirements on ARMv8-A boot architecture
* Linux kernel generic TEE driver
* OP-TEE Content Decryption with Microsoft PlayReady on ARM
* Expanding security choices: DRM & CA interoperability
* Expanding security choices panel
* Secure storage in OP-TEE
* Lessons learned on migrating open source Chromium-OPTEE to 96Boards
* TBD
* TBD

More Information:
https://www.linaro.org/news/keynote-speakers-lined-up-for-linaro-connect-sfo15/
http://connect.linaro.org/sfo15/

MalwareTech on Microsoft Device Guard

The MalwareTech blog has a good article on Microsoft Device Guard for Windows:

https://twitter.com/MalwareTechBlog/status/644175089173442561

Excerpt:

Everyone is probably already familiar with x64 driver signature enforcement (64-bit Windows systems can only load signed drivers); Well, now Microsoft has introduced a similar feature for user mode code, which is a huge deal when it comes to malware (Currently the feature is only present on Windows 10 Enterprise, but I’m fairly certain as it matures it will make it’s way to home systems). Device Guard not only adds customizable user mode code integrity checks (UMCI), but re-works a lot of the kernel mode code integrity (KMCI) allowing far more flexibility than just allowing all signed drivers. The policy can either be deployed locally by and administrator or from a domain controller, making it scalable for enterprise networks. Something I was actually quite surprised by is the fact that the user mode code integrity is not simply limited to executable (I was expecting Device Guard to be just another throw away pseudo-security feature like UAC, but it’s clear some real thought has gone into this).

Full post:
http://www.malwaretech.com/2015/09/device-guard-beginning-of-end-for.html