1 |
1
프로그램의 소스 코드 및 검출 대상 보안 취약점을 포함하는 질의 관련 정보를 입력받는 입력부;입력된 소스 코드로부터 제어 흐름 그래프, 데이터 흐름 그래프 및 추상 구문 트리를 각각 생성하며, 생성된 제어 흐름 그래프, 데이터 흐름 그래프 및 추상 구문 트리를 통합하여 합성 그래프를 생성하는 그래프 생성부;상기 합성 그래프로부터 상기 질의 관련 정보에 포함된 보안 취약점 정보에 대응하는 보안 취약점을 검출하는 보안 약점 검출부; 및, 상기 소스 코드가 입력되면, 상기 소스 코드의 각 블록을 기준으로 상기 제어 흐름 그래프와 데이터 흐름 그래프를 서로 통합 및, 상기 소스 코드의 각 블록에 대응하는 상기 추상 구문 트리의 각 노드들을 상기 제어 흐름 그래프와 데이터 흐름 그래프의 통합 결과에 연결하여 상기 합성 그래프를 생성하도록 상기 그래프 생성부를 제어하며, 상기 합성 그래프로부터 상기 보안 취약점 정보에 따라 검출된 상기 소스 코드의 적어도 하나의 블록 또는 행을 상기 보안 취약점으로 출력하는 제어부를 포함하며,상기 그래프 생성부는,상기 제어 흐름 그래프, 상기 데이터 흐름 그래프, 상기 추상 구문 트리를 통합하여 합성 그래프를 생성하는 합성부를 포함하고,상기 합성부는,상기 데이터 흐름 그래프의 각 노드를 상기 제어 흐름 그래프의 대응되는 각 블록 표시하여, 상기 데이터 흐름 그래프의 각 노드를 상기 제어 흐름 그래프의 각 블록으로 구분함으로써 상기 제어 흐름 그래프와 상기 데이터 흐름 그래프를 통합하는 것을 특징으로 하는 보안 취약점 검출 장치
|
2 |
2
제1항에 있어서, 상기 제어부는, 상기 소스 코드가 입력되면, 상기 소스 코드를 기 설정된 기준에 따라 적어도 하나의 블록 및 적어도 하나의 행으로 구분하는 것을 특징으로 하는 보안 취약점 검출 장치
|
3 |
3
제1항에 있어서, 상기 그래프 생성부는, 상기 소스 코드로부터 제어 흐름 그래프를 생성하는 CFG(Control Flow Graph) 생성부;상기 소스 코드로부터 데이터 흐름 그래프를 생성하는 DFG(Data Flow Graph) 생성부; 및,상기 소스 코드로부터 추상 구문 트리를 생성하는 AST(Abstract Syntax Tree) 생성부를 포함하며, 상기 합성부는, 상기 소스 코드의 각 블록들을 기준으로 상기 추상 구문 트리를 복수의 그룹으로 분해 및, 상기 제어 흐름 그래프와 상기 데이터 흐름 그래프 통합 결과에 따라 구분된 각각의 블록에 상기 분해된 추상 구문 트리의 각 그룹들을 연결하여, 상기 합성 그래프를 생성하는 것을 특징으로 하는 보안 취약점 검출 장치
|
4 |
4
제1항에 있어서, 상기 보안 약점 검출부는, 상기 질의 관련 정보에 근거하여 질의문을 생성하는 질의문 생성부; 및, 상기 생성된 질의문에 근거하여, 상기 합성 그래프로부터 상기 질의 관련 정보에 포함된 보안 취약점 정보에 대응하는 소스 코드의 블록 또는 행을 검출하는 질의 처리부를 포함하며, 상기 질의문은, 상기 추상 구문 트리에 기반한 구문 오류 검출을 위한 질의어, 상기 제어 흐름 그래프에 기반한 제어 흐름의 오류를 검출하기 위한 질의어, 및 상기 데이터 흐름 그래프에 기반한 데이터 흐름의 오류를 검출하기 위한 질의어 중 적어도 두 개를 포함하는 것을 특징으로 하는 보안 취약점 검출 장치
|
5 |
5
제4항에 있어서, 상기 질의 관련 정보는, CWE(Common Weakness Enumeration) ID이며, 상기 질의문 생성부는,입력된 CWE ID에 대응하는 보안 취약점 정보 목록(CWE)를 포함하는 체커 패키지를 더 포함하는 것을 특징으로 하는 보안 취약점 검출 장치
|
6 |
6
제4항에 있어서, 상기 질의문 생성부는, 상기 질의 관련 정보가 입력되면, 기 설정된 질의 명세 규칙에 따른 상기 입력된 질의 관련 정보에 대응하는 질의문을 생성하며,상기 질의 관련 정보로서 질의문이 입력되는 경우, 상기 질의 명세 규칙에 근거하여 상기 입력된 질의문에 오류가 있는지 여부를 검출하는 것을 특징으로 하는 보안 취약점 검출 장치
|
7 |
7
프로그램 소스 코드를 입력받는 단계;입력된 소스 코드로부터 제어 흐름 그래프, 데이터 흐름 그래프 및, 추상 구문 트리를 생성하는 단계;상기 소스 코드의 각 블록을 기준으로 상기 제어 흐름 그래프와 데이터 흐름 그래프를 서로 통합하는 단계;상기 소스 코드의 각 블록에 대응하는 상기 추상 구문 트리의 각 노드들을 상기 제어 흐름 그래프와 데이터 흐름 그래프의 통합 결과에 연결하여 합성 그래프를 생성하는 단계;검출 대상 보안 취약점을 포함하는 질의 관련 정보를 입력받는 단계;입력된 질의 관련 정보에 대응하는 질의문을 분석하는 단계;상기 질의문에 따라 상기 합성 그래프로부터 상기 질의 관련 정보에 포함된 보안 취약점 정보에 대응하는 상기 소스 코드의 적어도 하나의 블록 또는 행을 검출하는 단계; 및, 검출된 적어도 하나의 블록 또는 행을 보안 취약점으로 출력하는 단계를 포함하며,상기 제어 흐름 그래프와 데이터 흐름 그래프를 통합하는 단계는,상기 제어 흐름 그래프의 각 블록에, 대응하는 상기 데이터 흐름 그래프의 각 노드를 표시하여, 상기 데이터 흐름 그래프의 각 노드를 상기 제어 흐름 그래프의 각 블록으로 구분하는 단계임을 특징으로 하는 보안 취약점 검출 방법
|
8 |
8
제7항에 있어서, 상기 소스 코드를 입력받는 단계는, 상기 소스 코드를 기 설정된 기준에 따라 적어도 하나의 블록으로 구분하는 단계; 및, 상기 소스 코드를 각각의 행으로 구분하는 단계를 더 포함하는 것을 특징으로 하는 보안 취약점 검출 방법
|
9 |
9
제7항에 있어서, 상기 합성 그래프를 생성하는 단계는, 상기 소스 코드의 각 블록들을 기준으로 상기 추상 구문 트리를 복수의 그룹으로 분해하는 단계; 및, 상기 제어 흐름 그래프와 상기 데이터 흐름 그래프 통합 결과에 따라 구분된 각각의 블록에, 상기 분해된 추상 구문 트리의 각 그룹들을 연결하여 표시하는 단계를 포함하는 것을 특징으로 하는 보안 취약점 검출 방법
|
10 |
10
제7항에 있어서, 상기 질의 관련 정보를 입력받는 단계는, 상기 질의 관련 정보에 근거하여 기 설정된 질의 명세 규칙에 따른 질의문을 생성하는 단계를 더 포함하며, 상기 질의문은, 상기 추상 구문 트리에 기반한 구문 오류 검출을 위한 질의어, 상기 제어 흐름 그래프에 기반한 제어 흐름의 오류를 검출하기 위한 질의어, 및 상기 데이터 흐름 그래프에 기반한 데이터 흐름의 오류를 검출하기 위한 질의어 중 적어도 두 개를 포함하는 것을 특징으로 하는 보안 취약점 검출 방법
|
11 |
11
제7항에 있어서, 상기 질의 관련 정보는, CWE(Common Weakness Enumeration) ID이며, 상기 질의 관련 정보를 입력받는 단계는, 보안 취약점 정보 목록(CWE)을 포함하는 체커 패키지로부터 상기 CWE ID에 대응하는 보안 취약점 정보를 식별하는 단계를 더 포함하는 것을 특징으로 하는 보안 취약점 검출 방법
|
12 |
12
제7항에 있어서, 상기 질의문 분석 단계는, 입력된 질의문을 기 설정된 질의 명세 규칙에 따라 분석하여 오류가 있는지 여부를 검출하는 단계를 더 포함하는 것을 특징으로 하는 보안 취약점 검출 방법
|