Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

IP Reputation

Rockfish Probe integrates with threat intelligence services for IP reputation lookups.

Overview

Two approaches are available:

Featureip_reputationthreat_intel
ProviderDirect AbuseIPDBExternal API server
CachingLocal in-memoryServer-side
Rate limitsManaged locallyServer manages
Best forSingle sensorMultiple sensors

These features are mutually exclusive.

IP Reputation (Direct AbuseIPDB)

Query AbuseIPDB directly with local caching.

Configuration

ip_reputation:
  enabled: true
  api_key: "your-abuseipdb-api-key"
  cache_ttl_hours: 24
  max_age_in_days: 90
  s3_upload: true
OptionDefaultDescription
enabledfalseEnable IP reputation lookups
api_key(required)AbuseIPDB API key
output_dir<parquet_dir>/ip_reputationOutput directory
cache_ttl_hours24Cache entry lifetime
max_age_in_days90Max age for AbuseIPDB reports
s3_uploadfalseUpload parquet files to S3

How It Works

  1. For each flow, source and destination IPs are queued for lookup
  2. Lookups run in a background thread
  3. Results are cached in memory with reference counting
  4. Cache is exported to Parquet every hour

Rate Limiting

AbuseIPDB free tier: 1000 requests/day.

When rate-limited (HTTP 429):

  1. API requests pause
  2. Local cache continues serving
  3. Resumes at the next hour boundary
  4. Repeats if still rate-limited

Output Schema

Hourly Parquet exports include:

FieldTypeDescription
ip_addressStringIP address
abuse_confidence_scoreInt32Score (0-100)
country_codeStringCountry code
ispStringISP name
domainStringAssociated domain
total_reportsInt32Total abuse reports
last_reported_atTimestampLast report time
is_whitelistedBooleanWhitelisted status
reference_countInt64Times seen in flows
first_seenTimestampFirst flow occurrence
last_seenTimestampLast flow occurrence

Threat Intel (External API)

Use an external threat intelligence server (e.g., rockfish_intel) for centralized lookups.

Configuration

threat_intel:
  enabled: true
  endpoint_url: "http://localhost:8080"
  api_token: "your-api-token"
  batch_size: 100
  timeout_seconds: 10
OptionDefaultDescription
enabledfalseEnable threat intel lookups
endpoint_url(required)API server URL
api_token(required)Bearer token
batch_size100IPs per request
timeout_seconds10Request timeout

Benefits

  • Centralized caching: Share cache across multiple sensors
  • Rate limit management: Server handles provider limits
  • Multiple providers: Server can aggregate multiple sources

Output

Threat intel Parquet files are written to <parquet_dir>/intel/.

With S3 and Hive partitioning:

s3://bucket/prefix/intel/year=YYYY/month=MM/day=DD/filename.parquet

Setup with rockfish_intel

  1. Start the intel server with your AbuseIPDB key
  2. Create a client entry in clients.yaml
  3. Configure the probe:
threat_intel:
  enabled: true
  endpoint_url: "http://threatintel-server:8080"
  api_token: "client-token-from-clients-yaml"

Choosing Between Options

ScenarioRecommendation
Single sensor, simple setupip_reputation
Multiple sensorsthreat_intel + rockfish_intel
Enterprise with custom providersthreat_intel
Limited API quotathreat_intel (shared cache)

Getting an AbuseIPDB API Key

  1. Create account at abuseipdb.com
  2. Go to API settings
  3. Generate API key

Free tier: 1000 checks/day Paid tiers: Higher limits, additional features