2026년 DevOps 파이프라인 보안: SAST, DAST, 공급망 보안 및 면접 대비
2026년 DevOps 파이프라인 보안 모범 사례를 안내합니다. SAST, DAST, SCA 통합 방법, SBOM 생성, SLSA 프로비넌스 구현, 그리고 DevSecOps 면접 질문에 대한 준비 방법을 다룹니다.

DevOps 파이프라인 보안은 프리커밋 훅부터 프로덕션 모니터링까지 CI/CD 워크플로우의 모든 단계에 보안 검사를 내장해야 합니다. Datadog State of DevSecOps Report 2026에 따르면 87%의 조직이 최소 하나 이상의 알려진 악용 가능한 취약점을 가진 서비스를 운영하고 있으며, 소프트웨어 공급망 공격으로 인한 전 세계 경제 피해는 연간 800억 달러를 초과합니다.
시크릿 탐지부터 시작하는 것을 권장합니다(영향도가 가장 높고 오탐률이 가장 낮음). 그 다음 알려진 CVE를 위한 SCA를 추가하고, 튜닝된 SAST, IaC 스캔, 마지막으로 DAST를 추가합니다. 각 도구는 다음 도구를 추가하기 전에 가치를 입증해야 합니다.
SAST: 병합 전 취약점을 탐지하는 정적 분석
정적 애플리케이션 보안 테스트(SAST)는 코드를 실행하지 않고 소스 코드를 분석합니다. 도구는 코드베이스를 파싱하고 추상 구문 트리를 구축하며 알려진 취약점 시그니처와 패턴 매칭을 수행합니다. 모든 풀 리퀘스트에서 SAST를 실행하면 SQL 인젝션, XSS, 하드코딩된 자격 증명을 메인 브랜치에 도달하기 전에 탐지할 수 있습니다.
Semgrep은 2026년 현재 사실상의 오픈소스 SAST 도구 표준입니다. 정규식 기반 스캐너와 달리 Semgrep은 코드 구조를 이해하고 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.sarif--config=auto 플래그는 탐지된 언어에 맞는 커뮤니티 규칙을 로드합니다. SARIF 출력은 GitHub Security 탭과 통합되어 탐지 결과를 시간순으로 추적할 수 있습니다.
DAST: 정적 분석으로는 찾을 수 없는 취약점을 탐지하는 런타임 테스트
동적 애플리케이션 보안 테스트(DAST)는 실행 중인 애플리케이션을 공격하여 런타임에서만 나타나는 취약점을 탐지합니다. 인증 결함, 권한 부여 결함, 비즈니스 로직 버그는 실제 HTTP 요청을 수행해야만 탐지할 수 있습니다. SAST는 관리자 엔드포인트에 적절한 접근 제어가 없음을 탐지할 수 없지만, DAST는 자격 증명 없이 접근을 시도하고 노출을 보고합니다.
OWASP ZAP는 가장 널리 배포된 오픈소스 DAST 도구입니다. 2026년 초에 출시된 ZAP 3.0은 GraphQL 및 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는 라이브 대상이 필요하기 때문에 배포 후에 실행됩니다. 스테이징 환경이 테스트 대상이 되며, 프로덕션 환경은 스캔 트래픽으로부터 격리됩니다.
프로덕션에 대해 활성 DAST 스캔을 실행하면 속도 제한 트리거, 데이터 손상 또는 보안 모니터링 알림 발생 위험이 있습니다. 프로덕션 구성을 미러링한 스테이징 환경을 사용하십시오.
SCA: 알려진 취약점을 탐지하는 의존성 스캔
소프트웨어 구성 분석(SCA)은 National Vulnerability Database 및 GitHub Advisory Database와 같은 취약점 데이터베이스에 대해 의존성을 스캔합니다. 단일 취약한 전이적 의존성이 전체 애플리케이션을 위험에 노출시킬 수 있습니다. 2026년 Datadog 보고서에 따르면 42%의 서비스가 더 이상 적극적으로 유지보수되지 않는 라이브러리에 의존하고 있습니다.
Trivy는 컨테이너, 파일 시스템, git 저장소의 취약점을 단일 바이너리로 스캔합니다. CycloneDX 및 SPDX 형식으로 SBOM 출력을 생성할 수 있습니다.
# .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'예약된 일일 스캔은 코드 변경 없이도 새로 공개된 CVE를 탐지합니다. CRITICAL 및 HIGH 심각도로 필터링하면 저위험 발견으로 인한 알림 피로를 방지할 수 있습니다.
DevOps 면접 준비가 되셨나요?
인터랙티브 시뮬레이터, flashcards, 기술 테스트로 연습하세요.
공급망 보안: SBOM 및 SLSA 프로비넌스
EU 사이버 복원력법은 2026년 9월부터 보고 의무가 발효되어 EU 내에서 판매되는 제품에 소프트웨어 자재 명세서(SBOM) 생성을 의무화합니다. SBOM은 직접 의존성, 전이적 의존성 및 해당 버전을 포함하여 소프트웨어의 모든 구성 요소를 나열합니다.
SLSA(Supply-chain Levels for Software Artifacts)는 소프트웨어가 어떻게 빌드되었는지 검증하여 SBOM을 보완합니다. SBOM은 "이 소프트웨어에 어떤 구성 요소가 포함되어 있는가?"에 답하고, SLSA는 "빌드 프로세스를 신뢰할 수 있는가?"에 답합니다.
# .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 }}Sigstore의 Cosign은 Fulcio 인증 기관이 뒷받침하는 키리스 서명을 사용하여 아티팩트에 서명합니다. 서명은 아티팩트를 이를 생성한 CI 워크플로우에 바인딩하여 이미지가 신뢰할 수 있는 파이프라인에서 왔는지 검증할 수 있습니다.
시크릿 탐지: 첫 번째 방어선
하드코딩된 시크릿은 코드베이스에서 가장 흔한 보안 발견 사항입니다. 버전 제어에 커밋된 AWS 액세스 키, 데이터베이스 비밀번호, API 토큰은 모든 규모에서 침해를 일으켜 왔습니다. 시크릿 탐지는 프리커밋에서 실행되어 자격 증명이 저장소에 들어가기 전에 차단합니다.
Gitleaks는 정규식 패턴과 엔트로피 분석을 사용하여 시크릿을 탐지합니다. 프리커밋 훅은 시크릿이 커밋되는 것을 방지합니다.
# .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 }}fetch-depth: 0 옵션은 전체 기록을 클론하여 Gitleaks가 최신 커밋뿐만 아니라 PR의 모든 커밋을 스캔할 수 있게 합니다.
DevSecOps 면접 질문: 채용 담당자가 묻는 내용
DevSecOps 면접에서는 보안 지식과 실무 CI/CD 경험 모두를 평가합니다. 아래 질문들은 시니어 DevOps 및 플랫폼 엔지니어링 직무의 2026년 면접에서 자주 출제됩니다. 더 많은 파이프라인 보안 질문은 CI/CD 파이프라인 보안 면접 모듈에서 확인할 수 있습니다.
"기존 파이프라인에 시프트-레프트 보안을 어떻게 구현하겠습니까?"
시프트-레프트 보안은 테스트를 개발 주기 초기로 이동시키는 것입니다. 실무적 구현에는 시크릿 탐지를 위한 프리커밋 훅, 풀 리퀘스트에서의 SAST 스캔, 빌드 단계에서의 SCA 검사 추가가 포함됩니다. 핵심은 점진적 도입입니다: 시크릿 탐지부터 시작합니다(오탐률이 가장 낮고 신호가 가장 높기 때문). 그 다음 알려진 CVE를 위한 SCA를 추가하고, SAST 규칙을 튜닝하여 노이즈를 줄인 후 차단 검사로 활성화합니다.
"SAST와 DAST의 차이점을 설명하십시오. 각각 언제 사용하겠습니까?"
SAST는 실행 없이 소스 코드를 분석합니다. 코드 구조에 대한 패턴 매칭을 통해 SQL 인젝션, XSS, 안전하지 않은 암호화를 탐지합니다. SAST는 코드만 필요하므로 모든 PR에서 초기에 실행됩니다.
DAST는 실행 중인 애플리케이션을 공격합니다. 인증 우회, 접근 제어 결함, 런타임에서만 나타나는 인젝션 취약점을 탐지합니다. DAST는 스테이징 환경에 대해 배포 후 실행됩니다.
두 가지는 서로를 보완합니다. SAST는 병합 전 코딩 오류를 탐지하고, DAST는 배포된 애플리케이션이 안전하게 동작하는지 검증합니다. 성숙한 파이프라인에서는 두 가지 모두 실행합니다.
"SBOM이란 무엇이며 왜 필요합니까?"
소프트웨어 자재 명세서는 정확한 버전을 포함하여 직접 및 전이적 의존성을 포함한 소프트웨어의 모든 구성 요소를 나열합니다. EU 사이버 복원력법과 같은 규제 요구 사항으로 인해 2026년 9월부터 EU 시장에 진입하는 제품에 SBOM 생성이 의무화됩니다.
실무적으로 SBOM은 신속한 인시던트 대응을 가능하게 합니다. 새로운 CVE가 공개되면 보안 팀은 모든 저장소를 수동으로 스캔하는 대신 SBOM 데이터베이스에 쿼리하여 취약한 구성 요소를 실행하는 모든 서비스를 식별할 수 있습니다.
"보안 도구에서 알림 피로를 어떻게 방지하겠습니까?"
알림 피로는 신호 대 노이즈 비율이 너무 낮아 개발자가 보안 발견 사항을 무시할 때 발생합니다. 방지를 위해서는 차단 게이트를 활성화하기 전에 각 도구를 튜닝해야 합니다. SAST의 경우 코드베이스에서 오탐을 생성하는 규칙을 비활성화하고 정리 후 점진적으로 활성화합니다. SCA의 경우 알려진 익스플로잇이 있는 CRITICAL 및 HIGH 심각도 발견 사항에 집중합니다. DAST의 경우 향후 스캔에서 오탐을 제외하도록 베이스라인 스캔을 구성합니다.
추적해야 할 지표는 실제 취약점의 수정까지 걸리는 시간입니다. 그 수치가 증가하면 개발자가 알림을 무시하고 있는 것입니다.
이러한 질문은 실무 경험을 테스트합니다. 특정 도구, 구성 결정, 구현 전후 지표를 포함한 실제 파이프라인에서의 예시를 준비하십시오.
컨테이너 및 런타임 보안
컨테이너 이미지 스캔은 배포 전 취약점을 탐지합니다. 런타임 보안은 프로덕션의 컨테이너를 비정상적인 동작에 대해 모니터링합니다. 이 조합은 알려진 취약점(베이스 이미지의 CVE)과 알려지지 않은 위협(손상된 컨테이너, 크립토마이너) 모두를 해결합니다.
Trivy는 빌드 파이프라인의 일부로 이미지를 스캔합니다. Falco는 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: trueignore-unfixed: true 플래그는 사용 가능한 패치가 없는 취약점을 건너뜁니다. 이렇게 하면 현재 수정할 수 없는 CVE로 인해 배포가 차단되는 것을 방지합니다.
런타임 보안의 경우 Falco 규칙이 실행 중인 컨테이너 내의 의심스러운 활동을 탐지합니다. 컨테이너 공급망 보안 모듈에서 이미지 서명 및 어드미션 컨트롤에 대해 자세히 설명합니다.
IaC 보안: Terraform 및 Kubernetes 매니페스트 스캔
Infrastructure as Code는 구성 레이어에서 보안 위험을 도입합니다. 과도하게 허용적인 IAM 정책, 공개적으로 접근 가능한 S3 버킷, 암호화되지 않은 데이터베이스는 IaC 템플릿의 안전하지 않은 기본값에서 비롯됩니다.
Checkov는 Terraform, CloudFormation, Kubernetes, Helm, Dockerfile의 잘못된 구성을 스캔합니다.
# .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.sarif경로 필터는 인프라 파일이 변경될 때만 IaC 스캔이 실행되도록 하여 애플리케이션 전용 변경에 대한 CI 시간을 단축합니다.
연습을 시작하세요!
면접 시뮬레이터와 기술 테스트로 지식을 테스트하세요.
2026년의 완전한 DevSecOps 파이프라인
2026년의 프로덕션 준비 DevSecOps 파이프라인은 각 단계에서 이러한 도구를 통합합니다:
- 프리커밋: Gitleaks(시크릿), 선택적 로컬 SAST
- 풀 리퀘스트: Semgrep(SAST), Trivy(SCA), Checkov(IaC)
- 빌드: 컨테이너 이미지 스캔, SBOM 생성
- 배포 전: Cosign으로 이미지 서명, Kyverno로 어드미션 컨트롤
- 배포 후: 스테이징에 대한 ZAP으로 DAST
- 런타임: 컨테이너 모니터링을 위한 Falco, 클라우드 보안 포스처 관리
무료 스택(Semgrep, Trivy, ZAP, Gitleaks, Checkov, Falco)은 모든 카테고리를 커버합니다. 상용 도구는 중앙 대시보드, 정책 관리, 튜닝 작업 감소를 추가하지만 보안 커버리지는 라이선스 비용 없이 달성 가능합니다.
DevSecOps 직무를 준비하는 분들은 개인 프로젝트에서 이러한 파이프라인을 구축하는 연습을 권장합니다. 클라우드 ID 및 시크릿 관리 모듈에서 시크릿 관리 측면을 다룹니다.
DevOps 코드의 버그를 찾을 수 있나요
실제 코드 한 조각, 숨은 버그 하나, 하루 한 번. 계정 없이 바로 도전할 수 있습니다.

작성자
Anthony Fillion-MailletSharpSkill 창업자
10년 이상 풀스택 개발을 해왔습니다. SharpSkill을 운영하며 이곳에 게시되는 모든 내용에 책임을 집니다.
2026년 9월 15일 업데이트
공유
관련 기사

2026년 DevOps 파이프라인 보안: DevSecOps 모범 사례 및 면접 질문
DevSecOps의 핵심 방법론, CI/CD 파이프라인 보안 강화 방법, 2026년 기술 면접에서 요구되는 보안 지식을 다룹니다. SAST, SCA, OIDC 페더레이션, 컨테이너 보안까지 종합적으로 소개합니다.

2026년 Kubernetes 시크릿 관리 완벽 가이드: External Secrets, Vault, 면접 대비
Kubernetes 시크릿 관리의 모든 것을 다룹니다. External Secrets Operator, HashiCorp Vault 연동, 프로덕션 환경 모범 사례, 기술 면접 빈출 질문까지 상세히 설명합니다.

Ansible vs Terraform 2026년 완벽 비교: IaC와 DevOps 면접 대비 가이드
Ansible과 Terraform의 사용법을 상세히 설명합니다. 선언적 및 절차적 접근 방식의 차이, 상태 관리, OpenTofu 동향, DevOps 면접에서 자주 나오는 질문과 답변 예시를 소개합니다.