Cơn ác mộng mang tên “Audit bảo mật” trước ngày Go-live
Bạn đã bao giờ thức trắng đêm chỉ để rà soát hàng nghìn dòng cấu hình trước giờ “bấm nút” Go-live chưa? Mình từng rơi vào hoàn cảnh đó khi sếp giao nhiệm vụ audit cụm 20 server CentOS 7 xử lý hơn 5.000 giao dịch/giây cho một ngân hàng. Yêu cầu đặt ra rất gắt: phải đạt chuẩn PCI-DSS 100%.
Lúc đó, mình bắt đầu bằng cách thủ công nhất: đối chiếu checklist với từng file config SSH, chính sách mật khẩu và phân quyền. Sau 16 giờ làm việc căng thẳng, mình mới xong đúng 2 server. Đầu óc quay cuồng và mình hiểu rằng sai sót là điều không thể tránh khỏi nếu cứ tiếp tục như vậy. May mắn thay, một đồng nghiệp Senior đã giới thiệu cho mình OpenSCAP.
Công cụ này đã thay đổi hoàn toàn cách mình vận hành. Ngay cả khi CentOS 8 khai tử và mình phải migrate gấp 5 server sang Rocky Linux trong 1 tuần, OpenSCAP vẫn giúp mình duy trì tiêu chuẩn bảo mật đồng nhất mà không tốn quá nhiều công sức.
Tại sao kiểm tra bảo mật thủ công luôn thất bại?
Quản lý một hệ thống Linux, dù là CentOS cũ hay các bản fork như Rocky/Alma, đòi hỏi nhiều hơn là chỉ cài Firewall hay SELinux. Thực tế cho thấy cách làm truyền thống thường gãy đổ vì ba lý do chính:
- Ma trận quy tắc khổng lồ: Các tiêu chuẩn như STIG có hơn 300 quy tắc khắt khe. Bạn không thể nhớ nổi việc phải chmod file nào hay tắt service nào chỉ bằng trí nhớ.
- Cấu hình bị trôi lệch (Configuration Drift): Một Engineer có thể mở port 22 cho toàn bộ Internet để debug nhanh rồi quên đóng lại. Chỉ một sơ suất nhỏ này cũng đủ khiến server của bạn “mở cửa” cho hacker.
- Báo cáo thiếu chuyên nghiệp: Khi đối tác yêu cầu minh chứng bảo mật, bạn không thể đưa cho họ một file text chắp vá. Bạn cần những con số và biểu đồ cụ thể.
OpenSCAP (Open Security Content Automation Protocol) là framework mã nguồn mở được thiết kế để xử lý đống lộn xộn này. Nó tự động hóa việc quét lỗ hổng, quản lý tuân thủ và đánh giá hệ thống theo các tiêu chuẩn quốc tế một cách chính xác.
Lựa chọn công cụ quét bảo mật phù hợp
Trên thị trường có rất nhiều lựa chọn, nhưng mình thường chia chúng thành 3 phân khúc:
- Script tự chế: Nhanh nhưng chắp vá, khó duy trì khi hệ thống mở rộng và cực kỳ dễ sót lỗi.
- Giải pháp trả phí (Nessus, Qualys): Tính năng cực mạnh, giao diện bóng bẩy nhưng chi phí có thể lên tới hàng nghìn USD mỗi năm. Đây là rào cản lớn cho các startup hoặc môi trường lab.
- OpenSCAP (OSCAP): Đây là “tiêu chuẩn vàng” cho hệ sinh thái RHEL. Nó miễn phí, tích hợp sẵn và sử dụng dữ liệu OVAL/XCCDF chính thống từ NIST.
Tin mình đi, OpenSCAP là lựa chọn tối ưu nhất vì nó giúp bạn luôn cập nhật các mã lỗi CVE mới nhất mà không tốn một xu phí bản quyền.
Quy trình triển khai OpenSCAP thực tế
Hãy cùng biến một server CentOS “trần trụi” thành một pháo đài bảo mật qua các bước dưới đây.
1. Cài đặt các gói thành phần
Bạn cần cài đặt openscap-scanner (trình thực thi) và scap-security-guide (thư viện quy tắc bảo mật).
sudo yum install openscap-scanner scap-security-guide -y
Sau khi cài đặt, toàn bộ dữ liệu chuẩn bảo mật sẽ nằm tại /usr/share/xml/scap/ssg/content/. Bạn có thể liệt kê chúng bằng lệnh ls đơn giản.
2. Xác định Profile mục tiêu
Mỗi loại server cần một mức độ bảo mật khác nhau. Server chạy Web nội bộ không cần gắt gao như Server chứa dữ liệu thẻ tín dụng. Để xem danh sách các profile hỗ trợ cho CentOS 7, hãy chạy:
oscap info /usr/share/xml/scap/ssg/content/ssg-centos7-ds.xml
Màn hình sẽ hiển thị các tùy chọn như: PCI-DSS v3 Control Baseline hoặc Standard System Security Profile. Hãy chọn ID profile phù hợp với nhu cầu của bạn.
3. Thực thi lệnh quét hệ thống
Để quét server theo chuẩn Standard và xuất báo cáo dạng HTML chuyên nghiệp, bạn sử dụng lệnh sau:
oscap xccdf eval \
--profile xccdf_org.ssgproject.content_profile_standard \
--report report.html \
/usr/share/xml/scap/ssg/content/ssg-centos7-ds.xml
Lệnh này sẽ rà soát toàn bộ hệ thống. Kết quả được đóng gói vào file report.html để bạn dễ dàng trình bày với cấp trên.
4. Phân tích và khắc phục lỗi
Mở file report.html bằng trình duyệt, bạn sẽ thấy các mục Pass (Xanh) và Fail (Đỏ). Điểm tuyệt vời nhất là OpenSCAP cung cấp sẵn đoạn code Bash hoặc Ansible để sửa lỗi (Remediation) cho từng mục thất bại. Bạn chỉ cần copy-paste là xong.
Tự động sửa lỗi (Remediation): Con dao hai lưỡi
Nếu muốn tiết kiệm thời gian, bạn có thể thêm tham số --remediate để OSCAP tự động sửa lỗi ngay khi quét. Tuy nhiên, hãy cực kỳ thận trọng.
# Cảnh báo: Đừng bao giờ chạy lệnh này trực tiếp trên Production!
oscap xccdf eval --remediate \
--profile xccdf_org.ssgproject.content_profile_standard \
/usr/share/xml/scap/ssg/content/ssg-centos7-ds.xml
Ví dụ: Một rule bảo mật có thể tự động tắt quyền truy cập Root qua SSH. Nếu bạn chưa tạo user có quyền sudo, bạn sẽ bị khóa khỏi server ngay lập tức. Kinh nghiệm của mình là luôn chạy thử trên môi trường Staging trước khi áp dụng thực tế.
Bài học xương máu từ thực chiến
Sau nhiều năm sử dụng OpenSCAP, đây là 3 lưu ý quan trọng bạn cần nhớ:
- Đừng ám ảnh con số 100%: Một số quy tắc như yêu cầu phân vùng riêng cho
/var/logrất khó thực hiện trên các server cũ. Hãy tập trung xử lý các lỗ hổng nghiêm trọng (High Severity) và các lỗi liên quan đến SSH, Password trước. - Luôn cập nhật thư viện: Hacker luôn tìm ra cách mới mỗi ngày. Hãy đảm bảo gói
scap-security-guideluôn ở phiên bản mới nhất bằng lệnhyum updatethường xuyên. - Đưa vào pipeline CI/CD: Cách tốt nhất để giữ hệ thống sạch là quét bảo mật ngay từ bước build image. Điều này đảm bảo mọi server sinh ra đều đạt chuẩn ngay từ “vạch xuất phát”.
Làm chủ OpenSCAP không chỉ giúp hệ thống an toàn hơn mà còn xây dựng sự tự tin cho bạn trước mọi kỳ audit. Hãy thử quét server của mình ngay hôm nay, có thể bạn sẽ phát hiện ra những lỗ hổng nguy hiểm mà bấy lâu nay mình vẫn bỏ qua.

