Bảo mật & quyền riêng tư

Công cụ tự lưu trữ mới tlswatch kiểm toán chứng chỉ TLS và hỗ trợ giao thức cũ

tlswatch là một binary mã nguồn mở mới giúp giám sát thời hạn hết hiệu lực của chứng chỉ TLS, tính hợp lệ của chuỗi chứng chỉ và việc chấp nhận các giao thức cũ trên bất kỳ cổng hoặc địa chỉ nào.

Minh họa một dashboard giám sát hiển thị trạng thái máy chủ và các biểu tượng khóa bảo mật
Ảnh minh họa tạo riêng cho bài viết

Bài được dịch tự động từ bản gốc tiếng Anh.

Một tiện ích tự lưu trữ (self-hosted) mới có tên là tlswatch đã ra mắt nhằm giúp các đội ngũ hạ tầng giám sát tình trạng sức khỏe và bảo mật của các cấu hình Transport Layer Security (TLS). Được phát triển bởi Sjoerd305, công cụ này vượt xa các cảnh báo hết hạn đơn thuần bằng cách kiểm toán chuỗi chứng chỉ, độ mạnh của chữ ký số và sự hiện diện của các giao thức đã bị loại bỏ như TLS 1.0. Nó hoạt động dưới dạng một binary Go duy nhất với backend SQLite, được thiết kế để dễ dàng triển khai trong các môi trường mà các đội ngũ tự quản lý stack phần mềm của họ.

Chuyện gì đã xảy ra

tlswatch chủ động thăm dò các hostname và địa chỉ IP để kiểm tra các chứng chỉ TLS đang được cung cấp. Khác với các trình giám sát uptime tiêu chuẩn chỉ kiểm tra xem cổng HTTPS có mở hay không, công cụ này xem xét mọi địa chỉ đứng sau một tên miền. Khả năng này rất quan trọng để phát hiện các node lỗi thời ẩn sau load balancer vẫn đang phục vụ các chứng chỉ đã hết hạn hoặc cấu hình sai. Hệ thống hỗ trợ kiểm tra trên bất kỳ cổng nào, xử lý cả giao thức implicit TLS và STARTTLS được sử dụng bởi các dịch vụ như SMTP, IMAP, POP3, FTP và PostgreSQL.

Công cụ cũng thực hiện các cuộc kiểm toán cấu hình sâu. Nó chạy các bài kiểm tra hàng ngày để xác định các máy chủ vẫn chấp nhận kết nối không an toàn qua SSL 3.0, TLS 1.0 hoặc TLS 1.1. Nó đánh giá các bộ mã hóa (cipher suites) để tìm điểm yếu, bao gồm các tùy chọn export-grade, NULL, anonymous, DES, RC4 và 3DES. Dựa trên những phát hiện này, tlswatch gán một hạng cấu hình từ A đến F cho mỗi mục tiêu, cung cấp lý do rõ ràng cho bất kỳ điểm trừ nào. Nó cũng phát hiện các trường hợp ngoại lệ như chứng chỉ RSA được phục vụ cùng với chứng chỉ ECDSA, hoặc chứng chỉ mặc định được phục vụ mà không có Server Name Indication (SNI), điều có thể làm hỏng một số client cụ thể.

Chi tiết chính

  • Triển khai single binary: Ứng dụng chạy dưới dạng một binary Go duy nhất với giao diện web và cơ sở dữ liệu SQLite, không yêu cầu thêm dịch vụ nào khác.
  • Hỗ trợ giao thức toàn diện: Kiểm tra bất kỳ cổng nào cho implicit TLS hoặc STARTTLS, bao phủ các dịch vụ email, cơ sở dữ liệu và truyền tệp.
  • Phát hiện giao thức cũ: Xác định các máy chủ chấp nhận TLS 1.0, 1.1 hoặc SSL 3.0 và xếp hạng bảo mật cấu hình từ A đến F.
  • Thăm dò phân tán: Sử dụng các "node" để thăm dò các mạng nội bộ mà máy chủ chính không thể tiếp cận, tự động cập nhật chính chúng.
  • Đối chiếu Certificate Transparency: So sánh các chứng chỉ được phát hành công khai với những chứng chỉ thực tế đang được phục vụ để phát hiện các chứng chỉ không sử dụng hoặc giả mạo.
  • Cảnh báo linh hoạt: Gửi thông báo qua email, Telegram, Slack, Discord, ntfy hoặc webhook, hỗ trợ xác nhận hàng loạt.

Bối cảnh

Transport Layer Security (TLS) là giao thức tiêu chuẩn để mã hóa dữ liệu truyền qua internet. Trong khi hầu hết các quản trị viên giám sát ngày hết hạn của chứng chỉ để ngăn chặn sự cố gián đoạn dịch vụ, bảo mật của một triển khai TLS phụ thuộc vào nhiều hơn chỉ là thời hạn hiệu lực. Các máy chủ cũng phải thực thi các tiêu chuẩn mật mã mạnh mẽ và từ chối các giao thức lỗi thời dễ bị tấn công. Các giao thức cũ như TLS 1.0 và 1.1 có những điểm yếu đã biết và bị các tổ chức ngành lớn loại bỏ, nhưng chúng thường vẫn được bật theo mặc định hoặc do yêu cầu của các ứng dụng cũ.

Certificate Transparency (CT) là một hệ thống sổ cái công khai ghi lại tất cả các chứng chỉ TLS được phát hành. Giám sát các log CT giúp các tổ chức phát hiện việc phát hành chứng chỉ trái phép. Tuy nhiên, việc một chứng chỉ xuất hiện trong log không đảm bảo rằng nó được triển khai đúng cách trên các máy chủ dự kiến. Các công cụ chỉ giám sát log CT có thể bỏ sót các lỗi cấu hình, trong khi các công cụ chỉ kiểm tra máy chủ trực tiếp có thể bỏ sót các lần phát hành trái phép. tlswatch lấp đầy khoảng trống này bằng cách đối chiếu dữ liệu phát hành công khai với các cuộc thăm dò máy chủ trực tiếp.

Tại sao điều này quan trọng

Đối với các đội ngũ vận hành phần mềm tự lưu trữ, việc duy trì tư thế bảo mật TLS phức tạp. Hạ tầng thường bao gồm sự pha trộn giữa các máy chủ web hướng ra công chúng và các dịch vụ nội bộ như cơ sở dữ liệu hoặc máy chủ thư điện tử sử dụng STARTTLS. Các trình giám sát uptime tiêu chuẩn thường coi TLS là một hộp đen, chỉ xác minh rằng kết nối có thể được thiết lập. Họ hiếm khi kiểm tra chuỗi chứng chỉ, kiểm tra các bộ mã hóa yếu hoặc xác thực rằng tất cả các địa chỉ IP đứng sau load balancer đều sử dụng chứng chỉ chính xác. Điểm mù này có thể dẫn đến các lỗ hổng bảo mật hoặc các sự cố ngắt quãng khó chẩn đoán.

tlswatch giải quyết những khoảng trống này bằng cách cung cấp một cái nhìn tổng quan về tình trạng sức khỏe của chứng chỉ và bảo mật cấu hình. Bằng cách gán hạng cho mỗi mục tiêu, nó cung cấp cho các nhà vận hành một cách nhanh chóng để ưu tiên nỗ lực khắc phục. Khả năng thăm dò các mạng nội bộ thông qua các node phân tán có nghĩa là ngay cả các dịch vụ bị cô lập khỏi internet công cộng cũng có thể được giám sát để tuân thủ các chính sách bảo mật. Điều này đặc biệt có giá trị đối với các tổ chức cần thực thi các tiêu chuẩn mật mã nghiêm ngặt trên toàn bộ hạ tầng của họ, chứ không chỉ các trang web công khai.

Bạn có thể làm gì

  • Triển khai một instance thử nghiệm: Sử dụng tệp Docker Compose được cung cấp để chạy tlswatch cục bộ và khám phá giao diện của nó mà không cam kết vào thiết lập production.
  • Kiểm toán các dịch vụ nội bộ: Cấu hình các node để thăm dò các cổng nội bộ như 587 cho SMTP hoặc 5432 cho PostgreSQL để đảm bảo STARTTLS được triển khai chính xác.
  • Xem xét các hạng cấu hình: Kiểm tra bảng xếp hạng A-F cho các endpoint công khai của bạn để xác định và vô hiệu hóa các giao thức cũ như TLS 1.0 hoặc các bộ mã hóa yếu.
  • Giám sát Certificate Transparency: Kích hoạt chế độ theo dõi CT để nhận cảnh báo nếu các chứng chỉ được phát hành cho tên miền của bạn nhưng không được phục vụ bởi hạ tầng đã biết của bạn.
  • Xuất dữ liệu kiểm kê: Sử dụng tính năng xuất CSV để duy trì một bản ghi bên ngoài về tất cả các chứng chỉ, ngày hết hạn của chúng và nơi chúng được phục vụ.
  • Tích hợp với các cảnh báo hiện có: Kết nối tlswatch với các kênh thông báo hiện tại của bạn, chẳng hạn như Slack hoặc Telegram, để đảm bảo các cảnh báo về chứng chỉ đến được với đúng thành viên nhóm.

Tin khác

Tất cả tin