D. Mantz et al., “InternalBlue – Bluetooth Binary Patching and Experimentation Framework” […we discover a novel critical security issue affecting a large selection of Broadcom chipsets that allows executing code within the attacked Bluetooth firmware…]https://t.co/hmTdTc31eV
Several Broadcom/Cypress Bluetooth firmwares and their firmware update mechanism have been reverse engineered. Based on that we developed a Bluetooth experimentation framework which is able to patch the firmware and therefore implement monitoring and injection tools for the lower layers of the Bluetooth protocol stack.
Finite State supply chain assessment of Huawei devices. 76 firmware had default root user w/hardcoded password that could log in over the SSH protocol. 8 firmware had pre-computed authorized_keys hardcoded. 424 firmware contained hardcoded private SSH keyshttps://t.co/MvGBM4szy6
At Google we have found tens of thousands of security and robustness bugs by fuzzing C and C++ libraries. To fuzz a library, a fuzzer requires a fuzz driver—which exercises some library code—to which it can pass inputs. Unfortunately, writing fuzz drivers remains a primarily manual exercise, a major hindrance to the widespread adoption of fuzzing. In this paper, we address this major hindrance by introducing the Fudge system for automated fuzz driver generation. Fudge automatically generates fuzz driver candidates for libraries based on existing client code. We have used Fudge to generate thousands of new drivers for a wide variety of libraries. Each generated driver includes a synthesized C/C++ program and a corresponding build script, and is automatically analyzed for quality. Developers have integrated over 200 of these generated drivers into continuous fuzzing services and have committed to address reported security bugs. Further, several of these fuzz drivers have been upstreamed to open source projects and integrated into the OSS-Fuzz fuzzing infrastructure. Running these fuzz drivers has resulted in over 150 bug fixes, including the elimination of numerous exploitable security vulnerabilities.
The European Patent Office refused to grant a software patent on a method of managing booting of secure devices with untrusted software. The decision was appealed successfully and the case was remitted to the Examining Division. Here are the practical takeaways of the decision T 1563/17 (Booting untrusted software) of 7.5.2019:[…]
Don’t read this if you’re an engineer at a company which has a policy that requires employees not read anything about other company’s patents:
This Golang utility tests whether the platform supports Intel TXT and FIT, TPM boot chain has been configured correctly. The test suite runs on GNU/Linux.
Lately, I have been playing with a 3G dongle – a small USB device enabling to connect to the mobile Internet. I have discovered that most USB dongles with a Qualcomm processor exposed a special diagnostic protocol, called Diag (or DM, or QCDM – for Qualcomm Diagnostic monitor).But I have also discovered that this proprietary protocol was also present inside Android phones (through a device called /dev/diag) and it allowed a couple good things, such as obtaining raw captures of network air traffic or, in older models, reading/writing at arbitrary offsets of the radio chip’s memory (!). Today, we are proud to present QCSuper, an open-source tool that will enable you to passively capture raw 2G/3G/4G frames produced by your rooted Qualcomm-based Android phone or dongle, and produce a PCAP analyzable using Wireshark (in addition to a couple other input/output formats).[…]
disassembled the first few bits of the 512 byte "hidden" ROM. this is a factory-set ROM in every Intel 80C51 that's probably used for factory test modes. i think a few bits are flipped so it doesn't make 100% sense. pic.twitter.com/hDvXDyyCgO
Rompar is an interactive tool for extracting bianry data out of mask ROM images. The computer vision method implemented is rather simple, but has proven useful in several projects. There is still a lot that can be added to rompar, and pull requests are welcome.
Alex has a new blog post describing how to debug ACPI tables on Ubuntu, using Canonical’s FWTS (FirmWare Test Suite):
Alex Hung @ Canonical wrote an article "Analyze ACPI Tables in a Text File with FWTS". Check it out and let us know what you think! https://t.co/7f62RcuqUA
Researching obscure architectures sounds challenging to you? We thought so too, so we developed a disassembly and analysis plugin for #radare2 to make things easier! Read on to learn how we did it. https://t.co/cn6jKNGGeZ
OS fuzzers primarily test the system call interface between the OS kernel and user-level applications for security vulnerabilities. The effectiveness of evolutionary OS fuzzers depends heavily on the quality and diversity of their seed system call sequences. However, generating good seeds for OS fuzzing is a hard problem as the behavior of each system call depends heavily on the OS kernel state created by the previously executed system calls. Therefore, popular evolutionary OS fuzzers often rely on hand-coded rules for generating valid seed sequences of system calls that can bootstrap the fuzzing process. Unfortunately, this approach severely restricts the diversity of the seed system call sequences and therefore limits the effectiveness of the fuzzers. In this paper, we develop MoonShine, a novel strategy for distilling seeds for OS fuzzers from system call traces of real-world programs while still maintaining the dependencies across the system calls. MoonShine leverages light-weight static analysis for efficiently detecting dependencies across different system calls. We designed and implemented MoonShine as an extension to Syzkaller, a state-of-the-art evolutionary fuzzer for the Linux kernel. Starting from traces containing 2.8 million system calls gathered from 3,220 real-world programs, MoonShine distilled down to just over 14,000 calls while preserving 86% of the original code coverage. Using these distilled seed system call sequences, MoonShine was able to improve Syzkaller’s achieved code coverage for the Linux kernel by 13% on average. MoonShine also found 14 new vulnerabilities in the Linux kernel that were not found by Syzkaller.
Hey firmware peeps: Check out nanoprintf, a tiny vsnprintf that aims for C11 compliance and supports floats! Zero dependencies, zero libc calls. No allocations, < 100B stack, < 5KB .o. C89/C99, @nothings STB-style single-file header, public domain.https://t.co/0jca2SI9bY
(WIP)
— @c_nich@mastodon.gamedev.place (@c_nich) July 8, 2019
nanoprintf is an implementation of snprintf and vsnprintf for embedded systems that aims for C11 standard compliance. nanoprintf makes no memory allocations, uses less than 100 bytes of stack, and is smaller than 5KB of ARM Cortex-M object code when optimized with all the bells and whistles turned on (slightly larger on x64, where you don’t want to use it anyway). nanoprintf is a single header file in the style of the stb libraries. The rest of the repository is tests and scaffolding and not required for use. nanoprintf is written in C89 for maximal compiler compatibility. C99 or C++11 compilers are required (for uint64_t and other types) if floating point conversion or large modifiers are enabled. nanoprintf does include standard headers but only uses them for types and argument lists; no calls are made into stdlib / libc, with the exception of any internal double-to-float conversion ABI calls your compiler might emit. nanoprintf is statically configurable so users can find a balance between size, compiler requirements, and feature set. […]
This bootloader is aimed at simplifying the process of loading a 64bit kernel. It is done by making so all you need to do is compile your kernel with valid physical addresses, and we will make sure (using UEFI) to make sure you have a nice identity mapped area to work with. This will also give you the basics without having to change anything.[…]
You must be logged in to post a comment.