chaitin / chaitin/SafeLine

[Suggestion] Custom deny rules should not trigger the Basic Attack Limiter by default

Open
#1,311 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

pending
Dominant language
Go
Stars
22.6k
Forks
1.5k
Avg merge
4h 30m
Merged PRs (30d)
11

Description

What would you like to be added or improved?

Is the result of a block from a custom deny rule expected to be an attack?

If you create a custom deny rule, the request should just be blocked or even result in a packet drop optionally.
the Basic Attack Limiter should not be triggered by custom deny rules. Instead there might be a third limiter like Basic Block Limit usefull, so that you can differ between real attacks and just blocks.

Another way would be just a checkbox in the deny rules count every block as an attack.

Why is it needed?

If you just want to block access to special ressources or from special sources, you might not want to ban any of those blocks via the Basic Attack Limiter as it might not be considered to be an attack violating the deny rule.

Our current case is a problem with Outlook’s autodiscovery:
Our customer has a lot of different legitimate domains behind our WAF, and obviously all of them have Outlook email addresses. That’s why Outlook tries to read the autodiscover information for every domain from time to time… all at once… which is triggering a 404 error from the upstream server… which in turn is triggering the Basic Error Limit, and so it’s blocking that customer’s employees when they’re working from home without whitelisted IP addresses.

I’ve tried adding autodiscover to a custom block rule, but this results in each attempt being counted as an attack, which is even worse as the Basic Attack Limiter is set up more aggressive than the Basic Error Limit .

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing how custom deny rules feed the Basic Attack Limiter and how the Basic Error Limit is configured, then review the related limiter tests or entry points. Done should mean that the maintainers have selected and implemented one clear policy for custom blocks, with tests covering the chosen behavior and its interaction with legitimate autodiscovery requests.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend-api-design, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.