
일반적인 엔터프라이즈 SCA 스캔에서는 수백 개의 취약한 Dependency가 탐지됩니다.
보안팀은 이를 분류하고 우선순위를 정하는 데 수많은 시간을 소비합니다. 대부분의 발견
사항은 실제로 악용되지 않습니다. 이것은 도구의 문제가 아닙니다. Software Composition
Analysis가 작동하는 방식 자체의 근본적인 한계입니다. 그리고 이를 이해하는 것이
불필요한 노이즈를 줄이는 첫 번째 단계입니다.
이 글에서는 SCA가 무엇인지, 어떻게 작동하는지, 무엇을 탐지하는지, 어떤 한계가 있는지,
그리고 Runtime SCA가 어떻게 이러한 노이즈 문제를 해결하는지를 다룹니다. 이러한
폭넓은 주제에 대해 처음 접하신다면, 자동화된 보안 스캐닝이 AppSec 프로그램에 어떻게
적용되는지 이해하는 데 도움이 되는 Vulnerability Scanning 관련 자료도 유용합니다.
핵심 요점
●SCA(Software Composition Analysis)는 코드베이스에 포함된 오픈소스 및 Third-
Party 컴포넌트를 식별하고, 이를 CVE 데이터베이스와 대조합니다.
● 상용 애플리케이션의 90~97%가 오픈소스 컴포넌트로 구성되어 있습니다(Sonatype
및 Black Duck 등의 데이터 기준).
● SCA는 Software Bill of Materials(SBOM)을 생성하고, CVE, 라이선스 위반 및
오래된 패키지를 탐지합니다.
● 핵심적인 한계는 SCA가 취약한 라이브러리가 존재한다는 것은 확인할 수 있지만,
해당 취약한 함수가 Runtime에서 실제로 실행되는지는 확인할 수 없다는 것입니다.
따라서 해당 취약점이 애플리케이션에 실제 위험을 초래하는지 검증할 수 없습니다.
● Runtime SCA는 애플리케이션 내부에서 취약한 함수가 실제로 실행되는지를
식별함으로써 이러한 문제를 해결하며, 실행 가능한 CVE 발견 결과를 99%까지
감소시킵니다.
SCA란 무엇인가?
Software Composition Analysis(SCA)는 코드베이스에 포함된 오픈소스 및 Third-Party
컴포넌트를 식별하고, 이를 취약점 데이터베이스와 대조하여 알려진 CVE, 라이선스
컴플라이언스 문제 및 오래된 Dependency를 탐지하는 자동화된 보안 방법론입니다.
SCA가 필요한 이유
상용 애플리케이션의 90~97%는 오픈소스 컴포넌트로 구성되어 있습니다.
Dependency Tree에는 일반적으로 수백 개의 Transitive Package가 포함되며, 이는 직접적으로 선택하지
않았더라도 직접적인 Dependency가 가져오는 여러 계층의 라이브러리입니다.
이러한 규모에서는 수작업으로 추적하는 것은 이미 불가능해 졌으며, 이를 자동화하기 위해 SCA가
개발되었습니다.
여기서 초기에 명확히 구분해야 할 중요한 사항이 있습니다.
SCA는 특정 컴포넌트가 취약하다는 것을 알려줍니다. 하지만 해당 취약점이 특정 환경에서
실제로 악용 가능한지는 알려주지 않습니다.
대규모 환경에서 발생하는 CVE Noise
수백 개의 Dependency를 사용하는 엔터프라이즈 애플리케이션에서는 일반적인 SCA 스캔을
통해 수백 개의 High 및 Critical Finding이 생성됩니다.
이들 중 대부분은 Runtime에서 한 번도 호출되지 않는 함수에 존재합니다.
보안팀은 실제 위험이 없는 Finding을 분류하는 데 상당한 시간을 소비하게 되며, 그 결과
실제로 중요한 취약점에 대한 대응에 집중할 수 있는 시간이 줄어듭니다.
실제로 어떤 취약점이 악용 가능한지 확인하는 가장 좋은 방법은 어떤 함수가 Runtime에서
실행되는지를 모니터링하는 것입니다.
Runtime SCA: 실행되는 순간의 SCA
Runtime SCA는 기존 SCA가 자체적으로 해결할 수 없는 Noise 문제를 해결합니다.
Traditional SCA는 라이브러리 버전을 CVE 데이터베이스와 대조합니다. 이는 배포 이전
또는 일정에 따라 실행되며, Runtime Exploitability를 평가할 수 없습니다.
Runtime SCA는 실제 Production 환경에서 실행되는 내용을 모니터링합니다. 어떤 취약한
함수가 실제로 호출되는지를 보여줍니다. 그리고 해당 데이터를 CVE 정보와 연계하여
취약한 함수가 실제로 실행되는 경우에만 Finding을 표시합니다.
그 결과 수백 개의 CVE가 무차별적으로 표시되는 대신,
● 라이브러리가 로드되어 있고,
● 취약한 함수가 호출되며,
● 외부 입력으로부터 해당 Call Path에 도달할 수 있는
경우에만 Finding을 확인할 수 있습니다.
Raven의 Runtime SCA는 Production 환경의 실행을 모니터링하고 어떤 취약한 함수가
실제로 실행되는지를 보여주며, CVE Noise를 99% 감소시킵니다.
이 접근 방식에 대한 자세한 내용은 Runtime Security 관련 자료를 참조할 수 있습니다.
결론
SCA는 Open Source Dependency에서 알려진 CVE를 식별하며, 현대적인 AppSec 프로그램에서 필수적인 기술입니다.
그러나 근본적인 한계는 어떤 취약점이 실제 Production 환경에서 악용 가능한지 알 수 없다는 것입니다.
Runtime SCA는 실제 실행 환경을 모니터링함으로써 이러한 문제를 해결하고 CVE Noise를 99% 감소시킵니다.
Raven의 Runtime SCA는 어떤 취약한 함수가 실제로 실행되는지를 보여주므로, 보안팀이
실제 위험에만 집중할 수 있도록 지원합니다.
Raven에 대한 소개자료 및 데모요청은 소프트와이드시큐리티로 연락바랍니다.

일반적인 엔터프라이즈 SCA 스캔에서는 수백 개의 취약한 Dependency가 탐지됩니다.
보안팀은 이를 분류하고 우선순위를 정하는 데 수많은 시간을 소비합니다. 대부분의 발견
사항은 실제로 악용되지 않습니다. 이것은 도구의 문제가 아닙니다. Software Composition
Analysis가 작동하는 방식 자체의 근본적인 한계입니다. 그리고 이를 이해하는 것이
불필요한 노이즈를 줄이는 첫 번째 단계입니다.
이 글에서는 SCA가 무엇인지, 어떻게 작동하는지, 무엇을 탐지하는지, 어떤 한계가 있는지,
그리고 Runtime SCA가 어떻게 이러한 노이즈 문제를 해결하는지를 다룹니다. 이러한
폭넓은 주제에 대해 처음 접하신다면, 자동화된 보안 스캐닝이 AppSec 프로그램에 어떻게
적용되는지 이해하는 데 도움이 되는 Vulnerability Scanning 관련 자료도 유용합니다.
핵심 요점
●SCA(Software Composition Analysis)는 코드베이스에 포함된 오픈소스 및 Third-
Party 컴포넌트를 식별하고, 이를 CVE 데이터베이스와 대조합니다.
● 상용 애플리케이션의 90~97%가 오픈소스 컴포넌트로 구성되어 있습니다(Sonatype
및 Black Duck 등의 데이터 기준).
● SCA는 Software Bill of Materials(SBOM)을 생성하고, CVE, 라이선스 위반 및
오래된 패키지를 탐지합니다.
● 핵심적인 한계는 SCA가 취약한 라이브러리가 존재한다는 것은 확인할 수 있지만,
해당 취약한 함수가 Runtime에서 실제로 실행되는지는 확인할 수 없다는 것입니다.
따라서 해당 취약점이 애플리케이션에 실제 위험을 초래하는지 검증할 수 없습니다.
● Runtime SCA는 애플리케이션 내부에서 취약한 함수가 실제로 실행되는지를
식별함으로써 이러한 문제를 해결하며, 실행 가능한 CVE 발견 결과를 99%까지
감소시킵니다.
SCA란 무엇인가?
Software Composition Analysis(SCA)는 코드베이스에 포함된 오픈소스 및 Third-Party
컴포넌트를 식별하고, 이를 취약점 데이터베이스와 대조하여 알려진 CVE, 라이선스
컴플라이언스 문제 및 오래된 Dependency를 탐지하는 자동화된 보안 방법론입니다.
SCA가 필요한 이유
상용 애플리케이션의 90~97%는 오픈소스 컴포넌트로 구성되어 있습니다.
Dependency Tree에는 일반적으로 수백 개의 Transitive Package가 포함되며, 이는 직접적으로 선택하지
않았더라도 직접적인 Dependency가 가져오는 여러 계층의 라이브러리입니다.
이러한 규모에서는 수작업으로 추적하는 것은 이미 불가능해 졌으며, 이를 자동화하기 위해 SCA가
개발되었습니다.
여기서 초기에 명확히 구분해야 할 중요한 사항이 있습니다.
SCA는 특정 컴포넌트가 취약하다는 것을 알려줍니다. 하지만 해당 취약점이 특정 환경에서
실제로 악용 가능한지는 알려주지 않습니다.
대규모 환경에서 발생하는 CVE Noise
수백 개의 Dependency를 사용하는 엔터프라이즈 애플리케이션에서는 일반적인 SCA 스캔을
통해 수백 개의 High 및 Critical Finding이 생성됩니다.
이들 중 대부분은 Runtime에서 한 번도 호출되지 않는 함수에 존재합니다.
보안팀은 실제 위험이 없는 Finding을 분류하는 데 상당한 시간을 소비하게 되며, 그 결과
실제로 중요한 취약점에 대한 대응에 집중할 수 있는 시간이 줄어듭니다.
실제로 어떤 취약점이 악용 가능한지 확인하는 가장 좋은 방법은 어떤 함수가 Runtime에서
실행되는지를 모니터링하는 것입니다.
Runtime SCA: 실행되는 순간의 SCA
Runtime SCA는 기존 SCA가 자체적으로 해결할 수 없는 Noise 문제를 해결합니다.
Traditional SCA는 라이브러리 버전을 CVE 데이터베이스와 대조합니다. 이는 배포 이전
또는 일정에 따라 실행되며, Runtime Exploitability를 평가할 수 없습니다.
Runtime SCA는 실제 Production 환경에서 실행되는 내용을 모니터링합니다. 어떤 취약한
함수가 실제로 호출되는지를 보여줍니다. 그리고 해당 데이터를 CVE 정보와 연계하여
취약한 함수가 실제로 실행되는 경우에만 Finding을 표시합니다.
그 결과 수백 개의 CVE가 무차별적으로 표시되는 대신,
● 라이브러리가 로드되어 있고,
● 취약한 함수가 호출되며,
● 외부 입력으로부터 해당 Call Path에 도달할 수 있는
경우에만 Finding을 확인할 수 있습니다.
Raven의 Runtime SCA는 Production 환경의 실행을 모니터링하고 어떤 취약한 함수가
실제로 실행되는지를 보여주며, CVE Noise를 99% 감소시킵니다.
이 접근 방식에 대한 자세한 내용은 Runtime Security 관련 자료를 참조할 수 있습니다.
결론
SCA는 Open Source Dependency에서 알려진 CVE를 식별하며, 현대적인 AppSec 프로그램에서 필수적인 기술입니다.
그러나 근본적인 한계는 어떤 취약점이 실제 Production 환경에서 악용 가능한지 알 수 없다는 것입니다.
Runtime SCA는 실제 실행 환경을 모니터링함으로써 이러한 문제를 해결하고 CVE Noise를 99% 감소시킵니다.
Raven의 Runtime SCA는 어떤 취약한 함수가 실제로 실행되는지를 보여주므로, 보안팀이
실제 위험에만 집중할 수 있도록 지원합니다.
Raven에 대한 소개자료 및 데모요청은 소프트와이드시큐리티로 연락바랍니다.