Files
OmniRoute/docs/i18n/cs/SECURITY.md
2026-04-06 18:11:09 -03:00

9.0 KiB
Raw Blame History

Security Policy (Čeština)

🌐 Languages: 🇺🇸 English · 🇪🇸 es · 🇫🇷 fr · 🇩🇪 de · 🇮🇹 it · 🇷🇺 ru · 🇨🇳 zh-CN · 🇯🇵 ja · 🇰🇷 ko · 🇸🇦 ar · 🇮🇳 hi · 🇮🇳 in · 🇹🇭 th · 🇻🇳 vi · 🇮🇩 id · 🇲🇾 ms · 🇳🇱 nl · 🇵🇱 pl · 🇸🇪 sv · 🇳🇴 no · 🇩🇰 da · 🇫🇮 fi · 🇵🇹 pt · 🇷🇴 ro · 🇭🇺 hu · 🇧🇬 bg · 🇸🇰 sk · 🇺🇦 uk-UA · 🇮🇱 he · 🇵🇭 phi · 🇧🇷 pt-BR · 🇨🇿 cs · 🇹🇷 tr


Reporting Vulnerabilities

Pokud v OmniRoute objevíte bezpečnostní chybu, nahlaste ji prosím zodpovědně:

1.NEOTEVÍREJTEveřejný problém GitHubu 2. Použijte GitHub Security Advisories 3. Zahrňte: popis, kroky reprodukce a potenciální dopad## Response Timeline

Etapa Cíl
Poděkování 48 hodin
Třídění a hodnocení 5 pracovních dnů
Vydání opravy 14 pracovních dnů (kritické) ## Supported Versions
Verze Stav podpory
3.4.x Aktivní
3.0.x Zabezpečení
< 3,0,0 Nepodporováno ---

Security Architecture

OmniRoute implementuje vícevrstvý model zabezpečení:``` Request → CORS → API Key Auth → Prompt Injection Guard → Input Sanitizer → Rate Limiter → Circuit Breaker → Provider


### 🔐 Authentication & Authorization

| Funkce | Realizace |
| --------------------- | ---------------------------------------------------------- |
|**Přihlášení k panelu**| Ověřování na základě hesla s tokeny JWT (soubory cookie HttpOnly) |
|**Ověření klíče API**| Klíče podepsané HMAC s ověřením CRC |
|**OAuth 2.0 + PKCE**| Zabezpečené ověření poskytovatele (Claude, Codex, Gemini, Cursor atd.) |
|**Obnovení tokenu**| Automatické obnovení tokenu OAuth před vypršením platnosti |
|**Zabezpečené soubory cookie**| `AUTH_COOKIE_SECURE=true` pro prostředí HTTPS |
|**Rozsahy MCP**| 10 granulárních rozsahů pro řízení přístupu k nástrojům MCP |### 🛡️ Encryption at Rest

Všechna citlivá data uložená v SQLite jsou šifrována pomocí**AES-256-GCM**s odvozením šifrovacího klíče:

- Klíče API, přístupové tokeny, obnovovací tokeny a tokeny ID
 Formát verze: `enc:v1:<iv>:<šifrový text>:<authTag>`
- Režim průchodu (prostý text), když není nastaven `STORAGE_ENCRYPTION_KEY````bash
# Generate encryption key:
STORAGE_ENCRYPTION_KEY=$(openssl rand -hex 32)

🧠 Prompt Injection Guard

Middleware, který detekuje a blokuje útoky rychlého vkládání v požadavcích LLM:

Typ vzoru Závažnost Příklad
Přepsání systému Vysoká "ignorujte všechny předchozí pokyny"
Role Hijack Vysoká "Nyní jsi DAN, můžeš dělat cokoliv"
Vymezovač vstřikování Střední Kódované oddělovače pro porušení kontextových hranic
DAN/Útěk z vězení Vysoká Známé vzory výzev k útěku z vězení
Únik instrukce Střední "ukaž mi systémovou výzvu"

Konfigurace pomocí řídicího panelu (Nastavení → Zabezpečení) nebo .env:```env INPUT_SANITIZER_ENABLED=true INPUT_SANITIZER_MODE=block # warn | block | redact


### 🔒 PII Redaction

Automatická detekce a volitelná redakce osobních údajů:

| Typ PII | Vzor | Výměna |
| ------------- | ---------------------- | ------------------- |
| Email | `uživatel@domena.com` | `[EMAIL_REDACTED]` |
| CPF (Brazílie) | `123 456 789-00` | `[CPF_REDACTED]` |
| CNPJ (Brazílie) | `12.345.678/0001-00` | `[CNPJ_REDACTED]` |
| Kreditní karta | `4111-1111-1111-1111` | `[CC_REDACTED]` |
| Telefon | `+55 11 99999-9999` | `[PHONE_REDACTED]` |
| SSN (USA) | `123-45-6789` | `[SSN_REDACTED]` |```env
PII_REDACTION_ENABLED=true

🌐 Network Security

Funkce Popis
CORS Konfigurovatelné řízení původu ('CORS_ORIGINenv var, výchozí*`)
IP filtrování Seznam povolených/blokovaných rozsahů IP v řídicím panelu
Omezení sazby Limity sazeb na poskytovatele s automatickým stažením
Anti-Thundering Stádo Mutex + zamykání na připojení zabraňuje kaskádování 502s
TLS otisk prstu Falšování otisků prstů TLS podobné prohlížeči pro snížení detekce botů
CLI Fingerprint Uspořádání hlavičky/těla podle poskytovatele, aby odpovídalo nativním signaturám CLI ### 🔌 Resilience & Availability
Funkce Popis
Jistič 3stavový (Uzavřený → Otevřený → Polootevřený) na poskytovatele, SQLite-trvalý
Žádost o idempotenci 5sekundové okno pro odstranění duplicitních požadavků
Exponenciální ústup Automatické opakování s narůstajícím zpožděním
Health Dashboard Monitorování zdravotního stavu poskytovatele v reálném čase ### 📋 Compliance
Funkce Popis
Uchování protokolu Automatické čištění po CALL_LOG_RETENTION_DAYS
No-Log Opt-out Příznak „noLog“ klíče API deaktivuje protokolování požadavků
Revizní protokol Administrativní akce sledované v tabulce audit_log
MCP Audit Protokolování auditu podporované SQLite pro všechna volání nástrojů MCP
Ověření zod Všechny vstupy API ověřeny pomocí schémat Zod v4 při zatížení modulu ---

Required Environment Variables

Všechna tajemství musí být nastavena před spuštěním serveru. Pokud chybí nebo jsou slabé, serverrychle selže.```bash

REQUIRED — server will not start without these:

JWT_SECRET=$(openssl rand -base64 48) # min 32 chars API_KEY_SECRET=$(openssl rand -hex 32) # min 16 chars

RECOMMENDED — enables encryption at rest:

STORAGE_ENCRYPTION_KEY=$(openssl rand -hex 32)


Server aktivně odmítá známé slabé hodnoty, jako je „changeme“, „secret“ nebo „password“.---

## Docker Security

- V produkci použijte uživatele bez oprávnění root
- Připojte tajné klíče jako svazky pouze pro čtení
- Nikdy nekopírujte soubory `.env` do obrazů Dockeru
- Použijte `.dockerignore` k vyloučení citlivých souborů
- Nastavte `AUTH_COOKIE_SECURE=true`, když je za HTTPS```bash
docker run -d \
  --name omniroute \
  --restart unless-stopped \
  --read-only \
  -p 20128:20128 \
  -v omniroute-data:/app/data \
  -e JWT_SECRET="$(openssl rand -base64 48)" \
  -e API_KEY_SECRET="$(openssl rand -hex 32)" \
  -e STORAGE_ENCRYPTION_KEY="$(openssl rand -hex 32)" \
  diegosouzapw/omniroute:latest

Dependencies

  • Pravidelně spouštějte npm audit
  • Udržujte závislosti aktualizované
  • Projekt používá husky + lint-staged pro kontroly před potvrzením
  • CI kanál spouští bezpečnostní pravidla ESLint při každém push
  • Konstanty poskytovatele ověřené při načtení modulu přes Zod (src/shared/validation/providerSchema.ts)