KR102477150B1 - 취약성 특징 획득 방법, 장치 및 전자기기 - Google Patents

취약성 특징 획득 방법, 장치 및 전자기기 Download PDF

Info

Publication number
KR102477150B1
KR102477150B1 KR1020210041412A KR20210041412A KR102477150B1 KR 102477150 B1 KR102477150 B1 KR 102477150B1 KR 1020210041412 A KR1020210041412 A KR 1020210041412A KR 20210041412 A KR20210041412 A KR 20210041412A KR 102477150 B1 KR102477150 B1 KR 102477150B1
Authority
KR
South Korea
Prior art keywords
vulnerability
feature
code
file
characteristic
Prior art date
Application number
KR1020210041412A
Other languages
English (en)
Other versions
KR20210042285A (ko
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 아폴로 인텔리전트 커넥티비티 (베이징) 테크놀로지 씨오., 엘티디.
Publication of KR20210042285A publication Critical patent/KR20210042285A/ko
Application granted granted Critical
Publication of KR102477150B1 publication Critical patent/KR102477150B1/ko

Links

Images

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/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • 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
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

본 출원은 취약성 특징 획득 방법, 장치 및 전자기기에 관한 것으로서, 정보 안전 기술분야에 관한 것이다. 구체적인 기술방안에 따르면, 취약성의 취약성 패치 정보를 획득한 후, 취약성 패치 정보를 기초로 취약성의 타입을 확정하되, 타입은 코드 타입의 취약성과 비 코드 타입의 취약성을 포함하고, 취약성의 타입에 대응되는 취약성 분석 엔진을 기초로 취약성의 적어도 하나의 취약성 특징을 추출하고, 취약성의 적어도 하나의 취약성 특징을 전자기기로 발송한다. 취약성의 취약성 특징을 온라인으로 획득하고, 취약성 특징의 획득 효율을 향상시키고, 인공적으로 취약성 특징을 분석하여 획득할 필요가 없이, 시스템 취약성 라이브러리의 유지 코스트를 감소시킬 수 있다.

Description

취약성 특징 획득 방법, 장치 및 전자기기{METHOD AND APPARATUS FOR ACQUIRISING VULNERABILITY FEATURE, AND ELECTRONIC DEVICE}
본 출원은 컴퓨터 기술분야에 관한 것으로, 구체적으로는 정보 안전 기술분야에 관한 것이다.
정보 안전 분야에서, 취약성은 하나의 시스템에 존재하는 취약점 또는 결함, 시스템의 특정 위협 공격 또는 위험 이벤트에 대한 민감성, 또는 공격하는 위협 작용의 가능성을 가리킨다. 취약성은 애플리케이션 또는 운영체제 설계 시의 결함 또는 코딩 시의 에러에 의해 발송할 수 있으며, 서비스 인터랙션 처리 과정 중의 설계 결함 또는 논리 프로세스 상의 부적절한 점에 의해 발생할 수 있다. 이러한 결함, 에러 또는 부적절한 점은 고의적으로 또는 비고의적으로 이용되어, 하나의 조직의 자산 또는 운영에 불리한 영향을 미칠 수 있다. 예컨대, 정보 시스템이 공격당하거나 제어되고, 중요한 정보가 도난 당하거나, 사용자 데이터가 변조되며, 시스템이 기타 호스트 시스템에 침입하기 위한 발판이 된다. 취약성 특징은 취약성을 나타내는 정보로서, 하나의 취약성은 복수의 취약성 특징을 구비하는 바, Android 시스템의 경우, 이미 알려진 취약성의 취약성 특징을 어떻게 획득할지는, 시스템 안전 분석에 있어서 극히 중요하다.
종래기술에서, 시스템의 이미 알려진 취약성, 예를 들어 취약성 스캔을 통해 스캔해낸 취약성은, 인공적으로 각각의 취약성의 취약성 특징을 분석하고, 각각의 취약성 특징을 검출할 때, 취약성 특징을 기초로 대응되는 특징 검출 코드를 컴파일링하고, 특징 검출 코드를 테스트 대상 기계 상에서 실행시켜, 취약성 특징 존재 여부를 검출한다. 만약 시스템에 나타난 취약성에 업데이트가 존재하면, 또한 인공적으로 다시 취약성 특징을 분석하여 이후의 검출 과정을 수행하여야 하므로, 취약성 특징의 획득 효율이 낮다.
취약성 특징 획득 방법, 장치 및 전자기기를 제공하며, 취약성의 취약성 특징을 온라인으로 획득하고, 취약성 특징의 획득 효율을 향상시킬 수 있다.
제1 측면에 따르면, 취약성 특징 획득 방법을 제공하는 바,
취약성의 취약성 패치 정보를 획득한 후, 상기 취약성 패치 정보를 기초로 상기 취약성의 타입을 확정하되, 상기 타입은 코드 타입의 취약성과 비 코드 타입의 취약성을 포함하는 단계;
상기 취약성의 타입에 대응되는 취약성 분석 엔진을 기초로 상기 취약성의 적어도 하나의 취약성 특징을 추출하는 단계;
상기 취약성의 적어도 하나의 취약성 특징을 전자기기로 발송하는 단계를 포함한다.
본 출원의 기술에 따르면, 취약성의 취약성 패치 정보를 획득한 후, 취약성 패치 정보를 기초로 취약성이 코드 타입의 취약성 또는 비 코드 타입의 취약성인지를 확정한 후, 취약성의 타입에 대응되는 취약성 분석 엔진을 기초로 취약성의 적어도 하나의 취약성 특징을 추출하고, 마지막으로 취약성의 적어도 하나의 취약성 특징을 전자기기로 발송한다. 서로 다른 타입의 취약성은 서로 다른 타입의 취약성 분석 엔진에 대응되고, 취약성 분석 엔진은 서로 다른 타입의 취약성을 기초로 사전에 구축된 것이므로, 취약성의 취약성 특징을 온라인으로 획득하고, 취약성 특징의 획득 효율을 향상시킬 수 있으며, 인공적으로 취약성 특징을 분석하여 획득할 필요가 없이, 시스템 취약성 라이브러리의 유지 코스트를 감소시킨다.
제2 측면에 따르면, 취약성 특징 획득 장치를 제공하는 바,
취약성의 취약성 패치 정보를 획득하기 위한 획득모듈;
상기 취약성 패치 정보를 기초로 상기 취약성의 타입을 확정하되, 상기 타입은 코드 타입의 취약성과 비 코드 타입의 취약성을 포함하는 확정모듈;
상기 취약성의 타입에 대응되는 취약성 분석 엔진을 기초로 상기 취약성의 적어도 하나의 취약성 특징을 추출하는 추출모듈;
상기 취약성의 적어도 하나의 취약성 특징을 전자기기로 발송하는 발송모듈을 포함한다.
본 출원의 기술에 따르면, 획득모듈이 취약성의 취약성 패치 정보를 획득한 후, 취약성 패치 정보를 기초로 취약성이 코드 타입의 취약성 또는 비 코드 타입의 취약성인지를 확정하고, 이어서 추출모듈이 취약성의 타입에 대응되는 취약성 분석 엔진을 기초로 취약성의 적어도 하나의 취약성 특징을 추출하고, 마지막으로 발송모듈이 취약성의 적어도 하나의 취약성 특징을 전자기기로 발송한다. 서로 다른 타입의 취약성은 서로 다른 타입의 취약성 분석 엔진에 대응되고, 취약성 분석 엔진은 서로 다른 타입의 취약성을 기초로 사전에 구축된 것이므로, 취약성의 취약성 특징을 온라인으로 획득하고, 취약성 특징의 획득 효율을 향상시킬 수 있으며, 인공적으로 취약성 특징을 분석하여 획득할 필요가 없이, 시스템 취약성 라이브러리의 유지 코스트를 감소시킨다.
제3 측면에 따르면, 자기기를 제공하는 바,
적어도 하나의 프로세서; 및
상기 적어도 하나의 프로세서와 통신 연결되는 메모리;를 포함하되,
상기 메모리에 상기 적어도 하나의 프로세서에 의해 실행 가능한 명령이 저장되고, 상기 명령은 상기 적어도 하나의 프로세서에 의해 실행되어, 상기 적어도 하나의 프로세서가 제1 측면에 따른 방법을 수행할 수 있도록 한다.
제4 측면에 따르면, 컴퓨터 명령이 저장된 비일시적 컴퓨터 판독 가능 저장매체를 제공하는 바, 상기 컴퓨터 명령은 컴퓨터가 제1 측면에 따른 방법을 수행하도록 한다.
제5 측면에 따르면, 컴퓨터 판독 가능 저장매체에 저장된 컴퓨터 프로그램을 제공하며, 전자기기의 적어도 하나의 프로세서는 상기 판독 가능 저장매체로부터 상기 컴퓨터 프로그램을 판독할 수 있으며, 상기 적어도 하나의 프로세서는 상기 컴퓨터 프로그램을 수행하여 상기 전자기기가 제1측면에 따른 방법을 수행하도록 한다.
본 부분에 기재되는 내용은 본 출원의 실시예의 핵심 또는 중요 특징을 특정하려는 목적이 아니며, 본 출원의 범위를 한정하는 것도 아님을 이해하여야 한다. 본 출원의 기타 특징은 아래의 명세서로부터 쉽게 이해할 수 있다.
본 발명은 취약성의 취약성 특징을 온라인으로 획득하여 취약성 특징의 획득 효율을 향상시킬 수 있다.
첨부 도면은 본 방안을 충분히 이해하도록 제공되는 것으로서, 본 출원에 대한 한정은 아니다.
도1은 본 출원의 애플레케이션 시나리오를 나타내는 도면이다;
도2는 본 출원에 따른 취약성 특징 획득 방법 실시예 1의 흐름도이다.
도3은 본 출원에 따른 취약성 특징 획득 방법 실시예 2의 흐름도이다.
도4는 본 출원에 따른 취약성 특징 획득 방법 실시예 3의 흐름도이다.
도5는 본 출원에 따른 취약성 특징 획득 방법 실시예 4의 흐름도이다.
도6은 본 출원에 따른 취약성 특징 획득 장치의 구조도이다.
도7은 본 출원에 따른 취약성 특징 획득 장치의 구조도이다.
도8은 본 출원에 따른 취약성 특징 획득 장치의 구조도이다.
도9는 본 출원의 실시예의 취약성 특징 획득 방법을 구현하기 위한 전자기기의 블록도이다.
아래에서는 첨부 도면과 결합하여 본 출원의 예시적인 실시예에 대하여 설명하며, 이해를 돕기 위하여 본 출원의 실시예의 다양한 세부 사항을 포함하며, 이들을 단지 예시적인 것으로만 간주되어야 한다. 따라서, 본 분야의 통상적인 지식을 가진자라면, 여기에 설명된 실시예에 대하여 다양한 변경과 수정을 가할 수 있으며, 이는 본 출원의 범위와 정신을 벗어나지 않음을 이해하여야 한다. 마찬가지로, 명확성과 간결성을 위하여, 아래의 설명에서 공지 기능과 구조에 대한 설명을 생략한다.
본 출원의 실시예에서, "예시적으로" 또는 "예를 들어"등의 용어는 예를 들거나, 예를 들어 증명하거나 또는 설명하는 것으로 이해하여야 하며, 본 출원의 실시예에서 "예시적으로" 또는 "예를 들어"라고 기재된 모든 실시예 또는 방안은 기타 실시예 또는 방안에 비해 더 바람직하거나 더 우수한 이점을 구비한다고 이해하여서는 않된다. 더 명확히 설명하면, "예시적으로" 또는 "예를 들어" 등의 용어는 구체적인 방식으로 관련 개념을 나타내기 위한 것이다.
종래기술에서 취약성 특징을 획득하는 방식은 인공적으로 취약성의 취약성 특징을 분석하고, 만약 시스템에 나타난 취약성이 업데이트되면, 다시 인공적으로 취약성 특징을 분석하여야 하므로, 취약성 특징의 획득 효율이 낮고, 취약성 라이브러리의 유지 코스트가 보다 높다. 이러한 문제점을 해결하기 위하여, 본 출원은 취약성 특징 획득 방법, 장치 및 전자기기를 제공하며, 사전에 서로 다른 타입의 취약성을 기초로 서로 다른 취약성 분석 엔진을 구축하고, 서로 다른 타입의 취약성에 대해 서로 다른 취약성 분석 엔진을 사용하여 취약성 특징을 분석 추출하여, 취약성의 취약성 패치 정보를 획득한 후, 취약성 패치 정보를 기초로 상기 취약성의 타입을 확정하고, 상기 취약성의 타입에 대응되는 취약성 분석 엔진을 기초로 상기 취약성의 적어도 하나의 취약성 특징을 추출하고, 상기 취약성의 적어도 하나의 취약성 특징을 전자기기로 발송하여, 전자기기의 취약성 검출에 사용된다. 따라서, 취약성의 취약성 특징을 온라인으로 획득하고, 취약성 특징의 획득 효율을 향상시키고, 시스템 취약성 라이브러리의 유지 코스트를 감소시킬 수 있다. 이하, 첨부된 도면을 결합하여 구체적인 실시예를 통해, 본 출원의 실시예의 취약성 특징 획득 방법의 구체적인 구현 과정에 대해 상세하게 설명한다.
우선, 이하 본 출원의 실시예의 부분 용어에 대해 해석 설명하여, 본 분야의 기술자가 쉽게 이해할 수 있도록 한다.
1. 취약성 특징은 취약성을 나타내기 위한 정보로서, 취약성이 코드 타입의 취약성일 때, 취약성 특징은 취약성의 소스 코드와 취약성의 복구 코드 사이의 차이 정보이고, 취약성이 비 코드 타입의 취약성일 때, 취약성 특징은 취약성의 소스 파일과 취약성의 복구 파일의 변화 정보이다.
2. 운영 엔티티는 코드 파일이 안드로이드 시스템에서 실행될 때 대응되는 애플리케이션(APP) 또는 시스템 소프트웨어로서, 애플리케이션은 각종 유형의 애플리케이션, 예컨대 소셜 애플리케이션, 쇼핑 애플리케이션 등이다.
3. 테스트 대상 드론 클러스터는 복수의 테스트 대상 드론으로서, 서로 다른 안드로이드 시스템 버전, 서로 다른 프로세서 아키텍쳐 플랫폼과 서로 다른 안전패치 버전을 기초로 구축된 취약성 특징을 테스트하기 위한 테스터이고, 각각의 테스트 대상 드론은 하나의 안드로이드 시스템 버전, 하나의 프로세서 아키텍쳐 플랫폼과 하나의 안전 패치 버전에 대응된다.
도1은 본 출원의 애플레케이션 시나리오를 나타내는 도면이다. 도1에 도시된 바와 같이, 본 출원에 따른 취약성 특징 획득 장치는 이미 알려진 취약성의 취약성 특징 또는 이미 알려진 취약성의 취약성 특징과 취약성 특징 각각에 대응되는 운영 엔티티를 획득하기 위한 것이고, 운영 엔티티는 애플리케이션(APP) 또는 시스템 소프트웨어일 수 있고, 여기서 애플리케이션은 예를 들어 소셜 애플리케이션, 쇼핑 애플리케이션 등이다. 이미 알려진 취약성은 예를 들어 취약성 스캐닝 소프트웨어를 통해 스캐닝된 안드로이드 시스템의 취약성, 또는 안드로이드 공식 사이트에 공지된 공고 중 취약성이다. 취약성 특징 획득 장치가 획득한 취약성의 취약성 특징 또는 취약성 특징과 대응되는 운영 엔티티는 취약성 검출에 사용될 수 있고, 전체적으로 취약성 특징 구동 모드로 구현되는 바, Java 반사 매커니즘, 디컴파일링(oatdump) 등을 포함할 수 있다. 구체적으로 기존의 검출 방법을 사용할 수 있고, 예를 들어 각각의 취약성 특징을 검출할 때, 취약성 특징을 기초로 대응되는 특징 검출 코드를 컴파일링하고, 특징 검출 코드를 측정 대상 전자기기 상의 대응되는 운영 엔티티 상에서 실행하고(만약 운영 엔티티가 없으면, 전자기기 상의 각각의 운영 엔티티 상에서 순차적으로 실행하고), 취약성 특징 존재 여부를 검출하여, 취약성을 검출하는 목적을 달성한다. 여기서 검출 대상 전자기기는 안드로이드(Android) 소프트웨어 시스템을 사용하는 전자기기, 예컨대 휴대폰, 휴대용 컴퓨터 또는 차량용 기기 등일 수 있다. 본 출원에 따른 취약성 특징 획득 장치는 온라인으로 안드로이드 시스템의 이미 알려진 취약성의 취약성 특징을 획득할 수 있고, 만약 안드로이드 시스템에 나타난 취약성이 업데이트되면, 실시간으로 업데이트의 취약성의 취약성 특징을 획득하여, 취약성 특징의 획득 효율을 향상시키고, 시스템 취약성 라이브러리의 유지 코스트를 감소시킬 수 있다. 아래에서는 첨부된 도면을 결합하여 취약성 특징 획득 과정에 대해 상세하게 설명한다.
도2는 본 출원에 따른 취약성 특징 획득 방법 실시예 1의 흐름도이다. 본 실시예 중 수행 주체는 도1에 도시된 취약성 특징 획득 장치일 수 있고, 해당 취약성 특징 획득 장치는 하드웨어 장치 또는 소프트웨어 모듈일 수 있으며, 도2에 도시된 바와 같이, 본 실시예의 방법은 아래의 단계들을 포함할 수 있다.
S101, 취약성의 취약성 패치 정보를 획득한 후, 취약성 패치 정보를 기초로 취약성의 타입을 확정하되, 타입은 코드 타입의 취약성과 비 코드 타입의 취약성을 포함한다.
여기서, 취약성의 취약성 패치 정보를 획득하는 것은, 안드로이드 공식 사이트 안전 공고 정보로부터 획득할 수 있고, 구체적으로, 안드로이드 공식 사이트 안전 공고 정보는 취약성 예컨대 일반적인 취약성 및 노출(Common Vulnerabilities and Exposures, CVE)의 식별자, 참조번호, 타입, 심각한 정도 및 업데이트된 Android 오픈 소스 코드 프로젝트(Android Open-Source Project, AOSP) 버전 등의 정보를 포함할 수 있고, 예컨대 아래 표1은 안전 공고 정보의 내용의 예시이다. 여기서, 참조번호는 취약성 패치 정보의 링크를 휴대하고, 타입은 원격 명령/코드 실행 취약성(remote command/code execute, RCE)이고, 심각한 정도는 고, 중 저를 포함한다.
CVE 참조번호 타입 심각한
정도
업데이트된
AOSP 버전
CVE-2019-1986 A-1178 RCE 9
CVE-2019-1987 A-1181 RCE 7.0, 7.1.1
CVE-2019-1988 A-1837 RCE 8.0, 8.1, 9
취약성의 취약성 패치 정보를 획득하는 것에 대하여, 우선 취약성의 식별자를 기초로 대응되는 참조번호를 확정하고, 참조번호를 기초로 대응되는 취약성 패치 정보를 획득한다. 취약성의 취약성 패치 정보를 획득한 후, 취약성의 타입이 코드 타입의 취약성 또는 비 코드 타입의 취약성인지를 확정할 수 있다. 만약 취약성의 취약성 패치 정보가 취약성의 소스 코드와 취약성의 복구 코드를 포함하면, 취약성의 타입이 코드 타입의 취약성인 것으로 확정할 수 있고; 만약 취약성의 취약성 패치 정보가 취약성의 소스 파일과 취약성의 복구 파일을 포함하면, 취약성의 타입이 비 코드 타입이 취약성인 것으로 확정할 수 있다.
특별히 설명하면, 만약 안전 공고 정보가 복수의 취약성을 포함하면, 한번에 복수의 취약성의 취약성 패치 정보를 획득할 수 있고, 각각의 취약성에 대하여, 각각의 취약성의 취약성 특징을 각각 획득한다. 만약 일정한 시간 내에, 안전 공고 정보에 하나의 취약성이 업데이트되면, 한번에 해당 하나의 취약성의 취약성 패치 정보를 획득하고, 나아가 그 뒤의 프로세스를 수행하여 해당 하나의 취약성의 취약성 특징을 획득한다.
선택적으로, 기설정 시간에 따라 주기적으로 안전 공고 정보 중 취약성의 취약성 패치 정보를 획득할 수 있고, 해당 기설정 시간은 반달, 1개월, 3개월 또는 6개월 등일 수 있다. 만약 업데이트된 취약성이 존재하면, 실시간으로 안전 공고 정보를 추종하여 업데이트된 취약성의 취약성 패치 정보를 획득한 후, 그 뒤의 프로세스를 수행하여 업데이트된 취약성의 취약성 특징을 획득할 수 있다.
S102, 취약성의 타입에 대응되는 취약성 분석 엔진을 기초로 취약성의 적어도 하나의 취약성 특징을 추출한다.
구체적으로, 서로 다른 타입의 취약성은 서로 다른 타입의 취약성 분석 엔진에 대응되고, 코드 타입의 취약성에 대응되는 것은 코드 분석 엔진으로서, 서로 다른 언어의 코드는 서로 다른 코드 분석 엔진, 예를 들어 C/C++코드 분석 엔진, Java 코드 분석 엔진과 커널 코드 분석 엔진 등에 대응된다. 비 코드 타입의 취약성에 대응되는 것은 파일 분석 엔진으로서, 예를 들어 구성 파일 분석 엔진 등이다.
구체적으로, 만약 취약성의 타입에 대응되는 취약성 분석 엔진이 C/C++ 코드 분석 엔진이면, C/C++ 코드 분석 엔진을 통해 취약성의 취약성 패치 정보에 대해 분석하여, 취약성의 특징을 추출하고; 만약 취약성의 타입에 대응되는 취약성 분석 엔진이 Java 코드 분석 엔진이면, Java 코드 분석 엔진을 통해 취약성의 취약성 패치 정보에 대해 분석하여, 취약성의 특징을 추출하고; 만약 취약성의 타입에 대응되는 취약성 분석 엔진이 커널 코드 분석 엔진이면, 커널 코드 분석 엔진을 통해 취약성의 취약성 패치 정보에 대해 분석하여, 취약성 특징을 추출하고; 만약 취약성의 타입에 대응되는 취약성 분석 엔진이 구성 파일 분석 엔진이면, 구성 파일 분석 엔진을 통해 취약성의 취약성 패치 정보에 대해 분석하여, 취약성의 특징을 추출한다. 서로 다른 취약성 분석 엔진이 취약성의 취약성 특징을 분석 및 추출하는 과정은 다르다.
하나의 취약성은 적어도 하나의 취약성 특징을 가지며, 만약 복수의 취약성이 존재하면, 복수의 취약성의 취약성 특징은 하나의 취약성 특징 집합을 이룬다.
여기서, 코드 타입의 취약성에 대하여, 취약성 특징은 예를 들어 함수 부호, 클래스 또는 클래스 표시 멤버 정의의 증감일 수 있고, 코드 파일 중 유일성을 구비하는 문자열의 증감일 수도 있으며, 코드 실행 흐름의 변경(예를 들어 라이브러리 함수XX로의 점프 추가) 등일 수도 있다. 비 코드 타입의 취약성에 대하여, 취약성 특징은 예를 들어 문자열 특징의 증가, 문자열 특징의 삭제, 문자열 특징의 수정, 파일의 증가와 파일의 삭제 중 임의의 하나일 수 있고, 여기서 파일의 증가 또는 삭제는 라이브러리의 증가 또는 삭제일 수 있다.
S103, 취약성의 적어도 하나의 취약성 특징을 전자기기로 발송한다.
구체적으로, 전자기기가 취약성을 검출하도록, 취약성의 적어도 하나의 취약성 특징을 전자기기로 발송한다.
본 실시예에 따른 취약성 특징 획득 방법은, 취약성의 취약성 패치 정보를 획득한 후, 취약성 패치 정보를 기초로 취약성이 코드 타입의 취약성 또는 비 코드 타입의 취약성인지를 확정한 후, 취약성의 타입에 대응되는 취약성 분석 엔진을 기초로 취약성의 적어도 하나의 취약성 특징을 추출하고, 마지막으로 취약성의 적어도 하나의 취약성 특징을 전자기기로 발송한다. 서로 다른 타입의 취약성은 서로 다른 타입의 취약성 분석 엔진에 대응되고, 취약성 분석 엔진은 서로 다른 타입의 취약성을 기초로 사전에 구축된 것이므로, 취약성의 취약성 특징을 온라인으로 획득하고, 취약성 특징의 획득 효율을 향상시키고, 인공적으로 취약성 특징을 분석하여 획득할 필요가 없이, 시스템 취약성 라이브러리의 유지 코스트를 감소시킬 수 있다.
도3은 본 출원에 따른 취약성 특징 획득 방법 실시예 2의 흐름도이다. 본 실시예 중 수행 주체는 도1에 도시된 취약성 특징 획득 장치일 수 있고, 도3에 도시에 도시된 바와 같이, 본 실시예의 방법은 도2에 도시된 방법의 기초 상에서, 추가적으로, S103 이전에 아래의 단계를 더 포함할 수 있다.
S104, 취약성의 적어도 하나의 취약성 특징 중 각각의 취약성 특징에 대하여, 취약성 특징의 소스 코드 또는 소스 파일이 위치하는 코드 파일을 기초로 취약성 특징의 운영 엔티티를 확정하여, 취약성의 취약성 특징과 운영 엔티티를 획득한다.
구체적으로, 운영 엔티티는 코드 파일이 안드로이드 시스템에서 실행될 때 대응되는 애플리케이션(APP) 또는 시스템 소프트웨어이고, 만약 전자기기로 발송된 것이 취약성 특징 뿐이면, 검출 시 운영 엔티티를 시도하여야 하며, 검출이 보다 느리고, S102을 거쳐 취약성의 취약성 특징을 획득하고, 각각의 취약성 특징의 운영 엔티티를 확정하여, 이후의 취약성 검출에 사용하여야 하며, 각각의 취약성은 그 대응되는 운영 엔티티를 확정하고, 이에 따라 취약성 검출 효율을 향상시킬 수 있다. 취약성의 취약성 패치 정보를 기초로 취약성의 소스 코드 또는 소스 파일을 획득할 수 있고, 소스 코드는 코드 타입의 취약성에 대응되고, 소스 파일은 비 코드 타입의 취약성에 대응된다. 특별히 설명하면, 하나의 취약성의 취약성 특징이 복수개 존재하면, 복수의 취약성 특징의 운영 엔티티는 동일할 수 있고, 서로 다를 수도 있다.
대응되게, S103은 구체적으로, 상기 취약성의 적어도 하나의 취약성 특징과 대응되는 운영 엔티티를 전자기기로 발송하는 단계(S103')일 수 있다.
본 실시예에 따른 취약성 특징 획득 방법은, 취약성의 취약성 패치 정보를 획득한 후, 취약성 패치 정보를 기초로 취약성이 코드 타입의 취약성 또는 비 코드 타입의 취약성인지를 확정하고, 나아가 취약성의 타입에 대응되는 취약성 분석 엔진을 기초로 취약성의 적어도 하나의 취약성 특징을 추출하고, 이어서 추출한 각각의 취약성 특징은, 취약성 특징의 소스 코드 또는 소스 파일이 위치하는 코드 파일을 기초로 취약성 특징의 운영 엔티티를 확정하고, 마지막으로 취약성의 적어도 하나의 취약성 특징에 대응되는 운영 엔티티를 전자기기로 발송한다. 서로 다른 타입의 취약성은 서로 다른 타입의 취약성 분석 엔진에 대응되고, 취약성 분석 엔진은 서로 다른 타입의 취약성을 기초로 사전에 구축된 것이므로, 취약성의 취약성 특징과 대응되는 운영 엔티티룰 온라인으로 획득함으로써, 취약성 특징의 획득 효율을 향상시키고, 인공적으로 취약성 특징을 분석하여 획득할 필요가 없기에, 시스템 취약성 라이브러리의 유지 코스트를 감소시시킬 수 있다.
도4는 본 출원에 따른 취약성 특징 획득 방법 실시예 3의 흐름도이다. 본 실시예 중 수행 주체는 도1에 도시된 취약성 특징 획득 장치일 수 있고, 도4에 도시된 바와 같이, 본 실시예의 방법은 아래의 단계들을 포함할 수 있다.
S201, 취약성의 취약성 패치 정보를 획득한 후, 취약성 패치 정보를 기초로 취약성의 타입을 확정하되, 타입은 코드 타입의 취약성과 비 코드 타입의 취약성을 포함한다.
여기서, 취약성의 취약성 패치 정보를 획득하는 것은, 안드로이드 공식 사이트 안전 공고 정보로부터 획득한 것일 수 있고, 구체적인 획득 과정은 S101에 대한 기재를 참조할 수 있으며, 여기서는 중복되는 설명을 생략한다. 만약 취약성의 취약성 패치 정보가 취약성의 소스 코드와 취약성의 복구 코드를 포함하면, 취약성의 타입이 코드 타입의 취약성인 것으로 확정할 수 있고, S202를 수행하고; 만약 취약성의 취약성 패치 정보가 취약성의 소스 파일과 취약성의 복구 파일을 포함하면, 취약성의 타입이 비 코드 타입의 취약성인 것으로 확정할 수 있고, S203을 수행한다.
S202, 코드 타입의 취약성에 대응되는 취약성 분석 엔진을 기초로 취약성의 적어도 하나의 취약성 특징을 추출한다.
여기서, 코드 타입의 취약성에 대응되는 것은 코드 분석 엔진이고, 서로 다른 언어의 코드는 서로 다른 코드 분석 엔진, 예를 들어C/C++ 코드 분석 엔진, Java 코드 분석 엔진과 커널 코드 분석 엔진 등에 대응된다.
일 가능한 실시형태에서, S202는 코드 타입의 취약성에 대응되는 취약성 분석 엔진을 통해 아래와 같은 조작을 수행하는 것일 수 있다.
S2021, 취약성의 소스 코드와 취약성의 복구 코드에 대해 대응되는 코딩 언어의 구문 분석을 수행하고, 구문 분석 결과를 기초로 취약성의 소스 코드와 취약성의 복구 코드의 적어도 하나의 차이 정보를 확정하되, 차이 정보는 예를 들어 함수 부호, 클래스 또는 클래스 표시 멤버 정의의 증감일 수 있고, 코드 파일 중 유일성을 구비하는 문자열의 증감일 수도 있고, 코드 실행 흐름의 변경(예를 들어 라이브러리 함수XX로의 점프 추가) 등일 수도 있다.
S2022, 적어도 하나의 차이 정보를 기초로 취약성의 취약성 특징을 확정하고, 하나의 차이 정보는 하나의 취약성 특징에 대응되고, 즉 차이 정보를 확정한 후, 하나의 차이 정보를 하나의 취약성 특징으로 확정한다.
후술하는 일 취약성의 취약성 패치 정보를 예로 든다.
---a/src/android、SkAandroidFrameworkUtils.cpp
+++b src/android、SkAandroidFrameworkUtils.cpp
@@-17,7+17,9@@
#include"effects/GrDisableColorXP.h"
#endif//SK_SUPPORT_GPU
-#ifdef SK_BUILD_FOR_ANDROID
+#ifdef SK_BUILD_FOR_ANDROID_FRAMWORK
+
+# include<log/log.h>
#if SK_ SUPPORT_GPU
Bool SkAndroidFrameworkUtils::clipWithStencil(skcanvas*canvas){
@@-52,5 +54,9@@
# end if//SK_SUPPORT_GPU
- end if// SK_BUILD_FOR_ANDROID
+void SKAndroidFrameworkUtils::safet8Netlog(const char*bugNumber)
+ android_errorwritelog(0x534e4554,bugNumber);
+}
+
+#end if// SK_BUILD_FOR_ANDROID_FRAMWORK
상술한 취약성의 취약성 패치 정보에서, 코드 앞에 "-"가 있는 코드는 취약성의 소스 코드이고, 코드 앞에 "+"가 있는 코드는 취약성의 복구 코드이며, 그 중 일부분 "
- end if// SK_BUILD_FOR_ANDROID
+void SKAndroidFrameworkUtils::safet8Netlog(const char*bugNumber)
+ android_errorwritelog(0x534e4554,bugNumber);"
"
을 기초로, 대응되는 클래스 구현에 방법 "void SKAndroidFrameworkUtils::safet8Netlog(const char*bugNumber)"이 증가되었음을 분석해 낼 수 있으며, 해당 방법 "void SKAndroidFrameworkUtils::safet8Netlog(const char*bugNumber)"은 바로 하나의 취약성 특징이다.
본 실시형태에서 코드 타입의 취약성에 대응되는 취약성 분석 엔진을 통해 취약성의 소스 코드와 취약성의 복구 코드에 대해 대응되는 코딩 언어의 구문 분석을 수행하고, 구문 분석 결과를 기초로 취약성의 소스 코드와 취약성의 복구 코드의 적어도 하나의 차이 정보를 확정하고, 하나의 차이 정보를 하나의 취약성 특징으로 확정하여, 온라인으로 코드 타입의 취약성의 취약성 특징을 획득하는 것을 구현할 수 있으며, 취약성 특징의 획득 효율을 향상시킨다.
S203, 비 코드 타입의 취약성에 대응되는 취약성 분석 엔진을 기초로 취약성의 적어도 하나의 취약성 특징을 추출한다.
비 코드 타입의 취약성에 대응되는 것은 파일 분석 엔진, 예컨대 구성 파일 분석 엔진 등이다. 일 가능한 실시형태에서, S203은 비 코드 타입의 취약성에 대응되는 취약성 분석 엔진을 통해 아래와 같은 조작을 수행하는 것일 수 있다.
S2031, 취약성의 소스 파일과 취약성의 복구 파일의 적어도 하나의 변화 정보를 확정하고, 변화 정보는 문자열 특징의 증가, 문자열 특징의 삭제, 문자열 특징의 수정, 파일의 증가와 파일의 삭제 중 임의의 하나를 포함하고, 여기서 파일의 증가 또는 삭제는 라이브러리의 증가 또는 삭제일 수 있다.
S2032, 취약성의 소스 파일이 위치하는 코드 파일을 확정하고, 취약성의 소스 파일이 위치하는 코드 파일에서 적어도 하나의 변화 정보 중 각각의 변화 정보가 유일성을 구비하는지 여부를 검색한다.
S2033, 유일성을 구비하는 변화 정보를 취약성의 취약성 특징으로 확정한다.
본 실시형태에서 비 코드 타입의 취약성에 대응되는 취약성 분석 엔진을 통해 취약성의 소스 파일과 취약성의 복구 파일 사이의 변화 정보를 확정하고, 취약성의 소스 파일이 위치하는 코드 파일에서 각각의 변화 정보가 유일성을 구비하는지 여부를 확정하고, 유일성을 구비하는 변화 정보를 취약성의 취약성 특징으로 확정한다. 이에 따라 온라인으로 비 코드 타입의 취약성의 취약성 특징을 획득하는 목적을 달성할 수 있으며, 취약성 특징의 획득 효율을 향상시킨다.
S204, 상기 취약성의 적어도 하나의 취약성 특징 중 각각의 취약성 특징에 대하여, 취약성 특징의 소스 코드 또는 소스 파일이 위치하는 코드 파일을 기초로 취약성 특징의 운영 엔티티를 확정하여, 취약성의 취약성 특징과 운영 엔티티를 획득한다.
여기서, 일 가능한 실시형태에서, 취약성 특징의 소스 코드 또는 소스 파일이 위치하는 코드 파일을 기초로 취약성 특징의 운영 엔티티를 확정하는 것은 구체적으로:
S2041, 취약성 특징의 소스 코드 또는 소스 파일이 위치하는 코드 파일을 확정한다.
S2042, 코드 파일의 컴파일링 구성 파일로부터 코드 파일의 운영 엔티티를 검색하고, 코드 파일의 운영 엔티티를 기초로 취약성 특징의 운영 엔티티를 확정한다.
여기서, 각각의 버전의 시스템은 하나의 컴파일링 구성 파일에 대응되고, 컴파일링 구성 파일은 코드 파일과 대응되는 운영 엔티티의 매핑 관계를 저장하므로, 코드 파일의 컴파일링 구성 파일로부터 코드 파일의 운영 엔티티를 검색하고, 코드 파일의 운영 엔티티를 기초로 취약성 특징의 운영 엔티티를 확정할 수 있다. 취약성 특징의 운영 엔티티를 확정하여, 이후의 취약성 검출을 용이하게 한다. 구체적으로, 각각의 취약성 특징을 검출할 때, 취약성 특징을 기초로 대응되는 특징 검출 코드를 컴파일링하고, 특징 검출 코드를 검출 대상 전자기기 상의 대응되는 운영 엔티티 상에서 실행하여, 취약성 특징의 존재 여부를 검출함으로써, 취약성을 검출하는 목적을 달성하고, 검출 효율을 향상시킬 수 있다.
도2 내지 도4 중 어느 하나에 도시된 실시예의 기초 상에서, 추가적으로, 획득한 취약성 특징에 대해 검증하여, 취약성 특징 획득 정확성을 향상시킬 수 있다. 도5에 도시된 방법을 예로 들면, 도5는 본 출원에 따른 취약성 특징 획득 방법 실시예 4의 흐름도이다. 도5에 도시된 바와 같이, 본 실시예의 방법은 S204 이후에, 아래의 단계를 더 포함할 수 있다.
S205, 취약성의 적어도 하나의 취약성 특징을 사전에 구축된 테스트 대상 드론 클러스터에 통과시켜 테스트 검증을 수행하여, 검증에 통과한 취약성 특징을 획득하되, 테스트 대상 드론 클러스터는 취약성이 복구된 테스트 대상 드론과 취약성이 복구되지 않은 테스트 대상 드론을 포함한다.
여기서, 테스트 대상 드론 클러스터는 서로 다른 안드로이드 시스템 버전, 서로 다른 프로세서 아키텍쳐 플랫폼과 서로 다른 안전패치 버전을 기초로 구축된 복수의 테스트 대상 드론이고, 테스트 대상 드론 클러스터는 취약성이 복구된 테스트 대상 드론과 취약성이 복구되지 않은 테스트 대상 드론을 포함하고, 취약성이 복구된 테스트 대상 드론은 취약성 특징을 검출해내지 못하고, 취약성이 복구되지 않은 테스트 대상 드론은 취약성 특징을 검출해낼 수 있다. 이렇게 하여야만, 획득한 취약성 특징의 정확성을 확보할 수 있고, 테스트 대상 드론은 가상기(예컨대 Gen8motion 가상기)와 실제기로 공통 구성될 수 있고, 여기서 Gen8motion 가상기는 안드로이드시뮬레이터로서, Android 시뮬레이션 환경을 제공한다. 테스트 대상 드론 클러스터는 서로 다른 안드로이드 시스템 버전, 서로 다른 프로세서 아키텍쳐 플랫폼과 서로 다른 안전패치 버전을 기초로 구축되고, 각각의 테스트 대상 드론은 하나의 안드로이드 시스템 버전, 하나의 프로세서 아키텍쳐 플랫폼과 하나의 안전 패치 버전에 대응되므로, 이에 따라 검증의 전면성과 정확성을 확보할 수 있다.
S206, 검증에 통과한 취약성 특징을 취약성의 취약성 특징으로 확정한다.
획득한 취약성 특징을 사전에 구축된 테스트 대상 드론 클러스터에서 테스트 검증하고, 검증에 통과한 취약성 특징과 운영 엔티티는 최종적인 취약성의 취약성 특징으로서, 취약성 획득 정확성을 향상시키고, 취약성 특징의 오경보 확률을 향상시킬 수 있다.
선택적으로, S205에서 검증에 통과하지 못한 취약성 특징이 획득될 때, 본 실시예의 방법은, 검증에 통과하지 못한 취약성 특징을 디스플레이하는 단계(S207)를 더 포함할 수 있다.
검증에 통과하지 못한 취약성 특징에 대하여, 사용자에게 디스플레이하고, 사용자(즉 개발자)는 검증에 통과하지 못한 취약성 특징의 발생 원인을 분석하고, 검증에 통과하지 못한 취약성 특징의 발생 원인은 운영 엔티티가 발견되지 않은 것, 취약성 특징이 대응되는 운영 엔티티로부터 발견되지 않은 것, 취약성 특징이 대응되는 운영 엔티티의 대조 버전에서 차이가 나타나지 않은 것 및 실행 권한 결여 중 임의의 하나를 포함할 수 있다. 사용자는 원인을 분석한 후, 검증에 통과하지 못한 취약성 특징의 발생 원인을 입력할 수 있다. 추가적으로, 본 실시예의 방법은 아래의 단계를 더 포함할 수 있다.
S208, 사용자가 입력한 검증에 통과하지 못한 취약성 특징의 발생 원인을 수신하고, 검증에 통과하지 못한 취약성 특징의 발생 원인을 기초로 취약성 분석 엔진을 증가하거나 또는 취약성 분석 엔진을 수정한다. 정확한 취약성 특징을 획득하도록 보조할 수 있으며, 추가적으로 취약성 획득 정확성을 향상시키고, 취약성 특징의 오경보 확률을 낮춘다.
본 실시예에 따른 취약성 특징 획득 방법은, 획득한 취약성 특징을 사전에 구축된 테스트 대상 드론 클러스터에서 테스트 검증하여, 검증에 통과한 취약성 특징과 운영 엔티티는 최종적인 취약성의 취약성 특징과 운영 엔티티이고, 검증에 통과하지 못한 취약성 특징에 대하여, 사용자가 입력한 검증에 통과하지 못한 취약성 특징의 발생 원인을 기초로 취약성 분석 엔진을 증가하거나 또는 취약성 분석 엔진을 수정하여, 정확한 취약성 특징을 획득하도록 보조할 수 있으며, 추가적으로 취약성 획득 정확성을 향상시키고, 취약성 특징의 오경보 확률을 낮춘다.
도6은 본 출원에 따른 취약성 특징 획득 장치의 구조도이다. 도6에 도시된 바와 같이, 본 실시예의 취약성 특징 획득 장치(100)는 획득모듈(11), 확정모듈(12), 추출모듈(13)과 발송모듈(14)을 포함할 수 있고, 여기서, 획득모듈(11)은 취약성의 취약성 패치 정보를 획득하기 위한 것이고, 확정모듈(12)은 취약성 패치 정보를 기초로 취약성의 타입을 확정하기 위한 것이고, 타입은 코드 타입의 취약성과 비 코드 타입의 취약성을 포함하고, 추출모듈(13)은 취약성의 타입에 대응되는 취약성 분석 엔진을 기초로 취약성의 적어도 하나의 취약성 특징을 추출하기 위한 것이고, 발송모듈(14)은 상기 취약성의 적어도 하나의 취약성 특징을 전자기기로 발송하기 위한 것이다.
추가적으로, 확정모듈(12)은 또한 상기 취약성의 적어도 하나의 취약성 특징 중 각각의 취약성 특징에 대하여, 취약성 특징의 소스 코드 또는 소스 파일이 위치하는 코드 파일을 기초로 취약성 특징의 운영 엔티티를 확정하기 위한 것이다.
대응되게, 발송모듈은 상기 취약성의 적어도 하나의 취약성 특징에 대응되는 운영 엔티티를 전자기기로 발송하기 위한 것이다.
선택적으로, 취약성의 취약성 패치 정보는 취약성의 소스 코드와 취약성의 복구 코드를 포함하고, 추출모듈(12)은 취약성의 타입에 대응되는 취약성 분석 엔진을 통해,
취약성의 소스 코드와 취약성의 복구 코드에 대해 대응되는 코딩 언어의 구문 분석을 수행하고;
구문 분석 결과를 기초로 취약성의 소스 코드와 취약성의 복구 코드의 적어도 하나의 차이 정보를 확정하고, 적어도 하나의 차이 정보를 기초로 취약성의 취약성 특징을 확정하고, 하나의 차이 정보는 하나의 취약성 특징에 대응되는; 조작을 수행하기 위한 것이다.
선택적으로, 취약성의 취약성 패치 정보는 취약성의 소스 파일과 취약성의 복구 파일을 포함하고, 추출모듈(12)은,
취약성의 타입에 대응되는 취약성 분석 엔진을 통해,
취약성의 소스 파일과 취약성의 복구 파의 적어도 하나의 변화 정보를 확정하고, 변화 정보는 문자열 특징의 증가, 문자열 특징의 삭제, 문자열 특징의 수정, 파일의 증가와 파일의 삭제 중 임의의 하나를 포함하고;
취약성의 소스 파일이 위치하는 코드 파일을 확정하고, 취약성의 소스 파일이 위치하는 코드 파일에서 적어도 하나의 변화 정보 중 각각의 변화 정보가 유일성을 구비하는지 여부를 확정하고;
유일성을 구비하는 변화 정보를 취약성의 취약성 특징으로 확정하는; 조작을 수행하기 위한 것이다.
추가적으로, 확정모듈(12)은 구체적으로,
취약성 특징의 소스 코드 또는 소스 파일이 위치하는 코드 파일을 확정하고;
코드 파일의 컴파일링 구성 파일로부터 코드 파일의 운영 엔티티를 검색하고, 코드 파일의 운영 엔티티를 기초로 취약성 특징의 운영 엔티티를 확정하기 위한 것이다.
본 실시예의 장치는 도2 또는 도3 또는 도4에 도시된 방법 실시예의 기술방안을 수행할 수 있으며, 그 구현원리와 기술효과가 유사하므로, 여기서는 중복되는 설명을 생략한다.
도7은 본 출원에 따른 취약성 특징 획득 장치의 구조도이다. 도7에 도시된 바와 같이, 본 실시예의 취약성 특징 획득 장치(200)는 도6에 도시된 장치의 기초 상에서, 검증모듈(15)을 더 포함할 수 있다.
검증모듈(15)은 상기 취약성의 적어도 하나의 취약성 특징을 사전에 구축된 테스트 대상 드론 클러스터에 통과시켜 테스트 검증을 수행하여, 검증에 통과한 취약성 특징을 획득하기 위한 것이고, 상기 테스트 대상 드론 클러스터는 취약성이 복구된 테스트 대상 드론과 취약성이 복구되지 않은 테스트 대상 드론을 포함한다.
확정모듈(14)은 또한 상기 검증에 통과한 취약성 특징을 상기 취약성의 취약성 특징으로 확정하기 위한 것이다.
선택적으로, 테스트 대상 드론 클러스터는 서로 다른 안드로이드 시스템 버전, 서로 다른 프로세서 아키텍쳐 플랫폼과 서로 다른 안전패치 버전을 기초로 구축된다.
본 실시예의 장치는 도5에 도시된 방법 실시예의 기술방안을 수행할 수 있으며, 그 구현원리와 기술효과가 유사하므로, 여기서는 중복되는 설명을 생략한다.
도8은 본 출원에 따른 취약성 특징 획득 장치의 구조도이다. 도8에 도시된 바와 같이, 본 실시예의 취약성 특징 획득 장치(300)는 도7에 도시된 장치의 기초 상에서, 디스플레이 모듈(16)을 더 포함할 수 있다. 해당 디스플레이 모듈(16)은 검증에 통과하지 못한 취약성 특징이 획득될 때, 검증에 통과하지 못한 취약성 특징을 디스플레이하기 위한 것이다.
추가적으로, 수신모듈(17)과 처리모듈(18)을 더 포함할 수 있으며, 여기서, 수신모듈(18)은 사용자가 입력한 검증에 통과하지 못한 취약성 특징의 발생 원인을 수신하기 위한 것이고, 처리모듈(19)은 검증에 통과하지 못한 취약성 특징의 발생 원인을 기초로 취약성 분석 엔진을 증가하거나 또는 취약성 분석 엔진을 수정하기 위한 것이다.
본 실시예의 장치는 도5에 도시된 방법 실시예의 기술방안을 수행할 수 있으며, 그 구현원리와 기술효과가 유사하므로, 여기서는 중복되는 설명을 생략한다.
본 출원의 실시예에 따르면, 본 출원은 컴퓨터 판독 가능 저장매체에 저장된 컴퓨터 프로그램을 더 제공하며, 전자기기의 적어도 하나의 프로세서는 판독 가능 저장매체로부터 컴퓨터 명령을 판독할 수 있으며, 적어도 하나의 프로세서는 컴퓨터 프로그램을 실행하여 전자기기가 상술한 어느 실시예에 따른 방안을 수행하도록 한다.
본 출원의 실시예에 따르면, 본 출원은 전자기기와 판독 가능 저장매체를 더 제공한다.
도9를 참조하면, 도9는 본 출원의 실시예에 따른 취약성 특징 획득 방법을 위한 전자기기의 블록도이다. 전자기기는 다양한 형태의 디지털 컴퓨터, 예컨대, 랩톱 컴퓨터, 데스크톱 컴퓨터, 워크 스테이션, 개인 정보 단말, 서버, 블레이드 서버, 대형 컴퓨터, 및 기타 적합한 컴퓨터를 의미한다. 전자기기는 다양한 형태의 이동장치, 예컨대, 개인 정보 단말, 셀폰, 스마트 폰, 웨어러블 기기 및 기타 유사한 컴퓨팅 장치를 의미할 수도 있다. 본문에 개시된 부재, 이들의 연결 및 관계, 및 이들의 기능은 단지 예시적인 것이며, 본문에 개시된 것 및/또는 요구하는 본 출원의 구현을 한정하려는 의도가 아니다.
도9에 도시된 바와 같이, 해당 전자기기는 하나 또는 복수의 프로세서(801), 메모리(802), 및 각 부재를 연결시키기 위한 고속 인터페이스와 저속 인터페이스를 포함하는 인터페이스를 포함한다. 각각의 부재는 서로 다른 버스를 통해 서로 연결되며, 공통 메인보드에 장착되거나 수요에 따라 기타 방식으로 장착될 수 있다. 프로세서는 전자기기 내에서 실행되는 명령을 처리할 수 있으며, 메모리 내 또는 메모리 상에 저장되어 외부 입력/출력 장치(예컨대, 인터페이스에 커플링된 디스플레이 기기) 상에 GUI의 그래픽 정보를 표시하는 명령을 포함할 수 있다. 기타 실시형태에서, 수요에 따라, 복수의 프로세서 및/또는 복수의 버스와 복수의 메모리를 같이 사용할 수 있다. 마찬가지로, 복수의 전자기기를 연결할 수 있으며, 각각의 기기는 부분 필요한 조작을 제공한다(예를 들어, 서버 어레이, 한 세트의 블레이드 서버, 또는 멀티 프로세서 시스템으로서). 도9는 하나의 프로세서(801)를 예로 든다.
메모리(802)는 바로 본 출원에 따른 비일시적 컴퓨터 판독 가능 저장매체이다. 여기서, 메모리는 적어도 하나의 프로세서에 의해 실행될 수 있는 명령이 저장되어, 적어도 하나의 프로세서가 본 출원에 따른 취약성 특징 획득 방법을 수행하도록 한다. 본 출원의 비일시적 컴퓨터 판독 가능 저장매체는 컴퓨터 명령을 저장하고, 해당 컴퓨터 명령은 컴퓨터가 본 출원에 따른 취약성 특징 획득 방법을 수행하도록 한다.
메모리(802)는 비일시적 컴퓨터 판독 가능 저장매체로서, 비일시적 소프트웨어 프로그램, 비일시적 컴퓨터 실행 가능 프로그램 및 모듈, 예컨대 본 출원의 실시예에 따른 취약성 특징 획득 방법에 대응되는 프로그램 명령/모듈(예를 들어, 도6에 도시된 획득모듈(11), 확정모듈(12), 추출모듈(13) 및 발송모듈(14))을 저장할 수 있다. 프로세서(801)는 메모리(802)에 저장된 비일시적 소프트웨어 프로그램, 명령 및 모듈을 실행하여, 서버의 다양한 기능 응용 및 데이터 처리를 수행한다. 즉, 상술한 방법 실시예 중 취약성 특징 획득 방법을 구현한다.
메모리(802)는 프로그램 저장 영역과 데이터 저장 영역을 포함할 수 있다. 여기서, 프로그램 저장 영역은 운영체제, 적어도 하나의 기능에 필요한 응용 프로그램을 저장할 수 있다. 데이터 저장 영역은 전자기기의 사용에 따라 구성되는 데이터 등을 저장할 수 있다. 한편, 메모리(802)는 고속 랜덤 액세스 메모리를 포함할 수 있고, 예를 들어 적어도 하나의 자기 저장 장치, 플래시 메모리, 또는 기타 비일시적 솔리드 스테이트 저장 장치와 같은 비일시적 메모리를 포함할 수도 있다. 일부 실시예에서, 메모리(802)는 선택적으로 프로세서(801)에 대해 원격으로 설치되는 메모리를 포함할 수 있다. 이러한 원격 메모리는 네트워크를 통해 전자기기에 연결될 수 있다. 상술한 네트워크의 실예로서 인터넷, 인트라넷, 근거리 통신망, 이동 통신망 및 그 조합을 포함하지만 이에 한정되지 않는다.
취약성 특징 획득 방법을 위한 전자기기는 입력장치(803)와 출력장치(804)를 더 포함할 수 있다. 프로세서(801), 메모리(802), 입력장치(803) 및 출력장치(804)는 버스 또는 기타 방식으로 연결될 수 있으며, 도9에서는 버스를 통해 연결되는 것을 예시하고 있다.
입력장치(803)는 입력되는 숫자 또는 문자 부호 정보를 수신할 수 있고, 전자기기의 사용자 설정 및 기능 제어에 대한 키 신호 입력을 생성할 수 있다. 예를 들어 터치 스크린, 키패드, 마우스, 트랙패드, 터치패널, 지시레버, 하나 또는 복수의 마우스 버튼, 트랙 볼, 조종 레버 등의 입력장치가 있다. 출력장치(804)는 디스플레이 기기, 보조 조명 장치(예를 들어, LED) 및 촉각 피드백 장치(예를 들어, 진동모터) 등을 포함할 수 있다. 해당 디스플레이 기기는, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이와 플라즈마 디스플레이 등을 포함할 수 있지만 이에 한정되지 않는다. 일부 실시형태에서, 디스플레이 기기는 터치 스크린일 수 있다.
여기에 기재되는 시스템 및 기술의 다양한 실시형태는 디지털 전자 회로 시스템, 집적 회로 시스템, 전용 ASIC(전용 집적 회로), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합에서 구현될 수 있다. 이러한 다양한 실시형태는 하나 또는 복수의 컴퓨터 프로그램에서 구현되는 것을 포함할 수 있고, 해당 하나 또는 복수의 컴퓨터 프로그램은 적어도 하나의 프로그래머블 프로세서를 포함하는 프로그래머블 시스템 상에서 실행 및/또는 해석될 수 있으며, 해당 프로그래머블 프로세서는 전용 또는 범용 프로그래머블 프로세서일 수 있고, 저장 시스템, 적어도 하나의 입력장치, 및 적어도 하나의 출력장치로부터 데이터와 명령을 수신할 수 있으며, 데이터와 명령을 해당 저장 시스템, 해당 적어도 하나의 입력장치, 및 해당 적어도 하나의 출력장치로 전송한다.
이러한 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 응용, 또는 코드라고도 지칭)은 프로그래머블 프로세서의 기계적 명령을 포함하고, 고급 프로세스 및/또는 객체 지향 프로그래밍 언어, 및/또는 어셈블리/기계적 언어를 이용하여 이러한 컴퓨터 프로그램을 실행할 수 있다. 예컨대 본문에서 사용되는 용어 "기계 판독 가능 매체"와 "컴퓨터 판독 가능 매체"는 기계적 명령 및/또는 데이터를 프로그래머블 프로세서로 제공하기 위한 임의의 컴퓨터 프로그램 제품, 기기, 및/또는 장치(예를 들어, 자기 디스크, 광 디스크, 메모리, 프로그래머블 논리 디바이스(PLD))를 가리키고, 기계 판독 가능 신호인 기계적 명령을 수신하는 기계 판독 가능 매체를 포함한다. 용어 "기계 판독 가능 신호"는 기계적 명령 및/또는 데이터를 프로그래머블 프로세서로 제공하기 위한 임의의 신호를 가리킨다.
사용자와의 인터랙션을 제공하기 위하여, 컴퓨터 상에서 여기에 기재되는 시스템 및 기술을 실시할 수 있으며, 해당 컴퓨터는 사용자에게 정보를 표시하기 위한 표시장치(예를 들어, CRT(캐소드레이 튜브) 또는 LCD(액정 디스플레이) 모니터); 및 키보드와 지향 장치(예를 들어, 마우스 또는 트랙볼)를 구비하고, 사용자는 해당 키보드와 해당 지향 장치를 통해 입력을 컴퓨터로 제공할 수 있다. 기타 종류의 장치는 사용자와의 인터랙션을 제공할 수도 있다. 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 센싱 피드백(예를 들어, 시각적 피드백, 청각적 피드백, 또는 촉각적 피드백)일 수 있고; 임의의 형태(사운드 입력, 음성 입력 또는 촉각 입력)을 통해 사용자로부터의 입력을 수신할 수 있다.
여기에 기재되는 시스템과 기술은 백그라운드 부재를 포함하는 컴퓨팅 시스템(예를 들어, 데이터 서버로서), 또는 중간부재를 포함하는 컴퓨팅 시스템(예를 들어, 응용 서버), 또는 프론트 엔드 부재를 포함하는 컴퓨팅 시스템(예를 들어, 그래픽 유저 인터페이스 또는 인터넷 브라우저를 구비하는 사용자 컴퓨터, 사용자는 해당 그래픽 유저 인터페이스 또는 해당 인터넷 브라우저를 통해 여기에 기재되는 시스템 및 기술의 실시형태와 인터랙션할 수 있다), 또는 이러한 백그라운드 부재, 중간 부재, 또는 프론트 엔드 부재를 포함하는 임의의 조합의 컴퓨팅 시스템에서 실시될 수 있다. 임의의 형태 또는 매체의 디지털 데이터 통신(예를 들어, 통신 네트워크)을 통해 시스템의 부재를 서로 연결시킬 수 있다. 통신 네트워크의 예시로서, 근거리 통신망(LAN), 광역 통신망(WAN) 및 인터넷을 포함한다.
컴퓨터 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며, 통상적으로 통신 네트워크를 통해 인터랙션한다. 상응한 컴퓨터 상에서 실행되며 서로 클라이언트 - 서버 관계를 가지는 컴퓨터 프로그램을 통해 클라이언트와 서버의 관계를 생성한다.
본 출원의 실시예의 기술방안에 따르면, 취약성의 취약성 패치 정보를 획득한 후, 취약성 패치 정보를 기초로 취약성이 코드 타입의 취약성 또는 비 코드 타입의 취약성인지를 확정하고, 이어서 취약성의 타입에 대응되는 취약성 분석 엔진을 기초로 취약성의 적어도 하나의 취약성 특징을 추출하고, 마지막으로 추출한 각각의 취약성 특징에 대하여, 취약성 특징의 소스 코드 또는 소스 파일이 위치하는 코드 파일을 기초로 취약성 특징의 운영 엔티티를 확정하여, 취약성의 취약성 특징과 운영 엔티티를 획득한다.서로 다른 타입의 취약성은 서로 다른 타입의 취약성 분석 엔진에 대응되고, 취약성 분석 엔진은 서로 다른 타입의 취약성을 기초로 사전에 구축된 것이므로, 취약성의 취약성 특징을 온라인으로 획득하고, 취약성 특징의 획득 효율을 향상시키고, 인공적으로 취약성 특징을 분석하여 획득할 필요가 없이, 시스템 취약성 라이브러리의 유지 코스트를 감소시킬 수 있다.
상술한 다양한 형태의 프로세스를 사용하여 단계를 재배열, 추가 또는 삭제할 수 있다. 예를 들어, 본 출원에 기재된 각 단계는 병열로 수행될 수 있고 순차적으로 수행될 수도 있고 서로 다른 순서로 수행될 수도 있으며, 본 출원에 개시된 기술적 해결수단이 원하는 결과를 얻을 수만 있다면, 본문은 이에 대해 한정하지 않는다.
상술한 구체적인 실시형태는 본 출원의 보호범위에 대한 한정이 아니다. 본 분야의 통상의 지식을 가진 자라면, 설계 요구와 기타 요소를 기초로, 다양한 수정, 조합, 서브 조합 및 대체를 가할 수 있음을 이해할 수 있을 것이다. 본 출원의 정신과 원칙 내에서 이루어진 모든 수정, 동등한 치환 및 개선 등은 모두 본 출원의 보호 범위 내에 속하는 것으로 간주하여야 한다.

Claims (22)

  1. 취약성의 취약성 패치 정보를 획득한 후, 취약성 패치 정보를 기초로 상기 취약성의 타입을 확정하되, 상기 타입은 코드 타입의 취약성과 비 코드 타입의 취약성을 포함하는 단계;
    상기 취약성의 타입에 대응되는 취약성 분석 엔진을 기초로 상기 취약성의 적어도 하나의 취약성 특징을 추출하는 단계;
    상기 취약성의 적어도 하나의 취약성 특징을 전자기기로 발송하는 단계;
    상기 취약성의 적어도 하나의 취약성 특징을 사전에 구축된 테스트 대상 드론 클러스터에 통과시켜 테스트 검증을 수행하여, 검증에 통과한 취약성 특징을 획득하되, 상기 테스트 대상 드론 클러스터는 취약성이 복구된 테스트 대상 드론과 취약성이 복구되지 않은 테스트 대상 드론을 포함하는 단계;
    상기 검증에 통과한 취약성 특징을 상기 취약성의 취약성 특징으로 확정하는 단계를 포함하는 것을 특징으로 하는 취약성 특징 획득 방법.
  2. 제1항에 있어서, 상기 취약성 특징 획득 방법은,
    상기 취약성의 적어도 하나의 취약성 특징 중 각각의 취약성 특징에 대하여, 취약성 특징의 소스 코드 또는 소스 파일이 위치하는 코드 파일을 기초로 취약성 특징의 운영 엔티티를 확정하는 단계;를 더 포함하고
    상기 취약성의 적어도 하나의 취약성 특징을 전자기기로 발송하는 상기 단계는,
    상기 취약성의 적어도 하나의 취약성 특징과 대응되는 운영 엔티티를 전자기기로 발송하는 단계를 포함하는 것을 특징으로 하는 취약성 특징 획득 방법.
  3. 제1항에 있어서,
    상기 취약성의 취약성 패치 정보는 상기 취약성의 소스 코드와 상기 취약성의 복구 코드를 포함하고, 상기 취약성의 타입에 대응되는 취약성 분석 엔진을 기초로 상기 취약성의 적어도 하나의 취약성 특징을 추출하는 상기 단계는,
    상기 취약성의 타입에 대응되는 취약성 분석 엔진을 통해,
    상기 취약성의 소스 코드와 상기 취약성의 복구 코드에 대하여 대응되는 코딩 언어의 구문 분석을 수행하고;
    구문 분석 결과를 기초로 상기 취약성의 소스 코드와 상기 취약성의 복구 코드의 적어도 하나의 차이 정보를 확정하고, 상기 적어도 하나의 차이 정보를 기초로 상기 취약성의 취약성 특징을 확정하되, 하나의 차이 정보는 하나의 취약성 특징에 대응되는; 조작을 수행하는 단계를 포함하는 것을 특징으로 하는 취약성 특징 획득 방법.
  4. 제1항에 있어서,
    상기 취약성의 취약성 패치 정보는 상기 취약성의 소스 파일과 상기 취약성의 복구 파일을 포함하고, 상기 취약성의 타입에 대응되는 취약성 분석 엔진을 기초로 상기 취약성의 적어도 하나의 취약성 특징을 추출하는 상기 단계는,
    상기 취약성의 타입에 대응되는 취약성 분석 엔진을 통해,
    상기 취약성의 소스 파일과 상기 취약성의 복구 파일의 적어도 하나의 변화 정보를 확정하되, 상기 변화 정보는 문자열 특징의 증가, 문자열 특징의 삭제, 문자열 특징의 수정, 파일의 증가와 파일의 삭제 중 임의의 하나를 포함하고;
    상기 취약성의 소스 파일이 위치하는 코드 파일을 확정하고, 상기 취약성의 소스 파일이 위치하는 코드 파일에서 상기 적어도 하나의 변화 정보 중 각각의 변화 정보가 유일성을 구비하는지 여부를 검색하고;
    유일성을 구비하는 변화 정보를 상기 취약성의 취약성 특징으로 확정하는;조작을 수행하는 단계를 포함하는 것을 특징으로 하는 취약성 특징 획득 방법.
  5. 제2항에 있어서,
    취약성 특징의 소스 코드 또는 소스 파일이 위치하는 코드 파일을 기초로 취약성 특징의 운영 엔티티를 확정하는 상기 단계는,
    상기 취약성 특징의 소스 코드 또는 소스 파일이 위치하는 코드 파일을 확정하는 단계;
    상기 코드 파일의 컴파일링 구성 파일로부터 상기 코드 파일의 운영 엔티티를 검색하고, 상기 코드 파일의 운영 엔티티를 기초로 상기 취약성 특징의 운영 엔티티를 확정하는 단계를 포함하는 것을 특징으로 하는 취약성 특징 획득 방법.
  6. 삭제
  7. 제1항에 있어서,
    상기 테스트 대상 드론 클러스터는 서로 다른 안드로이드 시스템 버전, 서로 다른 프로세서 아키텍쳐 플랫폼과 서로 다른 안전패치 버전을 기초로 구축되는 것을 특징으로 하는 취약성 특징 획득 방법.
  8. 제1항에 있어서, 상기 취약성 특징 획득 방법은,
    검증에 통과하지 못한 취약성 특징이 획득될 때, 상기 검증에 통과하지 못한 취약성 특징을 디스플레이하는 단계를 더 포함하는 것을 특징으로 하는 취약성 특징 획득 방법.
  9. 제8항에 있어서, 상기 취약성 특징 획득 방법은,
    사용자로부터 입력되는 상기 검증에 통과하지 못한 취약성 특징의 발생 원인을 수신하는 단계;
    상기 검증에 통과하지 못한 취약성 특징의 발생 원인을 기초로 취약성 분석 엔진을 증가하거나 또는 취약성 분석 엔진을 수정하는 단계를 더 포함하는 것을 특징으로 하는 취약성 특징 획득 방법.
  10. 취약성의 취약성 패치 정보를 획득하기 위한 획득모듈;
    상기 취약성 패치 정보를 기초로 상기 취약성의 타입을 확정하되, 상기 타입은 코드 타입의 취약성과 비 코드 타입의 취약성을 포함하는 확정모듈;
    상기 취약성의 타입에 대응되는 취약성 분석 엔진을 기초로 상기 취약성의 적어도 하나의 취약성 특징을 추출하는 추출모듈;
    상기 취약성의 적어도 하나의 취약성 특징을 전자기기로 발송하는 발송모듈;
    상기 취약성의 적어도 하나의 취약성 특징을 사전에 구축된 테스트 대상 드론 클러스터에 통과시켜 테스트 검증을 수행하여, 검증에 통과한 취약성 특징을 획득하되, 상기 테스트 대상 드론 클러스터는 취약성이 복구된 테스트 대상 드론과 취약성이 복구되지 않은 테스트 대상 드론을 포함하는 검증모듈을 포함하고,
    상기 확정모듈은 또한 상기 검증에 통과한 취약성 특징을 상기 취약성의 취약성 특징으로 확정하는 것을 특징으로 하는 취약성 특징 획득 장치.
  11. 제10항에 있어서,
    상기 확정모듈은 또한,
    상기 취약성의 적어도 하나의 취약성 특징 중 각각의 취약성 특징에 대하여, 취약성 특징의 소스 코드 또는 소스 파일이 위치하는 코드 파일을 기초로 취약성 특징의 운영 엔티티를 확정하고;
    상기 발송모듈은,
    상기 취약성의 적어도 하나의 취약성 특징과 대응되는 운영 엔티티를 전자기기로 발송하는 것을 특징으로 하는 취약성 특징 획득 장치.
  12. 제10항에 있어서,
    상기 취약성의 취약성 패치 정보는 상기 취약성의 소스 코드와 상기 취약성의 복구 코드를 포함하고, 상기 추출모듈은,
    상기 취약성의 타입에 대응되는 취약성 분석 엔진을 통해,
    상기 취약성의 소스 코드와 상기 취약성의 복구 코드에 대하여 대응되는 코딩 언어의 구문 분석을 수행하고;
    구문 분석 결과를 기초로 상기 취약성의 소스 코드와 상기 취약성의 복구 코드의 적어도 하나의 차이 정보를 확정하고, 상기 적어도 하나의 차이 정보를 기초로 상기 취약성의 취약성 특징을 확정하되, 하나의 차이 정보는 하나의 취약성 특징에 대응되는; 조작을 수행하는 것을 특징으로 하는 취약성 특징 획득 장치.
  13. 제10항에 있어서,
    상기 취약성의 취약성 패치 정보는 상기 취약성의 소스 파일과 상기 취약성의 복구 파일을 포함하고, 상기 추출모듈은,
    상기 취약성의 타입에 대응되는 취약성 분석 엔진을 통해,
    상기 취약성의 소스 파일과 상기 취약성의 복구 파일의 적어도 하나의 변화 정보를 확정하되, 상기 변화 정보는 문자열 특징의 증가, 문자열 특징의 삭제, 문자열 특징의 수정, 파일의 증가와 파일의 삭제 중 임의의 하나를 포함하고;
    상기 취약성의 소스 파일이 위치하는 코드 파일을 확정하고, 상기 취약성의 소스 파일이 위치하는 코드 파일에서 상기 적어도 하나의 변화 정보 중 각각의 변화 정보가 유일성을 구비하는지 여부를 검색하고;
    유일성을 구비하는 변화 정보를 상기 취약성의 취약성 특징으로 확정하는;조작을 수행하는 것을 특징으로 하는 취약성 특징 획득 장치.
  14. 제11항에 있어서, 상기 확정모듈은,
    상기 취약성 특징의 소스 코드 또는 소스 파일이 위치하는 코드 파일을 확정하고;
    상기 코드 파일의 컴파일링 구성 파일로부터 상기 코드 파일의 운영 엔티티를 검색하고, 상기 코드 파일의 운영 엔티티를 기초로 상기 취약성 특징의 운영 엔티티를 확정하는 것을 특징으로 하는 취약성 특징 획득 장치.
  15. 삭제
  16. 제10항에 있어서,
    상기 테스트 대상 드론 클러스터는 서로 다른 안드로이드 시스템 버전, 서로 다른 프로세서 아키텍쳐 플랫폼과 서로 다른 안전패치 버전을 기초로 구축되는 것을 특징으로 하는 취약성 특징 획득 장치.
  17. 제10항에 있어서, 상기 취약성 특징 획득 장치는,
    검증에 통과하지 못한 취약성 특징이 획득될 때, 상기 검증에 통과하지 못한 취약성 특징을 디스플레이하는 디스플레이 모듈을 더 포함하는 것을 특징으로 하는 취약성 특징 획득 장치.
  18. 제17항에 있어서, 상기 취약성 특징 획득 장치는,
    사용자로부터 입력되는 상기 검증에 통과하지 못한 취약성 특징의 발생 원인을 수신하기 위한 수신모듈;
    상기 검증에 통과하지 못한 취약성 특징의 발생 원인을 기초로 취약성 분석 엔진을 증가하거나 또는 취약성 분석 엔진을 수정하기 위한 처리모듈을 더 포함하는 것을 특징으로 하는 취약성 특징 획득 장치.
  19. 적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서와 통신 연결되는 메모리;를 포함하되,
    상기 메모리에 상기 적어도 하나의 프로세서에 의해 실행 가능한 명령이 저장되고, 상기 명령은 상기 적어도 하나의 프로세서에 의해 실행되어, 상기 적어도 하나의 프로세서가 제1항 내지 제5항 및 제7항 내지 제9항 중 어느 한 항에 따른 취약성 특징 획득 방법을 수행할 수 있도록 하는 것을 특징으로 하는 전자기기.
  20. 컴퓨터 명령이 저장된 비일시적 컴퓨터 판독 가능 저장매체에 있어서, 상기 컴퓨터 명령은 컴퓨터가 제1항 내지 제5항 및 제7항 내지 제9항 중 어느 한 항에 따른 취약성 특징 획득 방법을 수행할 수 있도록 하는 것을 특징으로 하는 저장매체.
  21. 취약성의 취약성 패치 정보를 획득한 후, 상기 취약성 패치 정보를 기초로 상기 취약성의 타입을 확정하는 단계;
    상기 취약성의 타입에 대응되는 취약성 분석 엔진을 기초로 상기 취약성의 적어도 하나의 취약성 특징을 추출하는 단계;
    상기 취약성의 적어도 하나의 취약성 특징을 전자기기로 발송하는 단계;
    상기 취약성의 적어도 하나의 취약성 특징을 사전에 구축된 테스트 대상 드론 클러스터에 통과시켜 테스트 검증을 수행하여, 검증에 통과한 취약성 특징을 획득하되, 상기 테스트 대상 드론 클러스터는 취약성이 복구된 테스트 대상 드론과 취약성이 복구되지 않은 테스트 대상 드론을 포함하는 단계;
    상기 검증에 통과한 취약성 특징을 상기 취약성의 취약성 특징으로 확정하는 단계를 포함하는 것을 특징으로 하는 취약성 특징 획득 방법.
  22. 컴퓨터 판독 가능 저장매체에 저장된 컴퓨터 프로그램에 있어서,
    상기 컴퓨터 프로그램이 프로세서에 의해 실행될 경우, 제1항 내지 내지 제5항 및 제7항 내지 제9항 중 어느 한 항에 따른 취약성 특징 획득 방법을 구현하는 컴퓨터 프로그램.





KR1020210041412A 2020-05-14 2021-03-30 취약성 특징 획득 방법, 장치 및 전자기기 KR102477150B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010407734.7A CN113672929A (zh) 2020-05-14 2020-05-14 漏洞特征获取方法、装置及电子设备
CN202010407734.7 2020-05-14

Publications (2)

Publication Number Publication Date
KR20210042285A KR20210042285A (ko) 2021-04-19
KR102477150B1 true KR102477150B1 (ko) 2022-12-12

Family

ID=75718558

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210041412A KR102477150B1 (ko) 2020-05-14 2021-03-30 취약성 특징 획득 방법, 장치 및 전자기기

Country Status (3)

Country Link
JP (1) JP7231664B2 (ko)
KR (1) KR102477150B1 (ko)
CN (1) CN113672929A (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114611111A (zh) * 2022-02-10 2022-06-10 阿里云计算有限公司 漏洞修复方法及计算设备
WO2023224192A1 (ko) * 2022-05-16 2023-11-23 엘에스웨어(주) 소프트웨어 관리 시스템 및 그 방법
CN117610018B (zh) * 2023-12-01 2024-06-25 深圳市马博士网络科技有限公司 漏洞模拟方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012208863A (ja) * 2011-03-30 2012-10-25 Hitachi Ltd 脆弱性判定システム、脆弱性判定方法、および、脆弱性判定プログラム
JP5863973B2 (ja) * 2012-08-01 2016-02-17 三菱電機株式会社 プログラム実行装置及びプログラム解析装置
JP2017517821A (ja) * 2014-06-13 2017-06-29 ザ・チャールズ・スターク・ドレイパー・ラボラトリー・インコーポレイテッド ソフトウェアアーチファクトのデータベースのためのシステム及び方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002318716A (ja) 2001-04-20 2002-10-31 Sony Corp 配信システム、配信方法、サーバコンピュータ、クライアントコンピュータ
EP1461707A1 (en) 2001-12-31 2004-09-29 Citadel Security Software Inc. Automated computer vulnerability resolution system
US7424706B2 (en) 2003-07-16 2008-09-09 Microsoft Corporation Automatic detection and patching of vulnerable files
JP2006066982A (ja) 2004-08-24 2006-03-09 Hitachi Ltd ネットワーク接続制御システム
JP4728017B2 (ja) 2005-03-07 2011-07-20 東芝Itサービス株式会社 統合セキュリティ監査装置、統合セキュリティ監査方法及び統合セキュリティ監査プログラム
CA2623439A1 (en) 2005-09-22 2007-04-05 Mocana Corporation Embedded patch management
JP2007316686A (ja) 2006-05-23 2007-12-06 Matsushita Electric Ind Co Ltd セキュリティ状態管理サーバ、セキュリティパッチ配信サーバ、ファイルサーバ、持ち出し検知装置及びそのシステム。
JP5158689B2 (ja) * 2007-12-07 2013-03-06 日本電信電話株式会社 系切替装置および方法
JP5845888B2 (ja) 2011-12-26 2016-01-20 日本電気株式会社 ソフトウェア修正装置、ソフトウェア修正システム、ソフトウェア修正方法、及び、ソフトウェア修正プログラム
CN104298923B (zh) * 2014-09-28 2018-01-02 北京奇虎科技有限公司 漏洞类型识别方法以及装置
WO2016068974A1 (en) * 2014-10-31 2016-05-06 Hewlett Packard Enterprise Development Lp System and method for vulnerability remediation verification
JP6312578B2 (ja) 2014-11-07 2018-04-18 株式会社日立製作所 リスク評価システムおよびリスク評価方法
CN106548076A (zh) * 2015-09-23 2017-03-29 百度在线网络技术(北京)有限公司 检测应用漏洞代码的方法和装置
CN105893850B (zh) * 2016-03-30 2017-12-15 百度在线网络技术(北京)有限公司 漏洞修复方法和装置
CN107451474B (zh) * 2016-05-31 2020-06-26 百度在线网络技术(北京)有限公司 用于终端的软件漏洞修复方法和装置
CN106598667B (zh) * 2016-12-12 2018-07-27 百度在线网络技术(北京)有限公司 用于修复内核漏洞的方法和装置
CN107506647A (zh) * 2017-07-28 2017-12-22 努比亚技术有限公司 漏洞自动修复方法及移动终端
CN109359468B (zh) * 2018-08-23 2021-12-14 创新先进技术有限公司 漏洞检测方法、装置及设备
CN111008380B (zh) * 2019-11-25 2022-05-31 杭州安恒信息技术股份有限公司 一种检测工控系统漏洞的方法、装置和电子设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012208863A (ja) * 2011-03-30 2012-10-25 Hitachi Ltd 脆弱性判定システム、脆弱性判定方法、および、脆弱性判定プログラム
JP5863973B2 (ja) * 2012-08-01 2016-02-17 三菱電機株式会社 プログラム実行装置及びプログラム解析装置
JP2017517821A (ja) * 2014-06-13 2017-06-29 ザ・チャールズ・スターク・ドレイパー・ラボラトリー・インコーポレイテッド ソフトウェアアーチファクトのデータベースのためのシステム及び方法

Also Published As

Publication number Publication date
KR20210042285A (ko) 2021-04-19
CN113672929A (zh) 2021-11-19
JP2021108189A (ja) 2021-07-29
JP7231664B2 (ja) 2023-03-01

Similar Documents

Publication Publication Date Title
KR102477150B1 (ko) 취약성 특징 획득 방법, 장치 및 전자기기
JP7250178B2 (ja) ブロックチェーンネットワークにおけるスマートコントラクトをサポートするための方法及びコントラクト書き換えフレームワークシステム
US9075997B2 (en) Global variable security analysis
Carmony et al. Extract Me If You Can: Abusing PDF Parsers in Malware Detectors.
US9465942B1 (en) Dictionary generation for identifying coded credentials
US9336381B1 (en) Entropy-based detection of sensitive information in code
US10761964B2 (en) Object monitoring in code debugging
US20130311827A1 (en) METHOD and APPARATUS for automatic testing of automation software
CN103390130A (zh) 基于云安全的恶意程序查杀的方法、装置和服务器
Wu et al. Mutation testing for ethereum smart contract
JPWO2014021190A1 (ja) プログラム実行装置及びプログラム解析装置
US9158923B2 (en) Mitigating security risks via code movement
US20190215333A1 (en) Persistent cross-site scripting vulnerability detection
Akram et al. How to build a vulnerability benchmark to overcome cyber security attacks
CN114398673A (zh) 应用程序的合规检测方法、装置、存储介质与电子设备
CN116382755A (zh) 基于漏洞防护的国产操作系统补丁升级方法
US9176846B1 (en) Validating correctness of expression evaluation within a debugger
US20230141948A1 (en) Analysis and Testing of Embedded Code
CN114969759B (zh) 工业机器人系统的资产安全评估方法、装置、终端及介质
Beksultanova et al. Analysis tools for smart contract security
Kuliamin A Survey of Software Dynamic Analysis Methods
JP2018121245A (ja) 通信装置、通信仕様差分抽出方法及び通信仕様差分抽出プログラム
CN118312411A (zh) 测试脚本的自动生成方法及装置
Xiao et al. Accurate and Efficient Recurring Vulnerability Detection for IoT Firmware
KR20240100870A (ko) 컨테이너 이미지 악성코드 진단 방법 및 장치

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant