資安工具入門
目的
最近開始接觸資安議題,希望產出的線上服務能有資安保護,經過一段時間研究後,深覺資安這話題很廣泛也很深,很難一夕之間到位,因此需要分階段導入,在初期階段可以導入開源工具進行自動化檢測並產生報告,透過這些報告在進行人工修正。
資安類型
一. 弱點掃描
透過自動化掃描軟體工具偵測作業系統與軟體系統的弱點,可利用工具在較短的時間內檢查出漏洞,其內容包含WASP TOP 10等常見弱點檢測。
OWASP0(Open Web Application Security Project,開放網路軟體安全計畫)是一個開放社群、非營利性組織,全球目前有82個分會,主要目標是研議協助解決網路軟體安全之標準、工具與技術文件,長期致力於協助政府或企業瞭解並改善應用程式的安全性。美國聯邦貿易委員會(FTC)更強烈建議所有企業務必遵循OWASP所發佈的十大網路弱點防護守則,美國國防部亦將此守則列為最佳實務,就連國際信用卡資料安全技術PCI標準更將其列為必要元件。
OWASP Top10 開放網路軟體安全計畫十大弱點:
- A01 權限控制失效
- A02 加密機制失效
- A03 注入式攻擊
- A04 不安全設計
- A05 安全設定缺陷
- A06 危險或過舊的元件
- A07 認證及驗證機制失效
- A08 軟體及資料完整性失效
- A10 伺服端請求偽造 (SSRF)
參考:
主機弱掃
- 使用的加密演算法過於弱或者已經在檢測工具的黑名單
- 異常服務開啟或者Port(例如:資料庫開放存取 database-open-access)
- 作業系統版本過舊或者有風險
網頁弱掃
- cookies 的設定錯誤
- 軟體版本的資訊洩漏(例如:X-ASPNET-Version)
- 使用已知存在漏洞的Javascript函式庫
- 設定檔的資訊洩漏,或者開啟 debug 模式
- 不當的組態設定
二. 原始碼掃描
透過一些開源靜態掃描工具進行掃描,依照已發現的可能造成風險的規則或者語法組合,找出可能有風險的程式碼片段。
三. 滲透測試
委託資安專家以駭客思維嘗試攻破系統,利用不同的弱點進行組合式攻擊,驗證任何可能突破網站防禦系統的入侵漏洞,最後提交一份滲透測試報告,完整的記錄整個測試過程與細節,其檢測報告內容之外不代表系統不存在風險的可能,依照各專家的習慣盡可能發現系統的風險,也可能因為新的攻擊手法出現導致新的漏洞風險的發生。
工具導入
初期以免費工具為主,當熟悉這些免費工具同時對資安知識有一定累積後,未來就可以評估一些商業工具。
以下是針對每種資安議題做工具導入:
SSH登入防護
作用:
- 紀錄登入失敗資訊
- 登入失敗進行封鎖
工具: Fail2ban
教學:
安裝:
1
apt-get install fail2ban -y
設定:
1
2
3
4
5
6
7
8
9
10
11
12
13
14# 複製 jail.conf 設定檔
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# 編輯jail.local,新增下面資訊
/etc/fail2ban/jail.local
# 阻擋持續時間,10分鐘
bantime = 10m
# 若 10 分鐘內錯誤次數達 5 次,則進行阻擋
# 此封鎖是對IP進行,所有有多個帳號(包含已登入的)都會被封鎖
findtime = 10m
maxretry = 5啟動
1
2
3
4
5
6# 開機自動啟動
systemctl enable fail2ban
#啟動服務
systemctl start fail2ban日誌查看
1
tail -f /var/log/fail2ban.log
主機弱掃 - OpenVAS
OpenVAS 代表 Open Vulnerability Assessment System(開放式弱點評估系統)表示全面性網路安全掃描的工具鏈,包含使用者圖形介面聯合各種第三方(third-party)安全測驗程式。因此整個伺服器核心是由一組網路弱點測試(Network Vulnerability Tests (NVTs) )來偵測遠端系統安全上的問題。
OpenVAS 是 GNU GPL (GNU General Public License)的自由軟體。OpenVAS 來自 Nessus計劃,但 Nessus 變成一個專有產品,但 OpenVAS 自那時以來進展自身系統,雖然它的偵測程式部份仍沿用 Nessus 的寫法(NASL Nessus Attack Scripting Language )。
作用:
- Port弱點檢測
工具: OpenVAS
教學:
裸機安裝:
1
sudo apt-get install gvm -y
解除安裝
1
2
3sudo apt remove gvm
sudo apt purge openvas
sudo apt autoremove設定:
1
2
3
4
5
6
7
8
9
10
11
12
13
14# 進行設定
gvm-setup
# 驗證安裝是否成功
sudo gvm-check-setup
# 啟動
sudo gvm-start
# 更新
gvm-feed-update
# 設定帳號密碼
sudo gvmd --user=admin --new-password=passwordDocker安裝:
1
docker run -d -p 17443:443 --name openvas mikesplain/openvas
相關知識
QoD: 資安QoD分數是指資訊安全品質保證的評分系統,用於評估一個系統或應用程式的安全性。QoD代表Quality of Defense,是一個綜合性的指標,用於衡量系統的安全性和防禦能力。
資安QoD分數通常是根據一系列的測試和評估來計算的,包括漏洞掃描、滲透測試、安全配置檢查等。這些測試和評估會檢查系統的弱點和漏洞,並評估系統的防禦能力和安全措施的有效性。
資安QoD分數通常是一個0到100的數字,表示系統的安全性程度。較高的分數表示系統的安全性較高,較低的分數表示系統的安全性較低。
要了解資安QoD分數如何看,可以參考以下指標(出自ChatGPT):
- 90-100:表示系統的安全性非常高,具有很強的防禦能力,並且已經採取了有效的安全措施。
- 70-89:表示系統的安全性良好,但可能還存在一些弱點或漏洞,需要進一步加強安全措施。
- 50-69:表示系統的安全性一般,可能存在較多的弱點或漏洞,需要優化安全措施。
- 0-49:表示系統的安全性較低,存在嚴重的弱點或漏洞,需要立即加強安全措施。
資安QoD分數是一個綜合性的指標,可以幫助組織評估和改進系統的安全性。通常建議定期進行資安QoD評估,以確保系統的安全性能夠持續提升。
- 相關操作畫面
- 第一次掃描設定
- 對自家服務器進行掃描
- 弱點說明
- 第一次掃描設定
主機弱掃 - Lynis
系統安全性稽核工具
- 作用:
- 檢查系統的各個方面,包括用戶、文件系統、網絡、服務、裝置等,並識別可能的風險和弱點。
- 提供建議和修復建議,幫助系統管理員改進系統的安全性。
- 工具:
- 教學:
- 安裝:
1
apt install -y lynis
- 執行掃描
1
2
3
4lynis audit system
# 更新當前系統已裝服務
# lynis update check - 稽核分數
Lynis 稽核分數的評比通常是從 0 到 100 分,分數越高表示系統的安全性越高,存在的風險越低。以下是一些關於 Lynis 稽核分數評比的一般指南(出自ChatGPT):
- 90 - 100 分:表示系統的安全性非常高,已經實施了大部分的建議措施,風險非常低。
- 80 - 89 分:系統的安全性良好,但可能仍有一些改進的空間,一些風險可能仍然存在。
- 70 - 79 分:表示系統的安全性尚可,但可能存在較高的風險,可能需要進行進一步的調查和改進。
- 60 - 69 分:系統的安全性較低,可能存在多個風險,需要採取措施來提高安全性。
- 50 - 59 分:表示系統的安全性較差,存在嚴重的風險和問題,需要優先處理。
- 0 - 49 分:系統的安全性嚴重不足,可能存在多個高風險漏洞,需要立即採取行動來修復。
快速查看報告中的警告及建議訊息
1
cat /var/log/lynis.log |grep -e 'Warning' -e 'Suggestion'
輸出html/pdf/png
安裝:
1
2
3
4cd /usr/bin
sudo wget https://raw.githubusercontent.com/d4t4king/lynis-report-converter/master/lynis-report-converter.pl
sudo chmod +x lynis-report-converter.pl輸出報告:
1
2
3lynis-report-converter.pl -o out.html
lynis-report-converter.pl -p -o out.pdf
lynis-report-converter.pl -E -o out.xlsx資安問題排除方法
- 輸出out.html檔案,裡面會有建議修改方法。若沒有建議修改方法則透過ChatGPT進行詢問。
網頁弱掃 - OWASP ZAP
- 作用:
- 可以檢測多種類型的安全漏洞,包括 SQL 注入、跨站腳本(XSS)、跨站請求偽造(CSRF)、敏感信息泄露等。
- 自動化測試,可以使用其 API 進行集成和自定義測試流程。
- 工具:
- 教學:
- 安裝:
其他知識
ISO 27001標準
出自ChatGPT