5 款漏洞扫描工具:实用、强力、全面(含开源)
目錄
引言
5款工具,打包帶走吧!
第一款:Trivy
概述
安裝
第二款:OpenVAS
概述
安裝
第三款:Clair
概述
安裝
第四款:Anchore
概述
安裝
第五款:Sqlmap
概述
安裝
引言
漏洞掃描是一種安全檢測(cè)行為,更是一類(lèi)重要的網(wǎng)絡(luò)安全技術(shù),它能夠有效提高網(wǎng)絡(luò)的安全性,而且漏洞掃描屬于主動(dòng)的防范措施,可以很好地避免黑客攻擊行為,做到防患于未然。那么好用的漏洞掃描工具有哪些?
答案就在本文!
5款工具,打包帶走吧!
第一款:Trivy
概述
Trivy 是一個(gè)開(kāi)源漏洞掃描程序,能夠檢測(cè)開(kāi)源軟件中的 CVE。這款工具針對(duì)風(fēng)險(xiǎn)提供了及時(shí)的解釋,開(kāi)發(fā)人員可自行決定是否在容器或應(yīng)用程序中使用該組件。常規(guī)的容器安全協(xié)議使用的是靜態(tài)鏡像掃描來(lái)發(fā)現(xiàn)漏洞,Trivy 則是將漏洞掃描工具無(wú)縫合并到集成開(kāi)發(fā)環(huán)境當(dāng)中。
另外,由于背靠龐大的開(kāi)源社區(qū),許多的集成及附加組件都支持 Trivy,例如使用 Helm 圖表能夠?qū)?Trivy 安裝到 Kubernetes 集群,借助 Prometheus 導(dǎo)出器能夠提取漏洞指標(biāo)。
安裝
Trivy安裝:
非常簡(jiǎn)單,如果有Golang環(huán)境的可以Clone源碼倉(cāng)自己編譯構(gòu)建。或者使用發(fā)行版的包安裝器安裝,比如CentOS:
?
Ubuntu安裝:
?
Trivy也支持容器方式部署:
docker pull aquasec/trivy:0.20.2然后直接啟動(dòng)容器:
docker run --rm -v [YOUR_CACHE_DIR]:/root/.cache/ aquasec/trivy:0.20.2 [YOUR_IMAGE_NAME]如果想要掃主機(jī)上的鏡像,可能需要掛載docker.sock,例如:
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \-v $HOME/Library/Caches:/root/.cache/ aquasec/trivy:0.20.2 python:3.4-alpine第二款:OpenVAS
概述
OpenVAS 是一款功能全面的免費(fèi)開(kāi)源漏洞掃描器和管理系統(tǒng)。它得到了 GNU 通用公開(kāi)許可證授權(quán)許可,支持包括多個(gè) Linux 發(fā)行版在內(nèi)的不同操作系統(tǒng)。OpenVAS 利用了可自動(dòng)更新的社區(qū)來(lái)源的漏洞數(shù)據(jù)庫(kù),涵蓋 5 萬(wàn)多個(gè)已知網(wǎng)絡(luò)漏洞測(cè)試。也就是說(shuō),它能非常細(xì)致地查看整個(gè)系統(tǒng),并對(duì)已經(jīng)或未經(jīng)身份驗(yàn)證的協(xié)議進(jìn)行測(cè)試。而實(shí)施過(guò)的漏洞測(cè)試也相當(dāng)細(xì)致,會(huì)深入分析計(jì)算機(jī)及服務(wù)器受保護(hù)的程度。
安裝
1、前提條件
①.虛擬機(jī)配置靜態(tài)ip,橋接模式,設(shè)置IPADDR,其中GATEWAY,NETMASK,DNS需要設(shè)置與 右鍵網(wǎng)絡(luò)–更改適配器–以太網(wǎng)狀態(tài)–詳細(xì)信息保持一致
②.設(shè)置虛擬機(jī)代理,通過(guò)圖形化界面給虛擬機(jī)設(shè)置代理,可以訪(fǎng)問(wèn)網(wǎng)絡(luò),但是不能使用yum源。安裝openvas 需要使用yum源,做如下修改。在/etc/yum.conf中加入下面幾句
proxy=http://10.4.200.228:8080
proxy_username=bmcc\60000
proxy_password=pl,12345
③./root/.bashrc(/etc/profile)中加入(或者在命令行中輸入,終端中是暫時(shí)的):
export http_proxy=“http://username:[email protected]:808”
④.如果是通過(guò)ip或者是網(wǎng)卡的認(rèn)證,可以忽略所有的user,password等。停止使用代理的的時(shí)候,需要將環(huán)境變量,yum配置文件恢復(fù):unset http_proxy(去除環(huán)境變量),輸入env可以查看環(huán)境變量
?
2、配置步驟
①.禁用selinux,重啟生效
yum在線(xiàn)裝
②.關(guān)閉防火墻
③.yum更新
④.安裝依賴(lài):
⑤.添加倉(cāng)庫(kù)
⑥.安裝openvas
第三款:Clair
概述
Clair 是基于 API 的漏洞掃描程序,可對(duì)開(kāi)源容器層的任何已知安全漏洞進(jìn)行檢測(cè),更加便于創(chuàng)建持續(xù)監(jiān)控容器并查找安全漏洞的服務(wù)。Clair 能定期從各個(gè)來(lái)源收集漏洞元數(shù)據(jù),對(duì)容器鏡像索引,并提供用于檢索鏡像發(fā)現(xiàn)的特征的 API。漏洞元數(shù)據(jù)一旦更新,用戶(hù)就會(huì)收到提醒,這樣就能從之前掃描的鏡像中及時(shí)發(fā)現(xiàn)新的漏洞。另外,Clair 還提供了可用于查詢(xún)特定容器鏡像漏洞的 API。
安裝
1、在 OpenShift 安裝 Clair 環(huán)境
步驟詳細(xì)命令如下:
1.
$ oc new-project quay-enterprise2.
--- apiVersion: apps/v1 kind: Deployment metadata:name: clairv4-postgresnamespace: quay-enterpriselabels:quay-component: clairv4-postgres spec:replicas: 1selector:matchLabels:quay-component: clairv4-postgrestemplate:metadata:labels:quay-component: clairv4-postgresspec:volumes:- name: postgres-datapersistentVolumeClaim:claimName: clairv4-postgrescontainers:- name: postgresimage: postgres:11.5imagePullPolicy: "IfNotPresent"resources:limits:cpu: '2'memory: 6Girequests:cpu: '1'memory: 4Giports:- containerPort: 5432env:- name: POSTGRES_USERvalue: "postgres"- name: POSTGRES_DBvalue: "clair"- name: POSTGRES_PASSWORDvalue: "postgres"- name: PGDATAvalue: "/etc/postgres/data"volumeMounts:- name: postgres-datamountPath: "/etc/postgres" --- apiVersion: v1 kind: PersistentVolumeClaim metadata:name: clairv4-postgreslabels:quay-component: clairv4-postgres spec:accessModes:- "ReadWriteOnce"resources:requests:storage: "10Gi"volumeName: "clairv4-postgres"3.
$ oc create -f clairv4-postgres.yaml $ oc expose deployment/clairv4-postgres4.
introspection_addr: :8089 http_listen_addr: :8080 log_level: debug indexer:connstring: host=clairv4-postgres port=5432 dbname=clair user=postgres password=postgres sslmode=disablescanlock_retry: 10layer_scan_concurrency: 5migrations: true matcher:connstring: host=clairv4-postgres port=5432 dbname=clair user=postgres password=postgres sslmode=disablemax_conn_pool: 100run: ""migrations: trueindexer_addr: clair-indexer notifier:connstring: host=clairv4-postgres port=5432 dbname=clair user=postgres password=postgres sslmode=disabledelivery: 1mpoll_interval: 5mmigrations: true5.
$ oc create secret generic clairv4-config-secret --from-file=./config.yaml6.
--- apiVersion: apps/v1 kind: Deployment metadata:labels:quay-component: clair-comboname: clair-combo spec:replicas: 1selector:matchLabels:quay-component: clair-combotemplate:metadata:labels:quay-component: clair-combospec:containers:- image: quay.io/projectquay/clair:4.1.0imagePullPolicy: IfNotPresentname: clair-comboenv:- name: CLAIR_CONFvalue: /clair/config.yaml- name: CLAIR_MODEvalue: comboports:- containerPort: 8080name: clair-httpprotocol: TCP- containerPort: 8089name: clair-introprotocol: TCPvolumeMounts:- mountPath: /clair/name: configimagePullSecrets:- name: redhat-pull-secretrestartPolicy: Alwaysvolumes:- name: configsecret:secretName: clairv4-config-secret --- apiVersion: v1 kind: Service metadata:name: clairv4labels:quay-component: clair-combo spec:ports:- name: clair-httpport: 80protocol: TCPtargetPort: 8080- name: clair-introspectionport: 8089protocol: TCPtargetPort: 8089selector:quay-component: clair-combotype: ClusterIP7.
$ oc apply -f clair-combo.yaml $ oc expose svc/clairv48.
$ oc get all NAME READY STATUS RESTARTS AGE pod/clair-combo-6754dcfd75-wwbt9 1/1 Running 0 34s pod/clairv4-postgres-b9f679dc6-fhmcs 1/1 Running 0 2m51sNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/clairv4 ClusterIP 10.217.4.159 <none> 80/TCP,8089/TCP 34s service/clairv4-postgres ClusterIP 10.217.5.64 <none> 5432/TCP 119sNAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/clair-combo 1/1 1 1 34s deployment.apps/clairv4-postgres 1/1 1 1 2m51sNAME DESIRED CURRENT READY AGE replicaset.apps/clair-combo-6754dcfd75 1 1 1 34s replicaset.apps/clairv4-postgres-b9f679dc6 1 1 1 2m51sNAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD route.route.openshift.io/clairv4 clairv4-quay-enterprise.crc-dzk9v-master-0.crc.fa7bdknrdb3y.instruqt.io clairv4 clair-http None安裝 Clair 客戶(hù)端
從 https://github.com/quay/clair/releases 下載 Clair 客戶(hù)端。
$ curl -L https://github.com/quay/clair/releases/download/v4.3.5/clairctl-linux-amd64 -o ~/clairctl $ chmod +x clairctl $ PATH=$PATH:~/第四款:Anchore
概述
Anchore 是一款開(kāi)源 Docker 容器策略合規(guī)與靜態(tài)分析的工具。激活之后,Anchore 會(huì)自動(dòng)執(zhí)行容器內(nèi)容的鏡像掃描、分析及評(píng)估。最終結(jié)果會(huì)針對(duì)每個(gè)鏡像進(jìn)行策略評(píng)估,并判定是否符合業(yè)務(wù)要求。Anchore 主要是通過(guò)分析容器鏡像的內(nèi)容,發(fā)現(xiàn)隱藏的漏洞。同時(shí),它也會(huì)掃描已知漏洞并確保鏡像遵循了最佳安全標(biāo)準(zhǔn)與最佳行業(yè)實(shí)踐。最重要的是,Anchore 集成了容器注冊(cè)表和 CI/CD 工具。
安裝
https://github.com/anchore/anchore.git
錨的架構(gòu)
過(guò)去,設(shè)置 Anchore 需要專(zhuān)門(mén)安裝 Anchore Engine,該引擎獨(dú)立于您的映像構(gòu)建環(huán)境運(yùn)行。單獨(dú)的 CLI 可讓您與引擎交互。
此模型需要使用一系列 CLI 命令來(lái)向 Anchore 注冊(cè)圖像、開(kāi)始掃描并訪(fǎng)問(wèn)結(jié)果。這些步驟通過(guò)從注冊(cè)表中提取圖像、生成報(bào)告并使其可供使用來(lái)推進(jìn)錨定。
Anchore 現(xiàn)在也提供內(nèi)聯(lián)掃描。這些為您提供了一個(gè)命令來(lái)掃描圖像并在終端中獲取結(jié)果。我們將在本文中重點(diǎn)介紹此功能。
運(yùn)行內(nèi)聯(lián)腳本
內(nèi)聯(lián)掃描由托管在 Anchore 服務(wù)器上的 Bash 腳本提供。將腳本下載到您的機(jī)器上并使其可執(zhí)行:
curl -s https://ci-tools.anchore.io/inline_scan-latest -o anchore.shchmod +x anchore.sh現(xiàn)在您可以使用內(nèi)聯(lián)腳本開(kāi)始掃描容器映像:
./anchore.sh -r alpine:latest第一次掃描可能需要一段時(shí)間。該腳本將拉取 Anchore Engine Docker 鏡像,啟動(dòng)一個(gè)新的 Anchore 實(shí)例,并配置 PostgreSQL 和一個(gè) Docker 注冊(cè)表實(shí)例。然后它會(huì)等待錨定引擎啟動(dòng)。
?一旦引擎運(yùn)行,目標(biāo) Docker 鏡像將被拉取和分析。然后,您將看到終端中顯示的安全報(bào)告。該腳本將通過(guò)清理環(huán)境并停止 Anchore Engine Docker 容器來(lái)完成。
第五款:Sqlmap
概述
Sqlmap 屬于滲透測(cè)試工具,但具有自動(dòng)檢測(cè)和評(píng)估漏洞的功能。該工具不只是簡(jiǎn)單地發(fā)現(xiàn)安全漏洞及利用漏洞的情況,它還針對(duì)發(fā)現(xiàn)結(jié)果創(chuàng)建了詳細(xì)的報(bào)告。Sqlmap 利用 Python 進(jìn)行開(kāi)發(fā),支持任何安裝了 Python 解釋器的操作系統(tǒng)。它能自動(dòng)識(shí)別密碼哈希,并使用六種不同方法來(lái)利用 SQL 注入漏洞。此外,Sqlmap 的數(shù)據(jù)庫(kù)非常全面,支持 oracle、PostgreSQL、MySQL、SqlServer 和 access。
安裝
1、環(huán)境要求
?Python2.7(python3不支持)
2、安裝步驟
在sqlmap官網(wǎng)http://sqlmap.org/下載最新版本的sqlmap安裝包。當(dāng)前展示版本為1.3.2-25,如下圖所示:
將下載下來(lái)的安裝包sqlmapproject-sqlmap-1.3.2-25-gaf890d6.zip解壓到自己想存放的目錄并重命名,這里以D盤(pán)為例,并將解壓后的文件重命名為sqlmap。解壓后的目錄結(jié)構(gòu)如下圖所示:
驗(yàn)證sqlmap是否安裝完成,可進(jìn)行如下操作進(jìn)行驗(yàn)證:
1.打開(kāi)cmd窗口,進(jìn)入到python的安裝目錄(這里如果配置了python環(huán)境變量,則不需要進(jìn)入到此目錄):
2.執(zhí)行如下命令:
python D:\sqlmap\sqlmap.py --version3.若顯示sqlmap版本號(hào),則安裝成功。如下圖所示:
總結(jié)
以上是生活随笔為你收集整理的5 款漏洞扫描工具:实用、强力、全面(含开源)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 服务器刀片开机会进入系统吗,ibm刀片服
- 下一篇: [猎豹网校]数据结构与算法_C#语言