sitelink1  
sitelink2  
sitelink3  
sitelink4  
extra_vars5  
extra_vars6  

SBOM 을 적용하려는 소프트웨어 솔루션에 대한 정보

  • 개발 언어는 c, java, javascript, object-c, swift
  • 연동하려는 ci/cd 는 jenkins
  • 소프트웨어 개발 life cycle 모든 단계(설계,개발,테스트,배포,유지보수)에서 sbom 이 적용되어야 함

[sbom 자체에는 영향도 없는 항목]

  • 개발용 ide 는 visual studio, eclipse, vscode, xcode
  • 솔루션이 구동되는 환경 : windows, linux, macOS, iOS, android, web browser

 

SBOM 적용을 위한 시스템 구축 계획

  1. 목표/범위 수립
    1. 시스템 구축 목표
      1. SPDX 형식의 SBOM 자동 생성
        • 프로젝트 빌드 과정 중 SBOM(Software Bill of Materials)을 자동 생성
        • 표준 포맷인 SPDX 출력에 초점을 맞춤
      2. CI/CD 파이프라인과의 통합
        • Jenkins 기반의 CI/CD 파이프라인 내에서 자동으로 SBOM을 생성하고 저장
        • 수동 개입 없이 실행 가능하도록 자동화
      3. 오픈소스 도구 기반의 실용적인 구현
        • FOSSLight를 분석 도구로 채택하여 비용 없이 운영 가능
        • 유지관리 용이하고 내부 적용 가능한 구조
    2. 시스템 구축 범위
      1. 분석 도구 : FOSSLight Scanner (Defendency-check, Syft 는 추후 적용)
      2. 분석 대상 : Nexacro Project
      3. 결과 포맷 : SPDX (JSON 또는 YAML 형식)
      4. CI/CD 연동 : Jenkins 파이프라인 내에 SBOM 생성 Step 삽입
      5. 출력 저장 방식 : 지정 폴더 또는 아티팩트 저장소에 .spdx.json 저장
      6. SBOM 관리 : FOSSLight Hub
      7. 자동화 흐름
        > Git pull
        → SBOM 분석(FOSSLight Scanner)
        → SPDX 결과 파일 저장 및 검사 (Verify)
        → 결과 파일 업로드(FOSSLight CLI
        → SBOM 관리 서버(FOSSLight Hub)
    3. 요구 기술
      1. FOSSLight Scanner, CLI : Python (lv:low)
      2. FOSSLight Hub : java web application server 설치 및 운용 (lv:middle)
      3. OS : Windows, Ubuntu (lv:high)
      4. CI/CD : Jenkins (lv:super)
  2. 표준/포맷 결정 
    1. SPDX (JSON 또는 YAML 형식)
  3. 생성 도구 설치
    1. OS : Windows 11 Pro + WSL2(Ubuntu)
      • 2종의 OS 환경에 도구를 설치하고 운영하여 시스템 유연성을 확보
    2. Language
      • Java 11 or higher
      • Python 3.8
    3. VCS (형상 관리)
      • Git : azure tfs project로 부터 checkout 
    4. FOSSLight Scanner
      • SBOM 추출
      • WSL2(Ubuntu)에 설치하고 Git 으로 프로젝트 소스를 pull 하여 scan
    5. FOSSLight Hub
      • SBOM 관리
      • Windows 에 설치하고 내장된 WAS(Spring Boot)로 구동
    6. Database
      • MariaDB (10.0 or higher) or MySql (5.6 or higher)
      • Windows 에 설치하고 FOSSLight Hub에서 사용
    7. Jenkins
      • CI/CD Pipeline
      • Windows 에 설치하고 내장된 WAS(Jetty)로 구동
  4. 저장소 구축
    1. Git Repository 설정
      • Scaning 작업을 수행할 위치에 Repository 를 생성
  5. 보안 도구 연결
    1. Syft
    2. OWASP Dependency-Check
  6. CI/CD 연동
           Jenkins 의 CI/CD 파이프라인 구축
    1. Git Pull 실행 : 프로젝트 최신 업데이트
    2. FOSSLight Sanner 실행 : 오픈소스 컴플라이언스 스캔으로 SBOM 추출
    3. FOSSLight CLI 실행 : SBOM을 Hub 에 업로드
    4. OWASP Dependency-Check 실행 : 취약점 스캔으로 SBOM 추출
    5. FOSSLight CLI 실행 : SBOM을 Hub 에 업로드
  7. 테스트 및 검증 
    1. SBOM 검증 (정합성 및 형식 검토)
      1. SPDX 필수 필드 (e.g., DocumentName, SPDXID, LicensesDeclared, PackageName) 누락 여부 확인
      2. 검증 도구
    2. 라이선스 검토 및 승인 여부 판단
      1. 할 일
        • SBOM 내 각 컴포넌트의 DeclaredLicense 필드에 나열된 라이선스를 확인
        • 해당 라이선스가 조직 정책상 허용, 조건부 허용, 금지 중 어느 쪽인지 매핑
      2. 도구/방법
        • 내부 정책에 따라 허용 라이선스 목록(whitelist) 또는 금지 목록(blacklist)과 대조
        • online : https://tools.spdx.org/app/check_license/
    3. 라이선스 조항 이행 확인 (Compliance)
      1. 할 일
        • 복제본 포함 시 주의사항 (예: GPL, AGPL)
        • NOTICE, LICENSE 파일 포함 여부
        • 소스코드 공개 조건 준수 여부
      2. 도구
        • FOSSLight에서 생성한 NOTICE 파일 활용
        • 컴플라이언스 템플릿 (예: OSS 사용 보고서, OpenChain 문서화 지침)
        • 법무팀/컴플라이언스 팀 협업
    4. 자동화/보고용 문서 생성
      1. 할 일
        • 승인 여부 기록
        • 법적 리스크 있는 라이선스 검출 시 리포트 작성
      2. 도구
        • FOSSLight Report 파일 (.xlsx) 자체를 내부 양식으로 사용 가능
        • 또는 SPDX→Excel 변환 후 커스텀 템플릿 적용
  8. 정책 수립 및 교육

 

 

 

 

 

※ 참고사항

FOSSLight Tools 테스트 결과

  • FOSSLight Scanner 는 모두 Python 3.8 로 실행 가능
  • spdx format 으로 output file 을 지원하는 scanner 는 dependency 하나이지만 
    FOSSLight Scanner 는 source, dependency, binary 를 한번에 scan 하고 spdx format output file 로 저장
  • work800 scan 은 총 6시간 이상이 소요 (-c 옵션을 12 설정시 7시간 30분, 15 설정시 5시간 10분, 20 설정시 6시간 30분)
  • FOSSLight Dependency Scanner 을 위해서는 프로젝트 내의 각 패키지 매니저에(NPM, Pypi, Gradle, Maven, Pub, Android(gradle) 대해 Prerequisite 작업이 필요
  • FOSSLight Binary Scanner 는 jar 인 경우만 OWASP Dependency-check-py 를 이용
  • OWASP Dependency-Check 는 .NET 분석시 내부적으로 GrokAssembly.exe 사용이어서 Windows 환경이 필수이고 .dll, .exe 내부의 assembly metadata 추출 후 CPE 매핑
  • OWASP Dependency-Check 는 파일스캔으로 의존성과 취약점을 분석하고 output 은 HTML, XML, JSON 형식의 보고서로써 어떤 파일에 취약점(CVE)이 있는지 보고해준다.
  • Syft 로 패키지 메타데이터 분석 및 바이너리 분석하여 SBOM 문서를 생성한다.
  • FOSSLight Source Scanner 에는 SCANOSS 오픈소스를 사용하는데 API 사용에 대한 한도 초과 오류가 발생하고 있음 (무료 사용시 호출 횟수 제한)
  • SBOM 생성 또는 관리를 위한 메타 정보 파일 (sbom-info.yaml)을 FOSSlight 에서 참조 할 수 없다는 오류 발생
    - 메타 정보 파일 (sbom-info.yaml) 내용 > 프로젝트 이름, 버전, 작성자 정보, 생성 시각, SPDX ID 또는 BOM metadata, 분석 옵션 등
  • 스캔 결과 로그 내용에서의 ERROR 처리에 대해서도 별도의 공수가 필요

 

 

 

번호 제목 sitelink1 글쓴이 날짜 조회 수
공지 [계속 추가중] SBOM 용어 정의   황제낙엽 2025.04.10 666
공지 [계속 추가중] Keycloak 용어 및 설정 옵션 정의   황제낙엽 2024.02.02 1242
99 [Gemini] Trivy 와 Dependency-Check 의 기능 비교   황제낙엽 2025.06.16 201
98 FOSSLight 각 Scanner 들의 특징 https://fosslight.org/fosslight-guide/  황제낙엽 2025.06.13 155
97 FOSSLight Source Scanner 와 FOSSLight Scanner 의 License 정보 감지 관련 https://fosslight.org/fosslight-guide/scanner/2_source.html  황제낙엽 2025.06.12 207
96 [Gemini] Defendency-check, Syft, Trivy https://github.com/anchore/syft  황제낙엽 2025.06.12 198
95 [FOSSLight Hub] 시스템 구축 방법 https://fosslight.org/hub-guide/advanced/1_developer.html  황제낙엽 2025.06.12 191
94 [ChatGPT] SBOM 도구 사용시 Xcode나 macOS 환경이 꼭 필요한 경우   황제낙엽 2025.06.12 115
93 [FOSSLight Hub] 가 제공하는 기능 https://github.com/fosslight/fosslight/b...DME_kor.md  황제낙엽 2025.06.11 127
92 [Gemini] FOSSLight 의 데이터 공유 정책 관련 https://fosslight.org/hub-guide/  황제낙엽 2025.06.11 123
91 ScanCode toolkit 분석 도구 기능 명세 https://github.com/aboutcode-org/scancode-toolkit/releases  황제낙엽 2025.06.10 234
90 OSS Review Toolkit (ORT) - Java 기반 무료 SBOM 생성 도구 (SAST / 메타데이터 기반) [1] https://github.com/oss-review-toolkit/ort  황제낙엽 2025.06.09 224
89 [ChatGPT] SBOM 분석 도구의 주요 유형   황제낙엽 2025.06.09 119
88 [ChatGPT] 정적 분석(SAST) 또는 메타데이터 기반 탐색 방식의 무료 sbom 생성 도구   황제낙엽 2025.06.04 270
87 SBOM용 Tools(FOSSLight, Syft, Trivy, Dependency-Track) 비교 분석 https://dependencytrack.org/  황제낙엽 2025.05.30 423
» [SBOM] SBOM 적용 프로젝트 요구 분석 및 구축 계획   황제낙엽 2025.05.29 16
85 [ChatGPT] docker, fosslight hub, scanner, jenkins 시스템 구성에 대한 의견   황제낙엽 2025.04.14 268
84 [Gemini] SPDX, CycloneDX   황제낙엽 2025.04.10 177
83 [Gemini] SBOM 생성을 위해 FOSSLight를 사용하는 데 필요한 배경 지식   황제낙엽 2025.04.10 193
82 SBOM(Software Bill of Materials) & FOSSLight https://fosslight.org/ko  황제낙엽 2025.04.04 321
81 letsencrypt 인증서(PEM)를 Java KeySotre(JKS) 형식으로 변환하기 https://blog.naver.com/hsunryou/223630528327  황제낙엽 2024.11.12 329