BLSA-2016:0034 – [中等] libndp 安全警告及修复方法


  • BCLinux Developers

    BLSA-2016:0034 – [中等] libndp 安全警告及修复方法


    问题描述

    最近 libndp 修复了一个漏洞,这个漏洞可以让非本地攻击者发起中间人攻击,或瘫痪被攻击节点的网络连接,建议所有 libndp 的用户都安装 BCLinux 提供的升级包,升级包包含了修复这些漏洞的补丁文件。

    一、libndp 简介:
    libndp(Library for Neighbor Discovery Protocol)是一个NDP协议的库文件,提供了一种用于IPv6邻居发现协议的封装,同时还提供了一个ndptool的工具用来发送与接收NDP消息。使用 libndp 的应用包括 NetworkManager 等。

    NDP(neighbor discovery protocol)是用来发现邻接点相关信息的协议。ndp运行在数据链路层,因此可以支持不同的网络层协议。

    二、中间人攻击简介:

    在密码学和计算机安全领域中,中间人攻击(Man-in-the-middle attack,缩写:MITM)是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。在许多情况下这是很简单的(例如,在一个未加密的Wi-Fi 无线接入点的接受范围内的中间人攻击者,可以将自己作为一个中间人插入这个网络)。

    一个中间人攻击能成功的前提条件是攻击者能将自己伪装成每一个参与会话的终端,并且不被其他终端识破。中间人攻击是一个(缺乏)相互认证的攻击。大多数的加密协议都专门加入了一些特殊的认证方法以阻止中间人攻击。例如,SSL协议可以验证参与通讯的一方或双方使用的证书是否是由权威的受信任的数字证书认证机构颁发,并且能执行双向身份认证。

    影响版本

    • BigCloud Enterprise Linux 7
    • Red Hat Enterprise Linux 7
    • CentOS Linux 7

    详细介绍

    1. CVE-2016-3698

      libndp 接受并处理少于 255 跳之内的路由广播,从而允许非本地网络上的任意节点都可以伪装成路由器节点。非本地网络上的攻击者可以利用这个漏洞对本地网络节点发动中间人攻击,或瘫痪被攻击节点的网络连接。有效的检查 src/rdisc/nm-lndp-rdisc.c 文件中的 receive_ra 函数中的 hop-limit 变量的值可解决这个问题。

    解决方案

    目前,BCLinux 的官方源已经提供 libndp 更新软件包,BCLinux 7 上的版本: 1.2-6 , 更新方法:

    1. 检查YUM源设置,确保使用的是 BCLinux 官方 YUM 源

      [root@BCLinux ~]# ll /etc/yum.repos.d/
      total 24  
      -rw-r--r-- 1 root root 1038 Mar 10 04:46 BCLinux-Base.repo  
      -rw-r--r-- 1 root root 1053 Oct 19 21:18 BCLinux-Source.repo  
      -rw-r--r-- 1 root root 1184 Oct 19 21:18 BigCloud.repo
      
    2. 安装更新

      [root@BCLinux ~]# yum update libndp
      Loaded plugins: fastestmirror
      Loading mirror speeds from cached hostfile
      Resolving Dependencies
      --> Running transaction check
      ---> Package libndp.x86_64 0:1.2-6.el7_2 will be updated
      --> Finished Dependency Resolution
      
      Dependencies Resolved
      
      ===============================================================================================================================================================================================
      Package                                      Arch                                    Version                                                   Repository                                Size
      ===============================================================================================================================================================================================
      Updating:
      libndp                                       x86_64                                  1.2-6.el7_2                                               updates                                   793 k
      
      Transaction Summary
      ===============================================================================================================================================================================================
      Upgrade  1 Package
      
      Total download size: 793 k
      Installed size: 2.3 M
      
    1. 复查

      [root@BCLinux ~]# rpm -qa | grep libndp
      libndp-1.2-6.el7_2.x86_64
      
    2. 重启应用

      安装升级包以后,所有使用 libndp 且正在运行的应用都必须重新启动。

    外部链接:

    1. BCLinux 安全更新