减轻键盘记录器威胁的方法

信息安全 恶意软件
2021-08-11 20:30:31

我担心我的系统上安装了键盘记录程序并将敏感数据传输到我们的网络之外。

此类恶意软件是否有一种通用方法将其收集返回给黑客?例如,他们通常是直接和单独联系服务器,还是通过网络浏览器或其他良性程序利用现有连接?

假设有预防方法(反恶意软件程序)但未能阻止恶意安装,可以采取哪些进一步措施来防止数据传输?

我的一个想法是安装防火墙,例如 ZoneAlarm 以警告任何新的连接尝试,但如果键盘记录器使用现有的受信任连接,则价值不大。

4个回答

此类恶意软件是否有一种通用方法将其收集返回给黑客?例如,他们通常是直接和单独联系服务器,还是通过网络浏览器或其他良性程序利用现有连接?

没有任何一致性,没有。以下是 Hacker 先生可以使用的一系列方法:

  • 听着,简单的 shell 脚本。基本上这种方法依赖于攻击者探测然后连接到有问题的端口。相当幼稚且易于缓解 - 永远只允许出站连接。尽管有 NAT,但仍要这样做,因为 IPv6 将使那些 NAT 防御消失。
  • 恶意软件组件的出站连接。这些实际上分解为更多部分:

    • 到一些奇怪的端口号,比如 dodgy.site.example:1337。显然,您应该阻止到您不需要的端口的出站连接,但在家庭环境中这可能不切实际。
    • 通过电子邮件。到已知的 smtp 中继、专用 smtp 中继或直接(MX 查找 + 直接到邮箱)。在任何情况下,都不允许端口 25 甚至 587 上的流量流出。识别本地受信任的中继或远程中继,并且只允许端口 25/587 上的连接出站到该机器。强制执行 TLS 和经过身份验证的登录。
    • 看起来像一个合法的协议,例如我已经连接到https://dodgysite.example但没有谈论那个协议。SPI/深度包检测可能会发现这类事情,也可能不会。
    • 实际上是一个合法的协议。HTTP POST 在您看来是否可疑?我也不是,但考虑到我只是想在某个地方获取数据,CGI 将很好地处理收集,并且可能到处都允许 HTTP POST。将成为理想的数据提交向量。

在上述两种情况下,经过身份验证的代理服务器可能会有所帮助,因为它减少了出站连接的机会,因为并非所有恶意软件都能够检测或使用代理。

从恶意软件的角度来看,可以对这些进行一些改进。

  • 挂钩另一个应用程序并在该进程的上下文中执行任何出站/入站连接。
  • 使用 rootkit 简单地拒绝允许本地(如在系统中)扫描软件甚至知道出站连接的存在。

解决办法是什么?

好吧,可能最好的方法是首先保持计算机清洁。预防绝对胜于治疗,尤其是在内核级感染的情况下。然而,知道你有问题显然也很重要,所以:

  • 入侵检测系统。
  • 监控日志中的可疑活动。防火墙日志、操作系统日志等。请参阅 IDS,但也请自己做。

就是这样。如果您不需要的所有端口都已关闭,并且您正在通过代理传递您想要的所有连接或合理地扫描它们,那么您能做的最好的事情就是在这种情况下进行反应性防御。


从个人角度来看,我对强制访问控制非常感兴趣。老实说,我认为指定应用程序所需的特定资源可以带来很多好处,我说作为程序员,它有助于定义规范。如果您使用的平台支持某种级别的 MAC,您可能有兴趣研究它。我最近还回答了一个关于Sandboxie的问题,它看起来像是一个出色的 Windows 套件。

不幸的是,您问题第一部分的答案是键盘记录器使用多种技术进行通信,其中包括利用现有连接(例如 http),因此除非您有适用于白名单的防火墙,否则您会发现它非常难以预防。

一些键盘记录器根本不连接,但需要攻击者进行本地访问才能获取记录的数据 - 一个单独的问题,但同样 - 防火墙无法检测到。

你真的希望你的反恶意软件工具是最新的,并在访问互联网时使用安全的做法,否则很难检测到键盘记录器。

Schneier 的密码保险箱 带有一个虚拟键盘,您无需键入即可单击所需的字母。虽然晦涩难懂,但更安全,因为您假设攻击者没有监视这些操作。真正的问题是您已被黑客入侵,您需要使用防病毒软件删除恶意软件。

有一本由顶级安全领导者 Richard Bejtlich 撰写的关于此主题的书:如何检测离开网络的数据 - 这不是一个容易的问题,它实际上取决于您的风险评估。从简单的 HTTP GET 请求、直接连接、反向连接到捎带其他连接和使用隐蔽通道,人们可以通过几乎无限种方式发送数据。

这本书的标题是Extrusion Detection: Security Monitoring for Internal Intrusion