KR102609300B1 - 블록체인을 이용한 sbom 관리 시스템 및 방법 - Google Patents

블록체인을 이용한 sbom 관리 시스템 및 방법 Download PDF

Info

Publication number
KR102609300B1
KR102609300B1 KR1020230071742A KR20230071742A KR102609300B1 KR 102609300 B1 KR102609300 B1 KR 102609300B1 KR 1020230071742 A KR1020230071742 A KR 1020230071742A KR 20230071742 A KR20230071742 A KR 20230071742A KR 102609300 B1 KR102609300 B1 KR 102609300B1
Authority
KR
South Korea
Prior art keywords
sbom
blockchain
project
hash
related information
Prior art date
Application number
KR1020230071742A
Other languages
English (en)
Inventor
강우성
방혁준
임정환
류성재
Original Assignee
쿤텍 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 쿤텍 주식회사 filed Critical 쿤텍 주식회사
Application granted granted Critical
Publication of KR102609300B1 publication Critical patent/KR102609300B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

블록체인을 이용한 SBOM 관리 시스템 및 방법이 개시된다. 개시되는 일 실시예에 따른 SBOM 관리 시스템은, 하나 이상의 오픈 소스를 포함하는 하나 이상의 소프트웨어에 기초하여 프로젝트를 수행하고, 소프트웨어에 포함되는 각 오픈 소스에 대해 SBOM 및 취약성 정보를 포함하는 SBOM 관련 정보를 생성하며, SBOM 관련 정보를 포함하는 SBOM 등록 요청을 송신하는 하나 이상의 프로젝트 서버 및 복수 개의 노드들로 구성되며, SBOM 등록 요청을 수신하고, SBOM 관련 정보에 기초하여 SBOM 블록체인 테이블을 생성하며, 생성한 SBOM 블록체인 테이블을 복수 개의 노드들에 각각 저장하는 블록체인망을 포함하며, SBOM에 포함되는 항목은, 공급자 이름, 컴포넌트 이름, 컴포넌트 버전, 컴포넌트의 해시값, 고유 식별자, 의존 관계, 데이터 작성자, 및 타임 스탬프 중 하나 이상을 포함하고, 취약성 정보는, 취약 내용 정보 및 취약 등급 정보 중 하나 이상을 포함하며, 블록체인망은, SBOM 관련 정보의 SBOM에서 각 항목을 추출하고, SBOM 관련 정보의 취약성 정보에서 각 항목을 추출하여 추출한 항목들로 구성되는 SBOM 블록체인 테이블을 생성하며, SBOM에서 기 설정된 항목들을 추출하여 제1 블록체인 해시를 생성하고, 취약성 정보에 기초하여 제2 블록체인 해시를 생성하며, 제1 블록체인 해시 및 제2 블록체인 해시를 SBOM 블록체인 테이블과 매칭하여 저장한다.

Description

블록체인을 이용한 SBOM 관리 시스템 및 방법{MANAGEMENT SYSTEM AND METHOD FOR SBOM USING BLOCKCHAIN}
본 발명의 실시예는 블록체인을 이용한 SBOM(Software Bill Of Materials) 관리 기술과 관련된다.
최근, 소프트웨어를 개발하여 공급할 때, 개발 과정에서 오픈 소스의 사용 비중이 점차 증가하고 있는 추세이고, 소스 코드의 80% 이상이 오픈 소스일 정도로 오픈 소스의 활용도가 증가하고 있다. 그러나, 오픈 소스에는 취약점이 존재하고 있으며 그로 인해 해커들의 표적이 되고 있다. 따라서, 오픈 소스를 이용한 소프트웨어 개발 시 보안 취약점을 보완 및 관리할 필요가 있다.
한국등록특허공보 제10-1555247호(2015.09.24)
본 발명의 실시예는 소프트웨어에 포함된 오픈 소스의 SBOM을 관리할 수 있는 새로운 기법을 제공하기 위한 것이다.
개시되는 일 실시예에 따른 SBOM 관리 시스템은, 하나 이상의 오픈 소스를 포함하는 하나 이상의 소프트웨어에 기초하여 프로젝트를 수행하고, 상기 소프트웨어에 포함되는 각 오픈 소스에 대해 SBOM(Software Bill Of Materials) 및 취약성 정보를 포함하는 SBOM 관련 정보를 생성하며, 상기 SBOM 관련 정보를 포함하는 SBOM 등록 요청을 송신하는 하나 이상의 프로젝트 서버; 및 복수 개의 노드들로 구성되며, 상기 SBOM 등록 요청을 수신하고, 상기 SBOM 관련 정보에 기초하여 SBOM 블록체인 테이블을 생성하며, 생성한 상기 SBOM 블록체인 테이블을 상기 복수 개의 노드들에 각각 저장하는 블록체인망을 포함하며, 상기 SBOM에 포함되는 항목은, 공급자 이름(supplier name), 컴포넌트 이름(component name), 컴포넌트 버전(version string), 컴포넌트의 해시값(component hash), 고유 식별자(unique identifier), 의존 관계(relationship), 데이터 작성자(author name), 및 타임 스탬프(time stamp) 중 하나 이상을 포함하고, 상기 취약성 정보는, 취약 내용 정보 및 취약 등급 정보 중 하나 이상을 포함하며, 상기 블록체인망은, 상기 SBOM 관련 정보의 SBOM에서 각 항목을 추출하고, 상기 SBOM 관련 정보의 취약성 정보에서 각 항목을 추출하여 추출한 항목들로 구성되는 SBOM 블록체인 테이블을 생성하고, 상기 블록체인망은, 상기 SBOM에서 기 설정된 항목들을 추출하여 제1 블록체인 해시를 생성하고, 상기 취약성 정보에 기초하여 제2 블록체인 해시를 생성하며, 상기 제1 블록체인 해시 및 상기 제2 블록체인 해시를 상기 SBOM 블록체인 테이블과 매칭하여 저장할 수 있다.
상기 블록체인망은, 상기 SBOM에서 공급자 이름, 컴포넌트 이름, 및 컴포넌트 버전을 추출하여 하나의 스트링(string)으로 취합하고, 취합된 스트링에 해시 함수를 적용하여 제1 블록체인 해시를 생성하며, 상기 제1 블록체인 해시는, 상기 SBOM의 항목 중 컴포넌트의 해시 값과는 상이한 비트 길이를 가지도록 마련될 수 있다.
상기 블록체인망은, 상기 공급자 이름, 컴포넌트 이름, 및 컴포넌트 버전을 취합한 스트링의 길이가 기 설정된 임계 길이를 초과하는 경우, 상기 항목들 간에 설정된 우선 순위에 따라 우선 순위가 가장 낮은 항목을 제외하여 제1 블록체인 해시를 생성할 수 있다.
프로젝트 서버는, 하나 이상의 소프트웨어에 기초하여 수행할 프로젝트가 주어진 경우, 상기 소프트웨어에 포함되는 각 오픈 소스들을 확인하고, 상기 각 오픈 소스들에 대해 SBOM 저장 여부 문의를 상기 블록체인망으로 송신하며, 상기 블록체인망은, 상기 SBOM 블록체인 테이블에 상기 SBOM 저장 여부 문의에 대응하는 SBOM 관련 정보들이 저장되어 있는지를 확인하여 문의 답변을 해당 프로젝트 서버로 송신할 수 있다.
상기 프로젝트 서버는, 상기 문의 답변을 수신하는 경우, 상기 문의 답변에 기초하여 상기 소프트웨어의 오픈 소스들 중 SBOM 관련 정보가 상기 블록체인망에 저장되어 있는 경우, 해당 오픈 소스의 SBOM 관련 정보를 상기 블록체인망으로부터 수신하여 저장하고, 상기 소프트웨어의 오픈 소스들 중 SBOM 관련 정보가 상기 블록체인망에 저장되어 있지 않은 경우, 해당 오픈 소스에 대해 SBOM 및 취약성 정보를 포함하는 SBOM 관련 정보를 생성하며, 상기 생성한 SBOM 관련 정보를 포함하는 SBOM 등록 요청을 상기 블록체인망으로 송신할 수 있다.
상기 프로젝트 서버는, 상기 프로젝트를 수행하기 시작하거나 상기 프로젝트를 수행하는 중에 SBOM 검증 요청을 상기 블록체인망으로 송신하되, 상기 소프트웨어에 포함된 오픈 소스의 SBOM 항목에서 기 설정된 항목들을 추출하여 제1 해시 값을 생성하고, 상기 오픈 소스의 취약성 정보에 기초하여 제2 해시 값을 생성하며, 상기 제1 해시 값 및 상기 제2 해시 값을 상기 SBOM 검증 요청에 포함시킬 수 있다.
상기 블록체인망은, 상기 SBOM 검증 요청을 수신하는 경우, 상기 SBOM 블록체인 테이블에서 해당 SBOM 관련 정보와 매칭되는 제1 블록체인 해시 및 제2 블록체인 해시를 각각 추출하고, 상기 추출한 제1 블록체인 해시 및 제2 블록체인 해시와 상기 SBOM 검증 요청에 포함된 제1 해시 값 및 제2 해시 값을 각각 비교하여 SBOM 검증 결과를 해당 프로젝트 서버로 송신할 수 있다.
상기 블록체인망은, 각 프로젝트 서버에서 수행하고 있는 프로젝트와 관련된 프로젝트 관련 정보(프로젝트명, 프로젝트를 수행하는데 사용되는 소프트웨어, 및 소프트웨어에 포함되는 오픈 소스에 대한 정보를 포함)를 저장하고, 상기 블록체인망은, 상기 SBOM 검증 결과, SBOM 관련 정보에 위변조가 발생한 경우, 상기 프로젝트 관련 정보를 추출하고, 상기 프로젝트 관련 정보에 기초하여 상기 위변조가 발생한 SBOM 관련 정보에 대응하는 오픈 소스가 설치된 프로젝트 서버를 추출하며, 상기 추출한 프로젝트 서버로 상기 오픈 소스에 대한 위변조 경고 알람을 송신할 수 있다.
상기 블록체인망은, 상기 SBOM 블록체인 테이블에 대응하는 각 오픈 소스들에 대해 프로젝트 서버들에서 사용되는 횟수 및 사용 빈도 중 하나 이상에 기초하여 프로젝트 사용도를 산출하고, 상기 오픈 소스의 프로젝트 사용도가 기 설정된 임계 값을 초과하는 경우, 해당 오픈 소스를 사용하는 프로젝트 서버로 해당 오픈 소스에 대한 SBOM 검증 요청을 달라는 메시지를 송신할 수 있다.
개시되는 일 실시예에 따른 SBOM 관리 방법은, 하나 이상의 오픈 소스를 포함하는 하나 이상의 소프트웨어에 기초하여 프로젝트를 수행하는 프로젝트 서버에서, 상기 소프트웨어에 포함되는 각 오픈 소스에 대해 SBOM(Software Bill Of Materials) 및 취약성 정보를 포함하는 SBOM 관련 정보를 생성하며, 상기 SBOM 관련 정보를 포함하는 SBOM 등록 요청을 송신하는 단계; 및 복수 개의 노드들로 구성되는 블록체인망에서, 상기 SBOM 등록 요청을 수신하고, 상기 SBOM 관련 정보에 기초하여 SBOM 블록체인 테이블을 생성하며, 생성한 상기 SBOM 블록체인 테이블을 상기 복수 개의 노드들에 각각 저장하는 단계를 포함하며, 상기 SBOM에 포함되는 항목은, 공급자 이름(supplier name), 컴포넌트 이름(component name), 컴포넌트 버전(version string), 컴포넌트의 해시값(component hash), 고유 식별자(unique identifier), 의존 관계(relationship), 데이터 작성자(author name), 및 타임 스탬프(time stamp) 중 하나 이상을 포함하고, 상기 취약성 정보는, 취약 내용 정보 및 취약 등급 정보 중 하나 이상을 포함하며, 상기 저장하는 단계는, 상기 블록체인망에서, 상기 SBOM 관련 정보의 SBOM에서 각 항목을 추출하고, 상기 SBOM 관련 정보의 취약성 정보에서 각 항목을 추출하여 추출한 항목들로 구성되는 SBOM 블록체인 테이블을 생성하며, 상기 SBOM에서 기 설정된 항목들을 추출하여 제1 블록체인 해시를 생성하고, 상기 취약성 정보에 기초하여 제2 블록체인 해시를 생성하며, 상기 제1 블록체인 해시 및 상기 제2 블록체인 해시를 상기 SBOM 블록체인 테이블과 매칭하여 저장할 수 있다.
개시되는 실시예에 의하면, 하나 이상의 오픈 소스를 포함하는 소프트웨어에 기초하여 프로젝트를 수행하는 경우, 오픈 소스에 대한 SBOM 관련 정보를 블록체인을 통해 저장 및 관리함으로써, SBOM 관련 정보의 무결성을 보존할 수 있고, SBOM 관련 정보의 위변조 시 이를 쉽게 확인하여 조치를 취할 수 있게 된다. 또한, 각 프로젝트 서버에서는 SBOM 관련 정보를 이용하여 해당 오픈 소스의 취약점을 확인하고 안정적으로 취약점을 보완할 수 있게 된다.
도 1은 본 발명의 일 실시예에 따른 블록체인을 이용한 SBOM(Software Bill Of Materials) 관리 시스템을 나타낸 도면
도 2는 본 발명의 일 실시예에 따른 SBOM 관리 시스템에서 위변조 경고 알람을 송신하는 상태를 개략적으로 나타낸 도면
도 3은 본 발명의 일 실시예에 따른 블록체인을 이용한 SBOM 관리 방법을 설명하기 위한 흐름도
도 4는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
이하의 설명에 있어서, 신호 또는 정보의 "전송", "통신", "송신", "수신" 기타 이와 유사한 의미의 용어는 일 구성요소에서 다른 구성요소로 신호 또는 정보가 직접 전달되는 것뿐만이 아니라 다른 구성요소를 거쳐 전달되는 것도 포함한다. 특히 신호 또는 정보를 일 구성요소로 "전송" 또는 "송신"한다는 것은 그 신호 또는 정보의 최종 목적지를 지시하는 것이고 직접적인 목적지를 의미하는 것이 아니다. 이는 신호 또는 정보의 "수신"에 있어서도 동일하다. 또한 본 명세서에 있어서, 2 이상의 데이터 또는 정보가 "관련"된다는 것은 하나의 데이터(또는 정보)를 획득하면, 그에 기초하여 다른 데이터(또는 정보)의 적어도 일부를 획득할 수 있음을 의미한다.
또한, 제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.
도 1은 본 발명의 일 실시예에 따른 블록체인을 이용한 SBOM(Software Bill Of Materials) 관리 시스템을 나타낸 도면이다.
도 1을 참조하면, SBOM 관리 시스템(100)은 프로젝트 서버(102) 및 블록체인망(104)을 포함할 수 있다. 각 프로젝트 서버(102)는 통신 네트워크(150)를 통해 블록체인망(104)과 통신 가능하게 연결된다.
일 실시예에서, 통신 네트워크(150)는 인터넷, 하나 이상의 로컬 영역 네트워크(local area networks), 광역 네트워크(wide area networks), 셀룰러 네트워크, 모바일 네트워크, 그 밖에 다른 종류의 네트워크들, 또는 이러한 네트워크들의 조합을 포함할 수 있다.
프로젝트 서버(102)는 하나 이상의 오픈 소스(open source)를 포함하는 하나 이상의 소프트웨어에 기초하여 프로젝트를 수행하기 위한 서버 컴퓨팅 장치일 수 있다. 여기서, 소프트웨어는 운영 체제, 미들웨어, 및 애플리케이션 등을 포함하는 개념일 수 있다.
프로젝트 서버(102)는 소프트웨어에 포함되는 각 오픈 소스에 대해 SBOM(Software Bill Of Materials)을 생성할 수 있다. SBOM은 소프트웨어 자재 명세서로서, 소프트웨어의 구성 요소(컴포넌트)를 나타내는 메타 데이터들을 포함할 수 있다. SBOM에 포함되는 항목으로는 예를 들어, 공급자 이름(supplier name), 컴포넌트 이름(component name), 컴포넌트 버전(version string), 컴포넌트의 해시값(component hash), 고유 식별자(unique identifier), 의존 관계(relationship), 데이터 작성자(author name), 및 타임 스탬프(time stamp)를 포함할 수 있다.
여기서, 공급자 이름은 컴포넌트를 만들고 정의한 주체의 이름을 의미할 수 있다. 고유 식별자는 컴포넌트를 고유하게 식별하기 위한 정보일 수 있다. 의존 관계는 해당 컴포넌트가 어떤 소프트웨어에 포함된다는 것을 나타내는 것일 수 있다. 데이터 작성자는 SBOM 데이터를 작성한 주체의 이름을 의미할 수 있다. 타임 스탬프는 SBOM 데이터를 작성한 날짜 및 시간을 포함할 수 있다.
일 실시예에서, 프로젝트 서버(102)는 소프트웨어에 포함되는 각 오픈 소스의 코드 패턴을 분석하여 해당 오픈 소스에 대한 SBOM을 생성할 수 있다. 프로젝트 서버(102)는 기 설정된 SBOM 표준에 따라 각 오픈 소스에 대한 SBOM을 생성할 수 있다. 이때, 프로젝트 서버(102)는 기 공지된 SBOM 작성 툴을 이용하여 각 오픈 소스에 대한 SBOM을 생성할 수 있으나, 이에 한정되는 것은 아니다.
또한, 프로젝트 서버(102)는 소프트웨어에 포함되는 각 오픈 소스에 대한 취약성 정보를 생성할 수 있다. 일 실시예에서, 프로젝트 서버(102)는 각 오픈 소스에 대해 CVE(Common Vulnerabilities and Exposures)를 이용하여 보안 취약성 및 노출과 관련한 취약성 정보를 생성할 수 있다. 취약성 정보에는 취약 내용 정보(해당 오픈 소스가 어떤 보안 취약점을 가지고 있는지에 대한 정보) 및 취약 등급 정보(해당 오픈 소스의 취약성 등급 또는 취약성 점수에 대한 정보)가 포함될 수 있다.
프로젝트 서버(102)는 소프트웨어에 포함되는 각 오픈 소스에 대해 SBOM 관련 정보를 생성할 수 있다. SBOM 관련 정보는 해당 오픈 소스의 SBOM 및 취약성 정보를 포함할 수 있다. 프로젝트 서버(102)는 SBOM 관련 정보를 포함하는 SBOM 등록 요청을 블록체인망(104)으로 송신할 수 있다.
블록체인망(104)은 복수 개의 노드(104a)들을 포함한다. 블록체인망(104)에 포함된 복수 개의 노드(104a)들은 서로 다른 노드(104a)들과 통신을 수행할 수 있다. 각 노드(104a)는 임의의 데이터를 처리 및 저장할 수 있도록 마련됨에 따라, 블록체인망(104)을 구성하는 노드로 동작할 수 있다.
노드(104a)는 하나 이상의 관리 노드와 복수 개의 일반 노드로 구분될 수 있다. 관리 노드는 일반 노드의 역할을 할뿐만 아니라 프로젝트 서버(102)와 통신을 수행하도록 마련될 수 있다. 관리 노드는 일반 노드들과 통신을 수행할 수 있다. 관리 노드는 프로젝트 서버(102)로부터 요청 또는 문의을 받고 그에 대응하여 태스크 또는 답변을 하는 기능 등을 수행하도록 마련될 수 있다. 즉, 개시되는 실시예에서 블록체인망(104)의 동작은 관리 노드에 의해 수행될 수 있다.
블록체인망(104)은 프로젝트 서버(102)로부터 SBOM 등록 요청을 수신하는 경우, SBOM 등록 요청에 포함된 SBOM 관련 정보를 블록체인으로 등록할 수 있다. 블록체인망(104)은 SBOM 관련 정보를 테이블 형태로 각 노드(104a)에 저장할 수 있다. 블록체인망(104)은 SBOM 관련 정보에서 오픈 소스의 SBOM과 취약성 정보를 각각 추출할 수 있다.
블록체인망(104)은 SBOM의 각 항목(공급자 이름, 컴포넌트 이름, 컴포넌트 버전, 컴포넌트의 해시값, 고유 식별자, 의존관계, 데이터 작성자, 및 타임 스탬프 등)을 추출하여 테이블 형태로 저장할 수 있다. 이때, 테이블에는 해당 오픈 소스의 취약성 정보도 포함될 수 있다. 즉, 테이블에는 오픈 소스의 취약 내용 및 취약 등급에 대한 항목이 포함될 수 있다. 이하, 블록체인망(104)에 저장되는 테이블을 SBOM 블록체인 테이블이라고 지칭할 수 있다.
블록체인망(104)은 SBOM에서 기 설정된 항목들을 추출하여 제1 블록체인 해시를 생성할 수 있다. 일 실시예에서, 블록체인망(104)은 SBOM에서 공급자 이름, 컴포넌트 이름, 및 컴포넌트 버전을 추출하여 하나의 스트링(string)으로 취합하고, 취합된 스트링에 해시 함수를 적용하여 제1 블록체인 해시를 생성할 수 있다.
이때, 블록체인망(104)은 공급자 이름, 컴포넌트 이름, 및 컴포넌트 버전을 취합한 스트링의 길이가 기 설정된 임계 길이를 초과하는 경우, 기 설정된 항목(즉, 공급자 이름, 컴포넌트 이름, 및 컴포넌트 버전) 간에 설정된 우선 순위에 따라 우선 순위가 가장 낮은 항목을 제외한 후 스트링을 생성하고 이를 통해 제1 블록체인 해시를 생성할 수 있다. 제1 블록체인 해시는 SBOM의 항목 중 컴포넌트의 해시 값과는 상이한 비트 길이를 가지도록 마련될 수 있다.
또한, 블록체인망(104)은 SBOM 관련 정보에서 추출한 취약성 정보에 기초하여 제2 블록체인 해시를 생성할 수 있다. 블록체인망(104)은 제1 블록체인 해시 및 제2 블록체인 해시를 SBOM 블록체인 테이블과 매칭하여 저장할 수 있다. 즉, 블록체인망(104)의 각 노드(104a)들은 SBOM 블록체인 테이블 및 그와 매칭된 제1 블록체인 해시 및 제2 블록체인 해시를 공통적으로 저장할 수 있다.
여기서, 복수 개의 프로젝트 서버(102)로부터 SBOM 등록 요청을 받아 SBOM 관련 정보를 SBOM 블록체인 테이블로 저장하여 등록하는 경우, 블록체인망(104)의 각 노드(104a)들에는 여러 오픈 소스에 대한 SBOM 관련 정보들이 테이블 형태의 블록체인으로 저장되어 데이터베이스화 되게 된다.
한편, 프로젝트 서버(102)는 하나 이상의 소프트웨어에 기초하여 수행할 프로젝트가 주어진 경우, 소프트웨어에 포함되는 오픈 소스들을 확인하고, 각 오픈 소스의 SBOM 관련 정보가 블록체인망(104)에 저장되어 있는지 여부를 블록체인망(104)에 문의할 수 있다.
즉, 프로젝트 서버(102)는 프로젝트가 주어진 경우, 소프트웨어의 각 오픈 소스에 대해 SBOM 저장 여부 문의를 블록체인망(104)에 송신하여, 각 오픈 소스의 SBOM 관련 정보가 블록체인망(104)에 저장되어 있는지 여부를 문의할 수 있다. 여기서, 소프트웨어에 포함되는 오픈 소스가 복수 개인 경우, 프로젝트 서버(102)는 오픈 소스를 목록화 하여 각 오픈 소스에 대해 SBOM 저장 여부 문의를 블록체인망(104)으로 송신할 수 있다.
그러면, 블록체인망(104)은 SBOM 저장 여부 문의에 대응하여 문의 답변을 해당 프로젝트 서버(102)로 송신할 수 있다. 블록체인망(104)은 기 저장된 SBOM 블록체인 테이블에 SBOM 저장 여부 문의에 대응하는 SBOM 관련 정보들이 저장되어 있는지를 확인하여 문의 답변을 해당 프로젝트 서버(102)로 송신할 수 있다.
프로젝트 서버(102)는 문의 답변을 통해 소프트웨어의 오픈 소스들 중 어떤 오픈 소스가 블록체인망(104)에 SBOM 관련 정보가 저장되어 있는지 또는 저장되어 있지 않은지를 확인할 수 있다.
소프트웨어의 오픈 소스들 중 블록체인망(104)에 SBOM 관련 정보가 저장되어 있는 경우, 프로젝트 서버(102)는 블록체인망(104)에서 해당 SBOM 관련 정보(해당 오픈 소스의 SBOM 및 취약성 정보)를 수신하여 저장할 수 있다. 이 경우, 프로젝트 서버(102)는 해당 오픈 소스에 대해 별도로 SBOM 및 취약성 정보를 생성하지 않아도 된다.
소프트웨어의 오픈 소스들 중 블록체인망(104)에 SBOM 관련 정보가 저장되어 있지 않은 오픈 소스가 있는 경우, 프로젝트 서버(102)는 해당 오픈 소스에 대해 SBOM 및 취약성 정보를 포함하는 SBOM 관련 정보를 생성하고, SBOM 관련 정보를 포함하는 SBOM 등록 요청을 블록체인망(104)으로 송신하여 해당 오픈 소스의 SBOM 관련 정보가 SBOM 블록체인 테이블에 저장되도록 할 수 있다.
또한, 프로젝트 서버(102)는 소프트웨어를 이용하여 프로젝트를 수행하기 시작하거나 프로젝트를 수행하는 중에 주기적으로 또는 수시로 SBOM 검증 요청을 블록체인망(104)으로 송신할 수 있다. 즉, 프로젝트 서버(102)는 소프트웨어에 포함된 각 오픈 소스의 SBOM 관련 정보에 대해 위조 또는 변조가 있는지 여부를 확인하기 위해 SBOM 검증 요청을 블록체인망(104)으로 송신할 수 있다.
이때, 프로젝트 서버(102)는 각 오픈 소스의 SBOM의 항목 중에서 기 설정된 항목들을 추출하여 제1 해시 값을 생성하고, 해당 오픈 소스의 취약성 정보에 기초하여 제2 해시 값을 생성한 후, 제1 해시 값 및 제2 해시 값을 SBOM 검증 요청에 포함시킬 수 있다.
블록체인망(104)은 프로젝트 서버(102)로부터 SBOM 검증 요청을 수신한 경우, 기 저장된 SBOM 블록체인 테이블에서 해당 SBOM 관련 정보와 매칭되는 제1 블록체인 해시 및 제2 블록체인 해시를 추출하고, 추출한 제1 블록체인 해시 및 제2 블록체인 해시와 SBOM 검증 요청에 포함된 제1 해시 값 및 제2 해시 값을 각각 비교하여 SBOM 검증 결과를 프로젝트 서버(102)로 송신할 수 있다.
여기서, 제1 블록체인 해시 및 제2 블록체인 해시와 SBOM 검증 요청에 포함된 제1 해시 값 및 제2 해시 값이 각각 일치하는 경우, 블록체인망(104)은 해당 SBOM 관련 정보가 위변조 되지 않은 것으로 결과를 내릴 수 있다. 반면, 제1 블록체인 해시 및 제2 블록체인 해시와 SBOM 검증 요청에 포함된 제1 해시 값 및 제2 해시 값 중 적어도 하나가 일치하지 않는 경우, 블록체인망(104)은 해당 SBOM 관련 정보가 위변조 된 것으로 결과를 내릴 수 있다.
한편, 블록체인망(104)은 각 프로젝트 서버(102)에서 수행하고 있는 프로젝트와 관련된 정보(프로젝트 관련 정보)를 저장할 수 있다. 이때, 프로젝트 관련 정보는 블록체인망(104)의 관리 노드에만 저장될 수 있다. 즉, 프로젝트 관련 정보는 별도로 블록체인의 형태로 모든 노드에 저장되는 것이 아니라 지정된 관리 노드에만 저장될 수 있다. 프로젝트 관련 정보에는 프로젝트명, 프로젝트를 수행하는데 사용되는 소프트웨어, 소프트웨어에 포함되는 오픈 소스 등이 포함될 수 있다.
SBOM 검증 요청에 대응하여 위변조 여부를 확인한 결과, 해당 SBOM 관련 정보에 위변조가 발생한 경우, 블록체인망(104)은 기 저장된 프로젝트 관련 정보를 추출하고, 위변조가 발생한 SBOM 관련 정보에 대응하는 프로젝트(즉, 위변조가 발생한 SBOM 관련 정보에 대응하는 오픈 소스를 포함하는 소프트웨어를 이용하는 프로젝트)를 수행하는 프로젝트 서버(102)를 추출할 수 있다. 블록체인망(104)은 추출한 프로젝트 서버(102)로 위변조 경고 알람을 송신할 수 있다.
도 2는 본 발명의 일 실시예에 따른 SBOM 관리 시스템에서 위변조 경고 알람을 송신하는 상태를 개략적으로 나타낸 도면이다. 도 2를 참조하면, 블록체인망(104)에는 SBOM 블록체인 테이블(SBOM-01, SBOM-02, SBOM-03, SBOM-04, SBOM-05, SBOM-06,..., SBOM-nn)들이 블록체인으로 연결되어 저장될 수 있다. 그리고, 각 프로젝트 서버(102)들에는 프로젝트를 위한 소프트웨어에 포함되는 오픈 소스들이 설치될 수 있다. 여기서, 오픈 소스는 SBOM과 대응되는 바 설명의 편의상 SBOM으로 표시하였다.
즉, 제1 프로젝트 서버(102-1)에는 SBOM-01, SBOM-02, SBOM-03에 대응하는 오픈 소스들이 설치되어 있고, 제2 프로젝트 서버(102-2)에는 SBOM-03, SBOM-05, SBOM-06에 대응하는 오픈 소스들이 설치되어 있으며, 제3 프로젝트 서버(102-3)에는 SBOM-02, SBOM-06, SBOM-08에 대응하는 오픈 소스들이 설치될 수 있다.
여기서, 블록체인망(104)은 SBOM-3에 위변조가 발생한 것으로 확인된 경우, 기 저장된 프로젝트 관련 정보를 통해 제1 프로젝트 서버(102-1) 및 제2 프로젝트 서버(102-2)에 SBOM-3에 대응하는 오픈 소스가 설치된 것을 확인할 수 있다. 블록체인망(104)은 제1 프로젝트 서버(102-1) 및 제2 프로젝트 서버(102-2)에 SBOM-3에 대응하는 오픈 소스에 대한 위변조 경고 알람을 송신할 수 있다.
블록체인망(104)은 기 저장된 SBOM 블록체인 테이블에 대응하는 오픈 소스들에 대해 프로젝트 서버(102)들에서 사용되는 횟수(사용 횟수) 및 사용 빈도 등을 모니터링 하여 각 오픈 소스들의 프로젝트 사용도를 산출 할 수 있다. 즉, SBOM 블록체인 테이블에 저장된 오픈 소스들에 대해 프로젝트 서버(102)들의 프로젝트에 사용되는 정도를 각각 산출할 수 있다.
블록체인망(104)은 오픈 소스의 프로젝트 사용도가 기 설정된 임계 값을 초과하는 경우, 해당 오픈 소스를 이용하는 프로젝트 서버(102)들에게 해당 오픈 소스에 대한 SBOM 검증 요청을 달라는 메시지를 송신할 수 있다. 그러면, 해당 오픈 소스를 이용하는 각 프로젝트 서버(102)는 해당 오픈 소스의 SBOM의 항목 중에서 기 설정된 항목들을 추출하여 제1 해시 값을 생성하고, 해당 오픈 소스의 취약성 정보에 기초하여 제2 해시 값을 생성한 후 제1 해시 값 및 제2 해시 값을 포함한 SBOM 검증 요청을 블록체인망(104)으로 송신할 수 있다.
이에 대해, 블록체인망(104)은 기 저장된 SBOM 블록체인 테이블에서 해당 SBOM 관련 정보와 매칭되는 제1 블록체인 해시 및 제2 블록체인 해시를 추출하고, 추출한 제1 블록체인 해시 및 제2 블록체인 해시와 SBOM 검증 요청에 포함된 제1 해시 값 및 제2 해시 값을 각각 비교하여 SBOM 검증 결과를 산출할 수 있다. 이와 같이, 오픈 소스의 프로젝트 사용도가 기 설정된 임계 값을 초과하는 경우에는, 오픈 소스의 SBOM 검증을 보다 적극적이고 능동적으로 수행하여 무결성 관리를 수행할 수 있다.
개시되는 실시예에 의하면, 하나 이상의 오픈 소스를 포함하는 소프트웨어에 기초하여 프로젝트를 수행하는 경우, 오픈 소스에 대한 SBOM 관련 정보를 블록체인을 통해 저장 및 관리함으로써, SBOM 관련 정보의 무결성을 보존할 수 있고, SBOM 관련 정보의 위변조 시 이를 쉽게 확인하여 조치를 취할 수 있게 된다. 또한, 각 프로젝트 서버에서는 SBOM 관련 정보를 이용하여 해당 오픈 소스의 취약점을 확인하고 안정적으로 취약점을 보완할 수 있게 된다.
도 3은 본 발명의 일 실시예에 따른 블록체인을 이용한 SBOM 관리 방법을 설명하기 위한 흐름도이다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
도 3을 참조하면, 프로젝트 서버(102)는 소프트웨어에 포함되는 각 오픈 소스에 대해 SBOM 및 취약성 정보를 포함하는 SBOM 관련 정보를 생성하여 SBOM 등록 요청을 블록체인망(104)으로 송신할 수 있다(S 101). 다음으로, 블록체인망(104)은 SBOM 관련 정보의 SBOM 및 취약성 정보에서 각 항목을 추출하여 SBOM 블록체인 테이블을 생성할 수 있다(S 103).
다음으로, 블록체인망(104)은 SBOM에서 기 설정된 항목들을 추출하여 제1 블록체인 해시를 생성하고, 취약성 정보에 기초하여 제2 블록체인 해시를 생성할 수 있다(S 105). 다음으로, 블록체인망(104)은 제1 블록체인 해시 및 제2 블록체인 해시를 SBOM 블록체인 테이블과 매칭하여 저장할 수 있다(S 107).
도 4는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 프로젝트 서버(102)일 수 있다. 또한, 컴퓨팅 장치(12)는 블록체인망(104)을 구성하는 노드(104a)일 수 있다.
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
10 : 컴퓨팅 환경
12 : 컴퓨팅 장치
14 : 프로세서
16 : 컴퓨터 판독 가능 저장 매체
18 : 통신 버스
20 : 프로그램
22 : 입출력 인터페이스
24 : 입출력 장치
26 : 네트워크 통신 인터페이스
102 : 프로젝트 서버
104 : 블록체인망
104a : 노드

Claims (10)

  1. 하나 이상의 오픈 소스를 포함하는 하나 이상의 소프트웨어에 기초하여 프로젝트를 수행하고, 상기 소프트웨어에 포함되는 각 오픈 소스에 대해 SBOM(Software Bill Of Materials) 및 취약성 정보를 포함하는 SBOM 관련 정보를 생성하며, 상기 SBOM 관련 정보를 포함하는 SBOM 등록 요청을 송신하는 하나 이상의 프로젝트 서버; 및
    복수 개의 노드들로 구성되며, 상기 SBOM 등록 요청을 수신하고, 상기 SBOM 관련 정보에 기초하여 SBOM 블록체인 테이블을 생성하며, 생성한 상기 SBOM 블록체인 테이블을 상기 복수 개의 노드들에 각각 저장하는 블록체인망을 포함하며,
    상기 SBOM에 포함되는 항목은, 공급자 이름(supplier name), 컴포넌트 이름(component name), 컴포넌트 버전(version string), 컴포넌트의 해시값(component hash), 고유 식별자(unique identifier), 의존 관계(relationship), 데이터 작성자(author name), 및 타임 스탬프(time stamp) 중 하나 이상을 포함하고,
    상기 취약성 정보는, 취약 내용 정보 및 취약 등급 정보 중 하나 이상을 포함하며,
    상기 블록체인망은,
    상기 SBOM 관련 정보의 SBOM에서 각 항목을 추출하고, 상기 SBOM 관련 정보의 취약성 정보에서 각 항목을 추출하여 추출한 항목들로 구성되는 SBOM 블록체인 테이블을 생성하며, 상기 SBOM에서 기 설정된 항목들을 추출하여 제1 블록체인 해시를 생성하고, 상기 취약성 정보에 기초하여 제2 블록체인 해시를 생성하며, 상기 제1 블록체인 해시 및 상기 제2 블록체인 해시를 상기 SBOM 블록체인 테이블과 매칭하여 저장하며,
    상기 블록체인망은,
    상기 SBOM에서 공급자 이름, 컴포넌트 이름, 및 컴포넌트 버전을 추출하여 하나의 스트링(string)으로 취합하고, 취합된 스트링에 해시 함수를 적용하여 제1 블록체인 해시를 생성하되, 상기 공급자 이름, 컴포넌트 이름, 및 컴포넌트 버전을 취합한 스트링의 길이가 기 설정된 임계 길이를 초과하는 경우, 상기 항목들 간에 설정된 우선 순위에 따라 우선 순위가 가장 낮은 항목을 제외하여 제1 블록체인 해시를 생성하며,
    상기 제1 블록체인 해시는, 상기 SBOM의 항목 중 컴포넌트의 해시 값과는 상이한 비트 길이를 가지도록 마련되고,
    상기 블록체인망은,
    상기 SBOM 블록체인 테이블에 대응하는 각 오픈 소스들에 대해 프로젝트 서버들에서 사용되는 횟수 및 사용 빈도 중 하나 이상에 기초하여 프로젝트 사용도를 산출하고, 상기 오픈 소스의 프로젝트 사용도가 기 설정된 임계 값을 초과하는 경우, 해당 오픈 소스를 사용하는 프로젝트 서버로 해당 오픈 소스에 대한 SBOM 검증 요청을 달라는 메시지를 송신하는, SBOM 관리 시스템.
  2. 삭제
  3. 삭제
  4. 청구항 1에 있어서,
    프로젝트 서버는,
    하나 이상의 소프트웨어에 기초하여 수행할 프로젝트가 주어진 경우, 상기 소프트웨어에 포함되는 각 오픈 소스들을 확인하고, 상기 각 오픈 소스들에 대해 SBOM 저장 여부 문의를 상기 블록체인망으로 송신하며,
    상기 블록체인망은,
    상기 SBOM 블록체인 테이블에 상기 SBOM 저장 여부 문의에 대응하는 SBOM 관련 정보들이 저장되어 있는지를 확인하여 문의 답변을 해당 프로젝트 서버로 송신하는, SBOM 관리 시스템.
  5. 청구항 4에 있어서,
    상기 프로젝트 서버는,
    상기 문의 답변을 수신하는 경우, 상기 문의 답변에 기초하여 상기 소프트웨어의 오픈 소스들 중 SBOM 관련 정보가 상기 블록체인망에 저장되어 있는 경우, 해당 오픈 소스의 SBOM 관련 정보를 상기 블록체인망으로부터 수신하여 저장하고,
    상기 소프트웨어의 오픈 소스들 중 SBOM 관련 정보가 상기 블록체인망에 저장되어 있지 않은 경우, 해당 오픈 소스에 대해 SBOM 및 취약성 정보를 포함하는 SBOM 관련 정보를 생성하며, 상기 생성한 SBOM 관련 정보를 포함하는 SBOM 등록 요청을 상기 블록체인망으로 송신하는, SBOM 관리 시스템.
  6. 청구항 5에 있어서,
    상기 프로젝트 서버는,
    상기 프로젝트를 수행하기 시작하거나 상기 프로젝트를 수행하는 중에 SBOM 검증 요청을 상기 블록체인망으로 송신하되,
    상기 소프트웨어에 포함된 오픈 소스의 SBOM 항목에서 기 설정된 항목들을 추출하여 제1 해시 값을 생성하고, 상기 오픈 소스의 취약성 정보에 기초하여 제2 해시 값을 생성하며, 상기 제1 해시 값 및 상기 제2 해시 값을 상기 SBOM 검증 요청에 포함시키는, SBOM 관리 시스템.
  7. 청구항 6에 있어서,
    상기 블록체인망은,
    상기 SBOM 검증 요청을 수신하는 경우, 상기 SBOM 블록체인 테이블에서 해당 SBOM 관련 정보와 매칭되는 제1 블록체인 해시 및 제2 블록체인 해시를 각각 추출하고, 상기 추출한 제1 블록체인 해시 및 제2 블록체인 해시와 상기 SBOM 검증 요청에 포함된 제1 해시 값 및 제2 해시 값을 각각 비교하여 SBOM 검증 결과를 해당 프로젝트 서버로 송신하는, SBOM 관리 시스템.
  8. 청구항 7에 있어서,
    상기 블록체인망은, 각 프로젝트 서버에서 수행하고 있는 프로젝트와 관련된 프로젝트 관련 정보(프로젝트명, 프로젝트를 수행하는데 사용되는 소프트웨어, 및 소프트웨어에 포함되는 오픈 소스에 대한 정보를 포함)를 저장하고,
    상기 블록체인망은,
    상기 SBOM 검증 결과, SBOM 관련 정보에 위변조가 발생한 경우, 상기 프로젝트 관련 정보를 추출하고, 상기 프로젝트 관련 정보에 기초하여 상기 위변조가 발생한 SBOM 관련 정보에 대응하는 오픈 소스가 설치된 프로젝트 서버를 추출하며, 상기 추출한 프로젝트 서버로 상기 오픈 소스에 대한 위변조 경고 알람을 송신하는, SBOM 관리 시스템.
  9. 삭제
  10. 하나 이상의 오픈 소스를 포함하는 하나 이상의 소프트웨어에 기초하여 프로젝트를 수행하는 프로젝트 서버에서, 상기 소프트웨어에 포함되는 각 오픈 소스에 대해 SBOM(Software Bill Of Materials) 및 취약성 정보를 포함하는 SBOM 관련 정보를 생성하며, 상기 SBOM 관련 정보를 포함하는 SBOM 등록 요청을 송신하는 단계; 및
    복수 개의 노드들로 구성되는 블록체인망에서, 상기 SBOM 등록 요청을 수신하고, 상기 SBOM 관련 정보에 기초하여 SBOM 블록체인 테이블을 생성하며, 생성한 상기 SBOM 블록체인 테이블을 상기 복수 개의 노드들에 각각 저장하는 단계를 포함하며,
    상기 SBOM에 포함되는 항목은, 공급자 이름(supplier name), 컴포넌트 이름(component name), 컴포넌트 버전(version string), 컴포넌트의 해시값(component hash), 고유 식별자(unique identifier), 의존 관계(relationship), 데이터 작성자(author name), 및 타임 스탬프(time stamp) 중 하나 이상을 포함하고,
    상기 취약성 정보는, 취약 내용 정보 및 취약 등급 정보 중 하나 이상을 포함하며,
    상기 저장하는 단계는,
    상기 블록체인망에서, 상기 SBOM 관련 정보의 SBOM에서 각 항목을 추출하고, 상기 SBOM 관련 정보의 취약성 정보에서 각 항목을 추출하여 추출한 항목들로 구성되는 SBOM 블록체인 테이블을 생성하며, 상기 SBOM에서 기 설정된 항목들을 추출하여 제1 블록체인 해시를 생성하고, 상기 취약성 정보에 기초하여 제2 블록체인 해시를 생성하며, 상기 제1 블록체인 해시 및 상기 제2 블록체인 해시를 상기 SBOM 블록체인 테이블과 매칭하여 저장하고,
    상기 블록체인망은,
    상기 SBOM에서 공급자 이름, 컴포넌트 이름, 및 컴포넌트 버전을 추출하여 하나의 스트링(string)으로 취합하고, 취합된 스트링에 해시 함수를 적용하여 제1 블록체인 해시를 생성하되, 상기 공급자 이름, 컴포넌트 이름, 및 컴포넌트 버전을 취합한 스트링의 길이가 기 설정된 임계 길이를 초과하는 경우, 상기 항목들 간에 설정된 우선 순위에 따라 우선 순위가 가장 낮은 항목을 제외하여 제1 블록체인 해시를 생성하며,
    상기 제1 블록체인 해시는, 상기 SBOM의 항목 중 컴포넌트의 해시 값과는 상이한 비트 길이를 가지도록 마련되고,
    상기 블록체인망은,
    상기 SBOM 블록체인 테이블에 대응하는 각 오픈 소스들에 대해 프로젝트 서버들에서 사용되는 횟수 및 사용 빈도 중 하나 이상에 기초하여 프로젝트 사용도를 산출하고, 상기 오픈 소스의 프로젝트 사용도가 기 설정된 임계 값을 초과하는 경우, 해당 오픈 소스를 사용하는 프로젝트 서버로 해당 오픈 소스에 대한 SBOM 검증 요청을 달라는 메시지를 송신하는, SBOM 관리 방법.
KR1020230071742A 2022-11-17 2023-06-02 블록체인을 이용한 sbom 관리 시스템 및 방법 KR102609300B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220154321 2022-11-17
KR20220154321 2022-11-17

Publications (1)

Publication Number Publication Date
KR102609300B1 true KR102609300B1 (ko) 2023-12-04

Family

ID=89165062

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230071742A KR102609300B1 (ko) 2022-11-17 2023-06-02 블록체인을 이용한 sbom 관리 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102609300B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101555247B1 (ko) 2014-03-13 2015-09-24 (주)닥터소프트 소프트웨어 프로세스 관리 추적 알고리즘에 기초한 소프트웨어 관리 방법 및 그 기록매체
US20200235943A1 (en) * 2019-01-23 2020-07-23 Accenture Global Solutions Limited Information assurance (ia) using an integrity and identity resilient blockchain

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101555247B1 (ko) 2014-03-13 2015-09-24 (주)닥터소프트 소프트웨어 프로세스 관리 추적 알고리즘에 기초한 소프트웨어 관리 방법 및 그 기록매체
US20200235943A1 (en) * 2019-01-23 2020-07-23 Accenture Global Solutions Limited Information assurance (ia) using an integrity and identity resilient blockchain

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CycloneDX, "CycloneDX - Use Cases"(2022.10.30.)* *
Ortelius, "Application SBOM Ledger"(2022.10.30.)* *

Similar Documents

Publication Publication Date Title
US11128465B2 (en) Zero-knowledge identity verification in a distributed computing system
US11082226B2 (en) Zero-knowledge identity verification in a distributed computing system
US8239954B2 (en) Access control based on program properties
US20210144012A1 (en) Management of interoperating machine leaning algorithms
US8812844B2 (en) Luhn validation and data security across multiple active domains
US20210150416A1 (en) Interoperation of machine learning algorithms
US20200186422A1 (en) Using a container orchestration service for dynamic routing
Gjermundrød et al. privacyTracker: a privacy-by-design GDPR-compliant framework with verifiable data traceability controls
CN110188573B (zh) 分区授权方法、装置、设备及计算机可读存储介质
WO2018206374A1 (en) Load balancing of machine learning algorithms
EP3622449A1 (en) Autonomous logic modules
US20120290544A1 (en) Data compliance management
US20170034200A1 (en) Flaw Remediation Management
US9998450B2 (en) Automatically generating certification documents
WO2017045450A1 (zh) 资源的操作处理方法及装置
US20200153889A1 (en) Method for uploading and downloading file, and server for executing the same
KR102609300B1 (ko) 블록체인을 이용한 sbom 관리 시스템 및 방법
US7640260B2 (en) Valid transformation expressions for structured data
JP2005190221A (ja) キャッシュ制御装置およびその方法ならびにコンピュータプログラム
US11550915B2 (en) Method and system for data security and apparatus for executing the same
KR20100113975A (ko) 과거에 수행된 특정 동작을 선택적으로 취소하는 xml 문서 관리 방법 및 이를 이용한 시스템
KR20210027011A (ko) 피어 노드, 피어 노드에서 수행되는 처리 방법 및 블록체인 플랫폼 시스템
US20230075246A1 (en) Systems and methods for policy management
US12001549B1 (en) Cybersecurity incident response techniques utilizing artificial intelligence
US20240184914A1 (en) Multiple synonymous identifiers in data privacy integration protocols

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant