cvechecker 漏洞掃描工具部署及效果展示
介紹
cvechecker的目標是通過掃描已安裝的軟件並將結果與CVE數據庫進行匹配來報告系統上可能存在的漏洞。
官方提示:
- 可能會產生許多誤報(漏洞已通過修訂版本修復,但該工具無法檢測修訂本身)。
- 但是該工具也需要您的幫助。最多的工作是告訴cvechecker如何檢測安裝了哪個軟件以及哪個版本。
cvechecker的核心功能就是拿到軟件的版本號,然后根據規則去匹配cve漏洞庫,cvechecker沒有依賴於包版本管理器,而是直接通過查找軟件包的版本號,然后構造CPE信息,通過在cve數據庫中查找給CPE信息來提取CVE信息, 開發者維護了一個軟件包和各個命令的映射關系表。內容類似於:
,perlivp,1,perlivp$,# perlivp v([0-9][0-9](.[0-9]+)+),a,perl,perl,\1,,,
,libvorbis.so,1,libvorbis.so.,Xiph.Org libVorbis ([0-9][0-9]*(.[0-9]+)+),a,xiph,libvorbis,\1,,,
用戶自己也可以定義添加這種映射表,同時這也是作者所提議的,而默認的映射表是由開發者維護的,默認只有651條,因此這里就是漏報的一處主要原因。另外一個原因就是上面提到的,無法檢測補丁。
支持的數據庫:
參考鏈接
安裝使用
-
測試機器:CentOS 7
-
環境要求
- SQLite3, MySQL, PostgreSQL, Redis
- git
- gccGNU Make
- libxslt
- libconfig
-
一. 環境部署:
-
1.工具安裝
# sudo yum -y install libxslt libconfig sqlite
-
2.安裝
先下載release版,最新版是4.0 https://github.com/sjvermeu/cvechecker/releases/tag/cvechecker-4.0# tar zxvf cvechecker-cvechecker-4.0.tar.gz # cd cvechecker-cvechecker-4.0 # ./configure -prefix=/root/cve/ --enable-sqlite3 # make # make install
-
踩坑
-
1 ./configure -prefix=/root/cve/ --enable-sqlite3 過程中失敗 已安裝sqlite,卻提示失敗
... checking for pkg-config... /bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for CONFIG... yes checking for SQLITE3... no configure: error: Package requirements (sqlite3 >= 3.6.16) were not met: No package 'sqlite3' found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables SQLITE3_CFLAGS and SQLITE3_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.
-
解決辦法:
# yum -y install sqlite-devel
-
2 ./configure -prefix=/root/cve/ --enable-sqlite3 過程中失敗 找不到Makefile.in文件
config.status: error: cannot find input file: `Makefile.in'
-
解決辦法:
# aclocal # autoheader # automake --add-missing
-
3 make過程失敗 libbsd
configure: error: Package requirements (libbsd) were not met: No package 'libbsd' found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables BSD_CFLAGS and BSD_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.
-
解決辦法:
# yum -y install libbsd-devel
-
-
3.修改配置文件
# cp ./conf/cvechecker.conf /etc
根據自己環境配置,mysql的在這里配置用戶名等
# # Generic settings # dbtype = "sqlite"; #dbtype="mysql"; cvecache = "/usr/local/var/cvechecker/cache"; datadir = "/usr/local/share/cvechecker"; stringcmd = "/usr/bin/strings -n 3 '@file@'"; version_url = "https://raw.github.com/sjvermeu/cvechecker/master/versions.dat"; #userkey = "servertag"; # # For Sqlite3 # sqlite3: { localdb = "/usr/local/var/cvechecker/local"; globaldb = "/usr/local/var/cvechecker/global.db"; }; # # For MySQL # mysql: { dbname = "cvechecker"; dbuser = "cvechecker_rw"; dbpass = "password4cvechecker_rw"; dbhost = "mysql.company.com"; };
-
4.初始化表
# cvechecker -i
-
5.獲取漏洞數據
# pullcves pull
-
6.生成掃描文件列表
# find / -type f -perm -o+x > scanlist.txt # echo "/proc/version" >> scanlist.txt
-
7.執行掃描
# cvechecker -b scanlist.txt
-
8.輸出匹配條目
# cvechecker -r
# cvechecker -r -C // 以cvs格式輸出
-
9.生成web UI報告 cvereport -D 生成文件的目標目錄 acknowledgements.xml所在目錄
# cvereport -D /root/ /root/cvechecker-cvechecker-4.0/data/acknowledgements.xml
-
時間:03/05/2021
作者:HsinTsao