Linux 是从开源编译而来的,成千上万的开发人员会发现任何恶意源代码。然而,许多 Linux 用户双启动 Windows,恶意软件/间谍软件/“间谍”软件 (CIA) 可能会破解 Linux 的编译二进制文件后已安装干净版本。
解决方案一思考是在安装更新后立即对 Linux 内核二进制文件运行哈希总计,即4.4.0-63-通用。
问题是需要包含哪些文件?例如 /boot/4.4.0-63-通用或更多?
生成哈希总数后,cron
可以每月、每周或每天运行一次作业来重新生成哈希总数并将其与原始版本进行比较,以确保其没有更改。如果哈希总数不匹配,则表示已发生感染,需要重新安装干净的内核。
编辑1到目前为止的答案更像是评论。这些答案和下面的评论似乎在说“中央情报局太聪明,太有钱,无法保护你自己,所以别费心去尝试了”如果我没看错的话,那么所有的答案可能都是由 CIA、NSA、MI6 或 Mossad 雇佣的巨魔或间谍雇佣的某个人写的。打个比方“你家附近的罪犯太聪明、太老练了。他们监视你的房子,了解你的习惯。锁门或安装报警系统毫无意义。”
有人说,一旦您重新启动 Windows,间谍软件就可以读取您用于加密哈希总数的密码。我对此表示怀疑,因为 Windows 的 RAM 占用空间大于 Linux 的 RAM 占用空间,并且加载窗口会清除 Linux 可能留下的任何有价值的可搜索 RAM。此外,简单的 10 秒钟断电就会清除所有 RAM。
相反,有人建议“不要使用 Windows”嗯... 不,我不会因为害怕而躲起来,在需要使用平台时避开它们。这是一款超快的笔记本电脑,配有混合 nVidia 显卡,当需要玩 Windows 游戏时,它就会被这样使用。
- 这更像是“你会怎么做”的问题,但使用内核更新,你显然需要重新运行哈希,以创建一个新的哈希。但如果你忘记重新运行它,会发生什么?
内核更新后,将安装一个全新的内核/boot
。如果您忘记运行作业来创建新的哈希总数,那么比较总数的 cron 作业将给您一个错误,就像有人背着您修改了内核二进制文件一样。
脚本的实际设计和哈希总数的加密稍后再进行。我们本末倒置。第一步是确定需要保护的内容。在以下位置发布问题是 NAA(不是答案)“你会怎么做?”嵌入在答案中。
部分回答了我的问题,除了对内核映像运行哈希总计之外,还应包括选定的驱动程序。具体来说,我想到的是他们可以关闭网络摄像头 LED 的电源,给人一种它们被关闭的错觉,然后激活摄像头。也许麦克风也类似?
消除所有关于是否应该监视对内核空间的未经授权的修改的猜测--哪些二进制文件应该受到保护以免被外部篡改?
答案1
我认为避免这种情况的唯一方法是避免双重启动:摆脱 Windows。当然,如果你认为 CIA 无法安装隐藏在台式机/笔记本电脑 Linux 系统中的恶意软件,那你就不够偏执了……
答案2
了解如何让 grub 为您工作,并对其进行设置,以便在每次启动时启动保存在 .iso 档案中的 Linux 发行版。将您的 Windows 机器放在家里,只允许它通过直接硬链接连接与您允许在每次启动时与互联网通信的 Linux 机器通信,并通过每次启动时初始化的 Linux 系统远程配置所有互联网活动。对于那些超级偏执的人,请制作可启动闪存驱动器,放在口袋里,并在您离开家时关闭 Linux 设备上的 USB 启动。所有涉及的机器都将受到密码保护,当然是在 BIOS 级别!;^)
答案3
除了 之外,下面是需要保护的其他内核二进制文件的示例/boot
:
$ ls /lib/modules/4.9.13-040913-generic/
build modules.alias.bin modules.dep.bin modules.symbols
initrd modules.builtin modules.devname modules.symbols.bin
kernel modules.builtin.bin modules.order updates
modules.alias modules.dep modules.softdep vdso
───────────────────────────────────────────────────────────────────────────────
rick@dell:~$ ls /lib/modules/4.9.13-040913-generic/kernel
arch crypto drivers fs kernel lib mm net sound virt
───────────────────────────────────────────────────────────────────────────────
rick@dell:~$ ls /lib/modules/4.9.13-040913-generic/kernel/drivers
acpi dca hwmon mcb nvme rapidio uio
ata dma hwtracing md nvmem regulator usb
atm edac i2c media parport reset uwb
auxdisplay extcon iio memstick pci rtc vfio
base firewire infiniband message pcmcia scsi vhost
bcma firmware input mfd phy spi video
block fmc iommu misc pinctrl spmi virtio
bluetooth fpga ipack mmc platform ssb vme
char gpio isdn mtd power staging w1
clk gpu leds net powercap target watchdog
cpufreq hid lightnvm nfc pps thermal xen
crypto hsi macintosh ntb ptp thunderbolt
dax hv mailbox nvdimm pwm tty
───────────────────────────────────────────────────────────────────────────────
rick@dell:~$ ls /lib/modules/4.9.13-040913-generic/kernel/drivers/net/ethernet/realtek/
8139cp.ko 8139too.ko atp.ko r8169.ko
───────────────────────────────────────────────────────────────────────────────
rick@dell:~$
需要使用递归算法对目录中的所有子目录和文件进行 md5sum 快照(或您喜欢的任何安全哈希值)/lib/modules/kernel_version/*
可能还有其他二进制文件,但我想发布迄今为止所发现内容的答案。