溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么使用VulnerableCode查看受漏洞影響的FOSS軟件代碼包

發(fā)布時(shí)間:2021-07-05 16:18:25 來源:億速云 閱讀:174 作者:chen 欄目:網(wǎng)絡(luò)安全

本篇內(nèi)容主要講解“怎么使用VulnerableCode查看受漏洞影響的FOSS軟件代碼包”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么使用VulnerableCode查看受漏洞影響的FOSS軟件代碼包”吧!

關(guān)于VulnerableCode

VulnerableCode是一個(gè)免費(fèi)的開放FOSS軟件包漏洞數(shù)據(jù)庫(kù),并且還包含了能夠創(chuàng)建并跟蹤當(dāng)前數(shù)據(jù)的相關(guān)工具。在該工具的幫助下,廣大研究人員能夠查看受漏洞影響的代碼包,并實(shí)現(xiàn)漏洞的聚合、關(guān)聯(lián)和管理。

FOSS,即Free and Open Source Software,這是聯(lián)合國(guó)教科文組織啟用的一個(gè)官方術(shù)語(yǔ)?!癋OSS產(chǎn)業(yè)”是有新意的,嚴(yán)格講來,它不完全等同于“開源產(chǎn)業(yè)”。FOSS把現(xiàn)代軟件業(yè)帶入一個(gè)全新階段?!癋OSS”的中譯文是“自由及開源軟件”。

VulnerableCode是FOSS社區(qū)開發(fā)的一款工具,它能夠提升開源軟件生態(tài)系統(tǒng)的安全性。

運(yùn)行機(jī)制

VulnerableCode獨(dú)立地聚合了許多軟件漏洞數(shù)據(jù)源,并以去中心化的方式支持?jǐn)?shù)據(jù)重新創(chuàng)建。這些數(shù)據(jù)源包括Linux和BSD發(fā)行版發(fā)布的安全建議、應(yīng)用程序軟件包管理器和包存儲(chǔ)庫(kù)、FOSS項(xiàng)目、GitHub等等。由于這種方法,數(shù)據(jù)集中在特定的生態(tài)系統(tǒng)上,但在單個(gè)數(shù)據(jù)庫(kù)中進(jìn)行聚合,從而能夠查詢代碼包之間更豐富的關(guān)系圖。特定性提高了數(shù)據(jù)的準(zhǔn)確性和有效性,因?yàn)榭绮煌鷳B(tài)系統(tǒng)的同一版本上游數(shù)據(jù)包可能會(huì)或可能不會(huì)受到同一漏洞的影響。

工具使用了Package URL PURL來作為主要標(biāo)識(shí)符,而沒有使用CPE。VulnerableCode對(duì)數(shù)據(jù)的主要訪問是通過REST API進(jìn)行的。

此外,工具還提供了一個(gè)高級(jí)的Web界面來幫助用戶更好地瀏覽和搜索漏洞數(shù)據(jù)庫(kù),并通過添加新的包和漏洞逐步實(shí)現(xiàn)數(shù)據(jù)的社區(qū)管理,以及審查和更新它們的關(guān)系。

工具安裝&配置

我們需要使用下列命令將該項(xiàng)目源碼克隆至本地:

git clone https://github.com/nexB/vulnerablecode.git

cd vulnerablecode

使用Docker Compose

安裝VulnerableCode最簡(jiǎn)單的方法就是使用Docker容器和Docker Compose。安裝好Docker引擎和Docker Compose之后,我們就可以使用下列命令來啟動(dòng)VulnerableCode了:

sudo docker-compose up

接下來,通過下列地址即可訪問VulnerableCode:

http://localhost:8000/

http://127.0.0.1:8000/

別忘了運(yùn)行蝦類命令來在每一次git pull之后同步你的實(shí)例:

sudo docker-compose up -d --no-deps --build web

然后,我們可以使用下列命令來訪問VulnerableCode容器,這里我們可以訪問manage.py,并運(yùn)行管理命令來導(dǎo)入數(shù)據(jù):

sudo docker-compose exec web bash

本地安裝

系統(tǒng)要求:

Python 3.8+

PostgreSQL 9+

針對(duì)Python和PostgreSQL的編譯工具鏈和開發(fā)文件

在基于Debian的發(fā)行版系統(tǒng)上,可以使用下列下列命令安裝和配置VulnerableCode:

sudo apt-get install python3-venv python3-dev postgresql libpq-dev build-essential

sudo -u postgres createuser --no-createrole --no-superuser --login \

--inherit --createdb --pwprompt vulnerablecode``

createdb --encoding=utf-8 --owner=vulnerablecode  --user=vulnerablecode \

--password --host=localhost --port=5432 vulnerablecode

python3 -m venv venv

source venv/bin/activate

pip install -r requirements.txt

DJANGO_DEV=1 python manage.py collectstatic

DJANGO_DEV=1 python manage.py migrate

運(yùn)行測(cè)試

下列命令可以運(yùn)行代碼風(fēng)格檢測(cè)和測(cè)試用例:

black -l 100 --check .

DJANGO_DEV=1 python -m pytest

數(shù)據(jù)導(dǎo)入

某些數(shù)據(jù)導(dǎo)入工具使用了GitHub API,首先我們需要使用下列命令導(dǎo)出GH_TOKEN環(huán)境變量:

export GH_TOKEN=yourgithubtoken

運(yùn)行所有的數(shù)據(jù)導(dǎo)入器:

DJANGO_DEV=1 python manage.py import --all

枚舉所有可用的導(dǎo)入器:

DJANGO_DEV=1 python manage.py import --list

運(yùn)行指定導(dǎo)入器:

DJANGO_DEV=1 python manage.py import rust npm

REST API訪問

開啟Web服務(wù)器

DJANGO_DEV=1 python manage.py runserver

獲取關(guān)于API節(jié)點(diǎn)的完整文檔:

http://127.0.0.1:8000/api/docs

連續(xù)定期數(shù)據(jù)導(dǎo)入

如果你想要持續(xù)定期導(dǎo)入數(shù)據(jù),你可以使用一個(gè)系統(tǒng)定時(shí)器:

$ cat ~/.config/systemd/user/vulnerablecode.service

 

[Unit]

Description=Update vulnerability database

 

[Service]

Type=oneshot

Environment="DJANGO_DEV=1"

ExecStart=/path/to/venv/bin/python /path/to/vulnerablecode/manage.py import --all

 

$ cat ~/.config/systemd/user/vulnerablecode.timer

 

[Unit]

Description=Periodically update vulnerability database

 

[Timer]

OnCalendar=daily

 

[Install]

WantedBy=multi-user.target

配置好之后,你就可以使用下列命令來開啟這個(gè)定時(shí)器:

systemctl --user daemon-reload

systemctl --user start vulnerablecode.timer

項(xiàng)目地址

VulnerableCode:https://github.com/nexB/vulnerablecode

參考資料

https://nvd.nist.gov/products/cpe

https://github.com/nexB/vulnerablecode/blob/main/SOURCES.rst

https://github.com/package-url/purl-spec

https://github.com/nexB/vulnerablecode/blob/main/docs/Why-Is-There-No-Free-Software-Vulnerability-Database-v1.0.pdf

https://docs.docker.com/get-docker/

https://docs.docker.com/compose/install/#install-compose

https://nixos.org/download.html

https://github.com/DavHau/mach-nix

https://github.com/DavHau/pypi-deps-db

https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token

到此,相信大家對(duì)“怎么使用VulnerableCode查看受漏洞影響的FOSS軟件代碼包”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI