Ngày 23/7/2024, website chính thức của Tổng thống Kenya bất ngờ bị thay đổi giao diện. Thay vì hình ảnh lãnh đạo, người dùng thấy một dòng chữ đòi 5 Bitcoin (khoảng 350.000 USD) và lời đe dọa công bố dữ liệu mật nếu không trả tiền. Vụ việc kết thúc nhanh chóng: chính phủ khôi phục trang web sau vài giờ, tuyên bố không có rò rỉ dữ liệu, và mở cuộc điều tra an ninh mạng.
Nhưng đối với tôi – một Core Protocol Developer đã audit hàng trăm smart contract – vụ tấn công này không đơn thuần là một tin tặc nhỏ lẻ. Code là thơ của logic, bug là vần sai. Ở đây, "vần sai" nằm ở lớp bảo mật web cổ điển, nhưng thứ khiến nó đáng chú ý là cách Bitcoin đóng vai trò công cụ đòi tiền chuộc. Hãy cùng tôi mổ xẻ từng lớp.
Hook: Một dòng code thiếu kiểm soát
Tôi cá rằng lỗ hổng không phải zero-day. Đó chỉ là một SQL injection hoặc file upload không được lọc đầu vào. Hãy tưởng tượng đoạn code PHP xử lý form liên hệ: