BTC $79,316.9 -0.44%
ETH $2,451.68 -0.15%
SOL $101.06 -1.36%
BNB $714 -0.63%
XRP $1.4 -0.69%
DOGE $0.0846 -0.74%
ADA $0.2127 -0.28%
AVAX $7.36 -0.04%
DOT $0.8521 -3.08%
LINK $11.61 -0.04%
⛽ ETH Gas 28 Gwei
Sợ&Tham
74

Khi Tự Quản Lý Trở Thành Gánh Nặng: Phân Tích Sự Kiện BTCPay Server Bị Rút Sạch Node Lightning

Phan Vĩnh
Hàng tuần

Ngày thứ Sáu tuần trước, một số node Lightning Network chạy BTCPay Server bắt đầu đổ về zero. Foundation – một công ty sản xuất ví cứng – và Citadel21 – một media liên quan đến Bitcoin Magazine – đều báo cáo node của họ bị rút sạch. Hai giờ trước đó, BTCPay Server chưa hề đưa ra cảnh báo công khai. Đây là một zero-day đang được khai thác tích cực, và nó không phải là lỗ hổng được ghi trong changelog của bản vá 2.4.2.

Có một khoảng lặng kỳ lạ giữa lúc các node bị tấn công và lúc cảnh báo được phát đi. Tôi đã từng audit một hợp đồng ICO vào năm 2017, nơi lỗi transferFrom bị bỏ qua vì "kịp tiến độ". Hậu quả: 100 ETH bay màu. Ở đây, kịch bản lặp lại nhưng với quy mô lớn hơn: một lỗ hổng trong phần mềm tự quản lý thanh toán Bitcoin, và kẻ tấn công đã biết trước.

BTCPay Server là một phần mềm mã nguồn mở cho phép các merchant tự chạy node Lightning để nhận thanh toán off-chain. Nó là lá cờ đầu của phong trào "not your keys, not your coins" trong lĩnh vực thanh toán. Nhưng chính xác vì là tự quản lý, mọi trách nhiệm bảo mật đều đổ lên vai người dùng. Khi lỗ hổng xuất hiện, không có đội ngũ bảo mật 24/7, không có bảo hiểm. Chỉ có một bản vá và hy vọng merchant cập nhật kịp.

Phân tích kỹ thuật: lỗ hổng nằm ở đâu?

Dựa trên thông tin hiện có, tôi đặt giả thuyết lỗ hổng nằm ở giao diện giữa BTCPay Server và node Lightning (LND hoặc CLN). Cụ thể, có thể là một RCE (remote code execution) thông qua API quản lý, hoặc một authentication bypass cho phép kẻ tấn công gửi lệnh rút tiền. Việc Foundation – một công ty bảo mật – cũng bị tấn công cho thấy lỗ hổng không phải do cấu hình yếu kém, mà là vấn đề cốt lõi trong code.

BTCPay Server phiên bản 2.4.2 đã được phát hành để vá lỗ hổng. Nhưng điều đáng nói: BTCPay chính thức xác nhận lỗ hổng bị khai thác không phải là lỗ hổng được ghi trong changelog. Điều này có nghĩa: hoặc đội ngũ phát triển cố tình che giấu thông tin để tránh kẻ tấn công biết thêm chi tiết, hoặc họ chưa xác định được chính xác vector tấn công. Trong cả hai trường hợp, đây là một thất bại trong chiến lược tiết lộ lỗ hổng.

Tôi đã từng viết một báo cáo 40 trang về impermanent loss trên Uniswap V2, và tôi biết giá trị của việc công bố chi tiết kỹ thuật đúng lúc. Ở đây, việc không công bố đầy đủ làm suy yếu lòng tin của cộng đồng – vốn là tài sản quý giá nhất của một dự án mã nguồn mở.

Tác động đến nền kinh tế node Lightning

BTCPay Server không có token, nên không có chuyện giá token sụp đổ. Nhưng thiệt hại thực tế là số Bitcoin trong các channel bị rút sạch. Đối với merchant, đó có thể là doanh thu nhiều ngày. Đối với Foundation, đó là một vết đen trong danh tiếng. Và đối với toàn bộ hệ sinh thái Lightning, đây là một hồi chuông cảnh tỉnh.

Chi phí ẩn của việc tự quản lý node là chi phí bảo mật. Khi một merchant so sánh giữa BTCPay (tự quản lý, phí gần như 0) và OpenNode (quản lý hộ, phí 1%), họ thường chỉ nhìn thấy con số 1% kia. Nhưng sự kiện này cho thấy chi phí bảo mật tự quản lý có thể lên đến 100% số dư trong node. Đối với các merchant nhỏ, một lần mất sạch là đủ để kết thúc hành trình Bitcoin.

Trái ngược với niềm tin phổ biến

Nhiều người cho rằng tự quản lý là an toàn hơn nhờ "không có bên thứ ba gian lận". Nhưng sự thật là: tự quản lý chỉ an toàn khi bạn có đủ năng lực kỹ thuật để bảo vệ hệ thống. Lỗ hổng phần mềm là rủi ro hệ thống mà không ai tránh khỏi. Foundation, dù là công ty bảo mật, vẫn bị hack. Điều này chứng minh rằng "cứng hóa" node không phải là chuyện đơn giản.

Tương lai của Lightning Network sau sự kiện này

Tôi dự đoán rằng trong vòng 6-12 tháng tới, số lượng node Lightning do cá nhân vận hành sẽ giảm, trong khi các dịch vụ托管 (custodial Lightning) sẽ tăng trưởng. Điều này đi ngược lại tinh thần phi tập trung, nhưng lại là phản ứng tự nhiên của thị trường: người dùng chọn sự tiện lợi và an toàn hơn là lý tưởng.

BTCPay Server cần phải thay đổi. Họ cần tích hợp cơ chế tự động cập nhật bảo mật, hoặc ít nhất là cảnh báo mạnh mẽ hơn khi có lỗ hổng nghiêm trọng. Một bản vá phát hành vào thứ Sáu và hy vọng mọi người cập nhật trước cuối tuần là không đủ. Kẻ tấn công đã tận dụng khoảng thời gian vàng đó.

Tự quản lý là một đặc ân, không phải là quyền. Đặc ân này đi kèm với trách nhiệm bảo mật mà không phải ai cũng đảm đương được. Sự kiện BTCPay Server là một lời nhắc nhở: không có phần mềm nào là hoàn hảo, và không có niềm tin nào là miễn nhiễm với lỗi của con người. Kẻ tấn công không cần phải phá vỡ mã hóa Bitcoin; chúng chỉ cần tìm một lỗ hổng trong lớp ứng dụng.