Posted on 08-04-2023 12:53 AM
So we know that JAMF recommends to enable HSTS on Jamf Pro on-prem instances. However, I find the article lacking in several aspects.
If we start with what I'm most curious about - Why? For instance, these specific questions come to mind:
* If HSTS isn't enabled, can the MDM connection be downgraded to HTTP when the device is already enrolled, and thus can the device be tricked into executing MDM commands on either a HTTP session or a HTTPS session with an invalid certificate? Is the user prompted in this case and can the user choose to continue?
* Is the HSTS recommendation meant or administrative access only instead?
* Is the HSTS recommendation there to prevent MITM attacks for initial enrollment only? Or a combination of that and administrative access? In essence, describe the risks if it isn't enabled in a JAMF pro specific scenario.
* Are there any downsides or pitfalls when enabling HSTS? A far-fetched thing would be that it automatically also enables certificate pinning so that an unexpected change of JAMF pro's SSL certificate would lock out devices even though the new certificate is valid?
* What problems/risks does it solve specific for JAMF pro in addition to the questions listed above?
In addition to the above, the article seems to be a bit misleading. I assume most of us who run JAMF on-prem have more than one tomcat server running? And that those have a load balancer in front of them? In that case, HSTS headers should be set by whatever LB that's in front, right? And tomcat needs no change if the back-end communication is HTTP? Perhaps a few example configs for common load balancers such as KEMP, apache mod_proxy and F5 would be appropriate - or at least a clarification that you need to figure out how to implement this properly for your Vendor X LB product? Also list if it's really recommended to enable this for all sub-domains as well (I doubt it, at least if you have plenty of other hosts in the same DNS domain). A recommended lifetime would also be appropriate.
Posted on 08-07-2023 05:59 AM
Well, since no-one replied, I can partially answer my own question. While we don't see any particular attack vector for HSTS other than for web-based JAMF admin traffic, we decided to go ahead and implement this anyway, but leave out the activation for subdomains.
While we were at it, we also decided to strengthen the SSL implementation in addition to HSTS. So we also added priorities for the crypto alorithms used. We use apache httpd with mod_proxy as a LB. In the end, we added the following - I hope it may be of use to someone in the future:
Virtual host:
Header always set Strict-Transport-Security "max-age=63072000"
SSL config:
SSLCipherSuite HIGH:!MEDIUM:!aNULL:!MD5:!RC4
Posted on 08-23-2023 07:43 AM
Posted on 08-29-2023 12:00 PM
Thank you so much for that very detailed response! I'd sum it up as the following TLDR for others:
HSTS is just to protect your admins that are sloppy with checking which links they access, and if they're HTTP or HTTPS. But it does no harm unless you add the optional option of protecting subdomains as well that may use HTTP - but if you're on the jamfcloud.com domain that isn't an issue.
And completely unrelated, great that you're here, always glad to see someone from engineering taking part in the real world issues and challenges! Would 5x kudo if I could just for that. :)