Parent : [[INDEX-CYBERSECU]]
Anti-Pattern : Fingerprinting de wallets crypto navigateur sans consentement
Description
Scanner la présence de wallets crypto (window.phantom, window.ethereum, window.web3) dans le navigateur de l'utilisateur sans son consentement, via un script caché (déguisé en ImageCarouselManager), et envoyer ces informations au backend (/web3stats/collect) avec le user-agent, l'IP et le session_id. Cette technique permet d'identifier les utilisateurs possédant des wallets crypto pour des attaques ciblées ultérieures (phishing, vol de clés).
Exemple réel - Archive Ygg
// sci.js — detection de wallets (lignes 443-489)
const isPhantomInstalled = window.phantom?.solana?.isPhantom;
const provider = window.ethereum || window.web3?.currentProvider;
if (isPhantomInstalled || provider) {
const walletType = isPhantomInstalled ? 'Phantom' : detectWalletType(provider);
await sendWeb3Info(walletType); // POST → /web3stats/collect
}
function detectWalletType(provider) {
const walletTypes = {
isPhantom: 'Phantom',
isMetaMask: 'MetaMask',
isTrust: 'Trust Wallet',
isCoinbaseWallet: 'Coinbase Wallet',
isWalletConnect: 'WalletConnect'
};
return Object.entries(walletTypes)
.find(([key]) => provider[key])?.[1] || 'Unknown Wallet';
}
Backend : Web3stats.php (controller CodeIgniter, clé d'accès d3ShGIbbX3)
Tableau de bord : /web3stats?key=d3ShGIbbX3
Conséquences
- Profiling : Identification des utilisateurs possédant des wallets
- Ciblage : Phishing, attaques de clés privées
- Vol d'actifs : Préparation d'attaques de social engineering
- Violation de vie privée : Collecte non-consentie d'informations sensibles
Quand c'est acceptable
JAMAIS sans consentement explicite. Acceptable uniquement après opt-in clair (ex : "Autoriser la connexion wallet").
Solution
- Pas de scan automatique des wallets sans action utilisateur
- Consentement explicite avant toute connexion wallet
- Pas de collecte du type de wallet sans raison
- Site ne collecte pas le type de wallet, uniquement l'adresse (si nécessaire)
- Anonymisation des données (hash de l'adresse)
Voir KNOW-PAT-073 — Fingerprinting de wallets crypto navigateur.
Références
- Archive Ygg :
sci.js,Web3stats.php(YGGLeak) - OWASP : Privacy Risks