
1.
先确认你有青藤云WAF控制台管理员权限或相应API权限;同时准备接收端(如ElasticSearch/Kafka/Syslog/OSS)的访问账号。检查网络白名单和安全组,确保WAF能向目标地址发起连接。
在控制台:身份认证 -> 用户与角色 -> 确认账户具备“日志导出/日志查看”权限;若使用API,准备好API Key/Token并记录。
2.
登录青藤云WAF控制台,进入“日志管理/日志配置”页面,逐项打开“访问日志”和“攻击日志”。选择日志格式(建议JSON)便于后续解析。
设置日志级别:初期建议记录详细等级(含请求头、请求体摘要、检测规则ID),在稳定后可调低以节省存储。
3.
在WAF控制台选择“导出”或“转发” -> 添加目标 -> 选择ElasticSearch并填写地址、端口与认证信息;或选择Syslog/Kafka/OSS等。
若使用Logstash作为中转,示例Logstash pipeline(logstash.conf):
input { tcp { port => 5000 codec => json } }
filter {
mutate { rename => { "request_uri" => "uri" } }
date { match => [ "timestamp", "ISO8601" ] }
}
output { elasticsearch { hosts => ["es.example.com:9200"] index => "waf-log-%{+YYYY.MM.dd}" } }
4.
在Kibana管理 -> 索引模式 -> 新建索引模式(如waf-log-*),选择时间字段timestamp。创建常用可视化:攻击类型分布、Top攻击IP、Top被击中的URL、规则命中趋势。
建议建立一个仪表盘(Dashboard)整合图表,并保存为“WAF-Overview”。用于值班人员快速判断态势。
5.
常用Elasticsearch查询示例(近15分钟内高频请求IP):
GET /waf-log-*/_search
{ "query": { "bool": { "filter": [ { "range": { "@timestamp": { "gte": "now-15m" } } } ] } },
"aggs": { "top_ips": { "terms": { "field": "client_ip", "size": 10 } } }
}
告警策略:在Elastic Watcher或青藤云告警中心设置阈值,如同一IP 1分钟内攻击事件>50触发告警,并触发自动化脚本(见第8步)。
6.
使用机器学习/聚类分析识别异常模式:利用Elasticsearch ML或第三方工具(如Python + scikit-learn)对请求速率、UA、URI模式做聚类,抽取异常簇。
根据分析结果优化WAF规则:确认误报样本后调整规则优先级或添加白名单;对真实攻击样本补充签名规则并部署到生产。
7.
建议通过Webhook或脚本实现:当告警触发时,调用青藤云WAF的封禁API或变更策略接口实现自动临时封禁IP。示例curl(替换为实际API和TOKEN):
curl -X POST "https://waf-api.example.com/v1/block" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"ip":"1.2.3.4","duration":3600,"reason":"自动化告警封禁"}'
同时记录封禁事件到工单系统,方便事后复核与恢复。
8.
制定事件响应SOP,包括:告警接收 -> 初步确认(5分钟内) -> 临时阻断措施 -> 深度取证 -> 修规则/恢复。用实际日志示例写成步骤供值班人员操作。
定期演练(季度):模拟DDOS/SQL注入事件,验证日志链路、告警触发、自动封禁与工单闭环是否顺畅。
9.
问:在大量日志中如何快速找到真攻击而非误报?
答:优先筛选高风险规则ID、短时间内高频来源IP、带有已知攻击签名的请求体(如SQL关键字、