SlideShare a Scribd company logo
1 of 64
Download to read offline
A Deep Dive into macOS MDM
Jesse Endahl, Fleetsmith
Max Belanger, Dropbox
August 9th, 2018
Introductions
Jesse Endahl — CPO & CSO, Fleetsmith
Max Bélanger — Staff Engineer, Dropbox
Fleetsmith automates device setup,
OS and app updates, security, and
compliance for Apple devices.
We do a lot to ensure our product is
secure by design.
Our goal was to increase security of
DEP & MDM, and raise the bar for
MDM vendors.
Why we did this research
Agenda
● Basics
● Overview
● Deep Dive
● Vulnerability Details
● Exploit Demo
● Fix Details
● Conclusion and Takeaways
What is MDM (Mobile Device Management)?
● A way to achieve centralized device management
● Requires an MDM server which implements support for
the MDM protocol
● MDM server can send MDM commands, such as remote
wipe or “install this config”
Basics
Basics
What is DEP (Device Enrollment Program)?
● Allows a device to automatically enroll in pre-configured
MDM server the first time it’s powered on
● Most useful when the device is brand new
● Can also be useful for reprovisioning workflows (wiped
with fresh install of the OS)
Basics
What is SCEP (Simple Certificate Enrollment Protocol)?
● An relatively old protocol, created before TLS and HTTPS
were widespread.
● Gives clients a standardized way of sending a Certificate
Signing Request (CSR) for the purpose of being granted a
certificate.
What are Configuration Profiles (aka mobileconfigs)?
● Apple’s official way of setting/enforcing system
configuration.
● File format that can contain multiple payloads.
● Based on property lists (the XML kind).
● “can be signed and encrypted to validate their origin,
ensure their integrity, and protect their contents.”
Basics
— Page 70, iOS Security Guide, January 2018.
Overview — Entities
● Apple
● Reseller (includes Apple Retail)
● MDM vendor
● Customer
● Device
Overview — Protocols
MDM
● Combination of APNs (Apple servers) + RESTful API
(MDM vendor servers)
● Communication occurs between a device and a server
associated with a device management product
● Commands delivered in plist-encoded dictionaries
● All over HTTPS. MDM servers can be pinned.
Overview — Protocols
MDM Authentication
● Push notification device token (APNs)
● Client certificate (MDM server)
Overview — Protocols
DEP
● 3 APIs: 1 for resellers, 1 for MDM vendors, 1 for device
identity (undocumented)
○ More modern and JSON based (vs. plist)
● Today we’ll focus on the MDM ↔ Apple aka the DEP
“cloud service” API
Overview — Protocols
DEP “cloud service” API
● RESTful
● Two main uses:
○ sync device records from Apple to the MDM server
○ sync “DEP profiles” to Apple from the MDM server
(delivered by Apple to the device later on)
Overview — Protocols
DEP “cloud service” API
● A DEP “profile” contains:
○ MDM vendor server URL
○ Additional trusted certificates for server URL (optional pinning)
○ Extra settings (e.g. which screens to skip in Setup Assistant)
● Authentication: OAuth 1.0a token
Overview — Protocols
SCEP
● RESTful
● In lieu of TLS/HTTPS, PKCS#7 signed data is relied upon
to ensure message integrity
● Supports concept of a “Challenge Password” for
authenticating the enrollment request (SCEP CSRs)
Overview — Establishment of trust
● Three legal entities involved: Apple, MDM vendor,
customer
● Trust must be established for both DEP and MDM
between these parties
● Once trust is established, MDM vendor is granted right to:
○ send MDM push notifications to devices
○ manage device records and “DEP profiles”
Overview — Establishment of trust
Some differences:
● With MDM, what’s being granted to the MDM vendor by
Apple is an APNs certificate.
● With DEP, what’s being granted to the MDM vendor by
Apple is an OAuth token.
Overview — Putting it all together
1. Device record creation (Reseller, Apple)
2. Device record assignment (Customer)
3. Device record sync (MDM vendor)
4. DEP check-in (Device)
5. Profile retrieval (Device)
6. Profile installation (Device)
a. incl. MDM, SCEP and root CA payloads
7. MDM command issuance (Device)
Deep Dive
● The latter parts of this process (steps 4–7) involve the
device itself
● macOS interacts directly with Apple and MDM vendor
servers
● Scenario: A user unboxes a brand new MacBook
previously configured by their employer to set itself up
automatically via DEP + MDM
Deep Dive - Architecture
● DEP and MDM enrollment involves many agents, daemons
● ConfigurationProfiles.framework provides
abstraction for the enrollment process
● Exports functions that map well to high-level “steps” of
enrollment process
Links
ConfigurationProfiles.framework
Setup Assistant.app
Step 4: Getting the Activation Record
● Purpose: determine whether device is DEP enabled
● Activation Record is the internal name for DEP “profile”
● Begins as soon as the device is connected to WAN
● Driven by CPFetchActivationRecord
● Implemented by cloudconfigurationd via XPC
○ LaunchDaemon (always runs as root)
XPC
cloudconfigurationdConfigurationProfiles.framework
Links
Setup Assistant.app
Step 4: Getting the Activation Record - Absinthe
MCTeslaConfigurationFetcher manages process
1. Retrieve certificate
○ GET https://iprofiles.apple.com/resource/certificate.cer
2. Initialize state from certificate (NACInit)
○ Uses various device-specific data (i.e. Serial Number via IOKit)
3. Retrieve session key
○ POST https://iprofiles.apple.com/session
4. Establish the session (NACKeyEstablishment)
Step 4: Getting the Activation Record - Request
● 5. Make the request
○ POST https://iprofiles.apple.com/macProfile
● JSON payload encrypted using Absinthe (NACSign)
● All requests over HTTPs, built-in root certificates are used
● Example:
{
“action”: “RequestProfileConfiguration”,
“sn”: “<device serial number>”
}
Absinthe +
TLS
iprofiles.apple.com
XPC
cloudconfigurationdConfigurationProfiles.framework
Links
Setup Assistant.app
Step 4: Getting the Activation Record - Response
● In response, the server provides JSON dictionary
● Similar to the DEP profile
○ Example: Customization of Setup Assistant
● Two fields matter for the next step:
○ url: URL of the MDM vendor host for the activation profile.
○ anchor-certs: Array of DER-encoded certificates used as trusted
anchors.
Step 5: Getting the Activation Profile
● Activation Profile = DEP-delivered configuration profile
● Same as a regular profile: includes multiple payloads
● Begins when user clicks “next”
● Driven by CPGetActivationProfile
● Implemented by ManagedClient.app over MIG
○ LaunchDaemon (as root) with auxiliary per-user LaunchAgent (as user)
○ Implementation is named mcxSvr_cloudconfiguration
Step 5: Getting the Activation Profile
● Request sent to url provided in DEP profile.
● Anchor certificates are used to evaluate trust if provided.
○ Reminder: the anchor_certs property of the DEP profile
● Request is a simple .plist with device identification
○ Examples: UDID, OS version.
● CMS-signed, DER-encoded
● Signed using the device identity certificate (from APNS)
● Certificate chain includes expired Apple iPhone Device CA
TLS w/
anchor-certs
MDM Profile Endpoint
url
MIG
ManagedClient.app
Links
ConfigurationProfiles.framework
Setup Assistant.app
Step 6: Installing the Activation Profile
● Once retrieved, profile is stored on the system
● This step begins automatically (if in setup assistant)
● Driven by CPInstallActivationProfile
● Implemented by mdmclient over XPC
○ LaunchDaemon (as root) or LaunchAgent (as user), depending on
context
Step 6: Installing the Activation Profile
● Configuration profiles have multiple payloads
● Installation: loop to install each payload in the profile
● Framework has a plugin-based architecture for installing
profiles
● Each payload type is associated with a plugin
○ Can be XPC (in framework) or classic Cocoa (in
ManagedClient.app)
● Example:
○ Certificate Payloads use CertificateService.xpc
Step 6: Installing the Activation Profile
● Typically, activation profile provided by an MDM vendor will
include the following payloads:
○ com.apple.mdm: to enroll the device in MDM
○ com.apple.security.scep: to securely provide a client certificate to
the device.
○ com.apple.security.pem: to install trusted CA certificates to the
device’s System Keychain.
Step 6: Installing the Activation Profile
● Installing the MDM payload equivalent to MDM check-in
● Configures the device for MDM
● Payload contains key properties:
○ MDM Check-In URL (CheckInURL)
○ MDM Command Polling URL (ServerURL) + APNs topic to trigger it
● To install MDM payload, request is sent to CheckInURL
● Implemented in mdmclient
Step 6: Installing the Activation Profile
● MDM payload can depend on other payloads
● Allows requests to be pinned to specific certificates:
○ Property: CheckInURLPinningCertificateUUIDs
○ Property: ServerURLPinningCertificateUUIDs
○ Delivered via PEM payload
● Allows device to be attributed with an identity certificate:
○ Property: IdentityCertificateUUID
○ Delivered via SCEP payload
TLS w/
CheckInURLPinningCertificateUUIDs
MDM Check-In Endpoint
CheckInURL
Install
Activation
Profile
mdmclient
ConfigurationProfiles.framework
Setup Assistant.app
Step 7: Listening for MDM commands
● After MDM check-in is complete, vendor can issue push
notifications using APNs
● Upon receipt, handled by mdmclient
● To poll for MDM commands, request is sent to ServerURL
● Makes use of previously installed MDM payload:
○ ServerURLPinningCertificateUUIDs for pinning request
○ IdentityCertificateUUID for TLS client certificate
TLS w/
ServerURLPinningCertificateUUIDs
Apple Push Service
MDM Vendor Command Endpoint
ServerURL
mdmclient
MDM Vendor Push
Sender
Vulnerability: InstallApplication
● Wide range of commands available
● Very common: InstallApplication
● Allows remote, silent installation of an application on the
device
● Implemented using App Store infrastructure
Vulnerability: InstallApplication
● The command request contains the URL to a manifest:
○ The manifest describes the application package
○ The manifest is encoded as a property list (XML)
● The manifest includes the URL to the package to install
● On macOS, this points to a signed distribution package
(.pkg)
Vulnerability: InstallApplication
● mdmclient uses CommerceCore.framework, calling
CKMDMProcessManifestAtURL
● CommerceKit: contains various “services”, each backed by
a LaunchAgent/LaunchDaemon
○ storeassetd: downloads and processes the manifest, queuing
downloads for each specific package
○ storedownloadd: downloads and installs the package
Vulnerability: InstallApplication
mdmclient
storeassetd
storedownloadd
XPC
CommerceCore
.framework
XPC
MDM
Manifest
Endpoint
MDM
Package
Endpoint
TLS
TLS
CommerceKit
Links
Vulnerability: InstallApplication
● MDM and Store are two separate components
○ Different threat models
● mdmclient is not evaluating the trust of the manifest URL
○ In fact, StoreFoundation’s core networking classes used in this
scenario do not appear to evaluate trust at all
○ Allows MITM attack
● Example: State could target a specific organization by
MITMing commands from the MDM vendor. Not limited to
DEP.
Demo
● Simulate malicious ISP or state actor via Internet Sharing
(on macOS)
○ Proxy all traffic from new device using mitmproxy
● Simulate compromised CA by using valid cert from
Fleetsmith’s CA
● Intercept request for manifest during device’s first boot
● Serve malicious manifest, causing device to download and
install a different .pkg
○ Personal Developer ID certificate to sign “malicious” package
Demo
Fix: InstallEnterpriseApplication
● New command: InstallEnterpriseApplication
● Includes new properties to control trust evaluation
● Available in macOS 10.13.6 (thus also 10.14)
○ Thus, time delay for new hardware to support fix
● Important: Requires MDM vendor to adopt new command
Fix: InstallEnterpriseApplication
● Can pin manifest request to specific anchor certificates:
○ Property: ManifestURLPinningCerts
● Can ensure certificate revocation checks are performed:
○ Property: PinningRevocationCheckRequired
Fix: InstallEnterpriseApplication
● Under the hood: CKMDMProcessManifestAtURL now
takes in a dictionary of options
○ _CKMDMManifestOptionPinCertificates
○ _CKMDMManifestOptionPinningRevocationCheckRequired
● StoreFoundation networking objects now evaluate trust
○ Uses standard NSURLConnection delegate method for authentication challenges
Takeaways
● Complex system with many moving parts
● Some have different threat models → bugs can appear
between components
● Important to perform holistic “systems level” security
reviews
● Security is often dependent on the MDM vendor →
vendors can do more
Recommendations for Apple
● Fully document the security model for DEP & MDM,
including the role of the Apple iPhone Device CA
● Require pinning at each step (currently optional)
● Require any Configuration Profile containing sensitive
data (e.g. Wi-Fi password) to be both signed and
encrypted (currently optional)
● Make factory installed OS version and build number
available via DEP APIs
MDM Vendor Security Checklist
● Pin at every step of the process
○ Step 4: Pin MDM anchor_certs in DEP profile
○ Step 5: Pin MDM URLs in payload (/checkin, /commands)
○ Step 7: Pin using InstallEnterpriseApplication
○ All networking calls from agent binary (if one exists)
● Use SCEP
○ Avoid generating private keys server-side
○ Use SCEP “Challenge Password” (HMAC works well)
MDM Vendor Checklist
● Configuration Profiles
○ All should be signed
○ All that contain sensitive data should be signed and encrypted, using the
device’s public key
● Encrypt sensitive customer data at rest
○ e.g. WiFi passwords
Disclosure timeline
● First disclosed to Apple on April 28th, acknowledged May
2nd
● InstallEnterpriseApplication announced in
“What's New in Managing Apple Devices” session at WWDC
on June 7th
● MDM Protocol Reference documentation updated to
include InstallEnterpriseApplication on July 5th
● Fix is introduced with macOS 10.13.6 on July 9th
Conclusion
Thank you!
○ Shout out to Fleetsmith cofounder Stevie Hryciw for first discovering the
vulnerability + his assistance on early research
○ Shout out to @groob @bruienne @mikeymikey @jessecpeterson for their
research, open source work, and contributions to the Mac security community
○ Shout out to Apple for their quick reaction and courteous response as well as
the great work their security engineering team is doing to continually improve
platform security for both iOS & macOS
Resources
○ Twitter:
○ @jesseendahl
○ @maxbelanger
○ Fleetsmith: fleetsmith.com

More Related Content

What's hot

Information security management
Information security managementInformation security management
Information security managementUMaine
 
System Analysis and Design
System Analysis and Design System Analysis and Design
System Analysis and Design Matthew McKenzie
 
End User Computing
End User ComputingEnd User Computing
End User ComputingMudit Dhebar
 
Chapter01 the systems development environment
Chapter01 the systems development environmentChapter01 the systems development environment
Chapter01 the systems development environmentDhani Ahmad
 
Enterprise Security Architecture
Enterprise Security ArchitectureEnterprise Security Architecture
Enterprise Security ArchitecturePriyanka Aash
 
System Analysis and Design slides by yared yenealem DTU Ethiopia
System Analysis and Design slides by yared yenealem DTU EthiopiaSystem Analysis and Design slides by yared yenealem DTU Ethiopia
System Analysis and Design slides by yared yenealem DTU EthiopiaDebre Tabor University
 
Configuration Management
Configuration Management Configuration Management
Configuration Management hdicapitalarea
 
system analysis and design chapter 1 Kendall & Kendall
system analysis and design chapter 1 Kendall & Kendallsystem analysis and design chapter 1 Kendall & Kendall
system analysis and design chapter 1 Kendall & KendallDana dia
 
HCI 3e - Ch 8: Implementation support
HCI 3e - Ch 8:  Implementation supportHCI 3e - Ch 8:  Implementation support
HCI 3e - Ch 8: Implementation supportAlan Dix
 
Types Of Information System
Types Of Information SystemTypes Of Information System
Types Of Information Systemguestead93f3
 
Security risk management
Security risk managementSecurity risk management
Security risk managementG Prachi
 
System Analysis and Design
System Analysis and DesignSystem Analysis and Design
System Analysis and DesignJoel Briza
 
Introduction to Information System
Introduction to Information SystemIntroduction to Information System
Introduction to Information Systemshaylor_swift
 
Introduction to system development
Introduction to system developmentIntroduction to system development
Introduction to system developmentJaipal Dhobale
 
Enterprise Security Architecture Design
Enterprise Security Architecture DesignEnterprise Security Architecture Design
Enterprise Security Architecture DesignPriyanka Aash
 
Enterprise Architecture and Information Security
Enterprise Architecture and Information SecurityEnterprise Architecture and Information Security
Enterprise Architecture and Information SecurityJohn Macasio
 
Human Computer Interaction Chapter 2 Interaction and Interaction Design Basi...
Human Computer Interaction Chapter 2  Interaction and Interaction Design Basi...Human Computer Interaction Chapter 2  Interaction and Interaction Design Basi...
Human Computer Interaction Chapter 2 Interaction and Interaction Design Basi...VijiPriya Jeyamani
 
ITIL Service Desk Tools
ITIL Service Desk ToolsITIL Service Desk Tools
ITIL Service Desk Toolsahmedshama
 
IT Security management and risk assessment
IT Security management and risk assessmentIT Security management and risk assessment
IT Security management and risk assessmentCAS
 
Cloud Computing and Virtualization
Cloud Computing and Virtualization Cloud Computing and Virtualization
Cloud Computing and Virtualization Mahbub Noor Bappy
 

What's hot (20)

Information security management
Information security managementInformation security management
Information security management
 
System Analysis and Design
System Analysis and Design System Analysis and Design
System Analysis and Design
 
End User Computing
End User ComputingEnd User Computing
End User Computing
 
Chapter01 the systems development environment
Chapter01 the systems development environmentChapter01 the systems development environment
Chapter01 the systems development environment
 
Enterprise Security Architecture
Enterprise Security ArchitectureEnterprise Security Architecture
Enterprise Security Architecture
 
System Analysis and Design slides by yared yenealem DTU Ethiopia
System Analysis and Design slides by yared yenealem DTU EthiopiaSystem Analysis and Design slides by yared yenealem DTU Ethiopia
System Analysis and Design slides by yared yenealem DTU Ethiopia
 
Configuration Management
Configuration Management Configuration Management
Configuration Management
 
system analysis and design chapter 1 Kendall & Kendall
system analysis and design chapter 1 Kendall & Kendallsystem analysis and design chapter 1 Kendall & Kendall
system analysis and design chapter 1 Kendall & Kendall
 
HCI 3e - Ch 8: Implementation support
HCI 3e - Ch 8:  Implementation supportHCI 3e - Ch 8:  Implementation support
HCI 3e - Ch 8: Implementation support
 
Types Of Information System
Types Of Information SystemTypes Of Information System
Types Of Information System
 
Security risk management
Security risk managementSecurity risk management
Security risk management
 
System Analysis and Design
System Analysis and DesignSystem Analysis and Design
System Analysis and Design
 
Introduction to Information System
Introduction to Information SystemIntroduction to Information System
Introduction to Information System
 
Introduction to system development
Introduction to system developmentIntroduction to system development
Introduction to system development
 
Enterprise Security Architecture Design
Enterprise Security Architecture DesignEnterprise Security Architecture Design
Enterprise Security Architecture Design
 
Enterprise Architecture and Information Security
Enterprise Architecture and Information SecurityEnterprise Architecture and Information Security
Enterprise Architecture and Information Security
 
Human Computer Interaction Chapter 2 Interaction and Interaction Design Basi...
Human Computer Interaction Chapter 2  Interaction and Interaction Design Basi...Human Computer Interaction Chapter 2  Interaction and Interaction Design Basi...
Human Computer Interaction Chapter 2 Interaction and Interaction Design Basi...
 
ITIL Service Desk Tools
ITIL Service Desk ToolsITIL Service Desk Tools
ITIL Service Desk Tools
 
IT Security management and risk assessment
IT Security management and risk assessmentIT Security management and risk assessment
IT Security management and risk assessment
 
Cloud Computing and Virtualization
Cloud Computing and Virtualization Cloud Computing and Virtualization
Cloud Computing and Virtualization
 

Similar to A Deep Dive into macOS MDM Enrollment Security

Enterprise Cloud Security
Enterprise Cloud SecurityEnterprise Cloud Security
Enterprise Cloud SecurityMongoDB
 
Securing Your Enterprise Web Apps with MongoDB Enterprise
Securing Your Enterprise Web Apps with MongoDB Enterprise Securing Your Enterprise Web Apps with MongoDB Enterprise
Securing Your Enterprise Web Apps with MongoDB Enterprise MongoDB
 
Moscow MuleSoft meetup May 2021
Moscow MuleSoft meetup May 2021Moscow MuleSoft meetup May 2021
Moscow MuleSoft meetup May 2021Leadex Systems
 
Low Hanging Fruit, Making Your Basic MongoDB Installation More Secure
Low Hanging Fruit, Making Your Basic MongoDB Installation More SecureLow Hanging Fruit, Making Your Basic MongoDB Installation More Secure
Low Hanging Fruit, Making Your Basic MongoDB Installation More SecureMongoDB
 
Wellington MuleSoft Meetup 2021-02-18
Wellington MuleSoft Meetup 2021-02-18Wellington MuleSoft Meetup 2021-02-18
Wellington MuleSoft Meetup 2021-02-18Mary Joy Sabal
 
Mdm with config mgr nico
Mdm with config mgr nicoMdm with config mgr nico
Mdm with config mgr nicoKenny Buntinx
 
WMUG NL Tuesday - Latest and greatest in the world of Configuration Manager
WMUG NL Tuesday - Latest and greatest in the world of Configuration ManagerWMUG NL Tuesday - Latest and greatest in the world of Configuration Manager
WMUG NL Tuesday - Latest and greatest in the world of Configuration ManagerTim De Keukelaere
 
Kubernetes fingerprinting with Prometheus.pdf
Kubernetes fingerprinting with Prometheus.pdfKubernetes fingerprinting with Prometheus.pdf
Kubernetes fingerprinting with Prometheus.pdfKawimbaLofgrens
 
MongoDB World 2018: Low Hanging Fruit: Making Your Basic MongoDB Installation...
MongoDB World 2018: Low Hanging Fruit: Making Your Basic MongoDB Installation...MongoDB World 2018: Low Hanging Fruit: Making Your Basic MongoDB Installation...
MongoDB World 2018: Low Hanging Fruit: Making Your Basic MongoDB Installation...MongoDB
 
Enterprise Node - Securing Your Environment
Enterprise Node - Securing Your EnvironmentEnterprise Node - Securing Your Environment
Enterprise Node - Securing Your EnvironmentKurtis Kemple
 
KACE Agent Architecture and Troubleshooting Overview
KACE Agent Architecture and Troubleshooting OverviewKACE Agent Architecture and Troubleshooting Overview
KACE Agent Architecture and Troubleshooting OverviewDell World
 
18 windows phone 8.1 for the enterprise developer
18   windows phone 8.1 for the enterprise developer18   windows phone 8.1 for the enterprise developer
18 windows phone 8.1 for the enterprise developerWindowsPhoneRocks
 
1. introduction to_cloud_services_architecture
1. introduction to_cloud_services_architecture1. introduction to_cloud_services_architecture
1. introduction to_cloud_services_architectureCloud Genius
 
Externalized Distributed Configuration Management with Spring Cloud Config-Se...
Externalized Distributed Configuration Management with Spring Cloud Config-Se...Externalized Distributed Configuration Management with Spring Cloud Config-Se...
Externalized Distributed Configuration Management with Spring Cloud Config-Se...Nikhil Hiremath
 
MSWD:MERN STACK WEB DEVELOPMENT COURSE CODE
MSWD:MERN STACK WEB DEVELOPMENT COURSE CODEMSWD:MERN STACK WEB DEVELOPMENT COURSE CODE
MSWD:MERN STACK WEB DEVELOPMENT COURSE CODEannalakshmi35
 

Similar to A Deep Dive into macOS MDM Enrollment Security (20)

Enterprise Cloud Security
Enterprise Cloud SecurityEnterprise Cloud Security
Enterprise Cloud Security
 
Securing Your Enterprise Web Apps with MongoDB Enterprise
Securing Your Enterprise Web Apps with MongoDB Enterprise Securing Your Enterprise Web Apps with MongoDB Enterprise
Securing Your Enterprise Web Apps with MongoDB Enterprise
 
Moscow MuleSoft meetup May 2021
Moscow MuleSoft meetup May 2021Moscow MuleSoft meetup May 2021
Moscow MuleSoft meetup May 2021
 
Windows 8.1 a closer look
Windows 8.1 a closer lookWindows 8.1 a closer look
Windows 8.1 a closer look
 
Low Hanging Fruit, Making Your Basic MongoDB Installation More Secure
Low Hanging Fruit, Making Your Basic MongoDB Installation More SecureLow Hanging Fruit, Making Your Basic MongoDB Installation More Secure
Low Hanging Fruit, Making Your Basic MongoDB Installation More Secure
 
Wellington MuleSoft Meetup 2021-02-18
Wellington MuleSoft Meetup 2021-02-18Wellington MuleSoft Meetup 2021-02-18
Wellington MuleSoft Meetup 2021-02-18
 
Mdm with config mgr nico
Mdm with config mgr nicoMdm with config mgr nico
Mdm with config mgr nico
 
Mdm with config mgr nico
Mdm with config mgr nicoMdm with config mgr nico
Mdm with config mgr nico
 
Microsoft Palladium
Microsoft PalladiumMicrosoft Palladium
Microsoft Palladium
 
WMUG NL Tuesday - Latest and greatest in the world of Configuration Manager
WMUG NL Tuesday - Latest and greatest in the world of Configuration ManagerWMUG NL Tuesday - Latest and greatest in the world of Configuration Manager
WMUG NL Tuesday - Latest and greatest in the world of Configuration Manager
 
Kubernetes fingerprinting with Prometheus.pdf
Kubernetes fingerprinting with Prometheus.pdfKubernetes fingerprinting with Prometheus.pdf
Kubernetes fingerprinting with Prometheus.pdf
 
MongoDB World 2018: Low Hanging Fruit: Making Your Basic MongoDB Installation...
MongoDB World 2018: Low Hanging Fruit: Making Your Basic MongoDB Installation...MongoDB World 2018: Low Hanging Fruit: Making Your Basic MongoDB Installation...
MongoDB World 2018: Low Hanging Fruit: Making Your Basic MongoDB Installation...
 
Enterprise Node - Securing Your Environment
Enterprise Node - Securing Your EnvironmentEnterprise Node - Securing Your Environment
Enterprise Node - Securing Your Environment
 
KACE Agent Architecture and Troubleshooting Overview
KACE Agent Architecture and Troubleshooting OverviewKACE Agent Architecture and Troubleshooting Overview
KACE Agent Architecture and Troubleshooting Overview
 
18 windows phone 8.1 for the enterprise developer
18   windows phone 8.1 for the enterprise developer18   windows phone 8.1 for the enterprise developer
18 windows phone 8.1 for the enterprise developer
 
Oracle ADF Case Study
Oracle ADF Case StudyOracle ADF Case Study
Oracle ADF Case Study
 
1. introduction to_cloud_services_architecture
1. introduction to_cloud_services_architecture1. introduction to_cloud_services_architecture
1. introduction to_cloud_services_architecture
 
Iac d.damyanov 4.pptx
Iac d.damyanov 4.pptxIac d.damyanov 4.pptx
Iac d.damyanov 4.pptx
 
Externalized Distributed Configuration Management with Spring Cloud Config-Se...
Externalized Distributed Configuration Management with Spring Cloud Config-Se...Externalized Distributed Configuration Management with Spring Cloud Config-Se...
Externalized Distributed Configuration Management with Spring Cloud Config-Se...
 
MSWD:MERN STACK WEB DEVELOPMENT COURSE CODE
MSWD:MERN STACK WEB DEVELOPMENT COURSE CODEMSWD:MERN STACK WEB DEVELOPMENT COURSE CODE
MSWD:MERN STACK WEB DEVELOPMENT COURSE CODE
 

More from Priyanka Aash

Digital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOsDigital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOsPriyanka Aash
 
Verizon Breach Investigation Report (VBIR).pdf
Verizon Breach Investigation Report (VBIR).pdfVerizon Breach Investigation Report (VBIR).pdf
Verizon Breach Investigation Report (VBIR).pdfPriyanka Aash
 
Top 10 Security Risks .pptx.pdf
Top 10 Security Risks .pptx.pdfTop 10 Security Risks .pptx.pdf
Top 10 Security Risks .pptx.pdfPriyanka Aash
 
Simplifying data privacy and protection.pdf
Simplifying data privacy and protection.pdfSimplifying data privacy and protection.pdf
Simplifying data privacy and protection.pdfPriyanka Aash
 
Generative AI and Security (1).pptx.pdf
Generative AI and Security (1).pptx.pdfGenerative AI and Security (1).pptx.pdf
Generative AI and Security (1).pptx.pdfPriyanka Aash
 
EVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdf
EVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdfEVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdf
EVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdfPriyanka Aash
 
Cyber Truths_Are you Prepared version 1.1.pptx.pdf
Cyber Truths_Are you Prepared version 1.1.pptx.pdfCyber Truths_Are you Prepared version 1.1.pptx.pdf
Cyber Truths_Are you Prepared version 1.1.pptx.pdfPriyanka Aash
 
Cyber Crisis Management.pdf
Cyber Crisis Management.pdfCyber Crisis Management.pdf
Cyber Crisis Management.pdfPriyanka Aash
 
CISOPlatform journey.pptx.pdf
CISOPlatform journey.pptx.pdfCISOPlatform journey.pptx.pdf
CISOPlatform journey.pptx.pdfPriyanka Aash
 
Chennai Chapter.pptx.pdf
Chennai Chapter.pptx.pdfChennai Chapter.pptx.pdf
Chennai Chapter.pptx.pdfPriyanka Aash
 
Cloud attack vectors_Moshe.pdf
Cloud attack vectors_Moshe.pdfCloud attack vectors_Moshe.pdf
Cloud attack vectors_Moshe.pdfPriyanka Aash
 
Stories From The Web 3 Battlefield
Stories From The Web 3 BattlefieldStories From The Web 3 Battlefield
Stories From The Web 3 BattlefieldPriyanka Aash
 
Lessons Learned From Ransomware Attacks
Lessons Learned From Ransomware AttacksLessons Learned From Ransomware Attacks
Lessons Learned From Ransomware AttacksPriyanka Aash
 
Emerging New Threats And Top CISO Priorities In 2022 (Chennai)
Emerging New Threats And Top CISO Priorities In 2022 (Chennai)Emerging New Threats And Top CISO Priorities In 2022 (Chennai)
Emerging New Threats And Top CISO Priorities In 2022 (Chennai)Priyanka Aash
 
Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)
Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)
Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)Priyanka Aash
 
Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)
Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)
Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)Priyanka Aash
 
Cloud Security: Limitations of Cloud Security Groups and Flow Logs
Cloud Security: Limitations of Cloud Security Groups and Flow LogsCloud Security: Limitations of Cloud Security Groups and Flow Logs
Cloud Security: Limitations of Cloud Security Groups and Flow LogsPriyanka Aash
 
Cyber Security Governance
Cyber Security GovernanceCyber Security Governance
Cyber Security GovernancePriyanka Aash
 

More from Priyanka Aash (20)

Digital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOsDigital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOs
 
Verizon Breach Investigation Report (VBIR).pdf
Verizon Breach Investigation Report (VBIR).pdfVerizon Breach Investigation Report (VBIR).pdf
Verizon Breach Investigation Report (VBIR).pdf
 
Top 10 Security Risks .pptx.pdf
Top 10 Security Risks .pptx.pdfTop 10 Security Risks .pptx.pdf
Top 10 Security Risks .pptx.pdf
 
Simplifying data privacy and protection.pdf
Simplifying data privacy and protection.pdfSimplifying data privacy and protection.pdf
Simplifying data privacy and protection.pdf
 
Generative AI and Security (1).pptx.pdf
Generative AI and Security (1).pptx.pdfGenerative AI and Security (1).pptx.pdf
Generative AI and Security (1).pptx.pdf
 
EVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdf
EVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdfEVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdf
EVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdf
 
DPDP Act 2023.pdf
DPDP Act 2023.pdfDPDP Act 2023.pdf
DPDP Act 2023.pdf
 
Cyber Truths_Are you Prepared version 1.1.pptx.pdf
Cyber Truths_Are you Prepared version 1.1.pptx.pdfCyber Truths_Are you Prepared version 1.1.pptx.pdf
Cyber Truths_Are you Prepared version 1.1.pptx.pdf
 
Cyber Crisis Management.pdf
Cyber Crisis Management.pdfCyber Crisis Management.pdf
Cyber Crisis Management.pdf
 
CISOPlatform journey.pptx.pdf
CISOPlatform journey.pptx.pdfCISOPlatform journey.pptx.pdf
CISOPlatform journey.pptx.pdf
 
Chennai Chapter.pptx.pdf
Chennai Chapter.pptx.pdfChennai Chapter.pptx.pdf
Chennai Chapter.pptx.pdf
 
Cloud attack vectors_Moshe.pdf
Cloud attack vectors_Moshe.pdfCloud attack vectors_Moshe.pdf
Cloud attack vectors_Moshe.pdf
 
Stories From The Web 3 Battlefield
Stories From The Web 3 BattlefieldStories From The Web 3 Battlefield
Stories From The Web 3 Battlefield
 
Lessons Learned From Ransomware Attacks
Lessons Learned From Ransomware AttacksLessons Learned From Ransomware Attacks
Lessons Learned From Ransomware Attacks
 
Emerging New Threats And Top CISO Priorities In 2022 (Chennai)
Emerging New Threats And Top CISO Priorities In 2022 (Chennai)Emerging New Threats And Top CISO Priorities In 2022 (Chennai)
Emerging New Threats And Top CISO Priorities In 2022 (Chennai)
 
Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)
Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)
Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)
 
Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)
Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)
Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)
 
Cloud Security: Limitations of Cloud Security Groups and Flow Logs
Cloud Security: Limitations of Cloud Security Groups and Flow LogsCloud Security: Limitations of Cloud Security Groups and Flow Logs
Cloud Security: Limitations of Cloud Security Groups and Flow Logs
 
Cyber Security Governance
Cyber Security GovernanceCyber Security Governance
Cyber Security Governance
 
Ethical Hacking
Ethical HackingEthical Hacking
Ethical Hacking
 

Recently uploaded

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 

Recently uploaded (20)

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 

A Deep Dive into macOS MDM Enrollment Security

  • 1. A Deep Dive into macOS MDM Jesse Endahl, Fleetsmith Max Belanger, Dropbox August 9th, 2018
  • 2. Introductions Jesse Endahl — CPO & CSO, Fleetsmith Max Bélanger — Staff Engineer, Dropbox
  • 3. Fleetsmith automates device setup, OS and app updates, security, and compliance for Apple devices. We do a lot to ensure our product is secure by design. Our goal was to increase security of DEP & MDM, and raise the bar for MDM vendors. Why we did this research
  • 4. Agenda ● Basics ● Overview ● Deep Dive ● Vulnerability Details ● Exploit Demo ● Fix Details ● Conclusion and Takeaways
  • 5. What is MDM (Mobile Device Management)? ● A way to achieve centralized device management ● Requires an MDM server which implements support for the MDM protocol ● MDM server can send MDM commands, such as remote wipe or “install this config” Basics
  • 6. Basics What is DEP (Device Enrollment Program)? ● Allows a device to automatically enroll in pre-configured MDM server the first time it’s powered on ● Most useful when the device is brand new ● Can also be useful for reprovisioning workflows (wiped with fresh install of the OS)
  • 7. Basics What is SCEP (Simple Certificate Enrollment Protocol)? ● An relatively old protocol, created before TLS and HTTPS were widespread. ● Gives clients a standardized way of sending a Certificate Signing Request (CSR) for the purpose of being granted a certificate.
  • 8. What are Configuration Profiles (aka mobileconfigs)? ● Apple’s official way of setting/enforcing system configuration. ● File format that can contain multiple payloads. ● Based on property lists (the XML kind). ● “can be signed and encrypted to validate their origin, ensure their integrity, and protect their contents.” Basics — Page 70, iOS Security Guide, January 2018.
  • 9. Overview — Entities ● Apple ● Reseller (includes Apple Retail) ● MDM vendor ● Customer ● Device
  • 10. Overview — Protocols MDM ● Combination of APNs (Apple servers) + RESTful API (MDM vendor servers) ● Communication occurs between a device and a server associated with a device management product ● Commands delivered in plist-encoded dictionaries ● All over HTTPS. MDM servers can be pinned.
  • 11. Overview — Protocols MDM Authentication ● Push notification device token (APNs) ● Client certificate (MDM server)
  • 12. Overview — Protocols DEP ● 3 APIs: 1 for resellers, 1 for MDM vendors, 1 for device identity (undocumented) ○ More modern and JSON based (vs. plist) ● Today we’ll focus on the MDM ↔ Apple aka the DEP “cloud service” API
  • 13. Overview — Protocols DEP “cloud service” API ● RESTful ● Two main uses: ○ sync device records from Apple to the MDM server ○ sync “DEP profiles” to Apple from the MDM server (delivered by Apple to the device later on)
  • 14. Overview — Protocols DEP “cloud service” API ● A DEP “profile” contains: ○ MDM vendor server URL ○ Additional trusted certificates for server URL (optional pinning) ○ Extra settings (e.g. which screens to skip in Setup Assistant) ● Authentication: OAuth 1.0a token
  • 15. Overview — Protocols SCEP ● RESTful ● In lieu of TLS/HTTPS, PKCS#7 signed data is relied upon to ensure message integrity ● Supports concept of a “Challenge Password” for authenticating the enrollment request (SCEP CSRs)
  • 16. Overview — Establishment of trust ● Three legal entities involved: Apple, MDM vendor, customer ● Trust must be established for both DEP and MDM between these parties ● Once trust is established, MDM vendor is granted right to: ○ send MDM push notifications to devices ○ manage device records and “DEP profiles”
  • 17. Overview — Establishment of trust Some differences: ● With MDM, what’s being granted to the MDM vendor by Apple is an APNs certificate. ● With DEP, what’s being granted to the MDM vendor by Apple is an OAuth token.
  • 18. Overview — Putting it all together 1. Device record creation (Reseller, Apple) 2. Device record assignment (Customer) 3. Device record sync (MDM vendor) 4. DEP check-in (Device) 5. Profile retrieval (Device) 6. Profile installation (Device) a. incl. MDM, SCEP and root CA payloads 7. MDM command issuance (Device)
  • 19.
  • 20.
  • 21. Deep Dive ● The latter parts of this process (steps 4–7) involve the device itself ● macOS interacts directly with Apple and MDM vendor servers ● Scenario: A user unboxes a brand new MacBook previously configured by their employer to set itself up automatically via DEP + MDM
  • 22. Deep Dive - Architecture ● DEP and MDM enrollment involves many agents, daemons ● ConfigurationProfiles.framework provides abstraction for the enrollment process ● Exports functions that map well to high-level “steps” of enrollment process
  • 23.
  • 25.
  • 26. Step 4: Getting the Activation Record ● Purpose: determine whether device is DEP enabled ● Activation Record is the internal name for DEP “profile” ● Begins as soon as the device is connected to WAN ● Driven by CPFetchActivationRecord ● Implemented by cloudconfigurationd via XPC ○ LaunchDaemon (always runs as root)
  • 28. Step 4: Getting the Activation Record - Absinthe MCTeslaConfigurationFetcher manages process 1. Retrieve certificate ○ GET https://iprofiles.apple.com/resource/certificate.cer 2. Initialize state from certificate (NACInit) ○ Uses various device-specific data (i.e. Serial Number via IOKit) 3. Retrieve session key ○ POST https://iprofiles.apple.com/session 4. Establish the session (NACKeyEstablishment)
  • 29. Step 4: Getting the Activation Record - Request ● 5. Make the request ○ POST https://iprofiles.apple.com/macProfile ● JSON payload encrypted using Absinthe (NACSign) ● All requests over HTTPs, built-in root certificates are used ● Example: { “action”: “RequestProfileConfiguration”, “sn”: “<device serial number>” }
  • 31. Step 4: Getting the Activation Record - Response ● In response, the server provides JSON dictionary ● Similar to the DEP profile ○ Example: Customization of Setup Assistant ● Two fields matter for the next step: ○ url: URL of the MDM vendor host for the activation profile. ○ anchor-certs: Array of DER-encoded certificates used as trusted anchors.
  • 32.
  • 33.
  • 34. Step 5: Getting the Activation Profile ● Activation Profile = DEP-delivered configuration profile ● Same as a regular profile: includes multiple payloads ● Begins when user clicks “next” ● Driven by CPGetActivationProfile ● Implemented by ManagedClient.app over MIG ○ LaunchDaemon (as root) with auxiliary per-user LaunchAgent (as user) ○ Implementation is named mcxSvr_cloudconfiguration
  • 35. Step 5: Getting the Activation Profile ● Request sent to url provided in DEP profile. ● Anchor certificates are used to evaluate trust if provided. ○ Reminder: the anchor_certs property of the DEP profile ● Request is a simple .plist with device identification ○ Examples: UDID, OS version. ● CMS-signed, DER-encoded ● Signed using the device identity certificate (from APNS) ● Certificate chain includes expired Apple iPhone Device CA
  • 36. TLS w/ anchor-certs MDM Profile Endpoint url MIG ManagedClient.app Links ConfigurationProfiles.framework Setup Assistant.app
  • 37.
  • 38. Step 6: Installing the Activation Profile ● Once retrieved, profile is stored on the system ● This step begins automatically (if in setup assistant) ● Driven by CPInstallActivationProfile ● Implemented by mdmclient over XPC ○ LaunchDaemon (as root) or LaunchAgent (as user), depending on context
  • 39. Step 6: Installing the Activation Profile ● Configuration profiles have multiple payloads ● Installation: loop to install each payload in the profile ● Framework has a plugin-based architecture for installing profiles ● Each payload type is associated with a plugin ○ Can be XPC (in framework) or classic Cocoa (in ManagedClient.app) ● Example: ○ Certificate Payloads use CertificateService.xpc
  • 40. Step 6: Installing the Activation Profile ● Typically, activation profile provided by an MDM vendor will include the following payloads: ○ com.apple.mdm: to enroll the device in MDM ○ com.apple.security.scep: to securely provide a client certificate to the device. ○ com.apple.security.pem: to install trusted CA certificates to the device’s System Keychain.
  • 41. Step 6: Installing the Activation Profile ● Installing the MDM payload equivalent to MDM check-in ● Configures the device for MDM ● Payload contains key properties: ○ MDM Check-In URL (CheckInURL) ○ MDM Command Polling URL (ServerURL) + APNs topic to trigger it ● To install MDM payload, request is sent to CheckInURL ● Implemented in mdmclient
  • 42. Step 6: Installing the Activation Profile ● MDM payload can depend on other payloads ● Allows requests to be pinned to specific certificates: ○ Property: CheckInURLPinningCertificateUUIDs ○ Property: ServerURLPinningCertificateUUIDs ○ Delivered via PEM payload ● Allows device to be attributed with an identity certificate: ○ Property: IdentityCertificateUUID ○ Delivered via SCEP payload
  • 43. TLS w/ CheckInURLPinningCertificateUUIDs MDM Check-In Endpoint CheckInURL Install Activation Profile mdmclient ConfigurationProfiles.framework Setup Assistant.app
  • 44.
  • 45. Step 7: Listening for MDM commands ● After MDM check-in is complete, vendor can issue push notifications using APNs ● Upon receipt, handled by mdmclient ● To poll for MDM commands, request is sent to ServerURL ● Makes use of previously installed MDM payload: ○ ServerURLPinningCertificateUUIDs for pinning request ○ IdentityCertificateUUID for TLS client certificate
  • 46. TLS w/ ServerURLPinningCertificateUUIDs Apple Push Service MDM Vendor Command Endpoint ServerURL mdmclient MDM Vendor Push Sender
  • 47. Vulnerability: InstallApplication ● Wide range of commands available ● Very common: InstallApplication ● Allows remote, silent installation of an application on the device ● Implemented using App Store infrastructure
  • 48. Vulnerability: InstallApplication ● The command request contains the URL to a manifest: ○ The manifest describes the application package ○ The manifest is encoded as a property list (XML) ● The manifest includes the URL to the package to install ● On macOS, this points to a signed distribution package (.pkg)
  • 49. Vulnerability: InstallApplication ● mdmclient uses CommerceCore.framework, calling CKMDMProcessManifestAtURL ● CommerceKit: contains various “services”, each backed by a LaunchAgent/LaunchDaemon ○ storeassetd: downloads and processes the manifest, queuing downloads for each specific package ○ storedownloadd: downloads and installs the package
  • 51. Vulnerability: InstallApplication ● MDM and Store are two separate components ○ Different threat models ● mdmclient is not evaluating the trust of the manifest URL ○ In fact, StoreFoundation’s core networking classes used in this scenario do not appear to evaluate trust at all ○ Allows MITM attack ● Example: State could target a specific organization by MITMing commands from the MDM vendor. Not limited to DEP.
  • 52. Demo ● Simulate malicious ISP or state actor via Internet Sharing (on macOS) ○ Proxy all traffic from new device using mitmproxy ● Simulate compromised CA by using valid cert from Fleetsmith’s CA ● Intercept request for manifest during device’s first boot ● Serve malicious manifest, causing device to download and install a different .pkg ○ Personal Developer ID certificate to sign “malicious” package
  • 53. Demo
  • 54.
  • 55. Fix: InstallEnterpriseApplication ● New command: InstallEnterpriseApplication ● Includes new properties to control trust evaluation ● Available in macOS 10.13.6 (thus also 10.14) ○ Thus, time delay for new hardware to support fix ● Important: Requires MDM vendor to adopt new command
  • 56. Fix: InstallEnterpriseApplication ● Can pin manifest request to specific anchor certificates: ○ Property: ManifestURLPinningCerts ● Can ensure certificate revocation checks are performed: ○ Property: PinningRevocationCheckRequired
  • 57. Fix: InstallEnterpriseApplication ● Under the hood: CKMDMProcessManifestAtURL now takes in a dictionary of options ○ _CKMDMManifestOptionPinCertificates ○ _CKMDMManifestOptionPinningRevocationCheckRequired ● StoreFoundation networking objects now evaluate trust ○ Uses standard NSURLConnection delegate method for authentication challenges
  • 58. Takeaways ● Complex system with many moving parts ● Some have different threat models → bugs can appear between components ● Important to perform holistic “systems level” security reviews ● Security is often dependent on the MDM vendor → vendors can do more
  • 59. Recommendations for Apple ● Fully document the security model for DEP & MDM, including the role of the Apple iPhone Device CA ● Require pinning at each step (currently optional) ● Require any Configuration Profile containing sensitive data (e.g. Wi-Fi password) to be both signed and encrypted (currently optional) ● Make factory installed OS version and build number available via DEP APIs
  • 60. MDM Vendor Security Checklist ● Pin at every step of the process ○ Step 4: Pin MDM anchor_certs in DEP profile ○ Step 5: Pin MDM URLs in payload (/checkin, /commands) ○ Step 7: Pin using InstallEnterpriseApplication ○ All networking calls from agent binary (if one exists) ● Use SCEP ○ Avoid generating private keys server-side ○ Use SCEP “Challenge Password” (HMAC works well)
  • 61. MDM Vendor Checklist ● Configuration Profiles ○ All should be signed ○ All that contain sensitive data should be signed and encrypted, using the device’s public key ● Encrypt sensitive customer data at rest ○ e.g. WiFi passwords
  • 62. Disclosure timeline ● First disclosed to Apple on April 28th, acknowledged May 2nd ● InstallEnterpriseApplication announced in “What's New in Managing Apple Devices” session at WWDC on June 7th ● MDM Protocol Reference documentation updated to include InstallEnterpriseApplication on July 5th ● Fix is introduced with macOS 10.13.6 on July 9th
  • 63. Conclusion Thank you! ○ Shout out to Fleetsmith cofounder Stevie Hryciw for first discovering the vulnerability + his assistance on early research ○ Shout out to @groob @bruienne @mikeymikey @jessecpeterson for their research, open source work, and contributions to the Mac security community ○ Shout out to Apple for their quick reaction and courteous response as well as the great work their security engineering team is doing to continually improve platform security for both iOS & macOS
  • 64. Resources ○ Twitter: ○ @jesseendahl ○ @maxbelanger ○ Fleetsmith: fleetsmith.com