2026년 하루 평균 보고된 CVE가 전년 대비 131% 증가했습니다.

종속성

SAST와 SCA 비교

SAST는 팀이 작성하는 코드의 결함을 찾습니다. SCA는 팀이 의존하는 코드의 알려진 위험을 찾습니다. 서로 다른 코드를 보고 서로 다른 문제를 잡아내므로, 어느 쪽도 다른 쪽을 대체하지 못합니다.

업데이트

한눈에 보는 차이

SAST SCA
의미 정적 애플리케이션 보안 테스트 소프트웨어 구성 분석
대상 자체 소스 코드 오픈 소스 및 서드파티 구성 요소
찾는 것 인젝션, 안전하지 않은 입력 처리, 안전하지 않은 패턴 알려진 취약점, 라이선스 문제, 오래된 패키지
기반 나쁜 코드의 형태에 대한 규칙 또는 모델 공개된 보안 권고 데이터베이스
발견 사항이 나타나는 시점 코드가 변경될 때 종속성이 변경되거나 새로운 보안 권고가 공개될 때
흔한 노이즈 실제로는 안전한 코드에 대한 오탐 패키지 사용 방식에는 영향을 주지 않는 실제 일치
수정 코드 변경 구성 요소 업그레이드 또는 교체

SAST가 하는 일

SAST 도구는 소스 코드를 실행하지 않고 읽으면서 데이터가 코드를 통해 어떻게 이동하는지 추적합니다. 사용자 입력이 정제되지 않은 채 데이터베이스 쿼리에 도달하면 해당 파일과 줄을 보고합니다. 자체 코드를 대상으로 하므로 아무도 공개한 적 없는 결함도 찾아낼 수 있습니다. 동시에 코드가 실제로 하는 일이 아니라 할 수도 있는 일을 추론하기 때문에 오탐 불만의 원인이 되기도 합니다.

SCA가 하는 일

SCA 스캔은 프로젝트의 구성 요소를 식별하고 이를 취약점 및 라이선스 데이터에서 조회합니다. 로직을 분석하지는 않습니다. 특정 버전에 공개된 결함이 있다는 것을 알기 때문에 결과는 대개 사실에 기반하지만, 도구가 도달 가능성 분석을 추가하지 않는 한 그 결함이 실제로 중요한지는 잘 알려 주지 않습니다. 전체 그림은 소프트웨어 구성 분석이란 무엇인가를 참고하세요.

둘 다 필요한 이유

두 가지 실패는 서로 독립적입니다. SAST 발견 사항이 없는 코드베이스도 취약한 종속성을 출시할 수 있고, 깨끗한 종속성 트리는 자체 핸들러의 SQL 인젝션에 대해 아무것도 말해 주지 않습니다.

시점도 다릅니다. SAST 발견 사항은 누군가 코드를 변경할 때 나타나므로 풀 리퀘스트 검사로 대부분을 잡을 수 있습니다. SCA 발견 사항은 새로운 보안 권고가 공개된 날, 아무것도 실행시킬 커밋 없이 몇 달 전에 출시한 릴리스에서 나타날 수 있습니다. 따라서 SCA에는 출시된 것을 계속 확인하는 무언가가 필요합니다.

DAST의 역할

동적 애플리케이션 보안 테스트는 실제 공격자처럼 실행 중인 애플리케이션을 외부에서 공격합니다. 코드를 읽지 않고, 인증 및 구성 문제처럼 런타임에만 드러나는 것을 찾아냅니다.

SAST SCA DAST
필요한 것 소스 코드 매니페스트, 이미지 또는 빌드 기록 실행 중인 애플리케이션
실행 시점 풀 리퀘스트에서 풀 리퀘스트, 빌드, 출시 후 테스트 환경을 대상으로
강점 자체 코드의 결함 종속성의 알려진 위험 런타임 및 구성 결함

무엇을 먼저 실행해야 합니까?

대부분의 팀에게는 SCA입니다. 설정이 빠르고, 몇 초에서 몇 분이면 실행되며, 현대 애플리케이션의 대부분이 종속성이므로 출시하는 것의 가장 큰 부분을 다룹니다. 다음으로 풀 리퀘스트에 SAST를 추가하고, 사용하는 스택에 중요한 규칙에 맞게 조정하세요. 대상으로 삼을 안정적인 테스트 환경이 갖춰지면 DAST를 추가하세요.

플랫폼 하나를 살까요, 도구 여러 개를 살까요?

Snyk, Checkmarx, GitHub Advanced Security 같은 플랫폼은 SAST와 SCA를 묶어 제공하므로 계약 하나, 워크플로 하나로 해결됩니다. 별도의 도구는 각 영역에서 더 강할 수 있습니다. 더 중요한 것은 입력입니다. 두 종류의 스캐너 모두 선언되거나 작성된 것을 바탕으로 작동하며, 어느 쪽도 빌드가 실제로 가져온 것을 보지 못합니다.

둘 다 다루지 않는 것

SAST와 SCA는 모두 파일을 읽습니다. 어느 쪽도 빌드를 관찰하지 않으므로, 설치 훅이 가져온 코드, CI 캐시에서 복원된 패키지, 빌드 도구 자체가 시야 밖에 남을 수 있습니다. 바로 이 빈틈을 다루는 것이 소프트웨어 공급망 보안입니다.

CRACI는 이 부분을 다루며, 코드 스캔은 그 목적으로 만들어진 도구에 맡깁니다. CRACI는 설계상 SAST나 시크릿 스캔을 하지 않으며, CRACI와 함께 쓸 수 있는 뛰어난 SAST 도구가 많습니다. CRACI는 각 작업이 가져오는 것을 SBOM으로 기록하고, 출시된 소프트웨어의 SBOM을 새로운 취약점에 대해 계속 확인하는 GitHub Actions 러너입니다. 최고의 SCA 도구와 그 옆에서 CRACI가 맡는 역할을 참고하세요.

SAST와 SCA: 자주 묻는 질문

SAST와 SCA의 차이는 무엇입니까?

SAST는 팀이 작성하는 코드에서 인젝션 같은 결함을 분석합니다. SCA는 의존하는 오픈 소스 및 서드파티 구성 요소에서 알려진 취약점과 라이선스 문제를 분석합니다.

SCA가 SAST를 대체합니까?

아닙니다. 둘은 서로 다른 코드를 봅니다. SCA는 자체 로직의 결함을 찾지 못하고, SAST는 종속성에 공개된 취약점이 있다는 것을 알려 주지 않습니다.

SAST, DAST, SCA의 차이는 무엇입니까?

SAST는 소스 코드를 읽습니다. SCA는 종속성을 확인합니다. DAST는 실행 중인 애플리케이션을 외부에서 테스트합니다. 각각은 나머지 둘이 놓치는 문제를 찾아냅니다.

Snyk은 SAST입니까, SCA입니까?

둘 다입니다. Snyk은 오픈 소스 종속성 스캔으로 시작했으며, 컨테이너 및 코드형 인프라 스캔과 함께 SAST도 제공합니다.

SonarQube는 SAST입니까, SCA입니까?

SonarQube는 자체 코드의 정적 분석, 즉 SAST로 가장 잘 알려져 있습니다. 그 밖에 무엇이 포함되는지는 현재 에디션을 확인하세요.

SAST와 SCA 중 무엇이 먼저입니까?

설정이 간단하고 출시하는 것의 가장 큰 부분을 다루므로 대개 SCA가 더 빠른 성과를 냅니다. SAST는 오탐을 줄이기 위해 더 많은 조정이 필요합니다.

스캐너가 볼 수 없는 것을 다루세요

SAST와 SCA 도구는 그대로 두고, 각 GitHub Actions 빌드가 실제로 가져온 것의 기록을 더하세요.

데모 예약