kp5036/firewall-rule-risk-auditor
GitHub: kp5036/firewall-rule-risk-auditor
一个基于 Flask 的 Web 应用,通过解析和评估防火墙规则来自动检测公共暴露等安全风险并给出分级修复建议。
Stars: 0 | Forks: 0
# 防火墙规则风险审计器
一个使用 Python 和 Flask 构建的 Web 应用程序,用于审计防火墙规则、检测高风险的公共暴露、按严重程度对发现的问题进行分类,并生成通俗易懂的修复指南。
**在线演示:** https://firewall-rule-risk-auditor.onrender.com/
## 概述
防火墙规则风险审计器是一个专注于安全的项目,旨在识别常见的防火墙和云安全配置错误。
用户可以将防火墙规则粘贴到 Web 应用程序中,该工具将分析每条规则的公共暴露情况、高风险服务以及最小权限访问问题。对于每项发现,该应用程序都会返回明确的风险等级、解释和建议。
该项目展示了软件工程和网络安全的基础知识,包括后端开发、规则解析、风险分类、安全自动化和修复报告。
## 功能
- 用于分析防火墙规则的 Web 界面
- 为用户提供规则格式指南
- 解析动作、协议、端口和源网络
- 检测公共暴露,例如 `0.0.0.0/0`
- 将常见端口映射到相应的服务,例如 SSH、HTTPS、MySQL、PostgreSQL、Redis 和 RDP
- 将发现的问题分类为 HIGH、MEDIUM、LOW、SAFE、REVIEW 或 INVALID
- 提供通俗易懂的原因说明和修复建议
- 包含一个可以生成 `audit_report.txt` 文件的 CLI 版本
- 已公开部署在 Render 上
## 规则格式
规则应遵循以下格式:
```
ACTION PROTOCOL PORT FROM SOURCE
```
示例:
```
ALLOW TCP 22 FROM 0.0.0.0/0
```
含义:
- `ALLOW` 允许流量
- `DENY` 阻止流量
- `TCP` 是协议
- `22` 是端口号
- `FROM` 是必需的关键字
- `0.0.0.0/0` 表示对公共互联网开放
## 示例输入
```
ALLOW TCP 22 FROM 0.0.0.0/0
ALLOW TCP 443 FROM 0.0.0.0/0
ALLOW TCP 3306 FROM 0.0.0.0/0
DENY TCP 23 FROM 0.0.0.0/0
```
## 示例输出
```
HIGH — SSH
Reason: SSH is exposed to the public internet.
Recommendation: Restrict access to trusted IP addresses or private network ranges.
LOW — HTTPS
Reason: HTTPS is publicly exposed, which is common for web services.
Recommendation: Confirm this service is intentionally public and protected with proper security controls.
HIGH — MySQL
Reason: MySQL is exposed to the public internet.
Recommendation: Restrict access to trusted IP addresses or private network ranges.
SAFE — Telnet
Reason: This rule denies traffic, so it does not expose the service.
Recommendation: No immediate action required.
```
## 检查的常见端口
| 端口 | 服务 |
|---|---|
| 22 | SSH |
| 23 | Telnet |
| 80 | HTTP |
| 443 | HTTPS |
| 3306 | MySQL |
| 5432 | PostgreSQL |
| 3389 | Remote Desktop Protocol |
| 6379 | Redis |
| 8080 | 备用 HTTP |
## 技术栈
- Python
- Flask
- HTML
- CSS
- Gunicorn
- Render
- Git 和 GitHub
## 项目结构
```
firewall-rule-risk-auditor/
├── app.py
├── main.py
├── parser.py
├── risk_engine.py
├── reporter.py
├── sample_rules.txt
├── audit_report.txt
├── requirements.txt
├── Procfile
├── templates/
│ └── index.html
└── static/
└── style.css
```
## 本地运行
克隆代码库:
```
git clone https://github.com/kp5036/firewall-rule-risk-auditor.git
cd firewall-rule-risk-auditor
```
安装依赖项:
```
python3 -m pip install -r requirements.txt
```
运行 Web 应用程序:
```
python3 app.py
```
在浏览器中打开:
```
http://127.0.0.1:5000
```
## CLI 用法
该项目还包含一个 CLI 版本。
运行:
```
python3 main.py
```
这会读取 `sample_rules.txt` 并生成:
```
audit_report.txt
```
## 展示的安全概念
- 防火墙规则审查
- 公共暴露检测
- 云安全配置错误分析
- 端口与服务风险映射
- 最小权限访问审查
- 风险分类
- 安全自动化
- 通俗易懂的修复报告
## 作者
**Krish Patel**
GitHub: https://github.com/kp5036
LinkedIn: https://linkedin.com/in/krishpatel21
标签:Flask, Python, 多模态安全, 安全基线检查, 无后门, 逆向工具, 防火墙审计