{ "type": "bundle", "id": "bundle--8e695794-0dad-4f9d-ba8a-000aeb13e3ab", "spec_version": "2.0", "objects": [ { "type": "x-mitre-analytic", "id": "x-mitre-analytic--8c29fa0f-6b35-40c2-9c99-081a0997db86", "created": "2025-10-21T15:10:28.402Z", "created_by_ref": "identity--c78cb6e5-0c4b-4611-8297-d1b8b55e40b5", "revoked": false, "external_references": [ { "source_name": "mitre-attack", "url": "https://attack.mitre.org/detectionstrategies/DET0661#AN1751", "external_id": "AN1751" } ], "object_marking_refs": [ "marking-definition--fa42a846-8d90-4e51-bc29-71d5b4802168" ], "modified": "2026-01-29T18:53:00.289Z", "name": "Analytic 1751", "description": "Defender correlates an app acquiring input-capture capability (AccessibilityService enablement or default IME set) with high-frequency text-change/IME commit callbacks sourced from other packages, followed by local keylog persistence and/or small, immediate network egress. Chain: capability/permission \u2192 intercept (accessibility \u2018TYPE_VIEW_TEXT_CHANGED\u2019 or IME commitText/onStartInput bursts) \u2192 persist to container \u2192 near-term egress.", "x_mitre_modified_by_ref": "identity--c78cb6e5-0c4b-4611-8297-d1b8b55e40b5", "x_mitre_deprecated": false, "x_mitre_version": "1.1", "x_mitre_attack_spec_version": "3.3.0", "x_mitre_domains": [ "mobile-attack" ], "x_mitre_platforms": [ "Android" ], "x_mitre_log_source_references": [ { "x_mitre_data_component_ref": "x-mitre-data-component--1887a270-576a-4049-84de-ef746b2572d6", "name": "android:logcat", "channel": "Grant/enablement for BIND_ACCESSIBILITY_SERVICE or BIND_INPUT_METHOD for " }, { "x_mitre_data_component_ref": "x-mitre-data-component--9bde2f9d-a695-4344-bfac-f2dce13d121e", "name": "android:logcat", "channel": "AccessibilityService connected|TYPE_VIEW_TEXT_CHANGED|TYPE_VIEW_FOCUSED events for other packages" }, { "x_mitre_data_component_ref": "x-mitre-data-component--9c2fa0ae-7abc-485a-97f6-699e3b6cf9fa", "name": "android:logcat", "channel": "Default IME active imeId=; frequent onStartInput/commitText calls" }, { "x_mitre_data_component_ref": "x-mitre-data-component--2b3bfe19-d59a-460d-93bb-2f546adc2d2c", "name": "android:logcat", "channel": "CREATE/WRITE to /data/data//(files|databases)/(keys|inputs|clipboard).*\\\\.(db|sqlite|txt|log)" } ], "x_mitre_mutable_elements": [ { "field": "TimeWindowSeconds", "description": "Max time between intercept \u2192 persist/exfil (e.g., 5\u201345s)." }, { "field": "MinKeyEventBurst", "description": "Minimum input events in window to flag (e.g., \u226510)." }, { "field": "RequireA11yOrIME", "description": "Only alert when capability is via Accessibility or IME (true/false)." }, { "field": "PersistPathRegex", "description": "Regex for keylog artifacts in app container." }, { "field": "ExfilDomainAllowlist", "description": "Enterprise/analytics endpoints to suppress FPs." }, { "field": "UserContext", "description": "Foreground/Work Profile/Kiosk to scope alerts." } ] } ] }