0Pricing
Cloud & IT Cert Prep · 강의

DevSecOps: 파이프라인에 보안을 앞단에서 통합하기

SAST, DAST, 컨테이너 검사, IaC 보안 검사를 CI/CD 파이프라인에 포함해 모든 커밋에서 보안 게이트가 자동으로 적용되도록 합니다.

DevSecOps: 파이프라인에 보안을 앞단에서 통합하기은(는) CoddyKit의 무료 Cloud & IT Cert Prep 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cloud & IT Cert Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.

보안을 왼쪽으로 이동한다는 것은 무엇입니까

보안을 왼쪽으로 이동한다는 것은 배포 전 최종 게이트에서 보안을 검사하는 대신 개발자의 IDE, 코드 검토, CI/CD 파이프라인 등 소프트웨어 개발 수명 주기의 더 이른 단계에 보안 활동을 통합하는 것을 의미합니다. 전통적인 보안 검토는 개발 주기의 마지막에 이루어졌기 때문에 수정에 많은 비용과 시간이 들었습니다. 개발 중에 취약점을 발견하면 침해가 발생한 후 운영 환경에서 발견하는 경우보다 수정 비용이 대략 100배 적게 듭니다.

DevSecOps란 무엇인가요?

DevSecOps는 개발, 운영, 보안 팀 전체가 SDLC 전반에 걸쳐 보안을 공동 책임으로 통합하여 DevOps 모델을 확장합니다. 목표는 보안 테스트를 자동화하여 제공 속도를 늦추지 않고 모든 단계에서 실행되도록 하는 것입니다. 보안은 일회성 점검이 아니라 파이프라인의 지속적인 속성이 됩니다. 성숙한 DevSecOps 프로그램에서는 개발자가 수동 검토를 거친 몇 주 후가 아니라 코드를 작성한 지 몇 초 안에 보안 피드백을 받습니다.

SAST: 정적 애플리케이션 보안 테스트

SAST (정적 애플리케이션 보안 테스트)는 애플리케이션을 실행하지 않고 소스 코드, 바이트코드 또는 바이너리를 분석합니다. SAST 도구는 취약점을 나타내는 패턴을 검색합니다. 예를 들면 SQL 연결, 정제되지 않은 출력, 금지된 함수 사용, 하드코딩된 자격 증명, 안전하지 않은 암호화 사용 등이 있습니다. SAST는 모든 커밋에서 CI 파이프라인으로 실행되어 문제가 QA 또는 운영 환경에 도달하기 전에 발견합니다. 널리 사용되는 도구로는 Semgrep, SonarQube, Checkmarx 및 Veracode가 있습니다.

# Semgrep SAST rule example:
# Detect raw SQL string concatenation (SQL injection risk):
# rules:
#   - id: sql-injection-string-concat
#     pattern: |
#       $QUERY = '...' + $USER_INPUT
#       $DB.execute($QUERY)
#     message: 'SQL injection risk: use parameterized queries'
#     severity: ERROR
#     languages: [python]

# Running Semgrep in CI:
# semgrep --config auto --error src/
# -> Fails build if ERROR severity findings found

DAST: 동적 애플리케이션 보안 테스트

DAST (동적 애플리케이션 보안 테스트)는 악의적인 페이로드를 보내고 응답을 관찰하여 실행 중인 애플리케이션을 테스트합니다. 즉, 실제 Attacker의 행동을 모의합니다. SAST와 달리 DAST는 실행 시점에만 나타나는 취약점을 찾아냅니다. 여기에는 인증 결함, 세션 관리 문제, 비즈니스 로직 버그, 복잡한 Data 흐름의 주입 취약점 등이 포함됩니다. 널리 사용되는 DAST 도구로는 OWASP ZAP (무료), Burp Suite Enterprise 및 Acunetix가 있습니다. DAST는 파이프라인에서 스테이징 환경을 대상으로 실행됩니다.

# OWASP ZAP automated DAST in CI pipeline:
# docker run -t owasp/zap2docker-stable zap-baseline.py \
#   -t https://staging.myapp.com \
#   -r zap-report.html \
#   -I  (do not fail on alerts, report only)

# For blocking builds on high findings:
# zap-full-scan.py -t https://staging.myapp.com \
#   -l HIGH   (fail if HIGH or CRITICAL alerts found)

# ZAP tests for:
# SQL injection, XSS, CSRF, insecure headers,
# path traversal, broken authentication, open redirects

컨테이너 이미지 검사

컨테이너 이미지는 OS 패키지, 언어 런타임 및 애플리케이션 종속성을 포함하는 기본 이미지로 빌드되며, 이 모든 요소가 알려진 취약점의 잠재적인 원인이 될 수 있습니다. 컨테이너 이미지 검사 도구는 이미지 계층을 분석하고 취약한 패키지를 식별합니다. Trivy(무료, 빠름), Grype(Anchore) 및 Clair가 널리 사용됩니다. 검사는 이미지 빌드 파이프라인의 일부로 실행되며, CRITICAL CVE가 포함된 이미지가 운영 레지스트리로 승격되는 것을 차단합니다.

# Trivy container scan in CI pipeline:
# trivy image --severity HIGH,CRITICAL \
#             --exit-code 1 \
#             myapp:latest

# Output example:
# library/python:3.9-slim (debian 11.6)
# ===================================
# CVE-2023-1234  CRITICAL  openssl 1.1.1n-0+deb11u3 -> 1.1.1t
# CVE-2023-5678  HIGH      libssl  1.1.1n            -> 1.1.1t

# --exit-code 1 causes pipeline to fail
# on any HIGH or CRITICAL finding -> blocks push to registry

코드형 인프라(IaC) 보안 검사

IaC 보안 검사는 Terraform, CloudFormation, Kubernetes 매니페스트 및 Helm 차트가 적용되기 전에 보안 설정 오류를 분석합니다. Checkov 및 tfsec와 같은 도구는 서버 측 암호화가 없는 S3 Bucket, 모든 인바운드 트래픽을 허용하는 보안 그룹, 와일드카드 권한을 가진 IAM 역할, root로 실행되는 Kubernetes 파드 등의 위반 사항을 검사합니다. IaC 검사는 클라우드 설정 오류가 어떤 환경에도 도달하기 전에 방지합니다.

# Checkov IaC scan example:
# checkov -d ./terraform/ --compact

# Findings example:
# FAILED: CKV_AWS_20: S3 Bucket has an ACL defined which allows public access
#   File: /terraform/s3.tf, Line: 15

# FAILED: CKV_AWS_57: S3 Bucket has server access logging disabled
#   File: /terraform/s3.tf, Line: 15

# FAILED: CKV_AWS_24: Ensure no security groups allow all ingress traffic
#   File: /terraform/sg.tf, Line: 8

# Passed checks: 47, Failed: 3, Skipped: 0

파이프라인의 비밀 정보 검사

비밀 정보 검사 도구는 실수로 포함된 자격 증명이 있는지 소스 코드와 커밋을 확인합니다. truffleHog, GitLeaks 및 detect-secrets와 같은 도구는 git 기록과 새 커밋에서 API 키, 연결 문자열, 개인 키 및 JWT 토큰과 일치하는 패턴을 검색합니다. 커밋 전 훅으로 실행되는 비밀 정보 검사는 자격 증명이 포함된 커밋을 차단합니다. CI 게이트로 실행되면 푸시할 때마다 저장소의 모든 파일을 검사하고 비밀 정보가 발견되면 빌드를 실패시킵니다.

# GitLeaks pre-commit hook configuration:
# .gitleaks.toml:
# [allowlist]
#   description = 'Known false positives'
#   paths = ['test/fixtures/fake_key.txt']

# Install as pre-commit hook:
# gitleaks protect --staged
# (scans staged files before commit is created)

# In CI pipeline:
# gitleaks detect --source=. --report-format=json \
#   --report-path=gitleaks-report.json
# exit code 1 = secrets found -> blocks pipeline

SDLC의 위협 모델링

위협 모델링은 코드를 작성하기 전에 보안 요구 사항과 설계 결함을 식별하는 구조화된 프로세스입니다. STRIDE 모델(Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege)은 팀이 시스템의 Data 흐름 다이어그램을 대상으로 위협을 체계적으로 열거하도록 돕습니다. 위협 모델링 세션은 설계 단계에서 진행되며, 보안 요구 사항을 결정하고 SAST/DAST 규칙 선택에 참고할 수 있도록 우선순위가 지정된 위협 목록을 만듭니다.

# STRIDE threat categories applied to a web login API:
# S - Spoofing:       Attacker impersonates valid user
#     Control: Strong authentication, MFA
# T - Tampering:      Attacker modifies login request
#     Control: TLS, HMAC, input validation
# R - Repudiation:    User denies actions taken
#     Control: Audit logging with tamper-evident storage
# I - Info Disclosure: Password exposed in logs
#     Control: Never log sensitive fields
# D - Denial of Service: Flood login endpoint
#     Control: Rate limiting, CAPTCHA
# E - Elevation of Privilege: Bypass authorization
#     Control: Server-side authorization checks

보안 게이트: 차단과 권고

DevSecOps 파이프라인은 보안 검사를 차단 게이트(빌드를 실패시키고 배포를 방지) 또는 권고 검사(Findings를 보고하고 배포를 계속 허용)로 구현합니다. 일반적으로 SAST, 컨테이너 검사 및 비밀 정보 탐지에서 발견된 CRITICAL 및 HIGH 심각도 Findings는 차단됩니다. 중간 및 낮은 심각도의 Findings는 차단하지 않고 알림이나 티켓을 생성합니다. 이러한 균형을 통해 보안 때문에 모든 제공이 중단되는 상황을 방지하면서도 실제로 위험한 상태가 자동으로 운영 환경에 도달하지 않도록 합니다.

DevSecOps의 보안 지표

DevSecOps 프로그램은 명확한 지표로 측정해야 합니다. 주요 지표에는 HIGH 심각도 Findings의 평균 수정 시간(MTTR), 취약점 밀도(시간에 따른 코드 1,000줄당 Findings 수), 유출률(운영 후 발견된 취약점이 운영 전 발견된 취약점에서 차지하는 비율), 파이프라인 보안 게이트 통과율이 포함됩니다. 이러한 지표의 시간에 따른 추세를 확인하면 프로그램의 효과를 입증하고 추가 도구나 교육에 대한 투자 결정을 이끌 수 있습니다.

문화: 보안은 공동 책임

DevSecOps에서 가장 어려운 부분은 기술이 아니라 문화입니다. 보안은 보안 팀만이 아니라 모든 개발자의 책임이 되어야 합니다. 이를 위해서는 개발자 보안 교육(안전한 코딩에 대한 인식 제고), 개발 팀에 배치되는 보안 챔피언, 취약점이 운영 환경에 도달했을 때의 비난 없는 사후 분석(처벌이 아니라 프로세스 개선에 중점), 그리고 진정한 보안 위험에 대응하기 위해 속도와 보안 사이의 절충이 필요할 때 이를 허용하겠다는 경영진의 의지가 필요합니다. 문화가 바뀌지 않은 상태에서 기술만 도입하면 개발자는 검사 도구를 무시하는 방법부터 배우게 됩니다.

빠른 확인

이번 수업에서 다룬 CompTIA Security+ (SY0-701) 개념을 얼마나 이해했는지 확인해 보세요.

수업 요약

이번 수업에서는 다음을 배웠습니다. DevSecOps는 SAST, DAST, 비밀 정보 검사, 컨테이너 검사 및 IaC 검사를 자동화된 파이프라인 게이트로 통합합니다. 높은 심각도의 Findings를 차단하면 위험한 상태가 운영 환경에 도달하는 것을 방지할 수 있으며, 보안을 왼쪽으로 이동하면 수정 비용이 크게 감소합니다. 배포 후가 아니라 개발 중에 취약점을 발견하기 때문입니다. 다음에는 시설과 데이터 센터를 위한 Physical 보안 Control을 살펴보겠습니다.

자주 묻는 질문

“DevSecOps: 파이프라인에 보안을 앞단에서 통합하기” 강의는 무료인가요?

네 — “DevSecOps: 파이프라인에 보안을 앞단에서 통합하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cloud & IT Cert Prep 강의 전체를 잠금 해제할 수 있습니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.

“DevSecOps: 파이프라인에 보안을 앞단에서 통합하기”에서 뭘 배우나요?

SAST, DAST, 컨테이너 검사, IaC 보안 검사를 CI/CD 파이프라인에 포함해 모든 커밋에서 보안 게이트가 자동으로 적용되도록 합니다. 브라우저에서 직접 실행하는 실습 코드로 Cloud & IT Cert Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Cloud & IT Cert Prep을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Cloud & IT Cert Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“DevSecOps: 파이프라인에 보안을 앞단에서 통합하기” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Cloud & IT Cert Prep 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Cloud & IT Cert Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 입력 검증 및 출력 인코딩
  2. 보안 비밀 관리 및 환경 변수
  3. 종속성 보안 및 소프트웨어 구성 분석
  4. DevSecOps: 파이프라인에 보안을 앞단에서 통합하기
← Cloud & IT Cert Prep(으)로 돌아가기