DPRK Cyber IndexYearsActorsSourcesAttacks on North KoreaMethodologyContributeSearch

Source descriptions

Sources

Every value in hacks.csv and hacks_all_sources.csv is copied as the source publishes it. No amounts, dates, or names are converted. The original downloads were saved unchanged and are not in this repository (see METHODOLOGY.md).

Starting sources

# Source Publisher What was taken Entries Coverage Link
1 lazarus.day lazarus.day Every incident in its index, with its summary and linked reports 229 2009-07 to 2026-09 https://lazarus.day/
2 CSIS Significant Cyber Incidents Center for Strategic and International Studies (Strategic Technologies Program) Entries whose text contains a North Korea search term: North Korea, DPRK, Pyongyang, Lazarus, Kimsuky, and similar 91 of 1,227 2009 to 2026 https://www.csis.org/programs/strategic-technologies-program/significant-cyber-incidents (PDF dated July 2026)
3 EuRepoC Global Dataset 1.3 European Repository of Cyber Incidents (Heidelberg, Innsbruck, Cyber Policy Institute, SWP) Incidents whose initiator_country includes “Korea, Democratic People’s Republic of” 152 of 3,414 2000 to 2024 https://zenodo.org/records/14965395
4 Threat Group Cards ThaiCERT / ETDA (Thailand) The “operations” list of every threat-group card with country = North Korea (Lazarus, Kimsuky, APT37/Reaper, Moonstone Sleet, Earth Kitsune, Wassonite, unnamed NK groups). Attacks only, see the rule below 171 kept of 247 2007 to 2025-06 https://apt.etda.or.th/
5 Dyadic Cyber Incident Dataset (DCID) v2.0 Maness, Valeriano, et al. (Harvard Dataverse) Incidents with initiator = 731 (North Korea’s state code in the dataset) 59 of 433 2007 to 2020 https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/CQOMYV
6 CISSM Cyber Events Database, copy exported 21 Apr 2023, via github.com/holisticinfosec/CISSM-EDA University of Maryland CISSM (original); re-posted by a third party on GitHub Events with actor_country = “Korea (the Democratic People’s Republic of)” 126 of 10,712 2014-11 to 2022-12 Original: https://cybereventsdatabase.org/ (login required). Copy used: https://github.com/holisticinfosec/CISSM-EDA
7 lazarus-bluenoroff-research tayvano (GitHub) Every row of the “Hacks: By Year” table (date, incident, amount stolen) 295 2016-10 to 2026-09 https://github.com/tayvano/lazarus-bluenoroff-research
8 Cyber Operations Tracker Council on Foreign Relations Incidents whose “Suspected state sponsor” is “Korea (Democratic People’s Republic of)”, read from each incident page 107 of 861 2005 to 2026 https://www.cfr.org/cyber-operations/

Sources added in 2026

Each keeps its own source name in the source column of the CSVs. Counts are entries before duplicates were folded.

First search (theft and other incidents):

Second search (all DPRK cyber activity, not only theft):

Further searches:

Eight tayvano pages where she says the hack was not the DPRK are left out.

Notes on individual sources

Output files

Duplicate clean-up

hacks_all_sources.csv is never de-duplicated. hacks.csv folds entries that describe the same event into one row. How the folds were made, in order:

  1. Name and date matching (checked by eye): entries with the same victim name or malware/operation name within about two months.
  2. Shared rare words across all rows (checked by eye): candidates were listed and only clear matches were merged.
  3. Same web page cited by two rows (checked by eye).
  4. Reviewed proposals by period (2025–26, 2024, 2023, 2022, 2020–21, 2018–19, 2016–17, up to 2015 plus undated rows): an agent read each slice and proposed groups of rows about the same incident. Every proposal was read before it was applied; weaker links (about 60 rows) were dropped.

What was kept apart on purpose: different victims of the same campaign (for example the seven Andariel indictment victims), different campaigns by the same group, quarterly-report paragraphs, plea and sentencing announcements for related cases, and rows that only share a theme. So some duplicates remain, and a few events that look separate may really be one.

Checked but not used