BLOG
Tracefield · 02
Tracefield · 01
블로그 · 14
Vibe Audit · 04
Vibe Audit · 03
Vibe Audit · 02
Vibe Audit · 01
출판편집자 · 01
StudyTree · 01
SecurityOps · 02
SecurityOps · 01
AI챗봇 · 04
AI챗봇 · 03
AI챗봇 · 02
AI챗봇 · 01
퍼플심 · 04
퍼플심 · 03
퍼플심 · 02
퍼플심 · 01
블로그 · 13
rootscan · 07
rootscan · 06
블로그 · 12
블로그 · 11
블로그 · 10
블로그 · 09
블로그 · 08
블로그 · 07
블로그 · 06
블로그 · 05
블로그 · 04
블로그 · 03
블로그 · 02
블로그 · 01
rootscan · 05
rootscan · 04
rootscan · 03
asmspeak · 03
asmspeak · 02
rootscan · 02
asmspeak · 01
rootscan · 01
웹보안도구 · 02
웹보안도구 · 01
루트캠프 · 02
루트캠프 · 01
All notes 167
공급망 보안과 SCA 메커니즘
지금 소프트웨어 개발에서 모든 코드를 처음부터 끝까지 직접 짜는 경우는 드물다. 대부분 외부 라이브러리와 프레임워크에 기대고, 그만큼 남의 코드가 내 서비스 안으로 들어온다. 그래서 내 코드가 멀쩡해도, 의존성에 취약점이 있으면 서비스 전체가 같이 위험해진다. 공급망 보안이 중요해진 이유도 여기에 있다.
1. 직접 의존성과 전이적 의존성
SCA의 핵심은 내가 직접 넣은 라이브러리만 보는 게 아니라, 그 아래로 이어지는 의존성까지 전부 따라가는 데 있다.
- 직접 의존성:
package.json,requirements.txt같은 파일에 내가 직접 적은 패키지 - 전이적 의존성: A가 B를 쓰고 B가 C를 쓸 때, A가 간접적으로 의존하게 되는 C 같은 패키지
Log4Shell이 크게 터진 이유도 이 구조 때문이다. 개발자가 Log4j를 직접 쓰지 않아도, 다른 프레임워크가 내부에서 참조하고 있으면 같이 영향을 받는다. SCA는 package-lock.json, go.sum 같은 락 파일을 읽어 의존성 그래프를 만들고, 그 위에 취약점 정보를 매핑한다.
2. SBOM: 소프트웨어의 명세서
SCA의 대표 결과물 중 하나가 SBOM이다. 쉽게 말하면 소프트웨어를 구성하는 부품 목록이다. 식품 원재료표를 떠올리면 이해가 빠르다.
SBOM이 있으면 새 취약점이 나왔을 때 우리 서비스가 영향권인지 바로 조회할 수 있다. 이 목록이 없으면 다시 의존성을 전부 뒤져야 한다.
3. 오탐과 우선순위 관리
SCA는 경고를 많이 뱉는다. 문제는 그걸 전부 같은 우선순위로 처리할 수는 없다는 점이다. 그래서 Reachability 분석이 중요해진다.
- 취약한 라이브러리 버전
v1.2.3을 쓰고 있다. - 하지만 우리 코드는 그 라이브러리의 취약한 함수
vuln_func()을 실제로 호출하지 않는다.
단순 버전 매칭만으로는 실무 우선순위를 정하기 어렵다. 결국은 실제 호출 그래프를 보고, 진짜로 실행 가능한 위험만 걸러내는 방향으로 가야 한다.

