Ethereum bị tấn công phát lại sau hard fork. Vậy replay attack là gì?

Bởi builink
Updated by builink

Một cuộc tấn công phát lại (replay attack) sử dụng các ứng dụng độc hại để trì hoãn hoặc chặn việc truyền dữ liệu xảy ra qua mạng. Thông tin này sau đó có thể được xử lý và lặp lại nhiều lần để sao chép các giao dịch trên mạng.

Tổng quan về replay attack

1. Ethereum PoW bị tấn công phát lại

Thời gian qua, mặc dù thị trường downtrend nhưng không vì thế mà sức nóng giảm nhiệt. Sự ra mắt của The Merge vào ngày 15/9 đã kết thúc chuỗi ngày thất hứa của Ethereum (ETH). Nhưng cũng chính nhờ sự ra mắt này đã khiến mạng Ethereum bị chia phe, một bên đồng thuận theo cơ chế mới PoS và một bên bảo thủ theo cơ chế cũ PoW (chủ yếu là thợ đào). Tuy nhiên, có vẻ như những bão giông đầu tiên đã đến với mạng Ethereum PoW sau khi phân tách.

Trong một bài viết mới đây nhất từ BeInCrypto, mạng Ethereum PoW đã phải chịu một cuộc replay attack vào ngày 18/9. Sau cuộc tấn công đó, hacker đã chuyển 200 WETH thông qua Omni bridge. Tiếp đến, hacker tạo một giao dịch khác tương tự trên chuỗi PoW để nhận thêm 200 ETHW. Tại thời điểm viết bài, thông tin về vụ việc này vẫn đang trong quá trình điều tra. Tuy nhiên, vô tình nó đã dấy lên một làn sóng quan tâm về mức độ an toàn của Ethereum PoW sau hard fork.

2. Vậy replay attack là gì?

Replay attack hay playback attack, tiếng Việt gọi là tấn công phát lại xảy ra khi kẻ tấn công (hacker) bằng một cách nào đó xâm nhập thành công vào một kết nối mạng. Sau đó, hacker sẽ toàn quyền quản lý và tham gia chặn quá trình truyền dữ liệu trong mạng nếu muốn. Hiểu một cách đơn giản có nghĩa là người gửi gửi một tin nhắn đến người nhận nhưng bị hacker giữ lại dẫn đến tin nhắn gửi không thành công. Người gửi sau đó có thể sẽ cố gắng thực hiện gửi lại nhiều lần để thực hiện giao dịch.

Bằng việc lặp lại như vậy, hacker sẽ thu được toàn bộ các giao dịch gốc từ phía người gửi trên mạng. Sau đó hacker có thể lợi dụng những thông tin này để tự thực hiện giao dịch mà không cần phải quyền xác nhận từ người gửi ban đâu. Lúc đó, các giao thức bảo mật của các mạng blockchain sẽ coi đó như các hình thức truyền tin thông thường và chấp nhận nó.

Lấy ví dụ, giả sử ví A gửi tiền cho ví B thông qua một giao dịch trên blockchain. Trong giao dịch mà A gửi cho B đó sẽ bao gồm toàn bộ thông tin để xác minh cũng như nhận dạng giao dịch. Thông qua hình thức replay attack, C đứng ở giữa và chặn được luồng thông tin mà A gửi cho B. Nó làm cho thông tin này không gửi thành công được đến B và khiến A phải gửi lại nhiều lần. Sau khi giao dịch giữa A và B thành công, C lúc này sẽ đóng giả A gửi một giao dịch đến một địa chỉ ví bất kỳ D nào đó. Lúc đó, C sẽ gửi toàn bộ thông tin thu được từ quá trình chặn trước đó bao gồm cả việc xác minh danh tính. Cứ như vậy, C có thể qua mặt A và thực hiện bất kỳ giao dịch nào mà nó muốn.

3. Replay attack xảy ra trong những trường hợp nào?

Quay lại với trường hợp của Ethereum PoW mà BeInCrypto vừa mới chia sẻ ở đầu bài viết, chúng ta có thể thấy rằng đây là một trong những ngữ cảnh mà các cuộc tấn công phát lại có thể xảy ra. Nói cách khác, một cuộc tấn công phát lại có thể xảy ra khi 2 loại tiền điện tử được phân chia cho phép các giao dịch có hiệu lực trên cả hai chuỗi, hay còn gọi là hard fork. 

Trong các đợt hard fork như vậy, các thực thể độc hại sẽ sử dụng các cuộc tấn công phát lại để xâm nhập vào sổ cái blockchain. Điều này có nghĩa là giao dịch được thực hiện trong một đợt hard fork sẽ bỏ qua bảo mật blockchain bằng cách sao chép giao dịch và chuyển một số lượng đơn vị giống hệt nhau trên tài khoản của kẻ tấn công. 

Ở đây chúng ta đang có ngữ cảnh là mạng Bitcoin gốc được fork ra thành 2 phiên bản là BT1 và BT2. Giả sử BTC trước đợt fork, bạn giữ tất cả tiền của mình trong một ví. Với ngữ cảnh này, tấn công phát lại có thể được thực hiện như sau:

  • Bạn tạo một giao dịch gửi 3 BTC từ ví của bạn đến ví Y. Bạn ký tên vào nó để xác nhận quyền sở hữu và phát nó đến mạng BT2. Giao dịch luân chuyển mạng BT2 và cuối cùng được xác nhận là chuyển 3 đồng trên mạng BT2 đến ví B.
Lượt đi của mô hình tấn công phát lại
Lượt đi của mô hình tấn công phát lại
  • Tuy nhiên, có một hacker bằng cách nào đó đã xâm nhập mạng và nghe được cuộc trao đổi giữa 2 ví này. Nó chặn giao dịch lại, sao chép nó và tải lại nó lên mạng BT1. Vì không có bảo vệ phát lại, giao dịch cũng hợp lệ trên mạng BT1.
Lượt về của mô hình tấn công phát lại
Lượt về của mô hình tấn công phát lại

Kết quả là không chỉ 3 đồng coin trên mạng BT2 của bạn được gửi đến địa chỉ Y mà cả 3 đồng coin trên mạng BT1 của bạn cũng được gửi tương tự. Như vậy, về cơ bản người dùng đã gửi 2 lần cho 1 giao dịch và dẫn đến thiệt hại về tài sản.

4. Rủi ro xảy ra khi dự án bị replay attack

Một cuộc tấn công phát lại có thể gây ảnh hưởng đến nhiều bên. Cụ thể

  • Đối với người dùng: Chúng cũng có thể được sử dụng để đánh lừa các tổ chức tài chính sao chép các giao dịch, cho phép những kẻ tấn công rút tiền trực tiếp từ tài khoản của nạn nhân. 
  • Đối với mạng lưới: Các cuộc tấn công phát lại có thể được sử dụng để truy cập vào thông tin được lưu trữ trên một mạng được bảo vệ khác bằng cách chuyển cho nó các thông tin xác thực có vẻ hợp lệ. Như vậy, về cơ bản nó cho thấy mức độ an toàn của mạng đó trước các cuộc tấn công mạng. Trong một số trường hợp, tin tặc sẽ kết hợp các phần của các tin nhắn được mã hóa khác nhau và chuyển bản mã kết quả vào mạng dưới dạng tấn công cắt và dán. Phản ứng của mạng đối với kiểu tấn công này thường sẽ cung cấp cho tin tặc những thông tin có giá trị có thể được sử dụng để khai thác thêm hệ thống.

Cần làm gì để hạn chế ảnh hưởng từ replay attack?

Chúng ta không phủ nhận rằng các cuộc tấn công phát lại có thể khiến người dùng và các nhà phát triển dự án mất một khoản tiền cũng như uy tín trong lĩnh vực này. Tuy nhiên, điều đó không có nghĩa là chúng ta không có cách gì để ngăn cản nó. Hàng loạt dự án sau hard fork vẫn phát triển tốt đến thời điểm hiện tại, Bitcoin (BTC) và Bitcoin Cash là ví dụ điển hình.

Để tránh tự biến mình trở thành nạn nhân của các vụ tấn công phát lại, dưới đây là một số gợi ý từ BeInCrypto mà bạn có thể cân nhắc:

Đối với mạng lưới

Để hạn chế sự xâm nhập và chiếm quyền kiểm soát bên thứ ba, các blockchain có thể đặt các giao thức bảo mật bổ sung khi một trong các nhánh này. Một vài giải pháp thường thấy như tạo mật khẩu một lần, tạo dấu thời gian (time stamp) hay đưa vào nonce cùng mã xác thực tin nhắn (MAC)… Có 2 phương pháp phổ biến nhất để ngăn chặn các cuộc tấn công này. Cụ thể:

  • Một là đánh dấu được đặt trong sổ cái mới được tạo sau khi hard fork xảy ra. Với dấu trang này, bất kỳ giao dịch nào được thực hiện trên phiên bản blockchain đó đều trở nên không hợp lệ. Loại bảo vệ này đã được thêm vào Bitcoin Cash khi nó lần đầu tiên hình thành từ Bitcoin. Dấu trang cho phép các node trong Bitcoin Cash phân biệt các giao dịch đã xảy ra trên Bitcoin tiêu chuẩn với các giao dịch xảy ra trên Bitcoin Cash.
  • Hai là thực hiện các thay đổi thủ công đối với các giao dịch để đảm bảo rằng chúng không bị phát lại. Hình thức này chủ yếu được sử dụng khi một đợt hard fork xảy ra sau bản cập nhật sổ cái của tiền điện tử, trái ngược với việc nó bị chia đôi. 

Đối với người dùng 

Trong vai trò một người dùng thông thường, chúng ta sẽ không thể tác động đến những thay đổi trực tiếp trên mạng lưới blockchain. Đổi lại, chúng ta cũng có thể chủ động thực hiện các biện pháp bảo mật cho ví để hạn chế rủi ro. Ví dụ, thời điểm đầu khi hard fork vừa mới diễn ra, người dùng có thể hạn chế giao dịch cho đến khi đạt được một số khối cụ thể trong phiên bản mới của blockchain. 

Tương tự, người dùng cũng có thể chọn thêm dấu thời gian để truyền dữ liệu và lưu vào bộ nhớ cache các tin nhắn lặp lại sao cho chúng sẽ bị ngắt sau khi nó lặp đi lặp lại trong một số lần cụ thể. Tuy nhiên, vì tính phức tạp của nó, không phải ai và lúc nào người dùng cũng có thể tự thực hiện được điều này.

Lời kết

Các cuộc tấn công phát lại (replay attack) có thể xảy ra bất cứ khi nào tiền điện tử trải qua một đợt hard fork (cả Bitcoin và Ethereum đều đã gặp nạn này). Có thể nói các cuộc tấn công phát lại đại diện cho một mối đe dọa thực sự đối với an ninh mạng khi chúng thành công. Có rất nhiều biện pháp phòng ngừa mà người dùng và mạng lưới có thể thực hiện để ngăn chặn hoặc giảm thiểu các cuộc tấn công này, bao gồm thêm dấu thời gian và dấu trang định vị trong sổ cái mới…

Hi vọng bài viết đã mang đến cho độc giả của BeInCrypto những kiến thức cần thiết về hình thức tấn công mạng này. Hãy tham gia nhóm cộng đồng của chúng tôi để cập nhật những bài viết, phân tích mới nhất về thị trường tiền điện tử nhé. Telegram | Facebook fanpage | Facebook group

Tất cả thông tin có trên trang web của chúng tôi được xuất bản một cách thiện chí và chỉ dành cho mục đích thông tin chung. Người đọc tự trách nhiệm với bất kỳ hành động nào thực hiện đối với thông tin được tìm thấy trên trang web của chúng tôi. Tại Learn, ưu tiên của chúng tôi là cung cấp thông tin chất lượng cao. Chúng tôi dành thời gian để xác định, nghiên cứu và tạo ra nội dung giáo dục hữu ích cho độc giả. Để duy trì tiêu chuẩn này và tiếp tục tạo ra nội dung tuyệt vời, các đối tác của chúng tôi có thể thưởng cho chúng tôi một khoản hoa hồng cho các vị trí trong bài viết của chúng tôi. Tuy nhiên, những khoản hoa hồng này không ảnh hưởng đến quy trình tạo nội dung không thiên vị, trung thực và hữu ích của chúng tôi.