Bảo mật phần mềm theo yêu cầu (Custom Software Security) là quá trình thiết kế, phát triển và vận hành các ứng dụng được may đo riêng biệt dựa trên nguyên tắc “Bảo mật theo thiết kế” (Security by Design) nhằm chống lại các cuộc tấn công nhắm thẳng vào logic hoặc mã nguồn riêng biệt của doanh nghiệp.
Khác với phần mềm thương mại có sẵn (Off-the-shelf), phần mềm viết theo yêu cầu không có sẵn một cộng đồng lớn vá lỗi công khai, do đó toàn bộ trách nhiệm kiểm thử và chống chịu rủi ro thuộc về kiến trúc sư và đơn vị phát triển.
1. Các tiêu chuẩn và mô hình đánh giá cốt lõi
• OWASP ASVS (Application Security Verification Standard): Khuyến nghị đạt tối thiểu Level 2 đối với các phần mềm tùy biến có xử lý dữ liệu cá nhân hoặc nghiệp vụ tài chính.
• Tuân thủ pháp lý (PDPD tại Việt Nam): Đảm bảo bảo vệ dữ liệu cá nhân của người dùng, tránh các mức phạt lên đến hàng phần trăm doanh thu khi để xảy ra rò rỉ.
• Nguyên tắc đặc quyền tối thiểu (PoLP & RBAC): Giới hạn phạm vi truy cập dữ liệu và thao tác của từng tài khoản, ngăn chặn việc một tài khoản bị chiếm đoạt có thể thao túng toàn bộ hệ thống.
2. Các giải pháp bảo mật theo từng tầng của phần mềm
Tầng kiến trúc Giải pháp bảo mật cụ thể
Mã nguồn (Source Code) • Kiểm tra tĩnh (SAST) tự động trong quy trình CI/CD.
• Chống lỗi tiêm nhiễm (SQL Injection, XSS, CSRF) thông qua chuẩn hóa tham số đầu vào.
Giao tiếp API (API Gateway) • Xác thực bằng Token/JWT mạnh, áp dụng Rate Limiting chống quét/tấn công brute-force.
Dữ liệu (Database) • Mã hóa dữ liệu cả khi lưu trữ (at-rest) lẫn khi truyền tải qua mạng (in-transit).
• Tách biệt cơ sở dữ liệu riêng tư với vùng truy cập công khai.
Cơ sở hạ tầng & Runtime • Lọc lưu lượng bằng Tường lửa ứng dụng web (WAF).
• Triển khai kiểm thử xâm nhập (Penetration Testing) định kỳ ít nhất 1-2 lần mỗi năm.
3. Quy trình phát triển phần mềm an toàn (Secure SDLC)
1. Giai đoạn thiết kế: Lập mô hình đe dọa (Threat Modeling) ngay khi phác thảo kiến trúc để phát hiện sớm các kịch bản tấn công.
2. Giai đoạn lập trình: Áp dụng thư viện được kiểm chứng, không lưu cứng (hardcode) mật khẩu hay API Key trong mã nguồn.
3. Giai đoạn kiểm thử trước khi bàn giao: Thực hiện quét lỗ hổng tự động kết hợp Red Teaming hoặc Pentest (hộp đen/hộp xám).
4. Giai đoạn vận hành (Ops): Thiết lập hệ thống ghi nhật ký (Log) tập trung và xây dựng kịch bản ứng cứu sự cố (Incident Response) rõ ràng.
