ARP协议问题
ARP协议的作用是什么。
address resolution protocol,地址解析,根据 IP 地址获得其对应的 MAC 地址。
引入ARP缓存的功能是什么。
ARP 高速缓存。
该缓存中保存了 ARP 应答中 IP 地址和 MAC 地址的对应关系。
使得当再次访问缓存中已存的 IP 地址时,无需再发送 ARP 请求获得其对应的 MAC 地址,可直接从缓存中读取。做到一次解析,多次使用。加快了发包速度,也有效的缓解了链路压力。
ARP缓存中毒的攻击方法和效果是什么。
原理: ARP 缓存是无状态的,即主机不只根据自己发出的 ARP 请求的应答更新缓存,只要收到 ARP 应答,就会查看自己的缓存。
攻击方法:构造含有错误的 IP 地址和 MAC 地址对应关系的 ARP 应答。可以利用 netwox 构造这样的包。
效果:若将 IP 地址映射到无效的 MAC 地址,则可使受害者主机无法与目的 IP 通信。例如,将受害者主机的网关地址映射到无效的 MAC 地址,则受害者主机无法正常上网。若将 IP 地址映射到攻击者的 MAC 地址,则可达成中间人攻击。
IP协议安全问题
为什么IP要进行分片?
因为硬件环境的 MTU 限制。例如,一个 IP 分组最长可达 65535B(2^16-1),但以太网规定最大帧长为 1500B。
IP分片如何进行重组?
IP 分片在目的主机的 IP 层重组,主要利用 IP 头部中的 ident,flags 和 fo 这3个字段进行重组。
ident 是 IP 报文段的唯一标识,具有相同 ident 的片段同属于一个IP报文;
fo,fragment offset,指明当前片段在原始完整的IP报文中的偏移;
flags 的 DF 表示不分片,MF 表示更多分片。
通过 ident 找到同属于一个报文的片段,根据 fo 进行排列。当片段的 DF=0,MF=0 则该片段为本报文的最后一个片段,确定了报文的结束。
泪滴攻击(teardrop)的原理是什么?
原理:需要构造两个特殊的分片,且受害者主机采取特定的处理方式。首先,这两个分片中,第一个分片的 FO< 第二个分片的 FO,且第一个分片的 len+FO > 第二个分片的 len+FO;其次,受害者主机在处理重叠分片时采用第一个分片覆盖第二个分片的重叠内容的策略。
攻击效果:在计算第二个分片除重叠部分的剩余部分 end-offset 时,会得到一个负数,转换为无符号整数是一个非常大的值,会导致拷贝大量无关数据,占用内存过度,系统崩溃。
防御:添加 if