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

news/2025/2/22 0:18:37/

互联网协议漏洞

  • 互联网基础设施
  • 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协议栈

在这里插入图片描述
这是通过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)
    在这里插入图片描述
    在这里插入图片描述
    IP根据报文头中的IP地址,将源主机的报文发送到目的主机。

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

IP路由

在这里插入图片描述
典型的路由需要几跳
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. 没有消息继续
    在这里插入图片描述

传输控制协议 (TCP)

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

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

接收者

  1. 收据;丢失的数据包被重发
  2. 按照正确的顺序重新组装包
    在这里插入图片描述

TCP报头

在这里插入图片描述

TCP(三向)握手

在这里插入图片描述

基本安全问题

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

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

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

数据包嗅听

攻击者读取所有数据包

  1. 读取所有未加密的数据(例如“wireshark”)
  2. FTP, Telnet(和POP, IMAP)可以明文发送密码
    在这里插入图片描述

TCP连接欺骗

假设init.sequence是可预测的
攻击者可以利用伪造源IP创建TCP会话
破坏基于ip的身份验证(例如SPF, /etc/hosts)
在这里插入图片描述

随机初始TCP SNs

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

路由的漏洞

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

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

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

Arp欺骗(Man in Middle Attack)

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

目标IP上的所有流量都被路由到攻击者地址
(对嗅探很有用)在这里插入图片描述
给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)与安全问题

层次名称空间
在这里插入图片描述

DNS根名称服务器

分层次服务系统

  1. 顶级域的根名称服务器
  2. 子域的权威名称服务器
  3. 本地名称解析器在不知道某个名称时联系权威服务器
    在这里插入图片描述

DNS查询示例

在这里插入图片描述
DNS记录类型(部分列表)
NS: 名称服务器(指向其他服务器)
A: 地址记录(包含IP地址)

缓存

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

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

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

缓存数据定期超时

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

基本DNS漏洞

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

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

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

在这里插入图片描述
本地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


http://www.ppmy.cn/news/49881.html

相关文章

【人工智能与深度学习】判别性循环稀疏自编码器和群体稀疏性

【人工智能与深度学习】判别性循环稀疏自编码器和群体稀疏性 判别类循环稀疏自编码器 (DrSAE)组稀疏组稀疏自编码器的问与答图像级别训练,无权重分享(weight sharing)的局域过滤器 (local filters)判别类循环稀疏自编码器 (DrSAE) DrSAE的设计结合了稀疏编码(稀疏自编码器)…

IJKPLAYER源码分析-主要队列

前言 对IJKPLAYER播放器内核几个关键的队列的理解,将有助于掌控全局。因此,这里简要介绍所涉及到的几个关键队列实现: PacketQueue:压缩数据队列,是一个带有首尾指针和回收单链表头指针的单链表结构,用来实…

解决vue pointerevent事件无法更改cursor问题 抓取图标(grab/grabbing)

vue pointerevent事件无法更改cursor问题 告诉你一个扎心的事情,CtrlF5就好了… 另外开F12调试工具且在双屏的副屏上也会出现这个bug… 故障重现 我想要实现一个抓取拖放的功能,鼠标按下修改指针为gragbbing状态,抬起恢复到grab 于是我大概和你一样,尝试在pointdown事件里写…

TypeScript(十二)模块

目录 引言 d.ts声明文件 declare关键字 全局声明 全局声明方式 全局声明一般用作 函数声明 在.ts中使用declare 外部模块(文件模块) 模块关键字module 声明模块 模块声明方式 模块通配符 模块导出 模块嵌套 模块的作用域 模块别名 内部…

C++ STL之string容器的模拟实现

目录 一、经典的string类问题 1.出现的问题 2.浅拷贝 3.深拷贝 二、string类的模拟实现 1.传统版的string类 2.现代版的string类(采用移动语义) 3.相关习题* 习题一 习题二 4.写时拷贝 5.完整版string类的模拟实现[注意重定义] MyString.h…

Scala之集合(3)

目录 WordCount案例: 需求分析与步骤: 拆分: 聚合: 格式转化: 方法1: 方法2: 排序: 方法1: 方法2: 取top3: 整体化简后的代码&#xf…

00后卷王的自述,我真有同事口中说的那么卷?

前言 前段时间去面试了一个公司,成功拿到了offer,薪资也从14k涨到了20k,对于工作都还没几年的我来说,还是比较满意的,毕竟一些工作5、6年的可能还没我高。 我可能就是大家口中的卷王,感觉自己年轻&#xf…

QMS-云质说质量 - 7 IATF 16949哪个条款严重不符合项最多?

云质QMS原创 转载请注明来源 作者:王洪石 引言 AIAG 《质量2020》报告的数据是否让你惊讶? AIAG与德勤合作发布的汽车行业《质量2020》报告指出,"OEMs和供应商都将问题解决和CSR(Customer Specific Requirement顾客特定要求…