Kho Vũ Khí DevSecOps: Từ Zero đến Hero
Hãy thực tế: chạy trivy image không phải là DevSecOps. Nó chỉ là tạo ra tiếng ồn.
Kỹ thuật bảo mật thực sự là về tỷ lệ tín hiệu trên nhiễu. Đó là xây dựng một quy trình mà các nhà phát triển của bạn tôn trọng, không phải là một quy trình mà họ tìm cách né tránh. Hướng dẫn này cung cấp các cấu hình “đạt chuẩn sản xuất” cho 17 công cụ tiêu chuẩn ngành để ngăn chặn các lỗ hổng mà không làm gián đoạn hoạt động kinh doanh.
Giai đoạn 1: Trước khi Cam kết & Cục bộ (Dịch Chuyển Trái hoặc Về Nhà)
Bắt lỗi trong CI đã là quá muộn. Bạn vừa lãng phí tín dụng tính toán và thời gian chuyển đổi ngữ cảnh của nhà phát triển. Bắt lỗi ngay trên máy tính xách tay của họ.
1. Gitleaks (Người Giữ Bí Mật)
Đừng là công ty rò rỉ khóa AWS trên GitHub.
Hầu hết mọi người chạy Gitleaks một cách mù quáng. Những người chuyên nghiệp sử dụng Baselines.
--baseline-path: Vé vàng. Chạy một lần quét mới, lưu đầu ra. Bây giờ Gitleaks CHỈ cảnh báo về các bí mật mới.--redact: Che giấu các bí mật được phát hiện trong nhật ký đầu ra (tỷ lệ phần trăm 0-100). Không bao giờ rò rỉ lần thứ hai.--enable-rule: Tập trung vào các loại bí mật cụ thể (ví dụ: chỉ khóa AWS) theo ID.--follow-symlinks: Đừng để bí mật ẩn sau các liên kết tượng trưng.--ignore-gitleaks-allow: Không cho phép sử dụng các bình luận “bỏ qua” nội tuyến. Thực thi các quy tắc.--max-target-megabytes: Tránh quét các khối nhị phân lớn.
2. Trufflehog (Người Xác Minh)
Tìm một chuỗi trông giống như một khóa là một chuyện. Kiểm tra xem nó có hoạt động hay không là chuyện khác.
Trufflehog phân biệt chính nó bằng cách xác minh thông tin đăng nhập với nhà cung cấp.
--no-verification: Chế độ nhanh hơn. Bỏ qua “kiểm tra trực tiếp” nếu bạn chỉ muốn phân tích tĩnh.--results: Lọc đầu ra theoverified(nguy hiểm thực sự) hoặcunknown.--filter-entropy: Tìm các chuỗi có độ hỗn loạn cao (có khả năng là mật khẩu) ngay cả khi không có khớp regex. Bắt đầu với 3.0.--detector-timeout: Giới hạn thời gian thực thi cho mỗi bộ phát hiện để ngăn chặn treo CI.--archive-max-depth: Không bị mắc kẹt trong các zip-bomb lồng nhau.
3. Opengrep (Phân Tích Tĩnh Nhanh)
Grep đã chết. Hãy sống với tìm kiếm cấu trúc.
Động cơ tương thích với Semgrep để tìm lỗi bằng cách sử dụng mẫu mã, không chỉ là chuỗi.
--baseline-commit: Quan trọng. Chỉ quét mã đã thay đổi kể từ một commit cụ thể (Quét Delta).--config: Tải các quy tắc tùy chỉnh từ giới hạn YAML hoặc từ registry.--dataflow-traces: Hiển thị toàn bộ đường dẫn của cách dữ liệu di chuyển từ nguồn đến đích.--exclude-minified-files: Bỏ qua.min.jsvà các tệp dày đặc, không thể đọc được bởi con người khác.--strict: Thất bại trong việc xây dựng nếu cấu hình không hợp lệ hoặc xảy ra lỗi mức WARN.
4. Bandit (Bảo Mật Python)
Tiêu chuẩn cho phân tích AST Python.
-t/--tests: Chỉ chạy các ID kiểm tra cụ thể (danh sách cho phép).-s/--skips: Bỏ qua các ID kiểm tra cụ thể (danh sách từ chối).--severity-level: Chỉ hiển thị kết quả >=thấp,trung bình, hoặccao.--confidence-level: Lọc bỏ “phỏng đoán”—chỉ hiển thị các phát hiện có độ tin cậy cao.--ignore-nosec: Xem những gì các nhà phát triển đang cố gắng bỏ qua bằng cách sử dụng# nosec.
5. Dustilock (Phụ thuộc nhầm lẫn)
Ngăn chặn kẻ tấn công tiêm một gói riêng tư độc hại.
-a: Chỉ kiểm tra. Kiểm tra xem bạn có dễ bị tấn công chiếm đoạt tên gói mà không dừng quy trình không.
6. Hadolint (Thông minh Docker)
Dockerfile của bạn tệ. Hadolint biết lý do tại sao.
--trusted-registry: Bảo mật chuỗi cung ứng. Chỉ cho phép hình ảnh từinternal.ecr.aws.--strict-labels: Thực thi tiêu chuẩn siêu dữ liệu (ví dụ:maintainer,cost-center).--ignore: Im lặng các quy tắc không áp dụng cho bản dựng của bạn.--error/--warning: Đặt lại mức độ nghiêm trọng của quy tắc để phù hợp với chính sách của bạn.--require-label: Thực thi định dạng nhãn cụ thể (Regex).
7. TFLint (Logic Terraform)
terraform validate là kiểm tra cú pháp. TFLint là kiểm tra logic.
--enable-plugin: Tải các quy tắc cụ thể của nhà cung cấp (ví dụ: AWS, Azure) để kiểm tra theo đặc tả API.--minimum-failure-severity: Kiểm soát ngưỡng phá vỡ bản dựng (Lỗi, Cảnh báo, Thông báo).--call-module-type: Quét các mô-đunall,local, hoặcnone.--var-file: Tiêm biến để đánh giá logic điều kiện chính xác.
Giai đoạn 2: Các cổng CI (Tin tưởng, nhưng xác minh)
Đây là phòng chiến tranh. Phân tích sâu trong quá trình xây dựng.
8. Trivy (Người đánh mạnh)
Con dao Thụy Sĩ.
--ignore-unfixed: Bắt buộc. Nếu không có bản vá, không làm hỏng bản dựng. Theo dõi nó.--ignore-status: Lọc ra các lỗ hổng với các trạng thái cụ thể.--pkg-types: Tập trung quét vào các góioshoặc các phụ thuộclibrary.--offline-scan: Chạy trong các môi trường không kết nối mạng.--include-dev-deps: Không bỏ quadevDependencies—chúng vẫn có thể làm tổn hại môi trường xây dựng.--list-all-pkgs: Xuất ra tất cả. Cần thiết để tạo một SBOM hoàn chỉnh.
9. Syft (Trình tạo SBOM)
Bạn không thể bảo vệ những gì bạn không biết mình có.
--enrich: Thêm metadata trực tuyến để có ngữ cảnh sử dụng phong phú hơn (Golang, Java, v.v.).-s/--scope: Quét tất cả các lớp (all-layers) hoặc chỉ hình ảnh cuối cùng (squashed).--select-catalogers: Nhắm mục tiêu các trình quản lý gói cụ thể (npm, pip, apk).--platform: Nhắm mục tiêu các kiến trúc cụ thể (ví dụ:arm64).
10. Grype (Trình quét SBOM)
Tiếp nhận từ Syft.
-f/--fail-on: Ngừng xây dựng nếu mức độ nghiêm trọng >=medium,high, v.v.--only-fixed: Chỉ báo cáo các lỗ hổng có thể hành động.--by-cve: Tổ chức đầu ra theo ID CVE để theo dõi.--ignore-states: Bỏ qua các trạng thái “wontfix” hoặc “not-affected” chung chung.
11. Checkov (Quản trị IaC)
Ngăn chặn các cấu hình sai của đám mây trước khi chúng khiến bạn mất tiền.
-s/--soft-fail: Cảnh báo nhưng không phá vỡ. Tốt nhất cho “chế độ quan sát.”--check/--skip-check: danh sách trắng hoặc danh sách đen các kiểm tra cụ thể (CKV_AWS_1).--skip-framework: Bỏ qua toàn bộ khung (ví dụ, quét Terraform nhưng bỏ qua CloudFormation).--enable-secret-scan-all-files: Mở rộng quét bí mật ra ngoài các tệp cấu hình tiêu chuẩn.--block-list-secret-scan: Loại trừ các tệp cụ thể khỏi trình quét bí mật.
12. KICS (Giữ An Toàn IaC)
Lựa chọn thay thế cho phạm vi phủ sóng IaC rộng.
--exclude-queries: Loại bỏ nhiễu bằng cách lọc ra các ID truy vấn cụ thể.--exclude-categories: Lọc kết quả theo miền bảo mật.--fail-on: Định nghĩa mức độ nghiêm trọng nào trả về mã thoát khác không.--minimal-ui: Đầu ra CLI đơn giản hóa cho nhật ký sạch hơn.--disable-secrets: Tắt quét bí mật nội bộ (sử dụng Gitleaks thay thế).
13. Terrascan (Chính Sách dưới dạng Mã)
Chuyên dụng cho thực thi chính sách đa đám mây.
-i/--iac-type: Tối ưu hóa bằng cách chỉ định nền tảng (k8s, helm, terraform).-t/--policy-type: Lọc chính sách theo nhà cung cấp (aws, azure, gcp).--severity: Định nghĩa mức độ nghiêm trọng tối thiểu để báo cáo.--non-recursive: Chỉ quét thư mục hiện tại.
14. OWASP Dependency-Check (Di Sản & Tuân Thủ)
Người làm việc nặng cho Java và .NET SCA.
--failOnCVSS: Ngừng xây dựng nếu bất kỳ thư viện nào vượt quá điểm CVSS (ví dụ: 7.0).--suppression: Sử dụng tệp XML để “tắt” các lỗ hổng đã biết là an toàn (VEX-lite).--enableExperimental: Sử dụng các trình phân tích mới cho các ngôn ngữ ít phổ biến hơn.
15. DevSkim (Vệ sinh Đa ngôn ngữ)
Kiểm tra IDE và CI tập trung vào nhà phát triển.
--rule-ids: Giới hạn phân tích vào các quy tắc cụ thể.--ignore-globs: Sử dụng các mẫu glob tiêu chuẩn để bỏ qua các tệp gây nhiễu.--skip-git-ignored-files: Tự động đồng bộ với.gitignore.--skip-excerpts: Giữ báo cáo nhỏ gọn bằng cách loại bỏ các mẫu mã.
Giai đoạn 3: Runtime & Artifacts (Dòng Cuối Cùng)
Quét các hiện vật cuối cùng hoặc môi trường trực tiếp.
16. Clamscan (Phòng thủ Malware)
Bởi vì đôi khi mọi người tải lên virus vào S3 bucket của bạn.
--exclude/--exclude-dir: Bỏ qua các mẫu tệp/thư mục để tiết kiệm thời gian.--detect-pua: Tìm kiếm “Ứng dụng Có thể Không Mong muốn” (adware, miners).--detect-structured: Quét các mẫu dữ liệu nhạy cảm như Thẻ Tín dụng/SSNs.--scan-pdf/--scan-html: Kích hoạt kiểm tra sâu cho các loại tài liệu.--cross-fs: Cho phép quét trên các hệ thống tệp khác nhau (sử dụng cẩn thận).
17. Nuclei (Con Dao của Hacker)
Quét theo mẫu mà cảm giác như bất hợp pháp.
-t/--templates: Chạy các tệp mẫu hoặc thư mục cụ thể.-tags: Nhắm mục tiêu quét dựa trên công nghệ (ví dụ:wordpress,cve).-s/--severity: Lọc các mẫu theo mức độ ảnh hưởng.-fr/--follow-redirects: Theo dõi chuyển hướng HTTP 301/302 để tìm tải trọng.-passive: Quét bằng cách xem xét các tiêu đề/phản hồi hiện có mà không gửi “tấn công” mới.-etags fuzz: Loại trừ các mẫu fuzzing trong sản xuất.
Tóm tắt: Quy trình “Hoàn hảo”
- Local:
pre-commitchạy Gitleaks (cơ bản), Trufflehog (đã xác minh), & Hadolint. - Build: Trivy quét deps (
--ignore-unfixed). Syft tạo SBOM. Dependency-Check để tuân thủ. - Test: Checkov & KICS quét kế hoạch Terraform. Opengrep kiểm tra mẫu mã.
- Artifact: Clamscan kiểm tra nhị phân/tài sản cuối cùng.
- Deploy: Nuclei kiểm tra hợp lý điểm cuối trực tiếp.
Điều chỉnh công cụ của bạn, nếu không chúng sẽ điều chỉnh bạn.
Plexicus đã làm cho tất cả dễ dàng hơn
Với một bảng điều khiển thống nhất và truy cập vào tất cả các tích hợp công cụ của chúng tôi, chỉ cần vài cú nhấp chuột Plexicus


