Bảo mật thông tin máy chủ web

webserverCác hệ thống ứng dụng web không cấu hình bảo mật cẩn thận thường sẽ cung cấp thông tin về loại máy chủ (Apache, IIS, Nginx ) và phiên bản của nó. Đối với người dùng thông thường thông tin này được bỏ qua. Tuy nhiên, nó lại có giá trị với hacker. Nếu các phiên bản của máy chủ web không cập nhật kịp thời các bản vá lỗi, các hacker sẽ chỉ cần sử dụng công cụ khai thác lổ hỗng như là một phần của cuộc tấn công vào máy chủ. Ngoài ra, hacker có thể lập trình hoặc sử dụng các công cụ tự động dò các phiên bản máy chủ web bị lỗi để tấn công khi cần thiết. Việc không phơi bày các thông tin máy chủ web và phiên bản đang sử dụng không phải hoàn toàn tránh đi cuộc tấn công mà chỉ làm khó khăn hơn với hacker mà thôi. Dù vậy, điều này vẫn xem là an toàn hơn và tránh được sự phát hiện của các công cụ rà quét tự động của hacker.
Sau đây là một ví dụ phần header được gửi từ một máy chủ web phơi bày quá nhiều thông tin:

HTTP/1.1 200 OK
Date: Thu, 12 Jun 2014 14:15:01 GMT
Server: Apache/2.2.21 (Win32) PHP/5.4.7
Content-Length:226
Connection: close
Content-Type: text/html; charset=iso-8859-1

Trong bài viết này, tôi sẽ hướng dẫn cách cấu hình 3 máy chủ web phổ biến nhất, Apache, IIS và Nginx, để hạn chế thông tin cung cấp về các ứng dụng máy chủ web được sử dụng.

Hạn chế thông tin cung cấp bởi Apache

Chúng ta có thể giới hạn các thông tin mà Apache trình bày bằng cách tạo hay chỉnh sửa các nội dung sau trong httpd.conf

ServerTokens Prod: cấu hình để Apache không gửi bất kỳ số phiên bản trong HTTP header, do đó các phiên bản máy chủ sẽ là: Server: Apache

ServerSignature Off  sẽ đảm bảo rằng Apache không hiển thị các phiên bản máy chủ trong phần footer của trang.

Các giải pháp trên sẽ vẫn không cho phép che giấu thực tế là máy chủ đang sử dụng Apache, vì HTTP header vẫn sẽ  cho biết là Apache. Điều này có thể được thay đổi bằng cách sử dụng tường lửa web như ModSecurity.

Hạn chế thông tin cung cấp bởi IIS

IIS cũng sẽ phơi bày phiên bản của nó trong phần phản hồi HTTP (HTTP responses). Microsoft cung cấp công cụ URLScan, có thể được sử dụng để loại bỏ thông tin phiên bản IIS trong HTTP responses. Phiên bản mới nhất của tường lửa web cho IIS được Microsoft cung cấp là URLRewrite với tính năng cao cấp hơn URLScan. Hướng dẫn chi tiết tại trang http://blogs.msdn.com/b/varunm/archive/2013/04/23/remove-unwanted-http-response-headers.aspx

Hạn chế thông tin cung cấp bởi nginx

Chúng ta có thể giới hạn các thông tin mà Apache trình bày bằng cách tạo hay chỉnh sửa các nội dung sau trong nginx.conf. Tìm phần http, phần này xác định cấu hình cho nginx của HttpCoreModule. Bỏ ghi chú (loại bỏ các ‘#’ biểu tượng) hoặc thêm nội dung dưới đây:

server_tokens off; sẽ cấu hình nginx không gửi bất kỳ số phiên bản trong tiêu đề HTTP. Tuy nhiên, các module nginx không thể được nạp tự động, bạn sẽ cần phải biên dịch lại nginx với các HttpHeadersMoreModule.

Huỳnh Hoàng Tân

 

Comments

comments