Web servers service client requests, some of which might cause the web server to perform security-sensitive operations (e.g. money transfer, voting). An attacker may thus forge or maliciously manipulate such requests by compromising a web client. Unfortunately, a web server has no way of knowing whether the client from which it receives a request has been compromised or not -- current "best practice" defenses such as user authentication or network encryption cannot aid a server as they all assume web client integrity. To address this shortcoming, we propose vWitness, which "witnesses" the interactions of a user with a web page and certifies whether they match a specification provided by the web server, enabling the web server to know that the web request is user-intended. The main challenge that vWitness overcomes is that even benign clients introduce unpredictable variations in the way they render web pages. vWitness differentiates between these benign variations and malicious manipulation using computer vision, allowing it to certify to the web server that 1) the web page user interface is properly displayed 2) observed user interactions are used to construct the web request. Our vWitness prototype achieves compatibility with modern web pages, is resilient to adversarial example attacks and is accurate and performant -- vWitness achieves 99.97% accuracy and adds 197ms of overhead to the entire interaction session in the average case.
翻译:网络服务器处理客户端请求,其中某些请求可能引发服务器执行安全敏感操作(如转账、投票)。攻击者可能通过入侵网络客户端伪造或恶意操控这些请求。然而,服务器无法判断接收请求的客户端是否已被入侵——当前"最佳实践"防御措施(如用户认证或网络加密)无法协助服务器,因为它们均假设网页客户端具备完整性。为解决这一不足,我们提出vWitness,该方案通过"见证"用户与网页的交互过程,验证其是否与服务器提供的规范相匹配,使服务器能够确认网页请求为用户本意。vWitness面临的主要挑战是,即使良性客户端也会在网页渲染方式上引入不可预测的差异。vWitness利用计算机视觉区分这些良性差异与恶意操控,从而向服务器证明:1) 网页用户界面正确显示;2) 观察到的用户交互被用于构建网页请求。我们的vWitness原型能够兼容现代网页,对对抗性样本攻击具有鲁棒性,且具备准确性与高性能——vWitness达到99.97%的准确率,在平均情况下为整个交互会话增加197毫秒的额外开销。