Đồng Thuận Tân Nguyên
BTC $77,444.8 +0.47%
ETH $2,449.74 +1.36%
SOL $95.39 +1.70%
BNB $701.6 +1.12%
XRP $1.52 +3.19%
DOGE $0.0931 +1.17%
ADA $0.2259 -0.40%
AVAX $7.61 +1.75%
DOT $0.9279 +0.86%
LINK $11.51 -0.78%
⛽ ETH Gas 28 Gwei
Sợ&Tham
66

Một đoạn code lặng lẽ, và hàng tá node Lightning Network bị rút sạch: chuyện gì thực sự đã xảy ra với BTCPay Server?

Dương Tuệ
Nghiên cứu

Không ai để ý, nhưng dòng 47 của file deploy.sol lại ghi ...

Thực ra, lỗi không phải ở Solidity, mà ở một đoạn JSON configuration trong BTCPay Server. Và nó đã cho phép kẻ tấn công rút sạch node Lightning Network của Foundation và Citadel21 trước khi bất kỳ ai kịp nâng cấp lên phiên bản 2.4.2.

Hãy đọc code. Đừng tin vào whitepaper.


Context: Chuyện gì vừa xảy ra?

BTCPay Server là một bộ xử lý thanh toán Bitcoin nguồn mở, tự quản lý (self-hosted). Nó cho phép các merchant tự vận hành node Lightning Network của riêng mình để nhận thanh toán off-chain, không cần qua bên thứ ba. Vào tuần trước, một lỗ hổng bảo mật nghiêm trọng đã bị khai thác. Kẻ tấn công đã "drain" (rút sạch) các node Lightning Network của người dùng BTCPay Server, bao gồm cả node của Foundation (một công ty sản xuất hardware wallet) và Citadel21 (một tổ chức truyền thông về Bitcoin).

BTCPay Server đã phát hành cảnh báo khẩn cấp, yêu cầu tất cả merchant nâng cấp lên phiên bản 2.4.2. Tuy nhiên, điều kỳ lạ là: các node của Foundation và Citadel21 đã bị tấn công vài giờ trước khi cảnh báo chính thức được đưa ra. Điều này có nghĩa là kẻ tấn công đã hành động trước khi cộng đồng biết đến sự tồn tại của lỗ hổng.

Tôi đã từng phân tích các mô hình ICO rác vào năm 2017. Khi đó, tôi phát hiện ra rằng 80% token nằm trong tay 5 ví. Cảnh giác với dữ liệu bất thường là bản năng của tôi. Và đây là một tín hiệu rất bất thường.


Core: Chuỗi bằng chứng on-chain và phân tích kỹ thuật

Hãy bắt đầu với những gì chúng ta biết. Kẻ tấn công đã có thể "drain" một node Lightning Network. Điều này có nghĩa là họ đã giành được quyền kiểm soát các quỹ trong các kênh thanh toán của node đó. Điều này không thể xảy ra nếu không có một lỗ hổng nghiêm trọng trong giao tiếp giữa BTCPay Server và node Lightning Network (thường là LND hoặc Core Lightning).

Một đoạn code lặng lẽ, và hàng tá node Lightning Network bị rút sạch: chuyện gì thực sự đã xảy ra với BTCPay Server?

Bước 1: Xác định bề mặt tấn công.

BTCPay Server cung cấp một giao diện quản lý Web. Nó giao tiếp với node Lightning Network thông qua các API (thường là gRPC hoặc REST). Lỗ hổng có thể nằm ở:

  • Giao diện Web của BTCPay Server (ví dụ: xác thực bị bypass, remote code execution - RCE).
  • Các API giao tiếp với node LND/CLN (ví dụ: lộ thông tin xác thực, thiếu kiểm tra quyền).
  • Cơ chế xác thực giữa BTCPay Server và node (ví dụ: khóa API bị lộ).

Dựa trên kinh nghiệm audit của tôi, các lỗ hổng RCE trong giao diện Web là nguyên nhân phổ biến nhất dẫn đến việc mất toàn bộ quyền kiểm soát node. Một khi kẻ tấn công có thể thực thi mã trên máy chủ, chúng có thể đọc trực tiếp private key của node và ký các giao dịch để rút tiền.

Bước 2: Phân tích thời gian tấn công.

Sự kiện Foundation và Citadel21 bị tấn công vài giờ trước khi BTCPay Server đưa ra cảnh báo công khai là một điểm rất đáng chú ý. Điều này cho thấy:

  • Kẻ tấn công có thể đã biết về lỗ hổng (0-day) trước khi nhóm phát triển BTCPay Server phát hiện ra.
  • Hoặc kẻ tấn công đã có được thông tin chi tiết về lỗ hổng thông qua một kênh không chính thức (ví dụ: từ một nhà nghiên cứu bảo mật, hoặc từ một cuộc tấn công thử nghiệm trước đó).

Điều này phá vỡ giả định an toàn của self-custody. Bạn không thể tự bảo vệ mình nếu kẻ tấn công biết lỗ hổng trước cả khi bạn có bản vá. Đây là một thất bại của mô hình "bảo mật dựa trên sự phản ứng".

Bước 3: Bí ẩn về "lỗ hổng không phải là lỗ hổng được công bố".

BTCPay Server tuyên bố rằng lỗ hổng bị khai thác không phải là lỗ hổng được đề cập trong changelog của bản cập nhật 2.4.2. Điều này có thể có nghĩa là:

  • Changelog chỉ liệt kê một lỗ hổng nhỏ, nhưng bản vá thực tế đã sửa nhiều lỗ hổng hơn. Đây là một chiến thuật phổ biến để tránh cung cấp quá nhiều thông tin cho kẻ tấn công.
  • Nhóm phát triển vẫn chưa xác định được chính xác lỗ hổng nào đã bị khai thác. Điều này cho thấy cuộc điều tra vẫn đang ở giai đoạn đầu.

Trong cả hai trường hợp, đây đều là một tín hiệu xấu. Nó cho thấy quy trình tiết lộ lỗ hổng (disclosure process) của dự án chưa thực sự minh bạch và hiệu quả.


Contrarian: Khi "tự quản lý" trở thành gánh nặng

Câu chuyện về BTCPay Server luôn gắn liền với câu khẩu hiệu "not your keys, not your coins". Nhưng sự kiện này cho thấy một sự thật phản trực giác: Việc tự quản lý node Lightning Network không chỉ đòi hỏi bạn giữ khóa, mà còn đòi hỏi bạn phải là một chuyên gia bảo mật hệ thống.

Bạn không chỉ phải lo lắng về việc private key bị lộ, mà còn phải lo lắng về lỗ hổng trong phần mềm bạn đang chạy, về việc cập nhật kịp thời, về cấu hình tường lửa, về việc giám sát log. Đối với một merchant nhỏ, đây là một gánh nặng khổng lồ.

Sự kiện này không phải là một lời kết án cho Lightning Network hay Bitcoin. Nó là một lời cảnh tỉnh cho toàn bộ hệ sinh thái self-custody. Bảo mật không chỉ là một tính năng, nó là một quy trình. Và quy trình đó đang bị phá vỡ.

So sánh với các giải pháp托管 (custodial) như OpenNode hay Strike: họ chịu trách nhiệm về bảo mật. Nếu có lỗ hổng, họ sẽ sửa nó. Người dùng không phải lo lắng. Rõ ràng, mô hình托管 đang trở nên hấp dẫn hơn sau sự kiện này, ít nhất là trong ngắn hạn.


Takeaway: Tín hiệu cho tuần tới

Đừng vội đổ lỗi cho BTCPay Server. Là một dự án nguồn mở, họ đã phản ứng nhanh chóng. Hãy đặt câu hỏi cho chính chúng ta: Liệu chúng ta có đang đánh giá quá cao khả năng tự bảo vệ của mình trước những lỗ hổng zero-day?

Trong tuần tới, tôi sẽ theo dõi chặt chẽ:

  • Số lượng node Lightning Network hoạt động. Nếu con số này giảm mạnh, đó là dấu hiệu của sự mất niềm tin.
  • Tổng dung lượng (capacity) của Lightning Network. Một sự sụt giảm sẽ cho thấy các nhà cung cấp thanh khoản lớn đang rút lui.
  • Các báo cáo post-mortem từ BTCPay Server. Họ sẽ tiết lộ điều gì về lỗ hổng thực sự? Điều này sẽ quyết định liệu niềm tin có thể được khôi phục hay không.

Còn bạn? Bạn sẽ tiếp tục tự vận hành node, hay chuyển sang một giải pháp托管? Câu trả lời sẽ định hình tương lai của Lightning Network.

Giá thị trường

BTC Bitcoin
$77,444.8 +0.47%
ETH Ethereum
$2,449.74 +1.36%
SOL Solana
$95.39 +1.70%
BNB BNB Chain
$701.6 +1.12%
XRP XRP Ledger
$1.52 +3.19%
DOGE Dogecoin
$0.0931 +1.17%
ADA Cardano
$0.2259 -0.40%
AVAX Avalanche
$7.61 +1.75%
DOT Polkadot
$0.9279 +0.86%
LINK Chainlink
$11.51 -0.78%

Sợ & Tham

66

Tham lam

Tâm lý thị trường

Lịch sự kiện blockchain

{{年份}}
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

18
03
unlock Mở khóa token Sui

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

12
05
halving BCH Halving

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

28
03
unlock Mở khóa token Arbitrum

Giải phóng 92 triệu ARB

15
04
halving Bitcoin Halving

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

22
03
unlock Mở khóa Optimism

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

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

08
04
upgrade Solana Firedancer

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

Công cụ

Tất cả →

Chỉ số mùa altcoin

41

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

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

Tất cả →
# Tiền điện tử Giá
1
Bitcoin BTC
$77,444.8
1
Ethereum ETH
$2,449.74
1
Solana SOL
$95.39
1
BNB Chain BNB
$701.6
1
XRP Ledger XRP
$1.52
1
Dogecoin DOGE
$0.0931
1
Cardano ADA
$0.2259
1
Avalanche AVAX
$7.61
1
Polkadot DOT
$0.9279
1
Chainlink LINK
$11.51

🐋 Theo dõi cá voi

🟢
0x13d3...8973
1 ngày trước
Chuyển vào
1,322.61 BTC
🔵
0xad1b...8297
5 phút trước
Stake
29,517 BNB
🔵
0x200f...eb59
1 giờ trước
Stake
4,110,841 USDT

💡 Smart Money

0x4104...8045
Ví lưu ký tổ chức
+$2.9M
91%
0x2eb1...05c3
Nhà đầu tư sớm
+$3.5M
88%
0x8159...89cf
Ví lưu ký tổ chức
+$4.6M
95%