Nginx日志记录了网站所有访问者的信息,包括正常访客和恶意请求,对于分析流量来源至关重要。以下是使用Nginx日志分析流量来源的方法:
日志分析流程
- 统计:对数据进行基本处理,如请求IP统计、访问地址统计、HTTP状态码统计等。可以使用Excel或Python脚本进行统计。
- 威胁发现:
- 关键字过滤:查找请求中携带的关键字,如
script
、select
、from
、echo
、bash
、.sh
等,查看异常请求。
- 行为分析:观察特定IP的行为,如查询IP的威胁情报,某个IP登录了多个账号等。
- 报告撰写:在报告中重点体现某个IP或某些IP的攻击画像,确定攻击行为。
使用Clickhouse进行Nginx访问日志分析
- Nginx日志格式:推荐使用以下格式的Nginx日志,以便更好地满足分析场景:
log_format main '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" '
'$request_length $request_time';
- 数据采集与存储:使用日志服务(如帆一日志服务)采集和配置Nginx日志,并存储于ElasticSearch和Clickhouse。
- 数据分析:
- 使用Clickhouse SQL语法快速分析Nginx日志。
- 创建可视化dashboard,通过拖拉拽方式进行快速分析。
- 使用物化视图预聚合数据,进行复杂查询。
威胁情报查询
- 查找请求IP相关的威胁情报信息,判断是否为恶意IP。
- 观察请求中的UA标识,判断是否为恶意访问。
- 分析IP前的一些请求行为,发现是否存在恶意攻击前的撞库攻击。
通过上述方法,可以有效地分析Nginx日志,了解流量来源,及时发现并应对潜在的安全威胁。