BTC
$96,000
5.73%
ETH
$3,521.91
3.97%
HTX
$0.{5}2273
5.23%
SOL
$198.17
3.05%
BNB
$710
3.05%
lang
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
Trang chủ
AI AI
Tin nhanh
Bài viết
Sự kiện
BlockBeats Pro
Thêm
Thông tin tài chính
Chuyên đề
Hệ sinh thái chuỗi khối
Mục nhập
Podcast
Data
OPRR
Partnered With:

Phân tích lỗ hổng mới nhất của Lightning Network: Chỉ cần 85 nút để đánh cắp tiền của kênh nút Lightning

Đọc bài viết này mất 29 phút
Chỉ cần 85 nút Lightning Network bị tấn công để đánh cắp tiền của người dùng và hiện tại chưa có giải pháp hoàn chỉnh.

Tiêu đề gốc: "Phân tích lỗ hổng mới nhất của Lightning Network: Chỉ 85 nút có thể bị tấn công để đánh cắp quỹ của kênh Lightning Node"

Nguồn gốc: Babbitt



Giới thiệu: Aviv Zohar, phó giáo sư tại Trường Kỹ thuật và Khoa học Máy tính tại Đại học Do Thái, cơ sở giáo dục cao nhất của Israel, và Jona Harris, sinh viên thạc sĩ tại Đại học Do Thái, gần đây đã phát hành một bài nghiên cứu "Lũ lụt & Cướp bóc: Cuộc tấn công có hệ thống vào tia sét Mạng." Một cuộc tấn công có hệ thống vào Lightning Network được đề xuất. Kẻ tấn công có thể đánh cắp số tiền bị khóa trong kênh thanh toán bằng cách tiến hành một cuộc tấn công có hệ thống vào Lightning Network. Trong cuộc tấn công này, kẻ tấn công buộc một số lượng lớn nạn nhân yêu cầu tiền từ blockchain và kẻ tấn công sau đó có thể khai thác tình trạng tắc nghẽn để đánh cắp số tiền không được nhận trước thời hạn. Bài báo chứng minh rằng chỉ 85 kênh bị tấn công đồng thời là đủ để đảm bảo rằng kẻ tấn công có thể đánh cắp một số tiền. Ngoài ra, bài viết đề xuất một số kỹ thuật giảm nhẹ cho cuộc tấn công này.



Mạng kênh thanh toán Lightning Network được biết là dễ bị tắc nghẽn blockchain nếu mạng Dưới bị tấn công, người tham gia có thể không rút được tiền kịp thời. Trong bài báo mới nhất của chúng tôi, chúng tôi đánh giá một cuộc tấn công như vậy: một cuộc tấn công có hệ thống vào Lightning Network có thể đánh cắp số tiền bị khóa trong các kênh thanh toán.


Trong cuộc tấn công này, kẻ tấn công ngay lập tức buộc nhiều nạn nhân đổ xô vào blockchain để đòi tiền của họ. Những kẻ tấn công sau đó có thể khai thác sự tắc nghẽn mà chúng tạo ra để đánh cắp bất kỳ khoản tiền nào không được yêu cầu trước thời hạn.

Hậu quả của một cuộc tấn công phụ thuộc vào việc triển khai Lightning Network mà kẻ tấn công chọn tấn công. Chúng tôi cho thấy rằng kẻ tấn công chỉ cần tấn công đồng thời 85 kênh để đánh cắp tiền trong kênh (điều này giả định rằng không có giao dịch blockchain nào khác đang cạnh tranh không gian khối, đây là một giả định rất lạc quan).

Ngoài việc hiểu rõ cuộc tấn công này và hậu quả của nó nói chung, trong bài viết này chúng tôi cũng trình bày một số kỹ thuật để giảm thiểu cuộc tấn công này.

Thận trọng: Một cuộc tấn công có thể khiến người dùng vô tội bị đánh cắp tiền của họ. Đừng thử cuộc tấn công này ở nhà. Thật không may, hiện tại không có thay đổi giao thức nào có thể loại bỏ hoàn toàn điều này. Những phát hiện của bài viết này đã được chia sẻ với các nhà phát triển của ba triển khai ứng dụng khách Lightning Network chính trước khi xuất bản.




Chi tiết tấn công

Cuộc tấn công khai thác cơ chế chuyển tiếp thanh toán qua nhiều kênh Lightning - Hợp đồng khóa thời gian băm (HTLC). Nói một cách đơn giản, HTLC cho phép người tham gia định tuyến thanh toán thông qua các nút trung gian không đáng tin cậy để đảm bảo rằng không ai trong số họ có thể đánh cắp tiền. Nếu một nút như vậy cố gắng đánh cắp tiền, các nút ngang hàng của nó có thể yêu cầu số tiền đó bằng cách đăng các giao dịch lên blockchain, nhưng chỉ trong một thời gian giới hạn. Như chúng tôi đã trình bày trong nghiên cứu của mình, việc làm tràn ngập chuỗi khối bằng các nút Lightning vô tội là tương đối dễ dàng và khai thác giới hạn thời gian này để đánh cắp tiền.

Ý tưởng chính đằng sau HTLC là sau khi thiết lập HTLC, bằng cách cung cấp bí mật (hình ảnh băm), khoản thanh toán sẽ được "kéo" từ nút trước đó trong đường dẫn qua nút mục tiêu. Kẻ tấn công sẽ định tuyến thanh toán giữa hai nút của mình và rút khoản thanh toán ở cuối đường dẫn. Khi khoản thanh toán cuối cùng được rút khỏi nút nguồn, anh ta sẽ từ chối hợp tác - buộc nạn nhân phải yêu cầu nó thông qua giao dịch blockchain.



  Ví dụ về cấu trúc liên kết này hiển thị các nút của kẻ tấn công và các kênh mà hắn chia sẻ với nạn nhân   


Cuộc tấn công được chia thành bốn giai đoạn chính:


1. Thiết lập kênh

Kẻ tấn công điều khiển hai nút sét, tương ứng là nút nguồn và nút đích. Nút nguồn mở các kênh cho nhiều nạn nhân tiềm năng, có thể là nhiều kênh cho mỗi nạn nhân. Các kênh này được khởi tạo và cấp vốn bởi nút nguồn của kẻ tấn công (nút mục tiêu có thể ở xa nạn nhân, nhưng trong sơ đồ bên dưới, chúng tôi đã đơn giản hóa quy trình và chỉ hiển thị một đường dẫn ngắn, đơn giản).



Giai đoạn 1: Thiết lập kênh

2. Sử dụng thanh toán HTLC để tải kênh

Sau khi tất cả các kênh được thiết lập, nút nguồn sẽ bắt đầu thực hiện nhiều khoản thanh toán HTLC cho các nút đích, được định tuyến qua kênh của từng nút nguồn. Nút nguồn gửi số tiền tối đa được phép chuyển tiếp và phân phối số tiền đó cho nhiều khoản thanh toán mà nạn nhân cho phép.

Là một phần của cơ chế HTLC, nút mục tiêu phải chấp nhận thanh toán bằng cách gửi lại một bộ bí mật HTLC. Cuộc tấn công này sẽ tránh thực hiện việc này cho đến khi nút nguồn chuyển tiếp xong tất cả các khoản thanh toán.



Giai đoạn 2: Sử dụng kênh tải thanh toán HTLC

3. Phân tích bước thanh toán cuối cùng

Sau khi hoàn tất thành công việc gửi tất cả các khoản thanh toán và thêm HTLC vào kênh của nút mục tiêu, nút mục tiêu sẽ trả lại bí mật được yêu cầu bằng cách để phân tích tất cả các khoản thanh toán và yêu cầu những khoản tiền đó cho chính bạn. Tại thời điểm này, nút mục tiêu có thể đóng kênh của nó một cách bình thường và giữ lại số tiền mà nút nguồn đã gửi. Sau khi mỗi nạn nhân có được những bí mật này, anh ta sẽ gửi chúng trở lại nút nguồn, yêu cầu phân tích cú pháp HTLC và chuyển số lượng của nó sang phía nạn nhân của kênh. Nút nguồn từ chối phân tích khoản thanh toán và bỏ qua mọi tin nhắn khác từ nạn nhân.


Giai đoạn 3: Phân tích cú pháp thanh toán ở bước nhảy cuối cùng

4. Đợi hết hạn và thu thập HTLC chưa sử dụng

Tại đây điểm, mỗi kênh bị tấn công chứa đầy các HTLC chưa được giải quyết mà nạn nhân đã biết bí mật của chúng. Vì nút nguồn của kẻ tấn công không hợp tác nên cách duy nhất để nạn nhân có thể nhận được các khoản thanh toán này là đóng kênh của họ và yêu cầu HTLC trên blockchain. Nạn nhân có một khoảng thời gian giới hạn (tính theo khối) để yêu cầu thanh toán (có giới hạn thời gian nếu nút không biết những bí mật này, trong trường hợp đó, nút nguồn sẽ yêu cầu số tiền đó).

Sau khi hết hạn, kẻ tấn công có thể sử dụng kết quả đầu ra của HTLC. Mặc dù nạn nhân vẫn có thể yêu cầu HTLC sau khi hết hạn, nhưng các chi tiết giao thức cụ thể mang lại cho kẻ tấn công một lợi thế đáng kể:

Nạn nhân không thể thiết lập phí giao dịch khi đăng giao dịch. Phí được xác định khi kênh được mở


Kẻ tấn công có thể đặt phí cho các giao dịch của chính chúng theo ý muốn và thay thế bất kỳ giao dịch nào của nạn nhân vẫn chưa được xác nhận sau khi hết hạn (sử dụng "Phí thay thế (Thay thế- By-Fee)")


Bằng cách tấn công nhiều kênh và buộc tất cả các kênh phải đóng cùng lúc ( Cài đặt cùng thời gian hết hạn cho tất cả các HTLC), giao dịch yêu cầu quyền sở hữu HTLC của một số nạn nhân sẽ không được xác nhận kịp thời và kẻ tấn công sẽ đánh cắp chúng.


Do đó, kẻ tấn công giữ lại một số tiền mà lẽ ra phải để lại cho nạn nhân (quỹ tiếp theo của nạn nhân được gửi tới nút mục tiêu của kẻ tấn công).



Giai đoạn 4: Thu thập sản phẩm chưa sử dụng sau khi hết hạn

Kết quả mô phỏng

Để cho thấy tính khả thi của cuộc tấn công, chúng tôi đã thực hiện Mô phỏng được thực hiện trên Lightning Network gốc trên regnet mạng thử nghiệm Bitcoin. Chúng tôi đã triển khai nguyên mẫu nút tấn công có khả năng chặn việc truyền bí mật HTLC, bỏ qua các yêu cầu phân tích HTLC và phát hành HTLC yêu cầu giao dịch quyền sở hữu với mức phí tăng cao. Vì LND là triển khai Lightning phổ biến nhất hiện nay (hơn 90% nút Lightning trên mạng được cho là đang chạy LND), nên chúng tôi sử dụng nó để mô phỏng các nút nạn nhân. Như thể hiện trong hình bên dưới, việc tấn công 85 kênh đảm bảo cuộc tấn công thành công ngay cả khi tất cả không gian có sẵn trong khối (kích thước khối tối đa) được phân bổ cho giao dịch của nạn nhân. Đối với mỗi kênh bổ sung, tất cả số tiền của nó cũng sẽ bị đánh cắp.

Số lượng HTLC bị đánh cắp thành công đối với số lượng kênh và kích thước khối bị tấn công khác nhau. Kích thước khối tối đa hiện tại của Bitcoin là 4M (tương ứng với đường màu xanh lá cây). Trên thực tế, có ít không gian dành cho giao dịch Lightning hơn.

Như trong hình, khi dung lượng trống trong mỗi khối giảm đi, số nạn nhân để đánh cắp HTLC sẽ là như nhau. ít. Chúng tôi cho thấy rằng đây có thể là trường hợp xảy ra khi kẻ tấn công sử dụng chiến lược "giảm thiểu chung" (được mô tả bên dưới).



Dành cho số lượng khác nhau Số lượng HTLC bị đánh cắp thành công dựa trên kênh tấn công và kích thước khối. Trọng lượng khối tối đa hiện tại của Bitcoin là 4M (tương ứng với đường màu xanh lá cây). Các giao dịch chớp nhoáng thực sự có ít hơn tất cả không gian có sẵn

Như trong hình, khi không gian có sẵn trong mỗi khối giảm đi thì sẽ có ít nạn nhân hơn cần thiết để đánh cắp cùng một lượng HTLC. Chúng tôi chứng minh rằng trường hợp này có thể xảy ra khi kẻ tấn công sử dụng chiến lược "giảm thiểu tối đa" (được mô tả bên dưới).

Tăng cường tấn công

Phí mà mỗi giao dịch nạn nhân phải trả đến từ tham số Feerate của kênh. Phí này được xác định và thanh toán bởi người khởi tạo kênh (trong trường hợp của chúng tôi là nút nguồn của kẻ tấn công). Trước khi mở một kênh, một nút khác phải chấp nhận mức phí do kênh đó đặt ra. Các nút đồng ý đặt mức phí, được xác định bằng phương pháp ước tính của bitcoind, nếu nút đáp ứng ước tính về phí blockchain. Như bạn có thể thấy từ biểu đồ bên dưới, các ước tính chi phí thấp có thể dao động đáng kể trong khoảng thời gian tương đối ngắn. Mức phí kênh được xác định tại một thời điểm có thể không áp dụng sau đó khi kênh bị đóng đơn phương.


Feerate ước tính của Bitcoind (satoshi/byte) để xác nhận ngay lập tức

Ngoài việc đặt mức phí ban đầu cho kênh, người khởi tạo kênh cũng có thể đề xuất mức phí mới bất kỳ lúc nào sau khi kênh được mở để điều chỉnh nó theo trạng thái phí Chuỗi khối hiện tại. Giao thức Lightning tuyên bố rằng trong trường hợp của chúng tôi, bên kia (tức là nạn nhân) không được phép thực hiện bất kỳ yêu cầu cập nhật chi phí nào. Trong chiến lược "giảm thiểu phí", kẻ tấn công sử dụng cơ chế cập nhật phí để giảm phí của kênh khi có thể (tức là khi phí blockchain thấp (vì vậy bên kia sẽ đồng ý thay đổi)), nhưng từ Cập nhật khi phí blockchain cao. Khi chênh lệch giữa mức phí của kênh và mức phí blockchain thực tế trở nên lớn, kẻ tấn công có thể bắt đầu thực hiện tất cả các khoản thanh toán HTLC và tiến hành một cuộc tấn công. Trong biểu đồ bên dưới, chúng ta thấy không gian khối trung bình có sẵn cho nạn nhân khi kẻ tấn công sử dụng chiến lược giảm thiểu phí trong 3 và 7 ngày. Ví dụ: khi kẻ tấn công cố gắng giảm thiểu phí 7 ngày trước khi bắt đầu cuộc tấn công, nạn nhân chỉ có quyền truy cập trung bình vào một nửa không gian khối trong 58% thời gian hoặc hơn (dữ liệu được thu thập trong khoảng thời gian 2 tháng)


Dung lượng khối trung bình có sẵn cho các giao dịch của nạn nhân khi sử dụng chiến lược "giảm thiểu phí"

Tìm kiếm nạn nhân tiềm năng

Trong chuyện này hoạt động, chúng tôi cũng chỉ ra rằng việc tìm kiếm nạn nhân tiềm năng không phải là một nhiệm vụ tốn nhiều công sức đối với kẻ tấn công. Để một nút trở thành nạn nhân của một cuộc tấn công, nút đó chỉ cần chấp nhận yêu cầu mở kênh với kẻ tấn công. Như được mô tả trong giao thức Lightning, một nút có thể thể hiện sự sẵn sàng mở kênh bằng cách phản hồi thông báo "accept_channel". Tại thời điểm này, thực sự không cần phải mở kênh. Chúng tôi đã tiến hành một thử nghiệm trong đó chúng tôi kiểm tra mức độ sẵn sàng của nhiều nút trên mạng để mở kênh với một nút không xác định. Chúng tôi nhận thấy rằng phần lớn các nút đang hoạt động (~95%) sẵn sàng mở kênh để đáp ứng yêu cầu này và do đó dễ dàng trở thành nạn nhân của cuộc tấn công này.


Nút phản hồi yêu cầu "open_channel"

Các biện pháp giảm thiểu

Đối với cuộc tấn công này, nhiều kỹ thuật khác nhau có thể khiến tấn công gây khó khăn hơn cho kẻ tấn công và giảm tác hại tiềm ẩn của các cuộc tấn công. Dưới đây là một số kỹ thuật giảm thiểu chúng tôi đã đề xuất.

1) Giảm số lượng HTLC chưa được giải quyết tối đa : Số lượng thanh toán tối đa mà kẻ tấn công có thể định tuyến qua kênh bị tấn công được xác định bởi tham số "max_accepted_htlcs" của kênh. Nếu giá trị của tham số này được giữ ở mức thấp, kẻ tấn công sẽ phải tấn công nhiều kênh hơn để đánh cắp tiền thành công.

2) Đóng kênh trước: Nạn nhân đã yêu cầu anh ta Thời gian (khối) quỹ được xác định bởi các thông số cụ thể khi thực hiện. Hầu hết việc triển khai Lightning Network sử dụng các giá trị nhỏ hơn nhiều so với mức chúng có thể sử dụng (để tránh đóng kênh sớm). Tham số này có thể được tăng lên theo hệ số không đổi hoặc thậm chí được đặt linh hoạt dựa trên trạng thái hiện tại của kênh, ví dụ: số lượng HTLC chưa được giải quyết hoặc tổng giá trị chưa được giải quyết.

3) Công bố ngay tuyên bố về giao dịch quyền sở hữu HTLC : nhất định Một số triển khai chờ xác nhận cam kết đã công bố của họ trước khi phát hành giao dịch HTLC để khai báo đầu ra của nó. Các nút có thể và nên giải phóng các giao dịch này ngay lập tức cùng với cam kết này để cho phép các khối tiềm năng mà nhiều giao dịch hơn có thể tham gia.

4) Hành vi dựa trên danh tiếng: Thông số kênh Có thể ảnh hưởng lớn đến khả năng tấn công thành công. Tùy thuộc vào một số chính sách, nút có thể sử dụng nhiều tham số quyền hơn cho các kênh có các bên được chỉ định "có trạng thái tốt".

Mặc dù có nhiều biện pháp giảm thiểu khác nhau để giảm nguy cơ bị tấn công nhưng loại bỏ hoàn toàn rủi ro dường như là một nhiệm vụ phức tạp. Chúng tôi tin rằng theo nhiều cách, các lỗ hổng bị khai thác vốn có trong cách thức hoạt động của HTLC và do đó không thể tránh hoàn toàn cuộc tấn công nếu không có những sửa đổi đáng kể đối với cơ chế HTLC.


Để có phiên bản chi tiết hơn, vui lòng Xem toàn văn.   


Liên kết gốc:https://www.8btc.com/article/615392



Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:

Nhóm Telegram đăng ký: https://t.me/theblockbeats

Nhóm Telegram thảo luận: https://t.me/BlockBeats_App

Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia

举报 Báo lỗi/Báo cáo
Chọn thư viện
Thêm mới thư viện
Hủy
Hoàn thành
Thêm mới thư viện
Chỉ mình tôi có thể nhìn thấy
Công khai
Lưu
Báo lỗi/Báo cáo
Gửi