Browsers use security policies to block malicious behaviors. Cross-Origin Read Blocking (CORB) is a browser security policy for preventing side-channel attacks such as Spectre. We propose a web browser security policy fuzzer called CorbFuzz for checking CORB and similar policies. In implementing a security policy, the browser only has access to HTTP requests and responses, and takes policy actions based solely on those interactions. In checking the browser security policies, CorbFuzz uses a policy oracle that tracks the web application behavior and infers the desired policy action based on the web application state. By comparing the policy oracle with the browser behavior, CorbFuzz detects weaknesses in browser security policies. CorbFuzz checks the web browser policy by fuzzing a set of web applications where the state-related queries are symbolically evaluated for increased coverage and automation. CorbFuzz collects type information from database queries and branch conditions in order to prevent the generation of inconsistent data values during fuzzing. We evaluated CorbFuzz on CORB implementations of Chromium and Webkit, and Opaque Response Blocking (ORB) policy implementation of Firefox using web applications collected from GitHub. We found three classes of weaknesses in Chromium's implementation of CORB.
翻译:浏览器使用安全政策来阻止恶意行为。 跨 Origin Read Blacking (CORB) 是防止Spectre 等侧通道攻击的浏览器安全政策。 我们提议使用名为 CorbFuzz 的网络浏览器安全政策 fuzzer 来检查CORB 和类似政策。 在执行安全政策时, 浏览器只能访问 HTTP 请求和回应, 并仅仅根据这些互动采取政策 。 在检查浏览器安全政策时, CorbFuzz 使用跟踪网络应用行为并推断基于网络应用状态的预期政策行动。 通过比较政策或动作, CorbFuzz 检测浏览器安全政策中的弱点。 CorbFuzz 检查网络浏览器政策。 CorbFuzz 通过对一系列网络应用程序进行抽查,对州相关查询进行象征性的评估,以扩大覆盖面和自动化。 CorbFuzz 收集数据库查询和分支条件的信息,以防止在 fuzzing 期间生成不一致的数据值。 我们评估了在Cromium 和 Webkibro 应用中收集的三类“ ” VirebroB 政策执行过程中的CebB 。