<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:og="http://ogp.me/ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:schema="http://schema.org/" xmlns:sioc="http://rdfs.org/sioc/ns#" xmlns:sioct="http://rdfs.org/sioc/types#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" version="2.0" xml:base="https://www.linuxjournal.com/">
  <channel>
    <title>UEFI</title>
    <link>https://www.linuxjournal.com/</link>
    <description/>
    <language>en</language>
    
    <item>
  <title>Shrinking Linux Attack Surfaces</title>
  <link>https://www.linuxjournal.com/content/shrinking-linux-attack-surfaces</link>
  <description>  &lt;div data-history-node-id="1340684" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/zack-brown" lang="" about="https://www.linuxjournal.com/users/zack-brown" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Zack Brown&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
Often, a kernel developer will try to reduce the size of an attack surface against
Linux, even if it can't be closed entirely. It's generally a toss-up whether such a
patch makes it into the kernel. &lt;strong&gt;Linus Torvalds&lt;/strong&gt; always prefers security patches that
really close a hole, rather than just give attackers a slightly harder time of it.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Matthew Garrett&lt;/strong&gt; recognized that userspace applications might have secret data that
might be sitting in RAM at any given time, and that those applications might want to
wipe that data clean so no one could look at it.
&lt;/p&gt;

&lt;p&gt;
There were various ways to do this already in the kernel, as Matthew pointed out. An
application could use &lt;code&gt;mlock()&lt;/code&gt; to prevent its memory contents from being pushed into
swap, where it might be read more easily by attackers. An application also could use
&lt;code&gt;atexit()&lt;/code&gt; to cause its memory to be thoroughly overwritten when the application exited,
thus leaving no secret data in the general pool of available RAM.
&lt;/p&gt;

&lt;p&gt;
The problem, Matthew pointed out, came if an attacker was able to reboot the system at
a critical moment—say, before the user's data could be safely overwritten. If
attackers then booted into a different OS, they might be able to examine the data still
stored in RAM, left over from the previously running Linux system.
&lt;/p&gt;

&lt;p&gt;
As Matthew also noted, the existing way to prevent even that was to tell the
&lt;strong&gt;UEFI&lt;/strong&gt; firmware to wipe system memory before booting to another OS, but this would
dramatically increase the amount of time it took to reboot. And if the good guys had
won out over the attackers, forcing them to wait a long time for a reboot could be
considered a denial of service attack—or at least downright annoying.
&lt;/p&gt;

&lt;p&gt;
Ideally, Matthew said, if the attackers were only able to induce a clean
shutdown—not
simply a cold boot—then there needed to be a way to tell Linux to scrub all data out
of RAM, so there would be no further need for UEFI to handle it, and thus no need for a
very long delay during reboot.
&lt;/p&gt;

&lt;p&gt;
Matthew explained the reasoning behind his patch. He said:
&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;
Unfortunately, if an
application exits uncleanly, its secrets may still be present in RAM. This can't be
easily fixed in userland (eg, if the OOM killer decides to kill a process holding
secrets, we're not going to be able to avoid that), so this patch adds a new flag to
madvise() to allow userland to request that the kernel clear the covered pages whenever
the page reference count hits zero. Since vm_flags is already full on 32-bit, it will
only work on 64-bit systems.
&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;
&lt;strong&gt;Matthew Wilcox&lt;/strong&gt; liked this plan and offered some technical suggestions for Matthew G's
patch, and Matthew G posted an updated version in response.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/shrinking-linux-attack-surfaces" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Thu, 18 Jul 2019 11:00:00 +0000</pubDate>
    <dc:creator>Zack Brown</dc:creator>
    <guid isPermaLink="false">1340684 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Tamper-Evident Boot with Heads</title>
  <link>https://www.linuxjournal.com/content/tamper-evident-boot-heads</link>
  <description>  &lt;div data-history-node-id="1340426" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/kyle-rankin" lang="" about="https://www.linuxjournal.com/users/kyle-rankin" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Kyle Rankin&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;Learn about how the cutting-edge, free software Heads project detects
BIOS and kernel tampering, all with keys under your control.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;Disclaimer:&lt;/em&gt; I work for Purism, and my experience with Heads began
as part of supporting it on Purism's hardware. As a technical writer,
I personally find ads that mask themselves as articles in technical
publications disingenuous, and this article &lt;em&gt;in no way&lt;/em&gt; is intended to be
an advertisement for my employer. However, in writing this deep dive piece, I
found that mentioning Purism was unavoidable in some places
without leaving out important information about Heads—in particular,
the list of overall supported hardware and an explanation of Heads'
HOTP alternative to TOTP authentication, because it requires a specific
piece Purism hardware.
&lt;/p&gt;

&lt;p&gt;
Some of the earliest computer viruses attacked the boot sector—that bit
of code at the beginning of the hard drive in the Master Boot Record
that allowed you to boot into your operating system. The reasons for this have
to do with stealth and persistence. Viruses on the filesystem itself
would be erased if users re-installed their operating systems, but
if they didn't erase the boot sector as part of the re-install process,
boot sector viruses could stick around and re-infect the operating system.
&lt;/p&gt;

&lt;p&gt;
Antivirus software vendors ultimately added the ability to scan the boot sector
for known viruses, so the problem was solved, right? Unfortunately, as computers,
operating systems and BIOSes became more sophisticated, so did the boot-sector attacks. Modern attacks take over before the OS is launched and
infect the OS itself, so when you try to search for the attack through
the OS, the OS tells you everything is okay.
&lt;/p&gt;

&lt;p&gt;
That's not to say modern defenses to this type of
attack don't exist. Most modern approaches involve proprietary software that locks
down the system so that it can boot only code that's signed by a vendor
(typically Microsoft, Apple, Google or one of their approved third-party
vendors). The downside, besides the proprietary nature of this defense,
is that you are beholden to the vendor to bless whatever code you want
to run, or else you have to disable this security feature completely (if you can).
&lt;/p&gt;

&lt;p&gt;
Fortunately, an alternative exists that is not only free software, but
that also takes a completely different approach to boot security by alerting
you to tampering instead of blocking untrusted code. This approach,
Heads, can detect tampering not only in the BIOS itself but also in
all of your important boot files in the /boot directory, including the
kernel, initrd and even your grub config. The result is a trusted boot
environment with keys fully under your own control.
&lt;/p&gt;

&lt;p&gt;
In this article,
I describe some of the existing boot security approaches in more
detail, along with some of their limitations, and then I describe how Heads
works, and how to build and install it on your own system.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/tamper-evident-boot-heads" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Thu, 31 Jan 2019 14:08:08 +0000</pubDate>
    <dc:creator>Kyle Rankin</dc:creator>
    <guid isPermaLink="false">1340426 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Good Lockdown vs. Bad</title>
  <link>https://www.linuxjournal.com/content/good-lockdown-vs-bad</link>
  <description>  &lt;div data-history-node-id="1340008" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/zack-brown" lang="" about="https://www.linuxjournal.com/users/zack-brown" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Zack Brown&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
&lt;em&gt;There's an ongoing series of skirmishes between corporations who want to sell
products that users don't fully control and the kernel developers who want
users to be the highest authority. Sometimes these skirmishes manifest in
the form of security patches intended to lock down the kernel. Do they lock
down the kernel against outside attackers? Or do they lock down the kernel
against change from anyone at all, including the user who owns the
device?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;David Howells&lt;/strong&gt; recently pushed a patch out of the
&lt;strong&gt;linux-next&lt;/strong&gt;, submitting it
for inclusion in the main source tree. As he put it, the patch "adds kernel
lockdown support for EFI secure boot". And a man page included in the patch
said:
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;
The Kernel Lockdown feature is designed to prevent both direct and
indirect access to a running kernel image, attempting to protect against
unauthorized modification of the kernel image and to prevent access to
security and cryptographic data located in kernel memory, whilst still
permitting driver modules to be loaded.
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;
The patch gave birth to an odd debate, but a familiar one by now. &lt;strong&gt;Matthew
Garrett&lt;/strong&gt;, ultimately the main proponent of the patch, kept defending it on
technical grounds that &lt;strong&gt;Linus Torvalds&lt;/strong&gt; felt were meaningless and dishonest,
hiding a secret agenda that included helping companies like
&lt;strong&gt;Microsoft&lt;/strong&gt; lock
users out of making changes to their own systems.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Andy Lutomirski&lt;/strong&gt; was another critic of Matthew's defense of the patch. The
debate circled around and around, with Linus and Andy trying to get Matthew
to admit the true motivation they believed he had and Matthew attempting to
give solid reasons why the patch should go into the kernel. Things got ugly.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;James Morris&lt;/strong&gt; initially accepted the patch, planning to send it up to Linus
for inclusion, and Andy reviewed the code. Among his comments, Andy said
the goal of the patch was not clearly stated. He said for the purpose of his
code review he would assume the goal was to prevent the root user from either
reading kernel memory or intentionally corrupting the kernel.
&lt;/p&gt;

&lt;p&gt;
But, he didn't think those were proper goals for a kernel, even a &lt;strong&gt;UEFI Secure
Boot&lt;/strong&gt; kernel. He said, "the kernel should try to get away from the idea that
UEFI Secure Boot should imply annoying restrictions. It's really annoying
and it's never been clear to me that it has a benefit." He singled out the
idea of preventing the root user from accessing kernel memory as one of
these annoying restrictions.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Kees Cook&lt;/strong&gt; replied with his overall justification for this
patch. He said:
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/good-lockdown-vs-bad" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Wed, 08 Aug 2018 12:00:00 +0000</pubDate>
    <dc:creator>Zack Brown</dc:creator>
    <guid isPermaLink="false">1340008 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>The Growing Role of UEFI Secure Boot in Linux Distributions</title>
  <link>https://www.linuxjournal.com/content/growing-role-uefi-secure-boot-linux-distributions</link>
  <description>  &lt;div data-history-node-id="1335703" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/mark-doran" lang="" about="https://www.linuxjournal.com/users/mark-doran" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Mark Doran&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
With the increasing prevalence of open-source implementations and the
expansion of personal computing device usage to include mobile and non-PC
devices as well as traditional desktops and laptops, combating attacks and
security obstacles against malware is a growing priority for a broad
community of vendors, developers and end users. This trend provides a
useful example of how the flexibility and standardization provided by the
Unified Extensible Firmware Interface (UEFI) technology addresses shared
challenges in ways that help bring better products and experiences to
market. 
&lt;/p&gt;
&lt;p&gt;
The UEFI specification defines an industry-leading interface between the
operating system (OS) and the platform firmware, improving the performance,
flexibility and security of computing devices. Designed for scalability,
extensibility and interoperability, UEFI technology streamlines
technological evolution of platform firmware. In 2013, developers of
several open-source Linux-based operating systems, including Ubuntu
12.10, Fedora 18 and OpenSUSE 12.3, began using UEFI specifications
in their distributions. 
&lt;/p&gt;

&lt;p&gt;
Additional features of UEFI include improved security in the pre-boot mode,
faster booting, support of drives larger than 2.2 Terabytes and integration
with modern 64-bit firmware device drivers. UEFI standards are
platform-independent and compatible with a variety of platform
architectures—meaning, users of several different types of operating
systems, including both Linux and commercial systems, can enjoy the
benefits of UEFI. Equally, because the UEFI specification includes bindings
for multiple CPU architectures, these benefits apply on a variety of
hardware platforms with these operating systems. 
&lt;/p&gt;

&lt;p&gt;
While UEFI Secure Boot may be one of the most talked about features, the
complete set of features in the UEFI specification provide a standardized
interoperable and extensible booting environment for the operating system
and pre-boot applications. The attributes of this environment make it ideal
for increased use in a rapidly widening array of Linux-based distributions.
UEFI specifications are robust and designed to complement or even further
advance Linux distributions. Industry experts expect to see continued
expansion of their use during 2014 and beyond. 
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/growing-role-uefi-secure-boot-linux-distributions" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Wed, 21 May 2014 18:48:31 +0000</pubDate>
    <dc:creator>Mark Doran</dc:creator>
    <guid isPermaLink="false">1335703 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>Microsoft’s Take on UEFI May Impede Linux (and that’s being polite)</title>
  <link>https://www.linuxjournal.com/content/microsoft%E2%80%99s-take-uefi-may-impede-linux-and-that%E2%80%99s-being-polite</link>
  <description>  &lt;div data-history-node-id="1025122" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/michael-reed" lang="" about="https://www.linuxjournal.com/users/michael-reed" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Michael Reed&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;Recent revelations about the way that Windows 8 will make use of UEFI, the next generation PC BIOS, have caused speculation that this may cause problems for people wanting to install Linux. Potentially, this could cause the PC to switch away from its historic position as the standard bearer for open platforms.&lt;/p&gt;
&lt;p&gt;The next version of Windows, Windows 8, may only run on a PC that features the UEFI BIOS. The snag is that it will probably make use of the “secure booting” feature of UEFI which prevents unsigned operating systems from booting on the hardware. The maker of the computer can install a certificate into the firmware on the motherboard, and consequently, only signed boot loaders (and possibly kernels and drivers and even applications) can then run on the machine. Software vendors such as Microsoft must send their code away to the manufacture of the computer to be signed so that it will run.&lt;/p&gt;
&lt;p&gt;In other words, the PC will undergo a historic change, from the consummate open platform to a closed one. This also means that Linux wont boot on future PCs unless the motherboard manufacturer takes the time to certify each version of the boot loader and possibly each distro or even every kernel. It also seems that compliance with this system may be incompatible with licenses such as GPL 3.&lt;/p&gt;
&lt;p&gt;To digress for a moment, it’s worth considering a software environment that may voluntarily go down this path, Mac OS X, as its users could be willing to accept a change in the balance between freedom for security. It’s quite possible that a future version of Mac OS will only allow software installation via the app store, and furthermore, it might become impossible to run a binary that has not been signed and approved by Apple itself. Apple itself would probably not be too bothered that its hardware would be inaccessible to other operating systems.&lt;/p&gt;
&lt;p&gt;By contrast, Linux is a broad church. Part of what makes Linux so great is that you can do anything you like with it. You can install it where you like and modify it so that it meets your needs. What we’re facing is a potential future in which ex-corporate PCs, for example, may well be tied to a specific version of Windows and absolutely nothing else will run.&lt;/p&gt;
&lt;p&gt;Unsurprisingly, Microsoft employees have attempted to play down the undesirable ramifications of what may happen. In a &lt;a href="http://blogs.msdn.com/b/b8/archive/2011/09/22/protecting-the-pre-os-environment-with-uefi.aspx"&gt;post&lt;/a&gt; entitled “Protecting the pre-OS environment with UEFI”, Microsoft blogger Steven Sinofsky says:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;“The most important thing to understand is that we are introducing capabilities that provide a no-compromise approach to security to customers that seek this out while at the same time full and complete control over the PC continues to be available.”&lt;/em&gt;&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/microsoft%E2%80%99s-take-uefi-may-impede-linux-and-that%E2%80%99s-being-polite" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Mon, 26 Sep 2011 14:51:28 +0000</pubDate>
    <dc:creator>Michael Reed</dc:creator>
    <guid isPermaLink="false">1025122 at https://www.linuxjournal.com</guid>
    </item>

  </channel>
</rss>
