快速上手云原生安全平臺(tái) NeuVector

作者簡介
萬紹遠(yuǎn),CNCF 基金會(huì)官方認(rèn)證 Kubernetes CKA&CKS 工程師,云原生解決方案架構(gòu)師。對(duì) ceph、Openstack、Kubernetes、prometheus 技術(shù)和其他云原生相關(guān)技術(shù)有較深入的研究。參與設(shè)計(jì)并實(shí)施過多個(gè)金融、保險(xiǎn)、制造業(yè)等多個(gè)行業(yè) IaaS 和 PaaS 平臺(tái)設(shè)計(jì)和應(yīng)用云原生改造指導(dǎo)。

前 言

NeuVector 是業(yè)界首個(gè)端到端的開源容器安全平臺(tái),唯一為容器化工作負(fù)載提供企業(yè)級(jí)零信任安全的解決方案。NeuVector 可以提供實(shí)時(shí)深入的容器網(wǎng)絡(luò)可視化、東西向容器網(wǎng)絡(luò)監(jiān)控、主動(dòng)隔離和保護(hù)、容器主機(jī)安全以及容器內(nèi)部安全,容器管理平臺(tái)無縫集成并且實(shí)現(xiàn)應(yīng)用級(jí)容器安全的自動(dòng)化,適用于各種云環(huán)境、跨云或者本地部署等容器生產(chǎn)環(huán)境。

此前,我們介紹了 NeuVector 的安裝部署、高可用架構(gòu)設(shè)計(jì)和多云安全管理,本篇將演示 NeuVector 的基礎(chǔ)功能,主要包括:

  1. 安全漏洞管理
  2. 合規(guī)性檢查和機(jī)密性檢查
  3. 策略管理
  4. 準(zhǔn)入控制策略
  5. 動(dòng)態(tài)安全響應(yīng)
  6. 行為監(jiān)控

項(xiàng)目地址:https://github.com/neuvector/neuvector

本文主要基于 NeuVector 首個(gè)開源版 NeuVector:5.0.0-preview.1 進(jìn)行介紹。

1.安全漏洞管理

NeuVector 集成了 CVE 漏洞庫,每天自動(dòng)更新,支持對(duì)平臺(tái)(Kubernetes)、主機(jī)、容器、鏡像倉庫進(jìn)行安全漏洞掃描。

配置自動(dòng)掃描,當(dāng)平臺(tái)漏洞庫有更新,或有新的節(jié)點(diǎn)和容器加入時(shí),會(huì)自動(dòng)進(jìn)行掃描。

針對(duì)不同漏洞,有不同的風(fēng)險(xiǎn)級(jí)別提示、對(duì)應(yīng)的組件版本提示和修復(fù)版本提示。

針對(duì)每個(gè)漏洞,NeuVector 可以展示對(duì)應(yīng)的漏洞發(fā)布時(shí)間、漏洞影響范圍、對(duì)應(yīng)的組件影響版本。

對(duì)漏洞進(jìn)行過濾,檢測(cè)是否已經(jīng)修復(fù),以及漏洞等級(jí)、發(fā)布時(shí)間等。

1.1. 配置對(duì)接鏡像倉庫漏洞掃描

支持對(duì)接多種鏡像倉庫如 docker-registry(harbor)、JFrog Artifactory、Nexus 等。

以對(duì)接 Harbor 為例。配置連接方式,填寫連接方式和認(rèn)證信息,過濾器表示需要掃描的范圍,如掃描 uat 項(xiàng)目下全部鏡像則 uat/*,如果需要掃描整個(gè) Harbor 內(nèi)全部鏡像則 * 。測(cè)試設(shè)置可以驗(yàn)證編寫的表達(dá)式的關(guān)聯(lián)情況。

2.合規(guī)性檢查和機(jī)密性檢查

NeuVector 的合規(guī)性審核包括 CIS 基線測(cè)試、自定義檢查、機(jī)密審核以及 PCI、GDPR 和其他法規(guī)的行業(yè)標(biāo)準(zhǔn)模板掃描。

“類型”表示對(duì)應(yīng)的那個(gè)基線標(biāo)準(zhǔn),如 K.4.1.1 對(duì)應(yīng) Kubernetes CIS 基線測(cè)試,4.1.1 容器對(duì)應(yīng)的基線標(biāo)準(zhǔn)為 D 開頭,鏡像對(duì)應(yīng)的基線標(biāo)準(zhǔn)為 I 開頭。

注:GDPR (General Data Protection Regulation,《通用數(shù)據(jù)保護(hù)條例》)為歐盟條例。

在合規(guī)性檢查中也會(huì)檢查是否存在密文泄漏情況。

包括如以下密文泄漏情況:

General Private Keys
General detection of credentials including 'apikey', 'api_key', 'password', 'secret', 'passwd' etc.
General passwords in yaml files including 'password', passwd', 'api_token' etc.
General secrets keys in key/value pairs
Putty Private key
Xml Private key
AWS credentials / IAM
Facebook client secret
Facebook endpoint secret
Facebook app secret
Twitter client Id
Twitter secret key
Github secret
Square product Id
Stripe access key
Slack API token
Slack web hooks
LinkedIn client Id
LinkedIn secret key
Google API key
SendGrid API key
Twilio API key
Heroku API key
MailChimp API key
MailGun API key

3.策略管理

NeuVector 通過組的方式對(duì)容器和主機(jī)進(jìn)行管理,對(duì)組進(jìn)行合規(guī)性檢查、網(wǎng)絡(luò)規(guī)則、進(jìn)程和文件訪問規(guī)則、DLP/WAF 的檢測(cè)配置。

NeuVector 會(huì)自動(dòng)將當(dāng)前集群主機(jī)加入到 nodes 組,對(duì)于集群內(nèi)容器會(huì)自動(dòng)創(chuàng)建以 nv.開頭的組。

NeuVector 的組支持 3 種模式:學(xué)習(xí)模式、監(jiān)控模式和保護(hù)模式;各個(gè)模式實(shí)現(xiàn)作用如下:

  • 學(xué)習(xí)模式
    學(xué)習(xí)和記錄容器、主機(jī)間網(wǎng)絡(luò)連接情況和進(jìn)程執(zhí)行信息。
    自動(dòng)構(gòu)建網(wǎng)絡(luò)規(guī)則白名單,保護(hù)應(yīng)用網(wǎng)絡(luò)正常行為。
    為每個(gè)服務(wù)的容器中運(yùn)行的進(jìn)程設(shè)定安全基線,并創(chuàng)建進(jìn)程配置文件規(guī)則白名單。

  • 監(jiān)控模式
    NeuVector 監(jiān)視容器和主機(jī)的網(wǎng)絡(luò)和進(jìn)程運(yùn)行情況,遇到非學(xué)習(xí)模式下記錄的行為將在 NeuVector 中進(jìn)行告警。

  • 保護(hù)模式
    NeuVector 監(jiān)視容器和主機(jī)的網(wǎng)絡(luò)和進(jìn)程運(yùn)行情況,遇到非學(xué)習(xí)模式下記錄的行為直接拒絕。

新建的容器業(yè)務(wù)被自動(dòng)發(fā)現(xiàn)默認(rèn)為學(xué)習(xí)模式,也可以通過設(shè)置將默認(rèn)模式設(shè)置為監(jiān)控模式或保護(hù)模式。

不同組策略沖突情況下,適用的有效模式如下表:

為了保證業(yè)務(wù)的穩(wěn)定運(yùn)行,當(dāng)出現(xiàn)模式不一致時(shí),有效模式以限制最小的模式運(yùn)行。

生產(chǎn)環(huán)境最佳實(shí)踐使用路徑可以是:

  • 上新業(yè)務(wù)時(shí),先學(xué)習(xí)模式運(yùn)行一段時(shí)間,進(jìn)行完整的功能測(cè)試和調(diào)用測(cè)試,得到實(shí)際運(yùn)行此業(yè)務(wù)的網(wǎng)絡(luò)連接情況和進(jìn)程執(zhí)行情況信息。
  • 監(jiān)控模式運(yùn)行一段時(shí)間,看看有沒有額外的特殊情況,進(jìn)行判斷,添加規(guī)則。
  • 最后全部容器都切換到保護(hù)模式,確定最終形態(tài)。

3.1. 動(dòng)態(tài)微隔離

使用場(chǎng)景一:POD 間通過網(wǎng)絡(luò)策略互相隔離

在 Kubernetes 平臺(tái)中創(chuàng)建四個(gè) Nginx,名稱和用途如下:
workload_name:test-web1 image:nginx 用途:web 服務(wù)器
workload_name:test-con1 image:nginx 用途:連接客戶端 1
workload_name:test-con2 image:nginx 用途:連接客戶端 2
workload_name:test-con3 image:nginx 用途:連接客戶端 3

創(chuàng)建 workload

kubectl create deployment test-web1 --image=nginx
kubectl expose deployment/test-web1 --port=80 --type=NodePort
kubectl create deployment test-con1 --image=nginx
kubectl create deployment test-con2 --image=nginx
kubectl create deployment test-con3 --image=nginx

此時(shí)在 NeuVector 中會(huì)自動(dòng)生成這幾個(gè)組:

在 test-con1 中通過 curl 訪問 test-web1

此時(shí)可以正常訪問,因?yàn)樵趯W(xué)習(xí)模式下 NeuVector 也會(huì)自動(dòng)添加此訪問規(guī)則。

將 test-web1 和 test-con2 都設(shè)置為監(jiān)控模式

然后在 test-con2 中 curl 訪問 test-web1

此時(shí) test-con2 可以正常訪問 test-web1,但在 NeuVector 中會(huì)生成告警

同時(shí),相應(yīng)地,在網(wǎng)絡(luò)活動(dòng)拓?fù)鋱D中也可以看見對(duì)應(yīng)的連接鏈路變?yōu)榧t色。

將 test-web1 和 test-con2 都設(shè)置為保護(hù)模式,在通過 test-con2 去 curl test-web1

因?yàn)?curl 在學(xué)習(xí)模式時(shí)沒有使用,也不是 NeuVector 默認(rèn)允許的可執(zhí)行進(jìn)程,所以進(jìn)程直接就無法訪問了。

將 test-con1 設(shè)置為保護(hù)模式,此時(shí) test-con1 無法訪問外部網(wǎng)絡(luò)。

可以通過自定義添加網(wǎng)絡(luò)規(guī)則方式開通訪問。

在網(wǎng)絡(luò)規(guī)則頁,此處規(guī)則已經(jīng)是在學(xué)習(xí)模式下生成的規(guī)則列表。

添加外部訪問規(guī)則

NeuVector 深度了解應(yīng)用程序行為,并將分析有效負(fù)載,以確定應(yīng)用程序協(xié)議。協(xié)議包括:HTTP,HTTPS,SSL,SSH,DNS,DNCP,NTP,TFTP,ECHO,RTSP,SIP,MySQL,Redis,Zookeeper,Cassandra,MongoDB,PostgresSQL,Kafka,Couchbase,ActiveMQ,ElasticSearch,RabbitMQ,Radius,VoltDB,Consul,Syslog,Etcd,Spark,Apache,Nginx,Jetty,NodeJS,Oracle,MSSQL 和 GRPC。

現(xiàn)在 test-con1 的 curl 可以正常訪問 www.baidu.com

總結(jié):
除上述策略外,NeuVector 也內(nèi)置網(wǎng)絡(luò)威脅檢測(cè),能夠快速識(shí)別常用網(wǎng)絡(luò)攻擊,保護(hù)業(yè)務(wù)容器安全運(yùn)行。

無論保護(hù)模式如何,在“學(xué)習(xí)和監(jiān)視”模式下,NeuVector 將發(fā)出警報(bào),并且可以在“通知>安全事件”中找到這些威脅。在保護(hù)模式下將收到警報(bào)和阻止;還可以根據(jù)威脅檢測(cè)創(chuàng)建響應(yīng)規(guī)則。

包含的威脅檢測(cè)如下:

SYN flood attack
ICMP flood attack
IP Teardrop attack
TCP split handshake attack
PING death attack
DNS flood DDOS attack
Detect SSH version 1, 2 or 3
Detect SSL TLS v1.0
SSL heartbeed attack
Detect HTTP negative content-length buffer overflow
HTTP smugging attack
HTTP Slowloris DDOS attack
TCP small window attack
DNS buffer overflow attack
Detect MySQL access deny
DNS zone transfer attack
ICMP tunneling attack
DNS null type attack
SQL injection attack
Apache Struts RCE attack
DNS tunneling attack
TCP Small MSS attack
Cipher Overflow attack
Kubernetes man-in-the-middle attack per CVE-2020-8554

3.2. 進(jìn)程管理

NeuVector 支持對(duì)容器和主機(jī)內(nèi)進(jìn)程進(jìn)行管理,在學(xué)習(xí)模式下,運(yùn)行的進(jìn)程和命令會(huì)自動(dòng)添加到規(guī)則中。

此時(shí)在 test-con1 中執(zhí)行 df -h 會(huì)發(fā)現(xiàn)報(bào)錯(cuò) bash: /bin/df: Operation not permitted在 nv.test-con1.default 組中添加 df 進(jìn)程規(guī)則:

然后再重新執(zhí)行即可。

進(jìn)程管理也支持對(duì) node 節(jié)點(diǎn),可以在 node 組中進(jìn)行限制,約束宿主機(jī)進(jìn)程執(zhí)行。如限制執(zhí)行 docker cp 執(zhí)行,通過學(xué)習(xí)模式得知是 docker-tar 進(jìn)程在后端執(zhí)行,將節(jié)點(diǎn)切換到保護(hù)模式,限制 docker-tar 進(jìn)程即可。

這些在節(jié)點(diǎn)就無法執(zhí)行 docker cp

4.準(zhǔn)入策略控制

NeuVector 支持與 Kubernetes 準(zhǔn)入控制(admission-control)功能對(duì)接,實(shí)現(xiàn) UI 配置準(zhǔn)入控制規(guī)則,對(duì)請(qǐng)求進(jìn)行攔截,對(duì)請(qǐng)求的資源對(duì)象進(jìn)行校驗(yàn)。

NeuVector 支持多種準(zhǔn)入控制策率配置,如鏡像 CVE 漏洞情況限制、部署特權(quán)模式、鏡像內(nèi)使用 root 用戶、特定標(biāo)簽等。

在策略-準(zhǔn)入控制中開啟此功能,注意:需要 Kubernetes 集群提前開啟 admission-control 功能

NeuVector 準(zhǔn)入策略控制支持兩種模式:監(jiān)控模式和保護(hù)模式,對(duì)應(yīng)的含義和組的模式一樣的。這里我們直接切換到保護(hù)模式,添加策略。

添加完后,在 Rancher 中部署特權(quán)模式,容器會(huì)提示解決,策略生效。

5.動(dòng)態(tài)安全響應(yīng)

NeuVector 事件響應(yīng)機(jī)制可以將響應(yīng)規(guī)則設(shè)置為根據(jù)安全事件情況進(jìn)行動(dòng)態(tài)響應(yīng),包括以下事件:漏洞掃描結(jié)果、CIS 基準(zhǔn)測(cè)試、準(zhǔn)入控制事件等。

響應(yīng)動(dòng)作包括隔離、webhook 通知和日志抑制:

  • 隔離模式:對(duì)應(yīng)的容器網(wǎng)絡(luò)進(jìn)出流量將全部被切斷。
  • Webhook 通知:將觸發(fā)信息通過 webhook 方式進(jìn)行告警。
  • 日志抑制:對(duì)觸發(fā)告警信息進(jìn)行抑制。

6.行為監(jiān)控

以 CVE 漏洞配置為例,配置包含 CVE 漏洞名稱為 CVE-2020-16156 的容器進(jìn)入隔離模式。

組名對(duì)應(yīng)的是影響范圍,如果為空,表示對(duì)全部的組都生效,填寫組名可以設(shè)置對(duì)特定組生效。

配置策略后,在集群去 curl nginx 容器,發(fā)現(xiàn)無法訪問,在 NeuVector 中查看容器狀態(tài)為隔離狀態(tài)。

刪除策略時(shí),也可以配置將對(duì)應(yīng)隔離狀態(tài)容器解除隔離。

注意:

  • 隔離操作不適用于為主機(jī)事件觸發(fā)的規(guī)則。
  • 每個(gè)規(guī)則可以有多個(gè)操作。

6.1. 網(wǎng)絡(luò)流量可視化

網(wǎng)絡(luò)流量可視化,可以清晰可見容器集群內(nèi)的網(wǎng)絡(luò)連接關(guān)系、當(dāng)前容器連接會(huì)話,并且過濾網(wǎng)絡(luò)連接信息,進(jìn)行圖標(biāo)展示;能夠快速進(jìn)行網(wǎng)絡(luò)問題定位。

6.2. POD 流量抓包

針對(duì)容器可進(jìn)行網(wǎng)絡(luò)抓包,讓故障無需進(jìn)入主機(jī)獲取高權(quán)限,就能進(jìn)行網(wǎng)絡(luò)問題深入排查。

采集到的數(shù)據(jù)包可直接下載,通過 Wireshark 進(jìn)行解包分析。

總 結(jié)

本次我們主要講解了 NeuVector 的基礎(chǔ)功能,后續(xù)將深入介紹 DLP 和 WAF 的配置策略和管理使用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容