网络安全技术-TCP/IP协议族及其安全隐患
什么是计算机网络
计算机网络的概念
- 技术角度:由通信技术(实现计算机之间的互通、互连)+计算机技术(对信息的存储和处理)。
- 资源共享角度:能够相互共享资源的方式连起来的自治计算机系统的集合。
计算机网络的性质
- 分散性:计算机分布地理位置不同
- 异构性:计算机设备结构不同
- 自治性:计算机相互独立,自我管理
计算机网络分类
- 按传输技术分类
- 广播式网络
- 点对点网络
- 按覆盖范围与规模分类
- 局域网
- 城域网
- 广域网
计算机组成结构
网络设备
- 第一层设备:计算机连网的基础,在这一层,数据还没被组织,例如:集线器。
- 第二层设备:控制网络层与物理层之间的通信。例如:交换机。
- 第三层设备:教网络地址翻译成对应的物理地址,例如:路由器,三层交换机。
设备简介
- 集线器:对数据传输起到同步、放大、整形的作用,对数据传输的短帧、碎片等无法有效处理,不能保证数据传输的完整性和正确性。
- 交换机: 识别网络上节点的网卡mac地址,并把它们存入mac地址表。
- 三层交换机:即传统交换机与传统路由器的结合,既可以完成端口交换,又可以完成部分路由器的路由功能。
- 路由器:网络层互联设备,用于连接多个逻辑上分开的网络,有者自己的操作系统,允许者各种网络上层协议(IP IPX AppleTalk等),用于实现网络层的功能。
计算机网络协议
网络协议的概念
- 为计算机网络中进行数据交换而建立的规则、标准或约定的集合。
- 网络上所有设备之间通信规则的集合,用来规定通信信息必须采用的格式。
- 网络上个节点之间的交流语言。
网络协议三要素
- 语法:信息格式
- 语义:信息每个部分的意义
- 时序:通信事件的先后顺序
OSI参考模型
TCP/IP协议
封装过程
计算机网络发展历程
网络的演变
- 理论基础研究阶段
- 新型分组交换技术的诞生(标志着计算机网络与通信技术的基本成型)
- TCP/IP协议的提出(通信与计算机技术的结合基本完成)
网络技术发展的两种观点
观点一
- 远程终端连接
- ,ARPNET
- LAN
- Internet
- 无线通信网络
观点二
- frame computer
- 胖c/s
- 瘦c/s
- b/s
- web service
- p2p computer
- blog twitter
- internet of ting(物联网)
- big data
ARP协议(地址解析协议)
概述
- 根据ip地址获取物理地址的tcp/ip协议
- 主机发送信息时将包含目标ip地址的arp请求广播到网络上所有主机,并接收返回的arp应答(广播请求 单播回应),以此确定目标的物理地址。
地址协议缓存机制
为减少执行atp协议的通信开销和时间开销,主机一般会启用arp缓存机制。即存入不存在的ip地址和mac地址映射,在本地arp缓存不存在该ip地址和mac地址之间的映射时进行网络广播。
地址解析协议的消息构成
arp主要存在的安全隐患
- arp窃听:由于arp请求将通过交换机或集线器以广播形式发送,因此网络行主机均可受到该请求,从而受到窃听,再进一步发动网络攻击(网络拓扑绘制 拒绝服务)
- arp欺骗:发送错误ip-mac映射对,以使得主机找不到正确的ip-mac地址映射 ·
- garp滥用攻击:攻击者利用garp技术,假冒某个ip-mac地址的映射,使得所有主机本地arp映射表混乱
针对arp安全隐患的防御技术
- 采取静态绑定防止arp欺骗:手工绑定ip-mac地址映射
- 采用arp代理服务器:引入可信arp代理服务器,当主机需要进行arp请求时,不是发送广播发送arp请求,而是向可信arp服务器发送该arp请求。
- 在网络设备上对arp消息进行检测和控制:
- 交换机:通过端口绑定的方式,只允许满足特定条件的arp请求和arp响应数据包通过
- 路由器:仅仅允许建立了ip-mac地址绑定的数据包通过
- 防火墙:通过发送可信garp请求消息防止arp欺骗,即发现arp欺骗时,主动发送garp强制更新主机本地arp缓存
4.禁用garp功能:通过禁用garp功能或者忽略garp消息达到防御arp欺骗的目的
ip协议
概述
是tcp/ip协议族家族中一个至关重要的协议,使得互联网异构计算机能成为一个网络。
ip协议两个基本功能
- 寻址:根据数据报头重包括目的地址将数据包传送到目的地址
- 分段:如果有些网络只能传送小数据报,ip协议支持将数据包重新组装并在报头域内注明。
ip消息格式
对应关键字含义
ip协议安全威胁
- 窃听:ip协议传输过程中没有加密,ip头的信息可能被攻击者窃听
- ip碎片攻击:攻击者将ip包分为非常小的碎片,然后发给攻击目标,让对方由于重组这些极小的碎片而浪费大量计算机资源
- ip地址假冒:通过在传输的任意节点构造随机ip分组,顺利到达目的节点,再进行拒绝服务式攻击(随机源ip地址攻击目的地址而不被追踪)或认证服务攻击(假冒可信ip地址非法访问计算机资源)
防御方法
- 入口过滤:入口设置一个网关并配置过滤源ip地址非法的分组
- 出口过滤:出口设置一个网关并配置过滤源ip地址非法的分组
- ip回溯:回溯ip分组在网络中所经过的路径,追踪攻击者所在的地址和网络
tcp协议及其安全隐患
概述
***/确认号(都为32位)
- ***:表示tcp分片在整个数据流位置,发送一个分片后加一
- 确认号:接收方期待发送方发送的分片
作用:解决可靠出传输问题(注意与序列位和确认位的区别)
端口号
作用:表示进程(应用程序)
分配:由操作系统动态分配
公认端口号:大家所熟知的应用所用端口号(http ftp等)
tcp协议控制位
urg:紧急指针有效
psh:泛洪式攻击
rst:重置连接
syn:同步有效,协商***
ack:确认***有效
fin:释放连接
三次握手*
四次挥手
特点
- 全双工:传出通道彼此独立,方向相反
- 面向连接
- 可靠
- 面向字节流
安全隐患
1.syn泛洪:反复发送syn请求,并忽略主机b确认
2. land攻击:将源目的地址都设置位服务器地址,服务器自我连接,达到小号服务器资源以达到拒绝服务攻击
3. ***预测攻击:攻击者猜中接收方***,发送rst消息达到拒绝服务攻击的目的
4. ack泛洪攻击:在建立连接后反复发送请求连接消息或伪造被攻击者ip地址进行访问,让对方忙于查表,从而达到拒绝式服务攻击
udp协议
特点
- 不可靠
- 无连接
- 不保序
存在的威胁
- 假冒攻击:假冒某个ip地址使得服务器对其发送消息
- 泛洪攻击:多台主机发送udp请求消息
- 劫持攻击:劫持某主机的请求回应消息,并填充一个假消息给请求方
http协议
概述
- 基于请求与响应模式的、无状态的应用协议
- 常基于tcp连接
- 绝大多数web应用都基于http协议上
http的url
4. http url是一种特殊类型的url,包含了用于查找某个资源的信息
5. 格式:http//:host(定位网络资源)[:port (端口号)][path(请求资源url)]
消息格式
请求行
协议方法
GET :请求获取Request-URI所标识的资源
POST :在Request-URI所标识的资源后附加新的数据
HEAD:请求获取由Request-URI所标识的资源的响应消息报头
PUT: 请求服务器存储一个资源,并用Request-URI作为其标识
DELETE:请求服务器删除Request-URI所标识的资源
TRACE:请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT:保留将来使用
OPTIONS:请求查询服务器的性能或查询与资源相关的选项等
状态码
“100” : Continue
“101” : witching Protocols
“200” : OK
“201” : Created
“202” : Accepted
“203” : Non-Authoritative Information
“204” : No Content
“205” : Reset Content
“206” : Partial Content
“300” : Multiple Choices
“301” : Moved Permanently
“302” : Found
“303” : See Other
“304” : Not Modified
“305” : Use Proxy
“307” : Temporary Redirect
“400” : Bad Request
“401” : Unauthorized
“402” : Payment Required
“403” : Forbidden
“404” : Not Found
“405” : Method Not Allowed
“406” : Not Acceptable
“407” : Proxy Authentication Required
“408” : Request Time-out
“409” : Conflict
“410” : Gone
“411” : Length Required
“412” : Precondition Failed
“413” : Request Entity Too Large
“414” : Request-URI Too Large
“415” : Unsupported Media Type
“416” : Requested range not satisfiable
“417” : Expectation Failed
“500” : Internal Server Error
“501” : Not Implemented
安全威胁
- 钓鱼攻击:伪造某个网站使得某种方式让访问者信任该假网站,以获取用户信息
-
跨站(会话)脚本攻击:攻击者向服务器发送攻击脚本(小程序,可以被浏览器解释执行),从而获取用户数据或破坏系统。
常发生在:论坛允许提交信息时,产品评论、售后评价等允许提交信息时、社交网络应用等允许用户发消息、讨论、评价时,攻击者将脚本发送的服务器中。
攻击条件:允许用户输入信息的web应用,用户输入数据可用于动态生成的页面,用户输入未作合法性验证。
分类: - 持久性跨站:攻击数据存放于服务器,当用户正常访问网页时,服务端会将恶意指令夹杂在正常网页中传回给用户
- 非持久性跨站:恶意脚本程序在受害者请求http后得到一个即可响应时执行
- 文档对象攻击:客户端脚本(js)动态生成html时,若没有严格检查和过滤参数,则可以导致攻击者利用dom进行跨站攻击。