| ID | Name |
|---|---|
| T1417.001 | Keylogging |
| T1417.002 | GUI Input Capture |
Adversaries may log user keystrokes to intercept credentials or other information from the user as the user types them.
Some methods of keylogging include:
AccessibilityService class, overriding the onAccessibilityEvent method, and listening for the AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED event type. The event object passed into the function will contain the data that the user typed. *Additional methods of keylogging may be possible if root access is available. | ID | Name | Description |
|---|---|---|
| S0422 | Anubis |
Anubis has a keylogger that works in every application installed on the device.[2] |
| S1079 | BOULDSPY | |
| S1094 | BRATA | |
| S0655 | BusyGasper |
BusyGasper can collect every user screen tap and compare the input to a hardcoded list of coordinates to translate the input to a character.[7] |
| S0480 | Cerberus | |
| S1083 | Chameleon |
Chameleon can log keystrokes and gather the lock screen password of an infected device by abusing Accessibility Services.[9] |
| S1054 | Drinik |
Drinik can use keylogging to steal user banking credentials.[10] |
| S1092 | Escobar | |
| S0478 | EventBot |
EventBot can abuse Android’s accessibility service to record the screen PIN.[12] |
| S0522 | Exobot |
Exobot has used web injects to capture users’ credentials.[13] |
| S0408 | FlexiSpy |
FlexiSpy can record keystrokes and analyze them for keywords.[14] |
| S0406 | Gustuff |
Gustuff abuses accessibility features to intercept all interactions between a user and the device.[15] |
| S0407 | Monokle | |
| S1062 | S.O.V.A. | |
| S1055 | SharkBot |
SharkBot can use accessibility event logging to steal data in text fields.[18] |
| G0112 | Windshift |
Windshift has included keylogging capabilities as part of Operation ROCK.[19] |
| ID | Mitigation | Description |
|---|---|---|
| M1012 | Enterprise Policy |
When using Samsung Knox, third-party keyboards must be explicitly added to an allow list in order to be available to the end-user.[20] |
| M1011 | User Guidance |
Users should be wary of granting applications dangerous or privacy-intrusive permissions, such as keyboard registration or accessibility service access. |
| ID | Data Source | Data Component | Detects |
|---|---|---|---|
| DS0041 | Application Vetting | Permissions Requests |
Application vetting services can look for applications requesting the |
| DS0042 | User Interface | System Settings |
On Android, the user can view and manage which applications have third-party keyboard access through the device settings in System -> Languages & input -> Virtual keyboard. On iOS, the user can view and manage which applications have third-party keyboard access through the device settings in General -> Keyboard. |