Skip to content

Bring back Network Boundary Shield heuristics including tweaking #76

@polcak

Description

@polcak

4367460 removes the heuristics from NBS. However, for some use cases, the heuristics can be beneficial, both for Firefox-like and Chrome-like browsers.

We should go through the errors at

var httpErrorList = {
and propose weights that reflect how much information the error leaks and how common the error is.

So for example 404 adds 1 to the hostStatistics at

currentHost[targetUrl.hostname]["httpErrors"] += 1;
while maybe 406 could be a sign of some incompatibility between the client and the server. So I propose something like:

var httpErrorList = {
...
	404:1,
	405:0.5,
	406:0.1,
...
...
			currentHost[targetUrl.hostname]["httpErrors"] += httpErrorList[headers.statusCode];

Going back to 401, it leaks that the server exists but once known, there is not much to be learn in respect to the proxy discovery attack. That is the reason we decided to omit 401. However, blocking a server with excessive 401 errors makes sense because it might be a distributed password cracking attack. Suppose a malicious server distributes to a connected client passwords and lets the clients do the dirty work of connecting to the victim server. This way, server logs will show the browser proxy IP address and not the real attacker. If we pick weight 0.01 for 401 that means 1000 attempts. Does it make sense to reintroduce 401 and similar errors with a smallish weight? If so, does it make sense to have something like that for Firefox as well?

We should go through potential attacks that the heuristics can block and try to mitigate them.

The issue was originally a part of #62.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions