gopinath2866/sis-rules-engine-demo
GitHub: gopinath2866/sis-rules-engine-demo
SIS 是一个静态不可逆性扫描器,用于检测基础设施配置中那些难以逆转或需要提升权限才能修改的决策。
Stars: 2 | Forks: 1
检测那些难以逆转或需要提升权限的基础设施决策。
# SIS — 静态不可逆性扫描器
SIS 分析基础设施配置(如 Kubernetes 和 Terraform),检测那些难以逆转或需要提升权限的决策。
## 为什么这很重要
某些配置会产生隐藏的约束:
- 后续修改需要 cluster-admin 或提升的权限
- 引入难以移除的依赖关系
- 使回滚或未来变更变得具有风险
这些问题在初始部署期间通常不可见。
## SIS 能发现什么
- 需要管理员权限才能撤销的 RBAC 绑定
- service account 或系统级依赖关系
- 降低未来运维灵活性的配置
## 这不是什么
- 不是规则引擎
- 不是通用安全扫描器
- 不是工作流系统
这是一个专注于可逆性和权限约束的结构性风险分析层。
## 示例发现
规则:`cluster-admin-reversal-dependency`
资源:`ClusterRoleBinding/metrics-server-auth-reader`
原因:
此绑定引入了集群范围的权限依赖。未来的回滚或修改需要提升的集群权限。
风险:
随着其他组件依赖此绑定,运维可逆性会随时间降低。
## 快速开始
安装依赖并运行本地扫描。
```
pip install -r requirements.txt
sis scan -t examples/terraform --format json
```
运行 API 服务器:
```
sis-api
```
## CLI 用法
```
sis scan -t
```
选项:
- `-r, --rules` 规则 JSON 文件路径(默认 `rules/demo.json`)
- `--type` 强制指定文件类型:`terraform`、`cloudformation`、`kubernetes`、`docker_compose`、`arm`
- `--format` `text` 或 `json`
- `--strict` 遇到未知文件类型时报错
- `-o, --output` 将输出写入文件
说明:
- `.yaml/.yml` 文件默认为 Kubernetes,除非传入 `--type`。
- `.json` 文件默认为 ARM,除非传入 `--type`。
## 示例
示例输入位于 `examples/`,预期输出位于 `examples/expected/`。
```
sis scan -t examples/terraform --format json
sis scan -t examples/kubernetes --format json
sis scan -t examples/cloudformation --type cloudformation --format json
sis scan -t examples/docker_compose --type docker_compose --format json
sis scan -t examples/arm --format json
```
预期输出:
- `examples/expected/terraform.json`
- `examples/expected/kubernetes.json`
- `examples/expected/cloudformation.json`
- `examples/expected/docker_compose.json`
- `examples/expected/arm.json`
## 报告生成器
从 JSON 输出生成面向客户的 Markdown 报告。
```
sis scan -t examples/terraform --format json -o /tmp/sis-scan.json
sis report -i /tmp/sis-scan.json -o /tmp/sis-report.md
```
面向运维人员的示例报告:
- `examples/output/kubernetes_report.md`
## Docker
构建容器并在无需本地 Python 配置的情况下运行扫描。
```
docker build -t sis:local .
docker run --rm -v $(pwd):/work -w /work sis:local scan -t examples/terraform --format json
```
## 咨询导向
将 SIS 用作付费项目中的确定性审计引擎。该工作流旨在最小化人工工作量,同时生成可辩护的输出。
交付物:
- 扫描报告(JSON + 人工摘要)
- 规则覆盖映射(哪些规则触发了,哪些没有)
- 修复建议(每个发现的可操作变更)
项目流程:
1. 客户提供 IaC 仓库或导出的清单
2. 在干净环境中运行 SIS
3. 交付报告 + 修复建议
4. 修复后可选的后续扫描
所需输入:
- 目标代码或清单包
- 允许的格式(Terraform、CloudFormation、Kubernetes、Compose、ARM)
- 范围边界(环境、仓库、排除项)
报告模板(建议章节):
- 执行摘要
- 按严重性/类型分类的发现
- 证据(文件、行号、规则 ID、消息)
- 修复指导
- 附录:完整 JSON 输出
定价指导:
- 按环境或按仓库收取固定费用
- 附加项:自定义规则、修复支持、重新扫描套餐
## 付费项目包(公开模板)
用于以最小阻力运行项目的模板:
- `docs/SIS_SOW_Template.md`
- `docs/SIS_Pricing.md`
- `docs/SIS_Intake_Form.md`
## 演示限制
此公开演示有意限定于示例输入和精简规则集(`rules/demo.json`)。如需完整的生产扫描和自定义项目,请申请访问私有版本。
## 项目结构
- `src/sis/engine.py`:确定性规则引擎
- `src/sis/parsers/`:格式解析器(演示范围)
- `rules/demo.json`:演示规则定义
- `examples/`:演示输入和预期输出
- `tests/`:单元测试
## 状态
SIS 目前专注于 Kubernetes 和 Terraform 风格基础设施配置的确定性分析,额外的解析器和规则正在逐步演进中。
标签:DevSecOps, EC2, ECS, IaC, RBAC, Terraform, 上游代理, 云安全监控, 协议分析, 可逆性, 子域名突变, 安全左移, 安全扫描, 成本效益分析, 时序注入, 权限提升, 权限管理, 模型越狱, 版权保护, 网络安全审计, 请求拦截, 逆向工具, 静态分析, 风险分析