Files
presentation_cybersecurite/index.html
Kerboul ada60e8999 Theme Matrix + accents francais : refonte visuelle complete
- CSS : theme Matrix avec pluie binaire, scanlines CRT, glow verts, animations
- HTML : ajout de tous les accents francais (entites HTML)
- Canvas Matrix rain en arriere-plan
- Nouvelles classes : glow-card, data-bg, matrix-quote, terminal-line, tags, status-dot
- Suppression des tirets em et emojis
2026-03-10 02:29:47 -07:00

488 lines
25 KiB
HTML

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Le Groupe Lazarus et le hack de Bybit (2025)</title>
<!-- Reveal.js core -->
<link rel="stylesheet" href="node_modules/reveal.js/dist/reveal.css">
<link rel="stylesheet" href="node_modules/reveal.js/dist/theme/black.css">
<!-- Highlight.js pour le code -->
<link rel="stylesheet" href="node_modules/reveal.js/plugin/highlight/monokai.css">
<!-- Th&egrave;me personnalis&eacute; -->
<link rel="stylesheet" href="css/custom.css">
<!-- Canvas Matrix Rain -->
<style>
#matrix-rain {
position: fixed;
top: 0; left: 0;
width: 100vw; height: 100vh;
z-index: 0;
pointer-events: none;
opacity: 0.12;
}
.reveal { position: relative; z-index: 1; }
</style>
</head>
<body>
<canvas id="matrix-rain"></canvas>
<div class="reveal">
<div class="slides">
<!-- ============================================ -->
<!-- SLIDE 1 : Page de titre -->
<!-- ============================================ -->
<section class="title-slide data-bg">
<h1>Le Groupe Lazarus<br>&amp; le hack de Bybit</h1>
<div class="subtitle">F&eacute;vrier 2025 / 1,5 milliard de dollars en Ethereum</div>
<div class="authors">Pr&eacute;sentation par [Pr&eacute;nom 1], [Pr&eacute;nom 2] et [Pr&eacute;nom 3]</div>
<div class="date">2025 / 2026</div>
</section>
<!-- ============================================ -->
<!-- SLIDE 2 : Sommaire -->
<!-- ============================================ -->
<section>
<h1>Sommaire</h1>
<div class="toc">
<ol>
<li>Qui est le Groupe Lazarus ?</li>
<li>Historique des attaques majeures</li>
<li>Le virage vers les cryptomonnaies</li>
<li>Bybit : la cible</li>
<li>Anatomie technique de l'attaque</li>
<li>Impact sur le march&eacute;</li>
<li>R&eacute;ponse de Bybit et attribution</li>
<li>Se prot&eacute;ger contre ce type d'attaque</li>
<li>Enjeux g&eacute;opolitiques</li>
<li>Conclusion</li>
</ol>
</div>
</section>
<!-- ============================================ -->
<!-- SLIDE 3 : Qui est le Groupe Lazarus ? -->
<!-- ============================================ -->
<section class="data-bg">
<h1>Qui est le Groupe Lazarus ?</h1>
<div class="two-cols">
<div>
<p>Groupe de hackers &eacute;tatique li&eacute; &agrave; la <strong>Cor&eacute;e du Nord</strong>, actif depuis <strong>2009</strong>.</p>
<p>Class&eacute; comme <em>Advanced Persistent Threat</em> (APT) par les agences de renseignement occidentales.</p>
<p>Rattach&eacute; au <strong>Reconnaissance General Bureau</strong> (renseignement militaire nord-cor&eacute;en) et au <strong>Bureau 121</strong>, l'unit&eacute; de cyberguerre.</p>
<p>Compos&eacute; de deux sous-groupes principaux :</p>
<ul>
<li><strong>BlueNorOff</strong> (APT38) : op&eacute;rations financi&egrave;res</li>
<li><strong>AndAriel</strong> : espionnage cibl&eacute; sur la Cor&eacute;e du Sud</li>
</ul>
</div>
<div>
<h3>Alias connus</h3>
<p>
<span class="tag">Hidden Cobra</span>
<span class="tag cyan">ZINC / Diamond Sleet</span>
<span class="tag">APT38</span>
<span class="tag cyan">Stardust Chollima</span>
<span class="tag">Guardians of Peace</span>
<span class="tag cyan">NICKEL ACADEMY</span>
</p>
<p class="source">Sources : MITRE ATT&amp;CK G0032, US Treasury OFAC, Kaspersky</p>
</div>
</div>
</section>
<!-- ============================================ -->
<!-- SLIDE 4 : Historique des attaques majeures -->
<!-- ============================================ -->
<section>
<h1>Historique des attaques majeures</h1>
<ul class="timeline">
<li><span class="year">2009</span> Op&eacute;ration Troy : attaques DDoS contre la Cor&eacute;e du Sud</li>
<li><span class="year">2013</span> DarkSeoul : wiper contre banques et m&eacute;dias sud-cor&eacute;ens</li>
<li><span class="year">2014</span> Hack de Sony Pictures : vol de donn&eacute;es, destruction de syst&egrave;mes</li>
<li><span class="year">2016</span> Braquage de la Bangladesh Bank via SWIFT : <strong>81 M$</strong> vol&eacute;s</li>
<li><span class="year">2017</span> WannaCry : ransomware mondial, 200 000 machines dans 150 pays</li>
<li><span class="year">2022</span> Ronin Network (Axie Infinity) : <strong>620 M$</strong> en crypto</li>
<li><span class="year">2022</span> Horizon Bridge (Harmony) : <strong>100 M$</strong></li>
<li><span class="year">2023</span> Atomic Wallet : <strong>100 M$</strong>, Stake.com : <strong>41 M$</strong></li>
<li><span class="year">2024</span> WazirX (Inde) : <strong>235 M$</strong></li>
<li><span class="year">2025</span> <span class="alert">Bybit : 1,5 milliard de dollars</span></li>
</ul>
<p class="source">Sources : FBI, Chainalysis, Wikipedia</p>
</section>
<!-- ============================================ -->
<!-- SLIDE 5 : Le virage crypto -->
<!-- ============================================ -->
<section>
<h1>Le virage vers les cryptomonnaies</h1>
<div class="two-cols">
<div>
<h3>Pourquoi la crypto ?</h3>
<ul>
<li>Les sanctions internationales (ONU, USA, UE) bloquent les circuits financiers classiques</li>
<li>La blockchain offre un pseudo-anonymat exploitable avec des mixers et des bridges cross-chain</li>
<li>Les exchanges centralis&eacute;es concentrent des milliards dans quelques wallets</li>
<li>Les smart contracts tiers repr&eacute;sentent une surface d'attaque sous-estim&eacute;e</li>
</ul>
</div>
<div>
<h3>Estimation des vols</h3>
<div class="big-number">&gt; 3 Md$</div>
<p style="text-align:center;">vol&eacute;s en cryptomonnaies depuis 2017 par des groupes li&eacute;s &agrave; la Cor&eacute;e du Nord.</p>
<p>Selon les estimations, les revenus issus du cybercrime repr&eacute;sentent environ <strong>50% des rentr&eacute;es en devises &eacute;trang&egrave;res</strong> de la RPDC.</p>
<p>Ces fonds financent directement les programmes nucl&eacute;aire et balistique.</p>
<p class="source">Sources : Chainalysis 2024 Crypto Crime Report, Nations Unies</p>
</div>
</div>
</section>
<!-- ============================================ -->
<!-- SLIDE 6 : Bybit - Contexte -->
<!-- ============================================ -->
<section>
<h1>Bybit : la cible</h1>
<div class="two-cols">
<div>
<div class="glow-card">
<ul>
<li>Fond&eacute;e en 2018, bas&eacute;e &agrave; <strong>Dubai</strong></li>
<li><span class="status-dot"></span>2e exchange mondial par volume de trading au moment de l'attaque</li>
<li>Environ <strong>16 milliards de dollars</strong> d'actifs sous gestion</li>
<li>Des millions d'utilisateurs dans le monde</li>
</ul>
</div>
<div class="matrix-quote">L'attaque a cibl&eacute; le <strong>cold wallet Ethereum</strong> de Bybit, le coffre-fort hors ligne cens&eacute; &ecirc;tre la couche de s&eacute;curit&eacute; ultime.</div>
</div>
<div>
<h3>Cold wallet vs Hot wallet</h3>
<div class="diagram">
<div class="box cyan">Hot Wallet<br><small>en ligne, rapide</small></div>
<div class="arrow">&larr;&rarr;</div>
<div class="box">Cold Wallet<br><small>hors ligne, s&eacute;curis&eacute;</small></div>
</div>
<p>Un cold wallet n&eacute;cessite plusieurs signatures (multisig) pour autoriser un transfert. En th&eacute;orie, m&ecirc;me si un signataire est compromis, les fonds restent prot&eacute;g&eacute;s.</p>
<p><strong>En th&eacute;orie.</strong></p>
</div>
</div>
</section>
<!-- ============================================ -->
<!-- SLIDE 7 : Anatomie technique 1/3 -->
<!-- ============================================ -->
<section class="data-bg">
<h1>Anatomie de l'attaque (1/3)</h1>
<h2>Vecteur initial : Safe{Wallet}</h2>
<p><strong>Safe{Wallet}</strong> (anciennement Gnosis Safe) est un service tiers utilis&eacute; par Bybit pour g&eacute;rer la signature multiple (multisig) de ses cold wallets.</p>
<p>Les attaquants ont compromis l'infrastructure de Safe{Wallet} elle-m&ecirc;me, pas directement les syst&egrave;mes de Bybit.</p>
<div class="diagram">
<div class="box red">Lazarus</div>
<div class="arrow">&rarr;</div>
<div class="box red">Safe{Wallet}<br><small>compromis</small></div>
<div class="arrow">&rarr;</div>
<div class="box">Interface de<br>signature Bybit</div>
<div class="arrow">&rarr;</div>
<div class="box cyan">Signataires<br>Bybit</div>
</div>
<p>Les signataires de Bybit ont vu une interface apparemment l&eacute;gitime. Ils ont approuv&eacute; ce qui semblait &ecirc;tre une transaction de routine, mais le contenu r&eacute;el de la transaction avait &eacute;t&eacute; modifi&eacute; c&ocirc;t&eacute; serveur.</p>
<p class="source">Source : CoinTelegraph, F&eacute;vrier 2025</p>
</section>
<!-- ============================================ -->
<!-- SLIDE 8 : Anatomie technique 2/3 -->
<!-- ============================================ -->
<section>
<h1>Anatomie de l'attaque (2/3)</h1>
<h2>Exploitation du smart contract</h2>
<div class="glow-card">
<p>La fausse transaction approuv&eacute;e par les signataires a modifi&eacute; la logique du smart contract du cold wallet :</p>
<ol>
<li>Les signataires approuvent une transaction qui semble normale</li>
<li class="fragment">La transaction r&eacute;elle modifie le <em>implementation contract</em> du proxy wallet</li>
<li class="fragment">La nouvelle logique donne le contr&ocirc;le total &agrave; l'attaquant</li>
<li class="fragment">L'attaquant transf&egrave;re ~400 000 ETH en une seule op&eacute;ration</li>
</ol>
</div>
<div class="fragment">
<div class="big-number">~400 000 ETH</div>
<p style="text-align:center;">soit environ <strong>1,5 milliard de dollars</strong> au cours du jour</p>
</div>
<p class="source fragment">C'est le plus gros vol de cryptomonnaies de l'histoire.</p>
</section>
<!-- ============================================ -->
<!-- SLIDE 9 : Anatomie technique 3/3 -->
<!-- ============================================ -->
<section>
<h1>Anatomie de l'attaque (3/3)</h1>
<h2>Phase de blanchiment</h2>
<p>Une fois les fonds transf&eacute;r&eacute;s, les attaquants ont lanc&eacute; un processus de blanchiment sophistiqu&eacute; et rapide :</p>
<div class="diagram">
<div class="box red">400K ETH<br>vol&eacute;s</div>
<div class="arrow">&rarr;</div>
<div class="box">Dispersion<br><small>multiples wallets</small></div>
<div class="arrow">&rarr;</div>
<div class="box">Mixers<br><small>Tornado Cash etc.</small></div>
<div class="arrow">&rarr;</div>
<div class="box">Bridges<br><small>cross-chain</small></div>
<div class="arrow">&rarr;</div>
<div class="box cyan">Conversion<br>en BTC</div>
</div>
<ul>
<li>Les fonds sont dispers&eacute;s vers des centaines de wallets interm&eacute;diaires</li>
<li>Utilisation de <strong>mixers</strong> (protocoles de m&eacute;lange) pour brouiller l'origine</li>
<li>Passage par des <strong>bridges cross-chain</strong> (Ethereum vers d'autres blockchains)</li>
<li>Conversion progressive en Bitcoin puis potentiellement en monnaie fiat via des exchanges non r&eacute;gul&eacute;es</li>
<li>Utilisation de DEX (exchanges d&eacute;centralis&eacute;es) pour &eacute;viter le KYC</li>
</ul>
</section>
<!-- ============================================ -->
<!-- SLIDE 10 : Impact sur le march&eacute; -->
<!-- ============================================ -->
<section>
<h1>Impact sur le march&eacute;</h1>
<div class="two-cols">
<div>
<h3>Chute des cours</h3>
<div class="glow-card red">
<div class="big-number" style="font-size:2em;">ETH : -20%</div>
<p>Ethereum a perdu plus de 20% de sa valeur dans les heures suivant l'annonce du hack.</p>
</div>
<div class="glow-card red">
<div class="big-number" style="font-size:2em;">BTC &lt; 90K$</div>
<p>Le Bitcoin est pass&eacute; sous la barre symbolique des 90 000 dollars.</p>
</div>
</div>
<div>
<h3>Effets en cha&icirc;ne</h3>
<ul>
<li>Ru&eacute;e vers les retraits sur Bybit et d'autres exchanges</li>
<li>Plusieurs plateformes ont temporairement <strong>suspendu les retraits</strong></li>
<li>Panique g&eacute;n&eacute;ralis&eacute;e sur les march&eacute;s crypto</li>
<li>Les r&eacute;gulateurs de plusieurs pays ont ouvert des enqu&ecirc;tes sur la s&eacute;curit&eacute; des exchanges</li>
<li>Remise en question de la fiabilit&eacute; des solutions multisig tierces</li>
</ul>
</div>
</div>
<p class="source">Sources : CNA, CoinTelegraph, F&eacute;vrier 2025</p>
</section>
<!-- ============================================ -->
<!-- SLIDE 11 : R&eacute;ponse de Bybit -->
<!-- ============================================ -->
<section>
<h1>R&eacute;ponse de Bybit</h1>
<div class="glow-card">
<ul>
<li><span class="status-dot"></span><strong>D&eacute;tection rapide</strong> : l'incident a &eacute;t&eacute; identifi&eacute; en quelques heures</li>
<li><strong>Communication de crise</strong> : Bybit a publi&eacute; des communiqu&eacute;s transparents d&egrave;s le jour m&ecirc;me</li>
<li><strong>Bounty program</strong> : une prime a &eacute;t&eacute; offerte pour aider &agrave; tracer et r&eacute;cup&eacute;rer les fonds</li>
<li class="fragment"><strong>ZachXBT</strong>, analyste blockchain ind&eacute;pendant, a identifi&eacute; le Groupe Lazarus comme responsable en quelques heures, via des patterns de transactions reconnaissables</li>
<li class="fragment"><strong>Arkham Intelligence</strong> a confirm&eacute; l'attribution en tra&ccedil;ant les wallets vers des adresses li&eacute;es &agrave; des op&eacute;rations pr&eacute;c&eacute;dentes de Lazarus</li>
<li class="fragment">Le <strong>FBI</strong> a ensuite officiellement confirm&eacute; l'implication de la Cor&eacute;e du Nord</li>
</ul>
</div>
<div class="fragment">
<div class="matrix-quote">Bybit a d&eacute;clar&eacute; &ecirc;tre rest&eacute; <strong>solvable</strong> tout au long de la crise et a annonc&eacute; avoir r&eacute;cup&eacute;r&eacute; une partie des fonds vol&eacute;s.</div>
</div>
</section>
<!-- ============================================ -->
<!-- SLIDE 12 : Attribution &agrave; Lazarus -->
<!-- ============================================ -->
<section>
<h1>Attribution &agrave; Lazarus</h1>
<h2>Comment sait-on que c'est eux ?</h2>
<div class="two-cols">
<div>
<h3>Indices techniques</h3>
<ul>
<li>R&eacute;utilisation de wallets li&eacute;s &agrave; des hacks pr&eacute;c&eacute;dents (Axie Infinity, Horizon Bridge)</li>
<li>Patterns de blanchiment identiques : m&ecirc;me s&eacute;quence mixer/bridge/DEX</li>
<li>Infrastructure de commande et contr&ocirc;le (C2) recoup&eacute;e avec des op&eacute;rations ant&eacute;rieures</li>
<li>Timing et m&eacute;thodes coh&eacute;rents avec le modus operandi de BlueNorOff</li>
</ul>
</div>
<div>
<h3>Confirmations officielles</h3>
<div class="matrix-quote">
<ul>
<li><strong>ZachXBT</strong> : attribution publique en moins de 24h</li>
<li><strong>Arkham Intelligence</strong> : analyse on-chain confirmant les liens</li>
<li><strong>FBI</strong> : communiqu&eacute; officiel confirmant l'implication de la RPDC</li>
<li><strong>Chainalysis</strong> et <strong>Elliptic</strong> : rapports d&eacute;taill&eacute;s de tra&ccedil;age des fonds</li>
</ul>
</div>
<p>L'attribution en cybers&eacute;curit&eacute; est toujours d&eacute;licate, mais le faisceau de preuves ici est particuli&egrave;rement solide.</p>
</div>
</div>
</section>
<!-- ============================================ -->
<!-- SLIDE 13 : Comment se prot&eacute;ger ? -->
<!-- ============================================ -->
<section>
<h1>Comment se prot&eacute;ger ?</h1>
<div class="two-cols">
<div>
<h3>Pour les exchanges / entreprises</h3>
<ul>
<li>Auditer r&eacute;guli&egrave;rement les <strong>d&eacute;pendances tierces</strong> (supply chain security)</li>
<li>Impl&eacute;menter une approche <strong>zero-trust</strong> pour les outils de signature</li>
<li>V&eacute;rifier les transactions au niveau du hardware, pas seulement via une interface web</li>
<li>D&eacute;ployer du <strong>monitoring on-chain</strong> en temps r&eacute;el pour d&eacute;tecter les mouvements anormaux</li>
<li>Pratiquer des exercices de <strong>red team</strong> r&eacute;guliers</li>
</ul>
</div>
<div>
<h3>Pour les utilisateurs individuels</h3>
<ul>
<li>Utiliser des <strong>hardware wallets</strong> (Ledger, Trezor) pour les fonds importants</li>
<li>Ne jamais laisser de grosses sommes sur un exchange</li>
<li>Activer l'authentification multi-facteurs (MFA) partout</li>
<li>Se m&eacute;fier du <strong>phishing</strong> et de l'ing&eacute;nierie sociale</li>
<li>Diversifier les lieux de stockage</li>
</ul>
</div>
</div>
<hr class="matrix-hr">
<div class="matrix-quote">La le&ccedil;on principale de ce hack : <strong>la s&eacute;curit&eacute; d'un syst&egrave;me d&eacute;pend aussi de celle de ses prestataires</strong>.</div>
</section>
<!-- ============================================ -->
<!-- SLIDE 14 : Enjeux g&eacute;opolitiques -->
<!-- ============================================ -->
<section class="data-bg">
<h1>Enjeux g&eacute;opolitiques</h1>
<div class="two-cols">
<div>
<h3>Financement &eacute;tatique</h3>
<p>Les fonds vol&eacute;s ne servent pas &agrave; enrichir des individus. Ils alimentent directement les programmes <strong>nucl&eacute;aire</strong> et <strong>balistique</strong> de la Cor&eacute;e du Nord.</p>
<div class="matrix-quote">
<ul>
<li>~50% des revenus en devises de la RPDC proviendraient du cybercrime</li>
<li>Environ 1 700 membres dans la seule unit&eacute; BlueNorOff</li>
<li>Formation des hackers &agrave; l'universit&eacute; Kim Chaek et au Mirim College, avec un passage &agrave; Shenyang (Chine)</li>
</ul>
</div>
</div>
<div>
<h3>Cyberguerre asym&eacute;trique</h3>
<p>La Cor&eacute;e du Nord dispose de peu de ressources mat&eacute;rielles mais pr&eacute;sente une <strong>menace asym&eacute;trique</strong> consid&eacute;rable dans le cyberespace.</p>
<ul>
<li>Co&ucirc;t d'une op&eacute;ration cyber : faible</li>
<li>Rendement potentiel : milliards de dollars</li>
<li>Risque pour les op&eacute;rateurs : minimal (juridiction nord-cor&eacute;enne)</li>
<li>Difficult&eacute; d'attribution et de riposte pour les victimes</li>
</ul>
<p>Les sanctions internationales sont contourn&eacute;es par le cyberespace.</p>
</div>
</div>
<p class="source">Sources : US Army report 2020, Nations Unies, Recorded Future</p>
</section>
<!-- ============================================ -->
<!-- SLIDE 15 : Conclusion -->
<!-- ============================================ -->
<section>
<h1>Conclusion</h1>
<ul>
<li>Le Groupe Lazarus est l'une des menaces cyber les plus actives et les plus financi&egrave;rement d&eacute;vastatrices au monde</li>
<li>Le hack de Bybit (f&eacute;vrier 2025) est le plus gros vol de cryptomonnaies de l'histoire : <strong>1,5 milliard de dollars</strong></li>
<li>L'attaque a exploit&eacute; une faiblesse dans un <strong>outil tiers</strong> (Safe{Wallet}), pas directement dans les syst&egrave;mes de Bybit</li>
<li>La s&eacute;curit&eacute; de la supply chain logicielle est un enjeu critique pour toute organisation</li>
<li>Le cybercrime &eacute;tatique nord-cor&eacute;en repr&eacute;sente un d&eacute;fi g&eacute;opolitique majeur, &agrave; l'intersection de la cybers&eacute;curit&eacute;, de la finance et des relations internationales</li>
</ul>
<hr class="matrix-hr">
<p style="margin-top:1.5em;"><strong>En tant que futurs professionnels de l'informatique</strong>, comprendre ces attaques et les m&eacute;canismes de d&eacute;fense associ&eacute;s est essentiel, quelle que soit votre sp&eacute;cialisation.</p>
</section>
<!-- ============================================ -->
<!-- SLIDE 16 : Questions -->
<!-- ============================================ -->
<section class="end-slide">
<h1>Questions ?</h1>
<p class="terminal-line">echo "Merci de votre attention"</p>
<div style="margin-top:2em; text-align:left; max-width:600px; margin-left:auto; margin-right:auto;">
<h3>Sources principales</h3>
<ul style="font-size:0.65em;">
<li>Wikipedia : Lazarus Group</li>
<li>CoinTelegraph : "How the Bybit hack happened" (mars 2025)</li>
<li>Arkham Intelligence : attribution Lazarus</li>
<li>FBI : communiqu&eacute; officiel (f&eacute;vrier 2025)</li>
<li>Chainalysis : Crypto Crime Report 2024/2025</li>
<li>MITRE ATT&amp;CK : G0032 Lazarus Group</li>
<li>US Army : "North Korean Tactics" (ATP 7-100.2, 2020)</li>
</ul>
</div>
</section>
</div><!-- .slides -->
</div><!-- .reveal -->
<!-- Reveal.js scripts -->
<script src="node_modules/reveal.js/dist/reveal.js"></script>
<script src="node_modules/reveal.js/plugin/highlight/highlight.js"></script>
<script>
Reveal.initialize({
hash: true,
slideNumber: true,
progress: true,
center: false,
transition: 'fade',
transitionSpeed: 'fast',
plugins: [RevealHighlight],
width: 1280,
height: 720
});
// Matrix Rain Animation
(function() {
var canvas = document.getElementById('matrix-rain');
var ctx = canvas.getContext('2d');
function resize() {
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
}
resize();
window.addEventListener('resize', resize);
var chars = '01';
var fontSize = 14;
var columns = Math.floor(canvas.width / fontSize);
var drops = [];
for (var i = 0; i < columns; i++) {
drops[i] = Math.random() * canvas.height / fontSize;
}
function draw() {
ctx.fillStyle = 'rgba(0, 0, 0, 0.05)';
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = '#00ff41';
ctx.font = fontSize + 'px monospace';
for (var i = 0; i < drops.length; i++) {
var text = chars.charAt(Math.floor(Math.random() * chars.length));
ctx.fillText(text, i * fontSize, drops[i] * fontSize);
if (drops[i] * fontSize > canvas.height && Math.random() > 0.975) {
drops[i] = 0;
}
drops[i]++;
}
}
setInterval(draw, 50);
})();
</script>
</body>
</html>