《开源安全运维平台OSSIM最佳实践》

经多年潜心研究开源技术,历时三年创作的《开源安全运维平台OSSIM最佳实践》一书即将出版。该书用80多万字记录了,作者10多年的IT行业技术积累,重点展示了开源安全管理平台OSSIM在大型企业网运维管理中的实践。国内目前也有各式各样的开源安全运维系统,经过笔者对比分析得出这些工具无论在功能上、性能上还是在安全和稳定性易用性上都无法跟OSSIM系统想媲美,而且很多国内的开源安全运维项目在发布1-2年后就逐步淡出了舞台,而OSSIM持续发展了十多年。下面就看看这本书中涉及OSSIM主要讲解那些内容。

目    录

第一篇  基础篇

第1章  OSSIM架构与原理 2

1.1  OSSIM概况 2

1.1.1  从SIM到OSSIM 3

1.1.2  安全信息和事件管理(SIEM) 4

1.1.3  OSSIM的前世今生 5

1.2  OSSIM架构与组成 11

1.2.1  主要模块的关系 12

1.2.2  安全插件(Plugins) 14

1.2.3  采集与监控插件的区别 15

1.2.4  检测器(Detector) 18

1.2.5  代理(Agent) 18

1.2.6  报警格式的解码 19

1.2.7  OSSIM Agent 20

1.2.8  代理与插件的区别 24

1.2.9  传感器(Sensor) 24

1.2.10  关联引擎 26

1.2.11  数据库(Database) 28

1.2.12  Web 框架(Framework) 29

1.2.13  Ajax创建交互 30

1.2.14  归一化处理 31

1.2.15  标准的安全事件格式 31

1.2.16  OSSIM服务端口 35

1.3  基于插件的日志采集 37

1.3.1  安全事件分类 37

1.3.2  采集思路 37

1.4  Agent事件类型 43

1.4.1  普通日志举例 43

1.4.2  plugin_id一对多关系 44

1.4.3  MAC事件日志举例 46

1.4.4  操作系统事件日志举例 46

1.4.5  系统服务事件日志举例 46

1.5  RRDTool绘图引擎 47

1.5.1  背景 47

1.5.2  RRD Tool与关系数据库的不同 48

1.5.3  RRD绘图流程 48

1.6  OSSIM工作流程 49

1.7  缓存与消息队列 49

1.7.1  缓存系统 49

1.7.2  消息队列处理 50

1.7.3  RabbitMQ 51

1.7.4  选择Key/Value存储 52

1.7.5  Ossim下操作Redis 53

1.7.6  Redis Server配置详解 56

1.7.7  RabbitMQ、Redis与Memcached监控 57

1.8  OSSIM 高可用架构 59

1.8.1  OSSIM高可用实现技术 59

1.8.2  安装环境 60

1.8.3  配置本地主机 60

1.8.4  配置远程主机 61

1.8.5  同步数据库 61

1.8.6  同步本地文件 61

1.9  OSSIM防火墙 62

1.9.1  理解Filter机制 62

1.9.2  规则匹配过程 64

1.9.3  Iptables规则库管理 65

1.10  OSSIM的计划任务 66

1.10.1  Linux计划任务 66

1.10.2  OSSIM中的计划任务 68

1.11  小结 70

第2章  OSSIM部署与安装 71

2.1  OSSIM安装策略 71

2.1.1  定制IDS策略 71

2.1.2  传感器位置 72

2.2  分布式OSSIM体系 73

2.2.1  特别应用 74

2.2.2  多IDS系统应用 74

2.3  安装前的准备工作 75

2.3.1  软硬件配备 75

2.3.2  传感器部署 76

2.3.3  分布式OSSIM系统探针布局 78

2.3.4  OSSIM服务器的选择 78

2.3.5  网卡的选择 80

2.3.6  手动加载网卡驱动 80

2.3.7  采用多核还是单核CPU 81

2.3.8  查找硬件信息 81

2.3.9  OSSIM USM和Sensor安装模式的区别 82

2.3.10  OSSIM商业版和免费版比较 83

2.3.11  OSSIM实施特点 84

2.3.12  OSSIM管理员分工 85

2.4  混合服务器/传感器安装模式 86

2.4.1  安装前的准备工作 86

2.4.2  开始安装OSSIM 86

2.4.3  遗忘Web UI登录密码的处理方法 90

2.5  初始化系统 90

2.5.1  设置初始页面 91

2.5.2  OTX——情报交换系统 97

2.6  Vmware ESXi下安装OSSIM注意事项 100

2.6.1  设置方法 100

2.6.2  虚拟机下无法找到磁盘的对策 102

2.7  OSSIM分布式安装实践 102

2.7.1  基于OpenSSL的安全认证中心 102

2.7.2  安装步骤 102

2.7.3  分布式部署(VPN连接 )举例 103

2.7.4  安装多台OSSIM(Sensor) 105

2.7.5  Sensor重装流程 110

2.8  添加VPN连接 111

2.8.1  需求 111

2.8.2  Server端配置(10.0.0.30) 111

2.8.3  配置sensor(10.0.0.31) 112

2.9  安装最后阶段 113

2.10  OSSIM安装后续工作 114

2.10.1  时间同步问题 114

2.10.2  系统升级 115

2.10.3  apt-get 常见操作 118

2.10.4  扫描资产 119

2.10.5  通过代理升级系统 119

2.10.6  防火墙设置 120

2.10.7  让控制台支持高分辨率 121

2.10.8  手动修改服务器 IP地址 121

2.10.9  修改系统网关和DNS地址 121

2.10.10  更改默认网络接口 122

2.10.11  消除登录菜单 122

2.10.12  进入OSSIM单用户模式 122

2.11  OSSIM启动与停止 123

2.12  安装远程管理工具 125

2.12.1  安装Webmin管理工具 125

2.12.2  安装PhpmyAdmin 125

2.12.3  用PhpmyAdmin同步功能迁移数据库 127

2.13  分布式系统查看传感器状态 128

2.13.1  设置指示器 128

2.13.2  注意事项 130

2.14  安装桌面环境 131

2.14.1  安装GNOME环境 131

2.14.2  安装FVWM环境 132

2.14.3  安装虚拟机 135

2.15  自动化配置管理工具Ansible 137

2.15.1  SSH的核心作用 138

2.15.2  Ansible配置 139

2.15.3  Ansible实战 139

2.15.4  丰富的模块 144

2.15.5  Ansible 与其他配置管理的对比 144

2.16  SIEM控制台基础 144

2.16.1  SIEM控制台日志过滤技巧 145

2.16.2  将重要日志加入到知识库 151

2.16.3  SIEM中显示不同类别日志 153

2.16.4  常见搜索信息 156

2.16.5  仪表盘显示 156

2.16.6  事件删除与恢复 157

2.16.7  深入使用SIEM控制台 158

2.16.8  SIEM事件聚合 162

2.16.9  SIEM要素 163

2.16.10  SIEM警报中显示计算机名 170

2.16.11  SIEM事件保存期限 170

2.16.12  SIEM数据源与插件的关系 171

2.16.13  SIEM日志显示中出现0.0.0.0地址的含义 172

2.16.14  无法显示SIEM安全事件时处理方法 173

2.16.15  SIEM数据库恢复 173

2.16.17  EPS的含义 174

2.16.17  常见OSSIM 安装/使用错误 175

2.17  可视化网络攻击报警Alarm分析 177

2.17.1  报警事件的产生 177

2.17.2  报警事件分类 178

2.17.3  五类报警数据包样本下载 183

2.17.4  报警分组 183

2.17.5  识别告警真伪 185

2.17.6  触发OSSIM报警 185

2.18  小结 193

第二篇  提高篇

第3章  OSSIM数据库概述

3.1  OSSIM数据库组成 195

3.1.1  MySQL 195

3.1.2  本地访问 196

3.1.3  检查、分析表 198

3.1.4  启用MySQL慢查询记录 199

3.1.5  远程访问 199

3.1.6  MongoDB 200

3.1.7  SQLite 201

3.2  OSSIM数据库分析工具 201

3.2.1  负载模拟方法 202

3.2.2  用MySQL Workbench工具分析 数据库 203

3.3  查看OSSIM数据库表结构解析 209

3.4  MySQL基本操作 212

3.5  OSSIM系统迁移 213

3.5.1  迁移准备 213

3.5.2  恢复OSSIM 214

3.6  OSSIM数据库常见问题解答 216

1.当OSSIM 4系统数据库发生损坏时,如何重建数据库。

2.如何查询OSSIM数据库的host开头的表。

3.如何备份OSSIM的SIEM数据库。

4.如何查看MySQL数据库信息。

5.如何查看OSSIM系统的SIEM数据库备份情况。

6.如何终止OSSIM数据库的僵尸进程。

7.如果负载过大在OSSIM 系统中出现“MySQL :ERROR 1040:Too many connections”情况如何处理。

8.如何远程导出OSSIM数据库表结构。

9.OSSIM系统出现acid表错误时如何处理。

10.能修改OSSIM系统中MySQL数据库密码?

11.当意外中断数据库写操作会会对数据库的表造成损坏,如何检查表。

12.如何清理OSSIM数据库。

13.如何用xtrabackup备份OSSIM 数据库。

14.如何快速清除SIEM数据库。

15.如何记录OSSIM数据库的执行过程。

16.如何优化表。

17.如何用mysqldump备份数据库。

3.7  小结 226

第4章  OSSIM关联分析技术 227

4.1  关联分析技术背景 227

4.1.1  当前的挑战 227

4.1.2  基本概念 228

4.1.3  安全事件之间的关系 228

4.2  关联分析基础 229

4.2.1  从海量数据到精准数据 229

4.2.2  网络安全事件的分类 230

4.2.3  Alarm与Ticket的区别 234

4.2.4  使用Ticket 235

4.2.5  加入知识库 236

4.2.6  安全事件提取 237

4.2.7  OSSIM的关联引擎 238

4.2.8  事件的交叉关联 239

4.3  报警聚合 240

4.3.1  报警样本举例 240

4.3.2  事件聚合 241

4.3.3  事件聚合举例 242

4.3.4  事件聚合在OSSIM中的表现形式 243

4.3.5  SIEM中的冗余报警 244

4.3.6  合并相似事件 245

4.3.7  同类事件的判别 245

4.3.8  合并流程 246

4.3.9  事件映射 246

4.3.10  Ossec 的报警信息的聚类 247

4.3.11  Ossec与Snort 事件合并 248

4.4  风险评估方法 249

4.4.1  风险评估三要素 249

4.4.2  Risk & Priority & Reliability的关系实例 250

4.4.3  动态可信度值(Reliability) 253

4.4.4  查看SIEM不同事件 254

4.5  OSSIM系统风险度量方法 256

4.5.1  风险判定 256

4.5.2  事件积累过程 258

4.6  OSSIM中的关联分类 259

4.6.1  关联分类 259

4.6.2  关联指令分类 260

4.6.3  指令组成 262

4.6.4  读懂指令规则 264

4.6.5  Directive Info 265

4.7  新建关联指令 266

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  报警聚合计算方法 282

4.10  自定义策略实现SSH登录失败告警 282

4.11  小结 286

第5章  OSSIM系统监测工具 287

5.1  Linux性能评估 287

5.1.1  性能评估工具 287

5.1.2  查找消耗资源的进程 289

5.2  OSSIM压力测试 289

5.2.1  软硬件测试环境 289

5.2.2  测试项目 290

5.2.3  测试工具 290

5.2.4  IDS测试工具Nidsbench 293

5.3  性能分析工具实例 295

5.3.1  sar 296

5.3.2  vmstat 296

5.3.3  用iostat分析I/O子系统 297

5.3.4  dstat 298

5.3.5  iotop 300

5.3.6  atop 300

5.3.7  替代netstat的工具ss。 300

5.4  OSSIM平台中MySQL运行状况 301

5.4.1  影响MySQL性能的因素 301

5.4.2  系统的IOPS 302

5.5  Syslog压力测试工具——Mustsyslog使用 303

5.5.1  安装mustsyslog 304

5.5.2  日志模板设计 306

5.5.3  日志标签说明 306

5.5.4  域标签举例 306

5.6  常见问题解答 307

1.OSSIM系统空间不足在哪里查找大型文件。

2. 何时应考虑增加系统内存。

3.检测OSSIM系统整体状态的命令行工具

4.监控MySQL利器-mytop

5.监控Linux系统资源和进程的工具。

6.如何找出最消耗内存的进程(smem)

7.如何对OSSIM系统目录大小进行排序?(ncdu)。

8.OSSIM的流量监控工具iftop。

9.如何利用Apache自带工具ab测试OSSIM 响应速度。

10.如何详细了解OSSIM系统进程的网络带宽占用情况

11.为OSSIM系统进行压力测试tcpreplay。

12.压力测试工具Tsung使用。

13. hping3的使用

5.7  小结 322

第6章  Snort规则分析 323

6.1  预处理程序 323
6.1.1  预处理器介绍 323
6.1.2  调整预处理程序 330
6.1.3 
网络攻击模式分类 330

6.2  Snort日志分析利器 332

6.3  Snort日志分析 333
6.3.1  工作模式及输出插件 333
6.3.2  数据包记录模式 335
6.3.3 
网络入侵检测模式HIDS 338
6.3.4  输出插件 338

6.4  Snort 规则编写 345
6.4.1  Snort 规则分析 346
6.4.2  规则组成及含义 347
6.4.3 
编写SNORT规则 353
6.4.4  手工修改Suricata规则 356
6.4.5  启用新建的ET规则 356
6.4.6 
应用新规则 357
6.4.7  主动探测与被动探测 358

6.5  可疑流量检测技术 358
6.5.1  通过特征检测 358
6.5.2  检测可疑的载荷 358
6.5.3 
检测具体元素 359
6.5.4  OSSIM中的Snort规则与SPADE检测 360
6.5.5 
恶意代码行为特征分析 360
6.5.6  蜜罐检测 361

6.6    Snort规则进阶 362
6.6.1  可疑流量的报警 362
6.6.2  空会话攻击漏洞报警 363
6.6.3 
用户权限获取 363
6.6.4  失败的权限提升报警规则 364
6.6.5  企图获取管理员权限 364
6.6.6 
成功获取管理员权限 364
6.6.7  拒绝服务 365

6.7  高速网络环境的应用 367
6.7.1  Suricata VS Snort 367
6.7.2 
PF_RING工作模式 368

6.8  网络异常行为分析 368
6.8.1  流程分析 368
6.8.2  举例 370
6.9  小结 371

第七章

第八章

第九章

第十章

时间: 2024-10-19 10:25:01

《开源安全运维平台OSSIM最佳实践》的相关文章

CI框架源码阅读笔记3 全局函数Common.php

从本篇开始,将深入CI框架的内部,一步步去探索这个框架的实现.结构和设计. Common.php文件定义了一系列的全局函数(一般来说,全局函数具有最高的加载优先权,因此大多数的框架中BootStrap引导文件都会最先引入全局函数,以便于之后的处理工作). 打开Common.php中,第一行代码就非常诡异: if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 上一篇(CI框架源码阅读笔记2 一切的入口 index

IOS测试框架之:athrun的InstrumentDriver源码阅读笔记

athrun的InstrumentDriver源码阅读笔记 作者:唯一 athrun是淘宝的开源测试项目,InstrumentDriver是ios端的实现,之前在公司项目中用过这个框架,没有深入了解,现在回来记录下. 官方介绍:http://code.taobao.org/p/athrun/wiki/instrumentDriver/ 优点:这个框架是对UIAutomation的java实现,在代码提示.用例维护方面比UIAutomation强多了,借junit4的光,我们可以通过junit4的

Yii源码阅读笔记 - 日志组件

?使用 Yii框架为开发者提供两个静态方法进行日志记录: Yii::log($message, $level, $category);Yii::trace($message, $category); 两者的区别在于后者依赖于应用开启调试模式,即定义常量YII_DEBUG: defined('YII_DEBUG') or define('YII_DEBUG', true); Yii::log方法的调用需要指定message的level和category.category是格式为“xxx.yyy.z

源码阅读笔记 - 1 MSVC2015中的std::sort

大约寒假开始的时候我就已经把std::sort的源码阅读完毕并理解其中的做法了,到了寒假结尾,姑且把它写出来 这是我的第一篇源码阅读笔记,以后会发更多的,包括算法和库实现,源码会按照我自己的代码风格格式化,去掉或者展开用于条件编译或者debug检查的宏,依重要程度重新排序函数,但是不会改变命名方式(虽然MSVC的STL命名实在是我不能接受的那种),对于代码块的解释会在代码块前(上面)用注释标明. template<class _RanIt, class _Diff, class _Pr> in

CI框架源码阅读笔记5 基准测试 BenchMark.php

上一篇博客(CI框架源码阅读笔记4 引导文件CodeIgniter.php)中,我们已经看到:CI中核心流程的核心功能都是由不同的组件来完成的.这些组件类似于一个一个单独的模块,不同的模块完成不同的功能,各模块之间可以相互调用,共同构成了CI的核心骨架. 从本篇开始,将进一步去分析各组件的实现细节,深入CI核心的黑盒内部(研究之后,其实就应该是白盒了,仅仅对于应用来说,它应该算是黑盒),从而更好的去认识.把握这个框架. 按照惯例,在开始之前,我们贴上CI中不完全的核心组件图: 由于BenchMa

CI框架源码阅读笔记2 一切的入口 index.php

上一节(CI框架源码阅读笔记1 - 环境准备.基本术语和框架流程)中,我们提到了CI框架的基本流程,这里这次贴出流程图,以备参考: 作为CI框架的入口文件,源码阅读,自然由此开始.在源码阅读的过程中,我们并不会逐行进行解释,而只解释核心的功能和实现. 1.       设置应用程序环境 define('ENVIRONMENT', 'development'); 这里的development可以是任何你喜欢的环境名称(比如dev,再如test),相对应的,你要在下面的switch case代码块中

Apache Storm源码阅读笔记

欢迎转载,转载请注明出处. 楔子 自从建了Spark交流的QQ群之后,热情加入的同学不少,大家不仅对Spark很热衷对于Storm也是充满好奇.大家都提到一个问题就是有关storm内部实现机理的资料比较少,理解起来非常费劲. 尽管自己也陆续对storm的源码走读发表了一些博文,当时写的时候比较匆忙,有时候衔接的不是太好,此番做了一些整理,主要是针对TridentTopology部分,修改过的内容采用pdf格式发布,方便打印. 文章中有些内容的理解得益于徐明明和fxjwind两位的指点,非常感谢.

CI框架源码阅读笔记4 引导文件CodeIgniter.php

到了这里,终于进入CI框架的核心了.既然是"引导"文件,那么就是对用户的请求.参数等做相应的导向,让用户请求和数据流按照正确的线路各就各位.例如,用户的请求url: http://you.host.com/usr/reg 经过引导文件,实际上会交给Application中的UsrController控制器的reg方法去处理. 这之中,CodeIgniter.php做了哪些工作?我们一步步来看. 1.    导入预定义常量.框架环境初始化 之前的一篇博客(CI框架源码阅读笔记2 一切的入

jdk源码阅读笔记之java集合框架(二)(ArrayList)

关于ArrayList的分析,会从且仅从其添加(add)与删除(remove)方法入手. ArrayList类定义: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Monaco } span.s1 { color: #931a68 } public class ArrayList<E> extends AbstractList<E> implements List<E> ArrayList基本属性: /** *

dubbo源码阅读笔记--服务调用时序

上接dubbo源码阅读笔记--暴露服务时序,继续梳理服务调用时序,下图右面红线流程. 整理了调用时序图 分为3步,connect,decode,invoke. 连接 AllChannelHandler.connected(Channel) line: 38 HeartbeatHandler.connected(Channel) line: 47 MultiMessageHandler(AbstractChannelHandlerDelegate).connected(Channel) line: