这篇blog总结了博主大三下学期的《网络安全》课程主要知识点,每一点仔细研究的话都有很多很深很精妙的内容。
0x00 网络安全的目标
网络安全的目标是保证信息的保密性、真实性、完整性、可靠性、可用性、不可否认性。了解网络安全的定义可以帮助我们提高分析问题、解决问题的能力,可以有计划、有方向的针对其目标来分析网络安全。所以,了解这些是必要的。
- 保密性:指网络信息不被泄漏给非授权的用户、实体或过程,即信息只为授权用户使用。通常使用的技术包括物理保密、防窃听、防辐射(防止有用信息以各种途径辐射出去)、信息加密。
- 真实性:指用户的身份是真实的。涉及到认证问题。
- 完整性:指网络信息未经授权不能进行改变的特性,即网络信息在存储或传输过程中保持不被偶然或者蓄意地添加、删除、修改、伪造、乱序、重放等破环和丢失的特性。主要方法有:
- 良好的协议
- 密码校验和方法
- 数字签名
- 公正
- 可靠性:指系统能够在规定的条件和规定的时间内完成规定的功能的特性。衡量的角度有抗毁性、生存性和有效性。
- 可用性:指网络信息服务在需要时,可被授权用户或实体访问并按需求使用的特性,或者是网络部分受损或需要降级使用时,仍能为授权用户提供有效服务的特性。可用性可通过如下手段来保证:
- 身份识别与确认
- 访问控制
- 业务流控制
- 路由选择控制
- 审计跟踪
- 不可否认性(不可抵赖性):即在网络信息系统的信息交互过程中,确信参与者的真实同一性。所有参与者都不能否认或抵赖曾经完成的操作和承诺。
- 可控性:指对网络信息的传播及内容具有控制能力的特性。
0x01 网络威胁的来源有哪些?是什么?
-
协议本身的缺陷:比如网卡可以设置成混杂模式、socket跨层传输等问题。
明文传输
-
IP欺骗:IP地址没有认证
- 使被信任主机失去工作能力
- 然后连接到目标机的某个端口来猜测ISN基值和增加规律
- 接下来把源址址伪装成被信任主机,发送带有SYN标志的数据段请求连接
- 然后等待目标机发送SYN+ACK包给已经瘫痪的主机
- 最后再次伪装成被信任主机向目标机发送的ACK,此时发送的数据段带有预测的目标机的ISN+1
- 连接建立,发送命令请求
碎片攻击:IP首部有两个字节表示整个IP数据包的长度,所以IP数据包最长只能为0xFFFF,就是65535字节。如果有意发送总长度超过65535 的IP碎片,一些老的系统内核在处理的时候就会出现问题,导致崩溃或者拒绝服务。另外,如果分片之间偏移量经过精心构造,一些系统就无法处理,导致死机。所以说,漏洞的起因是出在重组算法上。这里有一篇blog写的很清楚, 碎片攻击
-
TCP滥用:SYN flood讲的是黑客利用TCP协议发送大量的半连接请求去攻击目标服务器或者主机,致使目标服务器发生拒绝服务,或者蓝屏。
DNS、FTP、TELNET等应用协议的安全问题
-
恶意攻击
- 缓冲区溢出攻击
- DDoS
- 特洛伊木马
-
各种应用软件的漏洞
- SQL注入、IIS的漏洞等
接下来从TCP/I参考模型的不同层次总结下各种攻击方法
- 数据链路层攻击技术
- MAC地址欺骗
- 直接修改网卡MAC地址:实现单机上网
- 利用MAC地址克隆:通过路由器的克隆MAC地址选项实现多机共享上网
- 电磁信息泄漏:指电子设备的杂散(寄生)电磁能量通过导线或空间向外扩散。只有强度和信噪比满足一定条件的信号才能够被截获和还原。因此,可以通过屏蔽、滤波、隔离、合理的接地与良好的搭接、选用低泄漏设备、合理的布局和使用干扰器等防护措施避免电磁信息泄漏。
- 网络监听
- 以太网的工作机制:HUB相连的网络,通过设置网卡为“混杂模式”达到监听的目的。
- Snoop监听工具:可以截获网络上传输的数据包,并显示其内容,能方便的收集工作站的信息。
- Sniffit监听工具:用户可以选择源、目标地址或地址集合,以及监听的端口、协议和网络接口等。eg:
sniffit -a -A . -p 23 -t 11.22.33.@
- Sniffer监听工具:嗅探器,可以形象地理解为打入到敌人内部的特工,源源不断地将地方的情报送出来。有很多现成的运行于不同平台的嗅探工具,如:Linux tcpdump, The Gobbler, LanPatrol, LanWatch, Netmon, Netwatch, Netzhack等。Sniffer程序通常运行在路由器或有路由器功能的主机上,以便监控大量数据。
- 防止网络监听:
- 加密:TCP/IP协议并没有加密的方法,都采用明文传输,因此,可以使用增强的TCP/IP协议,如IPv6协议中提供了内置的IPSec可选报头,可以以密文方式传输数据。对于IPv4为主的网络,基本采用打补丁的方式,如使用SSH协议。
- 采用安全拓扑结构
- MAC地址欺骗
- 网络层攻击技术
- 网络层扫描:典型的被动攻击方法
- ping
- tracert
- rusers、finger、host
- IP欺骗
- 信任关系:以IP为信任基础
- IP欺骗的原理、目的
- 只想隐藏自身的IP地址或者伪造源IP和目的IP相同的不正常包而不关心是否能收到目标主机的应答。如IP包碎片攻击、Land攻击(Local Area Network Denial attack,源、目的IP相同)等
- 伪装成被目标主机信任的友好主机,并希望得到非授权的服务。此时需要使用正确的TCP序列号。
- 碎片攻击:上文已经提到过
- ICMP攻击:
- IP地址扫描
- ping of death
- ping flooding 和 smurf:不停的ping,消耗目标主机资源,现代很多主机设置了不回应ping请求。smurf利用源地址是受害主机,目标地址是反弹网络的广播地址,以达到用ICMP回应应答数据包淹没受害主机的目的。
- ICMP重定向报文
- ICMP主机不可达和TTL超时报文
- 路由欺骗
- RIP路由欺骗
- IP路由欺骗
- ARP欺骗:当攻击者和目标主机在同一局域网内,攻击者想要截获和侦听目标主机到网关之间的所有数据。如果由集线器HUB连接各个节点,只需要将网卡设置为混杂模式,就可用链路层的监听获得想要的信息。如果局域网采用交换机连接各个节点时,交换机会根据目标MAC地址查找端口映射表,确定转发的某个具体端口,而不是向所有端口广播。此时,攻击者首先试探交换机是否存在失败保护模式(Fail-safe mode),当网络通信出现大量虚假MAC地址时,某些类型的交换机会出现过载情况,转换到失败保护模式,其工作方式和集线器HUB相同,可以使用“macof”工具完成这项攻击。如果交换机不存在这种模式,就需要使用ARP欺骗技术来监听了。 维基百科:ARP欺骗
- 网络层扫描:典型的被动攻击方法
- 传输层攻击技术
- 端口扫描
- TCP connect扫描:入侵者不需要任何权限、速度快(打开多个套接字、使用非阻塞I/O、设置低连接时间),但容易被发觉并被过滤掉。
- TCP SYN扫描:半开扫描,发送SYN数据包,如果收到SYN/ACK,说明端口开放,这时再发送一个RST来关闭连接;如果收到RST,说明端口未处于侦听状态。但是必须具有root权限才能建立自己的SYN数据包。
- TCP FIN扫描:FIN扫描的基本思想是通常关闭的端口会用RST来回复FIN数据包,而打开的端口会忽略FIN数据包,不做回复。但并非所有系统都这样做。
- Franmentation扫描:将将要发送的数据包大包成非常小的IP包,通过TCP包头分成几段,放入不同的IP包中,使得过滤程序难以过滤。
- UDP端口扫描:主机向未打开的UDP端口发送数据包是,会返回ICMP_PORT_UNREACH错误报文,从而判断哪个端口时关闭的。但是这种扫描可靠性不高。
- 慢速扫描:放慢扫描速度来躲避检查。
- TCP初始序号预测
- 64KB规则:当主机启动后序列号初始化为1(由tcp_init确定),初始序列号ISN每秒增加128000,如果有连接出现,每次连接将把计数器的数值增加64000。用于表示ISN的32位计数器在没有连接的恶情况下9.32小时复位一次。
- 与时间相关的生产规则
- 伪随机数产生规则
- 第一、二种方法使得容易预测序列号,因为其与时间相关、变化不大。
- SYN flooding:当前最流行且最有效的DoS方式之一。攻击主机需要保证伪造的数据包源IP地址是可路由、但不可达的主机地址。
- TCP欺骗:在IP地址欺骗和TCP初始序号预测的基础上进行,目的是伪装成其他主机与受害者通信,获取更多信息和利益。
- 非盲攻击:攻击者和被欺骗的目标主机在同一个网络上,攻击者可以简单地使用嗅探器捕获TCP报文段,从而获得需要的序列号。
- 盲攻击:不在同一个网络上,比较难以实现,但可以通过路由欺骗技术把盲攻击转换成非盲攻击。
- 端口扫描
- 应用层攻击技术
- 缓冲区溢出:指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量,溢出的数据覆盖了其他程序或系统的合法数据。
- 口令攻击
- 猜测简单口令
- 字典攻击
- 强行攻击:穷举
- 电子邮件攻击
- 电子邮件系统中的安全漏洞
- 电子邮件攻击:欺骗、炸弹
- DNS欺骗
- SQL注入:动态构造了SQL语句,代码与用户的输入结合,从而导致用户执行期望之外的命令。
- 网络病毒与木马
- 病毒
- 危害:直接破环计算机数据信息、大量占用磁盘空间、运行时抢占系统资源,影响计算机的运行速度、计算机病毒的错误导致不可预见的危害。
- 特征:人为的特制程序、具有自我复制能力、很强的感染性】一定的潜伏性、特定的触发性、很大的破坏性。
- 网络病毒:蠕虫
- 特洛伊木马
- 病毒
- 拒绝服务式攻击
- 原理:耗尽系统资源使得受害主机无法处理新的请求导致拒绝服务。
- 分布式拒绝服务攻击
0x02 防范
- 身份认证
- 口令认证
- 静态口令
- 动态口令:手机令牌、短信密码、硬件令牌
- IC卡认证
- 基于生物特征的认证
- 指纹识别
- 掌纹识别
- 视网膜识别
- 虹膜识别
- 人脸识别
- 语音识别
- 击键识别
- 笔迹识别
- DNA识别
- 网络身份认证
- 对称密码:也称私钥密码,常见的有DES、IDEA、3DES、AES
- 非对称密码:也称公共密钥密码,常见的有RSA、EGamal、DSS、DiffieHellman
- 单点登录:实质就是安全上下文或凭证在多个应用系统之间的传递或共享。
- 基于经纪人(Broker-based)的SSO模型
- 基于代理(Agent-based)的SSO模型
- 基于网关(Gateway-based)的SSO模型
- 基于令牌(Token-based)的SSO模型
- 口令认证
- 访问控制:防止非法用户进入系统和合法用户对系统资源的非法使用。
- 自主访问控制(Discretionary Access Control,DAC):基于对主体(用户,进程)的识别来限制对客体(文件,数据)的访问,而且是自主的。所谓自主是指具有授予某种访问权限的主题能够自主地将访问权限或其子集授予其他主体,因此,DAC又称基于主体的访问控制。
- 缺点:访问控制资源比较分散、用户关系不易管理、访问授权是可传递的、在大型系统中,主体、客体的数量庞大,造成系统开销巨大。
- 应用:Windows Server、UNIX系统、防火墙(ACL)等
- 强制访问控制(Mandatory Access Control,MAC):所有主体和客体都被分配了安全标签,安全标签标识一个安全等级,通过比较主体和客体的安全级别来决定是否允许主体访问客体。其两个关键原则是不向上读和不向下写,即信息流只能从低安全级向高安全级流动。
- 缺点:对用户恶意泄漏信息无能为力、基于MAC的应用领域比较窄、完整性方面控制不够、过于强调保密性,对系统的授权管理不便,u够灵活。
- 应用:军方系统
- 基于角色的访问控制(Role-based Access Control):在用户和访问许可权之间引入角色(Role)的概念,用户与特定的一个或多个角色相联系,角色与一个或多个访问许可权相联系。
- 核心RBAC的基本元素集合有五类:用户集、角色集、客体集、操作集、许可集。基本关系有:用户指派(UA)和许可指派(PA)。
- 应用:操作系统、数据库管理系统、公钥基础设施(PKI)、工作流管理系统、Web服务等
- 使用控制模型(UCON):可变属性(Mutable Attribute,MA)的引入是UCON模型与其他模型的最大差别,可变属性会根据访问对象的结果而改变,而不可变属性仅能通过管理行为改变。UCON不仅包含了DAC、MAC、RBAC,还包含了数字版权管理(DRM)、信任管理等,被称作下一代访问控制模型。
- 三个基本元素:主体、客体、权限
- 三个与授权有关的元素:授权规则、条件、义务
- 自主访问控制(Discretionary Access Control,DAC):基于对主体(用户,进程)的识别来限制对客体(文件,数据)的访问,而且是自主的。所谓自主是指具有授予某种访问权限的主题能够自主地将访问权限或其子集授予其他主体,因此,DAC又称基于主体的访问控制。
- Firewall:防火墙是设置在用户网络和外界之间的一道屏障,防止不可预料的、潜在的破坏侵入用户网络。基本功能有过滤、管理、日志、告警。
- 集中式防火墙:一般位于网络的边界。
- 优点:
- 允许网络管理员定义一个中心“遏制点”来防治非法用户进入内部网络。
- 保护网络中脆弱的服务
- 通过防火墙,用户可以很方便的监视网络的安全性,并产生报警信息
- 集中安全性
- 增强隐私性
- 防火墙是审计和记录网络流量的最佳地方
- 缺点:
- 限制有用的网络服务
- 不能有效防护内部网络用户的攻击
- 对网络拓扑结构依赖大
- 防火墙不能完全阻止传送已感染病毒的软件或文件
- 防火墙无法防范数据驱动型的攻击
- 不能防备新的网络安全问题
- 不能解决信息保密性问题
- 体系结构
- 包过滤防火墙
- 双宿网关防火墙:拥有两个连接到不同网络上的网络接口的防火墙
- 用户直接登录到双重宿主主机上来提供服务
- 一般采用代理方式提供服务,采用代理服务的双宿主机称为代理服务器
- 应用层代理
- 传输层代理
- SOCKS代理:MS Proxy、NS Proxy、WinGate等流行的代理服务器产品
- 屏蔽子网防火墙:对代理服务器的改进,在内网和外网之间建立一个子网以进行隔离。这个子网区域称为边界网络(Perimeter Network)、非军事区(De-Militarized Zone)。
- 内部路由器主要功能:
- 负责管理DMZ到内部网络的访问
- 仅接收来自堡垒主机的数据包
- 完成防火墙的大部分过滤工作
- 外部路由器主要功能:
- 防范通常的外部攻击
- 管理Internet到DMZ的访问
- 只允许外部系统访问堡垒主机
- 堡垒主机
- 进行安全防护
- 运行各种代理服务,如WWW、FTP、Telnet等
- 内部路由器主要功能:
- 优点:
- 分布式防火墙:每个桌面计算机都通过安全策略机制进行控制,这些安全策略来自于策略服务器,系统管理员设置统一的安全管理策略,由各桌面计算机的通信模块进行自动下载并更新本地策略。这里的分布式防火墙与个人防火墙不同,个人防火墙多为安装在主机上的软件防火墙,以及今年出现的主机版上整合的硬件防火墙,虽然也是由各主机实施策略,但是其策略是由主机用户自行定义,缺乏集中统一的管理。
- 存在防火墙和操作系统的功能悖论,即纯保护谁的问题。
- 嵌入式防火墙:硬件实现分布式防火墙的策略的执行模块。
- 集中式防火墙:一般位于网络的边界。
- VPN:指在用户计算机和VPN服务器之间点到点的连接,由于数据通过一条仿真专线传输,用户感觉不到公共网络的实际存在,却能够像在专线上一样处理内部信息。
- VPN的功能:数据封装、认证、数据完整性和合法性认证、数据加密
- 数据链路层VPN---L2TP(Layer 2 Tunneling Protocol)/PPTP(Point-to-Point Tunneling Protocol):IPSec出现前最主要的VPN类型,通常用于支持拨号用户远程接入企业或机构的内部VPN服务器。
- 优点:简单易行
- PPTP/L2TP对使用微软操作系统的用户来说很方便,因为微软已把它作为路由软件的一部分
- 位于数据链路层,包括IPv4在内多种网络协议都可以采用它们作为链路协议,支持流量控制
- 通过减少丢包来减少重传,改善网络性能
- 缺点:安全程度差
- 对PPP协议本身没做修改,只是将用户的PPP帧基于GRE封装成IP报文
- 不对两个节点间的信息传输进行监视或控制
- 限制同时最多只能连接255个用户,可扩展性不强,不适合于向IPv6的转移
- 端用户需要在连接前手工建立加密信道
- 没有提供内在的安全机制,认证和加密受到限制,没有强加密和认证支持
- 不支持企业与外部客户及供应商之间会话的保密性需求,不支持外联网VPN
- 优点:简单易行
- 网络层VPN---IPSec:一个范围广泛、开放的虚拟专用网安全协议,是第三层VPN标准
- 传输模式:适合点到点的连接,即主机与主机之间的VPN可以用传输模式,其数据分组中原始IP报头不动,在后面插入AH认证头或ESP的头部和尾部,仅对数据净荷进行认证或加密。
- 隧道模式:适用于VPN安全网关之间的连接,即用于路由器、防火墙、VPN集中器等网络设备之间,发送端的VPN安全网关对原始IP报文整体加密,再在前面加入一个新的IP包头,用新的IP地址(接收端VPN地址)将数据分组路由到接收端。
- 传输层VPN—SSL:SSL VPN指采用SSL协议来实现远程接入的VPN技术
- 优点:简单、安全、可扩展、访问控制、成本低
- 不足:必须依靠Internet进行访问、依赖反代理技术访问公司内部网络,对复杂Web技术提供的支持有限、通常只基于Web浏览器工作、只对通信双方的某个应用加密而非所有通信加密
- 会话层VPN—SOCKS
- IDS(Intrusion Detection System)/IPS(Intrusion Protection System)
- NIDS、HIDS
- 异常检测、误用检测
- 误报率、漏报率