REST API를 소프트웨어 자재 명세서 사용하여 파일 업로드
API를 사용하여 파일을 업로드 소프트웨어 자재 명세서 하기 전에 다음 정보를 검토하십시오.
REST API 사용
API를 사용하여 SBOM 파일을 업로드하려면 sn_sbom_core.sbom_ingest 역할이 필요합니다.
API를 업로드합니다.
이 API는 SBOM 파일(CycloneDX/SPDX)을 인스턴스에 업로드하고 수집하는 데 사용됩니다.
Core 버전 4.0 SBOM 은 다음을 지원합니다.
- CycloneDx의 XML 및 JSON(버전 1.0 - 1.6).
- SPDX의 JSON(버전 2.2-2.3)
-
주:32MB를 초과하는 파일은 제대로 로드되지 않을 수 있습니다.
HTTP 메서드: (POST)
API URL: <host_name>/api/sbom/core/upload
주:
ServiceNow<host_name>는 인스턴스 이름입니다.
아래의 모든 요청 매개 변수는 선택 사항입니다. 요청 본문은 SBOM 파일 콘텐츠입니다. DevOps를 개발 프로세스의 일부로 사용하는 경우 "requestedBy" 값은 "devops"여야 합니다. DevOps에 대한 자세한 내용은 을 참조하십시오 DevOps SBOM 파일용 업로드 소프트웨어 자재 명세서 . "requestedby" 값이 "devops"(개발 작업)인 경우 다음 매개변수는 필수입니다.
- 빌드 ID
- 수명주기 스테이지
또한 'requestedBy'가 'devops'인 경우 fetchVulenrabilityInfo, fetchPackageInfo에 대한 데이터가 포함됩니다.
- buildId- 보내는 문자열
- lifecycleStage- 두 가지 값, 프로덕션 또는 pre_production
- fetchVulenrabilityInfo- t/f
- fetchPackageInfo-t/f
| 요청 매개변수 | 가능한 값 | 설명 |
|---|---|---|
| 제품 모델 ID | 시스템 ID | 지정된 SBOM의 루트 애플리케이션으로 매핑할 제품 모델의 시스템 ID입니다. |
| 비즈니스 애플리케이션 ID | 시스템 ID | 지정된 SBOM의 루트 애플리케이션으로 매핑할 비즈니스 애플리케이션의 시스템 ID입니다. |
| businessApplicationName | 비즈니스 애플리케이션 이름 | 지정된 SBOM의 루트 애플리케이션으로 매핑할 비즈니스 애플리케이션의 이름입니다. |
| sbom소스 | 예를 들어 Vericode와 같은 제품 | SBOM 파일의 소스입니다. |
| requestedBy | 도구 또는 방법론의 이름인 Jenkins입니다. "devops"를 사용하는 경우 buildId 및 lifecycleStage는 필수입니다. | 업로드 요청자 |
| 빌드 ID | 문자열 요청자가 전송합니다. | SBOM 빌드의 빌드 ID입니다. |
| 수명주기 스테이지 | 프로덕션 또는 pre_production | 엔터티의 수명 주기 스테이지입니다. |
| VulenrabilityInfo 가져오기 | 전신환 | true인 경우 취약성 인텔리전스 통합이 트리거됩니다. |
| fetchPackage 정보 | 전신환 | true이면 패키지 인텔리전스 통합을 트리거합니다. |
업로드 API 응답: 'status' 성공/실패, 'message'(문자열), 'bomRecordId'(성공적인 SBOM 업로드를 위해 업로드 API를 통해 반환되는 SBOM의 시스템 ID)가 포함되어 있습니다.
{
"result": {
"status": "success",
"message": "Queued for processing.",
"bomRecordId": "f207059b4393c290629aa597cbb8f247"
}
}상태 API
이 API는 수집을 위해 대기 중인 SBOM의 상태와 요약을 가져옵니다.
- API URL: /api/sbom/core/upload/status
- HTTP 메서드(GET)
| 요청 매개변수 | 가능한 값 | 설명 |
|---|---|---|
| bom기록 ID | 시스템 ID | 성공적인 SBOM 업로드를 위해 업로드 API를 통해 반환되는 SBOM 기록 ID입니다. |
상태 API 기본 응답 예.
{
"result": {
"bomRecordId": "0407c0fea3e70a505df340f5251e617e",
"uploadStatus": "processed",
"additionalInfoStatus": "not_requested",
"uploadSummary": {
"components": {
"added": 0,
"removed": 0,
"total": 70
}
}
}
}
추가 매개변수가 있는 상태 API 응답 예. 해당 SBOM에 대해 fetchVulenrabilityInfo를 요청한 경우 응답의 일부로 취약성 분석을 받게 됩니다.
{
"result": {
"bomRecordId": "93af349b4393c290629aa597cbb8f258",
"uploadStatus": "processed",
"additionalInfoStatus": "complete",
"uploadSummary": {
"components": {
"added": 0,
"removed": 0,
"total": 3
},
"vulnerabilityInfo": {
"critical": 0,
"high": 0,
"medium": 0,
"low": 0,
"none": 0
}
},
"buildId": "1"
}
}
해당 SBOM에 대해 fetchPackageInfo를 요청한 경우 응답의 일부로 부실 및 포기 횟수가 표시됩니다.
SBOM 성공적으로 처리된 후 업로드된 기록을 보는 위치는 사용 중인 애플리케이션에 따라 다릅니다.
- 응답을 사용하는 SBOM 경우 작업 공간에 있는 BOM 큐 모듈 SBOM 의 수집 상태 목록에 BOM 엔터티 기록이 표시됩니다SBOM.
- SBOM Core를 사용하는 경우 .
지원되는 SBOM 표준 및 일반 사용 정보에 대한 개선 사항
Core 버전 4.0 SBOM 은 다음을 지원합니다.
- CycloneDx의 XML 및 JSON(버전 1.0 - 1.6).
- SPDX의 JSON(버전 2.2-2.3)
-
주:32MB를 초과하는 파일은 제대로 로드되지 않을 수 있습니다.
Core v4.0 SBOM 부터 버전 1.0 - 1.6에 대한 CycloneDx 표준을 지원하기 위해 다음과 같은 개선 사항이 적용되었습니다.
- (sn_sbom_core.collect_properties) 속성을 사용하여 CycloneDX SBOM 파일의 추가 정보를 임포트합니다. 이 속성은 기본적으로 비활성화되어 있습니다. 일반적으로 지원되지 않는 정보를 임포트하려면 속성을 활성화합니다. 이러한 속성에서 임포트된 모든 정보는 다음에 대한 SBOM 구성요소 속성 [sn_sbom_comp_property] 테이블에 업로드됩니다.
- 업로드된 SBOM 파일
- 메타데이터
- 개별 취약성
- 구성요소
- 다음 두 개의 새 라이선스 필드에서 CycloneDX 버전 1.4 이상의 SBOM 파일에 대해 선언 및 종료된 라이선스에 대해 가져온 구성 요소 데이터를 봅니다.
- 선언함
- 결론
- SBOM 구문 분석 지원은 다음 CycloneDX 구성 요소 유형에 대해 확장됩니다.
- 버전 1.5: 플랫폼, 데이터, 장치 드라이버, 머신 러닝 모델
- 버전 1.6 : 암호화
Core 버전 3.0 SBOM 은 다음을 지원합니다.
- CycloneDx의 XML 및 JSON(버전 1.4까지).
- SPDX의 JSON(v2.3까지).
호출하는 사용자가 성공적으로 인증되고 인스턴스에서 ServiceNow sn_sbom_core.sbom_ingest 역할이 있는 경우 인스턴스 외부에서 API에 액세스하여 데이터를 업로드 SBOM 할 수 있습니다.
데이터가 업로드되면 구문 분석됩니다. 데이터를 구문 분석하기 전에 다음 요구 사항을 확인합니다.
- 수신 데이터가 유효한 JSON 또는 XML인지 검사합니다.
- BOM 형식이 지원됩니다. Core v2.1 SBOM 부터 CycloneDX(JSON 및 XML) 및 SPDX(XML) 형식이 지원됩니다.
- 데이터를 구문 분석할 수 있도록 최소 필드를 사용할 수 있습니다.
이러한 확인이 확인되면 BOM [sn_sbom_doc] 테이블에 들어오는 SBOM 데이터가 첨부 파일로 입력됩니다.
Process BOM file 비즈니스 규칙은 기록 삽입 및 데이터 구문 분석의 결과로 자동으로 트리거됩니다.
주:
이 비즈니스 규칙은 기본적으로 Core를 SBOM 설치하는 동안 활성화됩니다.
나열된 SBOM 모든 구성 요소에는 정의된 유형이 있습니다.
- 파일이 업로드된 SBOM 구성요소는 BOM 엔터티로 간주됩니다.
- type=library로 나열된 구성 요소는 타사 구성 요소로 간주됩니다.