Giới thiệu
Tấn công nhật thực là một cuộc tấn công tương đối đơn giản mà tác nhân độc hại có thể triển khai để can thiệp vào các nút trên mạng. Đúng như tên gọi, cuộc tấn công nhằm mục đích che khuất tầm nhìn của người tham gia về mạng ngang hàng, nhằm gây ra sự gián đoạn chung hoặc chuẩn bị cho các cuộc tấn công tinh vi hơn.
Nhìn bề ngoài, các cuộc tấn công Eclipse nghe có vẻ tương tự như các cuộc tấn công Sybil. Mặc dù chúng có những điểm tương đồng nhất định – tác nhân độc hại sẽ tràn ngập mạng lưới với các đồng nghiệp giả mạo – nhưng mục tiêu cuối cùng của chúng lại khác nhau. Cuộc tấn công nhật thực nhắm vào một nút duy nhất (vì các lý do được giải thích ở phần sau), trong khi cuộc tấn công Sybil là cuộc tấn công trên toàn mạng được thiết kế để đánh lừa hệ thống danh tiếng của giao thức.
Khái niệm này đã được thảo luận chi tiết trong bài báo năm 2015 Các cuộc tấn công nhật thực trên mạng ngang hàng của Bitcoin, trong đó các nhà nghiên cứu từ Đại học Boston và Đại học Do Thái báo cáo những phát hiện của họ từ các thử nghiệm của họ trong việc thực hiện các cuộc tấn công nhật thực cũng như các biện pháp đối phó có thể có để chống lại chúng.
Cách thức hoạt động của một cuộc tấn công nhật thực
Công cụ khai thác bitcoin yêu cầu thiết bị chuyên dụng để tạo ra các khối mới, nhưng các nút không khai thác (hoặc đầy đủ) có thể dễ dàng chạy với công suất tính toán tối thiểu. Điều này hỗ trợ quá trình phân cấp của Bitcoin, vì bất kỳ ai cũng có thể tạo một nút trên thiết bị có thông số kỹ thuật thấp. Phần mềm này duy trì một cơ sở dữ liệu về các giao dịch mà nó đồng bộ hóa với các giao dịch ngang hàng trực tiếp của nó, để duy trì sự đồng bộ với mạng.
Một yếu tố hạn chế đối với nhiều nút là băng thông. Mặc dù có rất nhiều thiết bị chạy phần mềm nhưng trung bình một thiết bị không thể kết nối trực tiếp với nhiều thiết bị trong số đó do những hạn chế được đặt ra trong phần mềm Bitcoin (chỉ cho phép tối đa 125 kết nối).
Trong một cuộc tấn công nhật thực, tác nhân độc hại sẽ đảm bảo rằng tất cả các kết nối của mục tiêu được thực hiện tới các nút do kẻ tấn công kiểm soát. Trước tiên, thực thể sẽ gửi cho mục tiêu các địa chỉ IP của chính nó mà nạn nhân có thể sẽ kết nối khi khởi động lại phần mềm của họ. Có thể buộc phải khởi động lại (tức là với một cuộc tấn công DDoS vào mục tiêu) hoặc kẻ tấn công có thể chỉ cần đợi nó xảy ra.
Một khi điều này xảy ra, nạn nhân không hề nghi ngờ sẽ rơi vào tay các nút độc hại – khi không có tầm nhìn về mạng rộng hơn, kẻ tấn công có thể cung cấp dữ liệu không chính xác cho họ.
Hậu quả của một cuộc tấn công nhật thực
Nếu kẻ tấn công đang sử dụng tài nguyên để xa lánh một người ngang hàng khỏi mạng, họ có thể có động cơ để làm như vậy. Có một số cuộc tấn công liên tiếp có thể được thực hiện dễ dàng hơn sau khi một nút đã bị bóp nghẹt.
0-xác nhận chi tiêu gấp đôi
Nếu một cá nhân chấp nhận một giao dịch mà không có xác nhận, họ có nguy cơ bị chi tiêu gấp đôi. Giao dịch có thể đã được phát sóng, nhưng cho đến khi nó được đưa vào một khối (và do đó được cam kết với blockchain), người gửi có thể dễ dàng tạo một giao dịch mới để tiêu số tiền tương tự ở một nơi khác. Nếu giao dịch mới có mức phí cao hơn, người khai thác có thể sẽ đưa nó vào trước giao dịch ban đầu, làm mất hiệu lực của giao dịch trước đó.
Một số doanh nghiệp và cá nhân chấp nhận các giao dịch không có xác nhận này. Hãy xem xét một thương gia, Bob, người bán những loại xe cao cấp. Anh ta không biết rằng Alice đã làm lu mờ nút của anh ta và không nghi ngờ gì khi cô đặt hàng một chiếc xe thể thao sang trọng. Cô ấy tạo một giao dịch, sau đó Bob sẽ phát lên mạng. Hài lòng vì khoản thanh toán đang được thực hiện, anh ta giao chìa khóa xe và Alice phóng đi.
Tất nhiên, giao dịch không được phát lên mạng – Bob chỉ chuyển tiếp nó đến các nút độc hại của Alice, các nút này sẽ không chuyển tiếp nó đến các nút trung thực. Trong khi giao dịch này bị treo trong tình trạng lấp lửng, Alice chi tiêu số tiền tương tự trên mạng (thực), cho dù là cho một bên khác hay đến địa chỉ mà cô ấy sở hữu. Ngay cả khi giao dịch ban đầu với Bob cuối cùng được nhìn thấy, nó sẽ bị từ chối vì số tiền đã được sử dụng.
Xác nhận N chi tiêu gấp đôi
Chi tiêu gấp đôi xác nhận N tương tự như chi tiêu gấp đôi xác nhận 0, nhưng cần phải chuẩn bị nhiều hơn. Nhiều doanh nghiệp muốn đợi một số lượng xác nhận nhất định trước khi đánh dấu khoản thanh toán là hợp lệ. Để giải quyết vấn đề này, kẻ tấn công phải làm lu mờ cả thợ mỏ và người bán. Khi kẻ tấn công đã thiết lập đơn hàng với người bán, chúng sẽ phát một giao dịch tới những người khai thác (bị lu mờ). Giao dịch được xác nhận và đưa vào blockchain – nhưng blockchain này không phải là chuỗi mà phần lớn mạng lưới quan sát được vì công cụ khai thác đã bị cắt.
Từ đó, kẻ tấn công chuyển tiếp phiên bản blockchain này cho người bán, người này sẽ giao hàng với niềm tin rằng giao dịch đã được xác nhận. Sau khi các nút bị lu mờ tham gia lại vào mạng thực tế, chuỗi khối mà chúng nhầm tưởng là hợp lệ sẽ bị mồ côi bởi chuỗi mà phần còn lại của mạng đang hoạt động (điều này có một số điểm tương đồng với cuộc tấn công 51%).
Làm suy yếu các công ty khai thác cạnh tranh
Một nút bị lu mờ sẽ tiếp tục hoạt động mà không biết rằng chúng đã bị tách biệt khỏi mạng. Những người khai thác sẽ tiếp tục khai thác các khối theo các quy tắc do giao thức đặt ra, nhưng các khối được thêm vào sẽ bị loại bỏ khi chúng đồng bộ hóa với các đồng nghiệp trung thực.
Về mặt lý thuyết, một cuộc tấn công nhật thực quy mô lớn nhằm vào các công ty khai thác lớn có thể được sử dụng để tạo điều kiện thuận lợi cho cuộc tấn công 51%. Như hiện tại, chi phí để chiếm phần lớn sức mạnh băm của Bitcoin đơn giản là quá cao đối với ngay cả những kẻ tấn công tài giỏi nhất – ở mức ~ 80TH/s, thực thể sẽ cần hơn 40TH/s để thực hiện hành động như vậy.
Trong trường hợp giả định trong đó sức mạnh băm này được phân phối giữa 10 bên (như vậy mỗi bên sở hữu 8TH/s), kẻ tấn công có thể hạ thấp đáng kể các yêu cầu cho cuộc tấn công 51% bằng cách cắt các bên này khỏi mạng. Nếu năm khối bị lu mờ, 40TH/s sẽ bị loại khỏi cuộc đua tìm khối tiếp theo và kẻ tấn công giờ đây chỉ cần đạt được 20TH/s trở lên một chút để giành quyền kiểm soát.
Các hành vi phá hoại khác có thể đạt được bằng cách làm lu mờ các mục tiêu bao gồm thao túng các nút để khai thác ích kỷ hoặc kỹ thuật chạy đua giữa các thợ mỏ để tìm khối tiếp theo.
Giảm nhẹ
Với đủ địa chỉ IP, kẻ tấn công có thể làm lu mờ bất kỳ nút nào. Phương pháp đơn giản nhất để ngăn điều này xảy ra là nhà điều hành chặn các kết nối đến và chỉ thực hiện các kết nối gửi đi đến các nút cụ thể (chẳng hạn như các nút đã được các nút ngang hàng khác đưa vào danh sách cho phép). Tuy nhiên, như bài viết nghiên cứu đã chỉ ra, đây không phải là một cách tiếp cận hiệu quả trên quy mô lớn – nếu tất cả những người tham gia áp dụng các biện pháp này, các nút mới sẽ không thể tham gia mạng.
Các tác giả đề xuất một số điều chỉnh đối với phần mềm Bitcoin, một số trong số đó đã được tích hợp kể từ khi bài báo được phát hành. Điều này làm cho các cuộc tấn công nhật thực trở nên tốn kém hơn thông qua những sửa đổi nhỏ đối với mã, chẳng hạn như lựa chọn ngẫu nhiên các kết nối mới và khả năng lưu trữ địa chỉ lớn hơn.
Bớt tư tưởng
Các cuộc tấn công Eclipse được thực hiện ở cấp độ mạng ngang hàng. Được triển khai như một cuộc tấn công độc lập, chúng có thể gây phiền toái. Hiệu quả thực sự của chúng là trong việc tăng cường các cuộc tấn công khác có tác động đến mục tiêu về mặt tài chính hoặc mang lại cho kẻ tấn công lợi thế trên mặt trận khai thác.
Trong tự nhiên, vẫn chưa có hậu quả nghiêm trọng do cuộc tấn công nhật thực gây ra, nhưng mối đe dọa vẫn tồn tại bất chấp các biện pháp đối phó được tích hợp vào mạng. Giống như hầu hết các vectơ tấn công tồn tại đối với Bitcoin và các loại tiền điện tử khác, cách phòng thủ mạnh nhất sẽ là khiến các bên độc hại cố gắng thực hiện chúng bị cấm về mặt tài chính.

