Giới thiệu
Ngày 14 tháng 10 năm 2014, một lỗ hổng trong phiên bản 3 của giao thức mã hóa SSL đã được tiết lộ. Lỗ hổng này, gọi là con chó XÙ (Padding Oracle trên hạ cấp di sản mã hóa), cho phép kẻ tấn công để đọc thông tin được mã hóa với phiên bản này của các giao thức văn bản thuần tuý bằng cách sử dụng một người đàn ông ở giữa cuộc tấn công.
Mặc dù SSLv3 là một phiên bản cũ của giao thức mà chủ yếu là lỗi thời, nhiều phần của phần mềm vẫn còn rơi trở lại vào SSLv3 nếu lựa chọn mã hóa tốt hơn không có sẵn. Quan trọng hơn, nó có thể cho kẻ tấn công để buộc SSLv3 kết nối nếu nó là một thay thế có sẵn cho cả hai người tham gia cố kết nối.
Các lỗ hổng POODLE ảnh hưởng đến bất kỳ dịch vụ hoặc khách hàng mà làm cho nó có thể giao tiếp bằng cách sử dụng SSLv3. Bởi vì đây là một lỗi với thiết kế giao thức, và không phải là một vấn đề thực hiện, mỗi phần của phần mềm sử dụng SSLv3 là dễ bị tổn thương.
Để biết thêm thông tin về các lỗ hổng, tham khảo thông tin CVE tìm thấy tại CVE-2014-3566.
Các lỗ hổng POODLE là gì?
Các lỗ hổng POODLE là một điểm yếu trong phiên bản 3 của giao thức SSL cho phép kẻ tấn công trong một bối cảnh người đàn ông ở giữa để giải mã nội dung văn bản thuần tuý của thư được mã hoá SSLv3.
Những người bị ảnh hưởng bởi lỗ hổng này?
Lỗ hổng này ảnh hưởng đến tất cả các phần của phần mềm có thể được ép vào giao tiếp với SSLv3. Điều này có nghĩa rằng bất kỳ phần mềm nào thực hiện một cơ chế dự phòng bao gồm hỗ trợ SSLv3 là dễ bị tổn thương và có thể được khai thác.
Một số phần phổ biến của phần mềm có thể bị ảnh hưởng là trình duyệt web, máy chủ web, máy chủ VPN, máy chủ mail, vv.
Nó hoạt động như thế nào?
Trong ngắn hạn, các lỗ hổng POODLE tồn tại bởi vì giao thức SSLv3 không kiểm tra đầy đủ các byte đệm được gửi với thư được mã hoá.
Kể từ khi chúng không thể xác minh nhận bên, một kẻ tấn công có thể thay thế này và vượt qua chúng trên để có nghĩa. Khi thực hiện một cách cụ thể, tải trọng sửa đổi sẽ có khả năng được chấp nhận bởi người nhận mà không có khiếu nại.
Trung bình một lần trên mỗi yêu cầu 256 sẽ chấp nhận tại các điểm đến, cho phép những kẻ tấn công để giải mã một byte duy nhất. Điều này có thể được lặp lại một cách dễ dàng để dần dần giải mã byte bổ sung. Bất kỳ kẻ tấn công có thể nhiều lần ép buộc một người tham gia để gửi lại dữ liệu bằng cách sử dụng giao thức này có thể phá vỡ mã hóa trong một khoảng thời gian rất ngắn.
Làm thế nào tôi có thể bảo vệ bản thân mình?
Hành động cần được thực hiện để đảm bảo rằng bạn không phải dễ bị tổn thương trong vai trò của bạn là một khách hàng và máy chủ. Kể từ khi mã hóa thường được thương lượng giữa khách hàng và máy chủ, nó là một vấn đề có liên quan đến cả hai bên.
Máy chủ và khách hàng cần phải thực hiện các bước để vô hiệu hóa SSLv3 hỗ trợ hoàn toàn. Nhiều ứng dụng sử dụng mã hóa tốt hơn theo mặc định, nhưng thực hiện SSLv3 hỗ trợ như là một lựa chọn dự phòng. Điều này nên được vô hiệu hóa, như một người sử dụng độc hại có thể lực lượng SSLv3 giao tiếp nếu cả hai người tham gia cho phép nó như là một phương pháp chấp nhận được.
Làm thế nào để bảo vệ các ứng dụng phổ biến
Dưới đây, chúng tôi sẽ bao gồm làm thế nào để vô hiệu hoá SSLv3 trên một số máy chủ ứng dụng phổ biến. Chăm sóc để đánh giá máy chủ của bạn để bảo vệ bất kỳ dịch vụ bổ sung mà có thể dựa vào mã hóa SSL/TCP.
Bởi vì các lỗ hổng POODLE không đại diện cho một vấn đề thực hiện và là một vấn đề cố hữu với các giao thức toàn bộ, có là không có giải pháp và các giải pháp chỉ đáng tin cậy là không sử dụng nó.
Máy chủ Nginx Web
Để vô hiệu hóa SSLv3 trong máy chủ web Nginx, bạn có thể sử dụng chỉ thị ssl_protocols. Điều này sẽ được đặt trong các khối máy chủ hoặc http trong cấu hình của bạn.
Ví dụ, trên Ubuntu, bạn có thể thêm này trên toàn cầu để /etc/nginx/nginx.conf bên trong của khối http, hoặc để mỗi khối máy chủ trong thư mục /etc/nginx/sites-enabled.
sudo nano /etc/nginx/nginx.conf
Để vô hiệu hóa SSLv3, chỉ thị ssl_protocols của bạn nên được đặt như thế này:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
Bạn nên khởi động lại máy chủ sau khi bạn đã thực hiện các sửa đổi trên:
sudo dịch vụ nginx khởi động lại
Apache Web Server
Để vô hiệu hóa SSLv3 trên máy chủ web Apache, bạn sẽ cần phải điều chỉnh chỉ thị SSLProtocol cung cấp bởi các mô-đun mod_ssl.
Chỉ thị này có thể được đặt ở cấp độ hệ phục vụ hoặc trong một cấu hình máy chủ ảo. Tùy thuộc vào cấu hình Apache của bạn phân phối, cấu hình SSL có thể được đặt trong một tập tin riêng biệt có nguồn gốc.
Trên Ubuntu, máy chủ toàn đặc điểm kỹ thuật cho máy chủ có thể được điều chỉnh bằng cách chỉnh sửa tập tin /etc/apache2/mods-available/ssl.conf. Nếu mod_ssl được kích hoạt, một liên kết tượng trưng sẽ kết nối tập tin này với thư mục con kích hoạt mods:
sudo nano /etc/apache2/mods-available/ssl.conf
Trên CentOS, bạn có thể có thể điều chỉnh này trong tập tin cấu hình SSL nằm ở đây (nếu SSL được kích hoạt):
sudo nano /etc/httpd/conf.d/ssl.conf
Bên trong, bạn có thể tìm thấy chỉ thị SSLProtocol. Nếu điều này không có sẵn, tạo ra nó. Sửa đổi này để loại bỏ một cách rõ ràng hỗ trợ cho SSLv3:
SSLProtocol tất cả – SSLv3-SSLv2
Lưu và đóng tập tin. Khởi động lại dịch vụ để cho phép thay đổi của bạn.