🚨 Cảnh báo bảo mật
Hai Chrome extension phổ biến trong cộng đồng crypto — xHunt và Frontrun Pro — vừa bị phân tích code chi tiết. Kết quả: xHunt gửi IP, vị trí, ISP, fingerprint thiết bị, và mọi URL bạn truy cập trên Twitter về server riêng. Có sẵn wallet injection function chờ kích hoạt. "Open source" không có nghĩa là an toàn.
Bối cảnh: Hai extension "ai cũng dùng"
Nếu bạn hoạt động trong cộng đồng Crypto Twitter (CT), rất có thể bạn đang dùng — hoặc đã từng dùng — một trong hai extension này:
- xHunt: Extension theo dõi ví, phân tích on-chain activity ngay trên Twitter. Cực kỳ phổ biến trong cộng đồng Trung Quốc.
- Frontrun Pro: Extension overlay data crypto trực tiếp trên các platform. Hook vào Twitter và 8+ sàn giao dịch.
Cả hai đều claim "open source" trên GitHub. Và đó chính xác là lý do hàng trăm nghìn người tin tưởng cài đặt. Vấn đề là: open source ≠ đã được audit. Và khi một security researcher thực sự đọc code, những gì tìm được khiến người ta rùng mình.
xHunt: "Chỉ lưu local" — Một lời nói dối trắng trợn
README chính thức của xHunt tuyên bố: "local-only data storage, no sensitive information uploads". Đây là lời nói dối 100%.
Khi phân tích actual code, researcher phát hiện:
1. Gửi toàn bộ thông tin cá nhân về server
Mỗi API call của xHunt đều gửi về server kb.xhunt.ai:
- IP thật của bạn (gọi 4 dịch vụ khác nhau: ipapi.co, ip-api.com, ipinfo.io, ipify.org)
- Thành phố bạn đang ở
- ISP (nhà mạng internet)
- Device fingerprint (FingerprintJS — định danh thiết bị duy nhất)
- Mọi URL bạn truy cập trên Twitter
Nói cách khác: xHunt biết bạn là ai, ở đâu, dùng mạng gì, và đang xem gì trên Twitter. Mọi lúc.
2. Code obfuscation có chủ đích
xHunt dùng RC4 encryption và String.fromCharCode arrays để giấu tên các HTTP headers quan trọng như authorization, x-user-id, x-window-location-href.
"Legitimate developers don't do that." — Nếu code của bạn sạch, tại sao phải giấu nó?
Đây không phải minification (nén code cho performance). Đây là cố tình che giấu behavior — một red flag cực lớn trong bất kỳ phần mềm nào, đặc biệt là extension có quyền truy cập browser.
3. HTTP proxy không giới hạn
Trong background script, xHunt có một EXECUTE_REQUEST handler hoạt động như một HTTP proxy hoàn toàn không giới hạn. Zero URL validation.
Điều này có nghĩa: bất kỳ code nào (kể cả code được push từ server) có thể ra lệnh cho browser của bạn fetch bất kỳ thứ gì — local network, cloud metadata, internal APIs. Browser của bạn trở thành proxy cho attacker.
4. Wallet injection — "Quả bom hẹn giờ"
💀 Phát hiện nghiêm trọng nhất
Trong code có một empty wallet injection function, đã được wired up với quyền world:MAIN. Function này hiện tại trống — nhưng infrastructure đã sẵn sàng. Chỉ cần một lần push config từ server (qua Alibaba Nacos), function này có thể inject code vào bất kỳ trang web nào bạn truy cập, bao gồm các sàn giao dịch crypto.
5. Remote config — Thay đổi mà bạn không biết
xHunt dùng Alibaba Nacos cho remote configuration. Nghĩa là developer có thể thay đổi behavior của extension bất cứ lúc nào, trong vài phút, mà không cần qua Chrome Web Store review.
Hôm nay extension an toàn. Ngày mai? Không ai biết.
Frontrun Pro: Ít nguy hiểm hơn — nhưng vẫn đáng lo
🔴 xHunt
- Gửi IP, city, ISP, fingerprint về server
- Track mọi URL trên Twitter
- Code obfuscation (RC4 + fromCharCode)
- Unrestricted HTTP proxy
- Wallet injection function sẵn sàng
- Remote config (Alibaba Nacos)
🟡 Frontrun Pro
- Hook 12 X GraphQL endpoints
- Monkey-patch fetch/XHR/WebSocket trên 8+ platform
- Gửi platform name tới Amplitude
- Login → gửi email + name tới Amplitude
- Error logs gửi device ID + user agent
- Remote feature flags (GrowthBook)
Frontrun hook vào 12 Twitter GraphQL endpoints: feed, followers, following, searches, community posts — tất cả. Nó cũng monkey-patch fetch, XHR, và WebSocket trên hơn 8 crypto platforms.
Điểm khác biệt chính: data intercepted từ Twitter và crypto platforms chủ yếu ở lại local browser (cho overlay UI). Frontrun không gửi hết về server như xHunt.
Tuy nhiên, Frontrun vẫn:
- Gửi tên platform bạn truy cập tới Amplitude (analytics)
- Khi bạn login: gửi email và tên bạn tới Amplitude
- Khi có error: upload logs kèm device ID và user agent
- Dùng GrowthBook cho remote feature flags — có thể thay đổi behavior server-side
Tại sao "Open Source" không đủ?
Cộng đồng crypto có một niềm tin nguy hiểm: "open source = safe". Thực tế:
- Ai thực sự đọc code? 99.9% users chỉ thấy "open source" trên README rồi tin. Không ai clone repo xuống audit cả.
- Code trên GitHub ≠ code trong extension: Published extension có thể khác với repo. Chrome Web Store không verify sự khớp này.
- Remote config bypass everything: Dù code trên GitHub sạch, remote config có thể push thay đổi bất kỳ lúc nào mà không cần update extension.
- Permissions quá rộng: Chrome extensions có quyền cực lớn — đọc mọi tab, inject script, modify requests. Đó là design của Chrome, không phải bug.
Rủi ro thực tế cho crypto users
Nếu bạn đang dùng xHunt, hãy hiểu rõ rủi ro:
- Deanonymization: IP + city + ISP + device fingerprint = bạn bị identify hoàn toàn. Kết hợp với Twitter activity = biết bạn quan tâm token nào, follow ai, xem gì.
- Targeted attacks: Biết bạn dùng sàn nào + hold token gì = phishing email cực kỳ targeted.
- Wallet drain (tiềm ẩn): Wallet injection function đã sẵn sàng. Một ngày đẹp trời, developer push config → extension inject malicious code vào trang sàn giao dịch → approve transaction → mất tiền.
- Browser as proxy: Unrestricted HTTP proxy nghĩa là browser của bạn có thể bị dùng để tấn công local network hoặc scan infrastructure.
Cần làm gì ngay?
🛡️ Hành động khuyến nghị
- Gỡ xHunt NGAY — risk/reward không đáng. Functionality của nó có thể thay thế bằng các tool on-chain khác (Arkham, Nansen, DeBank).
- Đánh giá lại Frontrun — ít nguy hiểm hơn nhưng vẫn track nhiều. Nếu không thực sự cần, gỡ bỏ.
- Audit extensions định kỳ: Vào
chrome://extensions, xem lại quyền của mỗi extension. Hỏi: "Extension này có cần quyền này không?" - Tách browser: Dùng browser riêng cho crypto (sàn, wallet) và browser khác cho browsing thường. Không cài extension không cần thiết trên crypto browser.
- Hardware wallet: Dù browser bị compromise, hardware wallet vẫn yêu cầu physical confirmation. Đây là lớp bảo vệ cuối cùng.
Kết luận: Trust nhưng verify — hay tốt hơn: đừng trust
Bài học lớn nhất: convenience luôn có giá. xHunt cho bạn data on-chain tiện lợi trên Twitter. Đổi lại, nó biết mọi thứ về bạn và có khả năng drain wallet bất cứ lúc nào.
Trong crypto, mỗi extension bạn cài là một attack surface mới. Mỗi permission bạn grant là một cánh cửa mở. Và khi tiền của bạn nằm trong browser wallet, mỗi cánh cửa mở là một rủi ro.
Minimalism không chỉ là phong cách sống. Trong crypto security, nó là chiến lược sinh tồn.