Parent : [[INDEX-CYBERSECU]]
Extension Chrome malveillante - Distribution et tracking utilisateurs
Problème
Un site de torrents distribuait une extension Chrome (.crx) qui trackait massivement les utilisateurs : User ID, pseudonyme, IP, timestamps. Les logs montrent une collecte en temps réel (2025-12-25 04:06:07 | User: 13225478 (Tyuito) | IP: ...).
Contexte archive Ygg
- Fichier :
06e_tracking_users/extension_users.txt - Fichier :
06e_tracking_users/honeypot_turbo.txt - Extension :
navigateurs/extension_crx.zip - Users trackés : milliers d'entrées avec ID + Nickname + IP
Technique de l'attaquant
- Distribution : Extension Chrome packagée (.crx), distribuée via le site
- Collecte : Injection de script content-script qui lit le DOM/API interne
- Exfiltration : Envoi des données (User ID, pseudo, IP) vers endpoint externe
- Corrélation : Association ID utilisateur ↔ IP ↔ timestamp pour profiling complet
Comment se protéger (Pattern protectif)
1. Détection d'extension malveillante
// Détecter si une extension Chrome non autorisée est installée
function detectUnauthorizedExtensions() {
const knownBadExtensions = [
'extension_id_malveillant_1',
'extension_id_malveillant_2'
];
// Vérifier via chrome.management (nécessite permission)
if (typeof chrome !== 'undefined' && chrome.management) {
chrome.management.getAll(extensions => {
const suspicious = extensions.filter(ext =>
knownBadExtensions.includes(ext.id) ||
ext.permissions.includes('webRequest') && ext.permissions.includes('<all_urls>')
);
if (suspicious.length > 0) {
console.warn('Extension suspecte détectée:', suspicious.map(e => e.name));
}
});
}
}
2. Protection côté site web
// Détecter si le DOM est manipulé par un content script
const observer = new MutationObserver(mutations => {
mutations.forEach(mutation => {
mutation.addedNodes.forEach(node => {
if (node.nodeType === 1 && node.hasAttribute('data-extension-injected')) {
// Script injecté par extension
reportSuspiciousActivity('extension_injection');
}
});
});
});
observer.observe(document.body, { childList: true, subtree: true });
3. Ne JAMAIS faire confiance aux extensions
- Règle d'or : Toute extension avec accès
<all_urls>+webRequestpeut intercepter TOUT le trafic - Vérifier : N'installer que depuis Chrome Web Store (pas de .crx externe)
- Auditer : Reviewer les permissions demandées avant installation
Anti-pattern associé
KNOW-ANT-005— Extension-based user tracking
Signaux d'alerte
- Extension .crx distribuée hors Chrome Web Store
- Requêtes réseau vers domaines externes depuis content scripts
- DOM manipulation inexpliquée (éléments avec
data-*attributs suspects) - Extension demandant
<all_urls>+webRequest+storage
Tests
- Détecte-t-on les extensions avec permissions dangereuses ?
- Le site signale-t-il les injections DOM suspectes ?
- Les utilisateurs sont-ils avertis des extensions non officielles ?
Références
- Archive Ygg :
06e_tracking_users/,navigateurs/extension_crx.zip - Chrome Extension Security : https://developer.chrome.com/docs/extensions/security
- OWASP : Browser Extension Security