Các nhà nghiên cứu bảo mật đã trình diễn một kỹ thuật khéo léo khai thác hash collision MD5 để có thể vượt qua các hệ thống phát hiện webshell tự động. Bằng chứng khái niệm này bao gồm hai tệp có hash MD5 giống hệt nhau nhưng nội dung hoàn toàn khác biệt - một tệp xuất hiện như một webshell độc hại và tệp kia như dữ liệu ngẫu nhiên.
Cuộc trình diễn này làm nổi bật một điểm yếu cơ bản trong các hệ thống bảo mật dựa vào hash MD5 để nhận dạng tệp và lưu cache. Cả hai tệp đều tạo ra cùng một hash MD5 (b719a17ae091ed45fb874c15b2d9663f) mặc dù có nội dung nhị phân khác nhau, với webshell chứa mã PHP có thể thực thi trong khi tệp bình thường chỉ gồm các byte dường như ngẫu nhiên.
So sánh tệp tin:
- Cả hai tệp tin: Kích thước 512 byte
- MD5 hash giống hệt nhau:
b719a17ae091ed45fb874c15b2d9663f
- webshell.php: Chứa mã PHP có thể thực thi
<?=eval($_GET[1]);?>
- normal.php: Chứa dữ liệu nhị phân ngẫu nhiên bắt đầu bằng các ký tự 'x' lặp lại
Tác Động Thực Tế Hạn Chế Do Các Thực Hành Bảo Mật Hiện Đại
Cộng đồng an ninh mạng đã có những phản ứng trái chiều về ý nghĩa thực tiễn của kỹ thuật này. Nhiều chuyên gia chỉ ra rằng các hệ thống bảo mật hiện đại phần lớn đã chuyển sang không sử dụng hash MD5 do các lỗ hổng đã biết. Hầu hết các giải pháp quét bảo mật và antivirus đương đại hiện tại sử dụng các phương án bảo mật hơn như SHA-256 hoặc sử dụng đồng thời nhiều thuật toán hash để ngăn chặn chính xác loại tấn công này.
Kỹ thuật này chỉ có hiệu quả đối với các hệ thống sử dụng MD5 để cache kết quả quét và cho phép thay thế tệp chỉ dựa trên việc khớp hash. Những tình huống như vậy ngày càng hiếm trong cơ sở hạ tầng bảo mật hiện đại, vì hầu hết các nhà cung cấp đã loại bỏ MD5 từ nhiều năm trước do các điểm yếu mật mã của nó.
Thách Thức Kỹ Thuật và Vấn Đề Phát Hiện
Các nhà phân tích bảo mật đã lưu ý một số hạn chế thực tế với cách tiếp cận này. Tệp bình thường trong cuộc trình diễn không chứa mã PHP hợp lệ, khiến nó trở nên đáng nghi với bất kỳ máy quét bảo mật có năng lực nào phân tích nội dung tệp thay vì chỉ dựa vào giá trị hash. Một cuộc tấn công tinh vi hơn sẽ yêu cầu tệp vô hại phải chứa mã hợp pháp, có chức năng phục vụ một mục đích thực sự.
Tệp bình thường không trông bình thường lắm, một nhà nghiên cứu bảo mật nhận xét, nhấn mạnh cách mà bản chất nhị phân của tệp collision có thể sẽ kích hoạt sự giám sát bổ sung từ các hệ thống phát hiện hiện đại.
Hơn nữa, kịch bản tấn công yêu cầu các điều kiện rất cụ thể: kẻ tấn công phải có thể tải lên các tệp được quét, có những tệp đó được thực thi sau khi được coi là an toàn, và gặp phải một hệ thống sử dụng MD5 để xác định có nên quét lại tệp hay không.
Những Khác Biệt Chính Trong Hex Dumps:
- Bytes 0x00-0x0F: webshell.php chứa mã PHP, normal.php có các ký tự 'x'
- Bytes 0x10-0x2F: Các mẫu dữ liệu ngẫu nhiên khác nhau
- Bytes 0x30-0x200: Hầu như giống hệt nhau với những biến thể nhỏ tại các offset cụ thể
Ý Nghĩa Rộng Hơn Đối Với Bảo Mật Dựa Trên Hash
Mặc dù cuộc trình diễn cụ thể này có thể có tác động thực tế hạn chế, nó đóng vai trò như một lời nhắc nhở quan trọng về các rủi ro đang diễn ra khi sử dụng các hàm mật mã đã lỗi thời. Kỹ thuật này cho thấy tại sao việc ngành bảo mật chuyển đổi khỏi MD5 là cần thiết và tiếp tục có ý nghĩa.
Nghiên cứu này cũng làm nổi bật tầm quan trọng của các chiến lược phòng thủ nhiều tầng. Các hệ thống bảo mật chỉ dựa vào nhận dạng tệp dựa trên hash vốn dễ bị tổn thương trước các cuộc tấn công collision, bất kể thuật toán hash cụ thể nào được sử dụng. Các cách tiếp cận bảo mật hiện đại thường kết hợp nhiều phương pháp phát hiện, bao gồm phân tích hành vi, kiểm tra nội dung và nhiều thuật toán hash.
Cuộc trình diễn này gia nhập vào bộ sưu tập ngày càng tăng các khai thác collision MD5 sáng tạo, bao gồm các ví dụ nổi tiếng PoC||GTFO đã tạo ra các tệp hoạt động như cả tài liệu PDF và chương trình thực thi trong khi duy trì các giá trị hash giống hệt nhau. Những nghiên cứu như vậy tiếp tục nhấn mạnh tầm quan trọng cực kỳ cần thiết của việc sử dụng các hàm hash mật mã hiện đại, kháng collision trong các ứng dụng bảo mật.
Tham khảo: Webshell Collision