4 lỗ hổng trong giao thức HTTP/2 cho phép hacker đánh sập máy chủ
Nếu bạn nghĩ rằng giao thức HTTP/2 an toàn hơn giao thức chuẩn HTTP thì bạn đã đã nhầm. Giao thức HTTP/2 chính thức hoạt động vào tháng 5/2015 sau khi Google tích hợp dự án SPDY của mình vào HTTP/2 nhằm tăng tốc khả năng tải trang web cũng như cải thiện trải nghiệm người dùng trực tuyến. Tại hội ...
Nếu bạn nghĩ rằng giao thức HTTP/2 an toàn hơn giao thức chuẩn HTTP thì bạn đã đã nhầm.
Giao thức HTTP/2 chính thức hoạt động vào tháng 5/2015 sau khi Google tích hợp dự án SPDY của mình vào HTTP/2 nhằm tăng tốc khả năng tải trang web cũng như cải thiện trải nghiệm người dùng trực tuyến. Tại hội nghị BlackHat, các nhà nghiên cứu bảo mật thuộc công ty Imperva đã tiết lộ chi tiết về ít nhất 4 lỗ hổng nghiêm trọng trong HTTP/2.
Các lỗ hổng cho phép tin tặc làm chậm máy chủ web bằng cách làm ngập lụt (floading) với những thông điệp chứa payload nhiều gigabyte dữ liệu. Khiến máy chủ rơi vào vòng lặp vô hạn và thậm chí gây sập toàn bộ hệ thống.
Giao thức HTTP/2 có thể chia thành ba lớp:
- Lớp giao vận (transmission layer) bao gồm điều khiển stream, frame và flow
- HPACK mã hóa nhị phân và giao thức nén
- Lớp ngữ nghĩa (semantic) – một phiên bản nâng cao của HTTP/1.1
Các nhà nghiên cứu đã đào sâu tìm hiểu cài đặt máy chủ HTTP/2 từ Apache, Microsoft, NGINX, Jetty và nghttp2 và phát hiện ra lỗ hổng khai thác trên toàn bộ các cài đặt này.
4 lỗ hổng lớn trong HTTP/2 bao gồm
1. Slow Read (CVE-2016-1546)
Đây là kiểu tấn công giống với tấn công từ chối dịch vụ phân tán Slowloris. Tấn công Slow Read gọi đến một client độc hại nhằm đọc phản hồi một cách chậm chạp. Tấn công Slow Read đã được nghiên cứu kĩ lưỡng tại hệ sinh thái HTTP/1.x nhưng nó vẫn tồn tại trong lớp ứng dụng (application layer) của HTTP/2.
2. HPACK Bomb (CVE-2016-1544, CVE-2016-2525)
HPACK Bomb là cuộc tấn công vào lớp nén (compression layer). HPACK được sử dụng để giảm thiểu dung lượng gói tin header. Thông thường, người gửi có thể cho người nhận biết được dung lượng tối đa của header được nén, sử dụng để giải mã header.
Trong cuộc tấn công này, hacker tiềm năng sẽ tạo ra một thông điệp nhỏ nhưng thực ra sẽ giải nén nhiều gigabyte dữ liệu trên máy chủ, điều này khiến tiêu tốn bộ nhớ tài nguyên máy chủ gây ra chậm chạp và treo hệ thống nạn nhân.
3, Tấn công vòng phụ thuộc
Đây là kiểu tấn công lợi dung cơ chế kiểm soát luồng mà HTTP/2 sử dụng để tối ưu mạng. Một client có ý đồ xấu có thể tạo ra request gay ra vòng phụ thuộc, từ đó khiến máy chủ rơi vào vòng lặp vô hạn. Lỗ hổng cho phép tin tặc tấn công từ chối dịch vụ hoặc thực thi mã tùy ý trên hệ thống.
4. Stream Multiplexing (CVE-2016-0150)
Kiểu tấn này cho phép tin tặc khai thác lỗ hổng trong cách cài đặt chức năng stream multiplexing nhằm gây treo máy chủ.
Cả 4 lỗ hổng đều đã được sửa chữa trong HTTP/2. Giao thức này hiện đang được sử dụng trong hơn 85 triệu website (~9% toàn bộ website trên Internet). Chi tiết báo cáo về lỗ hổng có thể xem tại đây.
THN