Tấn công che khuất là gì?
Trang chủ
Bài viết
Tấn công che khuất là gì?

Tấn công che khuất là gì?

Nâng cao
Đã đăng Jan 19, 2020Đã cập nhật Dec 11, 2023
6m

Nội dung


Tấn công che khuất là một cuộc tấn công tương đối đơn giản mà một tác nhân gây hại có thể triển khai để can thiệp vào các nút trên mạng. Như chính tên gọi của nó, tấn công này nhằm che khuất người tham gia để họ không thể nhìn thấy mạng ngang hàng, nhằm tạo 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.
Bề ngoài, các cuộc tấn công che khuất có thể hơi giống với các cuộc tấn công Sybil. Mặc dù chúng có một số điểm tương đồng – với tấn công che khuất, tác nhân độc hại sẽ đưa vào mạng lưới những người ngang hàng giả – mục tiêu cuối cùng của chúng là khác nhau. Tấn công che khuất nhắm vào một nút duy nhất (lý do được giải thích trong phần sau), trong khi tấn công Sybil là một cuộc tấn công trên toàn mạng được thiết kế để làm suy giảm uy tín 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 Tấn công Che khuất 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 Hebrew trình bày các kết quả nghiên cứu của họ từ các thử nghiệm thực hiện các cuộc tấn công che khuất của họ, cũng như các biện pháp đối phó có thể để chống lại chúng.


Tấn công che khuất hoạt động như thế nào

Những thợ đào bitcoin cần các thiết bị chuyên dụng để tạo ra các khối mới, nhưng các nút không đào (các nút đầy đủ) có khả năng hoạt động chỉ với công suất tính toán ở mức tối thiểu. Điều này hỗ trợ cho tính chất phân quyền của Bitcoin, vì bất kỳ ai cũng có thể quay một nút trên thiết bị có thông số kỹ thuật thấp. Phần mềm duy trì một cơ sở dữ liệu về các giao dịch mà nó ngay lập tức đồng bộ hóa với những người ngang hàng để duy trì trạng thái cập nhật với mạng.

Một yếu tố giới hạn cho nhiều nút là băng thông. Mặc dù có một số lượng lớn thiết bị chạy phần mềm, một thiết bị trung bình không thể kết nối trực tiếp với nhiều thiết bị do những hạn chế 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 che khuất, tác nhân gây hại sẽ đảm bảo rằng tất cả các kết nối mục tiêu được thực hiện đến các nút do kẻ tấn công kiểm soát. Thực thể này trước tiên sẽ đưa vào mục tiêu các địa chỉ IP của nó mà nạn nhân có thể sẽ kết nối với các địa chỉ này khi khởi động lại phần mềm của họ. Việc khởi động lại có thể là do kẻ tấn công ép buộc (thông qua một tấn công DDoS vào mục tiêu) hoặc kẻ tấn công có thể chỉ cần chờ nó xảy ra. 

Sau khi điều này xảy ra, nạn nhân không hề biết rằng mình hoàn toàn chịu sự kiểm soát của các nút gây hại – và do không thể quan sát được mạng, họ có thể nhận phải những dữ liệu không chính xác do kẻ tấn công cung cấp.


Hậu quả của cuộc tấn công che khuất

Có những lý do để kẻ tấn công sử dụng các tài nguyên để tách biệt một người ngang hàng khỏi mạng. Một số các cuộc tấn công liên tiếp có thể dễ dàng khởi chạy hơn một khi nút đã bị tách biệt khỏi mạng.


Chi tiêu gấp đôi không cần xác nhận

Nếu một cá nhân chấp nhận giao dịch mà không có xác nhận, họ có nguy cơ chi tiêu gấp đôi. Giao dịch có thể đã được truyền đi, nhưng nếu nó chưa được bao gồm trong 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 để chi tiêu một khoản tiền khác tương đương ở một nơi khác. Nếu giao dịch mới có mức phí cao hơn, người ười khai thác có thể sẽ bao gồm nó trước giao dịch gốc, vô hiệu hó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. Giả sử thương gia Bob là một người bán các sản phẩm xe hơi cao cấp. Anh ta không biết rằng Alice đã che khuất nút của mình, và không nghi ngờ gì khi cô ta đặt hàng một chiếc xe thể thao sang trọng. Cô ta tạo ra một giao dịch, sau đó Bob truyền giao dịch đó lên mạng. Bob hài lòng khi thấy khoản thanh toán đang được gửi đến nên giao chìa khóa xe và Alice phóng đi.

Tất nhiên, giao dịch chưa được truyền lên mạng – Bob chỉ chuyển tiếp nó đến các nút giả độc hại của Alice, và các nút này sẽ không chuyển tiếp đến các nút thật. Trong khi giao dịch này bị treo trong tình trạng lấp lửng, Alice sẽ gửi một khoản tiền trên mạng (thực) cho một bên khác hoặc đến một địa chỉ mà cô ta sở hữu. Kể cả khi cuối cùng giao dịch ban đầu với Bob được gửi đến mạng, thì nó cũng sẽ bị từ chối vì giao dịch thứ hai đã gửi khoản tiền đó sang tài khoản khác.


Chi tiêu gấp đôi xác nhận N

Chi tiêu gấp đôi xác nhận N tương tự như chi tiêu xác nhận 0, nhưng bao gồm nhiều sự chuẩn bị hơn. Nhiều doanh nghiệp thường chờ một số xác nhận nhất định trước khi đánh dấu thanh toán là hợp lệ. Để đối phó với điều này, kẻ tấn công phải che khuất cả thợ đào và thương gia. Khi kẻ tấn công đã thiết lập đơn đặt hàng với thương gia, chúng truyền một giao dịch cho các thợ đào (bị che khuất). Giao dịch được xác nhận và bao gồm trong blockchain – nhưng blockchain này không phải là chuỗi mà phần lớn mạng quan sát, vì thợ đào đã bị tách ra khỏi chuỗi.
Từ đó, kẻ tấn công chuyển tiếp phiên bản blockchain này cho thương gia, và người này sẽ xuất hàng với niềm tin rằng giao dịch đã được xác nhận. Khi các nút bị che khuất được kết nối vào mạng thực, thì blockchain mà họ lầm tưởng là hợp lệ sẽ bị bỏ mặc bởi blockchain mà phần còn lại của mạng đang hoạt động trên đó (điều này có một số điểm tương đồng với tấn công 51%).


Làm suy yếu các thợ đào cạnh tranh

Một nút bị che khuất 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. Các thợ đào sẽ tiếp tục khai thác các khối theo các quy tắc được đặt ra bởi giao thức, nhưng các khối được thêm vào sẽ bị loại bỏ khi chúng được đồng bộ hóa với những người ngang hàng trung thực. 

Về mặt lý thuyết, có thể sử dụng một cuộc tấn công che khuất quy mô lớn vào các thợ đào chính để tạo điều kiện cho một cuộc tấn công 51%. Vì thế, chi phí để kiểm soát phần lớn công suất băm của Bitcoin chỉ là quá cao đối với những kẻ tấn công sở hữu nhiều tài nguyên nhất – với tốc độ ~ 80TH/giây, kẻ tấn công sẽ cần hơn 40TH/giây để thực hiện thao tác như vậy. 

Giả sử công suất băm này được phân phối giữa 10 bên (sao cho mỗi bên sở hữu 8Th/giây), thì kẻ tấn công có thể giảm đáng kể các yêu cầu cho một cuộc tấn công 51% bằng cách loại bỏ các bên này khỏi mạng. Nếu 5 trong số đó bị che khuất, thì 40TH/giây sẽ bị loại bỏ khỏi cuộc đua để tìm khối tiếp theo và kẻ tấn công bây giờ chỉ cần hơn 20TH/giây để giành quyền kiểm soát.

Việc che mờ các mục tiêu có thể giúp gây hại theo cách khác, bao gồm thao túng các nút để giành riêng quyền khai thác hoặc kỹ thuật chạy đua giữa các thợ đào để tìm khối tiếp theo.


Giảm nhẹ

Với đủ địa chỉ IP, kẻ tấn công có thể che khuất bất kỳ nút nào. Phương pháp đơn giản nhất để ngăn chặn điều này xảy ra là nhà điều hành cần chặn các kết nối đến và chỉ thực hiện các kết nối ra bên ngoài tới các nút cụ thể (chẳng hạn như các nút đã được đưa vào danh sách trắng bởi các đồng nghiệp khác). 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 phù hợp cho 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 cho phần mềm Bitcoin, một số trong đó đã được tích hợp kể từ khi bài báo được xuất bản. Những điều chỉnh này giúp các cuộc tấn công che khuất trở nên tốn kém hơn thông qua các sửa đổi nhỏ ở các mã, chẳng hạn như lựa chọn ngẫu nhiên các kết nối mới và dung lượng lưu trữ địa chỉ lớn hơn.


Kết luận

Các cuộc tấn công che khuất đượ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 ra những phiến phức. Hiệu quả thực sự của chúng là tăng cường các cuộc tấn công khác để tác động đến mục tiêu về mặt tài chính, hoặc cung cấp cho kẻ tấn công một lợi thế để đào các khối mới.

Trên thực tế, tấn công che khuất vẫn chưa gây ra hậu quả nghiêm trọng, 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. Như với 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, biện pháp phòng thủ tốt nhất là để các bên gây hại không thể có đủ khả năng tài chính để gây ra các cuộc tấn công đó.