本人為甲方安全人員,從事甲方工作近6年;針對在甲方平時安全工作的一些重復、復雜、難點的工作,思考如何通過AI、腳本、或者工具實現智能且自動化,于是花平時空閑時間準備將這些能力全部集中到一個平臺,于是有了這個東西——SecProxy-安全自動化協同平臺
項目概述
SecProxy 是專為甲方安全人員設計的自動化安全協同平臺,通過智能化、自動化的安全運營能力降低人工成本與資源消耗,提升安全響應效率。核心功能圍繞阿里云 WAF 3.0 深度集成,實現攔截數據可視化、策略自動化管理及安全趨勢分析。
?
技術棧
前端
- ? 語言/框架:Python(數據處理)、HTML/CSS(頁面渲染)
- ? 核心技術:響應式布局、網格系統、AJAX 數據交互
- ? 架構設計:清晰分層的頁面結構,優化用戶體驗與功能擴展性
后端
- ? 語言/框架:Python、Flask(Web 框架)、MySQL(數據庫)
- ? 核心功能:數據存儲與處理、API 接口服務、安全策略邏輯實現
- ? 第三方庫:Flask-SQLAlchemy(數據庫 ORM)、requests(網絡請求)
架構設計
前端架構
- ? Header:固定頂部,展示平臺名稱與核心價值
- ? Sidebar:左側固定寬度(1/5),包含功能菜單(如白名單管理、釘釘告警等)
- ? Content Area:主內容區根據菜單點擊動態加載配置頁面或數據報表,核心功能區采用網格布局展示卡片式模塊(如攻擊趨勢、策略管理)
- ? Footer:底部單行版權信息
技術實現
- ? 使用原生 HTML/CSS 實現響應式布局,適配多終端
- ? 通過 AJAX 與后端 API 交互,動態渲染數據表格、圖表(預留 ECharts 集成接口)
后端架構
API 設計
接口路徑 | 功能描述 | 方法 | 響應格式 |
/api/waf/blocked-ips | 獲取前一天 WAF 攔截 IP 列表 | GET | JSON |
/api/whitelist/add | 一鍵添加白名單規則 | POST | {"status": "success"} |
/api/blacklist/remove | 一鍵解封 IP | POST | {"status": "success"} |
/api/attack-trend | 獲取 IP 攻擊趨勢數據 | GET | JSON 數組 |
數據庫模型(MySQL)
IP 攻擊趨勢表 (attack_trend)
字段名 | 類型 | 描述 |
id | INT(11) | 自增主鍵 |
timestamp | DATETIME | 攻擊時間 |
ip | VARCHAR(45) | 攻擊 IP 地址 |
attack_count | INT(11) | 攻擊次數 |
attack_ratio | DECIMAL(5,2) | 攻擊占比(百分比) |
核心功能
阿里云 WAF 3.0 集成
- ? 攔截數據可視化:
實時展示前一天 WAF 攔截 IP 詳情(數量、分布、高頻攻擊源),支持按時間范圍篩選,生成趨勢折線圖/柱狀圖。 - ? 自動化策略管理:
-
- ? 白名單:通過模板快速添加信任 IP(支持單個/批量導入),數據格式示例:
[ { "name": "test1", "tags": ["waf"], "status": 1, "origin": "custom", "conditions": [{"key": "IP", "opValue": "contain", "values": "14.22.5.27"}] }
]
-
- ? 黑名單:一鍵封禁惡意 IP,支持多維度條件(如來源 IP、請求頻率),數據格式示例:
[ { "action": "block", "id": 20705051, "name": "IpBlackList", "remoteAddr": ["116.238.81.166", "183.223.240.178"] }
]
- ? 一鍵解封:快速移除封禁策略,支持批量操作與操作日志審計。
- ? 智能告警:通過釘釘 Webhook 自動推送攔截事件到指定群組,包含攻擊 IP、時間、威脅等級等信息。
- ? 安全趨勢分析:基于歷史數據生成 IP 攻擊趨勢報告,識別高頻攻擊時段與惡意 IP 集群,支持導出 CSV/Excel 格式,便于二次分析。
目錄結構
aliwaf_sec/
├── app.py # Flask 主程序,后端服務入口
├── config.py # 配置文件(數據庫連接、釘釘 Webhook 地址等)
├── extensions.py # 第三方庫初始化(如數據庫實例 db)
├── models.py # 數據庫模型定義(表結構)
├── routes/ # 路由模塊(按功能劃分)
│ ├── __init__.py # 藍圖初始化
│ ├── waf.py # WAF 相關 API 路由
│ ├── user.py # 用戶管理 API 路由
│ └── report.py # 報告生成 API 路由
├── requirements.txt # 依賴庫清單
└── static/ # 前端靜態資源(待擴展,當前暫未啟用) ├── css/ ├── js/ └── images/
部署指南
環境準備
安裝 Python 3.8+ 及 pip:
示例(Ubuntu/Debian)
sudo apt-get install python3.8 python3-pip
安裝依賴:
pip install -r requirements.txt
在 .env 中修改參數:
- 1. 復制.env-template文件為.env;
- 2. 完善里面的參數
執行數據庫遷移(使用 Flask-SQLAlchemy):
flask db init
flask db migrate -m "Initial migration"
flask db upgrade
啟動服務
后端服務:
python app.py
聯系我們
私或評論
持續優化中:更多功能(如其他云廠商 WAF 集成、日志分析、腳本等)即將上線!
前端寫的很屁,勿噴。
同時尋求更多志同道合的朋友一起完善!