01 / ScanLedger란?
부품 목록에서
빠진 부품이 있다면?
ScanLedger는 소프트웨어 부품 목록(SBOM)에서 빠진 부품을 찾아내고, 목록을 새로 만들어 다시 확인한 뒤, 받는 사람이 그 결과를 지문으로 다시 확인할 수 있게 기록을 남기는 도구입니다.
1분이면 됩니다 · 아래로 내려 보세요
이 소개와 데모의 숫자는 모두 실제 실행 기록에서 가져왔습니다.
02 / 왜 문제인가요?
목록에서 빠진 부품은
검사에서도 보이지 않습니다.
이번 시연의 실제 설치 패키지 8개와, 일부러 하나를 뺀 제출 목록(SBOM)
패키지 7/8
- attrs
- jsonschema
- jsonschema-specifications
- packageurl-python
- packaging
- referencing목록에서 빠짐
- rpds-py
- typing-extensions
의존관계(패키지끼리의 연결) 3/8
- jsonschema → attrs
- jsonschema → jsonschema-specifications
- jsonschema → referencing
- jsonschema → rpds-py
- jsonschema-specifications → referencing
- referencing → attrs
- referencing → rpds-py
- referencing → typing-extensions
이 목록으로 취약점을 찾는 검사기는 referencing을 보지 못합니다. 알려진 취약점이 있어도 경고가 나오지 않습니다.
누구에게 필요한가요?
소프트웨어를 납품하는 개발팀, 받은 SBOM을 믿고 검사해야 하는 보안 담당자·발주처입니다.
03 / 세 단계
찾고, 다시 만들고,
지문으로 확인합니다.
-
1
찾기
제출된 목록을 실제 설치 정보와 비교해 빠진 부품과 의존관계를 찾습니다.
종료 1 · 검토 필요 패키지 7/8 · 의존관계 3/8
-
2
다시 만들기
같은 설치 정보로 목록 생성 도구(Syft)가 목록을 새로 만들고, 같은 조건으로 다시 검사합니다.
종료 0 · 일치 패키지 8/8 · 의존관계 8/8
-
3
지문으로 확인
결과에 완료 기록의 지문(SHA-256)을 남깁니다. 받은 사람이 보관한 지문과 다르면 멈춥니다.
3818…d0d7=3818…d0d7028e6…eb91≠3818…d0d72
04 / 데모에서 볼 것
실제로 실행한 기록을
단계별로 넘겨 봅니다.
- 실행 실제 명령 4개와 결과(1 → 0 → 0 → 2), 91초 녹화 영상
- 보고서 프로그램이 만든 결과 화면의 전후
- 지문 받는 사람이 결과를 다시 확인하는 방법
- 한계 확인한 범위와 아직 하지 않은 것
검수 범위: 같은 PC에서 고른 Python 패키지 8개와 그 의존관계.