Bảo mật Pipeline DevOps năm 2026: SAST, DAST, Supply Chain và Câu hỏi Phỏng vấn
Hướng dẫn toàn diện về bảo mật pipeline DevOps 2026: triển khai SAST, DAST, SCA, phát hiện secrets, SBOM và các câu hỏi phỏng vấn DevSecOps phổ biến.

Bảo mật pipeline DevOps đòi hỏi việc tích hợp các kiểm tra bảo mật ở mọi giai đoạn của quy trình CI/CD, từ pre-commit hooks đến giám sát production. Báo cáo State of DevSecOps 2026 của Datadog cho thấy 87% tổ chức đang vận hành các dịch vụ có ít nhất một lỗ hổng có thể khai thác, trong khi các cuộc tấn công supply chain phần mềm hiện gây thiệt hại cho nền kinh tế toàn cầu hơn 80 tỷ USD mỗi năm.
Bắt đầu với phát hiện secrets (tác động cao nhất, tỷ lệ false-positive thấp nhất), sau đó thêm SCA cho các CVE đã biết, SAST có điều chỉnh, IaC scanning, và cuối cùng là DAST. Mỗi công cụ phải chứng minh giá trị trước khi thêm công cụ tiếp theo.
SAST: Phân tích Tĩnh Phát hiện Lỗ hổng Trước khi Merge
Static Application Security Testing (SAST) phân tích source code mà không cần thực thi. Công cụ này phân tích codebase, xây dựng abstract syntax tree, và so khớp các pattern với các signature lỗ hổng đã biết. Chạy SAST trên mỗi pull request có thể phát hiện SQL injection, XSS, và credentials được hardcode trước khi code đến branch chính.
Semgrep đã trở thành công cụ SAST open-source de facto vào năm 2026. Khác với các scanner dựa trên regex, Semgrep hiểu cấu trúc code và hỗ trợ custom rules bằng YAML.
# .github/workflows/sast.yml
name: SAST Scan
on:
pull_request:
branches: [main, develop]
jobs:
semgrep:
runs-on: ubuntu-latest
container:
image: semgrep/semgrep:latest
steps:
- uses: actions/checkout@v4
- name: Run Semgrep
run: semgrep scan --config=auto --sarif --output=semgrep.sarif
- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: semgrep.sarifFlag --config=auto tải các community rules phù hợp với ngôn ngữ được phát hiện. Output SARIF tích hợp với tab Security của GitHub để theo dõi các phát hiện theo thời gian.
DAST: Kiểm thử Runtime Tìm ra những gì Phân tích Tĩnh Bỏ lỡ
Dynamic Application Security Testing (DAST) tấn công ứng dụng đang chạy để tìm các lỗ hổng chỉ xuất hiện khi runtime. Broken authentication, authorization flaws, và các lỗi business logic yêu cầu các HTTP request thực tế để phát hiện. SAST không thể tìm ra endpoint admin thiếu access control phù hợp, nhưng DAST sẽ cố truy cập mà không có credentials và đánh dấu sự lộ lọt.
OWASP ZAP vẫn là công cụ DAST open-source được triển khai rộng rãi nhất. ZAP 3.0, được phát hành đầu năm 2026, đã thêm hỗ trợ native cho scanning GraphQL và gRPC.
# .github/workflows/dast.yml
name: DAST Scan
on:
deployment:
types: [created]
jobs:
zap-scan:
runs-on: ubuntu-latest
steps:
- name: ZAP Full Scan
uses: zaproxy/action-full-scan@v0.12.0
with:
target: ${{ secrets.STAGING_URL }}
rules_file_name: '.zap/rules.tsv'
cmd_options: '-a -j -l WARN -z "-config api.disablekey=true"'
- name: Upload Report
uses: actions/upload-artifact@v4
with:
name: zap-report
path: report_html.htmlDAST chạy sau deployment vì cần một target đang hoạt động. Môi trường staging đóng vai trò là bề mặt kiểm thử, giữ cho production cách ly khỏi traffic scanning.
Chạy scan DAST chủ động trên production có nguy cơ kích hoạt rate limits, làm hỏng dữ liệu, hoặc kích hoạt cảnh báo security monitoring. Sử dụng môi trường staging phản ánh cấu hình production.
SCA: Dependency Scanning cho các Lỗ hổng Đã biết
Software Composition Analysis (SCA) quét các dependencies dựa trên cơ sở dữ liệu lỗ hổng như National Vulnerability Database và GitHub Advisory Database. Một transitive dependency có lỗ hổng có thể làm lộ toàn bộ ứng dụng. Báo cáo Datadog 2026 cho thấy 42% dịch vụ phụ thuộc vào các thư viện không còn được bảo trì tích cực.
Trivy quét containers, filesystems, và git repositories để tìm lỗ hổng trong một binary duy nhất. Công cụ này tạo output SBOM ở định dạng CycloneDX và SPDX.
# .github/workflows/sca.yml
name: Dependency Scan
on:
push:
branches: [main]
schedule:
- cron: '0 6 * * *' # Daily at 6 AM
jobs:
trivy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@0.28.0
with:
scan-type: 'fs'
scan-ref: '.'
format: 'sarif'
output: 'trivy-results.sarif'
severity: 'CRITICAL,HIGH'
- name: Upload Trivy scan results
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: 'trivy-results.sarif'Scan theo lịch hàng ngày phát hiện các CVE mới được công bố ngay cả khi không có thay đổi code. Lọc theo severity CRITICAL và HIGH ngăn ngừa alert fatigue từ các phát hiện rủi ro thấp.
Sẵn sàng chinh phục phỏng vấn DevOps?
Luyện tập với mô phỏng tương tác, flashcards và bài kiểm tra kỹ thuật.
Bảo mật Supply Chain: SBOM và SLSA Provenance
EU Cyber Resilience Act, với các nghĩa vụ báo cáo có hiệu lực từ tháng 9 năm 2026, yêu cầu tạo Software Bill of Materials (SBOM) cho các sản phẩm bán tại EU. SBOM liệt kê mọi thành phần trong phần mềm, bao gồm direct dependencies, transitive dependencies, và phiên bản của chúng.
SLSA (Supply-chain Levels for Software Artifacts) bổ sung SBOM bằng cách xác minh cách phần mềm được xây dựng. SBOM trả lời "những thành phần nào có trong phần mềm này?" trong khi SLSA trả lời "quy trình build có đáng tin cậy không?"
# .github/workflows/supply-chain.yml
name: Supply Chain Security
on:
push:
tags:
- 'v*'
jobs:
build-with-provenance:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
attestations: write
steps:
- uses: actions/checkout@v4
- name: Build container image
run: docker build -t myapp:${{ github.ref_name }} .
- name: Generate SBOM
uses: anchore/sbom-action@v0.17.0
with:
image: myapp:${{ github.ref_name }}
format: cyclonedx-json
output-file: sbom.json
- name: Sign with Cosign
uses: sigstore/cosign-installer@v3.7.0
- name: Sign image and attach SBOM
run: |
cosign sign --yes myapp:${{ github.ref_name }}
cosign attach sbom --sbom sbom.json myapp:${{ github.ref_name }}
cosign sign --yes --attachment sbom myapp:${{ github.ref_name }}Cosign của Sigstore ký các artifact sử dụng keyless signing được hỗ trợ bởi Fulcio certificate authority. Chữ ký liên kết artifact với CI workflow đã tạo ra nó, cho phép xác minh rằng image đến từ pipeline đáng tin cậy.
Phát hiện Secrets: Tuyến Phòng thủ Đầu tiên
Hardcoded secrets vẫn là phát hiện bảo mật phổ biến nhất trong các codebase. AWS access keys, database passwords, và API tokens được commit vào version control đã gây ra các vụ breach ở mọi quy mô. Phát hiện secrets chạy pre-commit để chặn credentials trước khi chúng vào repository.
Gitleaks phát hiện secrets sử dụng regex patterns và phân tích entropy. Pre-commit hook ngăn secrets không bao giờ được commit.
# .pre-commit-config.yaml
repos:
- repo: https://github.com/gitleaks/gitleaks
rev: v8.21.2
hooks:
- id: gitleaks
args: ['--verbose']# .github/workflows/secrets.yml
name: Secrets Detection
on:
pull_request:
jobs:
gitleaks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Gitleaks scan
uses: gitleaks/gitleaks-action@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}Tùy chọn fetch-depth: 0 clone toàn bộ history, cho phép Gitleaks quét tất cả commits trong PR, không chỉ commit mới nhất.
Câu hỏi Phỏng vấn DevSecOps: Recruiter Hỏi những gì
Phỏng vấn DevSecOps đánh giá cả kiến thức bảo mật và kinh nghiệm CI/CD thực tế. Các câu hỏi dưới đây thường xuất hiện trong các cuộc phỏng vấn năm 2026 cho các vị trí DevOps senior và platform engineering. Xem thêm các câu hỏi bảo mật pipeline tại module phỏng vấn CI/CD Pipeline Security.
"Làm thế nào để triển khai shift-left security trong một pipeline hiện có?"
Shift-left security di chuyển việc kiểm thử sớm hơn trong vòng đời phát triển. Triển khai thực tế bao gồm thêm pre-commit hooks cho phát hiện secrets, SAST scans trên pull requests, và kiểm tra SCA trong giai đoạn build. Chìa khóa là áp dụng từng bước: bắt đầu với phát hiện secrets vì có tỷ lệ false-positive thấp nhất và tín hiệu cao nhất, sau đó thêm SCA cho các CVE đã biết, rồi điều chỉnh các rules SAST để giảm nhiễu trước khi kích hoạt nó như một blocking check.
"Giải thích sự khác biệt giữa SAST và DAST. Khi nào sử dụng từng loại?"
SAST phân tích source code mà không thực thi. Công cụ này tìm SQL injection, XSS, và mật mã không an toàn bằng cách so khớp pattern với cấu trúc code. SAST chạy sớm, trên mỗi PR, vì chỉ cần code.
DAST tấn công ứng dụng đang chạy. Công cụ này tìm authentication bypasses, broken access control, và các lỗ hổng injection chỉ xuất hiện khi runtime. DAST chạy sau deployment đối với môi trường staging.
Hai công cụ bổ sung cho nhau. SAST phát hiện lỗi coding trước merge; DAST xác minh rằng ứng dụng đã deploy hoạt động an toàn. Pipeline trưởng thành chạy cả hai.
"SBOM là gì và tại sao cần thiết?"
Software Bill of Materials liệt kê mọi thành phần trong phần mềm, bao gồm direct và transitive dependencies với phiên bản chính xác. Các yêu cầu quy định như EU Cyber Resilience Act bắt buộc tạo SBOM cho các sản phẩm vào thị trường EU từ tháng 9 năm 2026.
Về mặt thực tế, SBOM cho phép phản hồi sự cố nhanh chóng. Khi một CVE mới được phát hành, đội bảo mật có thể truy vấn cơ sở dữ liệu SBOM để xác định mọi dịch vụ đang chạy thành phần có lỗ hổng thay vì quét tất cả repositories thủ công.
"Làm thế nào để ngăn ngừa alert fatigue trong security tooling?"
Alert fatigue xảy ra khi developers bỏ qua các phát hiện bảo mật vì tỷ lệ signal-to-noise quá thấp. Ngăn ngừa đòi hỏi điều chỉnh mỗi công cụ trước khi kích hoạt blocking gates. Đối với SAST, vô hiệu hóa các rules tạo false positive trong codebase và kích hoạt dần sau khi làm sạch. Đối với SCA, tập trung vào các phát hiện severity CRITICAL và HIGH với các exploit đã biết. Đối với DAST, cấu hình baseline scans để loại trừ false positives khỏi các lần chạy tiếp theo.
Metric cần theo dõi là time-to-fix cho các lỗ hổng thực sự. Nếu con số đó tăng, developers đang bỏ qua alerts.
Những câu hỏi này kiểm tra kinh nghiệm thực tế. Chuẩn bị các ví dụ từ pipelines thực tế, bao gồm các công cụ cụ thể, quyết định cấu hình, và metrics trước và sau khi triển khai.
Bảo mật Container và Runtime
Container image scanning phát hiện lỗ hổng trước deployment. Runtime security giám sát containers trong production cho hành vi bất thường. Sự kết hợp này giải quyết cả các lỗ hổng đã biết (CVE trong base images) và các mối đe dọa chưa biết (containers bị xâm phạm, cryptominers).
Trivy quét images như một phần của build pipeline. Falco giám sát hành vi runtime sử dụng eBPF.
# .github/workflows/container-security.yml
name: Container Security
on:
push:
branches: [main]
jobs:
scan-image:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build image
run: docker build -t myapp:${{ github.sha }} .
- name: Scan image
uses: aquasecurity/trivy-action@0.28.0
with:
image-ref: myapp:${{ github.sha }}
format: 'table'
exit-code: '1'
severity: 'CRITICAL'
ignore-unfixed: trueFlag ignore-unfixed: true bỏ qua các lỗ hổng không có patch khả dụng. Điều này ngăn việc chặn deployments cho các CVE hiện không thể khắc phục.
Đối với runtime security, các rules Falco phát hiện hoạt động đáng ngờ trong containers đang chạy. Module container supply chain security đề cập chi tiết về image signing và admission control.
IaC Security: Scanning Terraform và Kubernetes Manifests
Infrastructure as Code đưa ra các rủi ro bảo mật ở lớp cấu hình. IAM policies quá permissive, S3 buckets có thể truy cập công khai, và databases không mã hóa đến từ các default không an toàn trong các IaC templates.
Checkov quét Terraform, CloudFormation, Kubernetes, Helm, và Dockerfiles để tìm misconfigurations.
# .github/workflows/iac-scan.yml
name: IaC Security Scan
on:
pull_request:
paths:
- 'terraform/**'
- 'k8s/**'
- 'helm/**'
jobs:
checkov:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Checkov
uses: bridgecrewio/checkov-action@v12
with:
directory: .
framework: terraform,kubernetes,helm
output_format: sarif
output_file_path: checkov.sarif
soft_fail: false
- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: checkov.sarifPath filter đảm bảo IaC scans chỉ chạy khi các file infrastructure thay đổi, giảm thời gian CI cho các thay đổi chỉ application.
Bắt đầu luyện tập!
Kiểm tra kiến thức với mô phỏng phỏng vấn và bài kiểm tra kỹ thuật.
Pipeline DevSecOps Hoàn chỉnh cho 2026
Một pipeline DevSecOps sẵn sàng production năm 2026 tích hợp các công cụ này ở mỗi giai đoạn:
- Pre-commit: Gitleaks (secrets), SAST local tùy chọn
- Pull request: Semgrep (SAST), Trivy (SCA), Checkov (IaC)
- Build: Container image scanning, tạo SBOM
- Pre-deploy: Image signing với Cosign, admission control với Kyverno
- Post-deploy: DAST với ZAP đối với staging
- Runtime: Falco cho container monitoring, cloud security posture management
Stack miễn phí (Semgrep, Trivy, ZAP, Gitleaks, Checkov, Falco) bao phủ mọi danh mục. Các công cụ thương mại thêm dashboards tập trung, quản lý policy, và giảm công sức điều chỉnh, nhưng phạm vi bảo mật có thể đạt được mà không cần chi phí license.
Các tổ chức chuẩn bị cho vai trò DevSecOps nên thực hành xây dựng các pipelines này trong các dự án cá nhân. Module cloud identity và secrets management đề cập phía quản lý secrets của phương trình này.
Bạn có tìm ra lỗi trong DevOps không?
Một đoạn mã thật, một lỗi ẩn, mỗi ngày một lượt. Không cần tài khoản để thử.

Viết bởi
Anthony Fillion-MailletNgười sáng lập SharpSkill
Lập trình viên fullstack hơn 10 năm. Anh điều hành SharpSkill và chịu trách nhiệm về mọi nội dung đăng tại đây.
Cập nhật ngày 15 tháng 9, 2026
Chia sẻ
Bài viết liên quan

Bảo mật Pipeline DevOps 2026: Thực tiễn DevSecOps và Câu hỏi Phỏng vấn
Hướng dẫn toàn diện về bảo mật pipeline DevOps năm 2026, bao gồm các thực tiễn tốt nhất DevSecOps, triển khai CI/CD an toàn, và câu hỏi phỏng vấn kỹ thuật để chuẩn bị sự nghiệp.

Quản lý Secrets Kubernetes 2026: External Secrets, Vault và Câu hỏi Phỏng vấn
Hướng dẫn toàn diện về quản lý secrets Kubernetes với External Secrets Operator và HashiCorp Vault. Bao gồm cấu hình production, rotation tự động và câu hỏi phỏng vấn DevOps.

Ansible vs Terraform năm 2026: Infrastructure as Code và Câu hỏi Phỏng vấn DevOps
So sánh Ansible vs Terraform năm 2026: quản lý cấu hình và provisioning, khi nào sử dụng công cụ nào, OpenTofu, và chuẩn bị phỏng vấn DevOps.