-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
Sign Logstash RPM w/ SHA256 header for FIPS-enabled Operating Systems #12597
Comments
Enables installation on FIPS-enabled RHEL8. Resolves: elastic#12597
@yaauie I see the commit referenced on 2021-07-09, but as of my writing this (and logstash-7.17.5), there is no SHA256 Digest value in the RPM package -- only SHA1 and MD5. We're moving to RHEL 8 and we're experiencing the same "no digest" issue as @n0othing. For comparison, the SHA256 Digest value does appear in the Elasticsearch and Kibana RPM packages (also 7.17.5) alongside the SHA1 and MD5 Digest values.
Edit: Same issue with elasticsearch-curator-5.8.4-1.x86_64.rpm. Will look around on that project's Issue board (unless there is some internal Elastic coordination on this stuff). |
A possibly related issue has been raised by a customer on December 29, 2022
The recent error explanation "Digest mismatch" is slightly different than the error explanation cited in the original comment, which was "no digest" |
Logstash packages already have header and payload sha256 payloads:
Compared to elasticsearch, Logstash is only missing this "Payload SHA256 ALT digest":
I'll take a look to see what's missing. |
Just to note, you're checking against the Elastic Stack 8 RPMs while the issue we have experienced is on the Elastic Stack 7 baseline. The version I referenced above was 7.17.5 and I believe there have been a couple Elastic Stack 7 releases since then. We will obviously be moving to Elastic Stack 8 in the future but for now we're stuck with Elastic Stack 7. Thank you for investigating! |
Recent 7.17.* Logstash RPMs already have the payload digest,
vs:
@SeanathanVT any chance you could do a quick check with 7.17.8? |
Customer reports this is still an issue with 8.6.0. |
To add to @Jaraxal 's report, customer reports two issues that negatively affect their security posture:
Customer's first priority is to install on RHEL8 FIPS enabled without bypassing digest The only way they can successfully install Logstash after implementing FIPS at the RHEL8 OS level is by bypassing the file digest: rpm -ivhU --nodigest --nofiledigest
they get
In order to run Logstash they needed to change it's temp directory by modifying jvm.options. However, they also need to explicitly allow untrusted shared libraries as Logstash attempts to open a randomized shared library from it's temp directory at startup. This is not ideal as it opens up the OS to any executable referencing any untrusted shared library. There is no way to pre-trust these libraries as Logstash writes them to its temp directory and the filenames are randomized. |
wrt digest mismatch, Logstash artifact tasks aren't setting the ~/elastic/logstash 8.6 ❯ git diff
diff --git a/rakelib/artifacts.rake b/rakelib/artifacts.rake
index f69fe2d44..2fe1aa16f 100644
--- a/rakelib/artifacts.rake
+++ b/rakelib/artifacts.rake
@@ -640,6 +640,7 @@ namespace "artifact" do
out.attributes[:rpm_user] = "root"
out.attributes[:rpm_group] = "root"
out.attributes[:rpm_os] = "linux"
+ out.attributes[:rpm_digest] = "sha256"
out.config_files << "/etc/logstash/startup.options"
out.config_files << "/etc/logstash/jvm.options"
out.config_files << "/etc/logstash/log4j2.properties" Installs correctly:
|
The Logstash RPM will fail to install on RHEL 8 w/ FIPS mode enabled because it isn't signed with a SHA256 header (see
BZ#1581990
[1].It's possible to get around this by installing with
--nodigest --nofiledigest
arguments [2], but such a workaround may not be acceptable for certain organizations.[1] https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/8.0_release_notes/index
[2] https://access.redhat.com/solutions/4460971
The text was updated successfully, but these errors were encountered: