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

CloudLinux 8 shim-15.4-4.el8.cloudlinux 20210405 #152

Closed
8 tasks done
andrewlukoshko opened this issue Apr 5, 2021 · 4 comments
Closed
8 tasks done

CloudLinux 8 shim-15.4-4.el8.cloudlinux 20210405 #152

andrewlukoshko opened this issue Apr 5, 2021 · 4 comments
Labels
accepted Submission is ready for sysdev

Comments

@andrewlukoshko
Copy link

andrewlukoshko commented Apr 5, 2021

Make sure you have provided the following information:

  • link to your code branch cloned from rhboot/shim-review in the form user/repo@tag
  • 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 do 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

Link to review: cloudlinux/shim-review@cloudlinux-shim-x86_64-20210405

What organization or people are asking to have this signed:

Cloud Linux Software, Inc.

What product or service is this for:

CloudLinux OS 8

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.

This starts with the shim 15.4 release tarball.
Here is the review repo: cloudlinux/shim-review@cloudlinux-shim-x86_64-20210405
It includes README.md, both shim EFI binaries, clsecureboot001.cer, and the build logs root.log and build.log.

What's the justification that this really does need to be signed for the whole world to be able to boot it:

We're a well known vendor with more than 4000 clients and more than 200,000
product installations

How do you manage and protect the keys used in your SHIM?

They're stored in an HSM token provided by Certification Authority.

Do you use EV certificates as embedded certificates in the SHIM?

Yes

If you use new vendor_db functionality, are any hashes allow-listed, and if yes: for what binaries ?

We don't use vendor_db in this build.

Is kernel upstream commit 75b0cea7bf307f362057cc778efe89af4c615354 present in your kernel, if you boot chain includes a Linux kernel ?

All of the following commits are present:

475fb4e8b2f4444d1d7b406ff3a7d21bc89a1e6f  
1957a85b0032a81e6482ca4aab883643b8dae06e  
612bd01fc6e04c3ce9eb59587b4a7e4ebd6aff35  
75b0cea7bf307f362057cc778efe89af4c615354  
435d1a471598752446a72ad1201b3c980526d869  

And the configuration setting CONFIG_EFI_CUSTOM_SSDT_OVERLAYS is disabled.

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, these are all fixed

"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

On shim, we have:

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.cloudlinux,1,CloudLinux,shim,15.4-4,security@cloudlinux.com

On grub2, we have:

sbat,1,SBAT Version,sbat,1,https://github.com/rhboot/shim/blob/main/SBAT.md
grub,1,Free Software Foundation,grub,2.02,https//www.gnu.org/software/grub/
grub.cl8,1,CloudLinux OS 8,grub2,1:2.02-90.el8_3.1,mail:security@cloudlinux.com
Were your old SHIM hashes provided to Microsoft ?

We don't have old SHIM binaries

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 ?

This is our first submission so no old grub2 binaries allowed.

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 ?

It is a "RHEL-like" implementation.

What is the origin and full version number of your bootloader (GRUB or other)?

GRUB2 version 2.02-90.el8_3.1 from RHEL with CloudLinux OS 8 cert and SBAT.
Source RPM: https://github.com/cloudlinux/shim-review/raw/master/grub2-2.02-90.el8_3.1.cloudlinux.src.rpm

If your SHIM launches any other components, please provide further details on what is launched

No

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

No, only linux.

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.

This is our first submission so we're not re-using a previously used (CA)
certificate.

How do the launched components prevent execution of unauthenticated code?

Everything validates signatures using shim's protocol.

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?

We're using RHEL kernel.
All signed kernels are all patched for the kernel boothole CVEs and have the CONFIG_EFI_CUSTOM_SSDT_OVERLAYS config option disabled.

What changes were made since your SHIM was last signed?

This is our first submission

What is the SHA256 hash of your final SHIM binary?
004434383d3268e82568abcc73a9bc0a18b221f0af22efb452fd167b15b9fe72  shimia32.efi  
694c9769821d697202b58706500504a47cfde9142c576d82db25b57949881ecb  shimx64.efi
@andrewlukoshko
Copy link
Author

@julian-klode , @steve-mcintyre could you please review?

@steve-mcintyre
Copy link
Collaborator

looking in a bit, there's others ahead of you in the queue :-)

@aburmash
Copy link
Contributor

aburmash commented Apr 8, 2021

  • https://www.cloudlinux.com/ and security contacts look good.

  • builds are reproducible. Submitted hashes match hashes of submitted binaries and binaries produced by docker build.

  • The only and single extra shim patch is ia32 fix backport rhboot/shim@1bea91b

  • SBAT section matches expectation:

Contents of section .sbat:
cc000 73626174 2c312c53 42415420 56657273 sbat,1,SBAT Vers
cc010 696f6e2c 73626174 2c312c68 74747073 ion,sbat,1,https
cc020 3a2f2f67 69746875 622e636f 6d2f7268 ://github.com/rh
cc030 626f6f74 2f736869 6d2f626c 6f622f6d boot/shim/blob/m
cc040 61696e2f 53424154 2e6d640a 7368696d ain/SBAT.md.shim
cc050 2c312c55 45464920 7368696d 2c736869 ,1,UEFI shim,shi
cc060 6d2c312c 68747470 733a2f2f 67697468 m,1,https://gith
cc070 75622e63 6f6d2f72 68626f6f 742f7368 ub.com/rhboot/sh
cc080 696d0a73 68696d2e 636c6f75 646c696e im.shim.cloudlin
cc090 75782c31 2c436c6f 75644c69 6e75782c ux,1,CloudLinux,
cc0a0 7368696d 2c31352e 342d342c 73656375 shim,15.4-4,secu
cc0b0 72697479 40636c6f 75646c69 6e75782e rity@cloudlinux.
cc0c0 636f6d0a com.

  • I have verified grub2 source and it is almost exactly same as Centos grub2 with latest CVE patches and secureboot stack. The minor difference is spec file, minor macros fixes, changelog and etc. Patchset is unchanged. Tarballs are identical.

  • CloudLinux is Centos based, which is good.

  • certificate matches expectations

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            63:a7:fa:56:77:19:74:88:71:c9:6e:a9:de:a6:3c:30
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = PL, O = Unizeto Technologies S.A., OU = Certum Certification Authority, CN = Certum Extended Validation Code Signing CA SHA2
        Validity
            Not Before: Mar 26 11:54:52 2021 GMT
            Not After : Mar 25 11:54:52 2024 GMT
        Subject: jurisdictionC = US, jurisdictionST = Delaware, postalCode = FL 33913, street = 15068 Blue Bay Circle, businessCategory = Private Organization, serialNumber = 83-0923043, C = US, ST = Florida, L = Fort Myers, O = "Cloud Linux Software, Inc", CN = "Cloud Linux Software, Inc"
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)
                Modulus:
                    00:88:f3:9a:0c:be:c3:59:62:54:9e:b2:8b:ac:63:
                    32:5e:17:46:13:ef:bf:a6:90:76:a3:81:3d:2f:bc:
                    03:4b:bc:e4:df:a9:5f:71:61:f9:82:39:53:a7:83:
                    e3:6e:93:53:a6:72:e3:9f:c6:32:6b:3b:f1:7d:ea:
                    01:13:9e:89:fc:f4:4c:8d:18:66:db:fc:19:52:49:
                    ee:c3:e1:1f:bb:97:46:3d:cf:3b:bb:7d:74:a7:5f:
                    88:14:f3:ea:be:82:6c:c2:f2:c3:89:34:39:72:91:
                    93:0d:a2:b4:98:e4:cb:53:57:b2:a0:b6:a9:7d:53:
                    f6:bc:bb:e0:01:49:a5:6d:39:8c:8f:83:90:9f:2b:
                    51:e4:04:01:5b:25:99:c1:69:be:53:91:66:6a:48:
                    4d:7b:23:00:9e:72:0a:ee:0d:7a:2b:b8:50:a6:13:
                    60:d1:42:8f:90:d9:f2:d1:24:1d:21:7a:88:24:d0:
                    c4:74:44:b0:91:42:d0:50:21:a1:5f:e7:fd:00:60:
                    35:a5:72:d8:01:da:12:72:27:5f:8b:54:ef:2d:b3:
                    c0:cb:2a:ef:bf:5e:b6:8e:11:27:b2:f1:e5:3c:db:
                    f7:3a:5b:90:89:2f:2e:f4:7e:59:e3:4b:44:5e:1b:
                    08:3a:e7:d2:92:49:13:87:f5:b0:5c:df:9e:29:35:
                    43:8d
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 CRL Distribution Points: 
                Full Name:
                  URI:http://crl.certum.pl/evcscasha2.crl
            Authority Information Access: 
                OCSP - URI:http://evcscasha2.ocsp-certum.com
                CA Issuers - URI:http://repository.certum.pl/evcscasha2.cer
            X509v3 Authority Key Identifier: 
                keyid:A2:C5:2A:11:74:2D:BB:2B:34:44:B5:E3:CE:81:74:68:C2:AA:65:17
            X509v3 Subject Key Identifier: 
                85:8E:9D:64:BB:6F:BA:C5:9A:62:06:54:85:A7:B6:1C:45:E2:B9:F8
            X509v3 Issuer Alternative Name: 
                email:evcscasha2@certum.pl
            X509v3 Certificate Policies: 
                Policy: 2.23.140.1.3
                Policy: 1.2.616.1.113527.2.5.1.7
                  CPS: https://www.certum.pl/CPS
            X509v3 Extended Key Usage: 
                Code Signing, 1.3.6.1.4.1.311.61.1.1
            X509v3 Key Usage: critical
                Digital Signature
            X509v3 Subject Alternative Name: 
                othername:<unsupported>
    Signature Algorithm: sha256WithRSAEncryption
         3f:38:a7:79:d7:7e:e0:ff:c6:f3:89:24:9c:26:42:6a:ee:e7:
         f0:d4:b3:f3:07:73:e8:ef:ee:85:47:cd:0c:9a:33:10:ff:c0:
         8c:95:96:78:e0:79:2f:63:4c:a3:c9:22:90:2e:94:58:f9:0c:
         f4:3d:9b:34:59:2a:b5:77:61:96:c7:86:5f:95:3c:ce:40:40:
         67:ce:fb:29:e9:84:0b:0d:0b:00:f8:2b:07:07:33:34:a3:4c:
         ea:21:1b:44:36:7a:d6:23:8a:d0:28:ae:17:14:6d:79:a9:bc:
         86:6c:7c:b3:41:0c:88:ec:0b:6e:ea:4c:ae:01:b3:8f:ec:ab:
         40:a8:91:95:00:ee:46:72:72:29:2e:26:1b:73:69:4d:44:3a:
         af:95:4f:73:49:b5:de:c8:5f:18:a9:04:48:0e:46:a2:58:9b:
         03:38:61:25:dc:16:3f:19:3f:de:90:ef:3a:4b:7b:b7:84:78:
         64:61:1d:13:e4:a5:61:cb:41:48:ef:d1:35:b8:b6:20:31:0d:
         e5:19:f6:64:de:9d:1e:88:b4:e3:1e:76:2a:eb:43:43:66:45:
         75:01:53:2a:35:20:63:69:74:91:5f:06:b9:b7:17:b0:7f:16:
         a0:8e:69:77:04:a0:a5:f5:0e:f2:df:c1:a3:87:c9:e1:28:fb:
         4f:52:a9:c8
-----BEGIN CERTIFICATE-----
MIIGFTCCBP2gAwIBAgIQY6f6VncZdIhxyW6p3qY8MDANBgkqhkiG9w0BAQsFADCB
lDELMAkGA1UEBhMCUEwxIjAgBgNVBAoMGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu
QS4xJzAlBgNVBAsMHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTE4MDYG
A1UEAwwvQ2VydHVtIEV4dGVuZGVkIFZhbGlkYXRpb24gQ29kZSBTaWduaW5nIENB
IFNIQTIwHhcNMjEwMzI2MTE1NDUyWhcNMjQwMzI1MTE1NDUyWjCCARMxEzARBgsr
BgEEAYI3PAIBAxMCVVMxGTAXBgsrBgEEAYI3PAIBAgwIRGVsYXdhcmUxETAPBgNV
BBETCEZMIDMzOTEzMR4wHAYDVQQJDBUxNTA2OCBCbHVlIEJheSBDaXJjbGUxHTAb
BgNVBA8TFFByaXZhdGUgT3JnYW5pemF0aW9uMRMwEQYDVQQFEwo4My0wOTIzMDQz
MQswCQYDVQQGEwJVUzEQMA4GA1UECAwHRmxvcmlkYTETMBEGA1UEBwwKRm9ydCBN
eWVyczEiMCAGA1UECgwZQ2xvdWQgTGludXggU29mdHdhcmUsIEluYzEiMCAGA1UE
AwwZQ2xvdWQgTGludXggU29mdHdhcmUsIEluYzCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAIjzmgy+w1liVJ6yi6xjMl4XRhPvv6aQdqOBPS+8A0u85N+p
X3Fh+YI5U6eD426TU6Zy45/GMms78X3qAROeifz0TI0YZtv8GVJJ7sPhH7uXRj3P
O7t9dKdfiBTz6r6CbMLyw4k0OXKRkw2itJjky1NXsqC2qX1T9ry74AFJpW05jI+D
kJ8rUeQEAVslmcFpvlORZmpITXsjAJ5yCu4Neiu4UKYTYNFCj5DZ8tEkHSF6iCTQ
xHREsJFC0FAhoV/n/QBgNaVy2AHaEnInX4tU7y2zwMsq779eto4RJ7Lx5Tzb9zpb
kIkvLvR+WeNLRF4bCDrn0pJJE4f1sFzfnik1Q40CAwEAAaOCAd8wggHbMAwGA1Ud
EwEB/wQCMAAwNAYDVR0fBC0wKzApoCegJYYjaHR0cDovL2NybC5jZXJ0dW0ucGwv
ZXZjc2Nhc2hhMi5jcmwwdQYIKwYBBQUHAQEEaTBnMC0GCCsGAQUFBzABhiFodHRw
Oi8vZXZjc2Nhc2hhMi5vY3NwLWNlcnR1bS5jb20wNgYIKwYBBQUHMAKGKmh0dHA6
Ly9yZXBvc2l0b3J5LmNlcnR1bS5wbC9ldmNzY2FzaGEyLmNlcjAfBgNVHSMEGDAW
gBSixSoRdC27KzREtePOgXRowqplFzAdBgNVHQ4EFgQUhY6dZLtvusWaYgZUhae2
HEXiufgwHwYDVR0SBBgwFoEUZXZjc2Nhc2hhMkBjZXJ0dW0ucGwwSgYDVR0gBEMw
QTAHBgVngQwBAzA2BgsqhGgBhvZ3AgUBBzAnMCUGCCsGAQUFBwIBFhlodHRwczov
L3d3dy5jZXJ0dW0ucGwvQ1BTMB8GA1UdJQQYMBYGCCsGAQUFBwMDBgorBgEEAYI3
PQEBMA4GA1UdDwEB/wQEAwIHgDBABgNVHREEOTA3oDUGCCsGAQUFBwgDoCkwJwwl
VVMtREVMQVdBUkUtQ0xPVUQgTElOVVggU09GVFdBUkUsIElOQzANBgkqhkiG9w0B
AQsFAAOCAQEAPzinedd+4P/G84kknCZCau7n8NSz8wdz6O/uhUfNDJozEP/AjJWW
eOB5L2NMo8kikC6UWPkM9D2bNFkqtXdhlseGX5U8zkBAZ877KemECw0LAPgrBwcz
NKNM6iEbRDZ61iOK0CiuFxRteam8hmx8s0EMiOwLbupMrgGzj+yrQKiRlQDuRnJy
KS4mG3NpTUQ6r5VPc0m13shfGKkESA5GolibAzhhJdwWPxk/3pDvOkt7t4R4ZGEd
E+SlYctBSO/RNbi2IDEN5Rn2ZN6dHoi04x52KutDQ2ZFdQFTKjUgY2l0kV8GubcX
sH8WoI5pdwSgpfUO8t/Bo4fJ4Sj7T1KpyA==
-----END CERTIFICATE----- 

LGTM!

@julian-klode julian-klode added the accepted Submission is ready for sysdev label Apr 16, 2021
@julian-klode
Copy link
Collaborator

I concur with @aburmash - accepted.

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

No branches or pull requests

4 participants