Bảo mật

Cách báo cáo lỗ hổng trong ZoPanel, phạm vi áp dụng, thời gian phản hồi, cam kết bảo vệ pháp lý cho nhà nghiên cứu thiện chí và cách bản vá bảo mật tới server của bạn.

Bản nháp — cần được luật sư xem xét trước khi công bố.

ZoPanel quản lý những server lưu trữ website và email của người khác, vì vậy báo cáo bảo mật luôn được ưu tiên trước hết. Nếu bạn tin rằng mình đã tìm thấy một lỗ hổng, chúng tôi rất mong được nghe và sẽ cùng bạn khắc phục. Trang này là chính sách công bố lỗ hổng của chúng tôi; bản cho máy đọc là security.txt (RFC 9116).

Báo cáo lỗ hổng

Gửi ticket trên trang hỗ trợ với danh mục Báo cáo bảo mật. Ticket chỉ bạn và đội ngũ của chúng tôi xem được (không phải diễn đàn công khai), và ticket gửi từ tài khoản đã đăng nhập giúp chúng tôi trao đổi trực tiếp với bạn.

Vui lòng cung cấp:

  • phiên bản ZoPanel (zopanel version, hoặc Cài đặt → Cập nhật) và hệ điều hành;
  • thành phần bị ảnh hưởng (panel web, một endpoint API, agent root, bộ cài đặt, kênh cập nhật, module billing, website zopanel.net hoặc license server);
  • các bước tái hiện chi tiết, kèm vai trò tài khoản đã dùng (quản trị viên, đại lý hay khách hàng);
  • theo đánh giá của bạn, kẻ tấn công có thể làm được gì;
  • bạn có muốn được ghi công không, và dưới tên nào.

Không công bố trước khi có bản vá. Vui lòng không đăng chi tiết, mã chứng minh (proof of concept) hay mã khai thác (trên diễn đàn, hệ thống quản lý lỗi, blog hay mạng xã hội) trước khi bản vá được phát hành và chúng tôi đã thống nhất ngày công bố với bạn.

Thời gian phản hồi mục tiêu

Bước Mục tiêu
Xác nhận đã nhận báo cáo Trong 2 ngày làm việc
Đánh giá ban đầu và mức độ nghiêm trọng Trong 5 ngày làm việc
Bản vá cho lỗi nghiêm trọng (critical) Phát hành trong 24 đến 72 giờ sau khi xác nhận lỗi
Bản vá cho lỗi mức cao (high) Phát hành trong 7 ngày
Bản vá cho lỗi mức trung bình và thấp Trong bản phát hành định kỳ, hướng tới 90 ngày

Đây là mục tiêu, không phải cam kết theo hợp đồng. Chúng tôi cập nhật tiến độ cho bạn trong quá trình khắc phục, thống nhất ngày công bố với bạn và mô tả bản vá trong nhật ký thay đổi sau khi phát hành, kèm ghi công nếu bạn muốn.

Phạm vi

Trong phạm vi

  • Panel: chương trình zopanel, giao diện web và API, agent root cùng ranh giới giữa hai bên, cơ chế cách ly từng tài khoản (file, tiến trình, PHP, database, mail, ứng dụng Docker), web terminal, trình quản lý file, sao lưu, khôi phục và nhập dữ liệu, API cấp phát và các module WHMCS, Blesta, HostBill, Paymenter.
  • Bộ cài đặt: install.sh và những gì nó thiết lập trên server.
  • Kênh cập nhật: update.zopanel.net, manifest phát hành có chữ ký, việc kiểm tra chữ ký, cơ chế bảo vệ khi cập nhật và rollback.
  • zopanel.net và license server: website, tài khoản khách hàng, thanh toán và license.zopanel.net (kiểm tra license, khi lỗi ảnh hưởng tới an toàn server của khách hàng).

Ví dụ những gì chúng tôi đặc biệt muốn biết: một khách hosting đọc hoặc sửa được dữ liệu của khách khác; bất kỳ con đường nào từ khách hàng, đại lý hoặc API token tới quyền root hay quyền quản trị viên; vượt qua xác thực hoặc xác thực hai lớp; thực thi mã từ xa; chèn nội dung vào cấu hình server; cách khiến server chấp nhận một bản cập nhật không do ZoPanel ký.

Ngoài phạm vi

  • Từ chối dịch vụ: tấn công bằng lưu lượng lớn, kiểm thử tải, làm cạn tài nguyên của zopanel.net hoặc license server.
  • Lừa đảo phi kỹ thuật, phishing hay tấn công vật lý nhắm vào nhân viên, khách hàng hoặc nhà cung cấp của chúng tôi.
  • Lỗi của chính các ứng dụng bên thứ ba (WordPress và plugin, ứng dụng trong Kho ứng dụng như Nextcloud hay Gitea, nginx, PHP, MariaDB, Postfix…) không do cách ZoPanel cài đặt hoặc cấu hình gây ra. Hãy báo cho nhà phát triển của phần mềm đó; đồng thời cho chúng tôi biết nếu ZoPanel nên có biện pháp giảm thiểu.
  • Phát hiện cần quyền root, truy cập vật lý, hoặc cần tài khoản quản trị viên chỉ để gây hại cho chính server của quản trị viên đó.
  • Thư rác, thiếu header bảo mật hoặc khuyến nghị thực hành tốt mà không chứng minh được tác động.
  • Website và ứng dụng do khách hàng của chúng tôi lưu trữ trên server ZoPanel.

Cách kiểm thử

  • Chỉ kiểm thử trên server bạn sở hữu hoặc được phép kiểm thử. Hãy cài ZoPanel lên VPS của chính bạn; gói Free đủ cho phần lớn các nghiên cứu.
  • Không truy cập, sửa hoặc xoá dữ liệu không thuộc về bạn. Nếu vô tình truy cập được dữ liệu của người khác, hãy dừng lại, không lưu giữ và báo cho chúng tôi.
  • Không làm suy giảm zopanel.net hay license server đối với người dùng khác: quét ở mức nhẹ nhàng, hoặc không quét.

Bảo vệ pháp lý (safe harbor)

Nếu bạn hành động thiện chí và tuân theo chính sách này, chúng tôi sẽ:

  • coi hoạt động nghiên cứu của bạn là được phép, và không khởi kiện hay hỗ trợ khởi kiện bạn vì hoạt động đó;
  • không báo cáo bạn với cơ quan chức năng vì những hoạt động tuân theo chính sách này;
  • cùng bạn tìm hiểu và giải quyết vấn đề nhanh chóng;
  • ghi công công khai nếu bạn muốn.

Thiện chí nghĩa là: bạn báo cáo kịp thời cho chúng tôi, tránh xâm phạm quyền riêng tư, phá huỷ dữ liệu và gián đoạn dịch vụ, không khai thác lỗ hổng vượt quá mức cần thiết để chứng minh, và cho chúng tôi thời gian hợp lý để khắc phục trước khi công bố. Cam kết này chỉ áp dụng cho quyền khiếu nại của chính chúng tôi; chúng tôi không thể cho phép kiểm thử hệ thống thuộc về người khác. Nếu chưa chắc chắn, hãy hỏi chúng tôi trước. Hiện chúng tôi chưa có chương trình thưởng lỗi (bug bounty) trả phí.

Bản vá tới server của bạn như thế nào

  • Bản phát hành có chữ ký. ZoPanel là một file chạy duy nhất. Manifest phát hành được ký bằng khoá phát hành của ZoPanel (Ed25519) và ghi SHA-256 của từng file; panel từ chối bản cập nhật có chữ ký hoặc checksum không khớp. Bộ cài đặt cũng được ký (install.sh.sig), và hướng dẫn cài đặt chỉ cách kiểm tra trước khi chạy.
  • Cập nhật có bảo vệ. Mỗi lần cập nhật đều chụp lại database của panel, kiểm tra sức khoẻ phiên bản mới và tự rollback nếu phiên bản đó không chạy ổn. Xem Cập nhật ZoPanel.
  • Bản phát hành bảo mật được đánh dấu. Bản phát hành sửa lỗ hổng mang cờ security trong manifest có chữ ký và dòng "Security:" ở đầu mục của nó trong nhật ký thay đổi. Khi đó panel hiển thị mục Đã có ZoPanel X ở mức cảnh báo trong Cần bạn xử lý trên trang tổng quan của quản trị viên, và chủ các server có license còn chạy bản cũ nhận email nhắc cập nhật. Bật Tự động cập nhật trong Cài đặt → Cập nhật để cài bản mới lúc 04:00 giờ server.
  • Gói của hệ điều hành. Bộ cài đặt bật tự động cài bản vá bảo mật của bản phân phối (unattended-upgrades), và từ 0.4.27 có cả kho PHP. Trung tâm bảo mật trên trang Bảo mật cho biết bản vá còn chờ và khi nào cần khởi động lại sau khi cập nhật kernel.
  • Những gì chúng tôi theo dõi. Chúng tôi theo dõi các nguồn lỗ hổng công khai (OSV, GitHub advisories, thông báo bảo mật của Ubuntu và Debian, danh mục Known Exploited Vulnerabilities của CISA, các bản phát hành Node.js, Go và PHP) cho mọi thứ ZoPanel đóng gói và cài đặt, để bản vá được chuẩn bị trước khi khách hàng phải hỏi.

ZoPanel được xây dựng để hạn chế tác động của một lỗi

Panel web không bao giờ chạy bằng root: nó chạy bằng một user không có đặc quyền dưới cơ chế hardening của systemd, và gửi yêu cầu tới một agent root riêng chỉ nhận một danh sách thao tác cố định, agent kiểm tra lại từng tham số. Mỗi tài khoản hosting chạy trong sandbox systemd riêng, thao tác file trong thư mục home chạy bằng chính user Linux của tài khoản đó, và ứng dụng Docker chạy trong user namespace. Đọc lý do trong Vì sao control panel hosting không bao giờ nên chạy bằng root, và chi tiết trong tài liệu Bảo mật.