DevSecOps는 소프트웨어 개발(Dev), 보안(Sec), 운영(Ops)을 통합하여 보안을 개발 파이프라인의 모든 단계에 내재화하는 방법론이다. "보안을 왼쪽으로 이동(Shift Left Security)"하여 취약점을 조기 발견하고 수정 비용을 절감한다.
DevOps vs DevSecOps
DevOps:
개발 → 빌드 → 테스트 → 배포 → 운영
↑
(보안은 나중에)
DevSecOps:
개발 → 빌드 → 테스트 → 배포 → 운영
↓ ↓ ↓ ↓ ↓
코드 SAST DAST IAST 런타임
보안 분석 분석 분석 보호
CI/CD 파이프라인 보안 통합
yaml
# GitHub Actions DevSecOps 파이프라인 예시
name: DevSecOps Pipeline
jobs:
security:
steps:
- name: 비밀 스캔 (Secret Scanning)
uses: trufflesecurity/trufflehog@main
- name: SAST (정적 분석)
uses: github/codeql-action/analyze@v2
- name: SCA (의존성 취약점)
run: npm audit --audit-level=high
- name: 컨테이너 이미지 스캔
uses: aquasecurity/trivy-action@master
with:
image-ref: myapp:latest
- name: DAST (동적 분석)
run: docker run owasp/zap2docker-stable zap-baseline.py -t http://staging
주요 보안 도구
| 단계 | 도구 | 기능 |
|---|
| 코드 작성 | Git-secrets, detect-secrets | 비밀 키 커밋 방지 |
| 정적 분석(SAST) | SonarQube, CodeQL, Semgrep | 코드 취약점 분석 |
| 의존성(SCA) | Snyk, Dependabot, OWASP Dependency-Check | 라이브러리 취약점 |
| 컨테이너 | Trivy, Clair, Anchore | 이미지 취약점 |
| 동적 분석(DAST) | OWASP ZAP, Burp Suite | 실행 중 취약점 |
| 런타임 보호 | Falco, Aqua Security | 이상 행위 탐지 |
보안 게이트
Critical 취약점 발견 → 파이프라인 중단 (Fail)
High 취약점 → 경고 후 승인 필요
Medium/Low → 티켓 생성, 계속 진행
관련 개념