前 言
欢迎阅读本书。本书的目标是向信息技术(IT)专业人士提供理解和处理日志数据的入门知识。各种形式的日志数据是由许多类型的系统生成的。如何处理和分析日志数据是长期存在的一个问题。本书介绍能够帮助你分析日志数据和寻找恶意活动的技术和工具。
过去,系统管理员审阅日志文件,寻找磁盘错误或者内核问题。现在的系统管理员往往还要兼任安全管理员。更好地理解如何处理安全日志数据的需求从未像今天那么重要。安全性分析人员是IT专家组中负责跟踪日志分析技术的人。许多经验丰富的人曾经在“压力测试”的模式下进行学习。本书的目标是提供帮助你快速理解各种概念的材料,提取许多人曾经花费多年学习的知识。
我们先来谈谈最近的一个重要问题:法规依从性。随着安能公司和其他企业的垮台,法规依从性现在成为了许多企业的核心主题,焦点现在集中在政策和规程。作为IT工程师,你能说明,Bob在被解雇之后无法访问自己的企业电子邮件账户吗?这些事情需要公司提出规程。系统和网络日志的框架正在以这样那样的方式变化。
目标读者
本书面向任何对学习日志记录和日志管理感兴趣的人。下面介绍一些应该阅读本书的人士。
系统管理员:承担企业日志数据监控任务。
初级安全工程师:网络安全的新手,希望学习日志分析技术。
应用程序开发人员:对从头构建一个日志分析系统感兴趣的人,本书提供了这方面的示例代码。但是,全书为日志分析的重要性提供了很好的背景资料,这些领域也不应该忽略。
管理人员:想深入理解日志数据收集、存储、分析和法规依从性等主题的人。如前所述,这些问题在企业中越来越多地出现,并将持续地成为IT专业人士需要更多关注的领域。
所需基础知识
我们假定读者对网络、操作系统和网络安全等概念有基本的了解。但是,理解本书中的素材并不要求读者是计算机科学家或者网络高手。需要背景信息的主题提供了必要的细节。大部分代码示例采用Perl和Java编程语言。理解或者使用这些代码示例并不要求读者是Java高手,所以我鼓励每个人都仔细地阅读这些例子。
目 录
第1章
1.1 概述
1.2 日志数据基础
1.2.1 什么是日志数据
1.2.2 日志数据是如何传输和收集的
1.2.3 什么是日志消息
1.2.4 日志生态系统
1.3 看看接下来的事情
1.4 被低估的日志
1.5 日志会很有用
1.5.1 资源管理
1.5.2 入侵检测
1.5.3 故障排除
1.5.4 取证
1.5.5 无聊的审计,有趣的发现
1.6 人、过程和技术
1.7 安全信息和事件管理(SIEM)
1.8 小结
第2章
2.1 概述
2.2 日志的概念
2.2.1 日志格式和类型
2.2.2 日志语法
2.2.3 日志内容
2.3 良好日志记录的标准
2.4 小结
第3章
3.1 概述
3.2 日志来源
3.2.1 syslog
3.2.2 SNMP
3.2.3 Windows事件日志
3.3 日志来源分类
3.3.2 安全相关的网络日志
3.3.3 安全主机日志
3.4 小结
第4章 日志存储技术
4.1 概述
4.2 日志留存策略
4.3 日志存储格式
4.3.1 基于文本的日志文件
4.3.2 二进制文件
4.3.3 压缩文件
4.4 日志文件的数据库存储
4.4.1 优点
4.4.2 缺点
4.4.3 定义数据库存储目标
4.5 Hadoop日志存储
4.5.1 优点
4.5.2 缺点
4.6 云和Hadoop
4.6.1 Amazon Elastic MapReduce入门
4.6.2 浏览Amazon
4.6.3 上传日志到Amazon简单存储服务(S3)
4.6.4 创建一个Pig脚本分析Apache访问日志
4.6.5 在Amazon Elastic MapReduce (EMR)中处理日志数据
4.7 日志数据检索和存档
4.7.1 在线存储
4.7.2 近线存储
4.7.3 离线存储
4.8 小结
参考文献
第5章 syslog-ng案例研究
5.1 概述
5.2 获取syslog-ng
5.3 什么是syslog-ng
5.4 部署示例
5.5 syslog-ng故障排除
5.6 小结
参考文献
第6章 隐蔽日志
6.1 概述
6.2 完全隐藏日志设置
6.2.1 隐藏日志生成
6.2.2 隐藏日志采集
6.2.3 IDS日志源
6.2.4 日志收集服务器
6.2.5 “伪”服务器或“蜜罐”
6.3 在“蜜罐”中的日志记录
6.3.1 蜜罐网络的隐蔽shell击键记录器
6.3.2 蜜罐网络的Sebek2案例研究
6.4 隐蔽日志通道简述
6.5 小结
参考文献
第7章 分析日志的目标、规划和准备
7.1 概述
7.2 目标
7.2.1 过去的问题
7.2.2 未来的问题
7.3 规划
7.3.1 准确性
7.3.2 完整性
7.3.3 可信性
7.3.4 保管
7.3.5 清理
7.3.6 规范化
7.3.7 时间的挑战
7.4 准备
7.4.1 分解日志消息
7.4.2 解析
7.4.3 数据精简
7.5 小结
第8章 简单分析技术
8.1 概述
8.2 一行接一行:绝望之路
8.3 简单日志查看器
8.3.1 实时审核
8.3.2 历史日志审核
8.3.3 简单日志操纵
8.4 人工日志审核的局限性
8.5 对分析结果做出响应
8.5.1 根据关键日志采取行动
8.5.2 根据非关键日志的摘要采取行动
8.5.3 开发行动计划
8.5.4 自动化的行动
8.6 示例
8.6.1 事故响应的场景
8.6.2 例行日志审核
8.7 小结
参考文献
第9章 过滤、规范化和关联
9.1 概述
9.2 过滤
9.3 规范化
9.3.1 IP地址验证
9.3.2 Snort
9.3.3 Windows Snare
9.3.4 通用Cisco IOS消息
9.3.5 正则表达式性能考虑因素
9.4 关联
9.4.1 微观关联
9.4.2 宏观关联
9.4.3 使用环境中的数据
9.4.4 简单事件关联器
9.4.5 状态型规则示例
9.4.6 构建自己的规则引擎
9.5 常见搜索模式
9.6 未来
9.7 小结
参考文献
第10章 统计分析
10.1 概述
10.2 频率
10.3 基线
10.3.1 阈值
10.3.2 异常检测
10.3.3 开窗
10.4 机器学习
10.4.1 kNN算法
10.4.2 将kNN算法应用到日志
10.5 结合统计分析和基于规则的关联
10.6 小结
参考文献
第11章 日志数据挖掘
11.1 概述
11.2 数据挖掘简介
11.3 日志数据挖掘简介
11.4 日志数据挖掘需求
11.5 挖掘什么
11.6 深入感兴趣的领域
11.7 小结
参考文献
第12章 报告和总结
12.1 概述
12.2 定义最佳报告
12.3 身份认证和授权报告
12.4 变更报告
12.5 网络活动报告
12.6 资源访问报告
12.7 恶意软件活动报告
12.8 关键错误和故障报告
12.9 小结
第13章 日志数据可视化
13.1 概述
13.2 视觉关联
13.3 实时可视化
13.4 树图
13.5 日志数据合成
13.6 传统日志数据图表
13.7 小结
参考文献
第14章 日志法则和日志错误
14.1 概述
14.2 日志法则
14.2.1 法则1——收集法则
14.2.2 法则2——留存法则
14.2.3 法则3——监控法则
14.2.4 法则4——可用性法则
14.2.5 法则5——安全性法则
14.2.6 法则6——不断变化法则
14.3 日志错误
14.3.1 完全没有日志
14.3.2 不查看日志数据
14.3.3 保存时间太短
14.3.4 在收集之前排定优先顺序
14.3.5 忽略应用程序日志
14.3.6 只搜索已知的不良条目
14.4 小结
参考文献
第15章 日志分析和收集工具
15.1 概述
15.2 外包、构建或者购买
15.2.1 构建一个解决方案
15.2.2 购买
15.2.3 外包
15.2.4 问题
15.3 日志分析基本工具
15.3.1 grep
15.3.2 awk
15.3.3 Microsoft日志解析器
15.3.4 其他可以考虑的基本工具
15.3.5 基本工具在日志分析中的作用
15.4 用于集中化日志分析的实用工具
15.4.1 syslog
15.4.2 Rsyslog
15.4.3 Snare
15.5 日志分析专业工具
15.5.1 OSSEC
15.5.2 OSSIM
15.5.3 其他值得考虑的分析工具
15.6 商业化日志工具
15.6.1 Splunk
15.6.2 NetIQ Sentinel
15.6.3 IBM q1Labs
15.6.4 Loggly
15.7 小结
参考文献
第16章 日志管理规程
16.1 概述
16.2 假设、需求和预防措施
16.2.1 需求
16.2.2 预防措施
16.3 常见角色和职责
16.4 PCI和日志数据
16.4.1 关键需求10
16.4.2 与日志记录相关的其他需求
16.5 日志记录策略
16.6 审核、响应、升级规程 初始基线
16.6.3 人工构建初始基线
16.6.4 主要工作流程:每天日志审核
16.6.5 异常调查与分析
16.6.6 事故响应和升级
16.7 日志审核的验证
16.7.1 日志记录的证据
16.7.2 日志审核的证据
16.7.3 异常处理的证据
16.8 日志簿——异常调查的证据
16.8.1 日志簿推荐格式
16.8.2 日志簿条目示例
16.9 PCI依从性证据包
16.10 管理报告
16.11 定期运营任务
16.11.1 每日任务
16.11.2 每周任务
16.11.3 每月任务
16.11.4 季度任务
16.11.5 年度任务
16.12 其他资源
16.13 小结
参考文献
第17章 对日志系统的攻击
17.1 概述
17.2 各类攻击
17.2.1 攻击什么
17.2.2 对机密性的攻击
17.2.3 对完整性的攻击
17.2.4 对可用性的攻击
17.3 小结
参考文献
第18章 供程序员使用的日志
18.1 概述
18.2 角色与职责
18.3 程序员所用的日志记录
18.3.1 日志应该记录哪些信息
18.3.2 程序员使用的日志记录API
18.3.3 日志轮转
18.3.4 不好的日志消息
18.3.5 日志消息格式
18.4 安全考虑因素
18.5 性能考虑因素
18.6 小结
参考文献
第19章 日志和依从性
19.1 概述
19.2 PCI DSS
19.3 ISO 2700X系列
19.4 HIPAA
19.5 FISMA
19.6 小结
第20章 规划自己的日志分析系统
20.1 概述
20.2 规划
20.2.1 角色和职责
20.2.2 资源
20.2.3 目标
20.2.4 选择日志记录的系统和设备
20.3 软件选择
20.3.1 开源软件
20.3.2 商业化软件
20.4 策略定义
20.4.1 日志记录策略
20.4.2 日志文件轮转
20.4.3 日志数据收集
20.4.4 留存/存储
20.4.5 响应
20.5 架构
20.5.1 基本模型
20.5.2 日志服务器和日志收集器
20.5.3 日志服务器和具备长期存储的日志收集器
20.5.4 分布式部署
20.6 扩展
20.7 小结
第21章 云日志
21.1 概述
21.2 云计算
21.2.1 服务交付模型
21.2.2 云部署模型
21.2.3 云基础设施特性
21.2.4 标准?我们不需要讨厌的标准
21.3 云日志
21.4 监管、依从性和安全问题
21.5 云中的大数据
21.6 云中的SIEM
21.7 云日志的优缺点
21.8 云日志提供者目录
21.9 其他资源
21.10 小结
参考文献
第22章 日志标准和未来的趋势
22.1 概述
22.2 从今天推知未来
22.2.1 更多的日志数据
22.2.2 更多动力
22.2.3 更多分析
22.3 日志的未来和标准
22.4 渴望的未来
22.5 小结