Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Abuse-relevant headers added by proxy #66

Closed
ShivanKaul opened this issue Jul 28, 2021 · 5 comments
Closed

Abuse-relevant headers added by proxy #66

ShivanKaul opened this issue Jul 28, 2021 · 5 comments

Comments

@ShivanKaul
Copy link
Contributor

The draft currently says "The oblivious proxy resource MUST NOT add information about the client to this request". While identifying information would obviously defeat the whole point of OHTTP, it would be useful for the proxy to add some headers that would help the server with abuse mitigation while not revealing identity.

For a simple example, the proxy (which is IP address-aware) could add an isMalicious header if it sees a request from a known abusive IP address and then forward that to the server. The server could then use that signal + the contents of the request to determine what to do with the data (if it's telemetry, then it could choose not to count it). This would also be useful for shadowbanning clients, in which case you don't want the proxy to just outright reject the request. Importantly, the server doesn't come to know anything about the client other than the fact that the proxy thinks it is abusive (which doesn't split the anonymity set by too much 😅).

@martinthomson
Copy link
Collaborator

This is a reasonable thing to do. The question is how we can best frame this. Implementing shadow bans by flagging requests seems like a good way to manage some aspects of this, but unbounded use of similar mechanisms could partition users too finely. We should talk about this in a working group to understand it more completely.

@chris-wood
Copy link
Collaborator

@martinthomson let's throw this one on the agenda for 113.

@enygren
Copy link

enygren commented Mar 23, 2022

As discussed in the OHAI discussion on ohai-oblivious-proxy-feedback, the general issue seems to be dealing with abuse in a privacy-preserving manner. It seems like the approaches are proxy->request_resource (eg, a client reputation bit) and a private request_resource->proxy channels (eg, this request may want to degrade client reputation) channel. Rate-limiting on the proxy is just one way to deal with bad reputation.

For request_resource->proxy it might be reasonable to have more than one bit (such as either a few bits of badness-level, or perhaps a vector indicating nature-of-badness which might include things like "this request was expensive", "this request may have been malicious (eg, triggered a WAF rule)", etc).

Proxies could potentially rate-limit clients that have a high ratio of responses "suspicious" responses to non-suspicious responses. Proxies might also use some mixture of reputation information to inform what they send to the request_resource.

Note that at least some CDN services doing client reputation tend to have a vector of reputations, and this blurs into the "demographic" topic. Having a single bit might not be good enough to make good decisions in a fair manner.

It may be worth enumerating some use-cases (rate-limiting against DDoS attacks against a target, dealing with abusive clients/bots with bad reputation, etc) and to explore the design-space before jumping to a particular implementation.

@chris-wood
Copy link
Collaborator

@ShivanKaul does #113 address this?

@martinthomson martinthomson removed the help wanted Extra attention is needed label Jun 17, 2022
@chris-wood
Copy link
Collaborator

chris-wood commented Jun 17, 2022

Closing now that #113 has been merged. @ShivanKaul, feel free to reopen if more changes are desired.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants