键盘记录器 Web 应用程序保护

信息安全 Web应用程序 键盘记录器 保护
2021-08-29 13:39:38

我正在尝试提高 Web 应用程序的安全性。该应用程序有一个管理站点,键盘记录器是我试图解决的一个问题。应用程序可以做一些可以阻止键盘记录器正常工作的事情吗?我读过关于击键干扰软件(对于每个用户击键,他们随机添加更多击键而不干扰用户输入),可以在 javascript 中完成类似的操作吗?

4个回答

许多应用程序通过使用复杂(且繁琐)的密码输入方法来阻止键盘记录器和间谍软件是徒劳的。没有一个对键盘记录器有效,许多实际上导致用户的安全性较低,因为它们使使用密码管理器变得困难。

处理这类事情的最佳方法是使用一次性密码。有几种方法可以解决,所以让我建议两种: TOTP ( RFC 6238 ) 可与许多软件验证器(例如 Google 验证器)一起使用,因此它既方便又便宜,而且可以免费使用。不过,它确实需要用户进行设置并拥有智能手机。

另一种方法是通过 SMS 发送一次性密码。这有点贵(因为您必须发送消息),但对用户来说也更容易(只需要手机而无需设置)。

如果您单独处理键盘记录器,那么可能会降低风险(例如使用屏幕键盘、2FA 或类似工具),但是如果攻击者能够在系统上安装键盘记录器,则很有可能(除了物理击键记录器)他们有权访问相关系统,因此可能能够规避您实施的任何其他保护措施(假设他们有这样做的动机)

例如,由于这是一个 Web 应用程序,假设您实现了 2FA,一旦用户通过身份验证,就会发出一个会话令牌,然后通常保持有效,直到发生空闲超时或用户明确注销。如果攻击者拥有对系统的特权访问权限,他们就有可能发出“保持活动”请求以防止空闲锁定并使用浏览器注入来阻止注销。

如果您担心用户从受感染的客户端访问特权系统,更好的解决方案是使用专用/锁定设备并限制对这些设备的访问。

JavaScript 无法控制低系统调用并更改它们以获得击键干扰。甚至用户模式的软件保护也被内核模式的键盘记录所破坏。

您可以使用易于实现的屏幕键盘来防止硬件键盘记录程序

软件键盘记录器更强大。当鼠标在银行网站上点击时,智能银行木马还会捕获 HTTP 请求和屏幕截图。有些人还窃取一次性密码绕过它们

如果您担心记录击键(手动密码输入)或复制/粘贴(密码管理器)的键盘记录器,那么您必须使用鼠标:

  1. 向用户显示一个虚拟键盘以输入密码。这确实不是非常用户友好,并且很难设置为全球使用(键盘布局的区域差异)。我仍然会让“不那么偏执”的用户按照他们习惯的方式输入密码。

或其他(外围)设备:

  1. 通过应用程序或短信进行双重身份验证。