我早些时候搞砸了我的系统,当我启动到 Ubuntu 时,我看到了黑屏。当我启动我的笔记本电脑时,我从 grub 菜单中选择了恢复选项,然后在根终端选择了回退。我看到我可以使用 add user 命令,有了它,我可能可以用来在我的机器上创建一个特权用户。
这不是安全问题吗?
有人可能偷了我的笔记本电脑,并在启动时选择了恢复并添加了另一个用户,然后我就被骗了。包括我的数据。
想一想,即使您以某种方式删除了该条目,也可以从 live-CD 启动,启动chroot
并运行,然后添加另一个用户,该用户具有允许它查看我所有数据的正确权限。
如果我将 BIOS 设置为仅在我的 HD 上启动,没有 USB、CD/DVD、网络启动,并设置了 BIOS 密码,这仍然没有关系,因为你仍然有那个 grub 恢复启动条目。
我相当确定来自中国、俄罗斯的人无法从网络上破解我的 Ubuntu Trusty Tahr,因为它很安全。但是,如果有人可以物理访问我的 - 您的 - 机器,那么,这就是我问这个问题的原因。我如何保护我的机器,以防止通过物理访问进行黑客攻击?
错误报告:
我的猜测是,只有使用强大算法的全盘加密,最重要的是,好的密码才是唯一可以保护本地存储数据的方法。这可能为您提供 99.99% 的安全性。请参阅有关如何执行此操作的众多指南之一。
除此之外,不可能保护您的机器免受具有物理访问权限的经验丰富的黑客的攻击。
用户/帐户密码:
如果您启动进入恢复模式,很容易创建一个新的管理员用户,正如您自己描述的那样,因为您可以通过这种方式获得 root shell 而无需输入密码。
这可能看起来像是一个意外的安全问题,但适用于(谁会想到?)恢复案例,例如您丢失了管理员密码或弄乱了
sudo
命令或其他重要内容。root密码:
Ubuntu默认没有设置任何root用户密码。但是,您可以设置一个,如果您以恢复模式启动,系统会要求您提供。这看起来很安全,但仍然不是最终安全的解决方案。
single init=/bin/bash
在启动以单用户模式启动它的 Ubuntu 之前,您仍然可以通过 GRUB 添加内核参数——这实际上也是一个没有密码的 root shell。使用密码保护 GRUB 菜单:
您可以确保您的 GRUB 菜单条目仅在身份验证后才能访问,即您可以拒绝在没有密码的情况下启动恢复模式。这也可以防止操纵内核参数。有关详细信息,请参阅help.ubuntu.com 上的 Grub2/Passwords 站点。如果您从外部介质启动或将 HDD 直接连接到另一台机器,则只能绕过此方法。
在 BIOS 中禁用从外部媒体启动:
您可以设置启动顺序,通常在许多当前的 BIOS/UEFI 版本中将设备从启动中排除。但是这些设置并不安全,因为每个人都可以进入设置菜单。你也必须在这里设置密码,但是......
BIOS 密码:
您通常也可以绕过 BIOS 密码。有几种方法:
感谢 Rinzwind 提供此信息和链接!
锁上电脑机箱/拒绝对主板和硬盘的物理访问:
即使一切都失败了,数据窃贼仍然可以打开你的笔记本电脑/电脑,取出硬盘并将其连接到他自己的电脑上。安装它并访问所有未加密的文件是小菜一碟。你必须把它放在一个安全锁定的盒子里,你可以确保没有人能够打开电脑。然而,这对笔记本电脑来说是不可能的,对台式机来说也很困难。也许你可以考虑拥有一部动作片,比如如果有人试图打开它就会引爆里面的一些炸药的自毁装置?;-) 但请确保您永远不必自己打开它进行维护!
全盘加密:
我知道我建议这种方法是安全的,但如果你在笔记本电脑打开时丢失它也不是 100% 安全的。有一种所谓的“冷启动攻击”,允许攻击者在重置正在运行的机器后从您的 RAM 中读取加密密钥。这会卸载系统,但不会刷新 RAM 内容,因为断电时间足够短。
感谢 kos 对这次攻击的评论!
我还要在这里引用他的第二条评论:
有关如何防止冷启动攻击的相关但仍未解决的问题:How do I enable Ubuntu (using full disk encryption) to call LUKSsupend before sleeping/suspend to RAM?
总结:目前没有什么能真正保护您的笔记本电脑不被具有物理访问权限和恶意意图的人使用。只有当您过于偏执以至于有可能因忘记密码或崩溃而丢失所有内容时,您才能完全加密所有数据。因此,加密使备份比现在更加重要。然而,它们也应该被加密并放在一个非常安全的地方。
或者只是不要将笔记本电脑送人,并希望您永远不会丢失它。;-)
如果您不太关心您的数据,而更关心您的硬件,那么您可能想要购买 GPS 发送器并将其安装到您的机箱中,但这仅适用于真正偏执的人或联邦特工。
最安全的笔记本电脑是其中没有任何数据的笔记本电脑。您可以设置自己的私有云环境,然后不要在本地存储任何重要内容。
或者取出硬盘驱动器并用铝热剂将其熔化。虽然这在技术上回答了问题,但它可能不是最实用的,因为您将无法再使用笔记本电脑。但那些永远模糊不清的黑客也不会。
除了这些选项,对硬盘驱动器进行双重加密并需要插入 USB 拇指驱动器才能对其进行解密。USB 拇指驱动器包含一组解密密钥,而 BIOS 包含另一组 - 当然是受密码保护的。如果在启动/从挂起恢复期间未插入 USB 拇指驱动器,则将其与自动数据自毁例程相结合。随身携带 USB 拇指驱动器。这种组合也恰好处理XKCD #538。
加密您的磁盘。这样,万一您的笔记本电脑被盗,您的系统和数据将是安全的。否则:
我建议您有一个 LUKS 分区,您可以在其中设置 LVM。您可以不加密引导分区,这样您只需输入一次密码。这意味着如果您的系统被篡改(在您甚至没有注意到的情况下被盗并归还给您),您的系统可能更容易受到损害,但这种情况非常罕见,除非您认为您正在被美国国家安全局、政府或某种机构跟踪黑手党,你不应该为此担心。
您的 Ubuntu 安装程序应该让您选择以非常简单和自动化的方式使用 LUKS+LVM 安装。我不会在这里重新发布详细信息,因为互联网上已经有很多文档。:-)
有几个硬件解决方案值得注意。
首先,一些笔记本电脑,例如一些联想商务笔记本电脑,带有一个篡改检测开关,可以检测外壳何时打开。在 Lenovo 上,此功能需要在 BIOS 中激活,并且需要设置管理员密码。如果检测到篡改,笔记本电脑将(我相信)立即关闭,在启动时它会显示警告并需要管理员密码和正确的交流适配器才能继续。一些篡改探测器还会发出声音警报,并且可以配置为发送电子邮件。
篡改检测并不能真正防止篡改(但它可能会使从 RAM 中窃取数据变得更加困难 - 如果篡改检测检测到一些非常狡猾的东西,例如试图移除 CMOS 电池,则篡改检测可能会使设备“变砖”)。主要优点是有人无法在您不知情的情况下暗中篡改硬件 - 如果您设置了强大的软件安全性(例如全盘加密),那么暗中篡改硬件绝对是剩下的攻击媒介之一。
另一种物理安全措施是某些笔记本电脑可以锁定在底座上。如果扩展坞牢固地安装在桌子上(通过笔记本电脑下方的螺钉)并且笔记本电脑在不使用时保持锁定在扩展坞上,那么它提供了额外的物理保护层。当然,这不会阻止顽固的小偷,但它肯定会让您更难从家里或公司偷走笔记本电脑,而且在锁定时它仍然可以完美使用(您可以将外围设备、以太网等插入扩展坞)。
当然,这些物理特征对于保护没有它们的笔记本电脑没有用。但是,如果您有安全意识,那么在购买笔记本电脑时可能值得考虑一下。
除了加密您的磁盘(您无法绕过它):- SELinux 和 TRESOR。两者都强化了 Linux 内核并试图让攻击者难以从内存中读取内容。
当你在做的时候:我们现在不仅害怕邪恶的随机家伙想要你的借记卡信息(他们不这样做),而且经常害怕情报机构。在这种情况下,您想做更多:
您可以做很多其他事情,但这些事情应该提供合理数量的他们需要满足的事情。
并且不要忘记: xkcd ;-)
因为你稍微改变了问题,这里是我对改变部分的回答:
答:你不能
有很多先进的硬件和软件系统,如篡改检测、加密等,但都是这样的:
您可以保护您的数据,但一旦有人访问您的硬件,您就无法保护它。如果您在其他人访问后继续使用任何硬件,您就会危及您的数据!
使用具有篡改检测功能的安全笔记本,当有人试图打开它时会清除 RAM,使用全盘加密,在不同位置存储加密数据的备份。然后尽可能难以物理访问您的硬件。但是,如果您认为有人可以访问您的硬件,请将其擦除并扔掉。
您应该问的下一个问题是:如何获得未被篡改的新硬件。
为您的 HDD/SSD使用ATA 密码
这将防止在没有密码的情况下使用磁盘。这意味着没有密码就无法启动,因为没有密码就无法访问MBR或ESP。如果磁盘在另一台机器中使用,则仍然需要密码。
因此,您可以为 HDD/SSD 使用所谓的用户 ATA 密码。这通常在 BIOS 中设置(但这不是 BIOS 密码)。
为了额外的安全性,您也可以在磁盘上设置主 ATA 密码。禁止使用制造商密码。
您也可以在 cli 上执行此操作
hdparm
。应格外小心,因为如果您丢失密码,您可能会丢失所有数据。
http://www.admin-magazine.com/Archive/2014/19/Using-the-ATA-security-features-of-modern-hard-disks-and-SSDs
注意:这里也有弱点,因为有些软件声称可以恢复 ATA 密码,甚至声称可以删除它。所以它也不是 100% 安全的。
注意:ATA 密码不一定带有 FED(全盘加密)