Giter Club home page Giter Club logo

nsacyber / hardware-and-firmware-security-guidance Goto Github PK

View Code? Open in Web Editor NEW
742.0 74.0 143.0 297 KB

Guidance for the Spectre, Meltdown, Speculative Store Bypass, Rogue System Register Read, Lazy FP State Restore, Bounds Check Bypass Store, TLBleed, and L1TF/Foreshadow vulnerabilities as well as general hardware and firmware security guidance. #nsacyber

License: Other

C 100.00%
vulnerability guidance spectre meltdown nessus audit cve cve-2017-5753 cve-2017-5754 cve-2017-5715

hardware-and-firmware-security-guidance's Introduction

Hardware and Firmware Security Guidance

Table of Contents

This repository provides content for aiding DoD administrators in verifying systems have applied and enabled mitigations for hardware and firmware vulnerabilities such as side-channel and UEFI vulnerabilities. The repository is a companion to NSA Cybersecurity Advisories such as Vulnerabilities Affecting Modern Processors. This repository is updated as new information, research, strategies, and guidance are developed.

The following mitigations generally apply to all systems. For specific steps for a particular operating system or vendor product, consult detailed instructions and strategies at Specific Guidance.

Apply firmware updates provided by system vendors. Updates may specifically refer to UEFI, BIOS, microcode, ucode, or individual hardware device firmware. Multiple separate firmware updates may be available for a given system, or all updates may be rolled up into a single package (no universal standard exists). Firmware updates may not be delivered through established patching services such as Windows Update and are easy to miss. Consult vendor resources such as those provided by Dell and HP.

Ensure that firmware updates are allowed to execute uninterrupted. Firmware updates may have multiple phases. For example, firmware updates for Intel platforms typically have a distinct phase for updating the Management Engine (ME) that follows platform firmware update. Reboots may exist between phases.

Microsoft, Apple, Red Hat, and Google have all released patches for their respective operating systems. Some software vendors -- particularly web browsers, document readers, and development kits -- may also have side-channel attack mitigation updates. Apply all patches to software. Be sure to check software that use vendor-specific update services or patch files -- not all vendors provide patches for operating system vendors to utilize.

VMware, Citrix, Xen Project, Amazon, Microsoft, and other virtualization and cloud providers have also provided side-channel attack mitigation patches. Some infrastructures require system administrators to apply patches, and others -- typically cloud infrastructures -- automatically apply patches without any input.

Some OS vendors have released patches with disabled mitigations due to performance impact concerns. Perform a risk analysis to determine the infrastructure's exposure to arbitrary executable and script execution. Apply mitigations to endpoints most exposed and at risk. Check to ensure Spectre, Meltdown, MDS, and other mitigations are actually enforced. Application and script whitelisting combined with endpoint permissions lockdown may be sufficient alternatives to performance-impacting mitigations.

Some updates may require configuration changes to enable the full benefit of side-channel attack mitigations. Development kits in particular may require re-compilation of binaries to enable new CPU instructions. Operating systems may need changes made to user and network policies. Consult vendor resources for guidance on applying the appropriate mitigations for your use case.

Disable Hyper-Threading on systems that match ALL of the following requirements:

  1. Intel systems handling sensitive information (e.g. classified, financial, medical)
  2. Intel systems that allow the execution of arbitrary programs and scripts (e.g. systems lacking application whitelisting)
  3. Intel systems that are part of the 9th generation or older

All form factors are affected (e.g. desktops, servers, notebooks, tablets). Disabling Hyper-Threading may impart a significant performance penalty on some use cases. Virtual processor and Simultaneous MultiThreading (SMT) solutions from vendors other than Intel are not implicated as susceptible to MDS as of March, 2020.

To test that patches are successful see the section named Verification.

Assume that all processor products from all processor manufacturers (Intel, AMD, ARM, IBM, Apple, Samsung, Nvidia, Qualcomm, etc.) are affected by one or more side-channel vulnerabilities. Attempts have been made to quantify which specific processors are affected by a given attack or its variations. However, the listing of products continues to grow as more researchers put resources towards expanding the scope of analyzed products. In general, the more market share a company has, the more likely their products have discovered side-channel attacks with names and CVEs.

Processor vendor exposure to side-channel attacks varies. For example, Spectre affects nearly all processor products to some degree; Meltdown and Microarchitectural Data Sampling (MDS) primarily affect Intel products. Take A Way only affects AMD products. Replacing older hardware with newer hardware does not guarantee mitigation of all side-channel vulnerabilities. However, newer hardware features updated instructions that lessen the performance impact of patches.

As of March, 2020, processor vendor exposure to side-channel attacks still varies. In general, older CPUs have more vulnerabilities and are affected more adversely by mitigations than newer CPUs. However, new CPUs have proven to still have vulnerabilities as security researchers continue to discover clever ways to break security boundaries and even defeat recent mitigation efforts. Look for products that specifically boast side-channel mitigation and performance benefits over previous generations.

NSA does not have the mission to test every processor released. Researchers, product vendors, and tech websites have compiled lists of affected products.

Spectre exploits performance-enhancing behaviors known as "speculative execution." Variants include SpectreNG, SpectreRSB, Spectre Prime, and Spectre followed by version numbers. Technical names include bounds check bypass, write bounds bypass, protected memory range bypass, enclave branch target injection, return stack poisoning, and network cache shadow copy.

During speculative execution a processor may continue executing down one branch of a conditional instruction rather than waiting for the result. All execution following the conditional is referred to as "speculation" since the processor does not yet know the result of conditional instruction that has not yet returned a result. Once the result is returned, the processor's guess is either determined to be correct or incorrect. A correct guess shields the user from any performance impact, delay, or lag. Incorrect speculation temporarily pollute's the processor's cache with data that should not be present and may be available for exfiltration. Alternatively, observation of processor energy use, register use, executed instructions, speed variation, and other electronic indicators can reveal secrets without needing to read cache.

For an example, assume there exists a local application that presents the user with a login prompt. Upon successful login, a secret message is displayed. An attacker can attempt to exploit Spectre vulnerabilities by deliberately entering incorrect logins and reading processor cache. The processor may speculatively load the secret message in anticipation of a correct login. The attacker can then fish the secret message out of cache despite not having login credentials to see it.

Meltdown builds upon Spectre. Variants include Meltdown Prime, Total Meltdown, and Meltdown followed by version numbers. Technical names include branch target injection, rogue data cache load, and rogue register load. Meltdown exploits a weakness in permission-checking during speculative execution. Some processor implementations will execute instructions prior to checking for permissions to access restricted regions of memory. Secrets can be leaked, security boundaries can be bypassed, and even virtual separation can be defeated due to the permission check that happens after speculative execution has already loaded protected data.

For an example, assume there exists a local application that features multiple services. Some of the services require the user to have administrative credentials. An attacker could launch the application, deliberately try to use a service they don't have permission to utilize, and then recover speculative execution cache data resulting from the processor's possible assumption that the user had the correct permissions. If the application happened to be a user management system, then the attacker may have the opportunity to siphon administrative credentials out of cache.

Foreshadow builds upon Spectre. Variants include SGXpectre and technical names include L1 terminal fault and cache overrun. Foreshadow is all about violating trust boundaries -- different from Meltdown's focus on permissions and separations. Regions of memory can be tagged to have separations enforced at the hardware level. Secure enclaves, such as Intel's SGX, share system RAM with other applications and operating systems. Hypervisors, also known as Virtual Machine Managers (VMMs), can leverage different hardware virtualization features to separate their memory from other applications and operating systems too. Foreshadow allows a process running as a user to violate the boundaries between user memory and SGX or VMM memory via speculative execution.

For an example, assume there exists a local SGX application -- effectively a black box from some trusted vendor -- that contains a decryption key. A malicious user could leverage a Foreshadow exploit to leak the decryption key out of the SGX-protected enclave. SGX enclaves typically run as user processors meaning that no elevated credentials are necessary.

BranchScope builds upon Spectre. BranchScope targets the Branch Prediction Units (BPUs) that handle speculation when branching instructions, such as a conditional, are encountered. Modern processors handle multiple process threads simultaneously. BranchScope leverages processes against each other to influence and sometimes control the flow of speculative execution. Processes may prime the Branch Predictor itself to be predisposed to a specific solution, or they may corrupt the state of BPUs.

For an example, assume there exists a local application that has a login prompt and displays a different secret message based on which user has logged in. An attacker utilizing BranchScope could convince the processor to speculatively load the secret message for a specific user even though the attacker does not have their password.

TLBleed is a Spectre-like vulnerability that can exist in some poorly-developed software. TLBleed requires a processor that feeds multiple execution threads to a single processing core. Intel brands this technology Hyper Threading, and AMD uses the term Simultaneous Multi-Threading (SMT).

One thread acts as the victim and the other acts as the attacker. The attacker can observe the victim thread's activity by accessing memory addresses in the shared-core's Transaction Lookaside Buffer (TLB). TLB entries can be used to translate between virtual and physical memory locations. The attacker can observe any memory the victim has been using including memory used to store prime numbers for cryptographic operations. Processor vendors view the fault as a problem with obsolete third-party development libraries that are not thread-safe. As a result, no CVE has been issued.

PortSmash is similar to TLBleed. However, the attack thread observes the timing, cache accesses, memory accesses, energy use, and behavior of the victim thread. The attack thread does not need to access memory via the TLB. Close observation of the processor and platform hosting the victim thread can allow the attack thread to leak data from the victim thread. PortSmash is particularly effective against cryptographic functions where entropy can be observed or stealthily mirrored.

NetSpectre is the only side-channel vulnerability listed on this page that does not require local code execution on a target system. Attackers can target systems connected to a network and flood them with data -- particularly data that takes advantage of AVX instruction sets. Processing of that data can reveal electronic indicators that allow the leaking or duplication of system secrets. NetSpectre is a noisy and slow attack method due to the large amount of data that must be sent to the target machine. An exploitable network driver, network service, or network application, such as a web browser, is also required on the target machine.

Microarchitectural Data Sampling (MDS) vulnerabilities are also referred to as ZombieLoad, Fallout, and Rogue In-flight Data Load (RIDL). MDS vulnerabilities expand upon weaknesses identified in Meltdown and TLBleed. Mitigations have focused on controlling access and frequently clearing processor caches. However, processor cache data is staged in buffers when transiting into and out of cache memory space. MDS exploits target the buffers. Information can be leaked from or injected into buffers to manipulate processor execution and speculative behaviors.

CacheOut expands upon MDS and RIDL vulnerabilities and targets Intel platforms. Researchers introduce new mechanisms for accessing data across all security boundaries and in the presence of recent mitigations. New microcode and kernel patches are expected in the first half of 2020 to address CacheOut vulnerabilities.

Take A Way (TAW) targets AMD platforms with a new class of side-channel vulnerabilities. TAW involves manipulating power management features (specifically Cache Way Predictors), defeating Address Space Layout Layout Randomization (ASLR), and leveraging Spectre-like attacks to covertly access unauthorized memory. Successful attacks can be carried out via JavaScript found on a malicious website. However, the attack is slow to leak data, only captures incomplete snippets of data structures, and can readily be mitigated via software patches.

Load Value Injection (LVI) expands upon concepts introduced by Spectre, Meltdown, and MDS. LVI targets Intel platforms. Instead of leaking data through side-effects, LVI takes a more direct approach by having the CPU volunteer data as a result of carefully placed instructions that are triggered in sequence by fault and load commands. The result is a type of undetectable, covert channel that bypasses existing side-channel mitigations and violates the boundaries of security enclaves -- specifically Intel SGX.

Mitigation measures involve the recompilation and redeployment of SGX-enabled applications. Speculation and control flow are also more tightly controlled post-mitigation. A significant performance penalty is expected.

LoJax is a malicious modification to the anti-theft solution known as Computrace or LoJack. Each of these applications exist as UEFI modules implanted into system firmware. Firmware does not get cleared when the operating system is reformatted or storage media is replaced. Such persistence enables anti-theft solutions to continue to function despite attempts to disable them.

Computrace, LoJack, and other verified and trusted anti-theft solutions are provided with UEFI Secure Boot signatures to allow execution. LoJax features an invalid signature. Note that Secure Boot does not remove LoJax -- only a firmware write can do so. To check for the presence of or vulnerability to LoJax on a specific endpoint, isolate the machine and use CHIPSEC (highly privileged driver not appropriate for production environments).

LoJax mitigation depends on platform and configuration. Secure Boot is sufficient to prevent LoJax execution at boot time on most server systems. Both standard mode and custom mode will block LoJax. However, security researchers have discovered that common business and consumer workstations skip firmware signature checks especially when placed into fast boot or minimal boot check mode. Use the thorough boot option and consult with the system vendor to determine the correct set of UEFI options and system firmware version to minimize the risk of LoJax.

Together, these four named attacks constitute what is publicized as "AMD Flaws" and over a dozen vulnerabilities. Many vulnerabilities assume the compromise of administrator credentials or completely inept software-vetting processes. Some of the vulnerabilities are a direct result of debug features left enabled for use in advanced system tweaking common in the overclocking and gaming communities.

To mitigate AMD Flaws, purchase business-class machines that lack or limit enthusiast features such as overclocking, fan control, custom thermal management, RGB lighting, and firmware modding support. Also ensure that all firmware, microcode, and software updates are applied. Carefully analyze software before using it in conjunction with the AMD Secure Processor (SP) or Platform Security Processor (PSP) protected enclaves.

Microsoft plays a prominent role in the assigning of UEFI Secure Boot signatures. Most modern machines ship with a Microsoft Windows Key Exchange Key (KEK) and a Microsoft Third-Party UEFI Marketplace KEK. Sometimes signatures are issued to bootable binaries by mistake. Rather than revoke the KEK and invalidate thousands of products, Microsoft can issue a Blacklist Database (DBX) hash for a specific signed binary.

Microsoft's patch KB4524244 issues a DBX record for a bootloader with the ability to bypass UEFI Secure Boot Protections. Initial boot firmware begins the Secure Boot process. After the Boot Device Select (BDS) phase of UEFI boot, execution control and responsibility for Secure Boot enforcement transfers to the software environment -- specifically the bootloader. The bootloader identified by Microsoft's DBX update is known to ignore Secure Boot and break a chain of trust that should extend to Microsoft's kernel. However, some endpoints have had difficulty applying the DBX update record which has caused Microsoft to pull back KB4524244.

To mitigate the threat of the dangerous bootloader, add the following SHA-256 hash to each system's DBX records if it is not already present:

81d8fb4c9e2e7a8225656b4b8273b7cba4b03ef2e9eb20e0a0291624eca1ba86

Future Microsoft software patches and system vendor firmware patches may also add the hash to the DBX. NSA is working to identify the ideal contents of DBX and share information to help partners maintain and customize UEFI Secure Boot. See UEFI Secure Boot Customization.

See UEFI Defensive Practices Guidance technical report.

Check out our recent report on UEFI Secure Boot Customization. The report is the result of numerous prototypes and lessons learned. While not intended as a response to BootHole, the Customization report does provide commands and strategies to mitigate hypothetical boot-time threats of which BootHole is a real example.

See the UEFI Secure Boot Customization section for similar info as the report, but presented in a manner more focused on researchers, administrators, and system integrators.

NSA does not endorse or promote specific products. See the National Information Assurance Partnership (NIAP) for specific products that have been vetted for compliance to protection profiles and applicable standards. NSA does have the following generic recommendations:

  1. Refresh workstations every 3 to 4 years and servers every 5 to 7 years
  2. Look for processors that carry Intel's vPro branding or AMD's PRO branding or that the ARM licensee advertises side-channel mitigations
  3. Upgrading to the latest generation reduces the impact of performance penalties incurred by some side-channel vulnerability mitigations. However, total protection from side-channel vulnerabilities is unlikely given the evolving threat landscape. Choose the vendor solution that provides the best protection at the time of purchase.
  4. Practice defense-in-depth by layering hardware, firmware, software, and run-time monitoring endpoint security solutions.

See LICENSE.

See CONTRIBUTING

See DISCLAIMER.

hardware-and-firmware-security-guidance's People

Contributors

iadgovadmin avatar iadgovuser1 avatar iadgovuser27 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hardware-and-firmware-security-guidance's Issues

May want to mention protection for initramfs hijacking

Regarding Linux, the secureboot document appears to cover the steps for enabling secureboot and also explains the general architecture for protections enabled with that technology, but there is a commonly overlooked abuse which was not mentioned.
This abuse works against Redhat/Debian/other major distros' default implementations of secureboot and requires deliberate effort to mitigate.

Ultimately this stems from the limitation of secureboot being only able to verify the signature of a single EFI file on disk, but most distributions boot with 2 or 3. Mutilation of these unverified files can result in early-boot privileged code execution, potential disk key interception, and modification of kernel boot parameters which can severely cripple a machine's security posture.

I've worked on some documentation and a tool for remediating this kind of attack here:
https://github.com/noahbliss/mortar

There are some other fantastic additional reading resources as well, but definitely a major design consideration when building a hardened Linux machine.

Additional resources:
https://github.com/Snawoot/linux-secureboot-kit
https://threat.tevora.com/secure-boot-tpm-2/

pesign doesn't find shimx.efi

hello,

pesign doesn't find shimx.efi so i paste below to line of command where happen the errors finally thank you in advance to help myself pass this errors,

[liveuser@localhost-live ~]$ sudo pesign -S -i=shimx64.efi
pesign: Error opening input: No such file or directory
[liveuser@localhost-live ~]$ pesign -S -i=shimx64.efi
pesign: Error opening input: No such file or directory

Regards.

Azaretdodo.

after have find a github for kmodsign but i don't understand it for it kind of mok after i have found a kind on antother github for the kernel however the system has losen it understanding

hello,

the link of the github of kmodsign below too the github doesn't explain good so after have paste the link of the github i paste the line of command launched below as you see after have install the dependancies around of kmodsign keep unfound thus thank you in advance to help myself pass this problem in addition with another github it explain for the kernel but the kind for that break,

https://gist.github.com/lijikun/22be09ec9b178e745758a29c7a147cc9

[liveuser@localhost-live ~]$ sudo kmodsign sha512 DBK.key DBK.der antimalware.ko
[sudo] Mot de passe de liveuser : 
sudo: kmodsign : commande introuvable
[liveuser@localhost-live ~]$ sudo dnf install kmodsign
Dernière vérification de l’expiration des métadonnées effectuée il y a 1:03:07 le lun. 26 juin 2023 09:33:49.
Aucune correspondance pour le paramètre: kmodsign
Erreur : Impossible de trouver une correspondance: kmodsign
[liveuser@localhost-live ~]$ sudo yum install kmodsign
Dernière vérification de l’expiration des métadonnées effectuée il y a 1:03:49 le lun. 26 juin 2023 09:33:49.
Aucune correspondance pour le paramètre: kmodsign
Erreur : Impossible de trouver une correspondance: kmodsign
[liveuser@localhost-live ~]$ sudo dnf install mokutil dkms gcc make kernel-devel
Dernière vérification de l’expiration des métadonnées effectuée il y a 1:06:49 le lun. 26 juin 2023 09:33:49.
Le paquet mokutil-2:0.6.0-6.fc38.x86_64 est déjà installé.
Dépendances résolues.
===================================================================================
 Paquet                      Architecture Version              Dépôt         Taille
===================================================================================
Installation:
 dkms                        noarch       3.0.11-1.fc38        updates        90 k
 gcc                         x86_64       13.1.1-4.fc38        updates        34 M
 kernel-devel                x86_64       6.3.8-200.fc38       updates        19 M
 make                        x86_64       1:4.4-3.fc38         fedora        580 k
Mise à jour:
 cpp                         x86_64       13.1.1-4.fc38        updates        11 M
 libgcc                      x86_64       13.1.1-4.fc38        updates       107 k
 libgomp                     x86_64       13.1.1-4.fc38        updates       317 k
Installation des dépendances:
 binutils                    x86_64       2.39-9.fc38          fedora        5.4 M
 binutils-gold               x86_64       2.39-9.fc38          fedora        784 k
 bison                       x86_64       3.8.2-4.fc38         fedora        1.0 M
 elfutils-libelf-devel       x86_64       0.189-1.fc38         fedora         24 k
 flex                        x86_64       2.6.4-12.fc38        fedora        313 k
 gc                          x86_64       8.2.2-3.fc38         fedora        110 k
 glibc-devel                 x86_64       2.37-1.fc38          fedora         50 k
 glibc-headers-x86           noarch       2.37-1.fc38          fedora        530 k
 guile22                     x86_64       2.2.7-7.fc38         fedora        6.5 M
 kernel-core                 x86_64       6.3.8-200.fc38       updates        16 M
 kernel-devel-matched        x86_64       6.3.8-200.fc38       updates       132 k
 kernel-headers              x86_64       6.3.3-200.fc38       updates       1.5 M
 kernel-modules-core         x86_64       6.3.8-200.fc38       updates        30 M
 libxcrypt-devel             x86_64       4.4.33-7.fc38        fedora         30 k
 libzstd-devel               x86_64       1.5.4-1.fc38         fedora         51 k
 m4                          x86_64       1.4.19-5.fc38        fedora        303 k
 openssl-devel               x86_64       1:3.0.9-1.fc38       updates       2.6 M
 zlib-devel                  x86_64       1.2.13-3.fc38        fedora         45 k

Résumé de la transaction
===================================================================================
Installer        22 Paquets
Mettre à niveau   3 Paquets

Taille totale des téléchargements : 130 M
Voulez-vous continuer ? [o/N] : o
Téléchargement des paquets :
(1/25): bison-3.8.2-4.fc38.x86_64.rpm              1.0 MB/s | 1.0 MB     00:01    
(2/25): binutils-gold-2.39-9.fc38.x86_64.rpm       746 kB/s | 784 kB     00:01    
(3/25): elfutils-libelf-devel-0.189-1.fc38.x86_64. 180 kB/s |  24 kB     00:00    
(4/25): gc-8.2.2-3.fc38.x86_64.rpm                 829 kB/s | 110 kB     00:00    
(5/25): glibc-devel-2.37-1.fc38.x86_64.rpm         556 kB/s |  50 kB     00:00    
(6/25): flex-2.6.4-12.fc38.x86_64.rpm              857 kB/s | 313 kB     00:00    
(7/25): glibc-headers-x86-2.37-1.fc38.noarch.rpm   967 kB/s | 530 kB     00:00    
(8/25): libxcrypt-devel-4.4.33-7.fc38.x86_64.rpm   243 kB/s |  30 kB     00:00    
(9/25): libzstd-devel-1.5.4-1.fc38.x86_64.rpm      391 kB/s |  51 kB     00:00    
(10/25): m4-1.4.19-5.fc38.x86_64.rpm               683 kB/s | 303 kB     00:00    
(11/25): make-4.4-3.fc38.x86_64.rpm                1.0 MB/s | 580 kB     00:00    
(12/25): zlib-devel-1.2.13-3.fc38.x86_64.rpm       487 kB/s |  45 kB     00:00    
(13/25): dkms-3.0.11-1.fc38.noarch.rpm             886 kB/s |  90 kB     00:00    
(14/25): binutils-2.39-9.fc38.x86_64.rpm           818 kB/s | 5.4 MB     00:06    
(15/25): guile22-2.2.7-7.fc38.x86_64.rpm           838 kB/s | 6.5 MB     00:07    
(16/25): kernel-core-6.3.8-200.fc38.x86_64.rpm     892 kB/s |  16 MB     00:18    
(17/25): kernel-devel-matched-6.3.8-200.fc38.x86_6 305 kB/s | 132 kB     00:00    
(18/25): kernel-headers-6.3.3-200.fc38.x86_64.rpm  965 kB/s | 1.5 MB     00:01    
(19/25): kernel-devel-6.3.8-200.fc38.x86_64.rpm    875 kB/s |  19 MB     00:22    
(20/25): openssl-devel-3.0.9-1.fc38.x86_64.rpm     907 kB/s | 2.6 MB     00:02    
(21/25): cpp-13.1.1-4.fc38.x86_64.rpm              790 kB/s |  11 MB     00:14    
(22/25): libgcc-13.1.1-4.fc38.x86_64.rpm           258 kB/s | 107 kB     00:00    
(23/25): libgomp-13.1.1-4.fc38.x86_64.rpm          525 kB/s | 317 kB     00:00    
(24/25): kernel-modules-core-6.3.8-200.fc38.x86_64 1.1 MB/s |  30 MB     00:27    
(25/25): gcc-13.1.1-4.fc38.x86_64.rpm              667 kB/s |  34 MB     00:52    
-----------------------------------------------------------------------------------
Total                                              2.3 MB/s | 130 MB     00:56     
Test de la transaction
La vérification de la transaction a réussi.
Lancement de la transaction de test
Transaction de test réussie.
Exécution de la transaction
  Préparation           :                                                      1/1 
  Mise à jour de        : libgcc-13.1.1-4.fc38.x86_64                         1/28 
  Exécution du scriptlet: libgcc-13.1.1-4.fc38.x86_64                         1/28 
  Installation          : binutils-gold-2.39-9.fc38.x86_64                    2/28 
  Installation          : binutils-2.39-9.fc38.x86_64                         3/28 
  Exécution du scriptlet: binutils-2.39-9.fc38.x86_64                         3/28 
  Installation          : kernel-modules-core-6.3.8-200.fc38.x86_64           4/28 
  Installation          : kernel-core-6.3.8-200.fc38.x86_64                   5/28 
  Exécution du scriptlet: kernel-core-6.3.8-200.fc38.x86_64                   5/28 
  Installation          : m4-1.4.19-5.fc38.x86_64                             6/28 
  Installation          : bison-3.8.2-4.fc38.x86_64                           7/28 
  Installation          : flex-2.6.4-12.fc38.x86_64                           8/28 
  Installation          : gc-8.2.2-3.fc38.x86_64                              9/28 
  Installation          : guile22-2.2.7-7.fc38.x86_64                        10/28 
  Installation          : make-1:4.4-3.fc38.x86_64                           11/28 
  Mise à jour de        : libgomp-13.1.1-4.fc38.x86_64                       12/28 
  Mise à jour de        : cpp-13.1.1-4.fc38.x86_64                           13/28 
  Installation          : openssl-devel-1:3.0.9-1.fc38.x86_64                14/28 
  Installation          : kernel-headers-6.3.3-200.fc38.x86_64               15/28 
  Installation          : zlib-devel-1.2.13-3.fc38.x86_64                    16/28 
  Installation          : libzstd-devel-1.5.4-1.fc38.x86_64                  17/28 
  Installation          : elfutils-libelf-devel-0.189-1.fc38.x86_64          18/28 
  Installation          : glibc-headers-x86-2.37-1.fc38.noarch               19/28 
  Installation          : libxcrypt-devel-4.4.33-7.fc38.x86_64               20/28 
  Installation          : glibc-devel-2.37-1.fc38.x86_64                     21/28 
  Installation          : gcc-13.1.1-4.fc38.x86_64                           22/28 
  Installation          : kernel-devel-6.3.8-200.fc38.x86_64                 23/28 
  Exécution du scriptlet: kernel-devel-6.3.8-200.fc38.x86_64                 23/28 
  Installation          : kernel-devel-matched-6.3.8-200.fc38.x86_64         24/28 
  Installation          : dkms-3.0.11-1.fc38.noarch                          25/28 
  Exécution du scriptlet: dkms-3.0.11-1.fc38.noarch                          25/28 
Created symlink /etc/systemd/system/multi-user.target.wants/dkms.service → /usr/lib/systemd/system/dkms.service.

  Nettoyage de          : libgomp-13.0.1-0.12.fc38.x86_64                    26/28 
  Nettoyage de          : libgcc-13.0.1-0.12.fc38.x86_64                     27/28 
  Exécution du scriptlet: libgcc-13.0.1-0.12.fc38.x86_64                     27/28 
  Nettoyage de          : cpp-13.0.1-0.12.fc38.x86_64                        28/28 
  Exécution du scriptlet: kernel-modules-core-6.3.8-200.fc38.x86_64          28/28 
  Exécution du scriptlet: kernel-core-6.3.8-200.fc38.x86_64                  28/28 
dkms: running auto installation service for kernel 6.3.8-200.fc38.x86_64 Done. 
dkms: running auto installation service for kernel 6.3.8-200.fc38.x86_64 Done. 

  Exécution du scriptlet: cpp-13.0.1-0.12.fc38.x86_64                        28/28 
  Vérification de       : binutils-2.39-9.fc38.x86_64                         1/28 
  Vérification de       : binutils-gold-2.39-9.fc38.x86_64                    2/28 
  Vérification de       : bison-3.8.2-4.fc38.x86_64                           3/28 
  Vérification de       : elfutils-libelf-devel-0.189-1.fc38.x86_64           4/28 
  Vérification de       : flex-2.6.4-12.fc38.x86_64                           5/28 
  Vérification de       : gc-8.2.2-3.fc38.x86_64                              6/28 
  Vérification de       : glibc-devel-2.37-1.fc38.x86_64                      7/28 
  Vérification de       : glibc-headers-x86-2.37-1.fc38.noarch                8/28 
  Vérification de       : guile22-2.2.7-7.fc38.x86_64                         9/28 
  Vérification de       : libxcrypt-devel-4.4.33-7.fc38.x86_64               10/28 
  Vérification de       : libzstd-devel-1.5.4-1.fc38.x86_64                  11/28 
  Vérification de       : m4-1.4.19-5.fc38.x86_64                            12/28 
  Vérification de       : make-1:4.4-3.fc38.x86_64                           13/28 
  Vérification de       : zlib-devel-1.2.13-3.fc38.x86_64                    14/28 
  Vérification de       : dkms-3.0.11-1.fc38.noarch                          15/28 
  Vérification de       : gcc-13.1.1-4.fc38.x86_64                           16/28 
  Vérification de       : kernel-core-6.3.8-200.fc38.x86_64                  17/28 
  Vérification de       : kernel-devel-6.3.8-200.fc38.x86_64                 18/28 
  Vérification de       : kernel-devel-matched-6.3.8-200.fc38.x86_64         19/28 
  Vérification de       : kernel-headers-6.3.3-200.fc38.x86_64               20/28 
  Vérification de       : kernel-modules-core-6.3.8-200.fc38.x86_64          21/28 
  Vérification de       : openssl-devel-1:3.0.9-1.fc38.x86_64                22/28 
  Vérification de       : cpp-13.1.1-4.fc38.x86_64                           23/28 
  Vérification de       : cpp-13.0.1-0.12.fc38.x86_64                        24/28 
  Vérification de       : libgcc-13.1.1-4.fc38.x86_64                        25/28 
  Vérification de       : libgcc-13.0.1-0.12.fc38.x86_64                     26/28 
  Vérification de       : libgomp-13.1.1-4.fc38.x86_64                       27/28 
  Vérification de       : libgomp-13.0.1-0.12.fc38.x86_64                    28/28 

Mis à niveau:
  cpp-13.1.1-4.fc38.x86_64                 libgcc-13.1.1-4.fc38.x86_64            
  libgomp-13.1.1-4.fc38.x86_64            
Installé:
  binutils-2.39-9.fc38.x86_64                                                      
  binutils-gold-2.39-9.fc38.x86_64                                                 
  bison-3.8.2-4.fc38.x86_64                                                        
  dkms-3.0.11-1.fc38.noarch                                                        
  elfutils-libelf-devel-0.189-1.fc38.x86_64                                        
  flex-2.6.4-12.fc38.x86_64                                                        
  gc-8.2.2-3.fc38.x86_64                                                           
  gcc-13.1.1-4.fc38.x86_64                                                         
  glibc-devel-2.37-1.fc38.x86_64                                                   
  glibc-headers-x86-2.37-1.fc38.noarch                                             
  guile22-2.2.7-7.fc38.x86_64                                                      
  kernel-core-6.3.8-200.fc38.x86_64                                                
  kernel-devel-6.3.8-200.fc38.x86_64                                               
  kernel-devel-matched-6.3.8-200.fc38.x86_64                                       
  kernel-headers-6.3.3-200.fc38.x86_64                                             
  kernel-modules-core-6.3.8-200.fc38.x86_64                                        
  libxcrypt-devel-4.4.33-7.fc38.x86_64                                             
  libzstd-devel-1.5.4-1.fc38.x86_64                                                
  m4-1.4.19-5.fc38.x86_64                                                          
  make-1:4.4-3.fc38.x86_64                                                         
  openssl-devel-1:3.0.9-1.fc38.x86_64                                              
  zlib-devel-1.2.13-3.fc38.x86_64                                                  

Terminé !
[liveuser@localhost-live ~]$ sudo pesign -S -i=shimx64.efi
pesign: Error opening input: No such file or directory
[liveuser@localhost-live ~]$ sudo kmodsign sha512 DBK.key DBK.der antimalware.ko
sudo: kmodsign : commande introuvable

Have a good week,

Regards.

Azaretdodo.

[citation needed]

I'm not sure how you came up with picking 3 out of dozens of secureboot bypasses (e.g. see https://darkmentor.com/timeline.html. It doesn't seem to be based on attacks that have been detected in-the-wild, since "AMD Flaws" wasn't in-the-wild, so idk what the criteria was)... but at a minimum it feels like the LoJax section should be linking to the LoJax paper.

Unable to load certificate

hello,

after have launch your fourth line of command i happen one problem so i paste below the fourth line of command finally thank you in advance to help myself follow fully your github,

[liveuser@localhost-live ~]$ sudo openssl req -new -x509 -newkey rsa:2048 -subj "/CN=Custom KEK/" -keyout KEK.key -out KEK.crt -days 3650 -nodes -sha256
.......+..+......+.............+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...+......+........+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*........+.....+....+......+........+...+...+....+...+.....+...+....+..+.+............+...+.........+...+..+......+............+.+.....+.+...+.....+.+......+.....+...+.+..+....+...+........+....+.........+.....+......+.+.........+...+...............+.....+.............+..+.+.....+......+......+..........+...............+...+...........+...+..................+.......+...+..+.+..+...................+.....+.+..+...+....+.....+.+..+......+....+...+.....+...............+....+...+......+.....+.+...+..................+........+......+.+...+...........+.+..+.......+..................+.....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.+.....+.......+..+.........+.......+...+......+.........+......+...+...+..+......+....+..+.........+............+....+...........+...+.+...+......+.........+......+..+....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*....+.....+...+...+...+....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*........+............+.....+....+...............+........+.+.....................+........+...+....+.....+......+.......+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-----
[liveuser@localhost-live ~]$ sudo openssl req -new -x509 -newkey rsa:2048 -subj "/CN=Custom DBK/" -keyout DBK.key -out KEK.crt -days 3650 -nodes -sha256
...+.+...+..+.+.....+.........+.........+....+..+.+............+.....+.......+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..+......+....+.................+....+.....+......+....+...........+.......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.......+.+...+..+..........+.........+...+......+......+........+.+..+..................+......+....+..+...+.......+.....+....+......+....................+.........+....+.....+....+.................+...+.............+..+.+......+...........+....+.....+....+...........+....+......+.........+..+...+....+...+...+.....+....+..+...+.............+..+..........+.....+...+...+.......+...+..+...+....+......+.........+..+...+..........+...+.........+.........+...........+......+...+....+............+...+..+......+...+......+.+..+.......+...+......+.....+....+............+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
..+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+..+...+....+.....+.............+........+.......+..+.........+....+...+...+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*........+...............+....+...+........+....+...+............+..+..........+........+.+......+........+.+...........+....+..+....+......+.....+....+.....................+...+......+...+..+......+...+..........+......+.....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-----
[liveuser@localhost-live ~]$ sudo openssl x509 -outform der -in KEK.crt -out KEK.cer
[liveuser@localhost-live ~]$ sudo openssl x509 -outform der -in DBK.crt -out DBK.cer
Could not open file or uri for loading certificate from DBK.crt
001E0323B37F0000:error:16000069:STORE routines:ossl_store_get0_loader_int:unregistered scheme:crypto/store/store_register.c:237:scheme=file
001E0323B37F0000:error:80000002:system library:file_open:No such file or directory:providers/implementations/storemgmt/file_store.c:267:calling stat(DBK.crt)
Unable to load certificate

regards.

Azaretdodo.

Microsoft Surface devices _do_ support Secure Boot customization

Please remove documentation that incorrectly states that Microsoft Surface does not support UEFI Secure Boot customization. That was true for Surface RT & RT 2, but none of the modern PC class products - they all support programmatic customization after deleting the keys from the BIOS menu.

To customize Surface UEFI Secure Boot:

  1. Boot to Surface BIOS menu
  2. Find the BIOS Security page
  3. Click Secure Boot "Change Configuration"
  4. Select Secure Boot configuration "None"
  5. Exit, Save, reboot

All secure boot keys are now deleted. Boot to a UEFI Shell or the OS of your choice to install your preferred keys. Use SetVariable(), and set PK last. Reboot and enjoy!

I tested this last week using https://github.com/microsoft/mu_tiano_platforms/tree/release/202008/Platforms/OvmfPkg/EnrollDefaultKeys (but with my custom keys)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.