防止 Linux 上的键盘记录器?

信息安全 linux 键盘记录器
2021-08-19 06:16:34

Linux 桌面架构中是否有任何机制可以防止恶意软件键盘记录器?什么是理想的 Linux 设置以使攻击者很难在目标系统上安装键盘记录器?

如果您使用 X、Wayland 和 Mir,这有关系吗?grsecurity 或 SELinux 或任何其他补丁如何帮助改善这种情况?

3个回答

键盘记录器可以安装在系统的不同层级,具有不同的检测方式。您已经有其他答案解释了它可以安装在专用进程中以及如何检测其活动。

但也可以通过更改 X11 服务器处理键盘输入的部分来安装它。如果它作为一个附加功能提供,例如在非 ascii 字符上更简单的输入、自动 xxx(把你最期待的功能放在这里),它甚至可以由最终用户自愿安装在自己的机器上。否则,它可以在启动时通过专用的 init 模块安装(如果攻击者设法成为 root)。

它也可以作为内核模块安装并直接监控物理键盘活动。安装过程可能与以前的情况相同。

如果始终遵循所有安全规则,则保护系统的唯一方法是:

  • 用严格的防火墙保护它(简单)
  • 永远不要使用 root 来做简单的任务(前两条规则是最小权限原则)
  • 永远不要在其上运行任何不受控制的软件

后者更难遵循。当然,我假设您只从官方来源下载系统软件和更新并控制校验和。但是这个游戏、附加组件或实用程序看起来很可爱......一旦有人让你执行想要而你不会拥有的代码,它就不再是你的系统了。

TL/DR:像往常一样,安全不能被简化为技术工具,而是高度依赖于人类实践......

有很多安全措施需要采取,从最基本但最重要的开始:良好的防火墙规则。但这在某些情况下可能非常复杂。与其采取尝试使某些事情变得非常困难的方法,为什么不采取简单的检测方式呢?

为了使键盘记录器发挥作用,它需要一个活动进程。在系统最初安装/清理时拍摄您的进程快照,然后不时运行进程列表检查。如果出现新流程,您将能够快速检测并消除任何不受欢迎的流程。如果您需要运行新的,只需更新有效的进程列表。

这可以变得更容易:一个将进程列表输出到文件的脚本,或者您甚至可以更进一步并安排运行脚本以将正在运行的进程与您知道有效的初始进程进行比较。

正如 Overmind 所说,一个简单的解决方案是检查您是否“信任”当前正在运行的进程。

这是我写的一个可爱的脚本,我把它贴在我的 github repo 上:

https://github.com/holtzilya2008/scripts/tree/master/cleanproc

cleanproc - 每 1 秒查看当前正在运行的进程 checkproc.sh - 检查每个进程是否在我的whitelist.txt上,如果不在,它会在终端中提示我并将“无法识别的进程”记录到cleanproc.log

但请记住,我们为保护自己免受键盘记录器的侵害所做的任何事情都只是为了将风险降至最低如果有人真的想在你不注意的情况下在你的机器上设置一个键盘记录器,最后他会这样做。没有100%的保护。