Tiêu đề máy chủ bị lộ và rủi ro an ninh mạng


Máy chủ web của bạn truyền tải nhiều thông tin cho khách hàng khi khách truy cập mở trang web của bạn. Họ có thể truy cập các chính sách cụ thể mà bạn đã đặt và đôi khi xác định loại phần mềm bạn sử dụng để chạy hệ thống của mình. Đôi khi, điều đó không sao. Những lần khác, thông tin bị lộ trong tiêu đề máy chủ của bạn có thể dẫn trực tiếp đến một cuộc tấn công mạng độc hại.

Bài viết này cung cấp thông tin tổng quan về cách máy chủ web giao tiếp với tiêu đề HTTP, tiếp theo là các phát hiện rủi ro cho biết liệu thông tin máy chủ của bạn có bị lộ bởi tiêu đề phản hồi quá chi tiết hay không.

Tiêu đề máy chủ là gì?

Mỗi trang web được lưu trữ trên một máy chủ web đóng vai trò trung gian giữa yêu cầu của khách hàng và phản hồi của trang web. Khi bạn nhập một miền vào trình duyệt của mình, bạn sẽ gửi yêu cầu truy xuất trang web được xác định bằng URL đó. Máy chủ web nhận yêu cầu HTTP và trả về các tệp cần thiết để hiển thị ứng dụng web.

Máy chủ web sử dụng Giao thức truyền siêu văn bản (HTTP) và Giao thức truyền siêu văn bản An toàn (HTTPS), là các giao thức truyền dữ liệu cho internet. Cả HTTP và HTTPS đều trao đổi tài nguyên giữa máy khách và máy chủ trên internet. Tuy nhiên, HTTPS cung cấp các biện pháp bảo mật bổ sung không có sẵn với HTTP, chẳng hạn như Bảo mật lớp truyền tải (TLS) thông qua việc bổ sung chứng chỉ SSL và chính sách HTTPS Strict-Transport-Security (HSTS) để thực thi các kết nối an toàn. Các lớp bảo mật bổ sung này bổ sung xác thực và xác thực cho giao tiếp web.

Tóm lại, máy khách gửi một yêu cầu API, máy chủ gửi phản hồi. Tiêu đề phản hồi HTTP chuyển tiếp thông tin về máy chủ gốc đến máy khách kết nối, bao gồm mục tiêu chuyển hướng, chi tiết phần mềm và tuổi của thông tin được lưu trong bộ nhớ cache. Vì các tiêu đề này được cấu hình trên máy chủ, bạn có thể thiết lập các chính sách để quản lý thông tin nào có sẵn công khai cho máy khách. Cú pháp cho tiêu đề HTTP sử dụng cặp khóa-giá trị không phân biệt chữ hoa chữ thường để chỉ định chức năng.

Cách đọc tiêu đề máy chủ HTTP

Bạn có thể truy cập mã trạng thái HTTP và tiêu đề HTTP đầy đủ (cả tiêu đề yêu cầu và tiêu đề phản hồi) bằng cách truy cập tab mạng của trình duyệt hoặc bằng cách sử dụng [.rt-script]curl[.rt-script].

Đối với trang web mẫu, nhấp chuột trái và chọn tùy chọn Kiểm tra để mở bảng điều khiển dành cho nhà phát triển, sau đó điều hướng đến tab Mạng. Làm mới trang để tải thông tin, sau đó chọn bất kỳ thứ gì từ danh sách để mở bảng Tiêu đề. Bạn có thể truy cập thông tin về yêu cầu chung, bao gồm URL yêu cầu (trang web bạn muốn truy cập), loại yêu cầu (thường là yêu cầu [.rt-script]GET[.rt-script]) và các chi tiết khác như chính sách liên kết giới thiệu. Bạn cũng có thể đọc các tiêu đề phản hồi và tiêu đề yêu cầu, bao gồm các tiêu đề như [.rt-script]Access-Control-Max-Age[.rt-script] để cho biết độ dài bộ nhớ đệm, [.rt-script]Content-Type[.rt-script] để chỉ ra thông tin tài nguyên phương tiện, [.rt-script]Content-Length[.rt-script] cung cấp kích thước tài nguyên, [.rt-script]Content-Encoding[.rt-script] để quản lý nén, [.rt-script]Set-Cookie[.rt-script] để gửi cookie đến tác nhân người dùng, cũng như nhiều tiêu đề khác chi phối máy khách-máy chủ Truyền thông.

Để truy xuất tiêu đề trong thiết bị đầu cuối, hãy chạy [.rt-script]curl -v example.com[.rt-script] trong thiết bị đầu cuối của bạn để truy xuất tiêu đề cho trang web [.rt-script]example.com[.rt-script]. Tùy chọn [.rt-script]-v[.rt-script], bạn cũng có thể chỉ định với [.rt-script]--verbose[.rt-script], sẽ trả về nhiều thông tin hơn. Kết quả kết quả sẽ thêm [.rt-script]>[.rt-script] cho tiêu đề yêu cầu HTTP và [.rt-script]<[.rt-script] cho tiêu đề phản hồi và dữ liệu trang web.

Một số tiêu đề đặt điều kiện để quản lý cách các trình duyệt web như Chrome hoặc Mozilla Firefox phục vụ ứng dụng web, chẳng hạn như tiêu đề [.rt-script]Access-Control-Allow-Origin[.rt-script] để chia sẻ tài nguyên nguồn gốc chéo (CORS). Để bảo vệ thêm, các tiêu đề như [.rt-script]X-Frame-Options[.rt-script], [.rt-script]X-XSS-Protection[.rt-script] và [.rt-script]X-Content-Type-Options[.rt-script] giới hạn hiển thị trang web dựa trên các mối quan tâm cụ thể xung quanh click-jacking, các cuộc tấn công kịch bản chéo trang web và các vấn đề với các loại phương tiện Multipurpose Internet Mail Extension (MIME).

Vì thông tin được truyền tải trong các trường tiêu đề phản hồi HTTP được cung cấp công khai cho bất kỳ ai truy cập vào trang web của bạn, nên mọi thông tin nhạy cảm trong tiêu đề sẽ mở rộng bề mặt tấn công tiềm ẩn của bạn. Thông tin tiêu đề có thể được thu thập theo chương trình, điều này làm cho lưu lượng truy cập internet với thông tin công khai trở thành mục tiêu của tin tặc.

Rủi ro phơi nhiễm tiêu đề HTTP

Bằng cách xác định rủi ro tiếp xúc với tiêu đề phản hồi của máy chủ HTTP, bạn có thể thực hiện các thay đổi cấu hình để giới hạn thông tin được truyền tải trong tiêu đề phản hồi. Mặc dù bạn có thể thực hiện việc này theo cách thủ công, nhưng có nhiều công cụ có sẵn để tự động hóa, bao gồm UpGuard BreachSight.

Ngoài nhiều rủi ro liên quan đến HTTP, BreachSight xác định khi tiêu đề trang web của bạn tiết lộ thông tin máy chủ với các phát hiện rủi ro sau:

  • Tiêu đề thông tin máy chủ bị lộ
  • Sử dụng ASP.NET được hiển thị qua tiêu đề
  • Phiên bản ASP.NET cụ thể được hiển thị qua tiêu đề
  • Tiêu đề X-Powered-By lộ ra

Kết quả hiển thị tiêu đề thông tin máy chủ xác định xem thông tin phiên bản máy chủ có được tiết lộ trong tiêu đề hay không. Nếu có thể truy cập phiên bản máy chủ, kẻ tấn công tiềm năng có thể khai thác bất kỳ lỗ hổng nào ảnh hưởng đến phiên bản đó. Hạn chế lộ thông tin trong tiêu đề sẽ giúp bạn thu hẹp khả năng tin tặc độc hại khai thác hệ thống của bạn. Bất kỳ kiến thức nào liên quan đến các phiên bản có thể đặc biệt bất lợi đối với các hệ thống chạy trên các phiên bản phần mềm cũ hơn, vì những phiên bản đó có thể không nhận được các bản vá hỗ trợ cho các lỗ hổng bảo mật.

Vì một số công nghệ điền tiêu đề [.rt-script]server[.rt-script] theo mặc định, nên việc bảo vệ hệ thống của bạn có thể yêu cầu cấu hình bổ sung để đảm bảo rằng thông tin này được xóa, biên tập hoặc giới hạn chi tiết. Ví dụ, nếu bạn đang sử dụng máy chủ Apache, bạn không thể biên tập hoàn toàn thông tin máy chủ nhưng bạn có thể cấu hình chỉ thị để gửi thông tin hạn chế hoặc sử dụng máy chủ proxy. Ngược lại, Internet Information Services (IIS) của Microsoft là một máy chủ web có thể mở rộng có thể được thiết lập với quy tắc viết lại URL để thay thế tiêu đề.

Vì thông tin tiêu đề được hiển thị chỉ định thông tin phần mềm, BreachSight có hai phát hiện bổ sung để sử dụng ASP.NET: Sử dụng ASP.NET được hiển thị qua tiêu đề và Phiên bản ASP.NET cụ thể được hiển thị qua tiêu đề. ASP.NET là một khung web mã nguồn mở tương thích với hầu hết các hệ điều hành, bao gồm macOS, Linux và Microsoft (cũng như các vùng chứa Docker). Cài đặt mặc định của máy chủ web IIS thường bao gồm các tiêu đề [.rt-script]X-AspNet-Version[.rt-script] và [.rt-script]X-Powered-By[.rt-script], cả hai đều chỉ ra rằng máy chủ web sử dụng ASP.NET. Nếu thông tin này được truyền tải đến khách hàng, thì khách truy cập trang web của bạn sẽ biết rằng ASP. NET đang được sử dụng và IIS đang chạy trên hệ thống của bạn. Những kẻ tấn công độc hại có thể tận dụng thông tin đó làm trinh sát để chuẩn bị cho các hành vi đe dọa dựa trên các lỗ hổng IIS và ASP.NET. Bạn có thể sửa đổi cài đặt của mình trong giao diện người dùng quản trị IIS để xóa tiêu đề [.rt-script]X-Powered-By[.rt-script], đặt quy tắc [.rt-script]URLRewrite [.rt-script] cho một trong hai tiêu đề hoặc sửa đổi phần [.rt-script]<system.web>[.rt-script] của tệp [.rt-script]web.config[.rt-script] để xóa tiêu đề [.rt-script]X-AspNet-Version[.rt-script].

Tiêu đề [.rt-script]X-Powered-By[.rt-script] tiết lộ thông tin về nhiều dịch vụ đang được sử dụng, không chỉ ASP.NET, vì vậy BreachSight cũng quét phát hiện được hiển thị của tiêu đề X-Powered-By. Tùy thuộc vào dịch vụ, bạn có thể cần thực hiện các bước cấu hình bổ sung để hạn chế lộ thông tin. Ví dụ: nếu máy chủ của bạn chạy PHP, bạn sẽ cần tắt cài đặt [.rt-script]expose_php[.rt-script] trong tệp [.rt-script]php.ini[.rt-script]. Xem lại tài liệu về công nghệ được sử dụng trên hệ thống của bạn để xác định cách vô hiệu hóa thông tin tiêu đề máy chủ hiển thị thông tin hệ thống.

Giám sát các tiêu đề máy chủ của bạn trên cơ sở định kỳ có thể giúp bạn xác định thông tin tiêu đề bị lộ. Một giải pháp tự động để giám sát liên tục đảm bảo rằng bạn có thể ưu tiên tăng cường và cấu hình máy chủ.

Với UpGuard, bạn có thể yên tâm rằng bề mặt tấn công bên ngoài của mình được giám sát liên tục. Nền tảng thân thiện với người dùng của chúng tôi cung cấp bảng điều khiển trực quan và thuận tiện để giúp bạn cập nhật thông tin về tình trạng an ninh mạng và bảo mật máy chủ của mình. Nhận cảnh báo về các rủi ro tiềm ẩn để bạn có thể tập trung nguồn lực của mình vào nơi cần thiết nhất. Miền của bạn được quét hàng ngày để đảm bảo báo cáo theo thời gian thực.

Để tìm hiểu loại vấn đề nào gây rủi ro cho hệ thống của bạn, hãy đăng nhập và truy cập Hồ sơ rủi ro của bạn. Bạn sẽ được thông báo về phát hiện cụ thể cũng như bất kỳ tài sản nào bị ảnh hưởng bởi rủi ro. Để biết thêm thông tin về các rủi ro khác liên quan đến SSL/TLS và HTTP, hãy đọc các bài đăng của chúng tôi về hết hạn chứng chỉ SSL, phát hiện SSL không khả dụng, SSL yếu, SSL được định cấu hình sai, chuyển hướng HTTPS, rủi ro HSTS và cấu hình Chính sách bảo mật nội dung.