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


  • BCLinux Developers

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


    问题描述

    最近 kernel 修复了两个漏洞(NMI处理过程中出现的错误、SCTP协议中的漏洞),这些漏洞可引起系统崩溃,或发动拒绝服务攻击,建议所有 BCLinux 用户都安装 BCLinux 提供的升级包,升级包包含了修复这些漏洞的补丁文件。

    一、NMI简介:
           NMI (Non Maskable Interrupt)不可屏蔽中断,不可屏蔽中断请求信号NMI用来通知CPU发生了“灾难性”的事件,如电源掉电、存储器读写出错、总线奇偶位出错等。NMI线上中断请求是不可屏蔽的,而且立即被CPU锁存。因此NMI是边沿触发,不需要电平触发。NMI的优先级也比INTR高。不可屏蔽中断的类型指定为2,在CPU响应NMI时,不必由中断源提供中断类型码,因此NMI响应也不需要执行总线周期 INTA。
    二、SCTP简介:
           SCTP(Stream Control Transmission Protocol,流控制传输协议)是在2000年由 IETF 的 SIGTRAN 工作组定义的一个面向连接的传输层协议,SCTP 可以理解为与 TCP 及 UDP 相类似的。它提供的服务有点像 TCP,又同时将 UDP 的一些优点相结合。是一种提供了可靠、高效、有序的数据传输协议。相比之下 TCP 是面向字节的,而 SCTP 是针对成帧的消息。
           SCTP相比TCP的优点:
                  - 支持数据报传递,无须上层实现数据定界功能
                  - 实时性好
                  - 安全性好
                  - 避免了行头阻塞
                  - 支持多归属(Multi-homing)
           SCTP的最初被设计用于在IP上传输电话协议,目前有助于工业以太网抵御SYN Flooding攻击与匿名攻击。同时应用程序也已经开始使用 SCTP作为自己的主要传输机制,诸如FTP和HTTP之类的传统应用程序已经在SCTP的特性基础上进行了构建。
           随着 SCTP 被吸纳到2.6版本及以上的Linux内核中,我们可以构建并部署高可用性、高可靠性的网络应用程序。作为一种基于IP的协议,SCTP不但可以无缝地替换TCP和UDP,而且扩展了很多新服务。

    影响版本

    • BigCloud Enterprise Linux 6
    • Red Hat Enterprise Linux 6
    • CentOS Linux 6

    详细介绍

    1. CVE-2015-5157

      NMI 的处理过程中会涉及到 IRET 错误,内核在处理该 IRET 错误时发现一个漏洞,在调用汇编代码 “jmp irq_return” 时,一个新的 NMI 中断会被错误处理;未授权的本地用户可利用这个漏洞来使系统崩溃,在一定几率下也可实现用户提权。

    2. CVE-2015-8767

      内核的 SCTP 协议实现中的 sctp_accept() 函数,它在处理心跳超时过程中发现一个竞态,远程攻击者可以用这个漏洞来阻止系统上运行的 SCTP 服务器接收连接,从而引起拒绝服务攻击。

    解决方案

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

    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 kernel
      Loaded plugins: fastestmirror
      Loading mirror speeds from cached hostfile
      Resolving Dependencies
      --> Running transaction check
      ---> Package kernel.x86_64 0:2.6.32-573.26.1.el6 will be updated
      --> Finished Dependency Resolution
      
      Dependencies Resolved
      
      ===============================================================================================================================================================================================
      Package                                      Arch                                    Version                                                   Repository                                Size
      ===============================================================================================================================================================================================
      Updating:
      kernel                                       x86_64                                  2.6.32-573.26.1.el6                                       updates                                   793 k
      
      Transaction Summary
      ===============================================================================================================================================================================================
      Upgrade  1 Package
      
      Total download size: 793 k
      Installed size: 2.3 M
      
    1. 复查

      [root@BCLinux ~]# rpm -qa | grep kernel
      kernel-2.6.32-573.26.1.el6.x86_64
      
    2. 重启机器

      安装升级包以后,需要重启机器。

    外部链接:

    1. BCLinux 安全更新


登录后回复
 

与 BC-LINUX 的连接断开,我们正在尝试重连,请耐心等待