Page MenuHomePhabricator

[EPIC] WE4.2.14b Provide IP reputation variables in AbuseFilter
Closed, ResolvedPublic

Description

Context

In T354597: Record IP reputation data for account creations and edits we'll likely discover that there are combinations of IP reputation data that usually result in unwanted edits or account creations. We should allow AbuseFilter maintainers to be able to create filters targeting traffic using a subset of labels in the IP reputation data.

Decision record about implementation: https://www.mediawiki.org/wiki/Trust_and_Safety_Product/Decision_records/2025-02-04-IPReputation_AbuseFilter_variables_for_registered_users

Proposal

Introduce IP reputation AbuseFilter protected variables for things like risks (callback proxy, VPN), tunnel types, client concentration count, or simply being present in iPoid-Service's database. Based on spur.us documentation, some possibilities for variables:

  • client.behaviors
  • client.count
  • client.countries
  • client.proxies
  • infrastructure
  • risks
  • services
  • tunnels.anonymous
  • tunnels.operator
  • tunnels.type

Consequences

We would be able to define mitigations in AbuseFilter based on edits from IPs matching specific IP reputation variables.

Notes from L3SC discussion

Copying over some requirements from L3SC discussion:

[,,,] variables like tunnels.operator could narrow down user identification, especially if the VPN service is uncommon and the Abuse Filter has some overly narrow combinations of conditions. Even in that case, the risk would still be low since Abuse filters are under tight community scrutiny and filter maintainers are highly trusted volunteers who exercise care when crafting filter conditions. Additionally, with the guarantee, IP reputation AbuseFilter variables will only be restricted to AF maintainers, rather than making them visible to the wider public, there is an extra layer of precaution.

want to reiterate that we build in the right measures/controls to mitigate false positives, for eg editors from some countries often. use open proxies/shared ip addresses and may not necessarily have malicious intent and could be wrongly tagged in the abuse filter.

Conclusion:

  • The variables need to be treated in the same way as user_unnamed_ip, in that they are considered "protected variables" and the filters and logs where they are used are accessible only to users with the right to view filters with protected variables.

Acceptance criteria

  • AbuseFilter variables exist for a variety of IPReputation data
  • These new variables work for actions performed by logged out users and temporary accounts
  • These new variables work for account creations of permanent accounts when the account is created while logged out
  • The new variables, their functionality, and recommendations for their use are communicated out to the community

Related Objects

StatusSubtypeAssignedTask
Resolvedkostajh
DeclinedNone
ResolvedNiharika
Openkostajh
StalledFeatureNone
StalledNone
ResolvedDreamy_Jazz
Resolvedkostajh
Resolvedsbassett
DuplicateDreamy_Jazz
DuplicateSTran
ResolvedSTran
DuplicateDreamy_Jazz
ResolvedDreamy_Jazz
ResolvedDreamy_Jazz
ResolvedSTran
ResolvedDreamy_Jazz
ResolvedDreamy_Jazz
ResolvedDreamy_Jazz
ResolvedDreamy_Jazz
ResolvedSTran
ResolvedSTran
ResolvedSTran
ResolvedDreamy_Jazz
ResolvedDreamy_Jazz
ResolvedDreamy_Jazz
ResolvedDreamy_Jazz
ResolvedDreamy_Jazz
ResolvedDreamy_Jazz
ResolvedSecurityDreamy_Jazz
ResolvedSecurityDreamy_Jazz
ResolvedSecurityDreamy_Jazz

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
kostajh changed the task status from Stalled to Open.Nov 21 2024, 10:21 AM

We have L3SC approval.

I'll turn this into an epic, where we can track individual variables as subtasks.

kostajh renamed this task from Provide IP reputation variables in AbuseFilter to [EPIC] Provide IP reputation variables in AbuseFilter.Nov 21 2024, 10:37 AM
kostajh updated the task description. (Show Details)
kostajh renamed this task from [EPIC] Provide IP reputation variables in AbuseFilter to [EPIC] WE4.2.14b Provide IP reputation variables in AbuseFilter.Jun 17 2025, 8:57 AM

I've added something about this to https://meta.wikimedia.org/wiki/Tech/News/2025/27.

The feature has been released to all WMF wikis.

Dreamy_Jazz closed this task as Resolved.EditedJun 23 2025, 5:03 PM

We are resolving this hypothesis as completed.

We met the goal of the hypothesis by adding several AbuseFilter variables that allow filters to match against the IP reputation data for an action. These variables are used in at least one AbuseFilter and guidance has been produced on how to use these variables that will go out to the wider community next week via Tech News.

The remaining work under this task does not need to be completed for the hypothesis to be resolved, but is in the process of being resolved.

Initial feedback from the WMF Stewards appears positive. If improvements are suggested after the wider communication goes out we can consider it as part of future work.