Replay attack là gì? Cách hoạt động của tấn công phát lại
Crypto là thị trường rủi ro, không chỉ bởi sự biến động của các loại tài sản, mà đây còn là thị trường với rất nhiều cạm bẫy, rủi ro về hack/cheat. Trang bị kiến thức để tự bảo vệ mình khỏi hacker cũng là điều vô cùng cần thiết để tồn tại trong thị trường này.
Cùng tìm hiểu replay attack là gì và các hoạt động của hình thức tấn công này trong bài viết hôm nay.
Replay attack là gì?
Replay attack, tấn công phát lại (hay còn gọi là playback attack), là hình thức tấn công an ninh mạng lưới bằng cách sử dụng các ứng dụng độc hại để chặn hoặc trì hoãn các dữ liệu truyền tải. Sau đó, các thông tin đó được xử lý và lặp lại nhiều lần trên hệ thống, hay gửi lại theo ý muốn của tin tặc.
Về cơ bản, tấn công phát lại lợi dụng tính hợp lệ của dữ liệu ban đầu (thường đến từ người dùng đã được cấp quyền), các giao thức bảo mật của mạng lưới sẽ xử lý vụ việc tấn công này chỉ giống như một hình thức truyền tải dữ liệu thông thường.
Khi đó, dữ liệu đã bị chặn (hoặc bị trì hoãn) và được truyền tải một cách nguyên bản nên hacker có thể thực hiện cuộc tấn công một cách dễ dàng mà không cần tới các bước giải mã phức tạp.
Cách thức tấn công phát lại hoạt động trong Crypto
Các blockchain thường có các phiên bản thay đổi hoặc nâng cấp giao thức được gọi là hard fork, đây là cơ hội chính cho tin tặc sử dụng phương thức tấn công phát lại.
Sau khi một hard fork diễn ra, một bên hoạt động theo phiên bản cũ, bên còn lại hoạt động theo phiên bản mới nhưng cả 2 phiên bản vẫn sẽ giữ dữ liệu trước khi phân tách.
Nghĩa là một giao dịch hợp lệ trên phiên bản cũ cũng sẽ hợp lệ trên sổ cái còn lại, hacker có thể lợi dụng điều này để mô phỏng lại giao dịch trên phiên bản cũ và gian lận chuyển một lượng tiền y hệt vào ví một lần nữa.
Để hiểu cách hoạt động của replay attack trong thị trường crypto, cùng xem ví dụ trực quan sau:
Có một cửa hàng bán bánh A, do muốn phát triển thương hiệu theo các cách khác nhau nên đã tách thành của hàng B và cửa hàng C.
Sau khi tách ra làm 2 cửa hàng, các dữ liệu về thông tin khách hàng, thông tin giao dịch, hệ thống thanh toán trước đó vẫn được cả 2 cửa hàng lưu lại.
Tuy nhiên, sau đó các cửa hàng sẽ tự duy trì mô hình kinh doanh riêng và không còn liên lạc trao đổi qua lại.
Sau khi các cửa hoàn tất phân tách, Alice gửi tin nhắn thông tin đã thanh toán cho người phục vụ của cửa hàng B, người phục vụ xác nhận thông tin giao dịch trên hệ thống và giao bánh cho Alice.
Alice cũng có thể gửi cùng lúc một tin nhắn tương tự cho người phục vụ của cửa hàng C, người phục vụ cửa hàng C cũng xác nhận thông tin giao dịch của tin nhắn trên hệ thống và giao bánh cho Alice.
Như vậy, lợi dụng việc 2 cửa hàng bánh không thể xác nhận thông tin thanh toán giữa 2 bên, Alice nhận được 2 chiếc bánh dù chỉ thanh toán một lần.
Những trường hợp nổi tiếng của tấn công phát lại trên thị trường crypto phải kể đến các hard fork Bitcoin Cash của Bitcoin và Ethereum Classic của Ethereum.
Ethereum Classic hard fork
Vào năm 2016, Ethereum thời điểm đó gặp phải một vụ hack, cộng đồng đã bỏ phiếu và cuối cùng đã có một hard fork diễn ra.
Chuỗi mới giữ nguyên tên Ethereum (ETH) và tập trung vào hiệu suất và khả năng mở rộng với Proof of Stake, còn chuỗi cũ mang tên Ethereum Classic (ETC) vẫn hoạt động theo cơ chế Proof of Work.
Cấu trúc dữ liệu trên 2 chain là giống nhau, do đó, nếu có một giao dịch hợp lệ trên Ethereum thì cũng sẽ hợp lệ trên Ethereum Classic và ngược lại.
Thời điểm đó đa phần mọi người nghĩ Ethereum Classic sẽ không còn được duy trì, vì vậy không để ý tới việc 2 chuỗi có thể bị lợi dụng tấn công phát lại. Sau đó, các thợ đào duy trì chuỗi ETC và nhận thấy rằng các giao dịch trên Ethereum vẫn có giá trị nếu được phát lại trên Ethereum Classic.
Các sàn giao dịch không để ý tới vấn đề này khi Ethereum fork diễn ra, khi đó, chỉ cần ai đó rút ETH từ sàn giao dịch, có thể nhận được số lượng ETC tương tự. Nhiều người đã lợi dụng lỗ hổng này để liên tục gửi và rút ETH trên sàn giao dịch để nhận thêm ETC. Cuối cùng, một vài sàn giao dịch như Yunbi và BTC-e đã thông báo họ bị tấn công phát lại và bị hack gần như tất cả số ETC.
Bitcoin Cash hard fork
Tương tự với trường hợp của Bitcoin Cash (BCH) và Bitcoin (BTC). Sau khi hard fork diễn ra vào T8/2017, với 1 BTC ban đầu, người dùng sẽ có 1 BTC và 1 BCH.
Sau đó đã xuất hiện một số trường hợp khi giao dịch BTC, lịch sử giao dịch cũng cho thấy số BCH cũng biến mất theo. Lý do là bởi bị kẻ xấu sử dụng replay attack để tấn công.
Do là hard fork, giao dịch trên cả 2 chuỗi đều hợp lệ. Hacker theo dõi giao dịch của người dùng trên một chain sau đó copy, thực hiện lại giao dịch đó trên chain còn lại. Điều này dẫn tới việc người dùng giao dịch trên mạng lưới Bitcoin nhưng lại bị mất tiền trên chuỗi Bitcoin Cash.
Hậu quả của replay attack
Trên thực tế, replay attack không được đánh giá là hình thức tấn công an ninh mạng nghiêm trọng do vẫn tồn tại những giới hạn nhất định và có nhiều biện pháp để ngăn chặn, trong crypto cũng mới chỉ được sử dụng chủ yếu trong các đợt hard fork blockchain.
Tin tặc sẽ không thể xâm nhập toàn bộ dữ liệu khi đang được chuyển tiếp vì nếu làm vậy sẽ bị hệ thống từ chối, điều này làm tác động đến giới hạn hiệu quả của vụ hack. Tuy nhiên, một các lỗ hổng replay attack xuất hiện và bị tận dụng sẽ gây ra tổn thất tương đối lớn cho cả mạng lưới và người dùng.
Ở các thị trường truyền thống, tấn công phát lại có thể được sử dụng để chiếm quyền truy cập thông tin lưu trữ trên một mạng lưới bằng cách chuyển tiếp các thông tin được xem là hợp lệ. Hình thức này cũng có thể được dùng để qua mặt các tổ chức quản lý tài chính để sao chép các giao dịch, giúp hacker chiếm đoạt tiền từ tài khoản của nạn nhân.
Cách phòng chống replay attack
Ở thị trường crypto, các hacker thường chỉ có thể tận dụng tấn công phát lại với các lỗ hổng khi các blockchain phân tách hard fork. Tuy nhiên ở thời điểm hiện tại, phần lớn các blockchain khi hard fork đều đã bổ sung các giao thức bảo mật được thiết kế riêng biệt để ngăn chặn hình thức tấn công này.
Trong đó có 2 nhóm công cụ nổi bật:
- “Strong replay protection”: Một điểm đánh dấu (marker) sẽ được tự động thêm vào blockchain mới được tách ra sau khi phân tách, điều này đảm bảo các giao dịch thực hiện trên blockchain mới sẽ không còn hợp lệ trên blockchain ban đầu và ngược lại.
- “Opt-in replay protection”: Khi người dùng thực hiện giao dịch trên một chain, sẽ phải tự đánh dấu các giao dịch đó để chúng trở thành không hợp lệ ở chain còn lại. Điều này nghĩa là người dùng sẽ phải thực hiện thủ công các thay đổi cho giao dịch của mình.
Ngoài ra, người dùng cũng có thể tự chủ động bảo vệ tài sản của mình bằng cách tránh giao dịch trong thời gian các hard fork mới diễn ra. Nếu không có giao dịch diễn ra, hacker sẽ không có giao dịch để replay trên chain mới.
Với các lĩnh vực khác
Replay attack không chỉ xuất hiện ở thị trường crypto mà còn hiện hữu ở nhiều lĩnh vực khác trong cuộc sống hằng ngày. Tuy nhiên, cũng có nhiều cách để phòng chống lại hình thức tấn công này:
- Mật khẩu một lần: Sử dụng mật khẩu chỉ được áp dụng một lần cho mỗi giao dịch. Phương pháp này thường được sử dụng bởi các ngân hàng.
- Thêm dấu thời gian (timestamp) trên các tin nhắn: Điều ngăn tin tặc gửi lại các tin nhắn trước đó, và giúp loại bỏ các yêu cầu vượt quá khung thời gian được quy định.
- Session key: Gần giống với phương pháp sử dụng mật khẩu một lần, đây là một loại khóa đối xứng sử dụng một lần được sử dụng để mã hóa tất cả các tin nhắn trong một phiên giao tiếp.
Tổng kết
Replay attack không phải là hình thức tấn công an ninh mạng quá phổ biến, đặc biệt là trong thị trường crypto. Tuy nhiên, hình thức tấn công này có thể tận dụng lỗ hổng hệ thống mà không cần thực hiện giải mã dữ liệu phức tạp.
Việc biết cách hình thức gian lận này hoạt động để phòng tránh và giảm thiểu rủi ro mất tài sản sẽ không bao giờ là thừa.