內容簡介
在傳統的異構網路環境中,運維人員往往利用各種複雜的監管工具來管理網路,由於缺乏一種集成安全運維平台,當遇到故障時總是處於被動“救火”狀態,如何將資產管理、流量監控、漏洞管理、入侵監測、合規管理等重要環節,通過開源軟體集成到統一的平台中,以實現安全事件關聯分析,可從本書介紹的OSSIM平台中找到答案。本書藉助作者在OSSIM領域長達10年開發套用實踐經驗之上,以大量生動實例闡述了基於外掛程式收集日誌並實現標準化,安全事件規範化分類,關聯分析的精髓,書中為讀者展示的所有知識和實例均來自大型企業中複雜的生產環境,並針對各種難題給出解決方案。
目 錄
第一篇 基礎篇
第1章 OSSIM架構與原理 3
1.1 OSSIM概況 3
1.1.1 從SIM到OSSIM 4
1.1.2 安全信息和事件管理(SIEM) 5
1.1.3 OSSIM的前世今生 6
1.2 OSSIM架構與組成 13
1.2.1 主要模組的關係 14
1.2.2 安全外掛程式(Plugins) 15
1.2.3 採集與監控外掛程式的區別 17
1.2.4 檢測器(Detector) 20
1.2.5 代理(Agent) 20
1.2.6 報警格式的解碼 21
1.2.7 OSSIM Agent 22
1.2.8 代理與外掛程式的區別 26
1.2.9 感測器(Sensor) 26
1.2.10 關聯引擎 28
1.2.11 資料庫(Database) 30
1.2.12 Web 框架(Framework) 31
1.2.13 Ajax創建互動 32
1.2.14 歸一化處理 32
1.2.15 標準的安全事件格式 33
1.2.16 OSSIM服務連線埠 37
1.3 基於外掛程式的日誌採集 39
1.3.1 安全事件分類 39
1.3.2 採集思路 39
1.4 Agent事件類型 44
1.4.1 普通日誌舉例 45
1.4.2 plugin_id一對多關係 45
1.4.3 MAC事件日誌舉例 47
1.4.4 作業系統事件日誌舉例 47
1.4.5 系統服務事件日誌舉例 47
1.5 RRDTool繪圖引擎 48
1.5.1 背景 49
1.5.2 RRD Tool與關係資料庫的不同 49
1.5.3 RRD繪圖流程 49
1.6 OSSIM工作流程 50
1.7 快取與訊息佇列 50
1.7.1 快取系統 50
1.7.2 訊息佇列處理 51
1.7.3 RabbitMQ 53
1.7.4 選擇Key/Value存儲 54
1.7.5 OSSIM下操作Redis 54
1.7.6 Redis Server配置詳解 57
1.7.7 RabbitMQ、Redis與Memcached監控 58
1.8 OSSIM 高可用架構 60
1.8.1 OSSIM高可用實現技術 60
1.8.2 安裝環境 62
1.8.3 配置本地主機 62
1.8.4 配置遠程主機 62
1.8.5 同步資料庫 63
1.8.6 同步本地檔案 63
1.9 OSSIM防火牆 64
1.9.1 理解Filter機制 64
1.9.2 規則匹配過程 66
1.9.3 iptables規則庫管理 67
1.10 OSSIM的計畫任務 68
1.10.1 Linux計畫任務 68
1.10.2 OSSIM中的計畫任務 70
1.11 小結 72
第2章 OSSIM部署與安裝 73
2.1 OSSIM安裝策略 73
2.1.1 未授權行為 74
2.1.2 感測器位置 75
2.2 分散式OSSIM體系 75
2.2.1 特別套用 76
2.2.2 多IDS系統套用 76
2.3 安裝前的準備工作 77
2.3.1 軟硬體配備 77
2.3.2 感測器部署 78
2.3.3 分散式OSSIM系統探針布局 80
2.3.4 OSSIM伺服器的選擇 81
2.3.5 網卡的選擇 82
2.3.6 手動載入網卡驅動 83
2.3.7 採用多核還是單核CPU 83
2.3.8 查找硬體信息 84
2.3.9 OSSIM USM和Sensor安裝模式的區別 84
2.3.10 OSSIM商業版和免費版比較 86
2.3.11 OSSIM實施特點 87
2.3.12 OSSIM管理員分工 88
2.4 混合伺服器/感測器安裝模式 88
2.4.1 安裝前的準備工作 88
2.4.2 開始安裝OSSIM 89
2.4.3 遺忘Web UI登錄密碼的處理方法 92
2.5 初始化系統 92
2.5.1 設定初始頁面 93
2.5.2 OTX——情報交換系統 100
2.6 VMware ESXi下安裝OSSIM注意事項 103
2.6.1 設定方法 103
2.6.2 虛擬機下無法找到磁碟的對策 104
2.7 OSSIM分散式安裝實踐 104
2.7.1 基於OpenSSL的安全認證中心 105
2.7.2 安裝步驟 105
2.7.3 分散式部署(VPN連線 )舉例 106
2.7.4 安裝多台OSSIM(Sensor) 108
2.7.5 Sensor重裝流程 114
2.8 添加VPN連線 114
2.8.1 需求 114
2.8.2 Server端配置(10.0.0.30) 114
2.8.3 配置Sensor(10.0.0.31) 115
2.9 安裝最後階段 116
2.10 OSSIM安裝後續工作 117
2.10.1 時間同步問題 117
2.10.2 系統升級 118
2.10.3 apt-get 常見操作 121
2.10.4 掃描資產 122
2.10.5 通過代理升級系統 122
2.10.6 防火牆設定 124
2.10.7 讓控制台支持高解析度 124
2.10.8 手動修改伺服器 IP位址 125
2.10.9 修改系統網關和DNS地址 125
2.10.10 更改默認網路接口 125
2.10.11 消除登錄選單 126
2.10.12 進入OSSIM單用戶模式 126
2.10.13 定製系統啟動界面 126
2.11 OSSIM啟動與停止 127
2.12 安裝遠程管理工具 129
2.12.1 安裝Webmin管理工具 129
2.12.2 安裝phpMyAdmin 130
2.12.3 用phpMyAdmin同步功能遷移資料庫 132
2.13 分散式系統查看感測器狀態 132
2.13.1 設定指示器 132
2.13.2 注意事項 134
2.14 安裝桌面環境 135
2.14.1 安裝GNOME環境 135
2.14.2 安裝FVWM環境 135
2.14.3 安裝虛擬機 139
2.15 自動化配置管理工具Ansible 141
2.15.1 SSH的核心作用 141
2.15.2 Ansible配置 143
2.15.3 Ansible實戰 143
2.15.4 豐富的模組 147
2.15.5 Ansible與其他配置管理的對比 147
2.16 SIEM控制台基礎 147
2.16.1 SIEM控制台日誌過濾技巧 148
2.16.2 將重要日誌加入到知識庫 153
2.16.3 SIEM中顯示不同類別日誌 156
2.16.4 常見搜尋信息 158
2.16.5 儀錶盤顯示 158
2.16.6 事件刪除與恢復 160
2.16.7 深入使用SIEM控制台 161
2.16.8 SIEM事件聚合 164
2.16.9 SIEM要素 165
2.16.10 SIEM警報中顯示計算機名 172
2.16.11 SIEM事件保存期限 172
2.16.12 SIEM數據源與外掛程式的關係 173
2.16.13 SIEM日誌顯示中出現0.0.0.0地址的含義 174
2.16.14 無法顯示SIEM安全事件時處理方法 174
2.16.15 SIEM資料庫恢復 175
2.16.16 EPS的含義 175
2.16.17 常見OSSIM 安裝/使用錯誤 176
2.17 可視化網路攻擊報警Alarm分析 178
2.17.1 報警事件的產生 179
2.17.2 報警事件分類 179
2.17.3 五類報警數據包樣本下載 184
2.17.4 報警分組 184
2.17.5 識別告警真偽 186
2.17.6 觸發OSSIM報警 186
2.18 小結 194
第二篇 提高篇
第3章 OSSIM資料庫概述 197
3.1 OSSIM資料庫組成 197
3.1.1 MySQL 197
3.1.2 本地訪問 198
3.1.3 檢查、分析表 200
3.1.4 啟用MySQL慢查詢記錄 201
3.1.5 遠程訪問 202
3.1.6 MongoDB 203
3.1.7 SQLite 203
3.2 OSSIM資料庫分析工具 203
3.2.1 負載模擬方法 204
3.2.2 利用MySQL Workbench工具分析資料庫 206
3.3 查看OSSIM資料庫表結構 211
3.4 MySQL基本操作 214
3.5 OSSIM系統遷移 215
3.5.1 遷移準備 215
3.5.2 恢復OSSIM 216
3.6 OSSIM資料庫常見問題解答 218
3.7 小結 227
第4章 OSSIM關聯分析技術 228
4.1 關聯分析技術背景 228
4.1.1 當前的挑戰 228
4.1.2 基本概念 229
4.1.3 安全事件之間的關係 229
4.2 關聯分析基礎 230
4.2.1 從海量數據到精準數據 230
4.2.2 網路安全事件的分類 231
4.2.3 Alarm與Ticket的區別 235
4.2.4 使用Ticket 236
4.2.5 加入知識庫 237
4.2.6 安全事件提取 238
4.2.7 OSSIM的關聯引擎 238
4.2.8 事件的交叉關聯 240
4.3 報警聚合 241
4.3.1 報警樣本舉例 241
4.3.2 事件聚合 242
4.3.3 事件聚合舉例 243
4.3.4 事件聚合在OSSIM中的表現形式 244
4.3.5 SIEM中的冗餘報警 245
4.3.6 合併相似事件 245
4.3.7 同類事件的判別 246
4.3.8 合併流程 247
4.3.9 事件映射 247
4.3.10 Ossec 的報警信息的聚類 247
4.3.11 Ossec與Snort 事件合併 249
4.4 風險評估方法 249
4.4.1 風險評估三要素 249
4.4.2 Risk & Priority & Reliability的關係實例 251
4.4.3 動態可信度值(Reliability) 254
4.4.4 查看SIEM不同事件 254
4.5 OSSIM系統風險度量方法 256
4.5.1 風險判定 256
4.5.2 事件積累過程 258
4.6 OSSIM中的關聯分類 260
4.6.1 關聯分類 260
4.6.2 關聯指令分類 261
4.6.3 指令組成 263
4.6.4 讀懂指令規則 265
4.6.5 Directive Info 266
4.7 新建關聯指令 267
4.8 OSSIM的關聯規則 270
4.8.1 關聯指令配置界面 271
4.8.2 構建規則 274
4.9 深入關聯規則 276
4.9.1 基本操作 276
4.9.2 理解規則樹 277
4.9.3 攻擊場景構建 281
4.9.4 報警聚合計算方法 281
4.10 自定義策略實現SSH登錄失敗告警 282
4.11 小結 285
第5章 OSSIM系統監測工具 286
5.1 Linux性能評估 286
5.1.1 性能評估工具 286
5.1.2 查找消耗資源的進程 288
5.2 OSSIM壓力測試 288
5.2.1 軟硬體測試環境 288
5.2.2 測試項目 289
5.2.3 測試工具 289
5.2.4 IDS測試工具Nidsbench 292
5.3 性能分析工具實例 294
5.3.1 sar 295
5.3.2 vmstat 295
5.3.3 用iostat分析I/O子系統 296
5.3.4 dstat 297
5.3.5 iotop 298
5.3.6 atop 299
5.3.7 替代netstat的工具ss 299
5.4 OSSIM平台中MySQL運行狀況 299
5.4.1 影響MySQL性能的因素 299
5.4.2 系統的IOPS 301
5.5 Syslog壓力測試工具——Mustsyslog使用 302
5.5.1 安裝mustsyslog 302
5.5.2 日誌模板設計 304
5.5.3 日誌標籤說明 305
5.5.4 域標籤舉例 305
5.6 常見問題解答 305
5.7 小結 321
第6章 Snort規則分析 322
6.1 預處理程式 322
6.1.1 預處理器介紹 322
6.1.2 調整預處理程式 329
6.1.3 網路攻擊模式分類 330
6.2 Snort日誌分析利器 332
6.3 Snort日誌分析 332
6.3.1 工作模式 332
6.3.2 輸出外掛程式 337
6.4 Snort 規則編寫 343
6.4.1 Snort 規則分析 344
6.4.2 規則組成及含義 345
6.4.3 編寫Snort規則 351
6.4.4 手工修改Suricata規則 354
6.4.5 啟用新建的ET規則 354
6.4.6 套用新規則 355
6.4.7 主動探測與被動探測 356
6.5 可疑流量檢測技術 356
6.5.1 通過特徵檢測 356
6.5.2 檢測可疑的載荷 356
6.5.3 檢測具體元素 357
6.5.4 OSSIM中的Snort規則與SPADE檢測 358
6.5.5 惡意代碼行為特徵分析 358
6.5.6 蜜罐檢測 359
6.6 Snort規則進階 360
6.6.1 可疑流量的報警 360
6.6.2 空會話攻擊漏洞報警 361
6.6.3 用戶許可權獲取 361
6.6.4 失敗的許可權提升報警規則 362
6.6.5 企圖獲取管理員許可權 362
6.6.6 成功獲取管理員許可權 362
6.6.7 拒絕服務 363
6.7 高速網路環境的套用 365
6.7.1 Suricata VS Snort 365
6.7.2 PF_ring工作模式 365
6.8 網路異常行為分析 366
6.8.1 流程分析 366
6.8.2 舉例 367
6.10 小結 368
第三篇 實戰篇
第7章 OSSIM日誌收集與分析 371
7.1 日誌分析現狀 371
7.1.1 日誌記錄內容 372
7.1.2 日誌中能看出什麼 373
7.1.3 日誌分析的基本工具及缺陷 373
7.1.4 海量日誌收集方式 374
7.2 日誌訊息格式與存儲 374
7.2.1 日誌訊息格式 374
7.2.2 OSSIM下的日誌查詢比較 375
7.2.3 日誌的導出 376
7.2.4 日誌分類可視化 377
7.2.5 基於文本格式的日誌 378
7.2.6 基於壓縮模式的日誌檔案 380
7.2.7 日誌轉儲到資料庫 380
7.2.8 日誌處理及保存時間 381
7.2.9 日誌系統保護 381
7.2.10 日誌輪詢 381
7.2.11 OSSIM分散式系統中日誌存儲問題 382
7.3 日誌協定Syslog 382
7.3.1 常見日誌收集方式 383
7.3.2 日誌的標準化 384
7.3.3 主流日誌格式介紹 384
7.3.4 Syslog日誌記錄級別 386
7.3.5 Syslog.conf配置檔案 386
7.3.6 用Tcpdump分析Syslog數據包 388
7.3.7 Syslog的安全漏洞 388
7.3.8 配置SNMP 388
7.4 原始日誌格式對比 389
7.5 外掛程式配置步驟 390
7.6 外掛程式導入 391
7.7 外掛程式註冊操作實例 391
7.8 Agent外掛程式處理日誌舉例 395
7.8.1 收集與處理過程 395
7.8.2 常見Windows日誌轉換syslog工具 397
7.8.3 Windows日誌審核 398
7.8.4 收集Windows平台日誌 398
7.8.5 收集Cisco 路由器日誌 399
7.9 Rsyslog配置 400
7.9.1 Rsyslog配置詳解 400
7.9.2 Rsyslog配置參數含義 401
7.9.3 選擇合適的日誌級別 401
7.10 網路設備日誌分析與舉例 402
7.10.1 路由器日誌分析 403
7.10.2 交換機日誌分析 403
7.10.3 防火牆日誌分析 405
7.10.4 收集CheckPoint設備日誌 407
7.10.5 Aruba(無線AP)的日誌 408
7.11 Apache日誌分析 409
7.11.1 日誌作用 409
7.11.2 日誌格式分析 410
7.11.3 日誌統計舉例 410
7.11.4 錯誤日誌分析 411
7.12 Nginx日誌分析 413
7.12.1 基本格式 413
7.12.2 將Nginx日誌傳送到Syslog 415
7.13 FTP日誌分析 415
7.13.1 FTP日誌分析 415
7.13.2 分析vsftpd.log和xferlog 416
7.13.3 將Linux的 Vsftp日誌傳送到OSSIM 418
7.14 iptables 日誌分析 419
7.14.1 iptables日誌分析 419
7.14.2 iptables日誌管理範例 421
7.14.3 輸出iptables日誌到指定檔案 422
7.15 Squid服務日誌分析 425
7.15.1 Squid日誌分類 425
7.15.2 典型Squid訪問日誌分析 425
7.15.3 Squid時間戳轉換 426
7.15.4 將Squid的日誌收集到OSSIM 427
7.16 DHCP 伺服器日誌 428
7.17 收集Windows日誌 430
7.17.1 OSSIM日誌處理流程 431
7.17.2 通過Snare轉發Windows日誌 431
7.17.3 通過WMI收集Windows日誌 435
7.17.4 配置OSSIM 436
7.17.5 Snare與WMI的區別 437
7.18 小結 438
第8章 OSSIM流量分析與監控 439
8.1 用NetFlow分析異常流量 439
8.1.1 流量採集對業務的影響 440
8.1.2 NetFlow 的Cache管理 441
8.1.3 NetFlow的輸出格式 441
8.1.4 NetFlow的採樣機制 441
8.1.5 NetFlow採樣過濾 441
8.2 NetFlow在監測惡意代碼中的優勢 443
8.2.1 NetFlow的性能影響 444
8.2.2 NetFlow在蠕蟲病毒監測的套用 444
8.2.3 網路掃描和蠕蟲檢測的問題 445
8.2.4 NetFlow與谷歌地圖的集成顯示 448
8.2.5 其他異常流量檢測結果分析 449
8.3 OSSIM下NetFlow實戰 450
8.3.1 組成 450
8.3.2 關鍵參數解釋 452
8.3.3 Sensor中啟用NetFlow 453
8.3.4 Nfsen數據流的存儲位置 454
8.3.5 NetFlows抽樣數據保存時間 456
8.3.6 NetFlow的讀取方式 456
8.3.7 nfdump的作用 458
8.3.8 將NetFlow數據集成到Web UI的儀錶盤 458
8.3.9 分散式環境下NetFlow數據流處理 459
8.4 OSSIM流量監控工具綜合套用 463
8.4.1 Ntop流量採集方式 463
8.4.2 Ntop監控 464
8.4.3 數據大小分析 469
8.4.4 流量分析 470
8.4.5 協定分析 474
8.4.6 負載分析 475
8.4.7 Ntop套用於網路視頻監視 476
8.4.8 Ntop 的風險旗幟標示 478
8.4.9 升級到Ntopng 481
8.5 故障排除 482
8.5.1 多網卡問題 482
8.5.2 Ntop Web頁面打開緩慢對策 483
8.5.3 “Sensor not available”故障對策 483
8.5.4 暫停Ntop服務 484
8.5.5 管理員密碼遺忘對策 484
8.6 用Nagios監視 485
8.6.1 Nagios實現原理 486
8.6.2 利用NRPE 外掛程式實現伺服器監控 486
8.6.3 Nagios的Web界面 489
8.6.4 Naigos外掛程式 494
8.6.5 Nagios擴展NRPE 499
8.6.6 監控開銷 500
8.6.7 OSSIM系統中套用Nagios監控資源 500
8.6.8 Nagios報錯處理 502
8.6.9 被動資產檢測PRADS 503
8.6.10 性能監控利器Munin 504
8.7 Nagios配置檔案 505
8.7.1 主機定義 506
8.7.2 服務定義 507
8.8 第三方監控工具集成 507
8.8.1 OSSIM 2.3的集成 508
8.8.2 OSSIM 4.1的集成 509
8.8.3 OSSIM 4.6的集成 510
8.8.4 Sensor安裝Cacti 511
8.8.5 安裝Zabbix 513
8.9 硬體監控 514
8.9.1 IPMI 514
8.9.2 lm-sensors 516
8.9.3 hddtemp 516
8.10 小結 517
第9章 OSSIM套用實戰 518
9.1使用OSSIM系統 518
9.1.1 初識OSSIM Web UI 518
9.1.2 OSSIM 4.8界面 521
9.1.3 OSSIM控制中心:AlienVault Center 523
9.1.4 基於角色的訪問許可權控制 524
9.1.5 儀錶盤詳解 527
9.2 OSSIM的Web UI選單結構 529
9.3 OSSEC架構與配置 531
9.3.1 OSSEC架構 531
9.3.2 OSSEC Agent端進程 531
9.3.3 OSSEC Server端 534
9.3.4 OSSEC配置檔案和規則庫 535
9.3.5 測試規則 537
9.3.6 分散式系統中OSSEC Agent的管理 537
9.3.7 OSSEC日誌存儲 538
9.3.8 OSSEC Agent安裝 539
9.3.9 OSSEC觸發的關聯分析報警 550
9.3.10 其他HIDS套用 552
9.4 資產Assets管理 553
9.4.1 資產發現 554
9.4.2 資產地圖定位 555
9.4.3 掃描控制參數 555
9.4.4 資產列表 556
9.4.5 資產管理工具 558
9.4.6 資產分組 560
9.4.7 資產快速查找 561
9.4.8 設定Nmap掃描頻率 562
9.4.9 OCS檢測頻率 562
9.5 OpenVAS掃描模組分析 562
9.5.1 掃描流程控制 563
9.5.2 掃描外掛程式分析 564
9.5.3 腳本載入過程 568
9.5.4 NASL腳本介紹 569
9.6 OpenVAS腳本分析 569
9.6.1 OpenVAS腳本類別 570
9.6.2 同步OpenVAS外掛程式 570
9.7 漏洞掃描實踐 575
9.7.1 漏洞庫 575
9.7.2 常見漏洞發布網站 577
9.7.3 手動更新CVE庫 578
9.7.4 採用OpenVAS掃描 578
9.7.5 掃描過程 582
9.7.6 變更掃描策略 584
9.7.7 Nmap與OpenVAS的區別 587
9.7.8 分散式漏洞掃描 588
9.7.9 設定掃描用戶憑證 589
9.7.10 掃描頻率 590
9.7.11 漏洞掃描逾時問題 590
9.8 OpenVAS掃描故障排除 591
9.8.1 常見OpenVAS故障三則 591
9.8.2 OpenVAS故障分析 594
9.9 配置OSSIM報警 598
9.9.1 基本操作 598
9.9.2 實例 599
9.10 OSSIM在蠕蟲預防中的套用 602
9.10.1 多維度分析功能 603
9.10.2 發現異常流量 603
9.10.3 蠕蟲分析 604
9.10.4 流量分析 605
9.10.5 協定分析 607
9.11 時間線分析方法 608
9.11.1 時間線分析法的優勢 608
9.11.2 實例 608
9.12 利用OSSIM進行高級攻擊檢測 610
9.12.1 誤用檢測與異常檢測 610
9.12.2 繪製Shellcode代碼執行流程圖 613
9.12.3 收集異常行為流量樣本 614
9.13 合規管理及統一報表輸出 615
9.13.1 合規管理目標 615
9.13.2 主要技術 615
9.13.3 什麼是合規 616
9.13.4 理解PCI合規遵從 616
9.13.5 報表類型 619
9.13.6 日誌合規檢測 621
9.13.7 報表合規性 624
9.14 小結 627
第10章 基於B/S架構的數據包捕獲分析 628
10.1 數據包捕獲 628
10.1.1 數據包捕獲設定 629
10.1.2 抓包區域說明 630
10.1.3 抓包時提示“This traffic capture is empty”的解決辦法 631
10.1.4 遠程故障排除案例 631
10.2 數據包過濾種類 632
10.3 過濾匹配表達式實例 634
10.3.1 過濾基礎 634
10.3.2 協定過濾 634
10.3.3 對連線埠的過濾 635
10.3.4 對包長度的過濾 635
10.3.5 ngrep過濾 636
10.4 命令行工具tshark和dumpcap 637
10.4.1 tshark套用基礎 637
10.4.2 dumpcap使用 638
10.4.3 用tshark分析pcap 638
10.5 使用tcpdump過濾器 641
10.5.1 tcpdump過濾器基礎 641
10.5.2 其他常見過濾器使用方法 642
10.5.3 通過Traffic Capture抓包存儲 643
10.6 針對IE瀏覽器漏洞的攻擊分析 644
10.7 小結 648
參考文獻 649