溫馨提示×

溫馨提示×

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

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

Safety如何安裝使用

發(fā)布時間:2021-11-30 09:24:18 來源:億速云 閱讀:251 作者:小新 欄目:安全技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)Safety如何安裝使用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

Safety

Safety是一款功能強(qiáng)大的漏洞檢測工具,可以幫助廣大研究人員檢測設(shè)備上已安裝依賴組件中存在的已知安全漏洞。默認(rèn)配置下,Safety使用的是開放Python漏洞數(shù)據(jù)庫-Safety DB,但是大家也可以使用--key選項來更新工具,并使用pyup.io的Safety API。

工具安裝

我們可以使用pip來安裝Safety,不過請大家記住,當(dāng)前版本的Safety僅支持Python 3.5及其更高版本的環(huán)境:

pip install safety

工具使用

運行下列命令,即可判斷當(dāng)前以選擇的安裝了依賴組件的虛擬環(huán)境,并檢測已知的安全漏洞:

safety check

運行之后,我們將看到如下圖所示的報告界面:

Safety如何安裝使用

現(xiàn)在,我們來安裝一些存在安全問題的依賴組件:

pip install insecure-package

接下來,再次運行漏洞檢測命令:

safety check

這一次的掃描結(jié)果如下:

Safety如何安裝使用

工具使用樣例

讀取工具所需文件

跟pip一樣,Safety能夠讀取本地requirement文件:

safety check -r requirements.txt

從Stdin讀取

Safety還能夠使用--stdin參數(shù)來從Stdin讀取輸入數(shù)據(jù)。如需檢測一個本地依賴文件,可運行下列命令:

cat requirements.txt | safety check --stdin

或者,從pip freeze的輸出讀取輸入:

pip freeze | safety check --stdin

或者,檢測一個單一依賴包:

echo "insecure-package==0.1" | safety check --stdin

在Docker中使用Safety

Safety還能夠以Docker容器的形式運行:

echo "insecure-package==0.1" | docker run -i --rm pyupio/safety safety check --stdin

cat requirements.txt | docker run -i --rm pyupio/safety safety check --stdin

使用Safety源碼

Safety的源代碼還提供了某些額外的安全功能,安裝完成之后,我們就能夠使用常規(guī)命令行版本的Safety了。點擊【這里】即可獲取Safety源代碼。

通過CI服務(wù)使用Safety

Safety還能夠配合CI管道一起使用,如果掃描到了一個漏洞的話,它會返回一個非零退出狀態(tài)。

Travis:

install:

  - pip install safety

 

script:

  - safety check

Gitlab CI:

safety:

  script:

    - pip install safety

- safety check

Tox:

[tox]

envlist = py37

 

[testenv]

deps =

    safety

    pytest

commands =

    safety check

Pytest

深度GitHub整合

如果你想要將Safety跟你自己的GitHub庫進(jìn)行深度整合的話,可以直接使用pyup.io中的Safety服務(wù),即Safety CI。Safety CI能夠檢測GitHub庫中依賴組件的commit和pull request,并尋找已知的安全漏洞,并將檢測結(jié)果和狀態(tài)顯示在GitHub中。

Safety如何安裝使用

在產(chǎn)品中使用Safety

Safety是免費且開源的,它的底層開放數(shù)據(jù)庫每個月還會更新一次。為了訪問到所有最新添加進(jìn)去的安全漏洞,我們需要使用一個Safety API密鑰以及一個付費的pyup.io賬號(約99美元)。

工具選項

--key

即pyup.io的漏洞數(shù)據(jù)庫API密鑰,需要在SAFETY_API_KEY環(huán)境變量中設(shè)置:

safety check --key=12345-ABCDEFGH

--db

指向本地數(shù)據(jù)庫的目錄路徑,其中包括insecure.json和insecure_full.json:

safety check --db=/home/safety-db/data

--proxy-host

代理主機(jī)的IP或DNS

--proxy-port

代理端口號

--proxy-protocol

代理協(xié)議(https或http)

--json

JSON格式的漏洞報告輸出:

safety check --json

[

    [

        "django",

        "<1.2.2",

        "1.2",

        "Cross-site scripting (XSS) vulnerability in Django 1.2.x before 1.2.2 allows remote attackers to inject arbitrary web script or HTML via a csrfmiddlewaretoken (aka csrf_token) cookie.",

        "25701"

    ]

]

--full-report

獲取完整的漏洞掃描報告,還包括安全建議:

safety check --full-report

+==============================================================================+

|                                                                              |

|                               /$$$$$$            /$$                         |

|                              /$$__  $$          | $$                         |

|           /$$$$$$$  /$$$$$$ | $$  \__//$$$$$$  /$$$$$$   /$$   /$$           |

|          /$$_____/ |____  $$| $$$$   /$$__  $$|_  $$_/  | $$  | $$           |

|         |  $$$$$$   /$$$$$$$| $$_/  | $$$$$$$$  | $$    | $$  | $$           |

|          \____  $$ /$$__  $$| $$    | $$_____/  | $$ /$$| $$  | $$           |

|          /$$$$$$$/|  $$$$$$$| $$    |  $$$$$$$  |  $$$$/|  $$$$$$$           |

|         |_______/  \_______/|__/     \_______/   \___/   \____  $$           |

|                                                          /$$  | $$           |

|                                                         |  $$$$$$/           |

|  by pyup.io                                              \______/            |

|                                                                              |

+==============================================================================+

| REPORT                                                                       |

+============================+===========+==========================+==========+

| package                    | installed | affected                 | ID       |

+============================+===========+==========================+==========+

| django                     | 1.2       | <1.2.2                   | 25701    |

+==============================================================================+

| Cross-site scripting (XSS) vulnerability in Django 1.2.x before 1.2.2 allows |

|  remote attackers to inject arbitrary web script or HTML via a csrfmiddlewar |

| etoken (aka csrf_token) cookie.                                              |

+==============================================================================+

--bare

僅輸出包含漏洞的依賴包,可結(jié)合其他工具一起使用:

safety check --bare

cryptography django

--cache

漏洞數(shù)據(jù)庫本地緩存,有效時長為兩小時:

safety check --cache

--stdin

從stdin讀取輸入數(shù)據(jù):

cat requirements.txt | safety check --stdin

pip freeze | safety check --stdin

echo "insecure-package==0.1" | safety check --stdin

--output, -o

將掃描結(jié)果輸出至文件:

safety check -o insecure_report.txt

safety check --output --json insecure_report.json

開源許可證協(xié)議

本項目的開發(fā)與發(fā)布遵循MIT開源許可證協(xié)議。

關(guān)于“Safety如何安裝使用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

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

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

AI