IP 风险评分(IP Reputation / IP Risk Score)来源和系统自建

https://chatgpt.com/share/69291b65-c5b8-8001-acf2-781c9b25c14c

这些来源都是各大代理商、风控平台、广告平台、支付公司、反欺诈系统实际使用的。


一、国际权威风险评分服务商(最核心来源)

这些是行业标准,代理商都会订阅:


1. Spamhaus

用途:反垃圾邮件、恶意活动
特征库:SBL、XBL、PBL
评分内容:

  • 垃圾邮件来源
  • 僵尸网络
  • 恶意流量
  • 动态 IP 池标记(PBL 是家庭宽带大杀器)

所有代理商一定参考 Spamhaus


2. IPQualityScore (IPQS)

用途:反欺诈、广告防作弊
提供:

  • 代理/VPN 检测
  • 异常活动评分
  • TOR / 数据中心标记
  • 高风险国家标记
  • BOT、点击作弊评分

世界上使用最广的 IP 风险评分库之一


3. MaxMind GeoIP2 + MaxMind RiskScore

地区库 + 风险引擎
包含:

  • 住宅/数据中心识别
  • VPN / Proxy 检测
  • 匿名网络检测
  • 短时间内大量请求行为检测

几乎所有反爬虫系统都会用 MaxMind


4. FraudScore、FraudLogix

广告防作弊常用,识别:

  • 虚假广告点击
  • 模拟设备
  • 程序化流量

5. Cisco Talos Intelligence

威胁情报
检测:

  • 恶意软件感染
  • BOT
  • 被攻击的受害者 IP

二、反爬虫 / 反欺诈平台的数据源

这些平台有超大规模客户数据,覆盖面广:


1. Cloudflare Threat Score

Cloudflare 的威胁情报基于:

  • 数千万人站点访问数据
  • Bot 值(BOT Score)
  • 爬虫评估
  • 代理标记
  • IP 行为历史

2. Akamai Threat Labs

提供:

  • TOR
  • 爬虫行为
  • DDoS 参与
  • 被入侵终端设备标记

3. PerimeterX / Human Security

首选广告、APP 防作弊平台
能检测:

  • 浏览器指纹伪造
  • 自动化工具
  • Selenium/Headless
  • 住宅代理节点滥用

4. Datadome、Kasada

反爬虫重量级
基于:

  • 全网指纹
  • IP 行为画像
  • 再识别技术

三、网络安全威胁情报(多个国家与机构)

这些机构提供恶意行为数据库:


1. AbuseIPDB

非常常用,众包 + 安全厂商联合数据
评分基于:

  • DDoS
  • 扫描器
  • 登录暴力破解
  • 恶意脚本行为

2. FireHOL IP Blacklist

整合多个威胁情报源


3. AlienVault OTX

全球最有名的威胁社区
标记:

  • 恶意软件感染
  • 僵尸网络
  • 钓鱼站
  • C2 控制节点

4. TOR Project Exit Node List

标记 TOR 出口节点


四、商业数据库(付费订阅)

代理商会购买这些数据库以提升检测能力:


1. IP2Proxy / IP2Location

提供:

  • 是否为代理 / VPN
  • 是否为 Residential IP
  • 是否为 Hosting Provider
  • ASN 信息
  • 区域一致性检查

2. Neustar IP Intelligence

用于广告投放风控
包含:

  • 住宅/商业/IDC 分类
  • 代理识别
  • 风险评分

3. ThreatMetrix

全球最大数字身份图库之一
基于:

  • 全球设备指纹
  • 行为特征
  • 匿名化网络检测

五、浏览器指纹数据(高级代理商才有)

顶级代理商(例如 BrightData、Oxylabs)会结合浏览器指纹评分:


IP + 浏览器指纹匹配度:

  • 浏览器时区与 IP 所属时区是否一致
  • 浏览器语言与 IP 所在地区是否一致
  • Canvas / WebGL 指纹是否可疑
  • User-Agent 与 IP 地区是否匹配(国别差异很明显)

六、代理商自有风控数据(核心资产)

这是每个大代理商最重要的“黑箱技术”:


自研评分包含:

① 节点成功率

  • 访问常见网站是否被封
  • 403/429 频率
  • 目标站点 ban 率

② 用户行为异常

  • 同一 IP 同时被多个用户使用
  • 大量请求频率不正常
  • 非浏览器模式行为
  • 重复 Cookie、重复指纹行为

③ 节点画像

  • 国内外访问比例
  • 同 ASN 下是否存在反爬高频行为
  • IP 是否曾用于爬虫/抓取工具

④ 节点稳定性

  • 漏洞感染风险(如 Windows SMB)
  • NAT 类型
  • 带宽稳定性
  • 端口开放情况(恶意软件特征端口)

综合后形成的 IP Risk Score(0-100 或 0-1)

大代理商通常是:

权威数据库 + 行业库 + 自有流量特征 → 综合评分

举例(简化版公式):

RiskScore = 
 0.35 * (IPQS score)
+0.20 * (MaxMind risk)
+0.15 * (Spamhaus SBL/PBL/XBL)
+0.10 * (AbuseIPDB)
+0.20 * (自研行为数据)

这样就能稳定识别出:

  • 数据中心代理
  • 被滥用的住宅代理
  • 安全隐患 IP
  • VPN / 路由器代理
  • 僵尸网络节点
  • TOR 出口节点

下面给你一套实战可落地的方案:从架构、数据源、特征、评分引擎(规则+ML)、离线/在线实现、指标/阈值、验证与监控,到示例代码和 SQL。目标是让你能自己搭建一个生产级的 IP 质量评分系统(IP Risk / IP Reputation),适用于住宅代理池、反欺诈或流量分级。

一、总体思路(两层架构)

把系统拆成两层,简单有效、便于迭代:

  1. 规则引擎(Rule-based) — 快速拦截已知高风险(黑名单、TOR、数据中心、Spamhaus 等)。低延迟、易解释,作为第一道防线。
  2. 评分引擎(Model-based) — 将多个信号合并为综合评分(0-100),可用简单的加权规则或机器学习(逻辑回归、GBDT)。

两者结合可取得高召回和高可解释性:先用规则剔除绝大多数明显风险,再用模型细化评分和分类。

二、数据源(必须/可选)

必须(立即接入):

  • GeoIP(MaxMind GeoIP2 免费/付费) → 国家、ASN、城市、ISP、是否数据中心标记
  • Spamhaus / Abuse lists(SBL, XBL, PBL, AbuseIPDB) → 黑名单标记
  • 公共威胁情报(AlienVault OTX, CiscoTalos)
  • TOR exit node list
  • 自有流量日志(最关键):HTTP 状态、响应码分布、失败率、请求频率、会话时长、目标站点列表、user-agent、cookie、TLS 指纹等

可选/增强:

  • IPQS/IP2Proxy、Neustar、IP2Location 等商业库(VPN/Proxy/Hosting 判定)
  • Browser fingerprint signals(时区/语言/UA 与 IP 是否匹配、Canvas 指纹)
  • 被封/被ban历史(目标站点返回 403/429 的记录)
  • 节点稳定性指标(在线时长、平均带宽、丢包率)
  • WHOIS/ASN 历史(是否属于家宽 ASN)
  • 设备级信号(若有家庭节点 agent,可上报 CPU、OS、connected SSIDs)

三、关键特征(Feature)——按优先级

  1. 黑名单/标记类(binary):Spamhaus, AbuseIPDB, TOR, commercial proxy flag, data-center flag.

  2. 地理/网络一致性:IP.country == claimed country? ASN type (ISP vs Hosting). ASN age, prefix size.

  3. 行为统计(从日志统计,窗口:1m/10m/1h/24h):

    • 请求频率(req/s)
    • 成功率(2xx / 总请求)
    • 错误率(4xx、5xx 比例)
    • 403/429 出现次数与频率(针对目标站点)
    • 新会话比例 vs 长会话比例
    • 用户代理多样性(同IP下UA数量)
  4. 历史信誉

    • 过去 7/30/90 天 ban 率
    • 下线/丢失率(节点不稳定)
  5. 指纹一致性(若可得):

    • 浏览器时区/语言 vs IP 地理是否匹配
    • TLS 指纹异常
  6. 网络特征

    • TTL/TTL 分布(可能被 NAT/CGNAT 修改)
    • 端口扫描 / 非 HTTP 协议异常
  7. 经济/商业信号:是否通过 SDK 得到(已知渠道),是否来自付费路由器合作等(正向信号)

四、评分策略(示例:混合规则 + ML)

设计思路:先用规则打低风险/高风险标签,然后用模型输出 0-100 分。

示例简化流程:

  1. 规则判定 HIGH_RISK(立即 block / score=100):

    • 在 Spamhaus SBL/XBL 列表 或 AbuseIPDB 分超过阈值
    • 在 TOR exit list
    • 商业库标注为 DATA_CENTER 且 ASN 属于云厂商
  2. 规则判定 LOW_RISK(score=0):

    • ASN 属于大型 ISP(residential ASN),且历史 30 天内 ban_rate < 0.1% 且稳定性好
  3. 其余进入模型:features -> 标准化 -> 模型(LR / GBDT) -> 输出概率 p -> map 到 RiskScore = round(p * 100)

简单线性加权(规则替代模型):

score = clamp(
  40*blacklist_flag + 
  25*data_center_flag + 
  15*ban_rate(0-1) + 
  10*error_rate(0-1) + 
  10*(1 - stability(0-1)),
  0, 100)

五、离线训练与在线服务(架构)

架构要点(生产实践):

  • 离线数据仓库:ClickHouse/BigQuery/ClickHouse 用于存储访问日志;用于 batch 特征计算与模型训练。
  • 特征流水线:Airflow 或 Prefect 调度的 ETL,按窗口(1m/10m/1h/1d)生成特征表。
  • 模型训练:使用 scikit-learn / xgboost / lightgbm。保留验证集和回测历史(A/B test)。
  • 实时评分服务:FastAPI / gRPC microservice,加载模型与规则库,提供 low-latency scoring。
  • 缓存层:Redis 缓存 IP 最近评分(TTL 1-10 min),减轻实时服务压力。
  • 控制台 & 可视化:Grafana + Prometheus 或 Kibana,用于显示 IP 分布、拒绝率、误判率。
  • 黑名单同步:评分到阈值后,自动写入防火墙 / WAF / 路由器 / CDN 黑名单。

六、阈值与策略示例(生产建议)

  • score >= 90 → 高风险:block 或 require captcha / 触发人工审核。
  • 70 <= score < 90 → 高风险:降权/限制速率/验证。
  • 40 <= score < 70 → 中风险:限速、观察、二次验证。
  • score < 40 → 低风险:允许。

阈值应基于业务容忍度与 A/B 实验不断调优。

七、模型与训练细节

  • 标签(supervised):用历史日志标注 bad(经常被目标站点封禁/大量 403/429/事务异常)与 good(长期稳定低错误率)。
  • 特征工程:滑动窗口聚合(count, rate, unique_count, pct_403等),one-hot 国家/ASN,embedding(若ASN很多)。
  • 训练流程:分时间切片做回测(time-based CV),避免数据泄漏。
  • 模型选择:先用逻辑回归做 baseline(解释性好),再用 LGBM 提升效果。
  • 输出校准:用 Platt scaling 或 isotonic regression 校准概率(便于映射到 0-100 分)。

八、示例表结构(ClickHouse / Postgres)

示例 access_logs(原始):

CREATE TABLE access_logs (
  ts DateTime,
  ip String,
  target_host String,
  http_status UInt16,
  user_agent String,
  bytes_sent UInt32,
  latency_ms UInt32,
  session_id String
);

示例 ip_features_hourly(汇总特征):

CREATE TABLE ip_features_hourly (
  hour DateTime,
  ip String,
  req_count UInt32,
  pct_2xx Float32,
  pct_4xx Float32,
  pct_403 Float32,
  unique_ua UInt16,
  avg_latency Float32,
  ban_count UInt16,
  stability_score Float32,
  is_blacklist UInt8,
  country String,
  asn UInt32
);

九、关键 SQL 示例(ClickHouse 风格)

计算一小时内请求数与 403 比率:

SELECT
  ip,
  toStartOfHour(ts) as hour,
  count() as req_count,
  sum(http_status >= 200 AND http_status < 300)/count() as pct_2xx,
  sum(http_status = 403)/count() as pct_403,
  uniqExact(user_agent) as unique_ua
FROM access_logs
WHERE ts >= now() - INTERVAL 1 HOUR
GROUP BY ip, hour;

十、示例 Python 实现(极简版评分函数)

下面代码示例展示如何把规则 + 模型结合(假设你已经训练好了 model):

# requirements: scikit-learn, lightgbm, pandas, joblib
import math
import joblib
import numpy as np

# 加载模型(示例)
model = joblib.load("ip_risk_model.pkl")  # 输出概率

def rule_check(ip_meta):
    # ip_meta 包含 is_spamhaus, is_tor, is_datacenter 等布尔
    if ip_meta.get("is_spamhaus") or ip_meta.get("is_tor"):
        return 100  # 强制最高风险
    if ip_meta.get("is_datacenter") and ip_meta.get("is_proxy_flag"):
        return 95
    return None

def compute_score(feature_vector, ip_meta):
    # 规则优先
    r = rule_check(ip_meta)
    if r is not None:
        return r

    # 假设 feature_vector 已经是模型要求的数组
    p = model.predict_proba([feature_vector])[0][1]  # 取正类概率
    # calibration / mapping
    score = int(round(p * 100))
    # 再加上少量规则惩罚(示例)
    if ip_meta.get("asn_risk_score"):
        score = min(100, score + int(ip_meta["asn_risk_score"] * 10))
    return score

十一、评估与上线策略

  • 回测(backtest):用历史数据比对不同阈值下的 TP/FP/TPR/FPR。
  • 灰度发布:先对 1% 流量启用评分并记录决策影响,再扩大到 10%/50%/100%。
  • A/B 测试:一组继续按旧策略,一组用新评分,比较成功率与误封率。
  • 常态化监控:监控每天被 block IP 数量、误封申诉数量、平均响应延迟、模型漂移(数据分布变化)。

十二、运维与自动化

  • 定期(每日/小时)重新训练模型并自动回测,若性能提升则自动部署。
  • 黑名单同步到 WAF、CDN(Fastly/Cloudflare API)与防火墙。
  • 提供人工复核控制台(查看 IP 的历史行为、评分依据、可手动白/黑名单)。
  • 自动报警:当误报率、拒绝率或 ban 率异常提升时告警。

十三、隐私与合规注意

  • 避免保存过度个人数据(如完整 cookie、个人信息)。
  • 若使用商业威胁情报服务,确保合约允许你用于风控目的。
  • 在某些地区(GDPR 等)使用指纹/行为数据需注意合规与用户同意。

十四、扩展高级方向(可选)

  • 在线学习:使用 streaming 更新特征与模型(例如 River 库)以快速适应新态势。
  • 图谱关联:把 IP、ASN、设备指纹、session 做图谱分析,识别协同行为群体(Graph ML)。
  • 可解释性:用 SHAP 展示模型对某 IP 的贡献特征,方便人工复核与合规。
  • 反向验证:对“低风险”IP随机抽样发起深度探测,验证其真实性(地理连通性、延时、traceroute 等)。

十五、快速落地清单(最小可行产品 MVP)

  1. 把原始 access_logs 收集到 ClickHouse(或 Postgres)。
  2. 接入 GeoIP + Spamhaus + TOR 列表。
  3. 写一个小时级的特征聚合任务(Airflow)。
  4. 写一个简单规则引擎(黑名单、数据中心直接标注)。
  5. 用历史标签训练逻辑回归模型,部署到 FastAPI。
  6. 在生产用 Redis 缓存评分、并在 Nginx/WAF 接入评分决策。
  7. 建 Grafana 仪表盘监控关键指标(block rate、false positive 报告等)。

标签: none

添加新评论