보안 SDLC, SAST, DAST 도구
정적 분석(SAST), 동적 분석(DAST), 위협 모델링을 개발 초기부터 활용하여 소프트웨어 개발 수명 주기에 보안을 통합합니다.
보안 SDLC, SAST, DAST 도구은(는) CoddyKit의 무료 Security+ Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Security+ Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Security+ Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
안전한 SDLC란 무엇인가
안전한 소프트웨어 개발 수명 주기(SSDLC)는 요구 사항부터 설계, 코딩, 테스트, 배포, 유지 관리에 이르는 소프트웨어 개발의 모든 단계에 보안 활동을 통합합니다. 기존 SDLC는 보안을 마지막 단계의 관문으로 취급하므로 비용이 많이 들고 효과도 낮습니다. 안전한 SDLC의 원칙은 취약점을 가능한 한 이른 시점에 찾아 수정하는 것입니다. 설계 단계에서 발견한 결함은 운영 환경에서 발견한 결함보다 수정 비용이 훨씬 적기 때문입니다.
개발 과정에서 보안을 앞단으로 이동하기
왼쪽으로 이동하기란 보안을 마지막에 덧붙이는 대신 더 이른 단계로 이동하는 것을 의미합니다. 개발 일정에서 왼쪽에 해당하는 단계로 옮긴다는 뜻입니다. 실제로는 사용자 스토리에 보안 요구 사항을 포함하고, 설계 중 위협 모델링을 수행하며, 개발 중 코드 검토와 SAST를 진행하고, 출시 전에 DAST를 실행하는 것을 의미합니다. 보안을 앞단으로 이동하는 Team은 운영 환경이 아니라 개발 중에 취약점을 발견하므로 가장 적은 비용으로 수정할 수 있습니다.
위협 모델링: STRIDE와 PASTA
위협 모델링은 설계 단계에서 보안 위협을 체계적으로 식별하고 문서화합니다. STRIDE 모델은 위협을 다음과 같이 분류합니다. Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege입니다. PASTA(Process for Attack Simulation and Threat Analysis)는 Attacker의 목표를 시뮬레이션하는 위험 중심 방법론입니다. 위협 모델은 코드 한 줄을 작성하기 전에 우선순위가 지정된 완화책을 도출합니다.
# STRIDE threat categories (mnemonic)
# S - Spoofing identity
# T - Tampering with data
# R - Repudiation of actions
# I - Information disclosure
# D - Denial of service
# E - Elevation of privilege정적 애플리케이션 보안 테스트(SAST)
SAST(화이트박스 테스트)는 애플리케이션을 실행하지 않고 소스 코드, 바이트코드 또는 바이너리를 분석하여 알려진 취약점과 관련된 코딩 패턴을 검색합니다. SAST 도구는 전체 코드베이스를 빠르게 검사하고 하드코딩된 자격 증명, SQL 삽입 지점, 안전하지 않은 역직렬화와 같은 문제를 보고할 수 있습니다. 이러한 도구는 IDE 또는 CI 파이프라인 내부에서 실행되며 file 및 line 번호와 함께 결과를 보고하므로 쉽게 수정할 수 있습니다.
# Example: running Semgrep SAST in CI
semgrep --config=auto --error src/
# Common SAST tools:
# - Checkmarx, Veracode, Fortify (commercial)
# - Semgrep, SonarQube, Bandit (open source)
# - GitHub CodeQL (integrated with GitHub Actions)SAST의 한계: 오탐
SAST의 주요 한계는 오탐을 발생시키는 경향입니다. 실제로는 안전한 코드를 취약하다고 표시하는 것입니다. 이러한 경고 피로 때문에 개발자는 결과를 조사하지 않고 무시하게 됩니다. 또한 SAST 도구는 실행 중 Configuration 문제, 실행 중 동작에 의존하는 Authentication 결함, 타사 API 호출의 취약점을 감지할 수 없습니다. SAST는 결과를 정확하게 분류할 수 있도록 개발자 교육과 함께 사용할 때 가장 효과적입니다.
동적 애플리케이션 보안 테스트(DAST)
DAST(블랙박스 테스트)는 실행 중인 애플리케이션의 HTTP 엔드포인트에 공격 페이로드를 보내고 응답을 분석하여 취약점 지표를 찾습니다. DAST는 소스 코드에 접근할 필요 없이 Attacker가 애플리케이션을 테스트하는 방식으로 검사합니다. Authentication 우회, 응답에 반영되는 XSS, Server 잘못된 Configuration과 같은 실행 중 문제를 찾는 데 효과적입니다. DAST 도구로는 OWASP ZAP, 버프 스위트, Netsparker가 있습니다.
# Running OWASP ZAP baseline scan against a URL
docker run -t owasp/zap2docker-stable zap-baseline.py \
-t https://staging.example.com \
-r zap-report.html
# ZAP sends probe requests and analyzes responses
# without requiring source code accessSAST와 DAST: 상호 보완적 접근 방식
SAST와 DAST는 경쟁 관계가 아니라 서로를 보완합니다. SAST는 코드 수준의 문제를 초기에 발견하고 IDE와 통합되지만 실행 중 동작은 확인할 수 없습니다. DAST는 실행 중 취약점을 찾고 소스 코드가 필요하지 않지만, 자동화된 탐색이 유발하지 않는 코드 경로는 검사할 수 없습니다. 두 방식을 함께 사용하면 SDLC 전반의 취약점 탐지 범위를 극대화할 수 있습니다. 즉, CI 파이프라인에서는 SAST를 사용하고 스테이징 환경을 대상으로 DAST를 실행합니다.
대화형 애플리케이션 보안 테스트(IAST)
IAST는 실행 중 애플리케이션에 계측을 적용하여 SAST와 DAST의 요소를 결합합니다. IAST 에이전트는 애플리케이션 내부(Server)에서 실행되며 테스트 트래픽이 통과할 때 코드 실행을 관찰합니다. 오염된 User input이 코드 경로를 거쳐 민감한 싱크에 도달하는 과정을 추적할 수 있으므로 순수한 SAST보다 낮은 오탐률로 취약점을 찾습니다. IAST는 특히 Java 및 닷넷 애플리케이션에서 효과적이며 기능 테스트 실행에도 자연스럽게 통합됩니다.
소프트웨어 구성 분석(SCA)
소프트웨어 구성 분석(SCA)은 애플리케이션에 포함된 오픈 소스 라이브러리와 타사 Dependency를 식별하고 이를 취약점 데이터베이스(NVD, OSV)와 대조합니다. 최신 애플리케이션은 수백 개의 Dependency를 가져올 수 있고 그중 상당수는 전이적으로 포함되므로, OWASP Dependency-Check, Snyk, Renovate와 같은 SCA 도구는 Attacker가 공급망에서 알려진 CVEs를 악용하기 전에 이를 발견하는 데 필수적입니다.
# OWASP Dependency-Check (scans project dependencies)
dependency-check --project myapp --scan ./target --format HTML
# Snyk CLI
snyk test # finds vulnerabilities in package.json / requirements.txt
snyk monitor # continuously monitors for new CVEsCI/CD 파이프라인의 보안
CI/CD 파이프라인에 보안 도구를 통합하면 보안 관문을 통과하지 않은 코드가 운영 환경에 도달하지 않도록 할 수 있습니다. 일반적인 DevSecOps 파이프라인은 다음을 실행합니다. 모든 커밋에 SAST 적용, Dependency가 변경될 때 SCA 적용, 레지스트리에 Container 이미지를 푸시하기 전 이미지 검사, Terraform/CloudFormation에 대한 IaC 검사, 스테이징 배포를 대상으로 한 DAST 실행입니다. 보안 Check가 실패하면 빌드를 차단하여 보안을 기본값으로 삼는 문화를 정착시킵니다.
# GitHub Actions example — security gate in CI
jobs:
security:
steps:
- uses: actions/checkout@v4
- name: Run SAST
run: semgrep --config=auto --error .
- name: SCA check
run: snyk test --severity-threshold=high
- name: Container scan
run: trivy image myapp:latest --exit-code 1안전한 코드 검토 관행
자동화된 도구가 보안 로직에 초점을 둔 사람의 코드 검토를 대신할 수는 없습니다. 동료 검토에서는 다음을 확인해야 합니다. Authentication 및 권한 부여 Check가 올바른 위치에 있는지, error 처리가 민감한 Information을 노출하지 않는지, 암호화 함수가 승인된 알고리즘과 매개변수를 사용하는지, 비즈니스 로직을 우회할 수 없는지 확인해야 합니다. 개발 Team 내부의 보안 챔피언, 즉 보안 교육을 받은 개발자는 보안 Team과 Engineering 사이의 간극을 메웁니다.
빠른 Check
이 lesson에서 배운 CompTIA Security+ (SY0-701) 개념을 점검해 보십시오.
lesson 요약
이 lesson에서는 안전한 SDLC가 보안을 마지막에 덧붙이는 대신 모든 개발 단계에 통합한다는 점, SAST는 실행 없이 코드를 분석하고 DAST는 실행 중인 애플리케이션을 테스트한다는 점, SCA는 취약한 오픈 소스 Dependency를 식별하며 CI/CD 보안 관문은 결과를 자동으로 적용한다는 점을 배웠습니다. 다음에는 LDAP와 Active Directory를 사용한 Directory Service를 살펴봅니다.
AI 튜터와 함께 Security+ Academy을(를) 배우세요 — 무료
브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.
- 코스
- 30
- 레슨
- 120
자주 묻는 질문
“보안 SDLC, SAST, DAST 도구” 강의는 무료인가요?
네 — “보안 SDLC, SAST, DAST 도구” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Security+ Academy 강의 전체를 잠금 해제할 수 있습니다. Security+ Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“보안 SDLC, SAST, DAST 도구”에서 뭘 배우나요?
정적 분석(SAST), 동적 분석(DAST), 위협 모델링을 개발 초기부터 활용하여 소프트웨어 개발 수명 주기에 보안을 통합합니다. 브라우저에서 직접 실행하는 실습 코드로 Security+ Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Security+ Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Security+ Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“보안 SDLC, SAST, DAST 도구” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Security+ Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Security+ Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- SQL 삽입과 명령 삽입
- 사이트 간 스크립팅(XSS)과 CSRF
- 취약한 인증과 안전하지 않은 역직렬화
- 보안 SDLC, SAST, DAST 도구