分析網頁伺服器記錄以偵測入侵 是做什麼的?
使用時機
- 針對需要分析網頁伺服器記錄以進行入侵調查的安全事件時
- 建立此領域的偵測規則或威脅狩獵查詢時
- SOC 分析師需要此分析類型的結構化程序時
- 驗證相關攻擊技術的安全監控覆蓋範圍時
前置需求
- 熟悉安全維運概念與工具
- 有權限存取測試或實驗室環境以利安全執行
- Python 3.8+ 且已安裝必要的相依套件
- 所有測試活動均需取得適當授權
操作說明
- 安裝相依套件:
pip install geoip2 user-agents
- 收集網頁伺服器存取記錄,格式須為 Apache 的組合記錄格式或 Nginx 預設格式。
- 解析每一筆記錄條目,擷取以下欄位:IP、時間戳記、方法、URI、狀態碼、回應大小、使用者代理、來源參照。
- 套用偵測規則:
- SQL 注入:
UNION SELECT、OR 1=1、' OR '、十六進位編碼模式
- 本機檔案包含/路徑遍歷:
../、/etc/passwd、/proc/self、php://filter
- 跨站腳本:
<script>、javascript:、onerror=、onload=
- 掃描工具特徵:Nikto、sqlmap、DirBuster、gobuster、wfuzz 的使用者代理
- 暴力破解:5 分鐘內來自同一 IP 對登入端點發出超過 50 次 POST 請求
- 使用 GeoIP 資料進行豐富化,並產生一份經優先排序的發現報告。
python scripts/agent.py --log-file /var/log/nginx/access.log --geoip-db GeoLite2-City.mmdb --output web_intrusion_report.json
範例
偵測 URI 中的 SQL 注入
192.168.1.100 - - [15/Jan/2024:10:30:45 +0000] "GET /products?id=1' UNION SELECT username,password FROM users-- HTTP/1.1" 200 4532
掃描工具使用者代理偵測
Nikto/2.1.6, sqlmap/1.7, DirBuster-1.0-RC1, gobuster/3.1.0