越光科技 | 轻松分析 AWS WAF 日志,保障 Web 应用安全

2024-11-15 17:09 黄俊宇
39

前言:在现代网络安全架构中,有效的日志管理和分析对预防、检测和响应威胁至关重要。本文将为您介绍一个高效便捷的解决方案——将AWS WAF(Web应用防火墙)日志传输至S3,并通过Logstash传输至您的实例,便于分析这些日志。



一、什么是AWS WAF?

AWS WAF(AWS Web Application Firewall)是一项由 AWS 提供的托管服务,用于帮助保护 Web 应用程序免受常见的网络威胁和攻击以下是 AWS WAF 的一些关键特点和功能:

·   自定义规则AWS WAF 允许用户创建自定义规则,以定义允许、阻止或监控的特定请求。用户可以根据 IP 地址、请求头、URI 字符串或其他内容来设置规则。 ·   预置规则集AWS WAF 提供了预定义的规则集,帮助用户轻松抵御常见的网络威胁,这些规则集由 AWS 和其他第三方安全供应商提供,节省了自定义配置的时间。 ·   实时监控和可见性用户可以通过 AWS WAF 的监控功能查看 Web 流量的实时数据和详细分析,从而帮助识别潜在的攻击模式和异常流量。


二、如何联通WAF-S3-logstash?

下面,我们将详细介绍如何将AWS WAF输出到S3日志后通过Logstash转发给其他资源,实现便捷安全的日志分析,只需简单几步,让您安全高效地分析日志数据

前提:

1、所有操作执行时注意当前路径

2、创建的安全组等网络配置均已放通



步骤1:配置WAF发送日志到S3

创建web acl,加入对应资源并配置需要的触发规则、logging destination下选择S3 bucket,该S3必须以aws-waf-logs-xxxxx命名


其他配置根据需求配置(如不需要http method,则勾选过滤),点击【Save】按钮完成创建。


配置S3桶,设为公开访问后,使用ACL设为公开



权限选项卡中,配置JSON配置文件开放权限(配置时请将实例中的资源信息更换为自己的资源)

(配置文件示例)


步骤2:部署logstash

署logstash参考连接:https://www.cnblogs.com/xiejava/p/12911453.html 根据参考连接步骤,安装logstash、以及插件,核查安装成功 (环境要求:jdk1.8或以上)


下载logstash软件包 logstash官方下载地址https://www.elastic.co/cn/downloads/logstash 实验使用安装包(此压缩包自带jdk且有所需插件,版本Temurin-21.0.4+7):logstash-8.15.3-linux-x86_64.tar.gz


安装到本地后,上传到实例并解压:tar zxvf logstash-8.15.3-linux-x86_64.tar.gz

完成后安装插件

yum install -y gem

gem -v

gem update --system

gem -v

检查并修改镜像源

gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/   

(国内的镜像站从https://gems.ruby-china.org 换成了 https://gems.ruby-china.com)

gem sources -l


cd到logstach的安装目录,可以看到Gemfile文件 vi Gemfile


This is a Logstash generated Gemfile.If you modify this file manually all comments and formatting will be lost.source "https://rubygems.org"gem "logstash-core", :path => "./logstash-core"......

(更改默认的 https://rubygems.org 为https://gems.ruby-china.com)


安装插件(注意路径)


sudo ./bin/logstash-plugin install logstash-input-s3(该安装包已有此插件,如其他安装包没有,请安装)



创建 Logstash 配置文件

sudo mkdir conf.d

sudo touch /home/ec2-user/logstash-8.15.3/conf.d/waf-to-syslog.conf

配置 Logstash 读取 S3 日志并输出到 Syslog:

sudo vim /home/ec2-user/logstash-8.15.3/conf.d/waf-to-syslog.conf

创建服务文件

sudo nano /etc/systemd/system/logstash.service(也可以用vi\vim)


保存后,为当前用户添加文件权限

sudo chmod -R 755 /home/ec2-user/logstash-8.15.3/


运行

sudo systemctl daemon-reload

sudo systemctl start logstash

确认运行状态正常

sudo systemctl status logstash

如图,显示running状态即可




测试与验证

(假设传输到syslog实例分析以日志)

logstash实例输入:logstash-8.15.3/bin/logstash -f conf.d/waf-to-syslog.conf

syslog实例输入:sudo tail -f /var/log/messages


logstash显示读取S3内容;syslog实例显示日志内容即为部署成功


联系我们
电话咨询 13711342725
QQ咨询
微信客服