본문 바로가기

어느 한 분야를 전문적으로 연구함. 또는 그 분야./정보를 여러가지 위협으로부터 보호

HKWT-2017-0004 / CVE-SEARCH v.REV

목차

1. 개요

2. 설치

2.1. 기본 패키지 설치

2.2. CVE-Search 다운로드

2.3. 파이썬3 라이브러리 설치

3. 운영

1. 개요

정보보안 인텔리전스에서 CVE는 어떤 위협이 존재하며 이러한 위협이 위험으로써의 가능성을 파악하기에 중요한 자원이다. CVE는 Common Vulnerabilities and Exposures의 약자로 취약점을 식별하고 관리하기 위한 고유 스키마를 의미한다. 여기서 설치하려는 CVE-SEARCH는 이미 HKWT-2016-0001에서 다룬적이 있지만, 일부 잘못된 내용과, 버전 업그레이드가 되었기에 이 문서에서 다시 정리한다.

게스트 스펙 - CVE-Search Server

  • 운영체제: 우분투 16.04.02 서버 AMD64
  • CPU: 가상 CPU 4코어
  • 메모리: 1GBB
  • 아이피: 192.168.0.

2. 설치

2.1. 기본 패키지 설치

CVE-Search는 기본으로 파이썬3를 사용한다. 따라서 라이브러리 설치할 때 파이썬3에 설치한다. 데이터베이스는 몽고DB를 사용하는데 설치할 버전은 2.X 버전이다. 우분투 기본 저장소에서 2.X 버전을 제공하니 단순하게 설치할 수 있다.

sudo apt-get install vim git mongodb python3-pip redis-server

2.2. CVE-Search 다운로드

이제 git을 이용하여 CVE-Search 소스코드를 다운로드한다. Latest Release가 안정적이니 이 버전을 다운로드한다.

git clone -b v2.1 https://github.com/cve-search/cve-search

잘 다운로드 받았는지 확인하려면 git 명령으로 확인한다. commit에 있는 해시값의 앞 18247fd가 아래 그림의 내용과 동일하다는 것을 알 수 있다.

cd ~/cve-search

git show

commit 18247fd56fca63ebbe29303a0b47e8626f47984c

Merge: 1fe9fa2 46cca81

Author: Alexandre Dulaunoy <a@foo.be>

Date:   Mon Jun 13 16:58:31 2016 +0200


    Merge pull request #170 from adulau/master


    Many fixes

2.3. 파이썬3 라이브러리 설치

파이썬3 라이브러리는 cve-search 디렉터리의 requirements.txt를 이용하여 설치한다.

sudo pip3 install -r ~/cve-search/requirements.txt

설치하는 파이썬3 라이브러리는 다음과 같다.

  • PyMongo
  • Flask
  • Flask-PyMongo
  • Flask-Login
  • Tornado
  • Whoosh
  • Redis
  • Python-dateutil
  • passlib
  • feedformater
  • Whoosh
  • irc
  • sleekxmpp
  • Werkzeug
  • Jinja2
  • itsdangerous
  • click

3. 운영

이제 CVE-Search에서 사용될 정보를 가져와서 몽고DB에 저장하는 작업을 진행한다. 먼저 데이터베이스를 생성한다. -p 옵션을 사용하며, 이를 통해 뼈대가되는 CVE 코드를 2002년부터 최신까지 가져온다. 데이터베이스에 데이터를 업데이트하거나 제어하는 과정은 cve-search/sbin 디렉터리에 있는 파이썬 코드로 진행한다. 

~/cve-search/sbin/python3 db_mgmt.py -p

Database population started

Importing CVEs for year 2002

Importing CVEs for year 2003

Importing CVEs for year 2004

Importing CVEs for year 2005

Importing CVEs for year 2006

Importing CVEs for year 2007

Importing CVEs for year 2008

Importing CVEs for year 2009

Importing CVEs for year 2010

Importing CVEs for year 2011

Importing CVEs for year 2012

Importing CVEs for year 2013

Importing CVEs for year 2014

Importing CVEs for year 2015

Importing CVEs for year 2016

Importing CVEs for year 2017

다음으로 CPE 딕셔너리를 다운로드한다. CPE 딕셔너리는 Common Platform Enumeration 약자로 컴퓨터 시스템에 존재하는 응용 프로그램, 운영 체제, 하드웨어 장치 등의 클래스를 설명하고 식별하기 위해 표준화한 것이다. CPE는 2.2 버전과 2.3 버전을 제공하며 XML 스키마로 정보를 공식적으로 제공한다.

~/cve-search/sbin/python3 db_mgmt_cpe-dictionary.py

마지막으로 다양한 사이트에서 CVE와 연관있는 정보를 가져온다.

~/cve-search/sbin/db_updater.py -c

CVE와 연관있는 데이터는 다음과 같은 사이트에서 가져온다.

  • cves (Common Vulnerabilities and Exposure items) - source NVD NIST
  • cpe (Common Platform Enumeration items) - source NVD NIST
  • vendor (Official Vendor Statements on CVE Vulnerabilities) - source NVD NIST
  • cwe (Common Weakness Enumeration items) - source NVD NIST
  • capec (Common Attack Pattern Enumeration and Classification) - source NVD NIST
  • ranking (ranking rules per group) - local cve-search
  • d2sec (Exploitation reference from D2 Elliot Web Exploitation Framework) - source d2sec.com
  • MITRE Reference Key/Maps - source MITRE reference Key/Maps
  • ms - (Microsoft Bulletin (Security Vulnerabilities and Bulletin)) - source Microsoft
  • exploitdb (Offensive Security - Exploit Database) - source offensive security
  • info (metadata of each collection like last-modified) - local cve-search
  • via4 VIA4CVE cross-references.




티스토리 툴바