图书目录

目录

上篇技术解析篇

第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扩展开发实践题目汇总

参考文献