Skip to main content

IP Reputation Sources

IP Reputation Sources tell the Risk Engine which IP addresses are known to be malicious, suspicious, or associated with anonymization services (VPNs, Tor, proxies). When a user logs in from a flagged IP, the known_bad_ip, suspicious_ip_reputation, or ip_blocklist signals are triggered and contribute to the risk score.

IP Reputation Sources Page

IP Reputation Sources — Built-in and custom source configuration

Sources fall into two categories based on how they work:

CategoryHow It Works
Sync SourcesFetch IP lists on a schedule and store them locally for fast lookup at login time
Real-time SourcesQueried live on every login attempt; no local storage

Built-in Sources

Built-in sources are enabled by default. They cannot be deleted but can be disabled. If you want to use a different source, you can add custom sources through the interface.

When access to the relevant source is provided, it updates automatically at regular intervals. For details about access, contact our team. If access is not available, list updates are delivered through patch releases published by our team.

Custom Sync Sources

Custom sync sources fetch IP lists and import them into the local ip_reputation table. They are best for large static or periodically updated blocklists.

Text Feed (text_feed)

Fetches a plaintext file from a URL and parses IP addresses from it.

FieldDescription
URLThe HTTP/HTTPS URL of the feed
Formatip_tsv — Tab-separated values with IP in first column; cidr — CIDR notation (e.g., 192.168.1.0/24)
Score WeightInteger 1–100; higher values contribute more to the risk score when this source flags an IP
Source IdentifierA unique string label for this source (used in event details and log entries)

CSV / Text File Upload (csv_file)

Upload a local TXT or CSV file (maximum 50 MB) containing IP addresses.

FieldDescription
FileTXT or CSV file upload
Formatplain — One IP per line; ip_tsv — Tab-separated; cidr — CIDR ranges
Score WeightInteger 1–100
Source IdentifierUnique label for this source

Bulk API (bulk_api)

Calls an HTTP API endpoint that returns a JSON list of IP addresses. The entire list is fetched and imported locally.

FieldDescription
Endpoint URLFull URL of the API endpoint
HTTP MethodGET or POST
JSON List PathJSONPath expression pointing to the array of IP objects (e.g., data.ips)
IP Field NameKey within each object that contains the IP address
Score Field NameKey within each object that contains a dynamic score (optional)
High ThresholdIf the dynamic score is above this value, treat as high risk
Low ThresholdIf the dynamic score is below this value, treat as low risk
Fixed ScoreA static score to assign when no dynamic score is available
Timeout (seconds)Maximum time to wait for the API response

Custom Real-time Sources

Real-time sources query an external service on every login attempt. They add latency to the login flow, so use them only when freshness is critical.

DNSBL (dnsbl)

Uses DNS-based blocklists (DNSBL) to look up the client IP. The IP is reversed and prepended to the DNSBL zone as a DNS query.

FieldDescription
DNSBL ZoneThe DNS zone to query (e.g., zen.spamhaus.org, bl.spamcop.net)
Source IdentifierUnique label for this source

Example: For IP 1.2.3.4 querying zone zen.spamhaus.org, the DNS lookup is 4.3.2.1.zen.spamhaus.org. A non-NXDOMAIN response means the IP is listed.

HTTP API (http_api)

Calls a custom HTTP endpoint for each login IP and parses a risk score from the JSON response.

FieldDescription
Endpoint URLFull URL; use {ip} as a placeholder for the client IP
HTTP MethodGET or POST
Custom HeadersOne Key: Value pair per line
Query ParametersAdditional URL parameters
Body TemplateRequest body (for POST); use {ip} as a placeholder
JSON Score PathJSONPath expression to the score field in the response
High ThresholdScore values above this are treated as high risk
Low ThresholdScore values below this are treated as low risk
Timeout (seconds)Maximum time to wait for each per-login API call

How Lookup Works

At login time, the IpReputationManager queries all enabled sources:

  1. Sync sources are looked up against the local ip_reputation table (integer range scan — no DNS or HTTP calls).
  2. Real-time sources are called live.
  3. The single highest-scoring hit across all sources is returned and passed to the Risk Engine.

The result carries the source identifier, score, and display name shown in event details.

Deleting a Custom Sync Source

When a custom sync source is deleted, all IP records imported from that source are also removed from the ip_reputation table. If it was the last sync source, built-in sources are automatically re-enabled.

Setup Steps

  1. Go to Risk Analysis → IP Reputation Sources
  2. To use built-in protection, ensure the Enable built-in protection toggle is on (default)
  3. To add a custom source:
    • Click Add Source
    • Choose Sync or Real-time
    • Select the driver type and fill in the required fields
    • Save
  4. For sync sources, trigger an initial sync or wait for the scheduled sync to run
  5. Verify the imported IP count in the source list