KR101751388B1 - 오픈소스 취약점 분석 대상 검색 및 수집을 위한 빅데이터 분석 기반 웹 크롤링 시스템 및 그 방법 - Google Patents

오픈소스 취약점 분석 대상 검색 및 수집을 위한 빅데이터 분석 기반 웹 크롤링 시스템 및 그 방법 Download PDF

Info

Publication number
KR101751388B1
KR101751388B1 KR1020170014199A KR20170014199A KR101751388B1 KR 101751388 B1 KR101751388 B1 KR 101751388B1 KR 1020170014199 A KR1020170014199 A KR 1020170014199A KR 20170014199 A KR20170014199 A KR 20170014199A KR 101751388 B1 KR101751388 B1 KR 101751388B1
Authority
KR
South Korea
Prior art keywords
vulnerability
information
open source
analysis
module
Prior art date
Application number
KR1020170014199A
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 KR101751388B1 publication Critical patent/KR101751388B1/ko

Links

Images

Classifications

    • G06F17/30864
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F17/30318
    • G06F17/30345
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 소프트웨어 개발자들이 서로의 정보 공유를 위해 자신이 개발한 오픈소스 소프트웨어를 정보 저장소에 웹을 통해 업로드하는 오픈소스 소프트웨어에 대한 보안 취약점 점검 및 분석을 용이하게 하기 위해 웹에 공유되어 있는 오픈소스 소프트웨어 중 취약점이 내재할 가능성이 높은 오픈소스 소프트웨어를 선별하여 수집하기 위해 취약점 정의 정보와 빅데이터 분석 처리를 바탕으로 취약 위험성 검색 키워드 셋을 구성하여 오픈소스 소프트웨어 수집을 수행함으로써 오픈소스 소프트웨어 취약점 분석을 위한 대상 수집 시간과 점검 시간을 줄일 수 있다.
또, 취약 위험성이 높은 오픈소스 소프트웨어를 수집하여 취약점 분석이 이루어질 때 마다 새로운 취약 위험성 검색 키워드 셋이 새로 생성되거나 기존 취약 위험성 키워드 셋이 업데이트되어 더욱 명확하고 구체화된 키워드에 의해 취약점이 내재해 있을 가능성이 더욱 높은 오픈소스 소프트웨어를 수집할 수 있는 오픈소스 취약점 분석 대상 검색 및 수집을 위한 빅데이터 분석 기반 웹 크롤링 시스템에 관한 것이다.
본 발명은, 오픈 소스 소프트웨어의 취약점을 분석할 수 있는 취약점 분석 모듈, 소프트웨어 취약점에 대한 취약점 분석의 기준 정보가 되는 취약점 정의명세 DB, 상기한 취약점 분석 모듈에 의해 분석 결과가 도출되면 그 분석 결과를 저장하는 취약점 분석 결과 정보 DB, 취약점 분석 결과 정보 DB의 분석 결과 정보에 해당하는 취약점 정의명세 정보를 매핑하기 위한 취약점 정보 매핑 모듈, 취약점 매핑 정보 모듈에 의해 매핑되는 정보를 그룹화하여 저장하는 취약점 정보 매핑정보 DB를 포함하는 취약점 분석 엔진;
상기한 취약점 분석엔진의 취약점 정보 매핑정보 DB로부터 취약점 정보 매핑정보를 가져오고 외부 취약점 동향정보를 입력하여 키워드 빈번도와 키워드 연관성 분석을 통해 취약 위험성 키워드를 정의하는 빅데이터 분석 모듈, 빅데이터 분석 모듈에 의해 도출된 취약 위험성 키워드들을 하나의 셋으로 구성 및 생성하는 취약 위험성 검색 데이터 셋 생성 모듈, 생성된 취약 위험성 검색 데이터 셋을 이용하여 웹기반 오픈소스 정보 저장소에 저장되어 있는 오픈소스 소프트웨어 중에 취약점이 내재해 있을 가능성이 높은 오픈소스 소프트웨어를 검색하기 위해 검색 질의어를 생성하는 취약 위험성 검색 질의어 생성 모듈, 취약 위험성 검색 질의어 생성 모듈에 의해 생성된 질의어를 통해 해당되는 오픈소스 소프트웨어를 수집하여 저장하는 취약 위험성 오픈소스 수집 모듈을 포함하는 취약 위험성 오픈 소스 수집 엔진을 포함하여 이루어진 것과 생성된 취약 위험성 검색 데이터 셋이 운영체제명, 취약 키워드로 구성된 것에 특징이 있다.

Description

오픈소스 취약점 분석 대상 검색 및 수집을 위한 빅데이터 분석 기반 웹 크롤링 시스템 및 그 방법{Big data analytics based Web Crawling System and The Method for searching and collecting open source vulnerability analysis target}
본 발명은 오픈소스(open source) 소프트웨어의 취약점 유무 및 종류를 검사하여 그 결과를 분석하기 위한 분석 대상을 자동으로 검색 및 수집에 관한 것으로서, 더욱 상세하게는 취약점 정의 데이터베이스 정보 처리와 빅데이터 분석을 통해 웹에 공유되어 있는 오픈소스 소프트웨어 중 취약점이 있을 수 있는 잠재적인 소프트웨어를 자동으로 검색 및 수집하기 위한 웹 크롤링 시스템에 관한 것이다.
최근에, 지속적으로 발생하고 있고 사회적으로 문제가 되고 있는 보안 취약점을 이용한 보안 문제들의 대부분은 소프트웨어의 취약성(software vulnerability) 때문이다. 소프트웨어에 존재하는 보안 취약성은 개발자의 실수에 의해 발생된다.
보안 취약성은 소프트웨어 분야의 근본적인 문제점으로부터 파생되어 보안 사고를 발생시킬 수 있는 여지가 있는 성질로서, 해커가 보안 취약성을 악용하면, 그것이 보안 취약점으로 구체화되어 보안 사고의 원인이 된다.
상기한 보안 취약점으로부터 야기되는 보안 사고를 미연에 방지하기 위해 소프트웨어의 취약점을 점검하고 분석하는 방법을 취약점 분석이라고 한다.
또한 오픈소스 소프트웨어는 프로그램 개발자가 직접 코딩한 프로그램을 비영리 목적으로 배포 및 공유하여 누구나 무료로 사용가능하도록 오픈한 소프트웨어를 오픈소스 소프트웨어라 한다.
오픈소스 소프트웨어 취약점을 분석하기 위해서는 검사자가 직접 취약점을 분석할 대상인 소프트웨어를 취약점 분석 시스템에 입력하여 분석을 실행하거나 혹은 웹을 통해 오픈소스 소프트웨어가 저장되어 있는 정보 저장소에 접근하여 자동으로 수집한 후 취약점 분석 시스템에서 자동으로 수집된 오픈소스 소프트웨어를 분석하는 방법이 있다.
오픈소스 소프트웨어 취약점 분석 방법 중 두 번째 방법인 웹을 통해 오픈소스 소프트웨어가 저장되어 있는 정보 저장소에 접근하여 자동으로 수집하는 경우, 정보 저장소에 있는 모든 오픈소스를 파일(file)별로 수집하는 것은 시간적으로 많은 시간이 소요되므로 취약점이 존재할 가능성이 높은 오픈소스 소프트웨어를 선별하여 수집하는 것이 더욱 효율적이다.
취약점이 존재할 가능성이 높은 오픈소스 소프트웨어를 선별하여 수집하기 위해서는 오픈소스 소프트웨어의 코딩 문구 또는 코딩 언어와 운영소프트웨어와 같은 소프트웨어의 실행 환경 중 어떠한 부분이 취약성이 있는지에 대한 코딩 내용 별로 취약점 정보가 정의되어 있어야 한다.
전 세계가 사용하고 있는 소프트웨어 취약점 정의 정보는 소프트웨어 취약점에 대한 가이드라인인 CWE(Common Weakness Enumeration)와 취약점 분석에 사용되는 레퍼런스 코드인 CVE(Common Weakness Scoring System)가 있으며, 소프트웨어 취약점 분석은 상기한 CWE와 CVE에 정의된 취약점 정의 정보에 해당하는 내용을 기반으로 하여 취약점을 분석한다.
CWE는 미국 국토보안부(U.S. Department of Homeland Security) 내 국가 사이버 보안국(National Cyber Security Division)의 지원으로 MITRE에서 소프트웨어 취약점을 다양한 관점에서 분류하여 모아 놓은 것이며, CVE는 시간에 따라 감지된 보안취약점을 정리해 둔 목록으로 CWE는 일반적인 취약점의 분류체계라고 한다면 CVE는 발견된 보안 취약점의 히스토리 기록이라고 볼 수 있다.
빅데이터(big data)는 기존 데이터베이스 관리도구로 데이터를 수집, 저장, 관리, 분석할 수 있는 역량을 넘어서는 대량의 정형 또는 비정형 데이터 집합을 말하며, 이러한 데이터로부터 가치를 추출하고 결과를 분석하는 기술을 빅데이터 분석이라고 한다.
오픈소스 소프트웨어의 취약성을 분석하는 종래의 기술은 상기한 CWE와 CVE와 같은 취약점 정의 정보와 부합하는 내용이 오픈소스 소프트웨어의 내부 코딩에서 검색하여 취약점 점검을 한 후 취약점이 발견되면 해결방안을 제공한다.
이러한 종래 기술에 따르면 프로그램 개발 단계에서 보안사의 취약함 문제를 사전에 방지함으로써 프로그램 실행 이후에 발생하는 보안 사고를 감소시켜 보안 방지에 소요되는 시간 및 비용을 절감한다.
대한민국 공개특허 10-2009-0044656호(2009.05.07. 공개) 대한민국 등록특허 10-0653122호(2006.11.27. 등록)
그러나, 상기한 종래의 기술은 어떤 오픈소스 소프트웨어가 취약점이 있을지 사전에 전혀 알 수 있는 방법이 없으므로 취약점 점검 대상인 오픈소스 소프트웨어 정보 저장소에 있는 모든 오픈소스 소프트웨어의 각 코딩된 파일을 모두 점검해야 하는 단점이 있다.
본 발명은 상기와 같은 종래기술에서 발생하는 제반 문제점을 해결하기 위해서 제안된 것으로서, 보안 취약성이 높은 오픈소스 소프트웨어의 취약점을 분석하기 위해 웹에 공유되어 있는 오픈소스 소프트웨어 중 취약점이 내재할 가능성이 높은 오픈소스 소프트웨어를 선별하여 수집(크롤링: crawling)하기 위해 취약점 정의 정보와 빅데이터 분석 처리 방법을 바탕으로 취약 위험성 검색 키워드 셋을 구성하여 오픈소스 소프트웨어 수집을 수행함으로써 오픈소스 소프트웨어 취약점 분석을 위한 대상 수집 시간과 점검 시간을 줄이는데 목적이 있다.
본 발명의 다른 목적은 수집된 오픈소스 소프트웨어가 취약점 분석이 이루어질 때 마다 취약 위험성 검색 키워드 셋이 새로 생성되거나 업데이트되어 더욱 구체적인 키워드에 의해 취약점이 내재해 있을 가능성이 더욱 높은 오픈소스 소프트웨어를 수집할 수 있게 하는 것이다.
본 발명은, 상기 목적을 달성하기 위하여 오픈소스 취약점 분석 대상 검색 및 수집을 위한 빅데이터 분석 기반 웹 크롤링 시스템은 다양한 취약점 분석 기법에 의해 오픈 소스 소프트웨어의 취약점을 분석할 수 있는 취약점 분석 모듈, 소프트웨어 취약점에 대한 글로벌 가이드라인인 CWE와 취약점 분석에 사용되는 글로벌 레퍼런스 코드인 CVE와 같은 취약점 분석의 기준 정보가 되는 취약점 정의명세 DB, 상기한 취약점 분석 모듈에 의해 분석 결과가 도출되면 그 분석 결과를 저장하는 취약점 분석 결과 정보 DB, 취약점 분석 결과 정보 DB의 분석 결과 정보에 해당하는 취약점 정의명세 정보를 매핑하기 위한 취약점 정보 매핑 모듈, 취약점 매핑 정보 모듈에 의해 매핑되는 정보를 그룹화하여 저장하는 취약점 정보 매핑정보 DB를 포함하는 취약점 분석 엔진;
상기한 취약점 분석엔진의 취약점 정보 매핑정보 DB로부터 취약점 정보 매핑정보를 가져오고 외부 취약점 동향정보를 입력하여 키워드 빈번도와 키워드 연관성 분석을 통해 취약 위험성 키워드를 정의하는 빅데이터 분석 모듈, 빅데이터 분석 모듈에 의해 도출된 취약 위험성 키워드들을 하나의 셋으로 구성 및 생성하는 취약 위험성 검색 데이터 셋 생성 모듈, 생성된 취약 위험성 검색 데이터 셋을 이용하여 웹기반 오픈소스 정보 저장소에 저장되어 있는 오픈소스 소프트웨어 중에 취약점이 내재해 있을 가능성이 높은 오픈소스 소프트웨어를 검색하기 위해 검색 질의어를 생성하는 취약 위험성 검색 질의어 생성 모듈, 취약 위험성 검색 질의어 생성 모듈에 의해 생성된 질의어를 통해 해당되는 오픈소스 소프트웨어를 수집하여 저장하는 취약 위험성 오픈소스 수집 모듈을 포함하는 취약 위험성 오픈 소스 수집 엔진을 포함하는 것을 특징으로 한다.
여기서, 생성된 취약 위험성 검색 데이터 셋이 운영체제명, 개발언어 및 오픈소스 소프트웨어의 소프트웨어명, 프로젝트명, 파일명, 파일 내 소스코드의 일부분, 파일 내 소스코드를 설명하는 주석 내용에 의해 취득될 수 있는 취약 키워드로 구성된다.
한편, 본 발명의 웹 크롤링 방법은, 오픈소스 소프트웨어의 취약점 분석을 위해 오픈소스 소프트웨어 입력단계(41);
입력된 오픈소스 소프트웨어에 대한 취약점 분석단계(42);
입력된 오픈소스 소프트웨어의 취약점 분석 결과가 생성되면 취약점 분석 결과 정보와, 취약점 정의명세 정보 매핑단계(43);
매핑 정보를 그룹화단계(44);
그룹화된 매핑 정보는 DB에 저장단계(45);
일정 수의 오픈소스 소프트웨어의 취약점 분석이 수행되면 취약점 분석결과와 취약점 정의 명세 정보 매핑 정보가 그룹화된 정보를 로딩단계(51);
외부 취약점 최신 동향 정보 수집단계(61);
DB 저장단계(62)을 통해 취합된 외부 취약점 최신 동향 정보 로딩단계(52);
취약 위험성 오픈 소스 수집을 시작하여 그룹화 된 매핑 정보와 외부 취약점 최신 동향 정보를 빅데이터 분석단계(53);
빅데이터 분석단계(53)의 분석을 하여 취약 위험성 검색 데이터 셋을 생성단계(54);
취약 위험성 검색 데이터 셋이 생성되면 해당 데이터 셋에 있는 운영체제, 개발언어, 위험성 키워드가 포함된 취약 위험성 검색 질의어 생성단계(55);
생성된 취약 위험성 검색 질의어를 기반으로 취약 위험성 오픈소스 수집단계(56)로 이루어지는 것을 특징으로 한다.
본 발명에 의하면 소프트웨어 개발자들이 서로의 정보 공유를 위해 자신이 개발한 오픈소스 소프트웨어를 정보 저장소에 웹을 통해 업로드하는 오픈소스 소프트웨어에 대한 보안 취약점 점검 및 분석을 용이하게 하기 위해 웹에 공유되어 있는 오픈소스 소프트웨어 중 취약점이 내재할 가능성이 높은 오픈소스 소프트웨어를 선별하여 수집하기 위해 취약점 정의 정보와 빅데이터 분석 처리 방법을 바탕으로 취약 위험성 검색 키워드 셋을 구성하여 오픈소스 소프트웨어 수집을 수행함으로써 오픈소스 소프트웨어 취약점 분석을 위한 대상 수집 시간과 점검 시간을 줄일 수 있으며, 취약 위험성이 높은 오픈소스 소프트웨어를 수집하여 취약점 분석이 이루어질 때 마다 새로운 취약 위험성 검색 키워드 셋이 새로 생성되거나 기존 취약 위험성 키워드 셋이 업데이트되어 더욱 명확하고 구체화된 키워드에 의해 취약점이 내재해 있을 가능성이 더욱 높은 오픈소스 소프트웨어를 수집할 수 있는 장점이 있다.
도 1은 본 발명이 바람직한 실시 예에 따른 오픈소스 취약점 분석 대상 검색 및 수집을 위한 빅데이터 분석 기반 웹 크롤링 시스템의 블록도.
도 2는 본 발명의 실시 예에 따른 오픈소스 취약점 분석 대상 검색 및 수집 방법의 순서도.
도 3은 본 발명에 실시 예에 따른 취약 위험성 데이터 셋의 구성도.
이하, 본 발명의 바람직한 실시 예에 따른 오픈소스 취약점 분석 대상 검색 및 수집을 위한 빅데이터 분석 기반 웹 크롤링 시스템과 방법을 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 바람직한 실시 예에 따른 오픈소스 취약점 분석 대상 검색 및 수집을 위한 빅데이터 분석 기반 웹 크롤링 시스템의 블록도이다.
본 발명에 따른 오픈소스 취약점 분석 대상 검색 및 수집을 위한 빅데이터 분석 기반 웹 크롤링 시스템은 취약점 분석 엔진(10), 취약 위험성 오픈 소스 수집 엔진(20)을 포함한다.
상기한 취약점 분석 엔진(10)은 취약점 수집된 오픈소스 소프트웨어의 취약점을 다양한 취약점 분석 기법을 이용하여 분석하는 취약점 분석 모듈(12), 소프트웨어 취약점에 대한 글로벌 가이드라인인 CWE와 취약점 분석에 사용되는 글로벌 레퍼런스 코드인 CVE와 같은 취약점 분석의 기준 정보가 텍스트기반의 DB 파일로 저장되어는 취약점 정의명세 DB(11), 상기한 취약점 분석 모듈(12)에 의해 분석 결과가 도출되면 그 분석 결과를 텍스트기반의 DB 파일 로 저장하는 취약점 분석 결과 정보 DB(13), 취약점 분석 결과 정보 DB(13)의 분석 결과 정보에 해당하는 취약점 정의명세 정보를 매핑하기 위한 취약점 정보 매핑 모듈(14), 취약점 매핑 정보 모듈(14)에 의해 매핑된 정보를 그룹화하여 DB 파일로 저장하는 취약점 정보 매핑정보 DB(15)를 포함하고, 수집된 오픈 소스 소프트웨어의 취약점을 분석하며, 이를 통해 취약점을 분석한 오픈 소스 소프트웨어의 취약점 부분에 해당하는 기준정보인 취약점 정의명세 정보를 취약점 정의명세 DB(11)에서 찾아 비교하여 해당되는 정의명세 정보와 매핑하여 그룹화 한 후 그룹화된 정보를 저장하는 역할을 한다.
취약점 위험성 오픈소스 수집엔진(20)은 상기한 취약점 분석엔진(10)의 취약점 정보 매핑정보 DB(15)로부터 그룹화된 취약점 정보 매핑정보를 가져오고 최신 신규 취약점 정보 및 최근 취약점 이슈 정보 등 외부 취약점 동향정보를 빅데이터 분석모듈(21)에 입력하여 키워드 빈번도와 키워드 연관성 분석 등의 빅데이터 분석을 통해 취약 위험성 키워드를 추출하고 정의하는 역할을 한다.
또한 취약점 위험성 오픈소스 수집엔진(20)은 상기한 빅데이터 분석 모듈(21)에 의해 도출된 서로 연관성이 있는 취약 위험성 키워드들을 하나의 셋으로 구성 및 생성하는 취약 위험성 검색 데이터 셋 생성 모듈(22)을 포함하고, 이를 통해 오픈소스 소프트웨어에서 취약성이 높은 운영체제(OS), 개발언어(Language), 취약 키워드(w-Keyword)로 구성된 취약 위험성 검색 데이터 셋을 취약 위험성 검색 데이터 셋 생성 모듈(22)을 통해 생성한다.
또한, 취약점 위험성 오픈소스 수집엔진(20)은 취약 위험성 검색 데이터 셋 생성 모듈(22)에 위해 생성된 취약 위험성 검색 데이터 셋을 이용하여 웹기반 오픈소스 정보 저장소에 저장되어 있는 오픈소스 소프트웨어 중에 취약점이 내재해 있을 가능성이 높은 오픈소스 소프트웨어를 검색하기 위해 검색 질의어를 생성하는 취약 위험성 검색 질의어 생성 모듈(23), 취약 위험성 검색 질의어 생성 모듈(23)에 의해 생성된 질의어를 통해 해당되는 취약점이 내재해 있을 가능성이 높은 오픈소스 소프트웨어를 검색하고 수집한 후 저장하는 취약 위험성 오픈소스 수집 모듈(24)을 포함하고, 수집된 오픈소스 소프트웨어를 취약점 분석 엔진(10)에 보내어 취약점 분석을 한다.
상기한 취약점 분석 엔진(10)의 취약점 분석 모듈(12)은 일반적으로 사용되고 있는 취약점 분석 모듈로서 오픈소스 소프트웨어의 취약점을 점검하고 취약점이 발견될 시 취약점이 발견된 오픈소스 소프트웨어, 그 오픈소스 소프트웨어 내의 취약점이 발견된 파일, 그 파일 내에 취약점이 발견된 취약점 부분 정보와 그 발견된 취약점을 취약하지 않도록 소스코드를 수정할 수 있도록 도움을 주는 취약점 패치 정보를 제공한다.
도 2는 본 발명의 바람직한 실시 예에 따른 오픈소스 취약점 분석 대상 검색 및 수집 방법의 순서도이다.
본 발명에 따른 오픈소스 취약점 분석 대상 검색 및 수집을 위한 빅데이터 분석 기반 웹 크롤링 시스템에서 수행하는 오픈소스 취약점 분석 대상 검색 및 수집 방법에 대해 첨부된 도면을 참조하여 상세하게 설명한다.
우선, 오픈소스 소프트웨어의 취약점 분석을 위해 오픈소스 소프트웨어가 입력단계(41)에서 입력되면 입력된 오픈소스 소프트웨어에 대한 취약점 분석단계(42)가 시작된다. 이후 입력된 오픈소스 소프트웨어의 취약점 분석 결과가 생성되면 취약점 분석 결과 정보와 취약점 정의명세 정보와 정보를 매핑단계(43)에서 매핑하여 매핑 정보를 그룹화단계(44)에서 그룹화 한 후 그룹화 된 매핑 정보는 DB에 저장단계(45)를 통해 저장하게 된다.
이 때, 최초의 오픈소스 소프트웨어 수집을 위한 취약 위험성 검색 데이터 셋은 아직 생성되지 않으므로 취약 위험성 검색 데이터 셋을 적용하지 않고 수집한 오픈소스 소프트웨어의 일정 수를 수집하여 입력한다.
일정 수의 오픈소스 소프트웨어의 취약점 분석이 수행되면 취약점 분석결과와 취약점 정의 명세 정보 매핑 정보가 그룹화된 정보를 로딩단계(51)에서 로딩하고, 외부 취약점 최신 동향 정보 수집단계(61)와 DB 저장단계(62)를 통해 취합된 외부 취약점 최신 동향 정보를 로딩단계(52)에서 로딩하여 취약 위험성 오픈 소스 수집을 시작한다.
그룹화된 매핑 정보와 외부 취약점 최신 동향 정보를 빅데이터 분석단계(53)를 통해 분석을 하여 취약 위험성 검색 데이터 셋을 생성단계(54)에서 생성하게 된다.
즉, 그룹화된 매핑 정보는 취약점 분석결과가 취약점 분석 모듈(12)에 의해 취약점 결과가 도출된 후 취약점 정의 명세(CWE 또는 CVE 등)에 정의되어 취약점 정의명세 DB(11)에 저장되어 있는 취약점에 대한 정보와 비교하여 일치하는 정보와 매핑하여 텍스트 기반의 DB 파일로 취약점 정보 매핑정보 DB(15)에 저장하게 된다.
또, 외부 취약점 최신 동향 정보(30)는 예로서 인터넷 상에 올라오는 기사 또는 인터넷 취약점 동향 정보 등에서 신규 취약점 정보 및 취약점 이슈 정보 등 최신 취약점 동향 정보를 빅데이터 분석모듈(21)에 입력하여 빅데이터 분석단계(53)가 수행되며, 빅데이터 분석 단계에서의 빅데이터 분석은 최신 취약점 동향 정보에 포함되어 있는 소프트웨어 취약점과 관련된 키워드들을 추출하여 키워드 노출 빈번도와 키워드간 상호 연관성 분석 기능을 통해 최신 취약점 정보를 생성하는 기능이다.
즉, 상기한 생성된 최신 취약점 정보는 취약점 정보 매핑 정보 DB(15)에 있는 취약점 정보 매핑정보와 함께 빅데이터 분석단계(53)가 수행되는 것이다.
그리고, 취약 위험성 검색 데이터 셋 생성 모듈(22)에서 취약 위험성 검색어 정의를 위한 취약 위험성 검색 데이터 셋 생성단계(54)가 이루어지고 나면, 취약 위험성 오픈소스 수집 모듈(24)에 의해 취약 위험성 오픈소스 수집단계(56)에서 생성된 취약 위험성 검색 데이터 셋에 의한 검색 질의어 성생을 위해 해당 데이터 셋에 있는 운영체제, 개발언어, 위험성 키워드가 포함된 취약 위험성 검색 질의어 생성 모듈(23)에 의해 취약 위험성 검색 질의어 생성단계(55)가 이루어진다.
이후 생성된 취약 위험성 검색 질의어를 기반으로 취약 위험성 오픈소스 수집단계(56)가 이루어 지게 되고, 취약 위험성 오픈 소스 수집을 종료하게 된다.
도 3은 본 발명의 바람직한 실시 예에 따른 취약 위험성 데이터 셋의 구성도이다.
본 발명에 따른 오픈소스 취약점 분석 대상 검색 및 수집을 위한 빅데이터 분석 기반 웹 크롤링 시스템에서 수행하는 오픈소스 취약점 분석 대상 검색을 위한 취약 위험성 검색 데이터 셋의 구성에 대해 첨부된 도면을 참조하여 상세하게 설명한다.
취약성 위험성 검색 데이터 셋(70)은 도 1의 취약 위험성 검색 데이터 셋 모듈(22)에 의해 생성되며, 해당 오픈소스 소프트웨어가 구동하게 되는 운영체제의 운영체제명(71), 소스코드 소프트웨어의 프로그래밍 언어에 해당하는 개발언어(72), 취약 키워드(73)를 포함하는 것을 특징으로 한다.
예를 들어, 오픈소스 소프트웨어가 구동하게 되는 운영체제 중 특정 개발언어로 개발된 소스코트 소프트웨어가 취약점을 가질 수 있으며, 그 중 어떠한 키워드를 포함하고 있다면 더욱 심각한 취약성을 가질 수 있다는 분석을 할 수 있게 되는 것이다.
따라서 취약 위험성 검색 데이터 셋을 구성하고 있는 운영체제명(71), 개발언어(72), 취약 키워드(73)는 서로 상호 종속되어 있는 연관성이 있다.
상기한 운영체제명(71)은 오픈소스 소프트웨어의 소스코드 내에 명시되어있거나 또는 해당 오픈소스 소프트웨어의 요약정보 등 오픈소스 공유 정보 저장소에 입력되어 있는 소프트웨어 구동 설명에 의해 취득될 수 있고, 개발언어(72)는 오픈소스 소프트웨어의 소스코드에 명시되어 있거나 또는 소스코드의 파일 확장자명의 확인에 의해 취득될 수 있으며, 취약 키워드(73)는 오픈소스 소프트웨어의 소프트웨어명, 프로젝트명, 파일명, 파일 내 소스코드의 일부분, 파일 내 소스코드를 설명하는 주석 내용에 의해 취득될 수 있다.
취약 위험성 검색 데이터 셋(70)의 구성요소 중 운영체제명(71)과 취약 키워드(73)는 하나의 취약 위험성 검색 데이터 셋에서 복수개가 될 수 있다.
이러한 본 발명은 이 기술분야에서 통상의 지식을 가진 자라면 누구나 본 발명의 명세서의 기재내용에 의하여 다양한 변형 및 모방을 행할 수 있을 것이나, 이 역시 본 발명의 범위를 벗어난 것이 아님은 명백하다고 할 것이다.
10 : 취약점 분석 엔진
11 : 취약점 정의명세 DB
12 : 취약점 분석 모듈
13 : 취약점 분석 결과 정보 DB
14 : 취약점 정보매핑 모듈
15 : 취약점 정보 매핑정보 DB
20 : 취약 위험성 오픈 소스 수집 엔진
21 : 빅데이터 분석 모듈
22 : 취약 위험성 검색 데이터 셋 생성 모듈
23 : 취약 위험성 검색 질의어 생성 모듈
24 : 취약 위험성 오픈소스 수집 모듈
30 : 외부 취약점 동향 정보
41 : 오픈 소스 입력단계
42 : 오픈 소스 취약점 분석단계
43 : 취약점 분석 결과와 취약점 정의명세 정보 매핑단계
44 : 매핑 정보 그룹화단계
45 : 그룹화된 매핑 정보 DB 저장단계
51 : 그룹화된 매핑 정보 로딩단계
52 : 외부 취약점 최신 동향 정보 로딩단계
53 : 그룹화된 매핑 정보 및 외부 취약점 최신 동향 정보 빅데이터 분석단계
54 : 취약 위험성 검색 데이터 셋 생성단계
55 : 취약 위험성 검색 질의어 생성단계
56 : 취약 위험성 오픈소스 수집단계
61 : 취약 위험성 오픈소스 수집단계
62 : 외부 취약점 최신 동향 정보 DB 저장단계

Claims (3)

  1. 오픈소스 취약점 분석 대상 검색 및 수집을 위한 빅데이터 분석 기반 웹 크롤링 시스템으로서,
    오픈 소스 소프트웨어의 취약점을 분석할 수 있는 취약점 분석 모듈, 소프트웨어 취약점에 대한 취약점 분석의 기준 정보가 되는 취약점 정의명세 DB, 상기한 취약점 분석 모듈에 의해 분석 결과가 도출되면 그 분석 결과를 저장하는 취약점 분석 결과 정보 DB, 취약점 분석 결과 정보 DB의 분석 결과 정보에 해당하는 취약점 정의명세 정보를 매핑하기 위한 취약점 정보 매핑 모듈, 취약점 매핑 정보 모듈에 의해 매핑되는 정보를 그룹화하여 저장하는 취약점 정보 매핑정보 DB를 포함하는 취약점 분석 엔진; 및
    상기한 취약점 분석엔진의 취약점 정보 매핑정보 DB로부터 취약점 정보 매핑정보를 가져오고 외부 취약점 동향정보를 입력하여 키워드 빈번도와 키워드 연관성 분석을 통해 취약 위험성 키워드를 정의하는 빅데이터 분석 모듈, 빅데이터 분석 모듈에 의해 도출된 취약 위험성 키워드들을 하나의 셋으로 구성 및 생성하는 취약 위험성 검색 데이터 셋 생성 모듈, 생성된 취약 위험성 검색 데이터 셋을 이용하여 웹기반 오픈소스 정보 저장소에 저장되어 있는 오픈소스 소프트웨어 중에 취약점이 내재해 있을 가능성이 높은 오픈소스 소프트웨어를 검색하기 위해 검색 질의어를 생성하는 취약 위험성 검색 질의어 생성 모듈, 취약 위험성 검색 질의어 생성 모듈에 의해 생성된 질의어를 통해 해당되는 오픈소스 소프트웨어를 수집하여 저장하는 취약 위험성 오픈소스 수집 모듈을 포함하는 것을 특징으로 한 오픈소스 취약점 분석 대상 검색 및 수집을 위한 빅데이터 분석 기반 웹 크롤링 시스템.
  2. 청구항 1에 있어서, 생성된 취약 위험성 검색 데이터 셋이 운영체제명, 개발언어 및 오픈소스 소프트웨어의 소프트웨어명, 프로젝트명, 파일명, 파일 내 소스코드의 일부분, 파일 내 소스코드를 설명하는 주석 내용에 의해 취득될 수 있는 취약 키워드로 구성된 것을 특징으로 한 오픈소스 취약점 분석 대상 검색 및 수집을 위한 빅데이터 분석 기반 웹 크롤링 시스템.
  3. 오픈소스 소프트웨어의 취약점 분석을 위해 오픈소스 소프트웨어 입력단계(41);
    입력된 오픈소스 소프트웨어에 대한 취약점 분석단계(42);
    입력된 오픈소스 소프트웨어의 취약점 분석 결과가 생성되면 취약점 분석 결과 정보와, 취약점 정의명세 정보 매핑단계(43);
    매핑 정보를 그룹화단계(44);
    그룹화된 매핑 정보는 DB에 저장단계(45);
    일정 수의 오픈소스 소프트웨어의 취약점 분석이 수행되면 취약점 분석결과와 취약점 정의 명세 정보 매핑 정보가 그룹화된 정보를 로딩단계(51);
    외부 취약점 최신 동향 정보 수집단계(61);
    DB 저장단계(62)을 통해 취합된 외부 취약점 최신 동향 정보 로딩단계(52);
    취약 위험성 오픈 소스 수집을 시작하여 그룹화된 매핑 정보와 외부 취약점 최신 동향 정보를 빅데이터 분석단계(53);
    빅데이터 분석단계(53)의 분석을 하여 취약 위험성 검색 데이터 셋을 생성단계(54);
    취약 위험성 검색 데이터 셋이 생성되면 해당 데이터 셋에 있는 운영체제, 개발언어, 위험성 키워드가 포함된 취약 위험성 검색 질의어 생성단계(55);
    생성된 취약 위험성 검색 질의어를 기반으로 취약 위험성 오픈소스 수집단계(56)가 순차적으로 이루어지는 것을 특징으로 하는 오픈소스 취약점 분석 대상 검색 및 수집을 위한 빅데이터 분석 기반 웹 크롤링 방법.
KR1020170014199A 2016-07-05 2017-02-01 오픈소스 취약점 분석 대상 검색 및 수집을 위한 빅데이터 분석 기반 웹 크롤링 시스템 및 그 방법 KR101751388B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20160084777 2016-07-05
KR1020160084777 2016-07-05

Publications (1)

Publication Number Publication Date
KR101751388B1 true KR101751388B1 (ko) 2017-06-27

Family

ID=59514894

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170014199A KR101751388B1 (ko) 2016-07-05 2017-02-01 오픈소스 취약점 분석 대상 검색 및 수집을 위한 빅데이터 분석 기반 웹 크롤링 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR101751388B1 (ko)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101876685B1 (ko) * 2017-08-08 2018-07-10 엘에스웨어(주) Spdx 기술을 이용하여 소프트웨어의 취약점을 관리하기 위한 시스템 및 그 방법
KR101881271B1 (ko) * 2017-11-15 2018-07-25 한국인터넷진흥원 취약점 정보를 수집하는 장치 및 그 방법
KR101893090B1 (ko) * 2017-11-15 2018-08-29 한국인터넷진흥원 취약점 정보 관리 방법 및 그 장치
KR101935261B1 (ko) * 2018-06-27 2019-01-04 한화시스템 주식회사 위험 자산 알림 시스템 및 이의 동작 방법
KR101938563B1 (ko) * 2018-06-29 2019-01-15 한화시스템 주식회사 위험 자산 알림 시스템의 동작 방법
KR20190047941A (ko) * 2017-10-30 2019-05-09 한림대학교 산학협력단 텍스트 데이터 수집 및 분석의 통합을 위한 방법 및 장치
KR20190047940A (ko) * 2017-10-30 2019-05-09 한림대학교 산학협력단 텍스트 데이터의 연관 규칙 분석을 위한 텍스트 데이터 수집 및 분석 방법 및 장치
KR20190058141A (ko) * 2017-11-21 2019-05-29 주식회사 루테스 문서로부터 추출되는 데이터를 생성하는 방법 및 그 장치
CN111931183A (zh) * 2020-07-31 2020-11-13 中国工商银行股份有限公司 开源软件安全漏洞处理方法和装置
CN114020634A (zh) * 2021-11-11 2022-02-08 中国电子科技集团公司第十五研究所 一种软件产品自主可控度的测评方法及系统
CN114547619A (zh) * 2022-01-11 2022-05-27 扬州大学 一种基于树的漏洞修复系统及修复方法
KR20220163596A (ko) 2021-06-03 2022-12-12 (주)해나소프트 사용자 맞춤형에 따른 시나리오 플래닝에 기초한 웹 빅데이터 콜렉팅 시스템
WO2023224192A1 (ko) * 2022-05-16 2023-11-23 엘에스웨어(주) 소프트웨어 관리 시스템 및 그 방법
CN114020634B (zh) * 2021-11-11 2024-05-24 中国电子科技集团公司第十五研究所 一种软件产品自主可控度的测评方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007058514A (ja) 2005-08-24 2007-03-08 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007058514A (ja) 2005-08-24 2007-03-08 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101876685B1 (ko) * 2017-08-08 2018-07-10 엘에스웨어(주) Spdx 기술을 이용하여 소프트웨어의 취약점을 관리하기 위한 시스템 및 그 방법
KR102023491B1 (ko) * 2017-10-30 2019-11-04 한림대학교 산학협력단 텍스트 데이터의 연관 규칙 분석을 위한 텍스트 데이터 수집 및 분석 방법 및 장치
KR20190047941A (ko) * 2017-10-30 2019-05-09 한림대학교 산학협력단 텍스트 데이터 수집 및 분석의 통합을 위한 방법 및 장치
KR20190047940A (ko) * 2017-10-30 2019-05-09 한림대학교 산학협력단 텍스트 데이터의 연관 규칙 분석을 위한 텍스트 데이터 수집 및 분석 방법 및 장치
KR102023493B1 (ko) * 2017-10-30 2019-09-20 한림대학교 산학협력단 텍스트 데이터 수집 및 분석의 통합을 위한 방법 및 장치
KR101881271B1 (ko) * 2017-11-15 2018-07-25 한국인터넷진흥원 취약점 정보를 수집하는 장치 및 그 방법
KR101893090B1 (ko) * 2017-11-15 2018-08-29 한국인터넷진흥원 취약점 정보 관리 방법 및 그 장치
KR20190058141A (ko) * 2017-11-21 2019-05-29 주식회사 루테스 문서로부터 추출되는 데이터를 생성하는 방법 및 그 장치
KR102033416B1 (ko) * 2017-11-21 2019-10-17 주식회사 루테스 문서로부터 추출되는 데이터를 생성하는 방법 및 그 장치
KR101935261B1 (ko) * 2018-06-27 2019-01-04 한화시스템 주식회사 위험 자산 알림 시스템 및 이의 동작 방법
KR101938563B1 (ko) * 2018-06-29 2019-01-15 한화시스템 주식회사 위험 자산 알림 시스템의 동작 방법
CN111931183A (zh) * 2020-07-31 2020-11-13 中国工商银行股份有限公司 开源软件安全漏洞处理方法和装置
KR20220163596A (ko) 2021-06-03 2022-12-12 (주)해나소프트 사용자 맞춤형에 따른 시나리오 플래닝에 기초한 웹 빅데이터 콜렉팅 시스템
CN114020634A (zh) * 2021-11-11 2022-02-08 中国电子科技集团公司第十五研究所 一种软件产品自主可控度的测评方法及系统
CN114020634B (zh) * 2021-11-11 2024-05-24 中国电子科技集团公司第十五研究所 一种软件产品自主可控度的测评方法及系统
CN114547619A (zh) * 2022-01-11 2022-05-27 扬州大学 一种基于树的漏洞修复系统及修复方法
CN114547619B (zh) * 2022-01-11 2024-04-19 扬州大学 一种基于树的漏洞修复系统及修复方法
WO2023224192A1 (ko) * 2022-05-16 2023-11-23 엘에스웨어(주) 소프트웨어 관리 시스템 및 그 방법

Similar Documents

Publication Publication Date Title
KR101751388B1 (ko) 오픈소스 취약점 분석 대상 검색 및 수집을 위한 빅데이터 분석 기반 웹 크롤링 시스템 및 그 방법
US9600403B1 (en) Method and system for creating functional model of test cases
CN110688456A (zh) 一种基于知识图谱的漏洞知识库构建方法
Uddin et al. On the effectiveness of simhash for detecting near-miss clones in large scale software systems
Krutz et al. A dataset of open-source android applications
US9300682B2 (en) Composite analysis of executable content across enterprise network
CN112131882A (zh) 一种多源异构网络安全知识图谱构建方法及装置
US20140244679A1 (en) Method and system for matching unknown software component to known software component
US20150207811A1 (en) Vulnerability vector information analysis
EP3674918B1 (en) Column lineage and metadata propagation
Kim et al. Software systems at risk: An empirical study of cloned vulnerabilities in practice
CN110909363A (zh) 基于大数据的软件第三方组件漏洞应急响应系统及方法
CN112579476B (zh) 一种漏洞和软件对齐的方法、装置以及存储介质
CN114386032A (zh) 电力物联网设备的固件检测系统及方法
Azodi et al. A new approach to building a multi-tier direct access knowledgebase for IDS/SIEM systems
US11481493B2 (en) Systems and methods for generating an inventory of software applications for optimized analysis
KR101696694B1 (ko) 역추적을 이용한 소스 코드 취약점 분석 방법 및 장치
CN114969819A (zh) 数据资产风险发现方法和装置
KR20190138037A (ko) 사이버 보안 특화의 지식 베이스를 이용한 정보 검색 시스템 및 그 방법
Pham et al. Detecting recurring and similar software vulnerabilities
Wu et al. Ossfp: Precise and scalable c/c++ third-party library detection using fingerprinting functions
Zou et al. SCVD: A new semantics-based approach for cloned vulnerable code detection
CN116821903A (zh) 检测规则确定及恶意二进制文件检测方法、设备及介质
Shao et al. Combining lexical and structural information for static bug localisation
US8214336B2 (en) Preservation of digital content

Legal Events

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