Lỗ hổng HTTPOXY: Cách bảo vệ và kiểm tra máy chủ web của bạn

theanh

Administrator
Nhân viên
Lỗ hổng HTTPOXY mới được phát hiện gần đây là lỗ hổng ảnh hưởng đến các ứng dụng chạy trong môi trường cgi hoặc cgi-like. Điều này có nghĩa là sự cố ảnh hưởng đến hầu hết các máy chủ web bao gồm Apache và Nginx và hầu hết các ứng dụng PHP. Ngay cả chế độ mod_php trên apache cũng bị ảnh hưởng.

Hướng dẫn này sẽ chỉ cho bạn cách bảo vệ máy chủ web của mình khỏi HTTPOXY. Hướng dẫn này bao gồm các phần dành cho các bản phân phối Linux được sử dụng nhiều nhất là CentOS + RHEL, Debian và Ubuntu. Các bước này cũng có thể áp dụng cho các bản phân phối Linux khác, nhưng đường dẫn đến các tệp cấu hình có thể khác nhau.

Bạn có thể tìm thấy mô tả chi tiết về lỗ hổng HTTPOXY trên trang web này https://httpoxy.org/.

Các bước được mô tả trong hướng dẫn này tương thích với hướng dẫn về máy chủ hoàn hảo ISPConfig.


1 HTTPOXY ảnh hưởng đến máy chủ của tôi như thế nào?​

HTTPOXY ảnh hưởng đến các máy khách tôn trọng biến HTTP_PROXY và sử dụng biến này cho cấu hình proxy và phía máy chủ của họ các ứng dụng sử dụng HTTP_PROXY làm biến thực hoặc biến mô phỏng trong môi trường của chúng. Kết quả của một cuộc tấn công có thể là lưu lượng được ứng dụng web chuyển tiếp đến hệ thống mục tiêu do kẻ tấn công chọn hoặc ứng dụng mở các kết nối đi đến các hệ thống khác. Lỗ hổng này dễ dàng bị khai thác từ xa và máy chủ có thể được quét để tìm lỗ hổng, do đó, bạn nên thực hiện các hành động để đóng lỗ hổng trên máy chủ của mình.


1.1 Giải pháp chung​

Giải pháp được khuyến nghị tại thời điểm này là bỏ đặt hoặc lọc biến tiêu đề HTTP_PROXY. Điều này được thực hiện trong apache với mô-đun mod_headers và câu lệnh cấu hình này:
Mã:
RequestHeader unset Proxy early
Trên Nginx, bạn có thể sử dụng dòng này để bỏ đặt biến HTTP_PROXY.
Mã:
fastcgi_param HTTP_PROXY "";
Chương tiếp theo mô tả quy trình chi tiết cho các Bản phân phối Linux khác nhau.


2 Debian​

Chương này mô tả cấu hình để bảo vệ Apache và Nginx trên máy chủ Debian 8 (Jessie) và Debian 7 (Wheezy) khỏi HTTPOXY. Các bước tiếp theo giả định rằng bạn đã đăng nhập với tư cách là người dùng root trên shell. Nếu bạn đăng nhập dưới một người dùng khác, hãy sử dụng lệnh su (hoặc sudo nếu bạn đã cấu hình sudo) để trở thành người dùng root.


2.2 Debian 8 (Jessie) với Apache​

Bật mô-đun tiêu đề apache
Mã:
a2enmod headers
Thêm tệp cấu hình toàn cục /etc/apache2/conf-available/httpoxy.conf. Tôi sẽ sử dụng trình chỉnh sửa nano tại đây:
Mã:
nano/etc/apache2/conf-available/httpoxy.conf
và dán nội dung sau vào tệp đó:
Mã:
 RequestHeader unset Proxy early
Lưu tệp. Sau đó bật nó trong cấu hình bằng lệnh a2enconf và khởi động lại apache.
Mã:
a2enconf httpoxy
service apache2restart

2.2 Debian 7 (Wheezy) với Apache​

Bật mô-đun tiêu đề apache:
Mã:
a2enmod headers
Thêm tệp cấu hình toàn cục /etc/apache2/conf.d/httpoxy.conf. Tôi sẽ sử dụng trình chỉnh sửa nano ở đây:
Mã:
nano/etc/apache2/conf.d/httpoxy.conf
và dán nội dung sau vào tệp đó:
Mã:
 RequestHeader unset Proxy early
Lưu tệp. Sau đó khởi động lại apache.
Mã:
service apache2restart

Debian 2.3 với Nginx​

Lệnh sau sẽ thêm fastcgi_param để đặt biến HTTP_PROXY thành một chuỗi rỗng vào tệp /etc/nginx/fastcgi_params.
Mã:
echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params
Sau đó khởi động lại nginx để áp dụng thay đổi cấu hình.
Mã:
service nginx restart

3 Ubuntu​

Chương này mô tả cấu hình để bảo vệ Apache và Nginx trên máy chủ Ubuntu 14.04 - 16.04 chống lại HTTPOXY.


3.1 Ubuntu với Apache​

Kích hoạt mô-đun tiêu đề apache.
Mã:
sudo a2enmod headers
Thêm tệp cấu hình toàn cục /etc/apache2/conf-available/httpoxy.conf. Tôi sẽ sử dụng trình soạn thảo nano ở đây:
Mã:
sudo nano/etc/apache2/conf-available/httpoxy.conf
và dán nội dung sau vào tệp đó:
Mã:
 RequestHeader unset Proxy early
Lưu tệp. Sau đó bật tệp trong cấu hình bằng lệnh a2enconf và khởi động lại apache.
Mã:
sudo a2enconf httpoxy
sudo service apache2 restart

3.2 Ubuntu với Nginx​

Các bước bảo vệ Ubuntu khỏi HTTPOXY tương tự như các bước dành cho Debian. Chúng ta chỉ cần đảm bảo chạy các lệnh bằng sudo. Lệnh echo này sẽ thêm một dòng fastcgi_param đặt biến HTTP_PROXY thành một chuỗi rỗng. Tệp /etc/nginx/fastcgi_params được bao gồm trong các phần @PHP và cgi-bin mặc định của các tệp vhost nginx và cũng có trong các vhost được ISPConfig tạo ra. Nếu bạn đã thêm các vhost tùy chỉnh, hãy kiểm tra xem chúng có chứa "include /etc/nginx/fastcgi_params;" không. trong phần cấu hình cho php và các cgi hoặc fastcgiconnector khác.

Chạy lệnh sau để thêm biến HTTP_PROXY trống.
Mã:
sudo echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params
Sau đó khởi động lại Nginx để áp dụng thay đổi cấu hình.
Mã:
sudo service nginx restart

4 CentOS, RHEL và Fedora​

Chương này mô tả cấu hình để bảo vệ Apache và Nginx trên máy chủ CentOS chống lại HTTPOXY. Các bước tương tự cũng có thể áp dụng cho máy chủ Fedora. Đăng nhập với tư cách là người dùng root trên shell trước khi bạn tiến hành các lệnh bên dưới.


4.1 Apache​

Tệp cấu hình Apache (httpd) trên CentOS là /etc/httpd/conf/httpd.conf. Tôi sẽ thêm quy tắc tiêu đề apache vào cuối tệp httpd.conf bằng lệnh này:
Mã:
echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.conf
Sau đó khởi động lại httpd để áp dụng thay đổi cấu hình.
Mã:
service httpd restart

4.2 Nginx​

Máy chủ web Nginx trên CentOS bao gồm fastcgi_params vào phần PHP và CGI của vhost mặc định, vì vậy chúng ta có thể thêm quy tắc để đặt biến HTTP_PROXY trống tại đó. Chạy lệnh này để thêm biến HTTP_PROXY trống.
Mã:
echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params
Sau đó khởi động lại nginx để áp dụng thay đổi cấu hình.
Mã:
service nginx restart

5 Test​

Cuối cùng, bạn nên kiểm tra xem máy chủ của mình có an toàn không. Luke Rehman đã phát triển một công cụ kiểm tra trực tuyến tuyệt vời mà bạn có thể tìm thấy tại đây:https://httpoxy.rehmann.co/

Nhập URL đến máy chủ hoặc trang web của bạn vào công cụ và nhấp vào nút "test".



Đây là kết quả cho howtoforge.com. Như bạn thấy, trang web của chúng tôi an toàn.


6 Liên kết​

 
Back
Bên trên