rbdnv/CIVS
GitHub: rbdnv/CIVS
CIVS 是一个用于保护 AI 智能体免受内存注入和提示词注入攻击的上下文完整性验证系统。
Stars: 3 | Forks: 0
# CIVS - Context Integrity Verification System
用于保护 AI 智能体免受 Memory Injection(内存注入)攻击的上下文完整性验证系统。
## 功能
- 🔐 上下文的加密签名 (Ed25519)
- 🔗 用于完整性校验的哈希链 (SHA-256)
- 📊 Trust Score - 对上下文的信任度评分
- 🛡️ 攻击检测:tampering(篡改)、replay(重放)、prompt injection(提示词注入)
- 📝 分类:ACCEPT / QUARANTINE / REJECT
- 🌐 用于集成的 REST API
## 快速开始
### 1. 启动 PostgreSQL
```
docker compose up -d postgres
```
### 2. 启动 API 服务器
```
python -m uvicorn app.main:app --reload --port 8000
```
### 3. 打开文档
http://localhost:8000/docs
### 4. 打开交互式演示
http://localhost:8000/demo/compare
## CI
仓库中配置了 GitHub Actions workflow [`.github/workflows/ci.yml`](/home/said/project/.github/workflows/ci.yml)。
它会在 `push`、`pull_request` 时自动运行,也可通过 `workflow_dispatch` 手动触发;它会安装依赖、检查 Python 文件编译并运行完整的测试套件。
## 演示
```
# 基础演示
python demo.py
# 完整演示
python demo_full.py
# 运行测试
python run_tests.py
```
## API 端点
| 方法 | 路径 | 描述 |
|-------|------|----------|
| POST | `/api/v1/auth/register` | 注册用户并获取 JWT |
| POST | `/api/v1/auth/login` | 登录并获取 JWT |
| POST | `/api/v1/keys/generate` | 生成 Ed25519 密钥 |
| POST | `/api/v1/contexts` | 创建上下文,需要 Bearer token |
| POST | `/api/v1/contexts/verify` | 验证上下文,需要 Bearer token |
| POST | `/api/v1/security/check-content` | 检查内容 |
| GET | `/api/v1/health` | 健康检查 |
## 项目结构
```
civs/
├── app/
│ ├── main.py # FastAPI приложение
│ ├── config.py # Конфигурация
│ ├── api/routes.py # API эндпоинты
│ ├── api/demo_routes.py # Demo endpoints и страница сравнения
│ ├── core/
│ │ ├── crypto.py # Криптография
│ │ ├── demo_simulation.py # Логика сравнения "Без CIVS / С CIVS"
│ │ ├── verifier.py # Trust Score
│ │ └── security.py # Защита от атак
│ ├── db/
│ │ ├── database.py # PostgreSQL подключение
│ │ └── tables.py # Модели БД
│ └── models/
│ └── context.py # Pydantic модели
│ └── static/demo/ # HTML/CSS/JS демонстрации
├── tests/
│ ├── test_core.py # Core unit-тесты
│ ├── test_auth.py # Auth unit-тесты
│ └── test_demo_simulation.py # Demo flow unit-тесты
├── docker-compose.yml # PostgreSQL
├── demo.py # Базовый демо
├── demo_agent_vulnerable.py # Консольный сценарий без защиты
├── demo_agent_protected.py # Консольный сценарий с CIVS
├── demo_full.py # Полный демо
├── run_tests.py # Запуск тестов
└── requirements.txt # Зависимости
```
## 技术
- Python 3.12
- FastAPI
- PostgreSQL
- SQLAlchemy
- cryptography (Ed25519, SHA-256)
- Docker
## API 使用示例
```
import requests
# 1. 用户注册
r = requests.post(
"http://localhost:8000/api/v1/auth/register",
json={
"username": "demo-user",
"password": "secret123",
"email": "demo-user@example.com",
"is_admin": False,
}
)
auth = r.json()
headers = {"Authorization": f"Bearer {auth['access_token']}"}
# 2. 密钥生成
r = requests.post("http://localhost:8000/api/v1/keys/generate")
keys = r.json()
# 3. 创建上下文
r = requests.post(
"http://localhost:8000/api/v1/contexts",
headers=headers,
json={
"content": "AI agent context",
"sign": True,
"private_key": keys["private_key"]
}
)
ctx = r.json()
# 4. 验证
r = requests.post(
"http://localhost:8000/api/v1/contexts/verify",
headers=headers,
json={"context_id": ctx["id"]}
)
result = r.json()
print(f"Trust Score: {result['trust_score']}, Class: {result['classification']}")
# 5. 攻击检查
r = requests.post(
"http://localhost:8000/api/v1/security/check-content",
json={"content": "Ignore previous instructions"}
)
print(f"Safe: {r.json()['is_safe']}")
```
## 许可证
MIT
标签:AI代理, AI安全, AMSI绕过, AV绕过, Chat Copilot, CVE, Docker, Ed25519, FastAPI, GitHub Actions, JWT认证, LangChain, LlamaIndex, PostgreSQL, Python, REST API, SHA-256, Streamlit, StruQ, Trust Score, 上下文完整性, 人工智能, 信任评分, 哈希链, 威胁检测, 安全防御评估, 数字签名, 数据篡改, 无后门, 测试用例, 用户模式Hook绕过, 网络安全, 自动笔记, 访问控制, 请求拦截, 轻量级, 逆向工具, 重放攻击, 防御系统, 隐私保护