目录
上篇技术解析篇
第1章Linux内核级安全开发基础
1.1操作系统体系结构概述
1.1.1单体式结构
1.1.2微内核结构
1.2Linux的动态内核模块机制
1.2.1动态内核模块机制概述
1.2.2Linux内核模块的加载和卸载
1.3Linux内核模块开发方法
1.3.1源代码组成
1.3.2外部符号引用
1.3.3编译和运行模式
1.3.4调试和信息输出
1.4Linux系统调用概述
1.4.1系统调用与系统安全
1.4.2系统调用的服务功能
1.5Linux系统调用的实现
1.5.1系统调用入口地址表
1.5.2中断机制和系统调用实现
1.5.3Linux系统调用的实现过程
1.6应用程序和内核模块的信息交互方式
1.6.1Netlink机制
1.6.2创建设备文件
1.6.3添加系统调用
1.7本章小结
习题
第2章Linux内核级安全机制实现解析
2.1Linux的安全模块(LSM)机制
2.1.1LSM机制的出现背景
2.1.2LSM机制的实现原理
2.1.3LSM机制中钩子函数的注册
2.1.4钩子函数的参数传递
2.2基于LSM的Linux内核级安全机制实现
2.2.1基于LSM的内核级安全机制实现概述
2.2.2访问监视类安全机制的实现
2.2.3访问控制类安全机制的实现
2.2.4数据转换类安全机制的实现
2.3Linux系统调用重载技术
2.3.1系统调用重载的概念
2.3.2系统调用重载的实现技术
2.3.3系统调用重载中的参数传递
2.4基于系统调用重载的内核级安全机制实现
2.4.1基于系统调用重载的内核级安全机制实现概述
2.4.2访问监视类安全机制的实现
2.4.3访问控制类安全机制的实现
2.4.4数据转换类安全机制的实现
2.5基于LSM的文件访问控制实现解析
2.5.1原有文件访问控制机制概述
2.5.2基于LSM的文件访问控制实现结构
2.6基于系统调用重载的文件访问日志实现解析
2.6.1Linux的日志系统概述
2.6.2基于系统调用重载的文件访问日志
2.7本章小结
习题
第3章网络防火墙功能与结构解析
3.1网络防火墙的基本概念
3.2防火墙的网络访问控制功能
3.3访问控制功能的实现要素
3.3.1访问控制规则的配置
3.3.2基于访问控制规则的访问判决
3.3.3网络访问判决的实施
3.4网络防火墙的逻辑结构
3.4.1访问控制规则配置模块
3.4.2访问控制规则数据库
3.4.3网络访问截获和控制模块
3.4.4网络访问判决模块
3.5网络防火墙接入的协议层次
3.5.1非代理模式下的协议处理流程
3.5.2代理模式下的协议处理流程
3.5.3网络防火墙的IP层接入
3.5.4网络防火墙的应用代理接入
3.6网络访问的控制粒度
3.7本章小结
习题
第4章网络防火墙的技术类型
4.1包过滤防火墙原理及特征
4.1.1包过滤防火墙工作原理
4.1.2包过滤防火墙工作流程
4.1.3包过滤防火墙的优缺点
4.2应用代理防火墙原理与特征
4.2.1应用代理防火墙工作原理
4.2.2应用代理防火墙工作流程
4.2.3应用代理防火墙的优缺点
4.3透明代理防火墙原理及特征
4.3.1透明代理防火墙的技术背景
4.3.2透明代理防火墙技术解析
4.3.3透明代理防火墙工作原理
4.3.4透明代理防火墙的功能特征
4.4防火墙技术类型的新发展
4.5本章小结
习题
第5章各类型防火墙实现解析
5.1防火墙实现基础: Netfilter机制
5.1.1Netfilter概述
5.1.2Netfilter机制的运行原理
5.1.3Netfilter功能种类
5.2Linux内置包过滤防火墙
5.2.1Linux内置包过滤防火墙概述
5.2.2Linux内置包过滤防火墙的构建
5.2.3过滤规则配置及测试
5.2.4Linux内置包过滤防火墙的管理
5.3基于内核模块的包过滤防火墙实现解析
5.4基于Netfilter队列机制的防火墙实现解析
5.5应用代理防火墙实现解析
5.6透明代理防火墙实现解析
5.7本章小结
习题
第6章系统脆弱性检测技术及实现解析
6.1安全脆弱性检测概述
6.2脆弱性检测的技术分类
6.2.1基于主机的脆弱性检测
6.2.2基于网络的脆弱性检测
6.3端口扫描的基本原理和技术
6.3.1全连接扫描技术解析
6.3.2半连接扫描技术解析
6.3.3结束连接(FIN)扫描技术解析
6.3.4UDP端口扫描技术解析
6.4端口扫描的实现解析
6.4.1原始套接字及编程
6.4.2Libnet和Libpcap库函数编程
6.5弱口令扫描技术基本原理
6.5.1口令认证方式解析
6.5.2弱口令扫描的基本原理
6.6Linux下弱口令扫描实现解析
6.6.1口令信息的保存
6.6.2口令的加密方式
6.6.3弱口令扫描的场景和流程
6.7本章小结
习题
第7章入侵检测技术及实现解析
7.1入侵检测概述
7.2入侵检测的主要技术
7.2.1误用检测
7.2.2异常检测
7.3主机入侵检测和网络入侵检测
7.3.1主机入侵检测
7.3.2网络入侵检测
7.4入侵检测系统的实现技术解析
7.4.1入侵检测系统的工作原理
7.4.2判定入侵的依据
7.4.3入侵检测算法的实现方式
7.4.4系统预知特征的获取方式
7.4.5入侵检测系统的实现结构
7.4.6网络入侵检测系统的接入方式
7.5网络入侵检测系统实例及实现解析
7.5.1基于特征串匹配的网络攻击检测解析
7.5.2针对端口扫描的攻击检测系统解析
7.6本章小结
习题
下篇开发实践篇
第8章基于LSM的文件访问控制原型实现
8.1原型系统的总体设计
8.2配置程序的实现
8.2.1程序用到的库函数
8.2.2源码与注释
8.3LSM内核控制模块的实现
8.3.1涉及到的外部函数及结构体
8.3.2头文件、全局变量及函数声明
8.3.3函数功能设计
8.3.4函数实现与注释
8.4编译、运行及测试
8.4.1编译方法和过程
8.4.2运行及测试环境配置
8.4.3文件操作控制功能的测试
8.5扩展开发实践
8.5.1基于LSM的程序运行权限管理
8.5.2基于LSM的程序完整性保护
8.5.3基于LSM的网络连接控制
8.5.4基于LSM的基本型文件保险箱
8.5.5基于LSM的系统级资源访问审计
8.6本章小结
习题
第9章基于系统调用重载的文件访问日志原型实现
9.1原型系统的总体设计
9.2内核日志模块的实现
9.2.1涉及的外部函数及结构
9.2.2头文件、全局变量及声明
9.2.3函数组成和功能设计
9.2.4函数实现与注释
9.3日志应用程序的实现
9.3.1程序功能及实现思路
9.3.2涉及的库函数和结构体
9.3.3头文件及全局变量
9.3.4函数组成及功能设计
9.3.5函数实现与注释
9.4编译、运行及测试
9.4.1编译方法和过程
9.4.2文件操作日志测试
9.5扩展开发实践
9.5.1基于系统调用重载的系统级资源访问审计
9.5.2基于系统调用重载的访问控制类开发实践
9.5.3基于系统调用重载的加密型文件保险箱
9.5.4基于系统调用重载的日志原型系统的移植
9.6本章小结
习题
第10章内核模块包过滤防火墙的原型实现
10.1原型系统的总体设计
10.1.1规则配置程序的设计
10.1.2内核模块的设计
10.2规则配置程序的实现
10.2.1用到的库函数
10.2.2规则配置程序的函数组成
10.2.3头文件和全局变量
10.2.4函数的源代码实现
10.3内核控制模块的实现
10.3.1外部函数及结构
10.3.2头文件、全局变量及声明
10.3.3函数组成及功能设计
10.3.4函数实现与注释
10.4编译、运行及测试
10.4.1编译方法和过程
10.4.2测试环境说明
10.4.3功能测试过程
10.5扩展开发实践
10.5.1内核模块包过滤防火墙的控制功能扩展
10.5.2内核模块包过滤防火墙原型系统的移植
10.5.3基于Netfilter的网络加密通信系统
10.5.4内核模块包过滤防火墙的攻击检测功能扩展
10.6本章小结
习题
第11章基于队列机制的应用层包过滤防火墙原型实现
11.1原型系统的总体设计
11.1.1应用层IP报文获取方案
11.1.2功能和结构设计
11.1.3运行方式
11.2原型系统的实现
11.2.1外部库函数
11.2.2头文件和全局变量
11.2.3函数组成及功能设计
11.2.4函数实现和注释
11.3编译、运行及测试
11.3.1编译环境、方法和过程
11.3.2测试环境
11.3.3防火墙的功能测试
11.4扩展开发实践
11.4.1应用层包过滤防火墙的控制功能扩展
11.4.2应用层包过滤防火墙的Netlink通信
11.4.3应用层包过滤防火墙的报文内容变换扩展
11.4.4应用层包过滤防火墙的攻击检测功能扩展
11.5本章小结
习题
第12章应用代理防火墙的原型实现
12.1原型系统的总体设计
12.1.1原型系统的功能设计
12.1.2原型系统的逻辑结构
12.1.3程序运行方式
12.2原型系统的实现
12.2.1主要库函数
12.2.2头文件及全局变量
12.2.3函数功能与设计
12.2.4主线程实现
12.2.5子线程实现
12.3编译、运行与测试
12.3.1编译和运行
12.3.2测试环境设置
12.3.3测试过程
12.4扩展开发实践
12.4.1应用代理防火墙的控制功能扩展
12.4.2应用代理防火墙的缓存机制支持
12.4.3应用代理防火墙的消息变换功能扩展
12.4.4应用代理防火墙的审计功能扩展
12.4.5应用代理防火墙的FTP支持扩展
12.5本章小结
习题
第13章透明代理防火墙的原型实现
13.1透明代理防火墙的关键技术解析
13.1.1目标服务器标识获取
13.1.2至客户端的源地址重定向
13.2原型系统的总体设计
13.2.1原型系统的功能设计
13.2.2原型系统的逻辑结构
13.2.3原型系统运行方式
13.3原型系统的实现
13.3.1关键库函数
13.3.2头文件及全局变量
13.3.3函数组成和功能设计
13.3.4主线程代码实现与注释
13.3.5子线程代码实现与注释
13.4编译、运行与测试
13.4.1测试环境设置
13.4.2编译和运行
13.4.3测试过程
13.5扩展开发实践
13.5.1透明代理防火墙的多规则支持和动态配置扩展
13.5.2透明代理防火墙的HTTP协议解析与控制扩展
13.5.3透明代理防火墙的FTP协议解析与控制扩展
13.5.4透明代理防火墙的网页缓存扩展
13.5.5透明代理防火墙的HTTP消息变换扩展
13.6本章小结
习题
第14章端口扫描工具的原型实现
14.1原型工具的总体设计
14.1.1功能及实现方案
14.1.2原型工具的运行方式
14.2原型工具的实现
14.2.1主要头文件及宏定义
14.2.2主要数据结构
14.2.3函数组成和功能设计
14.2.4函数源代码与注释
14.3编译、运行和测试
14.3.1端口扫描工具的编译
14.3.2对Linux系统的扫描测试
14.3.3对Windows系统的扫描测试
14.4扩展开发实践
14.4.1UDP扫描扩展实现
14.4.2全连接扫描的多线程扩展
14.4.3端口扫描原型工具的扫描功能扩展
14.5本章小结
习题
第15章弱口令扫描工具的原型实现
15.1原型工具的总体设计
15.1.1原型工具的输入
15.1.2口令加密方式
15.1.3原型工具的运行方式
15.2原型工具的实现
15.2.1头文件和数据结构
15.2.2函数组成和功能设计
15.2.3函数源代码和注释
15.3编译、运行与测试
15.4扩展开发实践
15.4.1弱口令扫描的功能增强扩展
15.4.2针对Windows系统的弱口令扫描实现
15.5本章小结
习题
第16章基于特征串匹配的攻击检测系统原型实现
16.1原型系统的总体设计
16.1.1检测功能概述
16.1.2TCP数据包的获取方案
16.1.3特征串匹配算法
16.1.4程序运行方式
16.2原型系统的实现
16.2.1主要头文件
16.2.2主要数据结构
16.2.3使用的全局变量
16.2.4函数组成和调用关系
16.2.5函数源代码与注释
16.3编译及运行测试
16.3.1编译方式
16.3.2运行与测试
16.4扩展开发实践
16.4.1原型系统的抗逃避检测扩展
16.4.2原型系统的特征串匹配算法改进
16.4.3原型系统的检测准确性扩展
16.5本章小结
习题
第17章端口扫描检测系统的原型实现
17.1原型系统的总体设计
17.1.1原型系统的功能及实现原理
17.1.2程序运行方式
17.2原型系统的实现
17.2.1主要头文件及宏定义
17.2.2主要数据结构
17.2.3使用的全局变量
17.2.4函数组成和功能设计
17.2.5函数源代码与注释
17.3编译及运行测试
17.3.1编译
17.3.2运行与测试
17.4扩展开发实践
17.4.1原型系统的检测准确性改善
17.4.2针对FIN扫描检测扩展
17.4.3针对UDP端口扫描检测扩展
17.4.4针对半连接攻击的检测扩展
17.5本章小结
习题
附录A扩展开发实践题目汇总
参考文献