Home Blog Page 466

In Device We Trust: Measure Twice, Compute Once with Xen, Linux, TPM 2.0 and TXT

Is it a small tablet or large phone? Is it a phone or broadcast sensor? Is it a server or virtual desktop cluster? Is x86 emulating ARM, or vice-versa? Is Linux inspiring Windows, or the other way around? Is it microcode or hardware? Is it firmware or software? Is it microkernel or hypervisor? Is it a security or quality update? Is anything in my device the same as yesterday? When we observe our evolving devices and their remote services, what can we question and measure?

General Purpose vs. Special Purpose Ecosystems

The general-purpose computer now lives in a menagerie of special-purpose devices and information appliances. Yet software and hardware components within devices are increasingly flexible, blurring category boundaries. With hardware virtualization on x86 and ARM platforms, the ecosystems of multiple operating systems can coexist on a single device. Can a modular and extensible multi-vendor architecture compete with the profitability of vertically integrated products from a single vendor?

Operating systems evolved alongside applications for lucrative markets. PC desktops were driven by business productivity and media creation. Web browsers abstracted OS differences, as software revenue shifted to e-commerce, services, and advertising. Mobile devices added sensors, radios and hardware decoders for content and communication. Apple, now the most profitable computer company, vertically integrates software and services with sensors and hardware. Other companies monetize data, increasing demand for memory and storage optimization.

Some markets require security or safety certifications: automotive, aviation, marine, cross domain, industrial control, finance, energy, medical, and embedded devices. As software “eats the world,” how can we modernize vertical markets without the economies of scale seen in enterprise and consumer markets? One answer comes from device architectures based on hardware virtualization, Xen, disaggregation, OpenEmbedded Linux and measured launch. OpenXT derivatives use this extensible, open-source base to enforce policy for specialized applications on general-purpose hardware, while reusing interoperable components.

OpenEmbedded Linux supports a range of x86 and ARM devices, while Xen isolates operating systems and unikernels. Applications and drivers from multiple ecosystems can run concurrently, expanding technical and licensing options. Special-purpose software can be securely composed with general-purpose software in isolated VMs, anchored by a hardware-assisted root of trust defined by customer and OEM policies. This architecture allows specialist software vendors to share platform and hardware support costs, while supporting emerging and legacy software ecosystems that have different rates of change.

On the Shoulders of Hardware, Firmware and Software Developers

0eMLJYIX3yDSWwbPA-1nhpPwza2JM2m_zJ7Idh41

System Architecture, from NIST SP800-193 (Draft), Platform Firmware Resiliency

By the time a user-facing software application begins executing on a powered-on hardware device, an array of firmware and software is already running on the platform.  Special-purpose applications’ security and safety assertions are dependent on platform firmware and the developers of a computing device’s “root of trust.”

If we consider the cosmological “Turtles All The Way Down” question for a computing device, the root of trust is the lowest-level combination of hardware, firmware and software that is initially trusted to perform critical security functions and persist state. Hardware components used in roots of trust include the TCG’s Trusted Platform Module (TPM), ARM’s TrustZone-enabled Trusted Execution Environment (TEE), Apple’s Secure Enclave co-processor (SEP), and Intel’s Management Engine (ME) in x86 CPUs. TPM 2.0 was approved as an ISO standard in 2015 and is widely available in 2017 devices.

TPMs enable key authentication, integrity measurement and remote attestation. TPM key generation uses a hardware random number generator, with private keys that never leave the chip. TPM integrity measurement functions ensure that sensitive data like private keys are only used by trusted code. When software is provisioned, its cryptographic hash is used to extend a chain of hashes in TPM Platform Configuration Registers (PCRs). When the device boots, sensitive data is only unsealed if measurements of running software can recreate the PCR hash chain that was present at the time of sealing. PCRs record the aggregate result of extending hashes, while the TPM Event Log records the hash chain.  

Measurements are calculated by hardware, firmware and software external to the TPM. There are Static (SRTM) and Dynamic (DRTM) Roots of Trust for Measurement. SRTM begins at device boot when the BIOS boot block measures BIOS before execution. The BIOS then execute, extending configuration and option ROM measurements into static PCRs 0-7. TPM-aware boot loaders like TrustedGrub can extend a measurement chain from BIOS up to the Linux kernel. These software identity measurements enable relying parties to make trusted decisions within specific workflows.

DRTM enables “late launch” of a trusted environment from an untrusted one at an arbitrary time, using Intel’s Trusted Execution Technology (TXT) or AMD’s Secure Virtual Machine (SVM). With Intel TXT, the CPU instruction SENTER resets CPUs to a known state, clears dynamic PCRs 17-22 and validates the Intel SINIT ACM binary to measure Intel’s tboot MLE, which can then measure Xen, Linux or other components. In 2008, Carnegie Mellon’s Flicker used late launch to minimize the Trusted Computing Base (TCB) for isolated execution of sensitive code on AMD devices, during the interval between suspend/resume of untrusted Linux.  

If DRTM enables launch of a trusted Xen or Linux environment without reboot, is SRTM still needed? Yes, because attacks are possible via privileged System Management Mode (SMM) firmware, UEFI Boot/Runtime Services, Intel ME firmware, or Intel Active Management Technology (AMT) firmware. Measurements for these components can be extended into static PCRs, to ensure they have not been modified since provisioning. In 2015, Intel released documentation and reference code for an SMI Transfer Monitor (STM), which can isolate SMM firmware on VT-capable systems. As of September 2017, an OEM-supported STM is not yet available to improve the security of Intel TXT.

Can customers secure devices while retaining control over firmware?  UEFI Secure Boot requires a signed boot loader, but customers can define root certificates. Intel Boot Guard provides OEMs with validation of the BIOS boot block. Verified Boot requires a signed boot block and the OEM’s root certificate is fused into the CPU to restrict firmware. Measured Boot extends the boot block hash into a TPM PCR, where it can be used for measured launch of customer-selected firmware. Sadly, no OEM has yet shipped devices which implement ONLY the Measured Boot option of Boot Guard.

Measured Launch with Xen on General Purpose Devices

OpenXT 7.0 has entered release candidate status, with support for Kaby Lake devices, TPM 2.0, OE meta-measured, and forward seal (upgrade with pre-computed PCRs).  

OpenXT 6.0 on a Dell T20 Haswell Xeon microserver, after adding a SATA controller, low-power AMD GPU and dual-port Broadcom NIC, can be configured with measured launch of Windows 7 GPU p/t, FreeNAS 9.3 SATA p/t, pfSense 2.3.4, Debian Wheezy, OpenBSD 6.0, and three NICs, one per passthrough driver VM.

Does this demonstrate a storage device, build server, firewall, middlebox, desktop, or all of the above? With architectures similar to Qubes and OpenXT derivatives, we can combine specialized applications with best-of-breed software from multiple ecosystems. A strength of one operating system can address the weakness of another.

Measurement and Complexity in Software Supply Chains

While ransomware trumpets cryptocurrency demands to shocked users, low-level malware often emulates Sherlock Holmes: the user sees no one. Malware authors modify code behavior in response to “our method of questioning”, simulating heisenbugs. As system architects pile abstractions, self-similarity appears as hardware, microcode, emulator, firmware, microkernel, hypervisor, operating system, virtual machine, namespace, nesting, runtime, and compiler expand onto neighboring territory. There are no silver bullets to neutralize these threats, but cryptographic measurement of source code and stateless components enables whitelisting and policy enforcement in multi-vendor supply chains.

Even for special-purpose devices, the user experience bar is defined by mass-market computing. Meanwhile, Moore’s Law is ending, ARM remains fragmented, x86 PC volume is flat, new co-processors and APIs multiply, threats mutate and demand for security expertise outpaces the talent pool. In vertical markets which need usable, securable and affordable special-purpose devices, Xen virtualization enables innovative applications to be economically integrated with measured, interoperable software components on general-purpose hardware. OpenXT is an open-source showcase for this scalable ecosystem. Further work is planned on reference architectures for measured disaggregation with Xen and OpenEmbedded Linux.

If you are interested in virtualization and security, watch my presentation from the 2017 Xen Project Summit and join the OpenXT and OpenEmbedded communities! If you are attending the 2017 Embedded Linux Conference Europe, visit the OpenXT measured launch demo at the Technical Showcase on October 23 and attend Matthew Garrett’s talk, “Making Trusted Boot Practical on Linux” on October 24.

New Town Halls, MesosCon University, and SMACK Keynote Panel Added to MesosCon Europe Program

Get the latest on Apache Mesos with Ben Hindman, Co-Creator of Apache Mesos, at MesosCon Europe  taking place October 25-27, 2017 in Prague, Czech Republic. At the conference, you’ll hear insights by industry experts deploying Mesos clusters, learn about containerization and security in Mesos, and more.

This annual conference brings together users and developers to share and learn about the Mesos project and its growing ecosystem. The conference features two days of sessions focused on the Apache Mesos Core and related technologies, as well as a one-day hackathon, town halls, and MesosCon University.  

Read more at The Linux Foundation

Chasing Grace: A New Documentary Series about Women in Tech

After hearing several women in tech, smart women with bright futures, talk about leaving their jobs, Jennifer Cloer, Founder/Lead Consultant, reTHINKitPR, decided to launch the “Chasing Grace Project,” a six-episode documentary series about women in tech. The trailer debuted at the recent Linux Foundation Diversity Empowerment Summit in LA.

“A young, very talented female programmer recently told me: ‘I don’t want to leave tech but after a year into my first job, I’m considering it,’” said Cloer. So she asked herself, “What can I do to help”

There’s so much at stake, she said. “It take all of us to build a future together,” she said. “This is not just a women’s issue.”

Read more at The New Stack

Crypto Anchors: Exfiltration Resistant Infrastructure

Lately, I’ve been thinking a lot about a concept that Nathan McCauley and I came up with a few years ago: crypto-anchoring—and how much impact this kind of architectural decision could have in the breaches that we’ve been experiencing lately.

It turns out that the vast majority of data breaches follow a pattern like this:

  • An attacker hacks into company X’s infrastructure.
  • The attacker exfiltrates sensitive content (hashed passwords, etc.).
  • The attacker has fun with the data at home (password cracking, etc.).

And even though there are thousands of different security products focused on detecting each step of the attacker killchain, it’s time that we start architecting our applications in a way that makes it harder for attackers…

Read more at Diogo Monica‘s blog

Building an Open Standard for Distributed Messaging: Introducing OpenMessaging

Through a collaborative effort from enterprises and communities invested in cloud, big data, and standard APIs, I’m excited to welcome the OpenMessaging project to The Linux Foundation. The OpenMessaging community’s goal is to create a globally adopted, vendor-neutral, and open standard for distributed messaging that can be deployed in cloud, on-premise, and hybrid use cases.

Alibaba, Yahoo!, Didi, and Streamlio are the founding project contributors. The Linux Foundation has worked with the initial project community to establish a governance model and structure for the long-term benefit of the ecosystem working on a messaging API standard.

As more companies and developers move toward cloud native applications, challenges are developing at scale with messaging and streaming applications. 

Read more at The Linux Foundation

7 Best Practices for Giving a Conference Talk

You want your first speaking experience to be a happy one, so I’ve prepared tips that may help you when writing and presenting your talk.

1. Know your audience

The SeaGL audience, for example, is an interesting mix of those new to tech and folks who have been around technology for a long time. Because the conference is held at a community college, you can expect the Friday audience in particular to have a large number of students.

If the audience will be a mix of experience levels, you can’t assume that they’ll have the background to understand your talk from the outset. Therefore, consider having a slide or two of introductory information to lay a knowledge foundation and provide context for the less experienced members of your audience. Give them the tools they’ll need to not get lost during your talk.

Read more at OpenSource.com

Three Steps to Gaining Influence in an Open Source Project as a New Enterprise Contributor

First, let’s talk a little about why you want to gain influence in open source projects in the first place. There are three different tiers of value that individuals and organizations get from open source code.

  1. Take it and use it. (Great value.) It’s free, right? And there’s great value in that because you didn’t have to write the code. A lot of this software has been around for a long period of time, so you know it’s stable and it’s reliable, so it’s just a great resource.
  2. Customize it for your specific needs and contribute those changes back to the project. (Higher value.) You can continue to evolve with that project, pulling in changes that others have made that give great benefit to you as well. (See our guide to Participating in Open Source Communities for more.)
  3. Recognize this transformation occurring in your industry and rely on the platform that everybody in the industry is working on together. (Highest value.) When you start to lead feature sets and activities in those projects, you have a tremendous influence on what’s happening next.

Read more at The Linux Foundation

CyberShaolin: Teaching the Next Generation of Cybersecurity Experts

Reuben Paul is not the only kid who plays video games, but his fascination with games and computers set him on a unique journey of curiosity that led to an early interest in cybersecurity education and advocacy and the creation of CyberShaolin, an organization that helps children understand the threat of cyberattacks. Paul, who is now 11 years old, will present a keynote talk at Open Source Summit in Prague, sharing his experiences and highlighting insecurities in toys, devices, and other technologies in daily use.

We interviewed Paul to hear the story of his journey and to discuss CyberShaolin and its mission to educate, equip, and empower kids (and their parents) with knowledge of cybersecurity dangers and defenses.  

Linux.com: When did your fascination with computers start? 
Reuben Paul: My fascination with computers started with video games. I like mobile phone games as well as console video games. When I was about 5 years old (I think), I was playing the “Asphalt” racing game by Gameloft on my phone. It was a simple but fun game. I had to touch on the right side of the phone to go fast and touch the left side of the phone to slow down. I asked my dad, “How does the game know where I touch?”

Read more at The Linux Foundation

What the Data Says About How Linux Kernel Developers Collaborate

Many people consider themselves a Linux kernel developer first, an employee second. Even when they enjoy their current job and like their employer, most of them tend to look at the employment relationship as something temporary, whereas their identity as a kernel developer is viewed as more permanent and more important. Although companies do sometimes influence the areas where their employees contribute, individuals have quite a bit of freedom in how they do the work. Many receive little direction for their day-to-day work, with a high degree of trust from their employers to do useful work. However, occasionally they are asked to do some specific piece of work or to take an interest in a particular area that is important for the company.

Many kernel developers also collaborate with their competitors on a regular basis, where they interact with each other as individuals without focusing on the fact that their employers compete with each other. This was something I saw a lot of when I was working at Intel, because our kernel developers worked with almost all of our major competitors.

Learn more in Dawn Fosters’ talk, Collaboration in Kernel Mailing Lists, at Open Source Summit EU, which will be held October 23-26 in Prague.

Read more at OpenSource.com

Build a Serverless Golang Function with OpenFaaS

In this post I want to show you how to build a Serverless function in Go with our new Golang template created with love by the OpenFaaS community.

OpenFaaS is the only Serverless framework which puts containers in the spotlight and allows any code or binary for Linux or Windows to become a serverless function.

Pre-reqs

  • Go 1.8.3 or later
  • OpenFaaS

This guide assumes you have already deployed OpenFaaS on your laptop or the cloud.

Read more at Alex Ellis blog