1 引言
CVE 的英文全稱是“Common Vulnerabilities & Exposures”公共漏洞和暴露。CVE就好像是一個字典表,爲廣泛認同的信息安全漏洞或者已經暴露出來的弱點給出一個公共的名稱。使用一個共同的名字,可以幫助用戶在各自獨立的各種漏洞數據庫中和漏洞評估工具中共享數據,雖然這些工具很難整合在一起。這樣就使得CVE成爲了安全信息共享的“關鍵字”。如果在一個漏洞報告中指明的一個漏洞,如果有CVE名稱,你就可以快速地在任何其它CVE兼容的數據庫中找到相應修補的信息,解決安全問題。
CVE-Search - 一款根據個大漏洞庫數據在本地建立漏洞庫並進行查找的工具。具體參見官網: https://www.cve-search.org/
且git鏈接:https://github.com/cve-search/cve-search
2 所需實驗環境
實驗所需環境:VMware workstation Pro 15.5.1、Ubuntu 16.04.3、python 3.6.6、Mongodb 3.6.2、Redis 5.0.7。
3 配置流程
以下所需工具若已安裝,則可略過。
3.1 升級python 2.7 到python 3.6.6
首先使用命令
python -V
來查看本機python版本。由於Ubuntu系統自帶py2.7,而cve-search所需py版本爲python 3.6 或更高,故升級。升級步驟如下:
- 下載源tar包並解壓,使用如下命令。
wget http://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz tar -xzvf Python-3.6.6.tgz
若速度過慢,可以現在win下從官網下載好合適的安裝包,拖到虛擬機裏。
-
使用su命令切換到root,在/usr/local目錄下新建一個文件夾python3作爲安裝位置,使用如下命令。
mkdir /usr/local/python3
-
切換到解壓安裝包的目錄,執行如下命令。
./configure -prefix=/usr/local/python3
-
安裝zlib*(首次安裝需要轉否則會報錯),執行如下命令。
sudo apt-get install zlib*
-
執行make命令。
make make install
-
執行如下命令建立軟連接。
mv /usr/bin/python /usr/bin/python_old2 ln -s /usr/local/python3/bin/python3 /usr/bin/python
-
執行命令查看當前python版本
python -V
顯示版本爲python3.6.6,成功。
3.2 安裝MongoDB 3.6.2
- 首先下載mongodb 3.6.2安裝包,之後執行如下命令解壓。並將解壓包copy到指定目錄。
tar -zxvf mongodb-linux-x86_64-3.6.2.tgz mv mongodb-linux-x86_64-3.6.2/ /usr/local/mongodb
- MongoDB 的可執行文件位於 bin 目錄下,所以可以將其添加到 PATH 路徑中:
export PATH=<mongodb-install-directory>/bin:$PATH
<mongodb-install-directory> 爲你 MongoDB 的安裝路徑。如本文的 /usr/local/mongodb 。
-
創建數據庫目錄。
mkdir -p /data/db
注意:/data/db是mongodb默認的啓動數據庫的路徑。
-
切換到目錄/usr/local/mongodb , 運行mongodb。
./mongod
注意:如果你的數據庫目錄不是/data/db,可以通過 --dbpath 來指定。
-
如果看到 則表示安裝成功。接下來使用mongodb後臺管理連接一下,進行簡單的測試。
cd /usr/local/mongodb/bin ./mongo
會默認連接到test數據庫,由於後臺使用JavaScript,故可以執行簡單的js語句。
2 + 2
返回結果4。安裝完成。
3.3 安裝Redis 5.0.7
- 首先下載redis安裝包,下載地址:http://redis.io/download,下載最新穩定版本。本次使用5.0.7。
- 下載完成之後解壓並安裝
tar xzf redis-5.0.7.tar.gz cd redis-2.8.17 make
- make完後 redis-2.8.17目錄下會出現編譯後的redis服務程序redis-server,還有用於測試的客戶端程序redis-cli,兩個程序位於安裝目錄 src 目錄下。接下來啓動redis服務,執行如下命令。
cd src ./redis-server
- 啓動成功。之後打開客戶端連接一下,並進行簡單的測試。
cd src ./redis-cli
- 進行測試
redis> set foo bar OK redis> get foo "bar"
若返回值正常,則ojbk。
3.4 配置CVE-Search
- 首先從git上下載源碼,https://github.com/cve-search/cve-search,並解壓。之後使用如下命令安裝pip3(若已安裝則可忽略)。
sudo apt-get install python3-pip
- 之後使用命令安裝cve-search依賴庫,
cd cve-search-master/ sudo pip3 install -r requirements.txt
注意:
源如果沒換到國內可能會安裝失敗,多試幾次就好了,也可以參照https://blog.csdn.net/fengzhen8023/article/details/82927776將軟件源換到國內的。如果不換國內源的話,可能有各種庫沒裝上,後面運行.py文件時根據報錯信息手動裝一下就可。
-
執行如下命令加載cpe的庫。
./sbin/db_mgmt_cpe_dictionary.py -p
- 完成後執行命令加載cve的庫。
./sbin/db_mgmt_json.py -p
4 cve-search數據庫結構
MongoDB數據庫的名稱是 cvedb,庫中包括11個集合:
- cves
- cpe
- cwe
- capec
- ranking
- d2sec
- MITRE Reference Key/Maps
- ms
- exploitdb
- info
- via4 VIA4CVE cross
Redis數據庫包括有三個庫:
- 10: The cpe (Common Platform Enumeration) cache - source MongoDB cvedb collection cpe
- 11: The notification database - source cve-search
- 12: The CVE reference database is a cross-reference database to CVE ids against various vendors ID - source NVD NIST/MITRE
5 cve-search使用
用法有很多,此處只是簡單的列舉了一下,更多詳細用法參見demo中的readme。
5.1 更新數據庫
在3.4中已經填充了cve-search數據庫,之後若想更新數據庫,可使用以下命令。
./sbin/db_updater.py -v
可以在crontab中運行它,默認情況下,日誌記錄是在syslog中完成的。
5.2 重新填充數據庫
使用如下命令可以刪除並重新填充所有數據庫。
./sbin/db_updater.py -v -f
5.3 搜索
可以使用search.py搜索數據庫
./bin/search.py -p cisco:ios:12.4
./bin/search.py -p cisco:ios:12.4 -o json
./bin/search.py -f nagios -n
./bin/search.py -p microsoft:windows_7 -o html
6 參考資料
https://blog.csdn.net/liangcha007/article/details/89349012
https://www.runoob.com/mongodb/mongodb-linux-install.html
https://www.runoob.com/redis/redis-install.html
https://github.com/cve-search/cve-search