Kiểm Tra Bảo Mật
Trước khi bàn giao dự án cho khách hàng, bạn cần chắc chắn rằng codebase hoàn toàn sạch — không có credential bị hardcode, không có package chứa lỗ hổng, không có điểm injection rõ ràng. Các security scanning agent của Sun Agent Kit tự động hóa toàn bộ quá trình kiểm tra compliance, tạo ra một báo cáo có cấu trúc với các phát hiện được phân loại theo mức độ nghiêm trọng — báo cáo này bạn có thể đính kèm trực tiếp vào email bàn giao.
Tổng Quan
Mục tiêu: Tạo báo cáo bảo mật được ký xác nhận trước mỗi lần release hoặc bàn giao code cho khách hàng
Thời gian: 5–15 phút (so với 2–4 giờ review thủ công)
Agent sử dụng: scout, reviewer, debugger
Lệnh: /sk:security-scan, /sk:security-scan --full, /sk:security-scan --secrets-only, /sk:security-scan --deps-only
Yêu Cầu Trước Khi Bắt Đầu
- Sun Agent Kit đã được cài đặt và xác thực (hướng dẫn cài đặt)
- Một git repository có source code đã commit (các thay đổi chưa staged cũng được scan)
- Có
package.json,requirements.txt,Gemfile, hoặcgo.modđể kiểm tra dependency - Node.js ≥ 18 hoặc Python ≥ 3.10 trong
PATH(cho native audit runner)
Quy Trình Từng Bước
Bước 1: Chạy scan bí mật cơ bản
Bắt đầu với kiểm tra nhanh nhất và có tác động cao nhất — bí mật và credential bị lộ vào source file.
/sk:security-scan --secrets-only
Điều gì xảy ra: Agent thực hiện:
- Quét cây source bằng regex pattern để phát hiện API key, token, private key, và database connection string bị hardcode
- Kiểm tra lịch sử git gần đây để tìm bí mật có thể đã được commit rồi xóa
- Lọc false positive từ test fixture và example value
- Báo cáo các phát hiện được phân loại theo mức độ nghiêm trọng
Bước 2: Chạy kiểm tra dependency đầy đủ
Kiểm tra tất cả package đối chiếu với cơ sở dữ liệu lỗ hổng đã biết.
/sk:security-scan --deps-only
Điều gì xảy ra: Agent thực hiện:
- Giải quyết cây dependency đầy đủ bao gồm transitive dependency
- Chạy
npm audit,pip audit, hoặc tương đương cho package manager của bạn - Kiểm tra các vấn đề tuân thủ license
- Báo cáo các package có lỗ hổng kèm mức độ nghiêm trọng và đường dẫn nâng cấp được khuyến nghị
Bước 3: Chạy phân tích pattern OWASP trên application code
Phát hiện các pattern lỗ hổng phổ biến — SQL injection, XSS vectors, insecure deserialization, và path traversal.
/sk:security-scan --full
Điều gì xảy ra: Agent thực hiện:
- Kết hợp scan bí mật, kiểm tra dependency, và phân tích pattern code trong một lượt
- Phân tích code để tìm pattern OWASP Top 10 bằng grep và lý luận của Claude
- Đối chiếu các phát hiện để xác định chuỗi khai thác
- Tạo báo cáo tổng hợp lưu vào
plans/reports/
Bước 4: Sửa các phát hiện và scan lại
Với mỗi phát hiện, dùng /sk:fix để áp dụng remediation có mục tiêu.
/sk:fix "fix the security findings from the scan report in plans/reports/"
Điều gì xảy ra: Agent thực hiện:
- Đọc báo cáo scan và ưu tiên các phát hiện CRITICAL và HIGH
- Áp dụng bản sửa — xoay vòng hardcoded key thành biến môi trường, nâng cấp package có lỗ hổng, tham số hóa raw query
- Scan lại code đã vá để xác nhận bản sửa
Bước 5: Scan lại và xác nhận trạng thái sạch
Sau khi sửa, chạy một lượt xác minh cuối cùng trước khi đính kèm báo cáo vào bàn giao.
/sk:security-scan --full
Điều gì xảy ra: Agent chạy lại scan đầy đủ và tạo báo cáo cập nhật. Xác nhận không còn phát hiện CRITICAL hoặc HIGH nào trước khi bàn giao.
Ví Dụ Hoàn Chỉnh: PM Nhật Yêu Cầu Kiểm Tra Bảo Mật Trước Khi Release
Tình huống
Team của bạn đã dành sáu tuần xây dựng một SaaS dashboard cho một khách hàng doanh nghiệp Nhật Bản. PM gửi tin nhắn Slack lúc 10 giờ đêm: “Nhân viên compliance của chúng tôi cần báo cáo bảo mật vào sáng mai trước khi chúng tôi duyệt production release.” Bạn có codebase, không có security engineer chuyên trách, và tám tiếng đồng hồ.
Chuỗi lệnh sử dụng
# 1. Scan đầy đủ để đánh giá tình hình
/sk:security-scan --full
# 2. Sửa những gì CRITICAL hoặc HIGH
/sk:fix "fix all CRITICAL and HIGH findings from the security scan report"
# 3. Scan lại để xác nhận trạng thái sạch
/sk:security-scan --full
# 4. Tạo tài liệu hướng đến khách hàng
/sk:docs "generate security audit summary for client delivery"
Kết quả
Trong vòng một giờ bạn có một báo cáo kiểm tra bảo mật sạch. Tóm tắt executive bằng markdown sạch sẽ, bảng phân loại theo mức độ nghiêm trọng, ghi chú remediation cho từng phát hiện. PM đính kèm vào hồ sơ compliance và release đi live đúng lịch.
So Sánh Thời Gian
| Tác vụ | Thủ công | Với Sun Agent Kit |
|---|---|---|
| Grep tìm bí mật trong repo + git history | 45 phút | vài phút |
| npm audit / pip-audit + phân loại CVE | 60 phút | vài phút |
| Review pattern OWASP (đọc code thủ công) | 90 phút | vài phút |
| Viết báo cáo tổng hợp cho khách hàng | 45 phút | vài phút |
| Áp dụng bản vá và scan lại | 30 phút | vài phút |
| Tổng cộng | ~4.5 giờ | dưới 30 phút |
Thực Hành Tốt Nhất
1. Scan trước mỗi lần merge PR lên production ✅
Chạy /sk:security-scan --secrets-only như một kiểm soát trước khi merge, không chỉ khi release. Phát hiện một hardcoded key trong PR là việc sửa hai phút; phát hiện nó sau khi deploy lên production là một sự cố kéo dài hai ngày.
2. Dùng --secrets-only và --deps-only cho kiểm tra nhanh có mục tiêu ✅
Scan đầy đủ bao gồm mọi thứ nhưng mất nhiều thời gian hơn. Trong quá trình phát triển, dùng các flag có mục tiêu để kiểm tra nhanh từng danh mục. Để dành --full cho cổng pre-release.
3. Đừng bao giờ suppress phát hiện CRITICAL mà không có lý do viết ra ❌
Thật hấp dẫn khi đánh dấu một CRITICAL là “accepted risk” để ship nhanh hơn. Đừng làm vậy mà không có ghi chú giải thích biện pháp kiểm soát bù đắp trong báo cáo. Khách hàng — đặc biệt là khách hàng doanh nghiệp Nhật Bản — sẽ hỏi, và “chúng tôi bỏ qua nó” không bao giờ là câu trả lời chấp nhận được.
4. Đừng scan trên máy developer rồi coi là xong ❌
Luôn chạy verification scan cuối cùng trên CI hoặc trên cùng môi trường sẽ build release artifact. Máy developer có thể có file .env bị loại trừ bởi .gitignore local mà không phản ánh những gì thực sự đã được commit.
Xử Lý Sự Cố
Vấn đề: Scanner báo cáo các phát hiện trong node_modules/ hoặc thư mục vendor
Giải pháp: Giới hạn phạm vi scan vào source code ứng dụng bằng cách chỉ định thư mục: /sk:security-scan src/. Dependency auditor xử lý các package vendor riêng biệt qua npm audit.
Vấn đề: Truy vấn cơ sở dữ liệu CVE bị timeout
Giải pháp: Kiểm tra kết nối mạng. Nếu đang dùng corporate proxy, đặt biến môi trường HTTP_PROXY. Bạn cũng có thể chạy npm audit hoặc pip audit thủ công và dán output vào /sk:ask để phân tích.
Vấn đề: False positive trên test fixture chứa dummy API key
Giải pháp: Xem xét các phát hiện trong báo cáo và ghi chú false positive. Bạn có thể chạy lại với phạm vi có mục tiêu hơn, loại trừ thư mục test: /sk:security-scan src/ --secrets-only.
Vấn đề: Kiểm tra dependency phát hiện lỗ hổng trong transitive dependency
Giải pháp: Chạy /sk:fix "upgrade transitive dependency [package-name] to resolve CVE-XXXX". Với các xung đột transitive không thể giải quyết trực tiếp, agent sẽ đề xuất override hoặc package thay thế.
Bước Tiếp Theo
- Đánh Giá Code — Chạy quality gate đầy đủ song song với security scan trước khi bàn giao
- Tạo Tài Liệu Tự Động — Đính kèm tài liệu bàn giao vào cùng gói với báo cáo bảo mật
- Tái Cấu Trúc Code Cũ — Loại bỏ các vấn đề cấu trúc liên tục tạo ra phát hiện bảo mật
Điểm mấu chốt: Một kiểm tra bảo mật trước đây tiêu tốn nửa ngày làm việc giờ có thể chạy không người giám sát trong dưới 20 phút — giúp team bạn tự tin ship theo deadline khách hàng chặt chẽ mà không bỏ qua compliance.