95% máy chủ HTTPS có thể bị tấn công vì thiếu những dòng code này

Báo cáo mới nhất cho thấy chỉ 5% máy chủ web được cài đặt cơ chế bảo mật quan trọng này!

Theo báo cáo mới nhất của hãng bảo mật Netcraft, chỉ có 5% máy chủ web hiện nay được cài đặt HSTS (HTTP Strict Transport Security), đồng nghĩa với 95% còn lại sẽ đứng trước nguy cơ bị tấn công trong quá trình kết nối giữa server và client. Giới hacker hẳn sẽ rất vui khi biết được thông tin này, vì những phương thức phishing, pharming và man-in-the-middle (MiTM) sẽ giúp họ dễ dàng tấn công người dùng khi họ vô tình truy cập một trang web an toàn qua HTTP.

HSTS là một tính năng bảo mật cho phép một website thông báo cho các trình duyệt chỉ nên giao tiếp bằng giao thức HTTPS an toàn thay vì HTTP. Bằng cách thêm một cờ (flag) vào phần header mà một trình duyệt web nhận được khi gửi yêu cầu tới máy chủ, HSTS đảm bảo rằng tất cả kết nối sau đó tới một website được mã hóa bằng giao thức HTTPS và ngăn chặn hacker sử dụng chứng chỉ số không hợp lệ.

Như vậy, 95% website hiện tại không cài đặt HSTS có thể bị tấn công khi người dùng kết nối qua HTTP thay vì HTTPS hoặc website đó hỗ trợ cả hai giao thức. Ngoài ra, những website sử dụng dịch vụ HTTP để chuyển hướng người dùng đến địa chỉ HTTPS tương ứng cũng đứng trước nguy cơ bị khai thác qua phương thức man-in-the-middle.

Đơn giản vì khi người dùng nhập URL không chứa https://, trình duyệt sẽ thực hiện kết nối HTTP không được mã hóa trước khi chuyển tiếp – hacker sẽ khai thác lỗ hổng trong quá trình này.

Với những website đã được cài đặt HSTS, trình duyệt sẽ chỉ kết nối qua HTTPS – ngay cả khi người dùng không gõ HTTPS khi truy cập URL. Việc cấu hình HSTS cũng khá đơn giản đối với Apache2, Nginx và Lighttpd. Dưới đây là hướng dẫn cài đặt đối với nginx 1.1.19, Lighthttpd 1.4.28, Apache 2.2.22 trên Ubuntu 12.04, Debian 6 & 7 và CentOS 6 (tham khảo LINK)

Apache

Thêm đoạn mã sau vào cấu hình trong Virtual Host trên port 443

# Optionally load the headers module:

LoadModule headers_module modules/mod_headers.so

Header always set Strict-Transport-Security “max-age=63072000; includeSubdomains; preload”

Cấu hình việc tự chuyển từ HTTP sang HTTPS trong cấu hình Virtual Host trên port 80

[…]

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Restart lại Apache

Lighthttpd

Thêm đoạn mã sau vào file cấu hình của Lighthttpd (ví dụ /etc/lighthttpd/lighthttpd.conf)

server.modules += ( “mod_setenv” )

$HTTP[“scheme”] == “https” {

setenv.add-response-header = ( “Strict-Transport-Security” => “max-age=63072000; includeSubdomains; preload”)

}

Restart lại Lighthttpd

Nginx

Thêm đoạn mã sau vào file cấu hình của Nginx (ví dụ /etc/nginx/nginx.conf)

add_header Strict-Transport-Security “max-age=63072000; includeSubdomains; preload”;

Restart lại Nginx