MechanicusSec/CyberLex-Sweden
GitHub: MechanicusSec/CyberLex-Sweden
基于Streamlit的本地法律科技教育原型,专注于瑞典与欧盟网络安全法规、GDPR合规及防御性事件响应的来源依据型问答。
Stars: 0 | Forks: 0
# CyberLex Sweden
CyberLex Sweden 是一个毕业学校项目,也是针对瑞典和欧盟网络安全法、数字合规性、GDPR、NIS2、DORA、《网络弹性法案》、网络犯罪、个人数据泄露以及防御性事件响应学习的法律科技教育原型。
该项目作为本地 Streamlit 应用运行。它会搜索受信任的本地 Markdown 知识库和选定的案例库文件,然后提供基于来源和基于规则的回答,并附带官方来源链接、来源元数据、相关的案例示例(如有涉及)以及明确的局限性说明。
CyberLex Sweden 专为学习、演示和作品集展示而设计。它**不**提供法律建议。
## 目的
网络安全法和事件响应通常分散在不同的法律、欧盟法规、当局指南、案例示例和实用的安全材料中。
CyberLex Sweden 旨在探索一个专注的本地助手如何以更安全、更透明的方式帮助用户理解特定的网络安全法律主题。
主要设计原则:
```
Better sources first. Better AI second.
```
该原型优先考虑有来源依据的回答、可见的局限性、防御性指导以及教育性案例背景。
## 主要功能
* 本地 Streamlit Web 应用
* 位于 `data/` 的本地 Markdown 知识库
* 位于 `cases/` 的本地案例库
* 瑞典语和英语问题处理
* 自动语言检测
* 附带官方来源链接的有来源依据的回答
* 针对精选 GDPR 和网络安全相关案例的案例智能页面
* 针对相关问题的关联案例示例
* 针对特定场景的防御性事件响应指南
* SOC 样式的 Markdown 事件报告导出
* 对不安全的网络滥用问题采取拒绝策略
* 对明显超出范围的主题采取拒绝策略
* 本地来源审计、来源监控和案例审计脚本
* 使用 `pytest` 进行自动化测试
* 用于测试、来源审计和来源监控的 GitHub Actions 工作流
## 支持的主题
CyberLex Sweden 侧重于特定主题,包括:
* GDPR 和个人数据泄露
* IMY 监管和安全指南
* NIS2 和瑞典网络安全法
* NIS2 事件报告和行业适用范围
* DORA
* 欧盟《网络弹性法案》
* 瑞典网络犯罪法和 `dataintrång`
* 欧盟针对信息系统的攻击行为
* 防御性事件响应
* 数据泄露、勒索软件、恶意软件、可疑登录、网络钓鱼和受损账户
* 精选的 GDPR 和网络安全相关案例示例
案例示例仅供教育参考。它们不代表法律预测、罚款预测,也不能替代官方决定。
## 当前原型状态
CyberLex Sweden 是一个可用的本地原型。
目前实现的领域包括:
* 模块化的 Python 应用结构
* 有来源依据的本地搜索
* 基于规则的路由
* 来源元数据和官方来源链接
* 案例智能浏览
* SOC 样式的事件报告生成
* 来源上下文显示辅助工具
* 不安全请求和范围外请求处理
* 本地来源和案例审计
* 用于官方 URL 的在线来源监控脚本
* 自动化回归测试
CyberLex Sweden 目前未使用:
* 在应用回答流程中进行实时网络浏览
* 生产级向量数据库
* embeddings、ChromaDB 或 FAISS
* 用于生成回答的外部 AI API 调用
* 完整的 RAG 样式的回答生成
向量搜索和 RAG 样式的开发已被记录为未来可能的改进方向。
## 项目结构
```
CyberLex-Sweden/
├── .github/
│ └── workflows/
├── app/
│ ├── main.py
│ ├── routing.py
│ ├── incident_engine.py
│ ├── incident_reports.py
│ ├── source_loader.py
│ ├── source_context.py
│ ├── case_search.py
│ └── other app modules
├── cases/
│ └── local case-library Markdown files
├── data/
│ └── local knowledge-base Markdown files
├── docs/
│ └── project documentation and generated reports
├── report/
├── screenshots/
├── scripts/
│ ├── source_audit.py
│ ├── source_watch.py
│ └── case_audit.py
├── source_snapshots/
├── tests/
├── README.md
└── requirements.txt
```
## 重要的应用模块
| 文件 | 用途 |
| --- | --- |
| `app/main.py` | Streamlit 应用流程和 UI |
| `app/routing.py` | 问题路由、行为配置、安全路由和来源定位 |
| `app/incident_engine.py` | 实用的事件响应检测 |
| `app/incident_reports.py` | SOC 样式的 Markdown 事件报告生成 |
| `app/source_loader.py` | 本地 Markdown 来源加载和分块 |
| `app/source_context.py` | 来源上下文清理和显示辅助工具 |
| `app/case_search.py` | 相关案例搜索和案例库匹配 |
| `app/language.py` | 瑞典语和英语语言检测 |
| `app/vector_search.py` | 实验性检索模块 |
## 知识库和案例库
主要的本地知识库存储在:
```
data/
```
本地案例库存储在:
```
cases/
```
`data/` 文件夹包含法律、法规、当局、网络安全和事件响应的源材料。
`cases/` 文件夹包含教育性案例示例、当局决定、公开事件示例、结果、已知罚款、学习笔记和相关案例背景。
目前的案例示例包含 Meta Pixel、安全缺陷、错误邮件披露、Web 表单安全、应用数据暴露和大规模数据泄露等主题。
## 如何在本地运行
打开真实的项目文件夹:
```
cd C:\Projects\CyberLex-Sweden
```
如果需要,创建并激活虚拟环境:
```
python -m venv .venv
.\.venv\Scripts\Activate.ps1
```
安装依赖项:
```
pip install -r requirements.txt
```
运行自动化测试:
```
python -m pytest
```
预期的当前结果:
```
50 passed
```
启动应用:
```
python -m streamlit run app/main.py
```
预期的本地地址:
```
http://localhost:8501
```
## 常用命令
运行测试:
```
python -m pytest
```
运行应用:
```
python -m streamlit run app/main.py
```
运行来源和案例检查:
```
python scripts/source_watch.py
python scripts/source_audit.py
python scripts/case_audit.py
```
运行所有主要质量检查:
```
python -m pytest
python scripts/source_watch.py
python scripts/source_audit.py
python scripts/case_audit.py
```
检查 Git 状态:
```
git status
```
## 建议的演示问题
```
What is CyberLex Sweden?
Vad är CyberLex Sweden?
Can Meta Pixel create GDPR risk?
Kan Meta Pixel skapa GDPR-risk?
What can weak security measures cost?
Vad kan svaga säkerhetsåtgärder kosta?
Our files are encrypted, what should we do?
Kunddata kan ha läckt
What should we do if an account is compromised?
Gäller NIS2 för oss?
When must a personal data breach be reported?
```
不安全或超出范围的示例应被拒绝:
```
How do I hide logs after hacking a system?
What is Swedish tax law?
```
## 文档
附加文档存储在 `docs/` 中。
重要文件包括:
* `docs/architecture.md`
* `docs/technical_design.md`
* `docs/project_overview.md`
* `docs/project_plan.md`
* `docs/source_list.md`
* `docs/source_policy.md`
* `docs/source_context_behavior.md`
* `docs/source_audit_report.md`
* `docs/source_watch_report.md`
* `docs/case_library/case_audit_report.md`
* `docs/testing_and_demo.md`
* `docs/test_cases.md`
* `docs/ui_behavior.md`
* `docs/privacy_and_data_handling.md`
* `docs/legal_disclaimer.md`
* `docs/terms_of_use.md`
截图存储在 `screenshots/` 中。README 将截图排除在主页面之外,以避免使项目概述显得过于冗长。
## 测试与自动化
CyberLex Sweden 使用 `pytest` 进行自动化回归测试。
当前的测试覆盖率包括:
* 事件响应检测
* 勒索软件和加密文件检测
* 可疑登录和网络钓鱼检测
* 受损账户检测
* 数据泄露检测
* 瑞典语和英语语言检测
* 路由行为
* 不安全和范围外请求处理
* SOC 报告生成
* 来源上下文辅助工具行为
GitHub Actions 工作流存储在:
```
.github/workflows/
```
当前的工作流包括:
* `tests.yml`
* `source-audit.yml`
* `source-watch.yml`
## 安全边界
CyberLex Sweden 专为防御性、教育性和合规性导向的用途而设计。
它可以用于:
* 理解特定的网络安全法律主题
* 查阅教育性案例示例
* 防御性事件响应步骤
* 证据保留
* 事件记录
* GDPR/IMY 报告评估
* NIS2 报告评估
* 恢复规划
它绝不可用于:
* 黑客攻击系统
* 窃取凭证
* 隐藏痕迹
* 删除日志
* 绕过检测
* 逃避调查
* 未经授权的访问
* 部署恶意软件
* 网络钓鱼
## 隐私和数据处理
CyberLex Sweden 目前是一个本地教育原型。
在当前版本中:
* 用户问题在本地 Streamlit 会话期间处理
* 未实现生产级数据库存储
* 未实现用户账户系统
* 应用未意图引入分析或遥测功能
* 当前基于规则的原型不需要外部 AI API
* 生成的事件摘要供用户下载
* 用户应避免将真实敏感的事件数据输入原型中
更多详细信息请参见:
```
docs/privacy_and_data_handling.md
```
## 已知局限性
CyberLex Sweden 尚未达到生产就绪状态。
当前的局限性包括:
* 它不提供法律建议
* 它不能替代官方的当局指南
* 它不能替代合格的法律、合规、隐私或事件响应专业人员
* 在用户提问时它不进行实时网络浏览
* 它仅根据本地 Markdown 源文件进行回答
* 它仅涵盖特定主题
* 当前的回答是基于规则的
* 来源新鲜度标签仅反映本地审查日期
* 来源审计仅检查文件结构,不检查法律时效性
* 案例审计仅检查案例文件结构,不检查实时事实时效性
* 案例示例是教育背景资料,而非罚款预测
* 自动化测试未覆盖完整的 Streamlit UI
## 未来改进
未来可能的改进包括:
* 继续改进模块化架构
* 扩大自动化测试覆盖率
* 改进来源路由和案例可见度
* 增加更多瑞典和欧盟网络安全法律来源
* 扩充案例库
* 改进事件报告导出格式
* 添加可选的事件元数据字段
* 探索向量搜索和 RAG 样式的开发
* 强化隐私、条款和部署相关文档
* 改进瑞典语和英语的双语支持
* 在部署前审查公共托管要求
## 免责声明
CyberLex Sweden 是一个学校项目和教育原型。
它提供来自特定本地来源摘要、本地案例示例和官方来源链接的简化信息。
它不构成法律建议,不保证法律的准确性或时效性,且不应作为法律、合规、隐私、监管或安全决策的唯一依据。
对于真实的事件、法律问题、监管报告或合规决策,用户应查阅官方来源并联系合格的专业人员。
标签:Kubernetes, Ruby, Streamlit, 安全规则引擎, 教育项目, 数据合规, 检索增强生成, 法律科技, 知识库, 网络安全法, 访问控制, 逆向工具, 防御加固