Entre 2015 et 2018, un groupe de hackers nord-coréens a tenté de dérober plus d'un milliard de dollars à des banques centrales et des institutions financières à travers le monde — en ciblant toujours le même point : leur terminal SWIFT. Les méthodes étaient sophistiquées, les cibles bien choisies. Mais ce qui saute aux yeux : ils ont toujours exploité les mêmes failles. Et elles étaient connues.

Between 2015 and 2018, a group of North Korean hackers attempted to steal more than one billion dollars from central banks and financial institutions around the world — always targeting the same point: their SWIFT terminal. The methods were sophisticated, the targets well chosen. But what stands out: they always exploited the same vulnerabilities. And those were well known.

Ce groupe s'appelle Lazarus — APT38 dans le jargon de FireEye/Mandiant, qui a identifié sa branche financière en 2018. Il opère sous l'autorité du Bureau 121 de la Direction générale de la Reconnaissance (RGB), le renseignement militaire nord-coréen. Pas de l'espionnage — du profit direct, pour un régime qu'il faut financer malgré les sanctions internationales.

This group is called Lazarus — APT38 in FireEye/Mandiant's terminology, which identified its financial branch in 2018. It operates under Bureau 121 of the Reconnaissance General Bureau (RGB), North Korea's military intelligence. Not espionage — direct profit, to fund a regime strangled by international sanctions.

"Ils ont tenté de voler plus d'un milliard de dollars à des institutions dans au moins 13 pays — et ont réussi à en dérober plus de 100 millions."

"They attempted to steal more than one billion dollars from institutions in at least 13 countries — and succeeded in stealing over 100 million."

— FireEye / Mandiant, APT38: Un-usual Suspects, octobre 2018

La méthode : toujours commencer par l'humain

The method: always start with the human

Lazarus ne démarre jamais par une faille technique. C'est toujours un e-mail : du spear phishing ciblé vers des employés ayant accès, direct ou indirect, à l'infrastructure SWIFT.

Lazarus never starts with a technical vulnerability. It always starts with an email: spear phishing targeted at employees with direct or indirect access to the SWIFT infrastructure.

À la Banque du Bangladesh, en 2016, un employé a téléchargé un CV piégé reçu par e-mail. Un keylogger s'est installé. Pendant des semaines, ils ont collecté les credentials, mappé le réseau, trouvé les serveurs SWIFT Alliance Access — puis frappé.

At Bangladesh Bank, in 2016, an employee downloaded a booby-trapped CV received by email. A keylogger installed itself. For weeks, they collected credentials, mapped the network, found the SWIFT Alliance Access servers — then struck.

Taïwan, Mexico, Viêtnam, Chili — même vecteur à chaque fois : phishing, pièce jointe malveillante, ou prestataire tiers compromis. Au Viêtnam en 2015, ils n'ont même pas attaqué la banque directement : ils ont compromis le fournisseur tiers qui gérait sa connexion SWIFT.

Taiwan, Mexico, Vietnam, Chile — same vector every time: phishing, malicious attachment, or compromised third-party vendor. In Vietnam in 2015, they didn't even attack the bank directly: they compromised the third-party vendor managing its SWIFT connection.

Tactique documentée — Operation Dream Job

FireEye et Microsoft ont documenté une campagne Lazarus utilisant de fausses offres d'emploi sur LinkedIn, ciblant des employés de banques et d'institutions financières. Les profils de recruteurs fictifs étaient construits dans les moindres détails. Le piège : un document Word à ouvrir pour "consulter l'offre", nécessitant d'activer les macros.

FireEye and Microsoft documented a Lazarus campaign using fake job offers on LinkedIn, targeting employees at banks and financial institutions. Fictitious recruiter profiles were constructed in minute detail. The trap: a Word document to open to "view the offer", requiring macros to be enabled.

La Banque du Bangladesh : 81 millions de dollars en une nuit

Bangladesh Bank: $81 million in one night

Le 4 février 2016, le Federal Reserve Bank of New York reçoit 35 ordres de virement SWIFT en provenance de la Banque du Bangladesh — tous authentifiés, tous conformes aux standards du réseau. Cinq passent. 101 millions de dollars quittent le compte de la banque centrale bangladaise. 81 millions atterrissent sur des comptes à la Rizal Commercial Banking Corporation (RCBC) aux Philippines, avant d'être blanchis dans les casinos de Manille. Un virement de 20 millions est bloqué par la Deutsche Bank à cause d'une faute de frappe dans le nom du bénéficiaire : "fandation" au lieu de "foundation".

On 4 February 2016, the Federal Reserve Bank of New York receives 35 SWIFT payment orders from Bangladesh Bank — all authenticated, all conforming to network standards. Five go through. $101 million leaves the Bangladeshi central bank's account. $81 million lands in accounts at Rizal Commercial Banking Corporation (RCBC) in the Philippines, before being laundered through Manila casinos. A $20 million transfer is blocked by Deutsche Bank because of a typo in the beneficiary name: "fandation" instead of "foundation".

L'enquête de la police bangladaise — et les analyses publiées par BAE Systems le 25 avril 2016 dans leur rapport "Two Bytes to $951M" — révèle l'étendue des défaillances. Les attaquants avaient déployé trois outils malveillants sur mesure :

The Bangladeshi police investigation — and the analyses published by BAE Systems on 25 April 2016 in their report "Two Bytes to $951M" — reveals the extent of the failures. The attackers had deployed three bespoke malware tools:

Arsenal technique — rapport BAE Systems, 25 avril 2016
Technical arsenal — BAE Systems report, 25 April 2016

Ces outils tournaient entièrement en mémoire — jamais sur disque. Comme l'a dit FireEye : "SWIFT malware is never on disk." Les antivirus ne voyaient rien.

These tools ran entirely in memory — never on disk. As FireEye put it: "SWIFT malware is never on disk." Antivirus tools saw nothing.

Le timing était calculé au millimètre. Les ordres ont frappé la Fed un jeudi après-midi. Bangladesh fermé le vendredi, Fed fermée le dimanche, Philippines en congé pour le Nouvel An chinois. Quatre jours sans que personne comprenne ce qui se passait.

The timing was calculated to the millimetre. Orders hit the Fed on Thursday afternoon. Bangladesh closed Friday, Fed closed Sunday, Philippines on holiday for Chinese New Year. Four days before anyone understood what was happening.

Les autres cas : un schéma qui se répète

Other cases: a pattern that repeats

Décembre 2015 — Viêtnam
December 2015 — Vietnam
Tien Phong Bank — 1,36 million de dollars tentés, zéro volé
Tien Phong Bank — $1.36 million attempted, zero stolen

Première attaque connue de la série. Lazarus a compromis le prestataire tiers gérant la connexion SWIFT de la banque, remplacé son lecteur PDF Foxit par une version malveillante qui masquait les transactions frauduleuses dans les rapports. La banque a détecté des messages SWIFT anormaux à temps. Selon BAE Systems, si TP Bank avait alerté SWIFT immédiatement, l'attaque du Bangladesh aurait pu être évitée.

First known attack in the series. Lazarus compromised the third-party vendor managing the bank's SWIFT connection, replacing its Foxit PDF reader with a malicious version that hid fraudulent transactions in reports. The bank detected abnormal SWIFT messages in time. According to BAE Systems, had TP Bank immediately alerted SWIFT, the Bangladesh attack could have been prevented.

Octobre 2017 — Taïwan
October 2017 — Taiwan
Far Eastern International Bank — 60 millions tentés, 500 000 perdus
Far Eastern International Bank — $60 million attempted, $500,000 lost

Lazarus déploie un ransomware (Hermes, ancêtre documenté de Ryuk) comme écran de fumée, pendant que les virements SWIFT s'exécutent. Les fonds transitent par le Cambodge, le Sri Lanka et les États-Unis. BAE Systems publie une analyse détaillée : "Taiwan Heist: Lazarus Tools and Ransomware". Les chaînes de caractères en russe dans le code sont évaluées comme un faux drapeau délibéré.

Lazarus deploys ransomware (Hermes, a documented ancestor of Ryuk) as a smokescreen while SWIFT transfers execute. Funds transit through Cambodia, Sri Lanka and the United States. BAE Systems publishes a detailed analysis: "Taiwan Heist: Lazarus Tools and Ransomware". Russian-language strings in the code are assessed as a deliberate false flag.

Janvier 2018 — Mexique
January 2018 — Mexico
Bancomext — 110 millions tentés, zéro volé
Bancomext — $110 million attempted, zero stolen

Un technicien de niveau intermédiaire surveille les messages SWIFT entrants et détecte des anomalies. La banque coordonne immédiatement avec Banco de México et les banques correspondantes pour bloquer les transferts. Le gouvernement mexicain tente de dissimuler l'incident ; Bloomberg l'a révélé le 29 mai 2018. L'outil utilisé — FALLCHILL RAT — était déjà attribué à la Corée du Nord par le US-CERT.

A mid-level technician monitoring incoming SWIFT messages detects anomalies. The bank immediately coordinates with Banco de México and correspondent banks to block transfers. The Mexican government attempted to conceal the incident; Bloomberg broke the story on 29 May 2018. The tool used — FALLCHILL RAT — had already been attributed to North Korea by US-CERT.

Mai 2018 — Chili
May 2018 — Chile
Banco de Chile — 10 millions volés sous couverture d'une attaque destructrice
Banco de Chile — $10 million stolen under cover of a destructive attack

Lazarus déploie un malware de type wiper (KillDisk / MBR Killer) qui détruit le secteur de démarrage de 9 000 postes de travail et 500 serveurs. Pendant que les équipes de sécurité luttent contre la catastrophe visible, quatre virements SWIFT frauduleux partent vers Hong Kong. Le directeur général Eduardo Ebensperger l'a confirmé à la presse chilienne : "Nous avons réalisé que le virus n'était pas le problème principal — ils voulaient nous frauder via SWIFT."

Lazarus deploys wiper malware (KillDisk / MBR Killer) that destroys the boot sector of 9,000 workstations and 500 servers. While security teams fight the visible catastrophe, four fraudulent SWIFT transfers leave for Hong Kong. CEO Eduardo Ebensperger confirmed it to the Chilean press: "We realised that the virus was not the underlying issue — they wanted to defraud us via SWIFT."

Les failles : toujours les mêmes

The weaknesses: always the same

Ce qui saute aux yeux : aucune innovation technique. Ils ont juste exploité des failles basiques de gouvernance de la sécurité — les mêmes dans presque toutes les banques visées. Je l'ai vu sur le terrain lors du déploiement du SWIFT CSP : chaque contrôle répondait à une faiblesse documentée dans ces incidents.

What stands out: no technical innovation. They simply exploited basic security governance weaknesses — the same ones in almost every targeted bank. I saw this first-hand during SWIFT CSP deployment: every control mapped directly to a documented weakness from these incidents.

01
Privilèges trop élevés
Excessive privileges

À la Banque du Bangladesh, des employés ordinaires avaient des accès administrateurs aux serveurs SWIFT. Une fois les credentials volés via keylogger, les attaquants avaient immédiatement les droits nécessaires pour modifier la base de données Oracle de SWIFT Alliance Access.

At Bangladesh Bank, ordinary employees had administrator access to SWIFT servers. Once credentials were stolen via keylogger, the attackers immediately had the rights needed to modify the SWIFT Alliance Access Oracle database.

02
Absence de segmentation réseau
No network segmentation

Les serveurs SWIFT étaient sur le même réseau non segmenté que les 5 000 postes de travail connectés à internet. L'enquête a révélé des switch non managés à 10 dollars. Kaspersky a documenté un cas où Lazarus avait configuré un routeur interne comme proxy pour pivoter depuis le réseau internet vers l'intranet SWIFT.

SWIFT servers were on the same unsegmented network as 5,000 internet-connected workstations. The investigation revealed $10 unmanaged switches. Kaspersky documented a case where Lazarus had configured an internal router as a proxy to pivot from the internet network into the SWIFT intranet.

03
Code non signé exécutable
Unsigned executable code

Aucun mécanisme de liste blanche applicative n'empêchait l'exécution de binaires inconnus dans l'environnement SWIFT. Les outils malveillants de Lazarus — evtdiag.exe, msoutc.exe — se sont enregistrés comme services Windows sans aucune friction.

No application whitelisting mechanism prevented the execution of unknown binaries in the SWIFT environment. Lazarus's malicious tools — evtdiag.exe, msoutc.exe — registered themselves as Windows services without any friction.

04
Utilisateurs pouvant télécharger et exécuter du code actif
Users able to download and run active code

Le vecteur d'entrée initial — un CV en pièce jointe, un PDF via un lecteur compromis, un document Word avec macros — n'aurait pas fonctionné si les postes de travail des employés avaient été correctement restreints. L'absence de contrôle sur ce que les utilisateurs peuvent télécharger et lancer est la porte d'entrée universelle.

The initial entry vector — a CV attachment, a PDF via a compromised reader, a Word document with macros — would not have worked if employee workstations had been properly restricted. The absence of control over what users can download and run is the universal entry point.

05
Absence de détection des anomalies transactionnelles
No transactional anomaly detection

35 ordres de virement émis en dehors des heures ouvrables, un vendredi soir, vers des destinations inhabituelles : aucune alerte automatique n'a été déclenchée. Au Mexique, c'est un humain — un technicien de surveillance — qui a évité le désastre. La détection ne peut pas reposer sur la vigilance individuelle.

35 payment orders issued outside business hours, on a Friday evening, to unusual destinations: no automatic alert was triggered. In Mexico, it was a human — a monitoring technician — who averted disaster. Detection cannot rely on individual vigilance.

06
Fournisseurs tiers non contrôlés
Uncontrolled third-party suppliers

Au Viêtnam, l'attaque a transité par le prestataire de connectivité SWIFT de la banque — une entité tierce avec des contrôles de sécurité plus faibles. La surface d'attaque d'une organisation inclut tous ses fournisseurs connectés à son infrastructure critique.

In Vietnam, the attack transited through the bank's SWIFT connectivity vendor — a third party with weaker security controls. An organisation's attack surface includes all its suppliers connected to its critical infrastructure.

La réponse de l'industrie : le SWIFT CSP

The industry response: SWIFT CSP

En mai 2016, quelques semaines après la révélation de l'attaque du Bangladesh, SWIFT a lancé son Customer Security Programme (CSP) — un cadre de contrôles obligatoires pour les quelque 11 000 membres du réseau. L'objectif : que la sécurité des terminaux locaux soit enfin à la hauteur du réseau central, lui-même jamais compromis dans aucune de ces attaques.

In May 2016, weeks after the Bangladesh attack came to light, SWIFT launched its Customer Security Programme (CSP) — a mandatory control framework for the roughly 11,000 network members. The goal: bring local terminal security up to the standard of the central network, which had never itself been compromised in any of these attacks.

Le CSP s'articule autour de trois axes : sécuriser l'environnement, connaître et limiter les accès, détecter et répondre. Il s'est progressivement renforcé : 16 contrôles obligatoires en 2017, puis 22 en 2021, puis l'obligation du contrôle 2.9 — la détection des anomalies transactionnelles — rendue obligatoire en 2022 seulement, six ans après l'attaque fondatrice. Une attestation indépendante par un tiers est également désormais requise.

The CSP is built around three axes: secure your environment, know and limit access, detect and respond. It has progressively strengthened: 16 mandatory controls in 2017, then 22 in 2021, then the obligation of control 2.9 — transactional anomaly detection — made mandatory only in 2022, six years after the founding attack. Independent third-party attestation is also now required.

"La mise en œuvre du SWIFT CSP, c'est l'un de ces moments où l'on réalise que les standards de sécurité ne sont pas des cases à cocher — ce sont des récits d'incidents traduits en exigences."

"Implementing SWIFT CSP is one of those moments where you realise that security standards are not boxes to tick — they are incident narratives translated into requirements."

Denis Neuforge — CISSP, CCSP, PECB NIS2 Senior Lead Implementer

J'ai dirigé le déploiement du SWIFT CSP dans une grande institution financière, première année. Et là, c'est devenu évident : chaque contrôle était une réponse directe à une faiblesse documentée dans les incidents Lazarus. Segmentation réseau. Limitation des privilèges. Code non signé interdit. Détection des anomalies transactionnelles. Pas de la théorie — des leçons des vraies attaques, traduites en exigences.

I led SWIFT CSP deployment at a large financial institution, first year. And it became obvious: every control was a direct response to a documented weakness from the Lazarus incidents. Network segmentation. Privilege limitation. Unsigned code prohibited. Transactional anomaly detection. Not theory — lessons from the actual attacks, translated into requirements.

Ce que l'attribution change

What attribution changes

Le 17 février 2021, le Département de Justice américain a inculpé trois membres du Bureau 121 nord-coréen — Jon Chang Hyok, Kim Il et Park Jin Hyok — pour un complot visant à voler et extorquer plus d'1,3 milliard de dollars à des banques et des plateformes de cryptomonnaies. L'inculpation désigne explicitement ces individus comme membres du groupe Lazarus et d'APT38.

On 17 February 2021, the US Department of Justice indicted three members of North Korea's Bureau 121 — Jon Chang Hyok, Kim Il, and Park Jin Hyok — for a conspiracy to steal and extort more than $1.3 billion from banks and cryptocurrency platforms. The indictment explicitly identifies these individuals as members of the Lazarus Group and APT38.

L'attribution repose sur plusieurs piliers indépendants : la réutilisation d'un algorithme de chiffrement rare (le chiffre Caracachs) retrouvé dans des dizaines de familles de malware différentes, documentée par la coalition Novetta dans l'Operation Blockbuster ; des erreurs OPSEC permettant de tracer des connexions depuis des plages d'adresses IP nord-coréennes documentées par Kaspersky ; et l'identification par le chercheur de Google Neel Mehta d'un fragment de code commun entre WannaCry et les outils Lazarus antérieurs.

Attribution rests on several independent pillars: the reuse of a rare encryption algorithm (the Caracachs cipher) found in dozens of different malware families, documented by the Novetta coalition in Operation Blockbuster; OPSEC mistakes allowing connections to be traced from North Korean IP address ranges, documented by Kaspersky; and the identification by Google researcher Neel Mehta of a code fragment shared between WannaCry and prior Lazarus tools.

Pour les organisations, c'est clair : elles font face à un adversaire étatique, patient, bien financé, capable de rester dormant 155 jours en moyenne dans un réseau avant de frapper — jusqu'à deux ans dans certains cas documentés par FireEye. La persistance n'est pas optionnelle pour eux. C'est opérationnel.

For organisations, the picture is clear: they face a state-sponsored, patient, well-funded adversary capable of lying dormant in a network for an average of 155 days before striking — up to two years in some cases documented by FireEye. Persistence is not optional for them. It is operational.

Ce que NIS2 exige — et que Lazarus aurait empêché
What NIS2 requires — and that would have stopped Lazarus

Les exigences de NIS2 (articles 21 et suivants) en matière de gestion des accès, segmentation, gestion des risques liés aux tiers, détection des incidents et tests de résilience correspondent point par point aux failles exploitées par APT38. Pour les entités essentielles et importantes soumises à NIS2, la conformité n'est pas un exercice bureaucratique — c'est la traduction réglementaire de leçons apprises à 101 millions de dollars.

NIS2 requirements (Articles 21 et seq.) on access management, segmentation, third-party risk management, incident detection and resilience testing correspond point by point to the weaknesses exploited by APT38. For essential and important entities subject to NIS2, compliance is not a bureaucratic exercise — it is the regulatory translation of lessons learned at a cost of $101 million.

Sources & références

Sources & references

La sérendipité, parfois, c'est une faute de frappe dans le nom d'un bénéficiaire, ou un technicien qui consulte ses messages au bon moment. Ce qui a évité le pire n'était pas un système de sécurité — c'était le hasard. La question, pour chaque organisation, est de savoir combien de temps elle peut compter dessus.

Serendipity, sometimes, is a typo in a beneficiary name, or a technician who checks his messages at the right moment. What prevented the worst was not a security system — it was chance. The question, for every organisation, is how long they can rely on it.

Denis Neuforge
CISSP · CCSP · CIPP/E · PECB NIS2 Senior Lead Implementer

Senior Cybersecurity Consultant et Managing Director de Serendipity SRL. 30 ans d'expérience en sécurité de l'information dans les institutions financières internationales et le secteur public belge. A dirigé l'implémentation du SWIFT Customer Security Programme (CSP) pour une grande institution financière internationale lors de sa première année de déploiement. Spécialiste NIS2, gouvernance de la sécurité et gestion des risques.

Senior Cybersecurity Consultant and Managing Director of Serendipity SRL. 30 years of experience in information security in international financial institutions and the Belgian public sector. Led the implementation of the SWIFT Customer Security Programme (CSP) for a large international financial institution during its first year of deployment. Specialist in NIS2, security governance and risk management.