Threat actor
KoSpy
Last fetched
KoSpy is a threat actor tracked in WhisperGraph's MITRE ATT&CK corpus, observed using 0 techniques.
Description
KoSpy is a malicious spyware attributed to the North Korean state-sponsored hacking group APT37 (also known as Reaper). This sophisticated malware was found on the Google Play Store, embedded in seemingly legitimate Android apps. KoSpy is designed to covertly collect sensitive user data, including including SMS text messages, call logs, the device’s location data, files and folders on the device, user-entered keystrokes, Wi-Fi network details, and a list of installed apps, while operating undetected. KoSpy can also record audio, take pictures with the phone’s cameras, and capture screenshots of the screen in use.
Techniques by tactic
No ATT&CK techniques are recorded for KoSpy in WhisperGraph.
Attributed infrastructure
None published. WhisperGraph carries no ATTRIBUTED_TO edge to KoSpy today — this states the absence of a published link, not that KoSpy has no infrastructure.
References
- https://www.lookout.com/threat-intelligence/article/lookout-discovers-new-spyware-by-north-korean-apt37
- https://techcrunch.com/2025/03/12/north-korean-government-hackers-snuck-spyware-on-android-app-store/
- https://thehackernews.com/2025/03/north-koreas-scarcruft-deploys-kospy.html
- https://therecord.media/north-korea-malware-android-apps-kospy-apt37-scarcruft
© The MITRE Corporation. This work is reproduced and distributed with the permission of The MITRE Corporation.
Related pages
Pivot from KoSpy into its techniques, tactics and any attributed infrastructure.
Queries
Resolves the slug to this actor, merging every duplicate node sharing the same name.
MATCH (a:ACTOR)
WHERE a.name =~ $pattern OR any(x IN a.aliases WHERE x =~ $pattern)
RETURN a.id AS id, a.name AS name, a.aliases AS aliases, a.description AS description,
a.references AS references, a.campaigns AS campaigns
LIMIT 25Run yourself →Techniques this actor uses, grouped by the tactic each one serves.
MATCH (a:ACTOR {name: $name})-[:USES_TECHNIQUE]->(t:ATTACK_PATTERN)
OPTIONAL MATCH (t)-[:USES_TACTIC]->(tac:ATTACK_PATTERN)
RETURN t.id AS techniqueId, t.name AS techniqueName, tac.id AS tacticId, tac.name AS tacticName
LIMIT 1000Run yourself →Infrastructure publicly attributed to this actor.
MATCH (n)-[:ATTRIBUTED_TO]->(a:ACTOR {name: $name})
RETURN labels(n)[0] AS kind, n.name AS name
LIMIT 25Run yourself →Or query Whisper from your own LLM workflow via the Whisper MCP server.