标题: 恶意 IP 自动化检测 分类: Python 创建: 2022-11-14 13:55 修改: 链接: http://0x2531.tech/python/202211141355.txt -------------------------------------------------------------------------------- 从访问日志中分析出一批疑似恶意 IP,其中可能掺杂着正常用户 IP,如何自动化检测出其中的恶意 IP 呢?一种方法是使用威胁情报平台开放的 IP 信誉 API,如:微步在线云 API(接口文档地址:https:// x.threatbook.com/v5/apiDocs)。 使用也比较简单,只需注册一个个人账户获取到 API Key,就可以使用了。官方也提供了主流语言的使用代 码示例,以下为 Python 代码示例: ========== import requests url = "https://api.threatbook.cn/v3/scene/ip_reputation" query = { "apikey":"请替换apikey", "resource":"159.203.93.255" } response = requests.request("GET", url, params=query) print(response.json()) ========== 看接口文档可知,响应中 is_malicious 字段标识是否为恶意 IP。稍微改写下,遍历 IP 列表即可批量 检测出其中的恶意 IP。 ========== import requests import time url = "https://api.threatbook.cn/v3/scene/ip_reputation" ips = ["ip1", "ip2", "ip3"] for ip in ips: query = { "apikey":"your appkey", "resource":ip } response = requests.request("GET", url, params=query) print("[{}]: {}".format(ip, response.json()["data"][ip]["is_malicious"])) time.sleep(1) ========== 但需注意的是,该接口每天只有 50 次调用配额,且设置了60次/分钟的频率限制。 坐实恶意 IP 后,就可以在 waf 等安全设备中将其封禁了。