Cross-source coverage
T1555.001 / ATT&CK
Credentials from Password Stores: Keychain
From MITRE ATT&CK 19.2
Adversaries may acquire credentials from Keychain. Keychain (or Keychain Services) is the macOS credential management system that stores account names, passwords, private keys, certificates, sensitive application data, payment data, and secure notes. There are three types of Keychains: Login Keychain, System Keychain, and Local Items (iCloud) Keychain. The default Keychain is the Login Keychain, which stores user passwords and information. The System Keychain stores items accessed by the operating system, such as items shared among users on a host. The Local Items (iCloud) Keychain is used for items synced with Apple’s iCloud service.
Keychains can be viewed and edited through the Keychain Access application or using the command-line utility security. Keychain files are located in ~/Library/Keychains/, /Library/Keychains/, and /Network/Library/Keychains/.
Adversaries may gather user credentials from Keychain storage/memory. For example, the command security dump-keychain –d will dump all Login Keychain credentials from ~/Library/Keychains/login.keychain-db. Adversaries may also directly read Login Keychain credentials from the ~/Library/Keychains/login.keychain file. Both methods require a password, where the default password for the Login Keychain is the current user’s password to login to the macOS host.
- Tactics
- Credential Access
- Platforms
- macOS
- Telemetry
-
macos:unifiedlog
How MITRE says to detect it DET0396
Detect Access to macOS Keychain for Credential Theft
macOS Analytic 1112
Detects suspicious access to macOS Keychain files and APIs. Observes processes invoking the 'security' utility or accessing Keychain databases directly, correlates these with abnormal parent process lineage or unexpected user context. Monitors attempts to dump, unlock, or read credential storage beyond normal application workflows.
macos:unifiedlogexecution of security or osascriptmacos:unifiedlogaccess or unlock attempt to keychain databasemacos:unifiedlogread access to ~/Library/Keychains/login.keychain-db
elastic/protections-artifacts
12 rules| Detection | Severity | Format |
|---|---|---|
| Keychain Credential Files Collected via Archive Utility | Undefined | Elastic TOML |
| Keychain Dump via Native Security Tool | Undefined | Elastic TOML |
| Suspicious User Keychain Access via Nodejs | Undefined | Elastic TOML |
| Suspicious User Keychain DB Access by Unsigned Binary | Undefined | Elastic TOML |
| SystemKey Access via Command Line | Undefined | Elastic TOML |
| User Keychain Access in Unusual Location | Undefined | Elastic TOML |
| User Keychain copied via Script Interpreter | Undefined | Elastic TOML |
| User Keychain copied via Shell interpreter | Undefined | Elastic TOML |
| User Keychain Copied via Suspicious Parent | Undefined | Elastic TOML |
| User Keychain DB Access by Osascript | Undefined | Elastic TOML |
+ 2 more from elastic/protections-artifacts → showing the 10 highest-severity
elastic/detection-rules
5 rules| Detection | Severity | Format |
|---|---|---|
| Dumping of Keychain Content via Security Command | High | Elastic TOML |
| Keychain CommandLine Interaction via Unsigned or Untrusted Process | High | Elastic TOML |
| Keychain Password Retrieval via Command Line | High | Elastic TOML |
| SystemKey Access via Command Line | High | Elastic TOML |
| First Time Python Accessed Sensitive Credential Files | Medium | Elastic TOML |
SigmaHQ/sigma
1 rule| Detection | Severity | Format |
|---|---|---|
| Credentials from Password Stores - Keychain | Medium | Sigma |
splunk/security_content
1 rule| Detection | Severity | Format |
|---|---|---|
| MacOS Keychains Dumped | Undefined | SPL |