相信有些同学在带电脑外出的过程中可能遇到一个场景:小乌鸦在咖啡厅用着笔记本电脑,忽然劫匪冲了进来,趁小乌鸦喝水的时候,抢走了他的装有linux系统的电脑,而此时你已经登陆进系统了,甚至连入公司V屁N网络了,接下来就是任由宰割的时候了,怎么办?
国外一位安全研究员就研究出一种方法对抗这个发生概率很低的场景:一根连着电脑的usb线,拔掉之后,电脑自动关机。
虽然这个场景几乎很难看见,但从这个想法可以延申出更多的应用,下面来看一下这位哥到底是怎么做的。
硬件
BusKill的关键是使用一根电缆,当笔记本电脑被盗时,电缆将触发udev remove操作。下面这套方案仅需20美元。
首先需要USB设备尽可能紧密连接到你的身体,然后将数据电缆一直连接到计算机。这里使用可分离的磁铁连接器,使其尽可能靠近机器,如下:
一个便宜的$ 4 USB驱动器,带有耐用的钥匙圈孔
一个小而结实的登山扣钥匙圈,用于将上述驱动器连接到皮带环(
一个$ 7 USB磁分离适配器插到电脑的USB-A端口
最后,一根3美元的1米长USB延长线将它们连接起来
由于许多笔记本电脑不再具有USB-A端口了(苹果)。如果只有USB Type-C,则可以买转换头:
$ 9 USB-C至USB-A转换器
或者直接用type-c全套设备:
完成品如下,另一头可以扣在你的裤带上。
软件
在这里,我们首先介绍一下udev规则
udev是Linux(linux2.6内核之后)默认的设备管理工具。udev 以守护进程的形式运行,通过侦听内核发出来的 uevent 来管理 /dev目录下的设备文件。
如何理解udev是守护进程呢?即系统内核启动后init进程(比如busybox的init程序、sysinit、Upstart或systemd)根据runlevel运行等级进入某种模式,然后解析开启哪些服务进程。其中udev就是哪些服务进程中的一个,服务进程是在后台运行的。可以通过命令ps -aux来获取。
所以只要有设备插入或删除,守护进程udev就会管理它。
也就是说使用了udev,所有的设备都能在/dev/目录下找到对应的设备文件。
这也就是为什么,一条udev规则就可以完成这一系列操作的原因。
因此,要达成视频的效果,
我们需要向添加新的udev规则文件/etc/udev/rules.d/。
这是一条简单的规则,每次任何USB驱动器被移除时,该触发器都会触发xscreensaver锁定屏幕:
但是该规则可能有点太宽泛了。如果要让特定品牌的USB驱动器触发锁屏,首先,我们需要进行一些调试,以找到USB驱动器弹出的时候,会特定触发的某些属性。要获得这些,请按照以下步骤
步骤1:插入USB驱动器 步骤2:运行udevadm monitor --environment --udev 步骤3:卸下USB驱动器
检查udevadm命令的输出。你应该看到有关驱动器的一堆唯一可识别属性,例如制造商,型号,文件系统uuid等。
例如,下行表明ID_MODELUSB驱动器的属性为Micromax_A74。
然后我们可以将udev规则更新为第一条样子,或者你可以选择设置成图片最下面那条样子,也就是直接关机。记得加入ID_MODEL,也就是上面的驱动器属性。
外出执行任务的时候建议佩戴一根。
此外,如果多带一根,可以用来与劫匪搏斗。
参考链接
https://tech.michaelaltfield.net/2020/01/02/buskill-laptop-kill-cord-dead-man-switch/