![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL1EjY3QWOjZGMxEDZlF2YlBjZ1QWO5IDM4ETYycjZkBTNhhjMyYzM48CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
按住回车70秒,黑客就能在linux系统绕过认证,进而获取root权限,并能远程控制经过加密的linux系统。
漏洞来源
这个安全问题来源于cryptsetup存在的一个漏洞(cve-2016-4484)。cryptsetup是在linux统一密钥设置(linux unified key setup, luks)中用来加密磁盘的软件,而luks则是linux系统中标准的磁盘加密。
漏洞其实是出现在系统后cryptsetup处理密码输入错误的时候,它会允许用户多次重试输入密码。而当用户输入错误93次后,程序就会给用户一个带root权限的shell(busybox)。
也就是说,如果你重复93次输错密码,或者持续按回车键大概70秒,你就能够获得root initramfs (initial ram filesystem) shell。获取shell之后,你就可以复制、修改或者破坏整个硬盘,或者也可以使用网络传输数据。
漏洞能被远程利用
西班牙安全研究员hector marco和ismael ripoll发现了这一漏洞,影响范围覆盖几乎所有的linux发行版,包括debian, ubuntu, fedora, red hat enterprise linux (rhel)和suse。
研究人员在今年奥地利维也纳举行的deepsec会议上演示了细节:
“黑客可以从受影响系统中获取root initramfs shell。并且漏洞的成功率非常高,因为他不依赖某个特定的系统或者某个配置……这个漏洞在图书馆、atm机、机场、实验室等场景下特别有用,因为在这些场景下,开机的过程受到(加密)保护,而我们只有键盘/鼠标。”
看到这里,你可能会认为漏洞只能在攻击者有物理接触的情况下才有可能发生。但实际上,漏洞也可以被远程触发。如果你使用的是基于linux的云服务,就可以在没有物理接触的条件下利用漏洞。
漏洞到底有多严重
值得注意的是,攻击者无法利用这个漏洞来获取加密磁盘的内容,但能进行下面的这些操作:
权限提升:
由于boot分区一般都是不加密的,因此利用漏洞黑客可以用setuid存储一个可执行文件,然后再用本地用户身份执行进行提权。
攻击者也可以替换内核和initrd镜像。
信息泄露:
虽然攻击者无法直接读取加密的磁盘,但他能做的事还是很多的。比如,他可以把磁盘复制到外部设备,之后进行暴力破解,
dos攻击:
黑客可以删除磁盘上的内容。
这个漏洞的影响范围包括debian, ubuntu, fedora和其他一些linux发行版本。arch linux和solus用户不受影响。
解决方案
尽管漏洞能轻易触发并且影响范围大,但它的修复方案也异常简单:
首先,在luks密码提示窗处按压回车键70秒,检查系统是否存在漏洞。
如果存在漏洞,检查下你所使用的linux是否发布了补丁。
如果官方没有发布补丁,你可以自行修改cryptroot文件: