시큐어 SDLC(Secure Software Development Lifecycle)는 소프트웨어 개발의 모든 단계에 보안 활동을 통합해 보안 결함을 조기에 발견·제거하는 프로세스다. "Shift Left"가 핵심 철학이다.
단계별 보안 활동
| 단계 | 보안 활동 | 도구 |
|---|
| 요구사항 | 보안 요구사항 정의, 위협 모델링 | Microsoft Threat Modeling |
| 설계 | 아키텍처 보안 검토, STRIDE 분석 | OWASP Threat Dragon |
| 구현 | 시큐어 코딩 가이드, SAST | SonarQube, Semgrep, Checkmarx |
| 테스트 | DAST, Penetration Testing, SCA | OWASP ZAP, Burp Suite, Snyk |
| 배포 | 설정 강화, 컨테이너 스캔 | Trivy, Checkov, OWASP ASVS |
| 운영 | 취약점 관리, 인시던트 대응 | - |
DevSecOps 파이프라인
yaml
# .github/workflows/security.yml
name: Security Pipeline
on: [push, pull_request]
jobs:
sast:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# Semgrep SAST
- name: Semgrep SAST
uses: semgrep/semgrep-action@v1
with:
config: p/owasp-top-ten
# Secret 탐지
- name: Gitleaks Secret Scan
uses: gitleaks/gitleaks-action@v2
sca:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# 의존성 취약점 스캔
- name: Snyk SCA
uses: snyk/actions/node@master
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
with:
args: --severity-threshold=high
container:
runs-on: ubuntu-latest
steps:
- name: Trivy Container Scan
uses: aquasecurity/trivy-action@master
with:
image-ref: myapp:${{ github.sha }}
severity: CRITICAL,HIGH
exit-code: 1 # Critical/High 발견 시 빌드 실패
STRIDE 위협 모델링
S - Spoofing (스푸핑): 신원 위장
대응: 인증, MFA
T - Tampering (변조): 데이터 무단 수정
대응: 무결성 검증, HMAC
R - Repudiation (부인): 행동 부인
대응: 감사 로그, 디지털 서명
I - Information Disclosure (정보 노출): 권한 없는 데이터 접근
대응: 암호화, 최소 권한
D - Denial of Service (서비스 거부): 가용성 침해
대응: Rate limiting, 이중화
E - Elevation of Privilege (권한 상승): 권한 초과 획득
대응: 최소 권한, 권한 검증
관련 문서
- •[vulnerability-management|[취약점 관리]]
- •[[dependency-confusion|의존성 혼란 공격]]
- •[[code-signing|코드 서명]]