SAST, DAST, 및 SCA: 코드의 보안을 지키는 실전 도구
카테고리
인프라/DevOps/보안
서브카테고리
보안 프로토콜과 표준 정확히 인용
대상자
- 개발자, DevOps 엔지니어, 보안 전문가
- 난이도: 중간 수준 (보안 도구 사용 경험 필요)
핵심 요약
- SAST는 코드 작성 단계에서 취약점 검출 (예: SQL 인젝션, 하드코딩된 비밀번호)
- DAST는 런타임에서 실제 공격 경로 시뮬레이션 (예: XSS, 인증 오류)
- SCA는 외부 라이브러리의 취약점 및 라이선스 문제 감지 (예: Log4j, CVE)
섹션별 세부 요약
1. SAST(SAST)
- 기능: 코드 분석을 통해 SQL 인젝션, 비밀번호 하드코딩, 데이터 처리 오류 검출
- 작동 방식: CI/CD 파이프라인 초기 통합, 라인-by-라인 분석
- 장점: 배포 전 취약점 탐지 | 단점: 런타임 오류 탐지 불가
2. DAST(DAST)
- 기능: 운영 중 앱의 취약점 식별 (예: 노출된 API, XSS)
- 작동 방식: 생산 환경에서 테스트 (예: 마이크로서비스, 웹 앱)
- 장점: 실제 공격 시뮬레이션 | 단점: 코드 수준 오류 탐지 불가
3. SCA(SCA)
- 기능: 외부 라이브러리의 취약점, CVE, 라이선스 위반 감지
- 작동 방식: npm, PyPI, Maven 등 의존성 스캔
- 장점: Log4j, bcrypt 등 유명 취약 라이브러리 탐지 | 단점: 커스텀 코드 오류 고치지 않음
4. 비교 표 및 사례
- SAST: 코드 작성 단계에서만 작동 (✅)
- DAST: 테스트 및 배포 단계에서 작동 (✅)
- SCA: 테스트 및 배포 단계에서 작동 (✅)
- 사례:
- SAST: 로그인 모듈의 SQLi 취약점 탐지
- SCA: lodash
의 중대한 CVE 경고
- DAST: API 보안 확인
5. 실무 적용 팁
- SAST: IDE 또는 CI/CD 파이프라인에 통합
- DAST: 프로덕션 배포 전 스테이징 환경에서 실행
- SCA:
package.json
자동 스캔
결론
- SAST, DAST, SCA를 병행하여 다층 보안(Security-in-Depth) 구축
- 도구 과부하 방지를 위해 하나부터 시작, 점진적으로 확장
- 가짜 경고 필터링 및 도구 정기 업데이트 필수
- 예시:
SonarQube
,OWASP ZAP
,Snyk
등 도구 활용