PoisonTap – 一款黑客工具(使用与防范)
网站地址: https://samy.pl/poisontap/
PoisonTap 的工作原理
PoisonTap 通过利用对机器和网络的各种机制(包括 USB/Thunderbolt、DHCP、DNS 和 HTTP)的现有信任产生级联效应,从而产生信息泄露、网络访问和安装半永久后门的滚雪球效应。
PoisonTap 是为 5 美元的Raspberry Pi Zero构建的,除了micro-USB 电缆和microSD 卡之外没有任何其他组件,或者可以在任何带有以太网到 USB/Thunderbolt 加密狗的 Raspberry Pi (1/2/3) 上工作,或者可以在其他可以模拟 USB 小工具的设备上工作,例如USB Armory和LAN Turtle。
当PoisonTap ( Raspberry Pi Zero & Node.js) 插入锁定/密码保护的计算机时,它:
- 通过 USB(或 Thunderbolt)模拟以太网设备
- 从机器劫持所有互联网流量(尽管是低优先级/未知网络接口)
- 从 Alexa 排名前 1,000,000 个网站的 Web 浏览器中抽取并存储 HTTP cookie 和会话
- 将内部路由器暴露给攻击者,使其可以通过出站 WebSocket 和 DNS 重新绑定远程访问(感谢Matt Austin重新绑定的想法!)
- 在 HTTP 缓存中为数十万个域和常见的 Javascript CDN URL 安装一个持久的基于 Web 的后门,所有这些都可以通过缓存中毒访问用户的 cookie
- 允许攻击者远程强制用户使用任何后门域上的用户 cookie发出 HTTP 请求和代理返回响应(GET 和 POST)
- 不需要机器解锁
- 即使在设备被移除并且攻击者离开后,后门和远程访问仍然存在
PoisonTap 规避了以下安全机制:
- 密码保护的锁屏
- 路由表优先级和网络接口服务顺序
- 同源策略
- X 框架选项
- HttpOnly Cookie
- SameSite cookie 属性
- 两因素/多因素身份验证(2FA/MFA)
- DNS 固定
- 跨域资源共享 (CORS)
- 未启用安全cookie 标志和HSTS时的HTTPS cookie 保护
防止 PoisonTap
服务器端安全
如果您正在运行 Web 服务器,则保护 PoisonTap 很简单:
仅使用 HTTPS,至少用于身份验证和经过身份验证的内容
老实说,您应该专门使用 HTTPS 并始终将 HTTP 内容重定向到 HTTPS,以防止用户被欺骗通过 HTTP 提供凭据或其他 PII
确保在 cookie 上启用安全标志,防止 HTTPS cookie 通过 HTTP 泄漏
加载远程 Javascript 资源时,使用Subresource Integrity脚本标记属性
使用HSTS防止 HTTPS 降级攻击
桌面安全
在您的 USB 和 Thunderbolt 端口中添加水泥会很有效
每次离开机器时关闭浏览器都可以,但完全不切实际
禁用 USB/Thunderbolt 端口也很有效,但也不切实际
锁定您的计算机没有任何影响,因为网络和 USB 堆栈在计算机被锁定时运行,但是,进入需要密钥来解密内存的加密睡眠模式(例如,FileVault2 + 深度睡眠)可以解决大多数问题,因为您的浏览器将不再发出请求,即使被唤醒