【安全与风险】互联网协议漏洞

互联网协议漏洞

  • 互联网基础设施
  • TCP协议栈
  • 因特网协议(IP)
  • IP路由
  • IP协议功能(概述)
  • 问题:没有src IP认证
  • 用户数据报协议(UDP)
  • 传输控制协议 (TCP)
  • TCP报头
  • TCP(三向)握手
  • 基本安全问题
    • 数据包嗅听
    • TCP连接欺骗
      • 随机初始TCP SNs
    • 路由的漏洞
      • Arp欺骗(Man in Middle Attack)
      • 防范ARP欺骗
    • DNS (Domain Name System)与安全问题
      • DNS根名称服务器
      • DNS查询示例
      • 缓存
      • 基本DNS漏洞
      • DNS缓存中毒[a la Kaminsky'08]
      • 防御
      • 野外DNS投毒攻击
  • 总结

互联网基础设施

本地和域间路由
用于路由和消息传递的TCP/IP

域名系统
从符号名称(www.lancaster.ac.uk)查找IP地址

域名系统是Internet或专用网络内的节点、服务和其他资源的命名系统。

TCP协议栈

【安全与风险】互联网协议漏洞_第1张图片
这是通过LAN或WAN在不同机器(运行分布式应用程序)之间进行通信(向其发送数据)使用最广泛的协议,而不考虑机器中固有的硬件和软件平台。

下级向直接上层提供服务。应用层是用户应用程序和下面面向通信的层之间的接口。

链路(在硬件级运行)-以太网,X.25,点对点协议(PPP)

网络(提供寻址和路由功能,将消息发送到各自的目的地)-IP(最重要的),Internet控制消息协议(ICMP)和Internet组管理协议(IGMP)。路由器将报文转发到IP报文中指定的目的IP地址。

传输(管理端到端数据传输,可以同时处理多个数据流)-传输控制协议(TCP)提供了可靠的面向连接的服务,用户数据报协议(UDP)提供了不可靠但快速的无连接服务。

应用程序对应于特定的客户端软件应用程序(例如,文件传输,电子邮件,视频流等)- HTTP, FTP, Telnet, SMTP等。应用程序和传输之间的接口。它是根据端口号和套接字定义的。

以太网报头包含一个序文、一个起始帧分隔符(SFD)、目的地、源和类型。导语是以太网帧开始的标识符。SFD是一个字节(前文的最后一个字节),表示下一个字节是目的MAC地址。destination字段是目的计算机的MAC地址,source字段是源计算机的MAC地址。Type是一个2字节的字段,存储有关直接上层(即IP)使用的协议的信息。

以太网拖车是一个包含4个字节的帧检查序列(FCS),用于循环冗余错误检查。

因特网协议(IP)

  1. 无连接,尽最大努力
  1. 不可靠的
  1. IP地址
  1. 命名或标记通过计算机网络相互通信的每个设备
  2. 32位数字(IPv4)
    【安全与风险】互联网协议漏洞_第2张图片
    【安全与风险】互联网协议漏洞_第3张图片
    IP根据报文头中的IP地址,将源主机的报文发送到目的主机。

它是不可靠的,因为故障可能发生,如数据损坏,数据包丢失和复制。因此,IP提供了最好的交付服务。

IP路由

【安全与风险】互联网协议漏洞_第4张图片
典型的路由需要几跳
IP:无订货和发货保证

IP协议功能(概述)

路由选择

  1. IP主机知道路由器(网关)的位置
  2. IP网关必须知道到其他网络的路由

分段和重组
如果max-packet-size小于user-data-size

错误报告
如果报文被丢弃,ICMP报文被发送到源

TTL字段:每跳一跳递减
TTL=0时丢弃数据包。防止无限循环。

问题:没有src IP认证

信任客户端可以嵌入正确的源IP

  1. 使用原始套接字很容易覆盖。
  2. Libnet:用于格式化带有任意IP头的原始数据包的库。
  3. 任何拥有自己机器的人都可以发送数据包。

启示(DDoS讲座中的解决方案):

  1. 匿名DoS攻击
  2. 匿名感染攻击(例如,攻击蠕虫)

用户数据报协议(UDP)

IP上不可靠的传输:

  1. 没有确认
  2. 没有拥塞控制
  3. 没有消息继续
    【安全与风险】互联网协议漏洞_第5张图片

传输控制协议 (TCP)

以连接为导向,保持秩序
寄件人

  1. 将数据分成数据包
  2. 附加数据包编号

接收者

  1. 收据;丢失的数据包被重发
  2. 按照正确的顺序重新组装包
    【安全与风险】互联网协议漏洞_第6张图片

TCP报头

【安全与风险】互联网协议漏洞_第7张图片

TCP(三向)握手

【安全与风险】互联网协议漏洞_第8张图片

基本安全问题

  1. 网络数据包通过不受信任的主机
    1)偷听,嗅探数据包
    2)尤其当攻击者控制着靠近受害者的机器时

  2. TCP状态很容易猜测
    启用欺骗和会话劫持

*Perl和JavaScript是最常见的web脚本语言
从用户获取详细信息

数据包嗅听

攻击者读取所有数据包

  1. 读取所有未加密的数据(例如“wireshark”)
  2. FTP, Telnet(和POP, IMAP)可以明文发送密码
    【安全与风险】互联网协议漏洞_第9张图片

TCP连接欺骗

假设init.sequence是可预测的
攻击者可以利用伪造源IP创建TCP会话
破坏基于ip的身份验证(例如SPF, /etc/hosts)
【安全与风险】互联网协议漏洞_第10张图片

随机初始TCP SNs

不可预测的SNs会阻止基本的报文注入
大多数TCP堆栈现在生成随机SNs
随机发生器应该是不可预测的

路由的漏洞

ARP(addr resolution protocol): IP地址-》Mac地址

节点A可以混淆网关,使其向B发送流量

攻击者A可以很容易地将数据包注入到B的会话中(例如WiFi网络)

Arp欺骗(Man in Middle Attack)

攻击者用自己的MAC向目标发送虚假ARP响应

目标IP上的所有流量都被路由到攻击者地址
(对嗅探很有用)【安全与风险】互联网协议漏洞_第11张图片
给ARP表下毒以伪造IP地址

  1. 嗅探LAN流量以发现IP地址
  2. 攻击者使用ARP欺骗来模拟交换机/路由器和受害者的MAC地址

防范ARP欺骗

静态ARP表项

  1. 最简单的认证形式是对主机ARP缓存中的关键服务使用静态只读条目。
  2. 本地ARP缓存中的IP到mac的映射关系可能是静态输入的。如果存在ARP表项,则主机不需要发送ARP请求。
  3. 虽然静态条目提供了一些防止欺骗的安全性,但它们会导致维护工作,因为必须生成和分发网络中所有系统的地址映射。

ARP欺骗检测和预防软件(如xArp)

  1. 检测ARP欺骗的软件通常依赖于某种形式的认证或ARP响应的交叉检查。
  2. 然后阻止未经认证的ARP响应。

如果ARP表包含两个不同的IP地址和相同的MAC地址,机器可能正在遭受ARP欺骗攻击。

DNS (Domain Name System)与安全问题

层次名称空间
【安全与风险】互联网协议漏洞_第12张图片

DNS根名称服务器

分层次服务系统

  1. 顶级域的根名称服务器
  2. 子域的权威名称服务器
  3. 本地名称解析器在不知道某个名称时联系权威服务器
    【安全与风险】互联网协议漏洞_第13张图片

DNS查询示例

【安全与风险】互联网协议漏洞_第14张图片
DNS记录类型(部分列表)
NS: 名称服务器(指向其他服务器)
A: 地址记录(包含IP地址)

缓存

缓存DNS响应
1)快速响应重复翻译
2)用于查找服务器和地址
3)域的NS记录

DNS负查询被缓存
为不存在的网站节省时间,例如拼写错误。
补充:负查询是指请求DNS服务器返回某个域名不存在的信息。

为不存在的网站节省时间,例如拼写错误。

缓存数据定期超时

  1. 数据所有者控制的数据的生存时间(TTL)
  2. TTL通过每条记录

基本DNS漏洞

用户/主机信任DNS提供的主机地址映射
用作许多安全策略的基础(浏览器同源策略,URL地址栏)

明显的问题
拦截DNS服务器的请求可能导致错误或恶意的响应(例如:咖啡馆里的恶意接入点)

DNS缓存中毒[a la Kaminsky’08]

【安全与风险】互联网协议漏洞_第15张图片
本地DNS解析器认为攻击者是ns.bank.com

防御

A:解析器随机化它发送查询的src端口,额外的位到查询ID(现在攻击需要几个小时)

B 每个DNS查询请求两次:
攻击者必须正确猜测QueryID两次(32位)

野外DNS投毒攻击

2015年1月,纽约一家大型互联网服务提供商Panix的域名被劫持到澳大利亚的一个网站。

2004年11月,谷歌和亚马逊的用户被送到Med Network Inc.,一家在线药店。

2013年3月,一个名为“自由网络部队民兵”的组织劫持了半岛电视台网站的访问者,并向他们展示了“上帝保佑我们的军队”的信息。

总结

  1. 互联网基础设施检讨
  2. 安全问题
  3. 基本防守技术

Acknowledgements: Jiangtao Wang

你可能感兴趣的:(课堂笔记,安全,网络,网络协议)