AI 시대, 내 결과물에 포함된
오픈소스를 안전하게 확인하는 방법

2026년 9월 7일
BomLens
1 / 8

배경

흔히 있는 답과 실제로 확인한 결과

흔히 받는 답
외부 소프트웨어 사용
사용 안 함
이렇게 답하는 경우가 많습니다
그런데
같은 형태의 프로젝트를 검사하면
컴포넌트
39
취약점 19건이 함께 나옵니다

답변이 틀린 것이 아니라, 우리가 "외부 소프트웨어"라고 부르는 것이 서로 다릅니다. 파이썬으로 개발하면서 공개 라이브러리를 안 쓰기는 어렵습니다.

직접 선언한 것은 9개, 실제로 포함된 것은 39개

requirements.txt
9
검사하면
실제로 포함된 것
39
실제 의존성 트리 - 직접 선언한 패키지 각각이 또 다른 라이브러리를 불러옵니다

9개가 다시 다른 라이브러리를 불러옵니다. 이 목록을 손으로 헤아려 관리하기는 어렵습니다.

오픈소스는 무료가 아니라 조건부 허가입니다

소스코드가 공개되어 있다
조건을 지키면 누구나 쓰고, 고치고, 배포한다

돈을 내지 않는다는 점만 보면 공짜 같지만, 정확히는 조건을 지키면 써도 된다는 허가입니다. 조건을 지키지 않으면 저작권 문제가 됩니다.

이 명령 한 줄이면
pip install
이미 오픈소스를 쓰고 계신 것입니다
참고오픈소스 라이선스란? sktelecom.github.io/guide/use/license/

라이선스는 저작권자가 정한 사용 조건입니다

공개 의무가 늘어나는 방향
허용적
MIT · Apache-2.0 · BSD
이름만 밝히면 됩니다
약한 공개 의무
LGPL · MPL
그 라이브러리를 고친 부분만 공개합니다
강한 공개 의무
GPL
내가 만든 소스까지 공개해야 할 수 있습니다
별개의 기준 하나 더
사용 범위 제한 — CC-BY-NC 같은 조건은 공개 의무가 아니라 상업적으로 써도 되는지를 따집니다. 위 3단계와 같은 줄에 놓고 비교할 수 없습니다.
언제 발생하나
재배포할 때만입니다. 소스나 바이너리를 다른 사람에게 제공하는 것 — 고객사 납품, 판매, 제3자 제공이 해당합니다. 사내에서만 쓰면 의무가 생기지 않습니다.
참고오픈소스 라이선스별 의무사항 sktelecom.github.io/guide/use/obligation/

라이선스 조건을 어기면 저작권 침해가 됩니다사례

Jacobsen v. Katzer (2008, 미국 연방항소법원)
모형 철도 제어 소프트웨어(JMRI 프로젝트)를 만든 Jacobsen이, 자신의 오픈소스 코드를 가져다 쓰면서 Artistic License가 요구하는 저작자 표시를 지키지 않은 Katzer를 상대로 소송을 걸었습니다. 1심은 단순 계약 위반으로 봤지만, 항소법원은 오픈소스 라이선스 조건 위반이 저작권 침해에 해당한다고 뒤집었습니다.

라이선스 조건 준수는 선택 사항이 아닙니다. 조건을 어기는 순간 무단 사용, 즉 저작권 침해가 됩니다.

참고Jacobsen v. Katzer 판례 정리 wiki.creativecommons.org/wiki/Jacobsen_v._Katzer

알려진 취약점은 공개된 결함입니다

HIGH CVE-2024-34069
내가 쓰는 버전
3.0.1
올리면
고쳐진 버전
3.0.3

문제는 내가 쓰는 라이브러리가 무엇이고 몇 번 버전인지 모르면 대조를 못 한다는 것입니다.

이런 결함이 실제로 배포 직전까지 갔습니다사례

xz-utils 백도어 (CVE-2024-3094, CVSS 10.0)
널리 쓰이는 압축 라이브러리 xz-utils에, 2년 넘게 신뢰를 쌓은 관리자 계정이 직접 백도어를 심었습니다. OpenSSH가 이 라이브러리에 의존하고 있어서, 특정 개인키를 가진 공격자가 SSH로 원격 코드를 실행할 수 있었습니다. 주요 리눅스 배포판에 막 반영되려던 순간, 한 개발자가 SSH 로그인 속도가 이상하게 느려진 걸 우연히 발견해 막았습니다.

공식 배포 채널로 정상적으로 받은 패키지였습니다. 버전과 출처를 기록해 두지 않았다면, 문제가 알려진 뒤에도 내가 그 버전을 쓰는지조차 몰랐을 것입니다.

참고XZ Utils backdoor en.wikipedia.org/wiki/XZ_Utils_backdoor

SBOM(Software Bill of Materials)은 소프트웨어 부품 명세서입니다

포함된 모든 구성요소의 이름·버전·라이선스·출처를 기계가 읽는 형식으로 기록합니다. 사람이 읽는 문서가 아니라, 도구가 자동으로 대조하는 목록입니다.

{
  "name": "Flask",
  "version": "3.0.0",
  "purl": "pkg:pypi/flask@3.0.0",
  "licenses": [{ "id": "BSD-3-Clause" }]
}

이름과 버전, 라이선스, 출처가 정해진 형식으로 들어갑니다. 국제 표준 형식은 CycloneDX와 SPDX 2가지입니다.

참고SBOM 이란? sktelecom.github.io/guide/supply-chain/sbom/

규제와 제출 요구는 이미 시작됐습니다

20212026.052026.09지금
미국
연방 정부 납품 SW에 SBOM 요구
G7
AI SBOM 최소 요소 50개 항목
유럽
CRA 취약점 보고 의무 시행
고객사·멤버사
실제로 받고 있는 제출 요구
참고소프트웨어 공급망 공격과 보안 필요성 sktelecom.github.io/guide/supply-chain/overview/

확인 과정은 3단계입니다

01
무엇이 들어 있는지
목록을 만든다
검사를 한 번 돌리면 나옵니다
02
그 목록으로 의무와
취약점을 확인한다
라이선스 조건과 CVE를 대조합니다
03
확인이 필요한 것을
사람이 판단하고 남긴다
도구가 답하지 못하는 자리입니다

앞의 2개는 도구가 하고, 마지막 1개는 사람이 합니다.

2 / 8

BomLens로 무엇을 점검할 수 있나

로컬에서 SBOM 생성과 오픈소스 위험 평가를 한 번에오늘 쓸 도구

소스 코드, 컨테이너, 펌웨어, 받은 SBOM, AI 모델에서 SBOM과 오픈소스 고지문, 보안·라이선스 위험 보고서를 만듭니다.

BomLens
SK텔레콤이 공개한 오픈소스 도구
누구나 받아 쓸 수 있습니다
내 PC에서 실행됩니다
코드와 데이터가 밖으로 나가지 않습니다
계정이 없습니다
설치하고 바로 씁니다
참고BomLens 저장소 github.com/sktelecom/bomlens

무엇을 스캔할 수 있나

소스코드
Java · Node.js · Python · Go · Ruby · PHP · Rust · .NET · Swift · Modelica
빌드 결과물과 컨테이너
이미지째로
펌웨어
기기에 올라가는 이미지
AI 모델
가중치와 모델 카드
공개 데이터셋
연구 데이터 저장소
밑줄 친 것이 오늘 자세히 다룰 것입니다
참고입력 시나리오별 처리 가이드 sktelecom.github.io/bomlens/ko/guides/by-input/

실행 형태는 4가지이며, 오늘은 스크립트 GUI로 진행합니다

Windows 실행파일
BomLens-Setup.exe 더블클릭
macOS 실행파일
BomLens-Setup.dmg, 격리 해제 필요
스크립트 GUI
scan-sbom.sh --ui · 오늘 시연 환경(macOS)
스크립트
화면 없이 결과 파일만 생성
네 형태 모두 Docker 엔진이 필요합니다
실행파일은 아직 서명 전이라 Windows는 SmartScreen, macOS는 격리(quarantine) 경고가 뜹니다. 스크립트 두 형태는 이 경고와 무관합니다. 다음 4장에서 하나씩 봅니다.
참고비개발자 빠른 시작 sktelecom.github.io/bomlens/ko/start/no-cli/

Windows 실행파일은 더블클릭 한 번입니다실행 형태 1 / 4

01
Docker 엔진 설치
(Rancher Desktop 권장)
무료, GUI 제공. Docker Desktop은 대기업 기준 유료이니 주의하십시오
02
BomLens-Setup.exe
다운로드 후 더블클릭
releases/latest에서 받습니다. 콘솔 창 없이 UI가 뜹니다
03
SmartScreen에서
"추가 정보 → 실행"
첫 실행은 이미지 다운로드(약 250MB)로 몇 분 더 걸립니다
참고비개발자 빠른 시작 sktelecom.github.io/bomlens/ko/start/no-cli/

macOS 실행파일은 터미널 명령 한 줄이 더 필요합니다실행 형태 2 / 4

01
BomLens-Setup.dmg
다운로드 후 열기
releases/latest에서 받습니다
02
BomLens.app을
Applications로 드래그
일반적인 macOS 앱 설치와 같습니다
03
터미널에서
격리 속성 제거
아직 공증(notarization) 전이라 필요한 단계입니다
xattr -dr com.apple.quarantine /Applications/BomLens.app

Apple Silicon에서도 안 열리면 codesign --force --deep -s - /Applications/BomLens.app을 한 번 더 실행합니다. 열리면 브라우저가 아니라 앱 자체 창에서 같은 웹 UI가 뜹니다.

참고비개발자 빠른 시작 sktelecom.github.io/bomlens/ko/start/no-cli/

스크립트 GUI는 폴더에서 명령 하나로 엽니다실행 형태 3 / 4 · 오늘 시연 방식

cd 스캔할프로젝트폴더
./scripts/scan-sbom.sh --ui
실행한 폴더가 그대로 "현재 폴더"로 잡힙니다
설치 파일이 없고, 콘솔에서 실행한 폴더가 스캔 대상이자 결과 저장 위치입니다. 브라우저가 자동으로 http://localhost:8080을 엽니다.

다른 폴더를 스캔하려면 그 창을 끄고 원하는 폴더에서 다시 실행해야 합니다.

참고시작하기 · 웹 UI sktelecom.github.io/bomlens/ko/start/first-scan/

스크립트는 화면 없이 파일만 만듭니다실행 형태 4 / 4

./scripts/scan-sbom.sh --project "MyApp" --version "1.0.0" \
  --target examples/nodejs --all --generate-only
대상 지정
--target 생략 시 현재 디렉터리
ZIP(--target app.zip), 기존 SBOM(--analyze), 펌웨어(--firmware), Docker 이미지, --git으로 클론 없이 바로도 됩니다.
용도
자동화와 CI 파이프라인
--all은 고지문·SBOM·위험분석을 한 번에, --generate-only는 업로드 없이 로컬에만 저장합니다.
참고CLI 레퍼런스 sktelecom.github.io/bomlens/ko/reference/cli/
3 / 8

검사 전에 준비할 것

가장 먼저 준비할 것은 매니페스트 파일입니다

빌드 도구가 "이 프로젝트가 어떤 라이브러리를 쓰는지" 선언해 둔 파일입니다. 검사 도구는 이 파일을 시작점으로 삼으며, 언어마다 이름이 다르니 검사 전에 위치부터 확인하십시오.

Java (Maven)pom.xml
Java (Gradle)build.gradle
Node.jspackage.json + package-lock.json
Pythonrequirements.txt 또는 pyproject.toml
Gogo.mod + go.sum
RustCargo.lock
RubyGemfile.lock
PHPcomposer.lock
.NET*.csproj + packages.lock.json
SwiftPackage.resolved 또는 Podfile.lock

오늘 예제(Python)는 requirements.txt입니다. 다른 언어를 쓰신다면 위에서 자신의 항목을 확인하십시오.

참고지원 생태계 sktelecom.github.io/bomlens/ko/reference/ecosystems/

매니페스트 파일을 지우면 39건이 0건이 됩니다핵심

app.pyrequirements.txt
39컴포넌트
app.pyrequirements.txt
0컴포넌트

코드는 그대로입니다. 검사 도구는 코드를 분석해 라이브러리를 추론하지 않고, 매니페스트를 시작점으로 의존성을 해석합니다. 0건은 안전하다는 의미가 아니라 검사가 수행되지 않았다는 의미입니다.

그 신호는 실행 로그에 남습니다

실행 로그에서 다음 2줄을 확인합니다. 서로 다른 시점에, 다른 조건으로 찍힙니다.

[INFO] Language: unknown -> cdxgen all-in-one
[WARN] No package manifest detected; using cdxgen all-in-one.
[WARN] C/C++라면 --identify-vendored로 vendored 코드를 찾습니다.
… 30줄 넘는 빌드 로그 …
[INFO] SBOM ready: python-example_1.0.0_bom.json
[WARN] SBOM has 0 components — missing lockfile or empty source.
매니페스트 미검출
언어를 인식하지 못했을 때만 뜹니다
requirements.txt, package.json 같은 매니페스트가 하나도 안 잡힌 경우입니다.
컴포넌트 0건
원인과 무관하게, 결과가 비면 뜹니다
매니페스트가 없어도, 경로를 잘못 지정해도 뜹니다. 원인은 위 로그로 구분합니다.

검사 전에는 다음 4가지를 확인합니다

매니페스트 파일 위치
requirements.txt·pyproject.toml이 최상위 폴더에 있는지 봅니다. src/처럼 하위 폴더에 있으면 도구가 찾지 못해 0건이 됩니다.
버전 고정
flask==3.0.0처럼 버전을 ==로 고정했는지 봅니다. 고정하지 않으면 지금 설치할 최신 버전으로 표시되어 실제 내 PC 버전과 달라집니다.
검사 유형
실행 로그의 Mode: SOURCE 표시를 봅니다. 다른 모드로 돌면 같은 프로젝트를 검사해도 결과가 달라집니다.
형상관리 포함
매니페스트 파일이 Git에 커밋되어 있는지 봅니다. .gitignore에 걸려 내 PC에만 있으면 제출용 압축 파일이나 저장소에는 빠집니다.

이 4가지만 확인해도 0건 오탐의 대부분은 막을 수 있습니다.

4 / 8

직접 만들어 보겠습니다

requirements.txt로 관리하는 Flask 기반 예제 API오늘 스캔할 프로젝트

지금까지 슬라이드에 나온 39개 컴포넌트, 19개 취약점이 바로 이 코드를 검사한 결과입니다.

01
폴더 고르기
이 프로젝트 폴더
02
이름과 버전
결과 파일에 붙습니다
03
실행
로그가 출력됩니다
참고샘플 코드 저장소 github.com/sktelecom/bomlens/tree/main/examples/python

실행시연

스캔 진행 화면

검사 1회로 4가지가 나옵니다

검사 1회 실행 결과

외부 제출용
SBOMCycloneDX·SPDX, 전이적 의존성까지 포함해야 함
고지 파일배포물에 넣는 것
내부 검토용
보안 보고서취약점과 대응 기한
위험분석보고서라이선스 분류와 위험
참고산출물 레퍼런스 sktelecom.github.io/bomlens/ko/reference/artifacts/ 공급사 제출 요구사항 sktelecom.github.io/guide/supply-chain/for-suppliers/requirements/
5 / 8

결과 읽기

결과를 열면 먼저 볼 숫자 3개

39
컴포넌트
직접 적은 9줄보다 많아야 정상입니다
19
취약점
높음 5건이 섞여 있습니다
9
라이선스 종류
확인해야 할 조건의 가짓수입니다

이 숫자 3개만으로도 검사가 제대로 됐는지 판단됩니다.

결과 화면은 3가지 질문에 답합니다

컴포넌트 "버전이 몇이지?"
컴포넌트 목록
의존성 "이건 왜 들어왔지?"
의존성 관계도
소스 트리 "무엇을 검사했지?"
소스 트리

이름과 버전, 라이선스, 출처가 컴포넌트 화면 한 줄에 표시됩니다. 버전이 왜 중요한지는 잠시 뒤 다시 보겠습니다.

항목 하나를 실제로 판단해보면오늘 스캔한 실제 데이터

urllib3 2.1.0 · requirements.txt에 직접 적은 의존성, requests도 같이 씀
HIGH · 4MEDIUM · 2 취약점 6건
지금 버전
2.1.0
올리면
6건 모두 해결
2.7.0
라이선스: MIT — 허용적, 조건 없음
이 항목은 라이선스 때문이 아니라 보안 때문에 붙잡습니다. 판단 결과는 "업그레이드 대상"으로 기록하고 다음 절로 넘어갑니다.

본인 프로젝트에서도 이런 항목이 나오면 같은 순서로 봅니다 — 라이선스 확인, 버전 대조, 결론 기록.

라이선스 분류마다 지켜야 할 의무가 다릅니다핵심

간단한 예제  39건
확인 대상은 3건입니다
실제 연구 프로젝트  113건
57건이 확인 대상입니다
허용적 약한 공개 의무 미확정 · 사람이 확인
허용적
고지 파일에 이름과 라이선스 전문
이것만 넣으면 됩니다
약한 공개 의무
그 라이브러리를 고친 부분의 소스 공개
배포할 때 반드시 지켜야 합니다
미확정
의무 자체를 아직 모릅니다
확인 전까지는 지킨 것으로 볼 수 없습니다
참고Cellpose 저장소 github.com/MouseLand/cellpose

취약점은 고쳐진 버전까지 함께 나옵니다

취약점 목록
권고 대응 기한
긴급 7일 이내 · 높음 30일 이내. 심각도 이름은 화면에 영어로 나옵니다.
무엇으로 올리면 되는지가 답까지 함께 나옵니다. 예제에서는 19건 중 높음이 5건이었습니다.

CVSS·CVE·수정 버전은 Trivy가 대조한 생태계 보안 DB, EPSS는 FIRST.org 실시간 조회입니다. 폐쇄망에서는 EPSS만 생략되고 나머지는 그대로 나옵니다.

6 / 8

AI 모델과 데이터셋

공개 모델을 쓸 때 확인할 대상이 3가지입니다

코드저장소의 LICENSE 파일라이선스 A
모델(가중치)모델 배포처의 표기라이선스 B
학습 데이터README 본문에만 적혀 있기도 합니다라이선스 C
하나의 결과물 = A + B + C 모두 지켜야 합니다

셋이 서로 다를 수 있습니다. 코드 라이선스만 확인하고 끝내기 쉽습니다.

참고AI 모델 SBOM 가이드 sktelecom.github.io/bomlens/ko/guides/ai-model/

코드·모델·데이터, 각각 이런 사례가 있었습니다사례

구분사례결과
코드BusyBox GPL 소송(2009)삼성·베스트바이 등 14개사 피소, Westinghouse는 배상금 10만 달러 이상 + 배포 중단 명령
모델Getty Images v. Stability AI(2025)모델 자체의 저작권 침해는 기각됐지만, 결과물에 남은 워터마크로 상표권 침해는 인정됨
학습 데이터Bartz v. Anthropic(2025)불법 유통 도서로 학습시킨 사실이 드러나 15억 달러 배상 합의(역대 최대 저작권 합의금)

소송으로 이어지면 배상 규모가 이렇게 커집니다.

참고 BusyBox GPL 소송 softwarefreedom.org/news/2009/dec/14/busybox-gpl-lawsuit Getty Images v. Stability AI clearygottlieb.com/.../getty-images-v-stability-ai Anthropic 저자 합의 npr.org/2025/09/05/...anthropic-authors-settlement

실제로 세포 영상 분석 도구를 스캔하면시연

구분대상확인 결과
코드github.com/MouseLand/cellpose컴포넌트 113건 · Weak copyleft 4건
모델huggingface.co/mouseland/cellpose-samBSD-3-Clause
학습 데이터cellpose.org/dataset도구가 접근할 수 없습니다
하나의 결과물 = 3가지 모두 지켜야 합니다

코드와 모델은 확인됐습니다. 그런데 학습 데이터는 도구 밖입니다 - 이대로 써도 될까요?

참고코드 저장소 github.com/MouseLand/cellpose 모델 가중치 huggingface.co/mouseland/cellpose-sam 학습 데이터셋 cellpose.org/dataset

확인하려 해도 모델 카드에는 학습 데이터가 없습니다

cellpose-sam 모델 · 데이터셋 화면. 데이터셋과 학습 데이터 이용 조건이 모두 빈 값(—)이고, 공개 정보의 학습 데이터·학습 과정 항목이 채워지지 않음
모델 카드 원문에 학습 데이터를 설명하는 항목이 없습니다
이 표시는 모델 카드에 그 항목이 적혀 있는지만 보여줍니다. 실제로 모델이 공개적인지 폐쇄적인지까지 판단하는 것은 아닙니다. cellpose-sam은 라이선스·파일 보안은 "제약 신호 없음"이지만, 데이터셋과 학습 데이터 이용 조건은 둘 다 빈 값(—)입니다. 아래 공개 정보에서도 가중치·아키텍처만 채워지고 학습 데이터·학습 과정은 비어 있습니다.

모델 카드만으로는 알 수 없으니, 사람이 원본 페이지를 직접 찾아가야 합니다.

참고AI 모델 SBOM 가이드 sktelecom.github.io/bomlens/ko/guides/ai-model/

직접 찾아가 보면 이렇게 나옵니다사례

# 방문 페이지
cellpose.org/dataset
"non-commercial, educational, research and personal use only"
HHMI(하워드 휴스 의학연구소)가 만든 자체 이용약관입니다. 상업적 목적의 사용과 재배포를 명시적으로 금지합니다("strictly prohibited"). Creative Commons가 아니라 이 사이트만의 약관이라 표준 라이선스 식별자가 없습니다.

그래서 판정은 비상업·재배포 금지 약관입니다. 도구가 아니라 사람이 원문을 읽어야만 알 수 있는 내용이었습니다.

참고cellpose.org/dataset 이용약관 cellpose.org/dataset

사용 목적이 라이선스 판정을 바꿉니다

방금 확인한 cellpose.org의 비상업 조건, 사용 목적에 따라 무게가 달라집니다.

제품에 포함
주의
비상업 조건이 그대로 적용됩니다
목적을 바꾸면
내부 검토·연구
조건부 사용
덜 적용됩니다
등급은 심각한 순서로 이렇게 놓입니다. 이름만 보면 순서를 반대로 착각하기 쉽습니다.
주의
가장 심각
검토 필요
조건부 사용
제약 신호 없음
가장 가벼움
라이선스 판단만 달라집니다
사용 목적이 바뀌어도 취약점(CVE) 심각도는 그대로입니다. 라이선스 조건과 보안 위험은 서로 다른 기준입니다.
7 / 8

자동 검사의 한계

도구가 답하지 않고 남기는 4가지

판단할 근거가 없으면 도구는 짐작하지 않고 그 상태를 그대로 남깁니다.

01
라이선스가 비어 있는 항목
배포처가 선언하지 않았습니다
02
표기가 모호한 항목
표준 식별자가 아닌 이름이 붙어 있습니다
03
실제로 쓰지 않는 항목
테스트에만 쓰는 것은 제외를 검토합니다
04
우리가 직접 만든 코드
분류 대상이 아니라, 선언하면 비교 기준이 됩니다
참고오픈소스 라이선스 확인하기 sktelecom.github.io/guide/use/check/

검사 결과에 근거를 남기는 3가지

01
같은 입력이면
같은 SBOM이 나온다
--byte-stable 옵션이 재현성을 보장합니다. 감사나 재제출 시 결과가 흔들리지 않습니다
02
완성된 SBOM을
검증에 넣어 본다
다른 도구가 만든 SBOM도 같은 기준으로 검증합니다
03
사람의 판단을
기록으로 남긴다
도구로 대체할 수 없는 항목입니다
적합성 화면은 네 가지 상태로 나뉩니다
충족, 조치 가능, 사람이 확인, 해당 없음입니다. 측정할 대상이 없는 항목이 "해당 없음"이니 미충족으로 세지 마십시오.
참고공급사 SBOM 검증 가이드 sktelecom.github.io/bomlens/ko/guides/supplier-sbom/

기록은 표 하나로 남깁니다

도구가 확인 필요로만 남긴 항목은, 프로젝트 담당자가 내린 결정과 근거를 이렇게 기록해 둡니다.

대상처리근거일자 · 담당
Modelica라이선스 확정 GitHub 저장소 라이선스 감지 결과 BSD-3-Clause 확인09-06 · 홍길동
Buildings확인 필요 GitHub에 표준 LICENSE 파일이 없어 저장소 문서를 직접 확인해야 함09-06 · 홍길동
analysis_core.py자체 개발 내부 작성, 외부 코드 참조 없음09-06 · 홍길동

SBOM 산출물과 같은 폴더에 두십시오. 담당자가 바뀌어도 왜 그렇게 처리했는지 답할 수 있어야 합니다.

언제 다시 검사해야 할까요?

재검사 시점은 두 갈래입니다 - 사건이 생겼을 때, 그리고 시간이 지났을 때.

사건이 생기면
라이브러리를 추가하거나
버전을 올렸을 때
외부에 제공하기 직전반드시 다시 돌립니다
다시 검사
시간이 지나면
분기 1회 같은 주기새 취약점이 공개되기 때문입니다

한 번 돌려 보고 끝내면 그때 상태의 기록 하나만 남을 뿐입니다. 제출한 목록과 실제 제공물이 달라지면 고지 자체가 틀린 것이 됩니다.

참고CI/CD 연동 sktelecom.github.io/bomlens/ko/guides/ci-cd/

검사 다음에는 이 3가지를 하십시오

결과 화면에 남은 항목은 저절로 처리되지 않습니다. 이 순서로 진행하십시오.

01
취약점 조치
계획을 세운다
긴급 7일, 높음 30일 이내가 권고 기한입니다
02
미확정 라이선스를
결정하고 기록한다
표기와 소스를 확인해 결과를 표로 남깁니다
03
고지 파일을 SBOM과
함께 보관한다
배포물에는 반드시 함께 넣어야 합니다
위험분석보고서에 이미 정리돼 있습니다
01·03은 보고서 마지막 "Next steps" 항목 그대로이고, 02는 같은 보고서의 라이선스 분류표(Uncategorized)에서 나온 것입니다.
8 / 8

마무리

이렇게 시작하시면 됩니다

복잡한 도입 절차 없이, 아래 순서대로 진행하시면 됩니다.

01
설치 없이
화면부터 보기
데모 페이지
02
설치하기
환경에 맞는 설치 파일
03
내 프로젝트
검사하기
매니페스트 위치부터 확인
참고BomLens 데모 sktelecom.github.io/bomlens/demo/ BomLens 사용 설명서 sktelecom.github.io/bomlens/ko/ GitHub 저장소 github.com/sktelecom/bomlens

여러 프로젝트를 계속 관리하려면 SCA 플랫폼이 필요합니다

SCA(Software Composition Analysis)는 오픈소스 구성요소·라이선스·취약점을 자동으로 찾는 것입니다. BomLens도 그중 하나입니다.

BomLens
스캔 1회 = 결과물 1개
오늘 다룬 생성 도구입니다
함께 쓰면
TRUSCATRUSCA
여러 프로젝트를 계속 관리
Apache-2.0 오픈소스 SCA 포털
TRUSCA - 오픈소스로 공개된 Trusted SCA
여러 프로젝트의 CVE·라이선스·SBOM을 한 화면에서 관리하고, 치명적 CVE나 금지 라이선스가 있으면 빌드를 막는 CI/CD 게이트를 제공합니다. BomLens가 만든 SBOM(CycloneDX)을 그대로 넘겨받아 분석합니다.
참고 TRUSCA 저장소 github.com/trustedoss/trusca TRUSCA 데모 trusca-demo.duckdns.org

감사합니다

오늘 다룬 내용은 여기까지입니다.

도구와 검사에 대한 문의
장학성(OSPO Manager) · haksung@sk.com
검사 로그와 함께 보내 주시면 확인해 드립니다.

도구는 확인이 필요한 항목을 찾아내는 데까지이고, 사용 가능 여부 판단은 별도 검토가 필요합니다.