Closed EgoSecure closed 2 years ago
Our previous shim review issue - Shim 15.4 for EgoSecure #169
@steve-mcintyre @julian-klode Can the submission be reviewed? We need new fixes to solve the problem of our customers.
Review Notes This submission seems to be pretty similar to the previous one, with the only obvious delta being this patch
Action Items / Questions
@pnardini
* Line 695 of the build.log file contains a baseline shim hash that I cannot tie to this or a prior submission - is this from a transient binary? I ask because the prior submission had matching hashes for the submitted shim and the locally docker-built shim in the same position of the build.log file.
It was the transient wrong file to compare with (shim.efi with sha256 1fc917c7ad66487470e466c0ad40ddd45b9f7730a4b43e1b2542627f0596bbdc) from old internal build. The file shim.efi (sha256 677a9a828a1f20db92d4e6d1d75ad17321db1dc5c3ce4504d75715c828275ed1) from our submission is the right one for reviewing. Reproducible build produces right file (sha256 677a9a828a1f20db92d4e6d1d75ad17321db1dc5c3ce4504d75715c828275ed1) Should we update the log file to the right one?
* Has the custom second stage meaningfully changed since the last submission?
No
It was the transient wrong file to compare with (shim.efi with sha256 1fc917c7ad66487470e466c0ad40ddd45b9f7730a4b43e1b2542627f0596bbdc) from old internal build. The file shim.efi (sha256 677a9a828a1f20db92d4e6d1d75ad17321db1dc5c3ce4504d75715c828275ed1) from our submission is the right one for reviewing. Reproducible build produces right file (sha256 677a9a828a1f20db92d4e6d1d75ad17321db1dc5c3ce4504d75715c828275ed1) Should we update the log file to the right one?
That's what I figured, as I was able to reproduce the build that was submitted. It was something that gave me a brief pause in my review as I worked to understand it, so worthwhile to update the log file.
* Has the custom second stage meaningfully changed since the last submission?
No
Great. With an updated build log I think this is complete and ready for acceptance, but need to defer to one of @steve-mcintyre @julian-klode @frozencemetery (or someone else w/appropriate permissions) to officially do so.
@pnardini we updated the build log file thank you a lot sorry for this error
I concur with @pnardini, this is accepted. Please close the issue once you received a signed binary back from MS.
Make sure you have provided the following information:
EgoSecure/shim-review@egosecure-shim-x64-20211014
https://github.com/EgoSecure/shim-review/tree/egosecure-shim-x64-20211014/README.md
https://github.com/EgoSecure/shim-review/tree/egosecure-shim-x64-20211014/shim.efi
https://github.com/EgoSecure/shim-review/tree/egosecure-shim-x64-20211014/egosecure.public.cer
Not used
Some patches from shim upstream (shim 15.4 critical regressions)
Don't call QueryVariableInfo() on EFI 1.10 machines
Fix a broken file header on ia32
Fix handling of ignore_db and user_insecure_mode
mok: allocate MOK config table as BootServicesData
Bypass boot options
GRUB bootloader is not used
https://github.com/EgoSecure/shim-review/tree/egosecure-shim-x64-20211014/build.log
https://github.com/EgoSecure/shim-review/tree/egosecure-shim-x64-20211014/Dockerfile
What organization or people are asking to have this signed:
EgoSecure is European software vendor developing Data Security products
https://egosecure.com
What product or service is this for:
EgoSecure Full Disk Encryption
Please create your shim binaries starting with the 15.4 shim release tar file:
https://github.com/rhboot/shim/releases/download/15.4/shim-15.4.tar.bz2
This matches https://github.com/rhboot/shim/releases/tag/15.4 and contains
the appropriate gnu-efi source.
Please confirm this as the origin your shim.
Yes, we use 15.4 shim release https://github.com/rhboot/shim/releases/download/15.4/shim-15.4.tar.bz2
What's the justification that this really does need to be signed for the whole world to be able to boot it:
EgoSecure Full Disk Encryption secures data on laptops by applying sector level encryption with Pre-boot authentication. We need to be signed because we want to distribute our product to our end users across the world. Our Pre-boot authentication has to support Secure Boot. We have used a Microsoft SecureBoot signed Shim since 2018
How do you manage and protect the keys used in your SHIM?
The private key is stored on hardware token with restricted access
Do you use EV certificates as embedded certificates in the SHIM?
No
If you use new vendor_db functionality, are any hashes allow-listed, and if yes: for what binaries ?
Not used
Is kernel upstream commit 75b0cea7bf307f362057cc778efe89af4c615354 present in your kernel, if you boot chain includes a Linux kernel ?
Yes, this patch is included and applied
if SHIM is loading GRUB2 bootloader, are CVEs CVE-2020-14372,
CVE-2020-25632, CVE-2020-25647, CVE-2020-27749, CVE-2020-27779,
CVE-2021-20225, CVE-2021-20233, CVE-2020-10713, CVE-2020-14308,
CVE-2020-14309, CVE-2020-14310, CVE-2020-14311, CVE-2020-15705,
( July 2020 grub2 CVE list + March 2021 grub2 CVE list )
and if you are shipping the shim_lock module CVE-2021-3418
fixed ?
GRUB bootloader is not used
"Please specifically confirm that you add a vendor specific SBAT entry for SBAT header in each binary that supports SBAT metadata
( grub2, fwupd, fwupdate, shim + all child shim binaries )" to shim review doc ?
Please provide exact SBAT entries for all SBAT binaries you are booting or planning to boot directly through shim
shim:
shim.egosecure,1,EgoSecure GmbH a Matrix42 Company,shim,15.4,https://egosecure.com
Were your old SHIM hashes provided to Microsoft ?
Yes
Did you change your certificate strategy, so that affected by CVE-2020-14372, CVE-2020-25632, CVE-2020-25647, CVE-2020-27749,
CVE-2020-27779, CVE-2021-20225, CVE-2021-20233, CVE-2020-10713,
CVE-2020-14308, CVE-2020-14309, CVE-2020-14310, CVE-2020-14311, CVE-2020-15705 ( July 2020 grub2 CVE list + March 2021 grub2 CVE list )
grub2 bootloaders can not be verified ?
GRUB bootloader is not used
What exact implementation of Secureboot in grub2 ( if this is your bootloader ) you have ?
Upstream grub2 shim_lock verifier or Downstream RHEL/Fedora/Debian/Canonical like implementation ?
GRUB bootloader is not used
What is the origin and full version number of your bootloader (GRUB or other)?
GRUB bootloader is not used
If your SHIM launches any other components, please provide further details on what is launched
The SHIM launches our pre-boot authentication component (custom second-state loader) that can perform user verification, system decryption actions, and boot a Windows OS or Linux kernel.
If your GRUB2 launches any other binaries that are not Linux kernel in SecureBoot mode,
please provide further details on what is launched and how it enforces Secureboot lockdown
GRUB bootloader is not used
If you are re-using a previously used (CA) certificate, you
will need to add the hashes of the previous GRUB2 binaries
exposed to the CVEs to vendor_dbx in shim in order to prevent
GRUB2 from being able to chainload those older GRUB2 binaries. If
you are changing to a new (CA) certificate, this does not
apply. Please describe your strategy.
GRUB bootloader is not used
How do the launched components prevent execution of unauthenticated code?
The integrity of each file in our boot chain is verified by checking the validity of the digital signature using shim's protocol. All our componets have digital signature
Does your SHIM load any loaders that support loading unsigned kernels (e.g. GRUB)?
No
What kernel are you using? Which patches does it includes to enforce Secure Boot?
Linux kernel 5.5.7, which has the all the required patches to enforce the secure boot
What changes were made since your SHIM was last signed?
We have added only one patch to fix boot on some systems
Added a patch to bypass the boot option parsing. This code failed on some systems and produced a non-bootable name for the second stage loader. Because we are using custom filename for the second stage loader, we just bypass this code with this patch.
What is the SHA256 hash of your final SHIM binary?
677a9a828a1f20db92d4e6d1d75ad17321db1dc5c3ce4504d75715c828275ed1