隨著雲端服務的普及,伺服器安全和雲端資源管理變得日益重要。本文將介紹如何使用 Nikto 進行伺服器漏洞掃描,並結合 Komiser 監控雲端資源,提升整體安全性並最佳化成本。首先,我們會逐步講解 Nikto 的使用方法,從基本掃描到進階選項和技巧,例如躲避入侵偵測系統和使用突變技術。接著,我們會介紹 Komiser 的安裝和設定,並探討其在成本分析、安全洞察和資源監控方面的功能。透過整合 Nikto 和 Komiser,企業可以更有效地識別和應對安全風險,同時最佳化雲端資源的使用,降低營運成本。
使用Nikto進行伺服器掃描
Nikto是一款強大的開源Web伺服器掃描工具,用於檢測伺服器上的潛在安全問題和組態錯誤。在本章中,我們將探討如何使用Nikto掃描Web伺服器,並分析掃描結果。
執行Nikto掃描
首先,我們使用以下命令對目標伺服器執行Nikto掃描:
$ docker run --rm sullo/nikto -h https://remotehost.tld/
掃描完成後,Nikto提供了一些有用的資訊,例如:
- 根頁面重定向到:https://remotehost.tld/
- 未發現CGI目錄(可使用’-C all’強制檢查所有可能的目錄)
這些資訊雖然看似無害,但對於攻擊者來說可能是有價值的。 Nikto的掃描結果可以幫助我們發現伺服器組態中的問題,例如軟體包版本或目錄列表是否已啟用。
內容解密:
- Nikto掃描結果提供了目標伺服器的組態資訊和潛在的安全問題。
- 掃描結果中的重定向資訊可能表明伺服器組態了HTTPS。
- 未發現CGI目錄,但可以使用’-C all’選項強制檢查。
分析掃描結果
Nikto掃描完成後,我們可以分析掃描結果以瞭解目標伺服器的安全狀態。在範例中,Nikto發現了三個問題:
- 伺服器可能透過ETags洩露inode資訊。
- 允許的HTTP方法:POST、OPTIONS、HEAD、GET。
- 發現Apache預設檔案:/icons/README。
這些問題可能表明伺服器存在組態錯誤或安全漏洞。
內容解密:
- 伺服器透過ETags洩露inode資訊可能是一個誤報。
- 允許的HTTP方法可能表明伺服器支援不必要的HTTP方法。
- 發現Apache預設檔案表明伺服器可能存在組態錯誤。
掃描多個主機
Nikto允許我們掃描多個主機,只需使用-h開關並指定包含目標列表的檔案即可。檔案中的每個條目可以是IP地址或URL(包括協定和埠號)。
例如:
https://firsthost.com:1111
http://172.16.12.31:8080
在掃描過程中,我們可以使用互動式選項來控制Nikto的行為,如下表所示:
| 按鍵 | 操作 |
|---|---|
| 空格鍵 | 顯示當前狀態 |
| v | 啟用詳細模式 |
| d | 切換除錯模式 |
| p | 切換進度報告 |
| r | 切換重定向顯示 |
內容解密:
- Nikto允許我們掃描多個主機,並提供了互動式選項來控制掃描過程。
- 使用
-h開關指定包含目標列表的檔案,可以批次掃描多個主機。
Nikto 伺服器掃描工具進階應用
Nikto 是一款強大的伺服器掃描工具,除了基本的掃描功能外,它還提供了許多進階選項和技巧來幫助安全測試人員更有效地進行伺服器安全檢測。
命令列選項
Nikto 提供了豐富的命令列選項,讓使用者可以在執行時進行各種設定。這些選項可以在 cirt.net/nikto2-docs/options.html 找到。其中一些重要的選項包括:
-config:指定設定檔路徑或檔名,而不是使用預設的nikto.conf檔案。-Display:允許對 Nikto 的輸出進行多種變更,例如偵錯詳細程度。-list-plugins:列出 Nikto 可以使用的外掛。
內容解密:
這些命令列選項讓使用者可以根據自己的需求對 Nikto 進行客製化設定。例如,使用 -config 選項可以指定自定義的設定檔,而 -Display 選項則可以調整輸出的詳細程度。
躲避技術
Nikto 結合了 Libwhisker,一個用於 Perl 的模組,來實作其內部功能。其中一個重要的功能是 -evasion 選項,可以用來偽裝攻擊意圖,繞過入侵偵測系統(IDS)。這種技術包括調節封包速率、加密封包等,以避免被 IDS 偵測到。
內容解密:
Libwhisker 的 -evasion 選項提供了多種技術來躲避 IDS 的偵測,例如隨機 URI 編碼、目錄自我參照、提前結束 URL 等。這些技術可以幫助測試人員評估目標系統的安全性。
突變技術
Nikto 還提供了“突變”技術,透過混合和比對多種測試來對目標系統進行全面測試。這種方法可能會增加測試的數量和複雜度。
表格說明:
| 選項 | 突變技術 |
|---|---|
| 1 | 測試根目錄內容 |
| 2 | 搜尋常見的密碼檔案 |
| 3 | 透過 Apache 推斷使用者名稱 |
| 4 | 從 cgi-bin 目錄中的指令碼內容找出使用者名稱 |
| 5 | 確定是否存在子網域 |
| 6 | 搜尋目錄名稱 |
內容解密:
這些突變技術選項讓測試人員可以對目標系統進行更深入的測試,例如搜尋常見的密碼檔案、推斷使用者名稱等。
其他實用選項
Nikto 還提供了許多其他實用的選項,例如 -no404,可以減少 HTTP 404 錯誤檢查,從而縮短掃描時間。此外,還有“調校”選項,可以讓 Nikto 專注於特定的測試類別。
表格說明:
| 選項 | 調校選項 |
|---|---|
| 1 | 檔案上傳測試 |
| 2 | 在日誌或檔名中尋找有趣的內容 |
| 3 | 測試錯誤設定和已知檔名 |
| 4 | 檢查 XSS、HTML 和指令碼注入 |
| 5 | 嘗試檢索 Web 根目錄檔案 |
| … | … |
內容解密:
這些調校選項讓測試人員可以根據自己的需求選擇特定的測試類別,例如檢查 XSS、SQLi 等。
Nikto 網路掃描工具的深度解析與應用
Nikto 的調校選項與設定
Nikto 是一款功能強大的網路掃描工具,能夠針對目標主機進行深入的安全檢測。在使用 Nikto 時,調校選項(Tuning Options)是至關重要的。這些選項允許使用者根據需求精確地組態掃描行為。調校選項的解析順序是從左到右,如果出現 x(排除選項),則右側的所有選項都會被忽略,其他測試則會被執行。
主設定檔的自訂
Nikto 的主要設定檔位於 nikto/program/nikto.conf.default。建議將此檔案複製為 nikto.conf 以避免在執行 git pull 時覆寫自訂設定。以下是一些重要的自訂選項:
- SKIPPORTS:用於排除特定網路埠的掃描。
- USERAGENT:允許自訂 User-Agent 字串,以避免在目標主機的日誌中留下明顯的 Nikto 指紋。例如:
USERAGENT=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36 - UPDATES:預設情況下,Nikto 會將匿名更新回傳給官方網站。可以透過設定
UPDATES=no來關閉此功能。 - PROMPTS:設定
PROMPTS=no可以在 CI/CD 環境中避免確認提示。 - 靜態 Cookie:可以為請求新增自訂的 Cookie,例如:
STATIC-COOKIE="name=value";"something=nothing";
SSL 函式庫的選擇與錯誤處理
Nikto 允許使用者選擇使用的 SSL 函式庫,例如 Net::SSLeay 或 Net::SSL。可以透過設定 LW_SSL_ENGINE=auto 來自動選擇可用的函式庫。此外,還可以設定掃描失敗的閾值,預設為 20 次。可以透過 FAILURES 選項來調整此值,甚至設定為 0 以無限制地繼續掃描。
Nikto 的應用與最佳實踐
Nikto 能夠提供詳細的掃描報告,但也可能在目標主機的日誌中留下大量的記錄。因此,精確地控制掃描範圍至關重要。透過不斷地調整掃描引數,可以獲得更有價值的安全資訊。
雲端安全監控與管理
雲端安全的重要性
隨著雲端運算的普及,雲端安全已成為企業關注的重點。雲端安全不僅涉及容器化應用程式的安全,也包括底層雲端基礎設施的安全。
監控雲端運作
監控雲端運作是確保雲端安全的第一步。這包括監控資源的使用情況、網路流量、以及系統日誌等。
雲端稽核與合規
雲端稽核是確保雲端基礎設施符合安全標準和法規要求的關鍵步驟。透過自動化的稽核工具,可以持續監控雲端資源的組態和變更。
雲端儲存的安全
雲端儲存的安全是另一個重要的議題。企業需要確保儲存於雲端的資料得到適當的保護,防止資料外洩。
AWS 雲端儲存的安全實踐
以 AWS 為例,企業可以使用諸如 AWS IAM、AWS CloudTrail 等服務來增強雲端儲存的安全性。同時,也需要注意儲存桶(Bucket)的許可權設定,避免未經授權的存取。
雲端運算監控:Netdata 與 Komiser 的應用
在當今的雲端運算環境中,監控和管理工作負載已成為一項艱鉅的任務。隨著雲端平台的成熟,企業可以將工作負載與動態雲端服務緊密整合,但要保持其穩定運作並減少停機時間,需要付出相當的努力。在本章中,我們將探討雲端運算的 Ops 面,並介紹如何自信地應對相關挑戰。
開源雲端監控工具的重要性
有多種可靠的開源雲端監控工具,可以提高雲端資產的可見性,並改善雲端安全態勢管理(CSPM)。這些工具不僅可以提供即時的更新,還可以幫助企業在問題發生之前發現潛在的問題。此外,密切監控雲端資源還可以帶來顯著的成本文約。
Netdata:主機監控的利器
Netdata 是一款專注於提供每台主機即時回饋的工具。它不僅易於安裝,還具有出色的視覺化效果。Netdata 是 Cloud Native Computing Foundation(CNCF)上最受歡迎的專案之一,其儀錶板功能完全是反應式的,可以輕鬆地在觸控式螢幕上進行縮放和回放日誌時間軸。
安裝 Netdata
Netdata 可以透過兩種方式安裝:主機安裝或容器執行。從雲原生角度來看,容器執行是我們的首選。
主機安裝
如果選擇主機安裝,需要下載安裝指令碼並直接在機器上安裝 Netdata。可以使用以下命令:
$ curl https://my-netdata.io/kickstart.sh
$ bash <(curl -Ss https://my-netdata.io/kickstart.sh)
安裝過程中,Netdata 會安裝必要的套件,例如:
autoconf autoconf-archive autogen automake autotools-dev cmake
cmake-data libc-dev-bin libc6-dev libelf-dev libjson-c-dev
libjsoncpp1 libjudy-dev libjudydebian1 liblz4-dev libmnl-dev
libopts25 libopts25-dev librhash0 libssl-dev python3-bson
python3-pymongo uuid-dev zlib1g-dev
啟動 Netdata
安裝完成後,可以透過瀏覽器存取 http://localhost:19999 檢視 Netdata 的即時監控介面。
#### 內容解密:
Netdata 提供即時效能和健康監測,能夠顯示系統目前的狀態。導航面板提供了大約 30 個選項,涵蓋了系統的各個方面。這些選項不僅提供了目前狀態的快照,還提供了歷史資料的分析。
圖表說明:Netdata 儀錶板
此圖示展示了 Netdata 儀錶板的結構和功能。
監控雲端運作:Netdata 與 Komiser 的應用
在雲端運算的環境中,監控主機的運作狀態對於維護系統的穩定性和安全性至關重要。Netdata 是一款強大的監控工具,可以提供即時和歷史資料的視覺化,讓管理者能夠清晰地瞭解主機的執行狀況。
使用容器安裝 Netdata
首先,我們需要透過容器安裝 Netdata,而無需在主機上安裝額外的套件。安裝命令如下所示:
docker run -d --name=netdata \
-p 19999:19999 \
-v netdatalib:/var/lib/netdata \
-v netdatacache:/var/cache/netdata \
-v /etc/passwd:/host/etc/passwd:ro \
-v /etc/group:/host/etc/group:ro \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /etc/os-release:/host/etc/os-release:ro \
--restart unless-stopped \
--cap-add SYS_PTRACE \
--security-opt apparmor=unconfined \
netdata/netdata
內容解密:
docker run -d --name=netdata:以分離模式執行一個名為netdata的容器。-p 19999:19999:將容器的 19999 連線埠對映到主機的 19999 連線埠,以便存取 Netdata 的網頁介面。-v引數用於掛載主機的目錄到容器內,以便 Netdata 可以讀取主機的系統資訊。--restart unless-stopped:設定容器的重啟策略,除非手動停止,否則容器會在 Docker 重啟時自動啟動。--cap-add SYS_PTRACE:賦予容器SYS_PTRACE的能力,使其可以追蹤主機上的程式。--security-opt apparmor=unconfined:在 Ubuntu 等系統上,關閉 AppArmor 對該容器的限制。
Netdata 的功能與特點
安裝完成後,可以透過存取 http://localhost:19999 檢視 Netdata 的儀錶板。Netdata 提供豐富的監控資料,包括但不限於:
- 網路介面的流量監控,可以用來檢測 DDoS 攻擊或預測未來的資源使用趨勢。
- CPU 的使用情況,例如
cpuidle可以顯示 CPU 核心的閒置狀態。 - 硬體溫度監控,對於本地佈署的主機來說,這些資料對於機房的冷卻管理非常有用。
網路介面監控範例
@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle
title Nikto 與 Komiser 雲端安全監控實踐
package "安全架構" {
package "網路安全" {
component [防火牆] as firewall
component [WAF] as waf
component [DDoS 防護] as ddos
}
package "身份認證" {
component [OAuth 2.0] as oauth
component [JWT Token] as jwt
component [MFA] as mfa
}
package "資料安全" {
component [加密傳輸 TLS] as tls
component [資料加密] as encrypt
component [金鑰管理] as kms
}
package "監控審計" {
component [日誌收集] as log
component [威脅偵測] as threat
component [合規審計] as audit
}
}
firewall --> waf : 過濾流量
waf --> oauth : 驗證身份
oauth --> jwt : 簽發憑證
jwt --> tls : 加密傳輸
tls --> encrypt : 資料保護
log --> threat : 異常分析
threat --> audit : 報告生成
@enduml
此圖示展示了網路介面的流量如何被 Netdata 監控並記錄。
與 Netdata Cloud 的整合
Netdata 提供了一個額外的服務叫做 Netdata Cloud,可以讓使用者集中管理多台主機上的 Netdata 節點。這個服務是免費的,並且支援 GitHub 和 Google 登入。
資料收集器(Collectors)
Netdata 稱其資料收集點為 Collectors,它可以從多種服務中收集資料,包括 nginx、Apache、MySQL、statsd,以及來自容器的 cgroups 資料等。對於雲原生環境,Kubernetes 的 Collector 可以用來自動監控叢集中的多個容器。
移除 Netdata
如果需要移除 Netdata,可以參考官方檔案中的解除安裝,以確保乾淨地移除相關的套件和組態。
使用 Komiser 審視雲端平台
除了 Netdata,Komiser 是另一個用於審視雲端資源的工具,可以提供對雲端資源的可見性和洞察力,有助於維護強壯的雲端安全態勢。
總而言之,Netdata 和 Komiser 是兩款強大的工具,可以幫助管理者更好地監控和理解其雲端資源和主機的運作狀態,從而提升整體的安全性和效率。
使用 Komiser 監控雲端運作的成本與安全
雲端運算的普及使得企業需要更有效地監控和管理雲端資源的使用,以確保成本效益和安全性。Komiser 是一個開源工具,專為此目的設計,可以與 Amazon Web Services(AWS)等雲端平台整合,提供詳細的成本分析和安全洞察。
安裝與設定 Komiser
要使用 Komiser,首先需要一個 AWS 帳戶並組態好 AWS CLI。安裝 Komiser 的過程非常簡單,可以直接使用 Docker 容器執行。執行 Komiser 需要 AWS 的存取金鑰和秘密金鑰,這些憑證將被用於填充容器的環境變數。
$ docker run -d -p 3000:3000 \
-e "AWS_ACCESS_KEY_ID=AKXXXXXXXXXXGN4" \
-e "AWS_SECRET_ACCESS_KEY=GLXXXXXXXXXXXXXXXXKY" \
-e "AWS_DEFAULT_REGION=eu-west-1" \
--name komiser mlabouardy/komiser:2.4.0
內容解密:
docker run:啟動一個新的 Docker 容器。-d:後台執行容器。-p 3000:3000:將主機的 3000 連線埠對映到容器的 3000 連線埠。-e:設定環境變數,包括 AWS 的存取金鑰、秘密金鑰和預設區域。--name komiser:將容器命名為komiser。mlabouardy/komiser:2.4.0:指定要執行的 Docker 映像。
確認容器執行後,可以透過瀏覽器存取 http://localhost:3000 檢視 Komiser 的儀錶板。
Komiser 的功能特點
Komiser 提供了一個直觀的儀錶板,展示了 AWS 賬戶的各種資訊,包括 IAM 使用者、賬單預測、EC2 執行個體狀態、Lambda 函式錯誤率等。
主要功能:
- 成本分析:提供詳細的 AWS 賬單預測和各服務的成本分析。
- 安全洞察:展示 IAM 使用者活動、KMS 金鑰使用情況、安全群組狀態等安全相關資訊。
- 資源監控:監控 EC2 執行個體、Lambda 函式、S3 儲存桶等資源的使用情況。
- 網路流量分析:提供彈性負載平衡器、NAT 閘道流量、API 閘道請求等網路資源的詳細資訊。
使用 Komiser 的好處
Komiser 的多樣化功能使其成為監控和管理 AWS 資源的有力工具。它不僅幫助企業最佳化雲端成本,還能提高安全性,透過即時的資源監控和安全事件警示,幫助企業及時回應潛在的安全威脅。