우리 모두는 이것에 대해 많이 들었습니다. SBOM 최근에. 우리는 그 유용성, 구성, 보안 및 규제 요구 사항에 대해 들었습니다. 이번에는 CyclonDX SBOM의 잘 알려지지 않은 부분인 종속성 그래프(Dependency Graph)에 대해 이야기하는 시간을 갖고 싶습니다.
이름과 달리 종속성 그래프는 SBOM의 시각적 측면이 아님을 의미합니다. 그 목적은 다른 구성 요소에 대한 구성 요소의 종속성을 설명하는 데 도움을 주는 것입니다. 이는 구성 요소에 따라 달라집니다. bom-ref – 각 SBOM 구성요소에 대한 고유 식별자. 어떤 요소가 서로 의존하거나 연결되어 있는지 보여 주는 것이 아이디어입니다. 충분히 간단하게 들리죠?
Scribe는 무엇을 결정하는 과정에서 종속성 그래프를 많이 사용합니다. SBOM의 요소 중요하고 주목해야 할 사항입니다. 이번 글에서는 그 방법에 대해 알아보겠습니다. 학자 SBOM 종속성 그래프와 이를 통해 얻을 수 있는 실질적인 이점을 사용합니다. SBOM 종속성 그래프의 몇 가지 JSON 예를 살펴보고 앞으로 이를 사용하여 수행할 수 있는 다른 작업을 살펴보는 것으로 마무리하겠습니다.
종속성 그래프란 무엇입니까?
종속성 그래프는 2019년 CyclonDX 형식에 추가되었습니다. 선언된 목적은 나중에 알려진 고유 식별자를 사용하여 구성 요소를 함께 묶는 것이었습니다. bom-ref. 에서 CycloneDX 사용 사례 예, 종속성이 구성요소 참조 ID를 사용하여 무엇이 무엇에 종속되는지 표시하는 방법을 확인할 수 있습니다.
예제를 살펴보지 않더라도 한 요소를 다른 요소에 연결하는 기능이 유용할 수 있다는 것을 알 수 있을 것입니다. 우선, 가장 일반적인 사용 사례로서 한 곳에서 라이브러리의 모든 종속성을 즉시 볼 수 있습니다.
종속성 그래프는 직접 관계와 전이적 관계를 모두 나타낼 수 있으며 일반적으로 하나의 노드 깊이입니다.
완전한 종속성 트리를 표현할 수는 있지만 순환 종속성이나 기타 복잡한 관계로 인해 끝없는 루프가 발생할 수 있으므로 권장되지 않습니다. 단일 노드를 표현하여 그래프를 단순하게 유지하는 것이 좋습니다.
Scribe는 종속성 그래프를 어떻게 사용합니까?
Scribe는 증거 맥락을 제공하기 위해 SBOM과 함께 수집된 메타데이터를 광범위하게 사용합니다. 증거의 맥락에는 수집된 장소와 시기, 주제 등이 포함됩니다. Scribe는 신뢰할 수 있고 재사용 가능한 정보를 제공하기 위해 노력하면서 종속성 그래프를 사용하여 다양한 클라이언트와 프로젝트에서 사용할 수 있는 연결을 만듭니다.
Scribe가 지원하는 종속성 그래프 링크는 다음과 같습니다.
- 패키지 파일: 이 연결을 통해 각 패키지에 어떤 파일이 속하는지 확인할 수 있습니다. 분명히, 패키지에서 해당 파일이 속하지 않는 파일을 발견하면 이는 문제가 있다는 명확한 표시입니다.
- 레이어 표시 및 패키지 레이어: 어떤 패키지가 어떤 이미지 레이어에 있는지 알면 레이어별로 취약점을 정렬할 수 있으므로 편리합니다. 기본 이미지 또는 상위 이미지에서 상속받은 문제는 직접 생성한 레이어에서 발견되는 문제만큼 긴급성과 영향을 미칠 수 있는 직접적인 능력을 갖지 않습니다.
- 레이어-파일: 패키지-파일 연결과 유사하게 이 연결을 통해 각 레이어와 연결된 파일을 확인할 수 있습니다. 다른 연결과 함께 파일이 올바른 패키지 및 레이어와 연결되어 있는지, 파일이 있어서는 안 되는 위치에 파일이 없는지 확인할 수 있습니다.
- 커밋 및 커밋 파일: 어떤 파일이 어떤 커밋에서 왔는지 식별함으로써 최종 이미지를 빌드하는 데 사용되기 전에 커밋 파일에 과도한 변경이 없었는지 확인할 수 있습니다.
이 모든 정보를 함께 사용하면 SBOM에서 어떤 파일을 어디서 찾아야 하는지에 대한 매우 포괄적인 이미지를 그릴 수 있습니다. 결과적으로 우리는 이미지의 문제(무결성 문제 또는 잠재적인 공격)를 나타낼 수 있는 이상점이나 수차를 포착할 수 있는 더 나은 기회를 갖게 됩니다.
종속성 그래프 및 정책 시행
Scribe는 이 포괄적인 종속성 그래프를 활용하여 복잡한 정책을 효과적으로 시행합니다. 예를 들어, 커밋 파일 코드 소유자 정책을 유지하기 위해 종속성을 활용합니다. 이를 통해 누가 언제 어떤 파일을 커밋했는지 확인할 수 있습니다. 그만큼 패키지 파일 패키지 무결성 정책을 보장하기 위해 종속성이 사용됩니다. 이를 통해 우리는 어떤 파일이 각 패키지에 링크되어야 하는지 확인하고 이것이 실제로 사실인지 확인할 수 있습니다. 추가적으로, 패키지 계층 종속성은 각 계층의 특정 요구 사항에 맞게 패키지 정책을 조정하는 데 사용됩니다. 각 소프트웨어 이미지는 레이어를 다르게 구성할 수 있으므로 어떤 패키지가 이미지의 어떤 레이어에 연결되어 있는지 확실히 알 수 있는 것이 매우 중요합니다.
종속성 그래프 정보 사용자 정의
우리는 모든 사람이 이 모든 정보를 공유하고 싶어하지 않거나 정보를 보거나 어떤 방식으로든 사용하는 데 관심이 없다는 것을 알고 있습니다.
이 문제를 해결하는 방법으로 Scribe를 사용하면 SBOM의 보다 구체적인 버전을 만들 수 있습니다. 다음은 우리와 함께 사용할 수 있는 사용자 정의 옵션입니다. 발린트 현재 지원하고 있는 SBOM을 생성하는 동안 도구를 사용하세요. 향후 추가 옵션이 제공될 예정입니다.
- 특정 구성요소 그룹만 포함하려면 다음을 사용하세요. – 구성요소 그룹 유형 중에서 선택합니다.
- 특정 패키지 유형을 포함하거나 제외하려면 다음을 사용하세요. -포장 종류 or –패키지 제외 유형 특정 패키지 유형을 선택합니다.
- 발견된 설치된 패키지를 포함하려면(패키지 그룹 설치) 또는 소스에서 참조하는 패키지(패키지 그룹 색인), 사용하다 –패키지 그룹 옵션 중에서 선택합니다.
- 구성 요소를 제외하려면 다음을 사용하십시오. –필터 정규식, – 필터 범위, and – 필터 안뜨기하다 제외하려는 구성 요소를 제외합니다.
- 파일 내용을 첨부하려면 다음을 사용하세요. –부착-정규식 외부 파일의 내용을 포함합니다.
- 사용자 정의 환경 및 레이블을 포함하려면 다음을 사용하십시오. -env and -상표 사용자 정의 필드를 첨부합니다. 이를 통해 생성 중인 SBOM에 사용자 지정 메타데이터를 추가할 수 있습니다.
미래를 내다 보며
Scribe는 이를 사용하여 SBOM의 다양한 구성 요소 간에 만드는 컨텍스트와 연결을 가장 중요하게 고려합니다. Valint의 능력으로 서명하다, 확인하다및 정책 관리 우리는 보안 정책을 관리하는 것보다 더 많은 일을 할 수 있는 미래를 보는 것이 완전히 가능하다고 생각합니다. 종속성 그래프 정보가 품질 관리, 특정 규정 준수 요구 사항, 핀테크 및 농업과 같은 관련 없는 분야에서도 사용될 수 있는 미래를 상상할 수 있습니다.
Scribe의 플랫폼에는 지금 당장 모든 기능을 사용해 볼 수 있는 무료 등급이 있습니다. 나는 당신이 시도 해봐, 시간이 지남에 따라 축적된 정보의 유용성을 확인하고 해당 정보를 무엇에 사용할 수 있는지 확인하십시오. 우리 모두의 더욱 안전한 미래를 환영하는 자리에 여러분도 함께 해주시기를 바랍니다.
이 콘텐츠는 소프트웨어 공급망 전반에 걸쳐 코드 아티팩트와 코드 개발 및 전달 프로세스에 최첨단 보안을 제공하는 선도적인 엔드투엔드 소프트웨어 공급망 보안 솔루션 제공업체인 Scribe Security에서 제공합니다. 자세히 알아보기.