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 등 도구 활용