v2.0 (26/04/2026) patch note
Summary
- Major public release update from
v1.2.1 (14/04/2026)tov2.0 (26/04/2026). - Expanded the cheatsheet from
39to49mechanisms with10new mechanism rows and no removals. - Reworked the model from Signal / False Positive Risk scoring toward acquisition-aware DFIR triage.
- Added a maintainable, JS-generated
Sources & Referencesbibliography with clickable[Sx]references.
Added
- Added a dedicated
Authentication & Access Persistencesection and movedSSH authorized_keysandSSH rcinto it. - Added
PAM stack / pam.d configuration. - Added
sudoers / sudo policy. - Added
AuthorizationDB rules. - Added
Local accounts / hidden users / Remote Login. - Added
Firefox Extensions. - Added
Input Methods / Input Sources. - Added
Screen Saver bundles. - Added
Folder Actions / Automator / Quick Actions. - Added
Mail.app Rules (AppleScript actions). - Added
Declarative Device Management / Managed background tasks. - Added an explicit
Acquisitiontriage dimension withOffline,Both,Live preferred, andOffline partialbadges, filters, and overview chips. - Added a top-of-sheet note clarifying that modern
/System/Library/...paths are mostly protected baseline/reference locations under SSV/SIP. - Added an extensibility disclaimer to the Extensions section for broader plug-in, script, native messaging, helper app, URL handler, automation, and scriptable-interface surfaces.
Changed
- Removed the
Signaltable column, legend card, filter group, badges, overview chips, and related JS/CSS. - Removed
False Positive Risk/FP risklegend, filters, badges, visible metadata, and related JS/CSS. - Kept the table at six columns:
Mechanism,Required privilege,Source of Truth,Collection / Triage,Trigger, andWhat to review. - Renamed
Shell, Access, and Scheduled ExecutiontoShell & Scheduled Executionafter moving SSH access persistence into the new Authentication section. - Added
Sourcesto the quick navigation and included the bibliography in quick-nav observation. - Converted static reference labels into clickable bibliography links with stable IDs, native tooltips, keyboard focus styling, and generated source cards.
- Reordered and renumbered references by document section and row order, ending with the MDM range
S42-S48a. - Switched to a standalone/offline-safe system font stack instead of relying on Google-hosted fonts.
- Adjusted legend layout so the four remaining legend cards fit cleanly on a 1080p display.
Expanded Coverage
- Expanded
SSH authorized_keyscoverage to enumerate all users,/var/root, effectivesshd_config,AuthorizedKeysFile,AuthorizedKeysCommand,Include,Match, and Remote Login state. - Expanded browser extension coverage with Firefox enterprise deployment, Firefox policy, Firefox native manifest pivots, Chromium Native Messaging Host pivots, and Safari native-app messaging pivots.
- Expanded
High-impact MDM payloadswith more precise PPPC/TCC, Managed Login Items, certificate trust, ServiceManagement, and managed-preferences language. - Expanded
Configuration Profilestriage around modernprofiles list,profiles show, enrollment state, parseable XML output, and payload correlation. - Expanded
System Extensionswith offline partial pivots while keeping livesystemextensionsctl listas the preferred activation-state source. - Expanded
KEXTswithkmutil showloaded, disk bundle enumeration, Apple silicon Reduced Security / approval context, and DriverKit/System Extension nuance. - Expanded
TCC / Accessibility Grantswith schema-first triage for Mojave/Catalina versus Big Sur+ databases, includingpolicy_idfor PPPC-managed grants. - Expanded
BTM / SMAppServiceguidance aroundsudo sfltool dumpbtmand the limitations of treatingBackgroundItems-v*.btmstores as simple plists. - Expanded checklist and telemetry panels with authentication/access persistence, Firefox/browser automation context, DDM-managed background tasks, and additional log pivots.
Fixed
- Corrected PPPC wording so Camera, Microphone, Screen Recording, and service-specific privacy classes are not described as universally silently grantable.
- Corrected
com.apple.servicemanagementwording to describe managed or auto-approved login/background item rules rather than profile-only registration. - Corrected certificate payload wording so enterprise trust-store manipulation is not overstated as defeating correctly implemented certificate or public-key pinning.
- Corrected
DYLD_* injection / LSEnvironmentwording around SIP, Hardened Runtime, code signing, library validation, and the distinct runtime exceptions involved. - Corrected
Privileged Helper ToolsSMAppService bundle paths fromLaunchServicestoContents/Library/LaunchDaemonsandContents/Library/LaunchAgents. - Corrected Sublime Text startup-script coverage to use user package locations instead of the signed
Contents/MacOSapp directory. - Corrected Login Hooks deprecation wording to avoid a contradictory
10.11claim. - Added modern
launchctlsyntax context forAt / atrunwhile preserving the legacyload -wnote. - Added offline backing-file hints for
launchd overrides / disabled state. - Added Apple silicon KEXT approval context and stronger review criteria for loaded or approved non-Apple KEXTs.
- Added PAM baseline hashing guidance for
/etc/pam.d/*instead of relying only oncodesignchecks of SIP-protected modules. - Updated Input Methods baseline guidance to compare against Apple-shipped input methods on the target OS rather than outdated examples.
- Split Screen Saver coverage out of
App preference triggersinto a dedicated mechanism row.
Light
Dark


Old versions
https://github.com/jaybird1291/macOS-persistence-cheatsheet/releases