image가 맡는 일
사진 파일을 해석하고 방향을 보정합니다. 마커 검출에 사용할 이미지를 축소하고, 색상 분석에 필요한 픽셀 RGB 값을 제공합니다.
SBOM 생성과 자동관리 실습GitHub, CycloneDX, cdxgen, Dependency-Track 활용
제품 코드 기준 커밋,
02단계에서 이번 연습의 SBOM을 생성하세요.
요스트립의 색을 읽고 변화를 관찰하는 과정을 배우기 위한 앱입니다. 사용자가 촬영판을 촬영하거나 저장된 사진을 불러오면, 지정된 6개 영역의 RGB 값을 분석합니다. 결과를 측정 식별자, 촬영 시각, 촬영 회차와 연결하여 저장하고 이전 결과와 비교합니다.
사진 촬영 또는 불러오기 → 사진 해석과 방향 보정 → 네 마커 검출 → 6개 영역의 RGB 분석 → 결과 확인과 저장 → 색상 이력 비교
사진 파일을 해석하고 방향을 보정합니다. 마커 검출에 사용할 이미지를 축소하고, 색상 분석에 필요한 픽셀 RGB 값을 제공합니다.
마커를 찾아 6개 분석 영역을 정하고, 영역별 픽셀값의 중앙값을 계산합니다. 결과를 저장하고 촬영 회차별 이력 그래프로 표시합니다.
사진 방향과 마커 좌표가 맞지 않으면 다른 위치의 색을 읽고 잘못된 값이 이력에 남을 수 있습니다. 이 상황을 예로 image의 사용 기능과 확인 근거를 적고, RMF 기준에 따른 산정과 평가, 시험 증거 연결을 연습합니다. 현재 확인된 image 결함을 뜻하는 것은 아닙니다.
이번 학습은 색상 판독과 기록을 대신 구현한 모델입니다. 현재 출력은 RGB 값과 그 이력이며, 실제 요스트립의 화학 반응, 농도 산출이나 진단 성능을 대체한 것으로 보지 않습니다.
소스에서 원자료를 추출하고, image의 사용 위치, 요구사항, 위험과 검증 계획을 기록합니다.
01~03, 목록과 검토의 출발점대상 플랫폼과 실제 빌드 결과물의 구성을 대조하고, 그 환경에서의 시험 결과와 특정 증거 개정을 연결합니다.
04 이후 62304, 가져오기 다음에 할 일배포한 버전의 구성을 보존하고 변경과 새 취약점을 감시합니다. 영향에 따라 재검증하고 새 개정을 만듭니다.
05, 변경과 취약점 대응 시나리오image 하나는 이 연결을 끝까지 배우기 위한 예입니다. 가져오기는 목록 등록이며 검증 완료가 아닙니다. 개발 중 검증 근거도 활용하되 최종 빌드와 사용 환경에 적용 가능한지 확인합니다.
점선은 app 경로 밖의 변경 또는 조회 범위 밖의 이전 커밋입니다.
이번 Flutter 프로젝트의 파일입니다. YAML은 패키지의 조건, LOCK은 도구가 선택한 버전을 기록합니다.
제품 이름, 버전, 직접 의존성
image 패키지의 해결된 버전과 출처
Dart는 코드를 작성하는 언어이고 Flutter는 앱 화면과 동작의 기반을 제공하는 개발 도구와 기능 묶음입니다. Flutter 화면 코드도 Dart로 작성합니다.
pubspec.yaml에는 필요한 패키지와 허용할 버전 조건을 선언합니다. 패키지 관리 도구는 조건을 검토해 선택한 정확한 버전과 간접 의존성을 pubspec.lock에 기록합니다. 조건을 유지하면서 같은 버전 조합을 다시 준비하기 위해 역할을 나눕니다. 개발 환경마다 파일 이름과 형식은 달라집니다.
학습용으로 만든 6개 항목을 불러옵니다. 웹에서는 cdxgen이나 앱 빌드를 실행하지 않습니다.
버튼을 누르면 가상 예제 SBOM을 불러옵니다.
npm.cmd run generate --prefix tools/sbom -- --practice-run <실행 ID>
PC 실행본은 고유한 실행 ID를 만듭니다. 이 웹 실습에서는 아래 명령을 실행하지 않습니다. 내부에서 아래 명령을 실행한 뒤, 잠금 파일과 개수, 버전, 패키지 해시를 대조하고 가져오기용 파일을 생성합니다.
cdxgen . --type dart --spec-version 1.6 --no-install-deps --no-recurse -o cdxgen-original.cdx.json
임시 입력 폴더에서 실행하며 앱 빌드나 의존성 갱신을 하지 않습니다.
지금은 개발 중의 분류 연습입니다. 대상 플랫폼과 구성 기준을 정하고, 각 구성요소의 포함 여부와 근거를 보관하세요. 직접, 간접 의존 구분은 제품 포함 여부와 다릅니다.
02단계에서 SBOM을 생성한 뒤 구성 분류와 평가를 시작하세요.
제품 프로젝트는 metadata.component에, 의존 패키지는 components에 기록됩니다. 같은 제품을 패키지 표에 다시 추가해 개수를 늘리지 않습니다.
직접 개발하고 충분한 개발 과정 기록을 관리하는 항목은 그 근거로 SOUP와 구분합니다. 예전에 자체 개발한 항목이라도 적절한 개발 기록이 없다면 SOUP 검토가 필요합니다. Dart로 작성했다는 사실만으로 자동 판정하지 않습니다.
| 개발 출처 | 확인할 근거 | SOUP 관리 |
|---|---|---|
| 직접 개발 | 해당 제품용 개발 여부, 요구사항, 설계, 구현, 시험 기록 | 근거를 확인해 구분 |
| 외부 도입 | 공급자, 버전, 개발 목적과 제공된 기록 | 항목별 판단 |
| 출처 미확인 | 코드의 출처와 개발 기록 추가 확인 | 검토 중 유지 |
이 화면은 개발 출처나 SOUP 분류를 승인하지 않습니다. 의료기기 소프트웨어 시스템 전체를 SOUP로 분류하지 않으며, 구성 소프트웨어 항목을 기준으로 판단합니다. 근거, IEC 62304:2006+A1:2015, 3.29.
| 구성요소 | 버전 | 잠금 파일 구분 | 제품 포함 구분 |
|---|
제품 구성 또는 도구로 분류한 뒤 해당 사용 맥락에서 위험을 평가합니다.
선택한 구성요소와 제품 버전의 위험 시나리오를 연결합니다. 원본 JSON을 수정하거나 점수가 낮은 패키지를 삭제하지 않습니다.
자체 개발 모듈과 추출에서 빠진 실행환경은 설계상 관리 단위로 보완합니다. 패키지 목록만으로 제품 전체가 식별되거나 SOUP 판단이 끝난 것은 아닙니다.
기존 RMF 기준의 문서와 개정을 대조한 뒤 입력합니다. 기준이나 사용 관계가 미확인이면 0점을 넣지 말고 미산정으로 둡니다. 이 화면은 기준을 서버에서 가져오거나 CVSS를 계산하지 않습니다.
보안과 안전은 연결하되 산정과 수용 기준은 구분합니다. SOUP 판단과 IEC 62304 안전등급을 이 점수에서 자동 결정하지 않습니다.
제품 목록은 포함 근거로 구분하며, 위험 점수로 구성요소를 제외하지 않습니다.
urine-strip-source.cdx.json
생성 후 다운로드 가능이 파일은 개발 의존성을 포함한 빌드 전 원자료입니다. 납품 제품의 확정 SBOM이 아닙니다.
eQMS 기록 열람의 ‘작업 JSON 불러오기’에는 62304에서 별도로 저장한 작업 JSON을 사용합니다.
제품 초안은 원자료에서 근거를 보관한 제품 구성만 포함합니다. SDK, 네이티브 구성, 자체 개발 항목 등의 누락 확인과 릴리스 검토가 남아 있어 전체 구성의 완전성은 미확정입니다.
62304의 CycloneDX 가져오기는 원자료와 제품 SBOM 초안을 지원합니다. 도구 목록과 전체 분류 기록은 별도 학습 JSON이며 현재 62304 가져오기에서는 지원하지 않습니다.
공개용 가상 입력과 예제 생성 근거입니다. 실제 cdxgen 원본이나 제품의 검증 증거가 아닙니다.
사용 위치와 SOUP 판단 → 검증 방법과 기준 → 실제 빌드에서 관찰한 결과 → 보관된 증거 개정 연결. 이 실습의 제품 SBOM 초안은 아직 빌드 전 자료입니다.
객체를 차례로 선택해 담당 역할과 전달할 기록을 살펴봅니다.
제조자가 제품 영향과 근거를 확인했다고 가정하고 경로를 선택하세요.
새 공지만 발견된 단계에서는 기존 SBOM을 유지합니다. 실제 제품 구성이 바뀌면 새 제품 버전의 SBOM을 생성하고 이전 버전도 보존합니다.