Hi Guys,
First of all I would like to thank you for picking up the issue I brought. I conducted a quick experiment and checked how apache.org headers look like and got: $ curl -I apache.org | grep Server Server: Apache I did also a deeper dive and checked a bigger sample of n=86 webpages of ASF sponsors. ===BEGIN OF EXPERIMENT=== STEP 1: we grab the list of ASF sponsors $ curl --url https://www.apache.org/foundation/thanks.html -v | grep sponsored | cut -f 2 -d\" > sponsors result: https://aws.amazon.com/ http://facebook.com/ http://google.com/ < Removed 80 lines > https://www.sonic.com/ http://www.surfnet.nl/ https://www.virtru.com/ STEP 2: we grab Server headers for results from STEP 1. Any missing are replaced with 'SERVER OBSCURED' $ for subject in $(cat sponsors); do echo -n "${subject}: " >> servers; curl --connect-timeout 3 -I -k $subject 2> /dev/null | grep Server >> servers || echo 'SERVER OBSCURED' >> servers; done result: https://aws.amazon.com/: Server: Server http://facebook.com/: SERVER OBSCURED http://google.com/: Server: gws < Removed 80 lines > https://www.sonic.com/: Server: nginx/1.12.1 http://www.surfnet.nl/: Server: nginx https://www.virtru.com/: Server: cloudflare STEP 3: We organize the data and print histogram-like summary $ cut -f 3 -d' ' servers | sort |uniq -c > histogram result: 2 ATS 3 AkamaiGHost 2 AmazonS3 7 Apache 1 Apache/2.4.18 1 Apache/2.4.48 9 Cisco 2 GitHub.com 2 Kestrel 1 LiteSpeed 13 OBSCURED 1 PAAS-WEB 1 SE-1.15.12 2 Server 1 Tengine 1 Varnish 1 awselb/2.0 1 bfe/1.0.8.18 15 cloudflare 1 globaledge-envoy 2 gws 1 ias/1.4.2.3_1.17.3 14 nginx 1 nginx/1.12.1 1 nginx/1.14.0 ===END OF EXPERIMENT=== Observations from data: Observation 1: 15 out of 86 (17.5%) are not willing to share ANYTHING about their servers Observation 2: another 15 are hidden behind cloudflare, summing up to 35% Observation 3: 8/86 (9%) show any version numbers Observation 4: out of 9 servers who claim to be Apache 2 (22%) show varsions Conclusions: Only a tiny percentage of this sample is willing to show any version of their web server (not confirmed if what they show is what they actually run). In view of above, would ASF consider changing its reccommendation[1] from 'Minimal' to 'Product Only'? [1] https://httpd.apache.org/docs/2.4/mod/core.html#servertokens Piotr Sionkowski Senior Application Security Engineer GSK ul. Pastelowa 2, Business Garden, 60-198 Poznan, Poland Email piotr.g.sionkow...@gsk.com<mailto:piotr.g.sionkow...@gsk.com> gsk.com<http://www.gsk.com/> | Twitter<http://twitter.com/GSK> | YouTube<http://www.youtube.com/user/gskvision> | Facebook<http://www.facebook.com/glaxosmithkline> | Flickr<http://www.flickr.com/photos/glaxosmithkline> [signature_1981636734] From: Ruediger Pluem <rpl...@apache.org> Date: Wednesday, 25 August 2021 at 08:56 To: docs@httpd.apache.org <docs@httpd.apache.org>, Roy T. Fielding <field...@gbiv.com>, Piotr Sionkowski <piotr.g.sionkow...@gsk.com> Cc: Milosz Chmiel <milosz.l.chm...@gsk.com> Subject: Re: [FAQ] ASF advisory regarding http headers verbosity contradicts with one from owasp.org EXTERNAL On 8/25/21 1:51 AM, Roy T. Fielding wrote: >> On Aug 18, 2021, at 12:21 AM, Piotr Sionkowski >> <piotr.g.sionkow...@gsk.com.INVALID >> <mailto:piotr.g.sionkow...@gsk.com.INVALID>> >> wrote: >> >> Hello httpd docs @ Apache Software Foundation, >> >> I am writing this e-mail to learn more about ASF attitude towards presenting >> or hiding httpd server version details in headers. >> >> I have read the FAQ and documentation and agree with some statements and >> disagree with most. That is why I would like to have it >> clarified. >> >> Both in FAQ[1] and in documentation[2] it is discouraged to obscure the >> details of httpd server. The rationale provided is that >> (all are quotations from [1] and [2]): >> >> Arg1: It does nothing at all to make your server more secure >> Arg2: The idea of "security through obscurity" is a myth and leads to a >> false sense of safety >> Arg3: mistaken understanding that this will make the system more secure >> Arg4: the same exploits will likely be attempted regardless of the header >> information >> Arg5: it makes it more difficult to debug interoperational problems >> >> I have checked the reccomendation from OWASP[3] and they advise to remove or >> alter the headers so that no unnecessary details >> are presented. >> >> I tend to subscribe to owasp's point on view and would like to elaborate on >> it so that we can argue more precisely and reach >> meaningful conclusions. > > Hi Piotr, > > The Server header field is used by clients (especially user agents) to adjust > their behavior with respect to known errors in > servers. While OWASP is welcome to choose an opinion that is "more secure" > based on a theoretical concern, I can assure you (as > the HTTP editor) that their opinion is simply wrong with regards to the > usability of the Web as a long-lived system in the real > world. It simply doesn't matter to an attacker. The version does matter to > admins and customers, who can use automated tools to > ensure their websites are running the right version (or at least not the > wrong version) and trigger testing whenever that version > changes. That tends to result in systems that are actually more secure, > rather than trying to obscure that they aren't being > maintained properly. In addition with many servers in the real world being delivered by LTS Linux distributions just knowing the version number doesn't tell you if a system is vulnerable to a particular security issue or not. For example RedHat 7 ships with version 2.4.6. But if you run this package in the latest release it is not vulnerable to the security issues that a vanilla 2.4.6 server is vulnerable to. The only thing the version number tells you here is that this server is not vulnerable to issues that only affect versions below 2.4.6. And with regards to the product announced in the header I can tell you from practice that despite the servers I have managed clearly announce that they are an Apache I see tons of tries for IIS vulnerabilities being tested. The next thing you have to consider is that when you evaluate the Server header that you cannot be sure that the server you are talking to is really using the particular software announced in the header or if this the software used by some system further down below the chain and you are talking to a gateway system which does not have the vulnerabilities you might expect when looking at the header. The point is: If you as an attacker rely on the information of the header even if it is not obscured you can be severely misguided about the setup and you might miss a lot of attack opportunities if you rule them out upfront based on the header. Hence you need to try them out anyway unless you have other information sources that tell you reliably that it is not worth trying them. Regards Rüdiger GSK monitors email communications sent to and from GSK in order to protect GSK, our employees, customers, suppliers and business partners, from cyber threats and loss of GSK Information. GSK monitoring is conducted with appropriate confidentiality controls and in accordance with local laws and after appropriate consultation.