长亭WAF社区版非专业版没有Syslog权限,采用前端轮询的方式获取告警数据。
wget https://raw.githubusercontent.com/sec-report/SecAutoBan/main/device/alarm/chaitin_waf_ce/chaitin_waf_ce.py
pip3 install SecAutoBan requests PyJWT
更改脚本第86
-88
行
server_ip = "127.0.0.1",
server_port = 8080,
sk = "sk-xxx",
更改脚本第79
行
"url": "https://xxx.xxx.xxx.xxx:9443",
WAF登录方案分为三种,适配不同情况。
在WAF主机上执行以下命令获取JWT密钥,用于自动登录:
echo "select string_value from options where key='jwt-secret';" | sqlite3 /data/safeline/resources/mgt/mgt.db
若提示没有sqlite3,请手动安装,例如ubuntu为:
apt install -y sqlite3
。
/data/safeline
为长亭WAF默认安装目录,若存放在其他地方请修改。
拿到JWT密钥后填入脚本第80
行
chaitin_waf_config = {
"url": "https://xxx.xxx.xxx.xxx:9443",
"jwt-secret": "xxxxxxx", # <-填写这个字段
"username": "",
"password": "",
"bearer": "xxx.xxx.xxx"
}
优先识别jwt-secret,其他字段留空即可
将用户名密码填入脚本第81
-82
行
chaitin_waf_config = {
"url": "https://xxx.xxx.xxx.xxx:9443",
"jwt-secret": "",
"username": "", # <-填写这个字段
"password": "", # <-填写这个字段
"bearer": "xxx.xxx.xxx"
}
登录WAF后,F12打开开发者工具,复制浏览器中任意网络连接请求头中Authorization
字段Bearer
下面的字符串
拿到Token后填入脚本第83
行
chaitin_waf_config = {
"url": "https://xxx.xxx.xxx.xxx:9443",
"jwt-secret": "",
"username": "",
"password": "",
"bearer": "xxx.xxx.xxx" # <-填写这个字段
}
python3 chaitin_waf_ce.py