黑客攻防
一、网络安全概述
本单元旨在帮助学生建立起网络安全的基本概念,了解目前阶段来自网络威胁的主要挑战,网络安全学科所涉及到的技术门类和专业范围,网络安全领域对从业者的技术要求。
二、网络协议栈
Linux作为应用最广泛的开源操作系统之一,不仅能够提供终端主机所需要的各种网络协议软件,而且还能够实现网桥、路由器等网络设备的基本功能
为了帮助学生获得自主知识产权网络安全软件产品的研发能力,本课程所有案例均在Linux操作系统上完成
本单元将从两个方面对Linux网络协议栈展开讨论,一是结合Linux网络协议栈的设计特点,介绍网络协议栈源码的几个主要功能模块,二是讨论Linux网络协议栈源码
三、对称密钥
DES算法是一种典型的对称密钥加密算法,也是应用密码学中最基本的加密算法之一,目前广泛应用于网络通信加密、数据存储加密、口令与访问控制系统之中
掌握DES算法在网络通信中的应用对于理解对称加密算法大有裨益
本单元以加密TCP聊天程序为案例,研究基于DES算法的通信加密应用软件的设计和编程方法
本单元旨在帮助学生理解对称加密算法DES的基本工作原理,掌握将DES算法应用于网络通信的设计与软件编程的基本方法,掌握Linux操 作系统socket编程的基本方法
通过本单元的学习,学生应能利用socket编写一个TCP聊天程序,其聊天内容在传输过程中通过DES算法加密和解密
四、公钥密码
在讨论了对称加密算法DES的原理与实现的基础上,本单元以典型的非对称加密算法RSA为例,以进一步完善加密TCP聊天程序为目标, 系统地讨论公钥密码体系与RSA算法的基本工作原理和应用软件编程方法
本单元旨在帮助学生理解非对称加密算法RSA的基本工作原理,掌握将RSA算法应用于网络通信的设计与软件编程的基本方法,了解在 Linux操作系统上实现异步I/O的基本方法
通过本单元的学习,学生应能在上一单元加密聊天程序的基础上,增加基于RSA算法的密钥分发功能,用公私钥对DES密钥加解密
五、消息摘要
MD5是目前最流行的消息摘要算法,已被广泛应用于数字签名、文件完整性检测等领域
熟悉MD5算法对于开发安全的网络应用程序具有重要的意义
本单元旨在帮助学生理解MD5消息摘要算法的基本原理,掌握利用MD5算法生成消息摘要的计算方法,掌握将MD5算法应用于文件完整性校验软件的基本设计与编程方法,掌握在Linux操作系统中检查文件完整性的基本方法
通过本单元的学习,学生应能正确实现MD5摘要的计算过程,对任意长度的字符串和文件能够生成128位长的MD5摘要,并通过该摘要验证文件的完整性
六、嗅探器
网络监控软件能够监测网络流量,发现网络中异常的数据流,有效地发现和防御网络攻击,是保证网络安全的重要工具和手段之一,也是网络安全技术人员必须掌握的重要技能之一
本单元研究基于原始套接字(Raw Socket)的网络嗅探器(Sniffer)系统的设计和软件编程方法
本单元旨在帮助学生理解Sniffer的基本工作原理和实现方法,掌握Raw Socket的基本工作原理,掌握TCP/IP、ICMP等协议及socket编程方法
通过本单元的学习,学生应能利用原始套接字编写一个网络嗅探器捕获网络数据包,分析基本的数据包信息并实现简单的过滤器功能
七、安全Web服务器
Web服务使用HTTP协议传输明文,重要数据有被第三方截获的风险。安全超文本传输协议(HTTP over SSL,HTTPS)通过安全套接字层 (Secure Socket Layer,SSL)加密HTTP数据,保护数据在Web系统中的传输安全
掌握基于OpenSSL的安全Web服务器软件的设计和编程方法,对于提高Web系统的安全性有着重要的意义
本单元旨在帮助学生理解HTTPS协议和SSL协议的基本工作原理,掌握使用OpenSSL库编程的方法,掌握安全Web服务器的基本设计与实现方法
通过本单元的学习,学生应能在Linux平台上基于OpenSSL库,编写一个安全Web服务器程序,该服务器能并发处理多个请求,至少支持 HTTPS协议下最基本的GET命令,进而扩展到支持HEAD、POST以及DELETE等命令,编写必要的客户端程序,以发送HTTPS请求,并显示服务器返回的响应结果
八、端口扫描
网络端口扫描器不仅可以发现目标主机的开放端口和操作系统类型,还可以获知系统的安全漏洞和口令缺陷,既是重要的网络检测设备,同时也是黑客的攻击工具
掌握端口扫描器的基本工作原理和软件设计方法是对网络安全技术人员的起码要求,对维护网络安全,了解黑客攻击手段有着重要的意义
本单元旨在帮助学生理解网络端口扫描器的基本结构、工作原理和设计方法,掌握TCP CONNECT扫描、TCP SYN扫描、TCP FIN扫描以 及UDP扫描的基本工作原理、设计与实现方法,掌握ping程序的设计与实现方法,掌握Linux操作系统多线程编程的基本方法
通过本单元的学习,学生应能编写端口扫描程序,实现TCP CONNECT扫描、TCP SYN扫描、TCP FIN扫描和UDP扫描等四种基本扫描方式,设计并实现ping程序,探测目标主机是否可达
九、网络诱骗
网络诱骗系统通常会通过一些诱饵来诱惑潜在的攻击者发起攻击,同时对其攻击行为进行监控和记录,评估其危害,搜集犯罪证据,以达到主动保护系统安全的目的
网络诱骗系统的主要技术包括伪装技术、监控技术和隐藏技术
本单元旨在帮助学生理解网络诱骗系统的基本工作原理,理解Linux系统调用的原理和实现,以及利用钩子技术扩展操作系统自带编程接口 的方法,掌握可加载内核模块编程的相关知识和方法,了解Linux系统中程序隐藏的方法
通过本单元的学习,学生应能设计并实现一个简单的网络诱骗系统,该系统运行在Linux操作系统的核心层(Ring 0),将用户终端登录后的键盘输入记录在日志文件中,甚至可以尝试为该系统添加隐藏(模块、文件、通信等)功能
十、入侵检测
入侵检测系统(IDS)是一种对网络传输进行实时监测,并在发现可疑情况时发出警报或采取主动防御措施的网络安全设备
本单元在系统分析入侵检测系统基本工作原理的基础上,以基于特征的入侵检测系统为案例,研究入侵检测系统的设计与软件编程方法
本单元旨在帮助学生掌握基于特征的入侵检测系统的基本工作原理、设计和实现方法,掌握K-Means聚类算法的计算过程,掌握在网络安全系统中应用数据挖掘技术的基本概念和方法
通过本单元的学习,学生应能使用KDD Cup 1999数据集进行聚类分析,训练一个用于入侵检测的聚类模型,并使用该模型对测试数据进行预测
十一、防火墙
防火墙通过在网络与网络或网络与主机之间建立访问控制以及地址隐藏等技术手段,保护网络资源免受非法侵害,是目前常用的网络安全设备之一
Linux系统通过Netfilter内核模块提供了包过滤功能,可以此作为构建防火墙的基础
本单元通过扩展Netfilter内核模块实现防火墙的功能,同时也讨论了通过IPTables快速搭建自定义防火墙的方法
本单元旨在帮助学生理解防火墙技术的基本工作原理,理解Linux环境中Netfilter/IPTables的工作机制,掌握对Netfilter内核模块进行扩展编 程的基本方法,掌握通过IPTables构建防火墙的基本方法
通过本单元的学习,学生应能通过扩展Netfilter内核模块的方法实现简单的防火墙,以基于协议、源IP地址或目的端口号的方式过滤数据包
十二、内核加固
Linux是一种开源操作系统,开发人员可以通过修改其源代码对系统进行加固
本单元通过加固Linux网络协议栈程序,改变Linux内核对孤立TCP SYN数据包的处理方式,提升系统对TCP SYN拒绝服务攻击的防御能力
本单元旨在帮助学生理解TCP连接的建立过程以及拒绝服务攻击的基本原理和方法,通过分析Linux内核源码,理解Linux网络协议栈的实现原理,掌握对TCP SYN洪泛的防御手段以及对Linux内核进行扩展开发的方法,了解Linux TCP Cookie防火墙的工作原理
通过本单元的学习,学生应能通过扩展Linux原有的内核功能,使其在遭受TCP SYN拒绝服务攻击时,主动丢弃TCP SYN数据包,在不影响已建立TCP连接的前提下,提高系统抵御拒绝服务攻击的能力
Unit01
网络安全
网络威胁
研究范围
安全体系
网络攻击
安全防护
防毒杀毒
电子取证
持续规划
密码科学
应用技术
人员需要
Unit02
Linux网络协议栈
设计特点
固定模式
主要模块