유럽 시장을 대상으로 소프트웨어를 만든다면, 이미 누군가가 소프트웨어 자재 명세서를 요구했을 가능성이 큽니다. 사이버 복원력법은 제조사가 이를 작성하여 기술 문서에 보관하도록 요구하며, 규제 당국이 요구하기 훨씬 전에 고객이 먼저 요청하는 경우가 점점 늘고 있습니다. 제품에 컴포넌트 라이브러리가 포함되어 있다면 그 질문은 결국 저희에게 옵니다.
이번 릴리스부터 모든 sgcWebSockets 설치 프로그램이 그 질문에 답합니다. 설치 프로그램은 설치 폴더에 CycloneDX 자재 명세서를 sbom.cdx.json으로 기록하며, 라이브러리를 구성하는 최상위 컴포넌트와 그 버전 및 라이선스를 나열합니다.
손으로 관리하지 않고 설치 프로그램이 생성합니다
흥미로운 점은 파일 자체가 아니라 그 파일이 어디에서 오는가입니다. 사람이 손으로 갱신하는 자재 명세서는 조용히 낡아 갑니다. 그리고 더 이상 배포하지 않는 버전을 보고하는 규정 준수 문서는 아예 문서가 없는 것보다 나쁩니다.
그래서 이 파일은 손으로 관리하지 않습니다. 설치 스크립트가 빌드 시점에 생성기를 실행하고, 그 생성기는 각 버전을 실제로 그 값을 소유한 파일에서 읽어 옵니다. 제품 버전은 history.txt에서, Indy는 IdVers.inc에서, zlib은 zlib.h에서, OpenSSL은 정적 링크 유닛에서 가져옵니다. 이 값들 중 하나라도 읽을 수 없으면 생성기는 오류와 함께 중단되고 설치 프로그램 빌드는 실패합니다. 절대 추측하지 않으며, 언젠가 누군가 입력해 둔 값으로 되돌아가지도 않습니다.
그 실질적인 효과는 SBOM이 어긋날 수 없다는 점입니다. zlib을 올리면 다음에 빌드하는 설치 프로그램이 그 사실을 그대로 알려 주며, 누구도 기억하고 있을 필요가 없습니다.
일반적인 제품이 아니라 여러분의 에디션을 설명합니다
이 부분이 여러분에게 가장 중요할 가능성이 높습니다. 자재 명세서는 에디션마다 동일하지 않습니다. 에디션마다 포함하는 서드파티 코드가 다르기 때문입니다.
Enterprise와 All-Access는 sgcWebSockets와 함께 제공되는 커스터마이즈된 Indy를 컴파일하며, 이 포크는 자체 zlib을 함께 가져옵니다. Core, Standard, Professional은 여러분의 Delphi 또는 C++ Builder 설치본에 포함된 Indy를 대상으로 빌드하는데, 저희는 그 Indy를 포크하지도 재배포하지도 않습니다. 이러한 에디션에서는 Indy 버전을 정직하게 명시할 수 없습니다. 버전이 여러분의 IDE가 제공하는 것에 따라 달라지기 때문입니다.
따라서 하나의 일반적인 SBOM은 대부분의 설치 환경에서 틀린 문서가 됩니다. 그 대신 설치 프로그램은 패키징하는 에디션에 맞춰 문서를 생성하므로, 여러분이 받는 파일은 실제로 보유한 내용을 설명합니다.
| 에디션 | Indy | zlib |
|---|---|---|
| Core, Standard, Professional | 여러분의 IDE가 제공하며, 저희가 재배포하지 않음 | 동일한 그 Indy를 통해 제품에 포함됨 |
| Enterprise, All-Access | 커스터마이즈된 Indy 포크, 버전 명시 | 포함된 복사본, 버전 명시 |
무엇이 들어 있나
이 문서는 CycloneDX 1.6 JSON이며, 인벤토리 및 스캐닝 도구가 이미 이해하는 일반적인 기계 판독 형식입니다. 컴포넌트와 함께 각 컴포넌트의 라이선스, 저희가 재배포하는지 아니면 여러분의 IDE가 제공하는지, 그리고 소스 트리에서의 위치를 기록합니다.
또한 유용한 경우 VEX 명세도 담고 있습니다. 알려진 CVE가 어떤 컴포넌트 버전에 영향을 주지만 저희 코드에서는 도달할 수 없다면, 문서가 그 사실과 이유를 명시적으로 밝혀 여러분이 직접 판단하도록 남겨 두지 않습니다. 이러한 항목은 컴포넌트 버전이 바뀌면 자동으로 나타나거나 사라집니다. 생성기가 누군가 남긴 메모가 아니라 실제로 읽은 버전을 근거로 판단하기 때문입니다.
어디에서 찾을 수 있나
설치한 폴더에서 history.txt와 라이선스 파일 옆을 확인하세요.
C:\Program Files (x86)\sgcWebSockets\sbom.cdx.json
인벤토리에 사용하는 도구에 입력하거나, 공급업체 설문에 첨부하거나, 여러분 제품의 자재 명세서에 그 항목을 통합하세요. 규정 준수 담당 팀이 다른 형식을 필요로 하거나 특정 빌드에 대한 공급업체 평가 양식 작성을 원한다면, 사용 중인 제품, 에디션, 버전을 알려 주시고 문의 양식을 통해 요청해 주세요.
의도적으로 하지 않은 한 가지
저희는 이 웹사이트에 SBOM을 공개하지 않습니다. 사이버 복원력법은 제조사가 이를 작성하여 기술 문서에 보관하도록 요구할 뿐 공개를 요구하지는 않으며, 요청하는 누구에게나 컴포넌트 인벤토리를 넘겨 주는 데서 얻을 이득은 거의 없습니다. 제품 안에 포함하여 배포하면 그것을 받을 자격이 있는 사람들, 즉 라이선스 사용자와 요청 시 시장 감시 당국의 손에 들어갑니다.
저희가 이 규정에 어떻게 접근하는지는 사이버 복원력법 페이지에서 더 자세히 읽어 보실 수 있습니다.
