大门安全课 02|Gate & OneKey:如何防范钱包恶意授权与地址投毒
- 核心观点:链上钱包被盗往往源于用户此前签署的长期有效授权或地址投毒,而非私钥泄露;用户需区分“签名”与“确认”,养成定期撤销授权、核对完整地址、分离资产钱包的安全习惯。
- 关键要素:
- 授权签名不等于单次确认,一次Approve或Permit可被对方在额度内多次转走资产,无需再次确认;NFT的setApprovalForAll更可管理全部同类资产。
- 地址投毒利用用户从交易记录复制地址且只核对首尾的习惯,攻击者批量生成相似地址混入记录实施诈骗。
- 撤销授权和迁移资产是资产被盗时的首要动作,改密码、重装应用均无法阻止已生效的链上授权被继续使用。
- 链上“签名即终局”无中间拦截,交易平台则通过资金密码、动态验证、新地址冷静期、提现锁等多层缓冲降低风险。
- 建议资产分层管理:长期大额放交易账户或硬件冷钱包,小额交互用独立钱包,避免全部资产集中于高频连接DApp的热钱包。
- Gate安全团队建议开启防钓鱼码、绑定Passkey、定期检查API Key权限、调低提现日限额并按需开关出金通道。
Nửa năm trước, để nhận một airdrop, bạn đã nhấp vào "Xác nhận" trên một trang nào đó. Trong cửa sổ bật lên là một chuỗi ký tự không thể hiểu nổi, và bạn đã ký. Sự kiện kết thúc, bạn đóng trang web, sau đó còn gỡ cài đặt ứng dụng đó, thậm chí đã từng đổi máy tính một lần.
Hôm nay, số USDT trong ví của bạn biến mất. Khóa riêng tư của bạn không bị rò rỉ, cụm từ khôi phục vẫn luôn được khóa trong ngăn kéo, mật khẩu cũng chưa từng nói cho bất kỳ ai. Vậy thì vấn đề là: tiền đã gặp vấn đề ở khâu nào?
Đây là kỳ thứ hai của《Bài học an ninh Cổng Lớn》do Gate đặc biệt lên kế hoạch. Chúng tôi mời thương hiệu ví cứng mã nguồn mở OneKey và đội ngũ an ninh của Gate, từ hai góc nhìn là ví và nền tảng giao dịch, cùng bàn về vấn đề an ninh của việc cấp quyền ví on-chain và đầu độc địa chỉ.

Giới thiệu khách mời
OneKey: Được thành lập vào năm 2019, là một trong những thương hiệu ví lạnh cứng mã nguồn mở và ví App nổi tiếng toàn cầu, từ đầu đến cuối luôn kiên trì triết lý cứng rắn hoàn toàn mã nguồn mở. Mã nguồn cốt lõi phần mềm và phần cứng của họ được mở hoàn toàn trên GitHub để cộng đồng kiểm tra, và đều đã vượt qua kiểm toán an ninh của SlowMist và Offside Labs, nhận được sự tin tưởng của hàng trăm triệu tài sản, cùng sự hỗ trợ tài chính và ứng dụng từ các tổ chức hàng đầu.
OneKey App bao phủ máy tính để bàn, thiết bị di động và tiện ích mở rộng trình duyệt, có thể dùng độc lập như ví phần mềm, cũng có thể kết nối với ví cứng OneKey, và thông qua chip bảo mật, ký ngoại tuyến, phân tích giao dịch, cảnh báo rủi ro và ký dạng văn bản rõ ràng, giúp người dùng quản lý tài sản đa chuỗi mà không cần giao nộp khóa riêng tư và cụm từ khôi phục.
Đội ngũ an ninh Gate: Xin chào mọi người, đây là kỳ thứ hai của《Bài học an ninh Cổng Lớn》. Bộ phận an ninh của Gate phụ trách việc xây dựng hệ thống an ninh tài khoản, giao dịch và tài sản của nền tảng, đồng thời cũng xử lý lâu dài các khiếu nại tài khoản bất thường và yêu cầu hỗ trợ điều tra của người dùng.
Gate được thành lập vào năm 2013, là nền tảng giao dịch đầu tiên trong ngành ra mắt chứng minh dự trữ 100%, hiện đang phục vụ hơn 60 triệu người dùng trên toàn cầu. An ninh đối với chúng tôi không phải là một tính năng bổ sung, mà là tiền đề để công việc kinh doanh này có thể tồn tại. Chúng tôi hy vọng thông qua chuỗi khóa học《Bài học an ninh Cổng Lớn》này, có thể nói rõ cơ chế chung đằng sau những rủi ro thực tế mà người dùng có thể gặp phải.
Q1. Tại sao ví on-chain không cần lấy được khóa riêng tư mà vẫn có thể chuyển tài sản đi?
OneKey: Khóa riêng tư quyết định quyền ký, còn cấp quyền thì giao quyền thao tác nào đó cho hợp đồng hoặc địa chỉ. Ý định ban đầu của nhiều lần cấp quyền là tốt, có thể giúp người dùng tiết kiệm Gas, giảm thao tác lặp lại trên chuỗi, nhưng điều này cũng mang lại thuận lợi cho kẻ tấn công.
Việc cấp quyền bạn đã ký trước đây, tương đương với việc cho phép người khác sử dụng những tài sản này. Lấy ví dụ token ERC-20 trên các mạng EVM như Ethereum, khi sử dụng các ứng dụng như hoán đổi, cho vay, người dùng thường cần thực hiện một lần Approve, tức là cấp quyền. Nó cho phép địa chỉ hoặc hợp đồng được chỉ định, sử dụng một loại token nào đó của bạn trong một hạn mức nhất định. Sau khi cấp quyền có hiệu lực, đối phương có thể gọi transferFrom để chuyển token đi, không cần mỗi lần lại yêu cầu bạn xác nhận.
Ví dụ, bạn chuẩn bị hoán đổi 100 USDC, nhưng thực tế lại đưa ra cấp quyền vô hạn. Sau khi giao dịch kết thúc, quyền cấp còn lại có thể vẫn còn hiệu lực. Nếu bên được cấp quyền là kẻ tấn công, hoặc hợp đồng liên quan sau này xuất hiện lỗ hổng có thể bị lợi dụng, rủi ro sẽ không còn giới hạn ở 100 USDC của lần hoán đổi đó, mà có thể ảnh hưởng đến nhiều USDC hơn trong địa chỉ này.
NFT cũng có cơ chế tương tự. setApprovalForAll thường cho phép đối phương quản lý toàn bộ NFT bạn nắm giữ dưới cùng một hợp đồng NFT, chứ không chỉ một NFT bạn đang chuẩn bị bán.
Vì vậy chúng tôi khuyến nghị người dùng trước khi ký phải xác nhận từng mục về đối tượng được cấp quyền, tài sản, hạn mức và phạm vi hiệu lực, chỉ cần có một mục không rõ ràng thì đừng ký. Quan trọng hơn là phải sử dụng ví có khả năng phân tích chữ ký, hiểu rõ thứ bạn sắp ký là gì.
Đội ngũ an ninh Gate: OneKey đã nói rất chi tiết về cơ chế, điều chúng tôi muốn bổ sung chủ yếu là sự lệch lạc trong nhận thức của người dùng, vì đó là nguồn gốc căn bản nhất của loại rủi ro này: rất nhiều người dùng hiểu "ký" thành "xác nhận".
Trong internet truyền thống, nhấp một lần xác nhận là đồng ý thao tác lần này, thao tác kết thúc thì quyền hạn cũng kết thúc. Nhưng chữ ký cấp quyền on-chain không theo logic này. Sau khi ký một lần, đối phương trong phạm vi hạn mức có thể bất cứ lúc nào, nhiều lần, không cần bạn xác nhận lại mà chuyển tài sản đi. Thứ người dùng ký không phải là một giao dịch, mà giống như một bản ủy thác có hiệu lực lâu dài.
Ở đây còn có một khác biệt khó thấy hơn. Permit và Permit2 thuộc loại ký ngoài chuỗi, nó không tạo ra giao dịch on-chain, không tiêu tốn Gas, cửa sổ bật lên trong ví thường cũng chỉ hiển thị một chuỗi ký tự không thể hiểu nổi. Trực giác của người dùng là "thao tác không tốn tiền thì chắc không có rủi ro gì", nhưng thực tế sát thương của loại chữ ký này hoàn toàn giống với cấp quyền on-chain.

Cụ thể đến công cụ của Gate, đừng vội kết nối với hợp đồng lạ. Có thể ném địa chỉ hợp đồng vào kiểm toán hợp đồng của Gate AI trước, để nó đưa ra một báo cáo rủi ro có cấu trúc, các bẫy phổ biến như quyền của chủ sở hữu, danh sách đen, phát hành thêm, thuế chuyển khoản sẽ được đánh dấu trước, bao phủ hơn 57 loại lỗ hổng. Đến bước ký, phải nhìn rõ đang cấp quyền cho token nào, số lượng bao nhiêu, dự án nào, hỗ trợ ký gì thấy nấy, dùng xong thì thu hồi cấp quyền kịp thời.
Q2. Những mồi nhử phổ biến nhất đối với người dùng thông thường là gì? Khi thấy những trang như vậy, làm thế nào để phán đoán có nên kết nối ví hay không?
OneKey: Những mồi nhử phổ biến thường xoay quanh hai loại cảm xúc: khiến bạn cảm thấy có lợi có thể chiếm, hoặc khiến bạn lo lắng nếu không thao tác sẽ bị mất mát. Loại trước là airdrop, danh sách trắng, đúc miễn phí, hoàn tiền bồi thường; loại sau là tài khoản bất thường, nâng cấp an ninh, di chuyển token, tài sản sắp bị đóng băng. Cách ngụy trang có thể khác nhau, nhưng cuối cùng đều dẫn bạn đến một trang cần kết nối ví, ký hoặc chuyển tiền.
Chúng tôi khuyến nghị người dùng sử dụng ví có khả năng kiểm tra an ninh trang web, thông thường trang chính thức sẽ có chứng nhận, những trang không có chứng nhận hoặc có cảnh báo lừa đảo thì đừng kết nối.
Và kết nối ví thường chỉ là điểm bắt đầu, chữ ký sau đó mới tạo ra quyền hạn cụ thể. Trước tiên hãy kiểm tra tên miền đầy đủ và mục đích thao tác, sau đó xem hợp đồng, phương thức, hạn mức cấp quyền và Spender. Nhận một phần thưởng, nhưng lại yêu cầu mở hạn mức vô hạn cho tài sản không liên quan, thì nên thoát ngay lập tức. Dữ liệu thập lục phân không thể phân tích, thông điệp EIP-712 không rõ ràng và việc liên tục thúc giục cũng đáng cảnh giác.
Khi thử nghiệm DApp lạ có thể dùng ví nhỏ tách biệt, ví tiết kiệm dài hạn thì cố gắng không kết nối với dự án.
Đội ngũ an ninh Gate: Từ các trường hợp chúng tôi xử lý, rủi ro ở điểm vào thường cao hơn bản thân trang web. Tức là điều chúng tôi đã tập trung nói ở kỳ đầu《Bài học an ninh Cổng Lớn》: không thể nhấp link bừa, đặc biệt là link từ tin nhắn riêng, nhóm chat, vị trí quảng cáo trên công cụ tìm kiếm, là ba nguồn phổ biến nhất của trang web lừa đảo. Điểm quảng cáo trên công cụ tìm kiếm cần đặc biệt nhấn mạnh, nhiều người mặc định kết quả đầu tiên trong tìm kiếm là trang chính thức, nhưng vị trí quảng cáo có thể mua được, đây là một trong những cách dẫn lưu phổ biến nhất của trang lừa đảo.
Mặc dù hành động kết nối ví本身 có rủi ro thấp, nhưng không có nghĩa là hoàn toàn không có rủi ro. Cùng với việc kẻ tấn công nâng cấp thủ đoạn kỹ thuật, trong nhiều trường hợp ví on-chain bị đánh cắp, đã có không ít trường hợp sau khi vào trang web lừa đảo盗版 không ký gì, chỉ kết nối ví mà tài sản đã bị đánh cắp, vì vậy người dùng ở bước nhấp vào địa chỉ URL ban đầu nhất định phải cẩn thận hơn nữa.
Cách làm đáng tin cậy hơn là thêm các ứng dụng thường dùng vào dấu trang trình duyệt, sau đó mỗi lần vào từ dấu trang. Thói quen này có thể tránh được phần lớn các cuộc tấn công dẫn lưu và trang chính thức giả mạo, đây là chi phí phòng chống đúng nhất đối với người dùng. Ở đây cũng xin nhắc lại một lần nữa: kẻ tấn công thường lấy uy tín của nền tảng giao dịch để bảo chứng cho mình. Họ sẽ nói "Gate đã niêm yết token này", "Gate đang tiến hành airdrop", dùng danh nghĩa nền tảng để khiến một dự án rỗng trông đáng tin.
Lúc này tiêu chuẩn phán đoán thực ra rất đơn giản: tất cả thông báo chính thức của Gate đều sẽ được đồng bộ trên trang thông báo của website. Nếu một thông tin chỉ xuất hiện trên một tài khoản xã hội nào đó, tra trên website không thấy, thì khả năng cao là có vấn đề. Phán đoán này không cần bất kỳ kiến thức kỹ thuật nào, cũng không cần người dùng biết xem hợp đồng.
Nếu người dùng nhận được email, SMS hoặc tin nhắn riêng tự nhận là từ Gate, có thể tra cứu trênkênh xác minh chính thứcxem tên miền hoặc email liên hệ này có phải của chúng tôi hay không, thao tác này chỉ mất mười mấy giây. Ngoài ra, người dùng có thể thiết lập một chuỗi mã chống lừa đảo của riêng mình trong tài khoản.


