网络欺骗 - 50%

  • 概述:局域网内,结合数据传播特点,伪造数据,欺骗机器网卡

  • 模型:

    • 主机:维护ARP缓存,内容为 [IP:MAC]

    • 协议:ARP:Address Resolution Protol:根据IP获取MAC

    • 主机网卡:

      • 网卡工作模式:
        • 混杂:接收所有数据
        • 广播:接收dest_addr为广播地址的数据
        • 多播:接收dest_addr为多播地址的数据
        • 单播:接收dest_addr为本机地址的数据
        • 链路层:需要MAC地址
    • 交换机

      • 分类:二层、三层、四层交换机
      • 二层交换机:根据MAC,找到端口,发送数据,维护MAC缓存,内容为 [MAC:端口]
    • 示意图

                  帧[mac][ip]           帧[mac][ip]
          [主机1] -----------> [交换机] -------------> [主机2]
      | IP | MAC |          | 端口 | MAC |
      | IP | MAC |          | 端口 | MAC |
      
  • 攻击方式:

    • 1 攻击机:发送大量 虚假MAC 的帧,占满交换机缓存,让交换机广播数据
    • 2 攻击机:发送虚假的ARP:欺骗局域网内的主机
    • 3 受害机:把数据发到错误的地方,比如攻击机
  • 解决:

    • 预防:主机静态ARP表、进制ARP
    • 检测:看某台主机的ARP缓存,判断是否有主机发送大量ARP包
    • 检测:看无通信主机的ARP缓存,检测是否缓存了ARP包

信息收集 - ok

  • 概述:在进行攻击之前,收集受害者的信息
  • 攻击方式:
    • 主机状态
      1. ICMP Echo攻击:发送ICMP Echo包,如果回复,则主机开启
      2. Non-Echo ICMP:发送其他类型的ICMP包,如果回复,则主机开启
      3. IP异常包头:发送异常IP包(无效字段、错误分片、静止分片),判断主机返回信息
      4. TCP扫描
      5. UDP扫描
    • 操作系统版本
      1. 被动栈指纹识别:嗅探,收集网络中数据包,判断IP的TTL、TOS、DF和TCP 的Windows-size等特征
      2. 主动栈指纹识别:TCP三次握手,ACK序号相等还是加一
      3. TCP ISN取样:向目标主机多次握手,多次取样返回的ISN
      4. ICMP包错误信息发送速率:向目标主机连续发送大量icmp错误包
      5. ICP消息引用:向目标主机发送ICMP错误包,判断返回的错误引用长度
    • 端口
      1. TCP 连接(开放):tcp三次握手后,tcp反向ident协议可查看:对方进程pid和角色
      2. TCP SYN(半开放):发送tcp syn包,端口关闭:返回rst,开启:返回syn+ack
      3. TCP FIN(隐蔽):发送fin包,关闭:返回rst,开启:无返回
      4. TCP Xmax(隐蔽):发送fin、urg、push标记的包,关闭:返回rst,开启:返回
      5. TCP NULL (隐蔽):发送关闭无标记包
      6. FTP PROXY (隐藏):请求ftp服务向目标主机建立连接
      7. UDP:发送UDP包,关闭:ICMP port unreachable,开启:无返回
    • 软件版本
    • 漏洞
      1. 操作系统漏洞:基于漏洞库,扫描CGI漏洞、POP3漏洞、FTP漏洞、SSH漏洞等

拒绝服务 - ok

  • 概述:合法用户无法访问服务

  • 模型:

    [主机1]   ---->   [主机2]
    
  • 攻击方式:

    • 基于系统漏洞
      • ping of death:构造超长ICMP包,受害系统无法识别此类异常,未分配足够内存
      • tear drop:构造重复的IP分片包,受害系统合并分片时,导致越界
    • 基于软件漏洞
    • 基于协议漏洞
    • 基于有限资源
      • smurf:构造ICMP ECHO请求,src_addr设置为受害机地址,在目标网络广播,每台主机都会向受害机回复ICMP REPLAY
      • tcp syn flood:构造TCP SYN请求,使受害机保留大量半开TCP连接
      • tcp syn land:构造TCP SYN请求,src_addr和dst_addr都是受害机,受害机自己与自己建立半开连接
      • http flood:构造大量HTTP GET请求
  • 攻击检测

    • 基于误用的DDOS检测
      • 提取攻击特征:进行特征匹配,模型推理,状态转换和专家系统
    • 基于异常的DDOS检测
      • 建立模型:统计检测、模式检测、人工智能检测、机器学习检测

安全协议 - 50%

  • 概述

    客户端
    --+---------------------------
      |1. SSL版本、加密套件、随机数 -->                       |
      |                        <--  2. 选择的加密套件、随机数 |
    
      |                                          <-- 3. 证书 |
      |                                   <-- 4. 密钥交换参数 |
      |                                 <-- 5. 请求客户端证书 |
      |                                          <-- 6. 结束 |
      | 7. 证书 -->                                          |
      | 8. 密钥交换参数:使用对方证书,加密1个随机数 -->        | (一共3个随机数,关键在这第3个)
      | 9. 证书验证:对随机数进行签名 -->                      |  (使用7的证书,可验证本步的签名)
    
      | 10. 编码改变通知:后续都加密传输 -->                   |
      | 11. 握手结束:已发送消息的hash -->                     |
      |                    <-- 12. 编码改变通知:后续都加密传输 |
      |   <-- 13. 握手结束:加密消息,发送给客户端,验证密钥成功 |
    
    • 应用层:HTTPS

防火墙