Speed-boo3/grc-project

GitHub: Speed-boo3/grc-project

一个整合风险评估、合规检查、网络扫描和自动化报告的轻量级 GRC 工具,帮助团队追踪风险并验证安全控制是否真正落实。

Stars: 0 | Forks: 0

# GRC 项目 ![Python](https://img.shields.io/badge/Python-3.8+-blue?style=flat-square&logo=python) ![License](https://img.shields.io/badge/License-MIT-green?style=flat-square) ![Status](https://img.shields.io/badge/Status-Active-brightgreen?style=flat-square) ![Reports](https://img.shields.io/badge/Reports-Weekly-orange?style=flat-square) 一个作为网络安全硕士项目一部分构建的治理、风险与合规 (GRC) 项目。它涵盖了风险评估、安全策略、合规性检查和每周报告。 ## 项目功能 ``` flowchart LR A[Risk register JSON] --> B[Risk Matrix] B --> C[Scored + ranked risks] D[Compliance checklist] --> E[Control review] C --> F[Weekly report] E --> F F --> G[reports/ folder] G --> H[GitHub Pages / README] ``` ## 项目结构 ``` grc-project/ ├── grc/ │ ├── risk-assessment/ │ │ ├── risk_matrix.py # Scores and ranks risks │ │ └── sample_risks.json # Example risk register │ ├── policies/ │ │ └── security_policy.md # Sample security policy │ └── compliance/ │ └── checklist.md # ISO 27001 / NIST CSF checklist ├── scripts/ │ └── generate_report.py # Generates weekly reports ├── reports/ │ └── README.md # Index of all generated reports ├── tests/ │ └── test_risk_matrix.py ├── .github/workflows/ │ └── weekly-report.yml # Runs Mon, Wed, Fri at 08:00 ├── requirements.txt ├── CONTRIBUTING.md └── CHANGELOG.md ``` ## 工作原理 ### 风险评估 ``` python grc/risk-assessment/risk_matrix.py --file grc/risk-assessment/sample_risks.json ``` 风险使用标准的 **可能性 × 影响** 矩阵进行评分。每个风险获得 1 到 25 的分数,并被评为低、中、高或严重。 ### 风险矩阵 ``` quadrantChart title Risk Matrix — Likelihood vs Impact x-axis Low Impact --> High Impact y-axis Low Likelihood --> High Likelihood quadrant-1 Critical quadrant-2 High quadrant-3 Low quadrant-4 Medium Unpatched Systems: [0.9, 0.75] Phishing Attack: [0.75, 0.9] Insider Threat: [0.9, 0.35] DDoS Attack: [0.55, 0.55] SQL Injection: [0.9, 0.55] Lost Laptop: [0.35, 0.55] ``` ### 风险输出示例 ``` Risk Assessment Report ====================================================================== ID Risk Score Level Owner ---------------------------------------------------------------------- RISK-002 Phishing attack 20 Critical Security Team RISK-001 Unpatched systems 20 Critical IT Operations RISK-005 Data breach via SQL injection 15 High Dev Team RISK-003 Insider threat 10 High HR / Security RISK-004 DDoS attack 9 Medium Network Team RISK-006 Lost or stolen laptop 6 Medium IT Operations ``` ## 合规覆盖范围 检查清单映射到两个框架: | ISO 27001 | NIST CSF | |---|---| | 访问控制 | 识别 | | 资产管理 | 保护 | | 事件管理 | 检测 | | 密码学 | 响应 | | | 恢复 | ``` flowchart LR subgraph ISO 27001 A[Access Control] B[Asset Management] C[Incident Management] D[Cryptography] end subgraph NIST CSF E[Identify] F[Protect] G[Detect] H[Respond] I[Recover] end A --> F B --> E C --> H C --> I D --> F ``` ## 报告 我整理了一份每周报告,用于跟踪合规性分数和风险等级的变化。它涵盖了与检查清单相同的控制领域,并提供了当前状况的快速概览。 报告位于 [`reports/`](./reports/README.md) 文件夹中,每个日期一个子文件夹。每份报告包含按领域划分的合规性分数图表、按严重程度划分的未解决风险,以及来自 SOC 侧的警报趋势。 ``` flowchart LR A[Risk register] --> B[Score risks] B --> C[Check compliance] C --> D[Write report] D --> E[reports/YYYY-MM-DD/] ``` ## 设置 ``` git clone https://github.com/Speed-boo3/grc-project.git cd grc-project pip install -r requirements.txt ``` ## 运行测试 ``` pytest tests/ ``` ## 相关项目 这项工作的 SOC 部分位于一个单独的仓库中:[soc-project](https://github.com/Speed-boo3/soc-project) GRC 定义控制和策略。SOC 监控这些控制是否有效运行。它们相互促进。 ## 网络扫描 GRC 工作中最重要的部分之一是检查书面上的控制措施是否与现实相符。网络扫描器正是为此而生——它扫描主机,发现开放端口,并将它们转化为直接输入风险登记册的风险。 ### 扫描流水线如何工作 ``` flowchart TD A[Run scanner.py] --> B[nmap scans the target] B --> C[Open ports found] C --> D{Is the port risky?} D -- Known risky port --> E[Risk level: High] D -- Unexpected port --> F[Risk level: Medium] D -- Expected port 80 443 22 --> G[No risk added] E --> H[Risk JSON output] F --> H H --> I[risk_matrix.py scores and ranks] I --> J[GRC risk register] ``` ### 什么算作危险端口 | 端口 | 服务 | 风险 | |---|---|---| | 21 | FTP | 明文发送密码 | | 23 | Telnet | 所有内容均未加密发送 | | 25 | SMTP | 开放转发风险 | | 445 | SMB | 主要的勒索软件载体 | | 3389 | RDP | 持续的暴力破解目标 | | 3306 | MySQL | 数据库不应公开 | | 5432 | PostgreSQL | 数据库不应公开 | | 6379 | Redis | 经常在无认证状态下运行 | | 27017 | MongoDB | 多起数据泄露源于暴露的实例 | | 8080 | HTTP Alt | 无 TLS 的开发服务器 | ### 运行扫描器 ``` python grc/network-scan/scanner.py --target localhost --output network_risks.json ``` 然后将输出直接输入风险矩阵: ``` python grc/risk-assessment/risk_matrix.py --file network_risks.json ``` ### 输出示例 当扫描器发现危险端口时,结果如下所示: ``` Network Scan Report Target : localhost Date : 2026-03-16 08:00 ============================================================ Open ports found: 4 22 ssh 80 http 443 https 3306 mysql (8.0.32) Risks identified: 1 ID Risk Level ------------------------------------------------------------ NET-3306 MySQL exposed on port 3306 High Details: NET-3306 -- MySQL exposed on port 3306 Port : 3306 (mysql) Reason : Database should not be exposed outside the local network. Score : 16 -> High Treatment: Close the port if not needed, or restrict with firewall rules. ``` ### 如何连接到项目的其余部分 ``` flowchart LR A[Network scanner] -->|Finds open ports| B[Risk JSON] B -->|Fed into| C[Risk matrix] C -->|Scored risks| D[GRC report] D -->|Low compliance score| E[Policy updated] E -->|New control added| F[SOC monitors for violations] F -->|Alert fires| A ``` 这闭合了 SOC 和 GRC 之间的环路。扫描器发现弱点,GRC 将其登记为风险,策略得到更新以解决该问题,而 SOC 则持续监控未来的违规行为。
标签:GitHub Actions, GRC, Homebrew安装, ISO 27001, Markdown, NIST CSF, Python, 企业安全, 合规自动化, 安全治理, 安全策略, 安全规则引擎, 持续监控, 提示词设计, 无后门, 治理风险与合规, 网络安全, 网络安全硕士, 网络资产管理, 自动化报告, 自动笔记, 逆向工具, 量化风险评估, 防御加固, 隐私保护, 风险矩阵