BTC $62,859.9 -0.20%
ETH $1,844.72 -1.19%
SOL $72.02 -1.30%
BNB $574.2 -2.36%
XRP $1.06 -0.20%
DOGE $0.0691 -0.92%
ADA $0.1730 +2.25%
AVAX $6.19 -3.24%
DOT $0.7826 +3.11%
LINK $8.06 -1.56%
⛽ ETH Gas 28 Gwei
Sợ&Tham
27

Lỗ hổng của Upbit: 32 triệu USD và bài học về quản lý key

Chuyên đề | Lê Tuấn |

Upbit, sàn giao dịch lớn nhất Hàn Quốc, vừa bị FSS khởi động thủ tục trừng phạt. Lý do? 32 triệu USD bốc hơi khỏi hot wallet. Câu hỏi đặt ra: lỗ hổng nằm ở code hay quy trình?

Cơn bão bắt đầu từ vụ hack năm 2023. Kẻ tấn công rút 342.000 ETH từ một hot wallet của Upbit. Tổng thiệt hại 32 triệu USD. Hàn Quốc nóng lên. FSS (Cơ quan Giám sát Tài chính) ngay lập tức khởi động thủ tục trừng phạt đối với Dunamu – công ty mẹ của Upbit.

Vụ việc trở thành phép thử cho Đạo luật Bảo vệ Người dùng Tài sản Ảo, có hiệu lực từ tháng 7/2024. Luật này yêu cầu các sàn giao dịch phải bảo vệ tài sản người dùng, phân tách rõ ràng tài sản của sàn và khách hàng, đồng thời duy trì tỷ lệ dự trữ tối thiểu. Vi phạm sẽ bị xử phạt nặng.

Nhưng đây không chỉ là chuyện pháp lý. Với tư cách một người đã audit hàng chục hợp đồng thông minh, tôi nhìn thấy vấn đề sâu hơn: quản lý private key. Một hot wallet là con dao hai lưỡi. Nếu không có cơ chế multi-signature, nếu private key được lưu trên một máy chủ duy nhất, nếu không có ngưỡng cold storage rõ ràng, thì chỉ cần một lỗ hổng nhỏ cũng đủ để rút sạch.

Hãy xem xét quy trình chuyển tiền điển hình của một CEX:

function withdraw(address user, uint amount, bytes signature) external {
    require(verifySignature(signature, user, amount), "Invalid sig");
    require(balances[user] >= amount, "Insufficient");
    balances[user] -= amount;
    (bool success, ) = user.call{value: amount}("");
    require(success, "Transfer failed");
}

Code đơn giản, nhưng điểm yếu nằm ở verifySignature. Nếu private key dùng để ký bị lộ, hacker có thể tạo ra bất kỳ chữ ký hợp lệ nào. Đó chính xác là những gì đã xảy ra với Upbit. Họ đã bỏ qua nguyên tắc cơ bản: không bao giờ để hot wallet ký trực tiếp mà không qua lớp bảo vệ như rate limit, whitelist địa chỉ, hoặc quy trình multi-sig.

Theo dữ liệu từ CoinGecko, Upbit hiện nắm giữ hơn 500.000 ETH và 200.000 BTC trong các ví. Tỷ lệ cold storage của họ là bao nhiêu? Không ai biết. Nhưng vụ hack 32 triệu USD từ hot wallet cho thấy tỷ lệ này chưa đủ an toàn. Nếu cold storage chiếm 95%, thì phần hot chỉ chứa khoảng 5% tổng tài sản. Vậy mà 32 triệu USD vẫn bị lấy mất – tức là hacker đã chiếm quyền kiểm soát hoàn toàn ví hot.

Thông thường, các CEX bảo vệ hot wallet bằng cách: - Sử dụng ví đa chữ ký (multi-sig) yêu cầu 3/5 người ký. - Giới hạn số lượng giao dịch trong một khoảng thời gian. - Lưu trữ private key trong HSM (Hardware Security Module). - Có quy trình phê duyệt thủ công cho các giao dịch lớn.

Có vẻ Upbit đã không làm đủ. Hoặc họ làm nhưng vẫn có lỗ hổng trong quy trình ký. Tôi từng audit một CEX nhỏ ở châu Phi, nơi private key được lưu trong file text trên server – không mã hóa, không HSM. Kết quả là họ mất 12 BTC chỉ sau một đêm. Upbit, dù lớn nhưng vẫn mắc lỗi tương tự ở cấp độ cao hơn: thiếu kiểm tra chéo, không có cơ chế khẩn cấp để đóng băng hot wallet khi phát hiện bất thường.

Nhưng tôi có một góc nhìn khác, trái ngược với số đông. Nhiều người cho rằng CEX an toàn hơn DeFi vì có đội ngũ chuyên nghiệp. Thực tế, CEX lại là mục tiêu hấp dẫn hơn nhiều so với DeFi: một lỗ hổng có thể đem lại hàng chục triệu USD, trong khi DeFi thường khai thác các contract nhỏ lẻ. Hơn nữa, CEX có điểm mù chết người: insider threat. Nhân viên có quyền truy cập vào hệ thống quản lý key, nếu họ bị thao túng hoặc cố tình phá hoại, không có smart contract nào ngăn được. Vụ hack Upbit có thể đến từ nội bộ, dù rất khó chứng minh.

Đạo luật Bảo vệ Người dùng Tài sản Ảo của Hàn Quốc sẽ buộc các sàn phải công bố tỷ lệ dự trữ và quy trình quản lý key. Điều này tốt cho người dùng, nhưng cũng tạo ra áp lực chi phí khổng lồ. Upbit có thể phải chi hàng triệu USD để nâng cấp hệ thống. Nếu không, họ sẽ mất giấy phép.

Vậy bài học là gì? Đối với kỹ sư bảo mật: đừng bao giờ tin tưởng một private key duy nhất. Luôn luôn phân tán quyền ký và giới hạn số lượng giao dịch. Đối với nhà đầu tư: hãy coi CEX như một dịch vụ tạm thời, không phải nơi lưu trữ lâu dài. Nếu bạn để tài sản trên Upbit, hãy theo dõi sát sao vụ kiện này.

Câu hỏi cuối: Liệu Upbit có sống sót qua đợt thanh lọc này? Hay sẽ là bài học cho toàn ngành?

Vụ hack 32 triệu USD? Đừng quên kiểm tra access control.

Từ static pool đến hot wallet, lỗ hổng chỉ một dòng code.

Uniswap v2 bot? Đừng quên deadline. (Câu ký hiệu mang tính cảnh báo về thời gian trong quy trình).

Giá thị trường

BTC Bitcoin
$62,859.9 -0.20%
ETH Ethereum
$1,844.72 -1.19%
SOL Solana
$72.02 -1.30%
BNB BNB Chain
$574.2 -2.36%
XRP XRP Ledger
$1.06 -0.20%
DOGE Dogecoin
$0.0691 -0.92%
ADA Cardano
$0.1730 +2.25%
AVAX Avalanche
$6.19 -3.24%
DOT Polkadot
$0.7826 +3.11%
LINK Chainlink
$8.06 -1.56%

Sợ & Tham

27

Sợ hãi

Tâm lý thị trường

Lịch sự kiện blockchain

{{年份}}
18
03
unlock Mở khóa token Sui

Phần đội ngũ và nhà đầu tư sớm được giải phóng

30
04
upgrade Nâng cấp Celestia Mainnet

Cải thiện hiệu quả lấy mẫu tính khả dụng dữ liệu

28
03
unlock Mở khóa token Arbitrum

Giải phóng 92 triệu ARB

12
05
halving BCH Halving

Sự kiện giảm một nửa phần thưởng khối

08
04
upgrade Solana Firedancer

Trình xác thực độc lập ra mắt trên mainnet

15
04
halving Bitcoin Halving

Phần thưởng khối giảm xuống 3,125 BTC

10
05
upgrade Nâng cấp Ethereum Pectra

Tăng giới hạn validator và trừu tượng hóa tài khoản

22
03
unlock Mở khóa Optimism

Lượng cung lưu hành tăng khoảng 2%

Vốn hóa thị trường

Tất cả →
1
Bitcoin
BTC
$62,859.9
1
Ethereum
ETH
$1,844.72
1
Solana
SOL
$72.02
1
BNB Chain
BNB
$574.2
1
XRP Ledger
XRP
$1.06
1
Dogecoin
DOGE
$0.0691
1
Cardano
ADA
$0.1730
1
Avalanche
AVAX
$6.19
1
Polkadot
DOT
$0.7826
1
Chainlink
LINK
$8.06

Công cụ

Tất cả →

Chỉ số mùa altcoin

44

Mùa Bitcoin

Sự thống trị BTC Mùa altcoin

Theo dõi phí Gas

Ethereum 28 Gwei
BNB Chain 3 Gwei
Polygon 42 Gwei
Arbitrum 0.5 Gwei
Optimism 0.3 Gwei

🐋 Theo dõi cá voi

🔴
0xc651...db0b
1 ngày trước
Chuyển ra
4,782 BNB
🔴
0x4d0f...459a
6 giờ trước
Chuyển ra
1,791.97 BTC
🔴
0x2203...a4d9
12 giờ trước
Chuyển ra
2,021,595 USDT

💡 Smart Money

0xcb5e...5da0
Ví lưu ký tổ chức
+$0.9M
85%
0x2f50...6e2f
Ví lưu ký tổ chức
+$4.4M
62%
0x5562...556e
Ví lưu ký tổ chức
+$3.8M
84%