Điểm yếu và một số lỗ hổng

Một phần của tài liệu CƠ SỞ AN TOÀN THÔNG TIN Đề tài: TÌM HIỂU VỀ GIAO THỨC HTTP VÀ HTTPS (Trang 25 - 28)

Như với bất kỳ công nghệ nào, SSL / TLS có những sai sót. Một số lỗ hổng phổ biến nhất liên quan đến SSL 3.0,TLS 1.0 bao gồm Heartbleed, POODLE, BEAST, CRIME.

Trong bài báo cáo này chỉ nêu ra một số lỗ hổng cụ thể.

Lỗ hổng Heartbleed (CVE-2014-0160) được tìm phát hiện vào tháng 4 năm 2014. Đây là một lỗ hổng quan trọng dễ khai thác, là lỗ hổng trong OpenSSL, một thư viện mã nguồn mở dùng để triển khai TLS và SSL, được rất nhiều trang web lớn như Google, Facebook, Amazon sử dụng để bảo vệ việc truyền tải thông tin cá nhân của người dùng.

Cách hoạt động của Heartbleed:

- Một thứ quan trọng của giao thức TLS/SSL được gọi là Heartbeat. Về cơ bản, đây là cách hai máy tính liên lạc với nhau, cho nhau biết rằng chúng vẫn đang được kết nối ngay cả khi người dùng không downloading hoặc uploading bất cứ thứ gì ở thời điểm hiện tại. Ví dụ hai máy tính A và B đang kết nối với nhau. Thỉnh thoảng, máy tính A sẽ gửi một phần dữ liệu được mã hóa, được gọi là heartbeat request đến máy B. Máy tính B sẽ trả lời lại cùng với một phần dữ liệu được mã hóa, chứng minh rằng kết nối vẫn còn.

- Lỗ hổng Heartbleed xuất hiện do việc triển khai tính năng heartbeat của OpenSSL bị thiếu biện pháp bảo vệ quan trọng. Máy tính nhận được heartbeat request không bao giờ kiểm tra để đảm bảo yêu cầu xác thực, miễn là nó được yêu cầu. Vì vậy, nếu một request cho nó biết độ dài 40KB nhưng thực tế chỉ có 20KB, máy tính nhận sẽ dành ra 40KB bộ nhớ đệm. Sau đó lưu trữ 20KB mà nó thực sự nhận được, sau đó gửi lại 20KB đó cộng với bất cứ thứ gì trong bộ đệm để được

20KB nữa (vì heartbeat request yêu cầu 40KB). Như vậy kẻ tấn công đã thực hiện trích xuất được 20KB từ máy chủ.

- Phần quan trọng nhất trong cách hoạt động của Heartbleed: khi một máy tính hoạt động thì thông tin mà lưu ở bộ nhớ đệm vẫn tồn tại cho đến khi có thứ gì đó khác xuất hiện để ghi đè lên nó. Nếu là kẻ tấn công, bạn không có cách nào để biết trước những gì có thể ẩn trong 20KB bạn vừa lấy được từ máy chủ, nhưng vẫn tồn tại một cách nào đó. Bạn có thể nhận được các private key của SSL, cho phép giải mã thông tin liên lạc an toàn đến máy chủ đó (điều này tuy là khó xảy ra, nhưng đối với một kẻ tấn công thì chưa chắc chắn được).

Đã có những vụ khai thác bằng chứng về lỗ hổng này trong đó khóa riêng của máy chủ bị rò rỉ thông qua lỗ hổng Heartbleed. Ngày 15/4/2014 cơ quan thuế Canada cho biết mã số bảo hiểm xã hội của khoảng 900 người đã bị đánh cắp. Tin tặc lợi dụng lỗ hổng Heartbleed để xóa mã số của khoảng 900 đối tượng nộp phí bảo hiểm xã hội khỏi hệ thống.

Cách phòng chống: cập nhật lên phiên bản OpenSSL mới nhẩt.

Lỗ hổng POODLE (CVE -2014-3566): là một lỗ hổng bảo mật buộc hạ cấp giao thức phiên đã thương lượng xuống SSLv3.

Cách hoạt động của POODLE:

- Máy khách bắt đầu bắt tay và gửi danh sách các phiên bản SSL / TLS được hỗ trợ. Kẻ tấn công chặn lưu lượng, thực hiện tấn công Man-in-The-Middle (MiTM) và mạo danh máy chủ cho đến khi máy khách đồng ý hạ cấp kết nối xuống SSL 3.0 dễ bị tấn công.

- Bây giờ kết nối giữa máy khách và máy chủ đã được thiết lập trên phiên bản SSL dễ bị tấn công, kẻ tấn công có thể thực hiện cuộc tấn công POODLE. Vì mật mã khối có độ dài cố định, nếu dữ liệu trong khối cuối cùng không phải là bội số của kích thước của nó, thì phần đệm sẽ được thêm vào để lấp đầy khoảng trống thừa. Một trong những vấn đề là giá trị đệm bị máy chủ bỏ qua và chỉ kiểm tra xem độ dài đệm cũng như mã xác thực thông báo (MAC) của bản rõ có đúng hay không. Điều đó có nghĩa là người nhận (máy chủ) không thể xác

- Kẻ tấn công có thể giải mã giá trị bản rõ của một khối được mã hóa bằng cách sửa đổi các byte đệm và sau đó xem phản hồi tương ứng từ máy chủ. Cần tối đa 256 yêu cầu SSL 3.0 để giải mã một byte. Điều này có nghĩa là cứ sau 256 yêu cầu, máy chủ sẽ chấp nhận giá trị đã sửa đổi. Kẻ tấn công không cần biết phương pháp mã hóa hoặc khóa để thực hiện cuộc tấn công này. Sử dụng các công cụ tự động, kẻ tấn công có thể lấy ký tự bản rõ theo từng ký tự. Đây có thể dễ dàng là mật khẩu, cookie, phiên hoặc dữ liệu nhạy cảm khác.

Cách phòng chống:

- Tắt hoàn toàn SSL3.0 trên máy chủ (Khuyến nghị).

- Nâng cấp trình duyệt (máy khách) lên phiên bản mới nhất hoặc nếu vì lý do nào đó bạn cần sử dụng phiên bản cũ hơn, hãy đảm bảo tắt Giao thức SSL 2.0 và SSL 3.0.

Một phần của tài liệu CƠ SỞ AN TOÀN THÔNG TIN Đề tài: TÌM HIỂU VỀ GIAO THỨC HTTP VÀ HTTPS (Trang 25 - 28)

Tải bản đầy đủ (DOCX)

(44 trang)
w