Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

shim-15.5 for Isoo (2022-03-11) #229

Closed
8 of 9 tasks
haobinnan opened this issue Feb 22, 2022 · 11 comments
Closed
8 of 9 tasks

shim-15.5 for Isoo (2022-03-11) #229

haobinnan opened this issue Feb 22, 2022 · 11 comments

Comments

@haobinnan
Copy link

haobinnan commented Feb 22, 2022

Make sure you have provided the following information:

  • link to your code branch cloned from rhboot/shim-review in the form user/repo@tag
    https://github.com/haobinnan/shim-review/tree/isoo-shim-20220311
  • completed README.md file with the necessary information
  • shim.efi to be signed
  • public portion of your certificate(s) embedded in shim (the file passed to VENDOR_CERT_FILE)
  • binaries, for which hashes are added to vendor_db ( if you use vendor_db and have hashes allow-listed )
  • any extra patches to shim via your own git tree or as files
  • any extra patches to grub via your own git tree or as files
  • build logs
  • a Dockerfile to reproduce the build of the provided shim EFI binaries
What organization or people are asking to have this signed:
  • Qinhuangdao Yizhishu Software Development Co., Ltd.
  • Isoo is a software developer for data recovery, disk utilities and system backup. https://isoo.com/
  • Managing Director: Hao Binnan
What product or service is this for:
  • This is Isoo’s Linux-based operating system. We are going to develop some function based on the OS, such as resize partition, back up & restore operating system, etc.
Please create your shim binaries starting with the 15.5 shim release tar file:
https://github.com/rhboot/shim/releases/download/15.5/shim-15.5.tar.bz2
This matches https://github.com/rhboot/shim/releases/tag/15.5 and contains
the appropriate gnu-efi source.
Please confirm this as the origin your shim.
  • This is based on shim 15.5
What's the justification that this really does need to be signed for the whole world to be able to boot it:
  • Isoo wants to employ Secure Boot for building a trusted operating system from Shim to GRUB to the kernel to signed filesystem partitions. Secure Boot is the first step for this.
  • Isoo would like customers to be able to run Isoo’s Linux-based system on any amd64(64Bit) and x86(32Bit) device without disabling Secure Boot.
How do you manage and protect the keys used in your SHIM?
  • They're in an HSM
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 ?
  • We don't use vendor_db.
Is kernel upstream commit 75b0cea7bf307f362057cc778efe89af4c615354 present in your kernel, if you boot chain includes a Linux kernel ?
  • Yes.
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 ?
  • Yes.
"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
Where your code is only slightly modified from an upstream vendor's, please also preserve their SBAT entries to simplify revocation
  • SBAT for shim:

sbat,1,SBAT Version,sbat,1,https://github.com/rhboot/shim/blob/main/SBAT.md
shim,1,UEFI shim,shim,1,https://github.com/rhboot/shim
shim.isoo,1,Isoo,shim,15.5,https://www.isoo.com/


  • SBAT for grub2:

sbat,1,SBAT Version,sbat,1,https://github.com/rhboot/shim/blob/main/SBAT.md
grub,1,Free Software Foundation,grub,2.06,https://www.gnu.org/software/grub/
grub.ubuntu,1,Ubuntu,grub2,2.06-2ubuntu5,https://www.ubuntu.com/
grub.isoo,1,Isoo,grub2,2.06-isoo,https://www.isoo.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 ?
  • Yes.
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 ?
  • Downstream RHEL/Fedora/Debian/Canonical like implementation
Which modules are built into your signed grub image?

newc / memdisk / cpio / part_gpt / part_msdos / msdospart / ntfs / ntfscomp / fat / exfat / normal / chain / boot / configfile / linux / multiboot / png / all_video / search / blocklist / iso9660 / udf / minicmd / loopback / gfxmenu / gfxterm / reboot / romfs / procfs / sleep / ls / cat / echo / halt / test / probe / linux / cpuid / scsi / lsefi / lsefimmap / efifwsetup / efinet / backtrace / font / loadenv / syslinuxcfg / video

What is the origin and full version number of your bootloader (GRUB or other)?
If your SHIM launches any other components, please provide further details on what is launched
  • Our shim does not load any other components.
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
  • It doesn't
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.
  • We switched to a new certificate after boothole2
How do the launched components prevent execution of unauthenticated code?
  • Grub2 include common secure boot patches so they will only load appropriately signed binaries.
Does your SHIM load any loaders that support loading unsigned kernels (e.g. GRUB)?
  • No, our grub does not allow loading unsigned kernels when secure boot is enabled.
What kernel are you using? Which patches does it includes to enforce Secure Boot?
  • Linux Kernel: 5.15.24
  • It has the usual lockdown patches applied.
What changes were made since your SHIM was last signed?
  • Shim rebased to upstream version shim-15.5
What is the SHA256 hash of your final SHIM binary?
  • shimia32.efi.sha256sum: 59eeca1555882513c7ea97cbd36e8c689f55bd1f36c8e371f48d7c17e71e525b
  • shimx64.efi.sha256sum: 159f43b3fbe0e12fb69d80d2b63bdf30b6a7435b1aac270e2a66b2cd80b2789d
@haobinnan
Copy link
Author

My previously accepted SHIM:
#192
#202

@julian-klode
Copy link
Collaborator

#202 was not accepted, any review needs to read the backlog in there and figure out if the issues there were resolved.

@haobinnan
Copy link
Author

Thank you for your response. There is no need to review #202, as I've submitted shim15.5 (#229).
The #229 is NOT created based on #202. #229 uses shim15.5

@julian-klode
Copy link
Collaborator

julian-klode commented Mar 10, 2022

That's not what I wrote. I wrote that reviewers will have to check that the open issues raised there were resolved in this submission. Please do not interact when not asked a question.

@ecos-platypus
Copy link
Contributor

Disclaimer: I am not an authorized reviewer but review other shims to reduce the workload of the authorized reviewers and speed up the process for everyone.

Review was conducted in accordance to the reviewer guidelines (https://github.com/rhboot/shim/wiki/reviewer-guidelines)

  1. Vendor is not new, last accepted shim was shim-15.4 for Isoo (2021-08-09) #192, however last submission shim-15.4 for Isoo (2022-02-05) #202 was not accepted
  2. Build is reproducible but produces different sha256 checksums than the ones listed in the submission (those correspond to the binares stored in the shim-review fork):
    59eeca1555882513c7ea97cbd36e8c689f55bd1f36c8e371f48d7c17e71e525b  shim_result/shimia32.efi
    159f43b3fbe0e12fb69d80d2b63bdf30b6a7435b1aac270e2a66b2cd80b2789d  shim_result/shimx64.efi
    
  3. Shim is built from upstream tag 15.5 (checked out via git clone)
  4. All questions in issue template and README.md are answered
  5. Embedded self-signed CA certificate stands in relation with the company (C = CN, ST = Hebei, L = Qinhuangdao, O = "Isoo Software Development Co., Ltd.", CN = "Isoo Software Development Co., Ltd. CA"). This was deemed acceptable by @frozencemetery in shim-15.4 for Isoo (2022-02-05) #202 (comment)
  6. It is stated hat keys are stored in a HSM but it is questionable if this is the case. This has been noticed by @frozencemetery in shim-15.4 for Isoo (2022-02-05) #202 (comment) and the vendor subsequently removed the comment from README.md without presenting a reason for the comment or more details about the way they store the keys
  7. The embedded self-signed CA certificate has a duration of 20 years which I personally find a bit long but is acceptable according to the reviewer guidelines
  8. The submitted shim binaries contain the sbat data listed in the issue
    1. isoo is a sensible vendor extension
    2. GRUB is derived from Ubuntu and the distro is part of the sbat data
  9. GRUB is used as bootloader
  10. Questions regarding GRUB
    1. GRUB 2.06 with Ubuntu patches
    2. No custom patches are mentioned
  11. Kernel 5.15 with lockdown patches is used
  12. A new certificate is embedded in shim and used for signing GRUBs
  13. Shim verifies GRUB, GRUB verifies Kernel via Shim

Looks okay apart from the issues with reproducibility and the secure storage of keys. The authorized reviewers will have to decide about the second aspect.

@haobinnan haobinnan changed the title shim-15.5 for Isoo (2022-02-22) shim-15.5 for Isoo (2022-03-11) Mar 11, 2022
@haobinnan
Copy link
Author

Yes, the sha256 checksums is indeed different, because the related codes in the docker environment changed. I just built it again and got the same result as yours. So I updated the "issues". Could you please have a check of the newly updated one? Thank you!
@ecos-platypus

@ecos-platypus
Copy link
Contributor

I can confirm that the updated efi files and checksums now match the ones built via the Dockerfile. That leaves the part regarding HSM and secure key storage for an authorized reviewer.

@haobinnan
Copy link
Author

It has been more than half a year since #202. I know all reviewers volunteer their time on this, but the shim I am currently using has bugs. So I submit the shim 15.5. I desperately hope the shim 15.5 can be reviewed soon. Thank you!

@ecos-platypus
Copy link
Contributor

In my opinion, the first step towards getting your shim reviewed faster should be to review the shim requests of other vendors so that the official reviewers have less work processing already peer-reviewed requests. That should speed up the process for all vendors.

@haobinnan
Copy link
Author

Can the submission be reviewed
@steve-mcintyre

@haobinnan
Copy link
Author

Can the submission be reviewed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants