Một nghiên cứu mới đã tiết lộ các lỗ hổng bảo mật lan rộng trong các trình phân tích tệp ZIP có thể cho phép kзлоумышленники bỏ qua hệ thống bảo mật và can thiệp vào các tệp đã được ký. Nghiên cứu này, được thực hiện bằng cách sử dụng một công cụ fuzzer khác biệt có tên ZipDiff, đã kiểm tra 50 trình phân tích ZIP khác nhau trên 19 ngôn ngữ lập trình và phát hiện rằng hầu như tất cả các cặp trình phân tích đều dễ bị tổn thương bởi một số sự mơ hồ trong phân tích cú pháp.
Gốc rễ của những vấn đề này nằm ở chính đặc tả định dạng tệp ZIP, được định nghĩa không chính xác. Điều này tạo ra những khoảng trống ngữ nghĩa giữa các triển khai khác nhau mà kẻ tấn công có thể khai thác. Mặc dù các lỗ hổng riêng lẻ thuộc loại này đã được báo cáo trước đây, nhưng đây là nghiên cứu có hệ thống đầu tiên về sự không nhất quán trong phân tích cú pháp ZIP.
Phạm vi Nghiên cứu:
- 50 trình phân tích ZIP được kiểm tra trên 19 ngôn ngữ lập trình
- 14 loại mơ hồ phân tích cú pháp riêng biệt được xác định (10 loại mới được phát hiện)
- 5 kịch bản tấn công thực tế được chứng minh
- 3 CVE được cấp phát ( Go , LibreOffice , Spring Boot )
- Phần thưởng bounty nhận được từ Gmail , Coremail , và Zoho
Các kịch bản tấn công thực tế được chứng minh
Các nhà nghiên cứu đã thành công chứng minh năm kịch bản tấn công thực tế khai thác những khác biệt trong phân tích cú pháp này. Bao gồm việc bỏ qua các gateway email bảo mật, giả mạo nội dung tài liệu office, mạo danh các extension VS Code, và can thiệp vào các tệp JAR đã được ký trong khi vẫn vượt qua được xác minh chữ ký của Spring Boot.
Tuy nhiên, một số chuyên gia bảo mật trong cộng đồng đã lưu ý rằng mặc dù nghiên cứu này có giá trị, nhưng nhiều phát hiện thực tế có thể có tác động hạn chế trong thế giới thực. Các cuộc tấn công thường yêu cầu thuyết phục mục tiêu tải các tệp do kẻ tấn công kiểm soát, và nhiều hệ thống bảo mật có thể bị bỏ qua đã có những điểm yếu khác đã được biết đến.
Các Loại Tấn Công Được Chứng Minh:
- Vượt qua các cổng email bảo mật
- Giả mạo nội dung tài liệu văn phòng
- Mạo danh các tiện ích mở rộng VS Code
- Can thiệp vào các tệp JAR lồng nhau đã được ký
- Đánh bại các máy quét antivirus và công cụ phát hiện đạo văn
Bối cảnh lịch sử và các lỗ hổng tương tự
Loại lỗ hổng này không hoàn toàn mới. Lỗ hổng Android Master Key được phát hiện nhiều năm trước đã khai thác những khác biệt phân tích cú pháp ZIP tương tự. Các thành viên cộng đồng cũng đã chỉ ra rằng các cuộc tấn công có thể so sánh đã tồn tại cho các định dạng tệp khác, với một người lưu ý rằng các cuộc tấn công khác biệt tương tự từng cho phép hình ảnh PNG hiển thị nội dung hoàn toàn khác nhau trên các trình duyệt web khác nhau.
Nghiên cứu này dựa trên một lịch sử lâu dài của các cuộc tấn công khác biệt trình phân tích, nơi các hệ thống bảo mật tại các điểm khác nhau trong mạng hoặc ngăn xếp ứng dụng diễn giải cùng một tệp khác nhau, tạo ra cơ hội khai thác.
Phản ứng của ngành và nỗ lực giảm thiểu
Các nhà nghiên cứu đã tiết lộ có trách nhiệm các phát hiện của họ cho các nhà cung cấp bị ảnh hưởng và nhận được phản hồi tích cực, bao gồm phần thưởng tiền thưởng từ Gmail, Coremail, và Zoho. Ba CVE đã được gán cho các lỗ hổng được tìm thấy trong Go, LibreOffice, và Spring Boot. Bài báo cũng đề xuất bảy chiến lược giảm thiểu để giải quyết những sự mơ hồ này.
Nếu mọi người đều có cùng một trình phân tích thì toàn bộ các lớp lỗi sẽ không còn có thể khai thác được. Lỗi cổ điển là một trình phân tích ở rìa xác thực một cái gì đó và xa hơn trong dòng thấy một kết quả khác mà nó mong đợi sẽ bị từ chối trong quá trình xác thực.
Một số người trong cộng đồng bảo mật đề xuất rằng việc sử dụng các triển khai trình phân tích nhất quán có thể giúp giảm những lỗ hổng này, mặc dù những người khác lập luận rằng điều này có thể tạo ra rủi ro mới bằng cách tập trung bề mặt tấn công. Vấn đề cơ bản vẫn là chính đặc tả định dạng ZIP cần định nghĩa tốt hơn và kiểm tra tuân thủ để ngăn chặn những sự mơ hồ này xảy ra ngay từ đầu.
Nghiên cứu này làm nổi bật những thách thức đang diễn ra trong bảo mật định dạng tệp và tầm quan trọng của nghiên cứu lỗ hổng có hệ thống trong việc xác định các vấn đề lan rộng có thể không được chú ý.
Tham khảo: My ZIP isn't your ZIP: Identifying and Exploiting Semantic Gaps Between ZIP Parsers