Open getvictor opened 10 months ago
Hey @getvictor and @Patagonia121, heads up, we didn't get to this one in the last design sprint.
Bringing it back to feature fest.
Hey @Patagonia121, heads up, we reviewed this during feature fest.
We don't have the space to take this one in the upcoming design sprint (4.49).
Removing this from the feature fest board.
enrollment secret is stored in plain text in:
/Library/Managed Preferences/com.fleetdm.config.plist
as well as in the downloaded enrollment profile in the manual enrollment flow:
https://${server}/api/latest/fleet/device/${hostIdentifier}/mdm/apple/manual_enrollment_profile
The later url being an unauthenticated endpoint
as well as in the downloaded enrollment profile in the manual enrollment flow: https://${server}/api/latest/fleet/device/${hostIdentifier}/mdm/apple/manual_enrollment_profile
The later url being an unauthenticated endpoint
@mostlikelee any chance you're thinking about the SCEP challenge here? we don't include enroll secrets in the enrollment profile. Since the SCEP challenge needs to be there, the approach to improve security is different and tracked here: https://github.com/fleetdm/fleet/issues/8477
Also note that the endpoint is authenticated using the device token which rotates every hour to a random UUID value, and can only be accessed by the host (I can see how the device token can be considered as weaker authentication tho)
@roperzh good point on the device token auth, i missed that.
In the enrollment profile, I'm seeing the enrollment secret as a param:
<key>URL</key>
<string>https://${SERVER}/api/v1/fleet/ota_enrollment?enroll_secret=${SECRET}</string>
@mostlikelee ahhh you're 100% right, the enroll secret is there for the OTA flow.
It was a product call (cc: @noahtalerman @georgekarrv) but it definitely should be at least considered as part of this story
One way to implement the fix would be for fleetd to store the secret in the keychain, and then tell Fleet server to resend the config profile, but this time without the secret.
Goal
This is the 2nd part of #13832 Discussion notes: https://docs.google.com/document/d/1V8krj0gTJCHnqFT3edlH90dBZ8rWONSkt-SovMKAEjo/edit#heading=h.tbdv30dv5zu9
Changes
Product
Engineering
Context
QA
Risk assessment
Manual testing steps
Testing notes
Confirmation