Skip to content

The integration database platform to scan of CVE lists

Notifications You must be signed in to change notification settings

Ruskonert/cve-mysql-python

Repository files navigation

cve-mysql-python

CVE 데이터베이스 구축을 위한 프로그램입니다. MySQL 기반으로 작동합니다.

Function

해당 통합 플랫폼은 NVD-NIST, CVE-MITRE, ICS-CERT로부터 CVE 리스트들을 읽어들여 데이터베이스로 구축하여 필요한 데이터만을 로드하고 추출하는 데 도움을 줄 수 있습니다. 이것은 다음과 같은 기능을 포함하고 있습니다.

  • SQL Database, CSV 파일 추출 지원
  • CVE, CPE, Vendor등 데이터베이스 기본 요소 자동 탐색

Installation

귀하의 컴퓨터에 MySQL 데이터베이스에 접근할 수 있는 클라이언트가 요구됩니다.
Python Framework을 기반으로 작동하므로, Python 3 이상의 인터프리터를 요구하며, 해당 모듈을 실행하려면 다음과 같은 명령어가 권장됩니다:

그러나 해당 프로그램을 정상적으로 실행하기 위해서는 3.5.x버전 이상을 설치하셔야 합니다.
정상적인 실행을 위해서 다음과 같은 명령어를 순서대로 실행하십시오 (명령어는 ```sudo``모드에서 권장합니다):

apt-get update
apt-get install python3

apt-get install python3-pip
apt-get install python3-setuptools
pip3 install --upgrade pip

git clone https://github.com/ruskonert/cve-mysql-python.git # 엑세스 가능한 github 암호 & 유저네임을 요구할 수 있음
cd cve-mysql-python
pip install -r requirements.txt

만약 파이썬 인터프리터가 없고 윈도우 기반이라면, 아래의 링크를 통해 Released된 실행 가능한 최신 파일을 다운로드하여 사용하십시오.
https://github.com/Ruskonert/cve-mysql-python/releases

Command

해당 모듈을 사용하기 전 정의된 명령어는 다음과 같습니다.

python cvemysql.py [-u user] [-p password] [-y year] [output_name] [--cofigurations]...

Requirement argument

[-y year] CVE 리스트 연도를 설정합니다. 2010-2018 처럼 특정 연도를 지정하는 것도 가능합니다.
단, contentmitre라면 해당 인자 값은 무시합니다.

Option argument

[-u user] MySQL 서버에 연결할 유저명을 입력합니다. 지정하지 않으면 기본값은 root입니다.
[-p password] MySQL 서버에 연결할 유저 비밀번호를 입력합니다. 지정하지 않으면 콘솔에서 입력받습니다.
[-i ip] MySQL 서버에 연결하기 위한 IP 주소를 지정합니다. 지정하지 않으면 기본값은 127.0.0.1입니다.
[-port] MySQL 서버에 연결하기 위한 포트를 지정합니다. 지정하지 않으면 기본값은 3309입니다.
[-d dbname] 생성할 데이터베이스의 이름을 미리 설정합니다. 기본값은 NVD_NIST입니다.
[-t tablename] 테이블 이름을 미리 설정합니다. 기본값은 NVD_NIST_TABLE입니다.
[-c content] 리스트 컨텐츠을 선택합니다. 현재는 해당 인자를 사용하지 않아도 자동으로 NVD_NIST로 기본 설정되어 있습니다.
Available type - nvd, mitre
[-file] 외부에서 RAW 파일을 다운로드 하지 않고 이미 존재하는 해당 파일 경로로 지정합니다. $JAVA_HOME처럼 미리 지정된 환경 변수와 혼합하여 사용할 수 있습니다.
[-tc thread_count] 멀티쓰레드 갯수를 설정합니다. 입력하지 않을 경우, 자동으로 지정됩니다.
[output_file] 출력 타입 지정시, 추출될 파일명을 지정합니다. 출력 파일의 이름을 지정하는 것을 강력히 권장합니다. 확장자는 기재하지 않아도 되며, 만약 압축 확장자(.zip)가 붙어있다면, 추출된 파일들을 전부 압축하여 zip 파일로 만들어줍니다.

Configuration argument

[--db] 데이터베이스 파일로 추출합니다. MySQL 기반에서는 SQL 파일이 기본 확장자입니다.
[--csv] 데이터베이스에 있는 데이터 값들을 CSV 파일로 추출합니다.
[--setup-install] 처음 실행할 때 모듈이 정상적으로 작동할 수 있도록 합니다. DEPRECATED.
[--max-thread] 사용 가능한 최대 쓰레드 수로 지정합니다. 안정성을 위해 해당 인자는 권장하지 않습니다.

Example

아래는 해당 플랫폼을 사용하기 위해 입력하는 명령어의 예시들을 나열한 것입니다. 프로그램을 실행시킬 때 참조하시기 바랍니다.
예를 들어 특정 년도의 NVD-NIST CVE 리스트를 모두 가져와서 데이터베이스만 만들려면 다음과 같이 하십시오:

python cvemysql.py -year <year>

2003년부터 2008년까지의 NVD-NIST CVE 리스트를 데이터베이스에 담고 CSV 파일과 DB로 추출하고 싶다면 다음과 같이 하십시오:

python cvemysql.py -u <name> -p <password> -year 2003-2008 --db --csv "my-cve-list-export"

모든 년도의 NVD-NIST 리스트를 데이터베이스에 담고 CSV 파일과 DB로 추출한 후, 파일이름이 my-cve-list-exportzip파일로 압축하고 싶다면 다음과 같이 하십시오. 단, 이 경우에는 시간이 오래 걸릴 수 있으며, 용량이 매우 클 수 있습니다:

python cvemysql.py -u <name> -p <password> --year-all --db --csv "my-cve-list-export.zip"

About

The integration database platform to scan of CVE lists

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages