🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇧🇦 bs · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
OmniRoute ನಲ್ಲಿ ನೀವು ಭದ್ರತಾ ದುರ್ಬಲತೆಯನ್ನು ಕಂಡುಹಿಡಿದರೆ, ದಯವಿಟ್ಟು ಅದನ್ನು ಜವಾಬ್ದಾರಿಯುತವಾಗಿ ವರದಿ ಮಾಡಿ:
- ಸಾರ್ವಜನಿಕ GitHub ಸಮಸ್ಯೆಯನ್ನು ತೆರೆಯಬೇಡಿ
- GitHub Security Advisories ಬಳಸಿ
- ಇವುಗಳನ್ನು ಸೇರಿಸಿ: ವಿವರಣೆ, ಮರುಸೃಷ್ಟಿಸುವ ಹಂತಗಳು ಮತ್ತು ಸಂಭಾವ್ಯ ಪರಿಣಾಮ
| ಹಂತ | ಗುರಿ |
|---|---|
| ಸ್ವೀಕೃತಿಯ ದೃಢೀಕರಣ | 48 ಗಂಟೆಗಳು |
| ವರ್ಗೀಕರಣ ಮತ್ತು ಮೌಲ್ಯಮಾಪನ | 5 ವ್ಯವಹಾರಿಕ ದಿನಗಳು |
| ಪ್ಯಾಚ್ ಬಿಡುಗಡೆ | 14 ವ್ಯವಹಾರಿಕ ದಿನಗಳು (ನಿರ್ಣಾಯಕ) |
| ಆವೃತ್ತಿ | ಬೆಂಬಲದ ಸ್ಥಿತಿ |
|---|---|
| 3.9.x | 🗓️ ಯೋಜಿಸಲಾಗಿದೆ — LTS ಶಾಖೆ (stable/v3), ಕೆಳಗೆ ನೋಡಿ |
| 3.8.x | ✅ ಸಕ್ರಿಯ |
| 3.7.x | ✅ ಭದ್ರತೆ |
| < 3.7.0 | ❌ ಬೆಂಬಲಿತವಲ್ಲ |
3.8.59 ನಂತರದ ಮುಂದಿನ ಆವೃತ್ತಿ 3.9.0 ಆಗಿದ್ದು, ಇದು stable/v3 ಶಾಖೆಯಲ್ಲಿ ದೀರ್ಘಾವಧಿಯ ಬೆಂಬಲ ಸರಣಿಯನ್ನು ತೆರೆಯುತ್ತದೆ (ROADMAP.md → "ಹಂತ 3 — v3.9.0 LTS" ನೋಡಿ).
stable/v3ಏನನ್ನು ಪಡೆಯುತ್ತದೆ: ದೋಷ ಪರಿಹಾರಗಳು, ಭದ್ರತಾ ಪ್ಯಾಚ್ಗಳು ಮತ್ತು ಪೂರೈಕೆದಾರ ನವೀಕರಣಗಳು. ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳು v4 ಚಾನಲ್ಗೆ ಹೋಗುತ್ತವೆ; LTS ಸರಣಿಯಲ್ಲಿ ಸ್ಥಿರತೆಗೆ ಮೊದಲ ಆದ್ಯತೆ ನೀಡಲಾಗುತ್ತದೆ. ಸಂಪೂರ್ಣ v4 ಚಕ್ರದ ಅವಧಿಯಲ್ಲಿnpm install omniroute(latestdist-tag) v3 ನಲ್ಲಿಯೇ ಉಳಿಯುತ್ತದೆ.- ಅವಧಿಯ ಉದ್ದ: 3.9.0 ಬಿಡುಗಡೆಯಾದ ನಂತರದ 12 ತಿಂಗಳುಗಳವರೆಗೆ ಅಥವಾ v4.0.0 ಅನ್ನು
latestಆಗಿ ಪ್ರಕಟಿಸಿದ ನಂತರದ 90 ದಿನಗಳವರೆಗೆstable/v3ಭದ್ರತಾ ಪರಿಹಾರಗಳು ಮತ್ತು ಗಂಭೀರ ರಿಗ್ರೆಷನ್ಗಳನ್ನು ಪಡೆಯುತ್ತದೆ — ಇವುಗಳಲ್ಲಿ ಯಾವುದು ನಂತರವೋ ಅಲ್ಲಿಯವರೆಗೆ. ಬಿಡುಗಡೆಯಾದಾಗ, ಅದರಿಂದ ನಿರ್ಧಾರವಾಗುವ ಅಂತಿಮ ದಿನಾಂಕವನ್ನು 3.9.0 ಬಿಡುಗಡೆ ಟಿಪ್ಪಣಿಗಳಲ್ಲಿ ಮತ್ತುROADMAP.mdನಲ್ಲಿ ದಾಖಲಿಸಲಾಗುತ್ತದೆ. - LTS ಸರಣಿಯಲ್ಲಿನ ದುರ್ಬಲತೆಯನ್ನು ವರದಿ ಮಾಡುವುದು: ಇತರ ಯಾವುದೇ ಆವೃತ್ತಿಗೆ ಬಳಸುವ ಅದೇ ಚಾನಲ್ — ಖಾಸಗಿ GitHub Security Advisory, ಸಾರ್ವಜನಿಕ issue ಎಂದಿಗೂ ಬೇಡ. ನೀವು ಯಾವ ಆವೃತ್ತಿಯನ್ನು ಪರೀಕ್ಷಿಸಿದ್ದೀರಿ ಎಂಬುದನ್ನು ತಿಳಿಸಿ (ಉದಾಹರಣೆಗೆ
3.9.2); ಪರಿಹಾರಗಳನ್ನುstable/v3ಗೆ ಸೇರಿಸಿ, ನಂತರ v4 ಗೆ forward-port ಮಾಡಲಾಗುತ್ತದೆ. - LTS ಬಿಡುಗಡೆಯ ಸಮಯದ ಭದ್ರತಾ ಮೂಲಮಟ್ಟ: ಮಾಪನ ಮಾಡಿದ ಸ್ಕ್ಯಾನರ್ ಸ್ಥಿತಿ, route-guard ಮತ್ತು ಸಾರ್ವಜನಿಕ-ರುಜುವಾತುಗಳ ಪುರಾವೆಗಳನ್ನು
docs/security/LTS_SECURITY_BASELINE.mdನಲ್ಲಿ ದಾಖಲಿಸಲಾಗುತ್ತದೆ.
OmniRoute ಬಹು-ಪದರದ ಭದ್ರತಾ ಮಾದರಿಯನ್ನು ಅನುಷ್ಠಾನಗೊಳಿಸುತ್ತದೆ:
ವಿನಂತಿ → CORS → Authz ಪೈಪ್ಲೈನ್ (ವರ್ಗೀಕರಿಸು → ನೀತಿಗಳು → ಜಾರಿಗೊಳಿಸು)
→ ರಕ್ಷಣಾ ಮಿತಿಗಳು (PII ಮರೆಮಾಚುವಿಕೆ, ಪ್ರಾಂಪ್ಟ್ ಇಂಜೆಕ್ಷನ್, ವಿಷನ್ ಬ್ರಿಡ್ಜ್)
→ ದರ ಮಿತಿಗೊಳಿಸುವಿಕೆ → ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ → ಕೂಲ್ಡೌನ್ → ಮಾದರಿ ಲಾಕ್ಔಟ್ → ಪೂರೈಕೆದಾರ
| ವೈಶಿಷ್ಟ್ಯ | ಅನುಷ್ಠಾನ |
|---|---|
| ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಲಾಗಿನ್ | JWT ಟೋಕನ್ಗಳೊಂದಿಗಿನ ಪಾಸ್ವರ್ಡ್ ಆಧಾರಿತ ದೃಢೀಕರಣ (HttpOnly ಕುಕಿಗಳು) |
| API ಕೀ ದೃಢೀಕರಣ | CRC ಮೌಲ್ಯೀಕರಣದೊಂದಿಗಿನ HMAC-ಸಹಿ ಮಾಡಿದ ಕೀಗಳು |
| OAuth 2.0 + PKCE | ಪೂರೈಕೆದಾರ-ನಿರ್ದಿಷ್ಟ ಬ್ರೌಸರ್/ಸಾಧನ OAuth, ಬೆಂಬಲವಿರುವಲ್ಲಿ PKCE ಬಳಸುತ್ತದೆ; ಆಮದು-ಮಾತ್ರದ Devin ಕ್ರೆಡೆನ್ಶಿಯಲ್ಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ. |
| ಟೋಕನ್ ರಿಫ್ರೆಶ್ | ಅವಧಿ ಮುಗಿಯುವ ಮೊದಲು ಸ್ವಯಂಚಾಲಿತ OAuth ಟೋಕನ್ ರಿಫ್ರೆಶ್ |
| ಸುರಕ್ಷಿತ ಕುಕಿಗಳು | HTTPS ಪರಿಸರಗಳಿಗಾಗಿ AUTH_COOKIE_SECURE=true |
| Authz ಪೈಪ್ಲೈನ್ | ರೂಟ್ ವರ್ಗೀಕರಣ (PUBLIC / CLIENT_API / MANAGEMENT) — docs/architecture/AUTHZ_GUIDE.md ನೋಡಿ |
| ರೂಟ್ ಗಾರ್ಡ್ ಹಂತಗಳು | ನಿರ್ವಹಣಾ ರೂಟ್ಗಳಿಗಾಗಿ 3-ಹಂತದ ಮಾದರಿ (LOCAL_ONLY / ALWAYS_PROTECTED / MANAGEMENT) — docs/security/ROUTE_GUARD_TIERS.md ನೋಡಿ |
| ನಿರ್ವಹಣೆ-ವ್ಯಾಪ್ತಿಯ MCP | manage ವ್ಯಾಪ್ತಿಯ API ಕೀಗಳಿಂದ ರಕ್ಷಿಸಲಾದ ದೂರಸ್ಥ /api/mcp/* ಪ್ರವೇಶ; /api/cli-tools/runtime/* ಕಟ್ಟುನಿಟ್ಟಾದ ಲೂಪ್ಬ್ಯಾಕ್ ಆಗಿಯೇ ಉಳಿಯುತ್ತದೆ. ROUTE_GUARD_TIERS ನೋಡಿ |
| MCP ವ್ಯಾಪ್ತಿಗಳು | 32 ಸೂಕ್ಷ್ಮ-ವಿಭಜಿತ ವ್ಯಾಪ್ತಿಗಳು (read:health, write:combos, execute:completions, ಇತ್ಯಾದಿ) — docs/frameworks/MCP-SERVER.md ನೋಡಿ |
SQLite ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾದ ಎಲ್ಲ ಸೂಕ್ಷ್ಮ ದತ್ತಾಂಶವನ್ನು scrypt ಕೀ ವ್ಯುತ್ಪತ್ತಿಯೊಂದಿಗೆ AES-256-GCM ಬಳಸಿ ಗೂಢಲಿಪೀಕರಿಸಲಾಗುತ್ತದೆ:
- API ಕೀಗಳು, ಪ್ರವೇಶ ಟೋಕನ್ಗಳು, ರಿಫ್ರೆಶ್ ಟೋಕನ್ಗಳು ಮತ್ತು ID ಟೋಕನ್ಗಳು
- ಆವೃತ್ತಿಗೊಳಿಸಿದ ಸ್ವರೂಪ:
enc:v1:<iv>:<ciphertext>:<authTag> STORAGE_ENCRYPTION_KEYಹೊಂದಿಸದಿದ್ದಾಗ ಪಾಸ್ಥ್ರೂ ಮೋಡ್ (ಸರಳ ಪಠ್ಯ)
# ಗೂಢಲಿಪೀಕರಣ ಕೀಯನ್ನು ರಚಿಸಿ:
STORAGE_ENCRYPTION_KEY=$(openssl rand -hex 32)OmniRoute ಆದ್ಯತೆಯ ಪ್ರಕಾರ ಕ್ರಮಗೊಳಿಸಲಾದ 3 ಅಂತರ್ನಿರ್ಮಿತ ರಕ್ಷಣಾ ಮಿತಿಗಳೊಂದಿಗೆ ಹಾಟ್-ರೀಲೋಡ್ ಮಾಡಬಹುದಾದ ರಕ್ಷಣಾ ಮಿತಿಗಳ ರಿಜಿಸ್ಟ್ರಿಯನ್ನು (src/lib/guardrails/) ಒದಗಿಸುತ್ತದೆ:
| ರಕ್ಷಣಾ ಮಿತಿ | ಆದ್ಯತೆ | ಉದ್ದೇಶ |
|---|---|---|
vision-bridge |
5 | ಚಿತ್ರ-ಅರಿವಿನ ವಿವರಣೆಗಳೊಂದಿಗೆ ವಿಷನ್-ರಹಿತ ಮಾದರಿಗಳನ್ನು ಸಂಪರ್ಕಿಸುತ್ತದೆ; ಚಿತ್ರದ URL ಗಳಿಗೆ SSRF ರಕ್ಷಣೆ |
pii-masker |
10 | ಕರೆಗೂ ಮುನ್ನ+ನಂತರ PII ಮರೆಮಾಡುವಿಕೆ (ಇಮೇಲ್ಗಳು, ಫೋನ್, CPF, CNPJ, ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್ಗಳು, SSN) |
prompt-injection |
20 | ಅತಿಕ್ರಮಣ/ಪಾತ್ರ-ಅಪಹರಣ/jailbreak/ಸೋರಿಕೆ ಮಾದರಿಗಳನ್ನು ಪತ್ತೆ ಮಾಡುತ್ತದೆ |
ಕಸ್ಟಮ್ ರಕ್ಷಣಾ ಮಿತಿಗಳು registerGuardrail(new MyGuardrail()) ಮೂಲಕ ನೋಂದಾಯಿಸಲ್ಪಡುತ್ತವೆ. ಮಾದರಿಯು fail-open ಆಗಿದೆ (ವಿನಾಯಿತಿಗಳು ಎಂದಿಗೂ ಸಂಚಾರವನ್ನು ನಿರ್ಬಂಧಿಸುವುದಿಲ್ಲ). ಪ್ರತಿ ವಿನಂತಿಗೆ x-omniroute-disabled-guardrails ಹೆಡರ್ ಮೂಲಕ ಹೊರಗುಳಿಯಬಹುದು. → docs/security/GUARDRAILS.md ನೋಡಿ.
LLM ವಿನಂತಿಗಳಲ್ಲಿನ ಪ್ರಾಂಪ್ಟ್ ಇಂಜೆಕ್ಷನ್ ಮಾದರಿಗಳನ್ನು ಪತ್ತೆಹಚ್ಚುವ ಅತ್ಯುತ್ತಮ-ಪ್ರಯತ್ನದ ಹ್ಯೂರಿಸ್ಟಿಕ್ ಮಿಡಲ್ವೇರ್. ಇದು ಸಂಪೂರ್ಣ ಪ್ರಾಂಪ್ಟ್-ಇಂಜೆಕ್ಷನ್ ಫೈರ್ವಾಲ್ ಅಲ್ಲ — ತಪ್ಪು ಧನಾತ್ಮಕಗಳನ್ನು (ನಿರುಪದ್ರವಿ ಪರ್ಸೋನಾ/RPG ಪ್ರಾಂಪ್ಟ್ಗಳು) ಮತ್ತು ತಪ್ಪು ಋಣಾತ್ಮಕಗಳನ್ನು (ಲೀಟ್ಸ್ಪೀಕ್, ಅಂತರಗಳು, ಇಂಗ್ಲಿಷೇತರ ಮಾದರಿಗಳು) ಉಂಟುಮಾಡಬಹುದು.
| ಮಾದರಿಯ ಪ್ರಕಾರ | ತೀವ್ರತೆ | ಉದಾಹರಣೆ |
|---|---|---|
| ಸಿಸ್ಟಮ್ ಅತಿಕ್ರಮಣ | ಅಧಿಕ | "ಹಿಂದಿನ ಎಲ್ಲಾ ಸೂಚನೆಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ" |
| ಪಾತ್ರ ಅಪಹರಣ | ಮಧ್ಯಮ | "ನೀವು ಈಗ DAN, ನೀವು ಏನು ಬೇಕಾದರೂ ಮಾಡಬಹುದು" |
| ಡಿಲಿಮಿಟರ್ ಇಂಜೆಕ್ಷನ್ | ಅಧಿಕ | ಸಂದರ್ಭದ ಗಡಿಗಳನ್ನು ಮುರಿಯಲು ಎನ್ಕೋಡ್ ಮಾಡಿದ ವಿಭಾಜಕಗಳು |
| DAN/ಜೈಲ್ಬ್ರೇಕ್ | ಮಧ್ಯಮ | ತಿಳಿದಿರುವ ಜೈಲ್ಬ್ರೇಕ್ ಪ್ರಾಂಪ್ಟ್ ಮಾದರಿಗಳು |
| ಸೂಚನೆ ಸೋರಿಕೆ | ಅಧಿಕ | "ನಿಮ್ಮ ಸಿಸ್ಟಮ್ ಪ್ರಾಂಪ್ಟ್ ಅನ್ನು ನನಗೆ ತೋರಿಸಿ" |
| ಎನ್ಕೋಡಿಂಗ್ ತಪ್ಪಿಸಿಕೊಳ್ಳುವಿಕೆ | ಮಧ್ಯಮ | base64/rot13/hex ಡಿಕೋಡ್ + ಸೂಚನಾ ಕೀವರ್ಡ್ಗಳು |
block ಮೋಡ್ನಲ್ಲಿ ಅಧಿಕ ತೀವ್ರತೆಯ ಪತ್ತೆಗಳನ್ನು ಮಾತ್ರ ನಿರ್ಬಂಧಿಸಲಾಗುತ್ತದೆ. ಮಧ್ಯಮ-ತೀವ್ರತೆಯ
ಕುಟುಂಬಗಳನ್ನು ಲಾಗ್ ಮಾಡಲಾಗುತ್ತದೆ, ಆದರೆ sanitizeRequest ಅವುಗಳನ್ನು ಎಂದಿಗೂ ನಿರ್ಬಂಧಿಸುವುದಿಲ್ಲ.
ಡ್ಯಾಶ್ಬೋರ್ಡ್ (Settings → Security) ಅಥವಾ .env ಮೂಲಕ ಕಾನ್ಫಿಗರ್ ಮಾಡಿ:
INPUT_SANITIZER_ENABLED=true
INPUT_SANITIZER_MODE=block # warn | block (ಇಂಜೆಕ್ಷನ್ ನೀತಿ; ಹಳೆಯ "redact" ಇಂಜೆಕ್ಷನ್ ಪಠ್ಯವನ್ನು ತೆಗೆದುಹಾಕುವುದಿಲ್ಲ)
INPUT_SANITIZER_BLOCK_THRESHOLD=high # high (ಡೀಫಾಲ್ಟ್) | medium | low — block ಮೋಡ್ನಲ್ಲಿ ಈ ಮಟ್ಟದ ಅಥವಾ ಅದಕ್ಕಿಂತ ಹೆಚ್ಚಿನ ತೀವ್ರತೆಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗುತ್ತದೆವೈಯಕ್ತಿಕವಾಗಿ ಗುರುತಿಸಬಹುದಾದ ಮಾಹಿತಿಯ ಸ್ವಯಂಚಾಲಿತ ಪತ್ತೆ ಮತ್ತು ಐಚ್ಛಿಕ ಮರೆಮಾಚುವಿಕೆ:
| PII ಪ್ರಕಾರ | ಮಾದರಿ | ಬದಲಿ |
|---|---|---|
| ಇಮೇಲ್ | user@domain.com |
[EMAIL_REDACTED] |
| CPF (ಬ್ರೆಜಿಲ್) | 123.456.789-00 |
[CPF_REDACTED] |
| CNPJ (ಬ್ರೆಜಿಲ್) | 12.345.678/0001-00 |
[CNPJ_REDACTED] |
| ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್ | 4111-1111-1111-1111 |
[CC_REDACTED] |
| ಫೋನ್ | +55 11 99999-9999 |
[PHONE_REDACTED] |
| SSN (US) | 123-45-6789 |
[SSN_REDACTED] |
PII_REDACTION_ENABLED=true # ವಿನಂತಿಯ PII ಮರುಬರಹ; INPUT_SANITIZER_MODEನಿಂದ ಸ್ವತಂತ್ರ
PII_RESPONSE_SANITIZATION=true # ಐಚ್ಛಿಕ: ಕ್ಲೈಂಟ್ಗಳಿಗೆ ಹಿಂತಿರುಗಿಸಲಾದ ಪೂರೈಕೆದಾರರ ಪ್ರತಿಕ್ರಿಯೆಗಳಲ್ಲಿನ PII ಅನ್ನು ಮರೆಮಾಚಿ| ವೈಶಿಷ್ಟ್ಯ | ವಿವರಣೆ |
|---|---|
| CORS | ಸ್ಪಷ್ಟವಾದ ಕ್ರಾಸ್-ಒರಿಜಿನ್ ಅನುಮತಿಪಟ್ಟಿ (CORS_ALLOWED_ORIGINS; ಹಳೆಯ CORS_ORIGIN) |
| IP ಫಿಲ್ಟರಿಂಗ್ | ಡ್ಯಾಶ್ಬೋರ್ಡ್ನಲ್ಲಿನ ಅನುಮತಿಪಟ್ಟಿ/ನಿರ್ಬಂಧಪಟ್ಟಿ IP ವ್ಯಾಪ್ತಿಗಳು |
| ದರ ಮಿತಿಗೊಳಿಸುವಿಕೆ | ಸ್ವಯಂಚಾಲಿತ ಬ್ಯಾಕ್ಆಫ್ನೊಂದಿಗೆ ಪ್ರತಿ ಪೂರೈಕೆದಾರರ ದರ ಮಿತಿಗಳು |
| ಆಂಟಿ-ಥಂಡರಿಂಗ್ ಹರ್ಡ್ | ಮ್ಯೂಟೆಕ್ಸ್ + ಪ್ರತಿ-ಸಂಪರ್ಕ ಲಾಕಿಂಗ್ ಅನುಕ್ರಮವಾದ 502 ದೋಷಗಳನ್ನು ತಡೆಯುತ್ತದೆ |
| TLS ಫಿಂಗರ್ಪ್ರಿಂಟ್ | ಬಾಟ್ ಪತ್ತೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಬ್ರೌಸರ್ನಂತಹ TLS ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಸ್ಪೂಫಿಂಗ್ |
| CLI ಫಿಂಗರ್ಪ್ರಿಂಟ್ | ಸ್ಥಳೀಯ CLI ಸಿಗ್ನೇಚರ್ಗಳಿಗೆ ಹೊಂದಿಸಲು ಪ್ರತಿ ಪೂರೈಕೆದಾರರ ಹೆಡರ್/ಬಾಡಿ ಕ್ರಮ |
| ವೈಶಿಷ್ಟ್ಯ | ವಿವರಣೆ |
|---|---|
| ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ | ಪ್ರತಿ ಪೂರೈಕೆದಾರರಿಗೆ 3-ಸ್ಥಿತಿ (ಮುಚ್ಚಿದ → ತೆರೆದ → ಅರ್ಧ-ತೆರೆದ), SQLiteನಲ್ಲಿ ಶಾಶ್ವತವಾಗಿ ಸಂಗ್ರಹಿತ |
| ವಿನಂತಿ ಐಡೆಂಪೊಟೆನ್ಸಿ | ನಕಲಿ ವಿನಂತಿಗಳಿಗೆ 5-ಸೆಕೆಂಡ್ ಡೀಡ್ಯೂಪ್ ಅವಧಿ |
| ಘಾತೀಯ ಬ್ಯಾಕ್ಆಫ್ | ಹೆಚ್ಚುತ್ತಿರುವ ವಿಳಂಬಗಳೊಂದಿಗೆ ಸ್ವಯಂಚಾಲಿತ ಮರುಪ್ರಯತ್ನ |
| ಆರೋಗ್ಯ ಡ್ಯಾಶ್ಬೋರ್ಡ್ | ಪೂರೈಕೆದಾರರ ಆರೋಗ್ಯದ ನೈಜ-ಸಮಯ ಮೇಲ್ವಿಚಾರಣೆ |
| ವೈಶಿಷ್ಟ್ಯ | ವಿವರಣೆ |
|---|---|
| ಲಾಗ್ ಉಳಿಕೆ | CALL_LOG_RETENTION_DAYS ನಂತರ ಸ್ವಯಂಚಾಲಿತ ಸ್ವಚ್ಛಗೊಳಿಸುವಿಕೆ |
| ಲಾಗ್ ಮಾಡದಿರಲು ಆಯ್ಕೆ | ಪ್ರತಿ API ಕೀಲಿಯ noLog ಫ್ಲ್ಯಾಗ್ ವಿನಂತಿ ಲಾಗಿಂಗ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ |
| ಆಡಿಟ್ ಲಾಗ್ | audit_log ಕೋಷ್ಟಕದಲ್ಲಿ ಆಡಳಿತಾತ್ಮಕ ಕ್ರಿಯೆಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲಾಗುತ್ತದೆ |
| MCP ಆಡಿಟ್ | ಎಲ್ಲಾ MCP ಟೂಲ್ ಕರೆಗಳಿಗೆ SQLite-ಆಧಾರಿತ ಆಡಿಟ್ ಲಾಗಿಂಗ್ |
| Zod ಮೌಲ್ಯೀಕರಣ | ಮಾಡ್ಯೂಲ್ ಲೋಡ್ ಸಮಯದಲ್ಲಿ ಎಲ್ಲಾ API ಇನ್ಪುಟ್ಗಳನ್ನು Zod v4 ಸ್ಕೀಮಾಗಳೊಂದಿಗೆ ಮೌಲ್ಯೀಕರಿಸಲಾಗುತ್ತದೆ |
ಸರ್ವರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು ಎಲ್ಲಾ ರಹಸ್ಯಗಳನ್ನು ಹೊಂದಿಸಬೇಕು. ಅವು ಇಲ್ಲದಿದ್ದರೆ ಅಥವಾ ದುರ್ಬಲವಾಗಿದ್ದರೆ ಸರ್ವರ್ ತಕ್ಷಣವೇ ವಿಫಲಗೊಳ್ಳುತ್ತದೆ.
# ಅಗತ್ಯ — ಇವುಗಳಿಲ್ಲದೆ ಸರ್ವರ್ ಪ್ರಾರಂಭವಾಗುವುದಿಲ್ಲ:
JWT_SECRET=$(openssl rand -base64 48) # ಕನಿಷ್ಠ 32 ಅಕ್ಷರಗಳು
API_KEY_SECRET=$(openssl rand -hex 32) # ಕನಿಷ್ಠ 16 ಅಕ್ಷರಗಳು
# ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ — ಸಂಗ್ರಹಿತ ಸ್ಥಿತಿಯಲ್ಲಿರುವ ಡೇಟಾದ ಗೂಢಲಿಪೀಕರಣವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ:
STORAGE_ENCRYPTION_KEY=$(openssl rand -hex 32)changeme, secret, ಅಥವಾ password ನಂತಹ ದುರ್ಬಲವೆಂದು ತಿಳಿದಿರುವ ಮೌಲ್ಯಗಳನ್ನು ಸರ್ವರ್ ಸಕ್ರಿಯವಾಗಿ ತಿರಸ್ಕರಿಸುತ್ತದೆ.
- ಪ್ರೊಡಕ್ಷನ್ನಲ್ಲಿ root ಅಲ್ಲದ ಬಳಕೆದಾರರನ್ನು ಬಳಸಿ
- ರಹಸ್ಯಗಳನ್ನು ಓದಲು-ಮಾತ್ರದ ವಾಲ್ಯೂಮ್ಗಳಾಗಿ ಮೌಂಟ್ ಮಾಡಿ
.envಫೈಲ್ಗಳನ್ನು ಎಂದಿಗೂ Docker ಇಮೇಜ್ಗಳಿಗೆ ನಕಲಿಸಬೇಡಿ- ಸೂಕ್ಷ್ಮ ಫೈಲ್ಗಳನ್ನು ಹೊರಗಿಡಲು
.dockerignoreಬಳಸಿ - HTTPS ಹಿಂದೆ ಬಳಸುವಾಗ
AUTH_COOKIE_SECURE=trueಹೊಂದಿಸಿ
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:latestnpm auditಅನ್ನು ನಿಯಮಿತವಾಗಿ ಚಲಾಯಿಸಿ (npm run audit:depsಮುಖ್ಯ + electron ಅನ್ನು ಒಳಗೊಳ್ಳುತ್ತದೆ)- ಅವಲಂಬನೆಗಳನ್ನು ನವೀಕೃತವಾಗಿರಿಸಿ
- pre-commit ಪರಿಶೀಲನೆಗಳಿಗಾಗಿ ಪ್ರಾಜೆಕ್ಟ್
husky+lint-stagedಅನ್ನು ಬಳಸುತ್ತದೆ (lint-staged + check-docs-sync + check:any-budget:t11) - ಪ್ರತಿ pushನಲ್ಲೂ CI ಪೈಪ್ಲೈನ್ ESLint ಭದ್ರತಾ ನಿಯಮಗಳನ್ನು ಚಲಾಯಿಸುತ್ತದೆ (
no-eval,no-implied-eval,no-new-func= ದೋಷ) - Zod ಮೂಲಕ ಮಾಡ್ಯೂಲ್ ಲೋಡ್ ಆಗುವಾಗಲೇ ಪ್ರೊವೈಡರ್ ಸ್ಥಿರಾಂಕಗಳನ್ನು ಮೌಲ್ಯೀಕರಿಸಲಾಗುತ್ತದೆ (
src/shared/validation/schemas.ts) - ಪೂರ್ವನಿಯೋಜಿತವಾಗಿಯೇ ಸುರಕ್ಷಿತವಾಗಿರುವ ಲೈಬ್ರರಿಗಳನ್ನು ಬಳಸಲಾಗಿದೆ:
dompurify/isomorphic-dompurify(XSS),jose(JWT),better-sqlite3(ಪ್ಯಾರಾಮೀಟರೀಕೃತ ಕ್ವೆರಿಗಳಿಂದಾಗಿ SQLi ಅಪಾಯವಿಲ್ಲ),bcryptjs(ಪಾಸ್ವರ್ಡ್ ಹ್ಯಾಶಿಂಗ್)
ಈ ನಿಯಮಗಳನ್ನು ಟೂಲಿಂಗ್ ಮತ್ತು ಪರಿಶೀಲಕರು ಜಾರಿಗೊಳಿಸುತ್ತಾರೆ:
- ರಹಸ್ಯಗಳನ್ನು ಎಂದಿಗೂ commit ಮಾಡಬೇಡಿ —
.envಅನ್ನು gitignore ಮಾಡಲಾಗಿದೆ;.env.exampleಟೆಂಪ್ಲೇಟ್ ಆಗಿದೆ (ಲಿಟರಲ್ಗಳಿಲ್ಲ, ಕಾಮೆಂಟ್ಗಳು ಮಾತ್ರ — ಕೆಳಗಿನ PUBLIC_CREDS.md ನೋಡಿ) eval(),new Function(), ಅಥವಾ ಸೂಚಿತ eval ಅನ್ನು ಎಂದಿಗೂ ಬಳಸಬೇಡಿ — ESLint ಇದನ್ನು ಜಾರಿಗೊಳಿಸುತ್ತದೆ- ಸ್ಪಷ್ಟ ನಿರ್ವಾಹಕ ಅನುಮೋದನೆಯಿಲ್ಲದೆ Husky hookಗಳನ್ನು ಎಂದಿಗೂ ಬೈಪಾಸ್ ಮಾಡಬೇಡಿ (
--no-verify,--no-gpg-sign) - routeಗಳಲ್ಲಿ ನೇರ SQL ಅನ್ನು ಎಂದಿಗೂ ಬರೆಯಬೇಡಿ — ಯಾವಾಗಲೂ
src/lib/db/ಮೂಲಕ ಹೋಗಿ (ಪ್ಯಾರಾಮೀಟರೀಕೃತ) - Zod ಮೂಲಕ ಇನ್ಪುಟ್ಗಳನ್ನು ಯಾವಾಗಲೂ ಮೌಲ್ಯೀಕರಿಸಿ —
src/shared/validation/schemas.ts - upstream headerಗಳನ್ನು ಯಾವಾಗಲೂ ಸ್ವಚ್ಛಗೊಳಿಸಿ —
src/shared/constants/upstreamHeaders.tsನಲ್ಲಿರುವ denylist - ಸಂಗ್ರಹಿತ ಸ್ಥಿತಿಯಲ್ಲಿರುವ ರುಜುವಾತುಗಳನ್ನು ಗೂಢಲಿಪೀಕರಿಸಿ —
src/lib/db/encryption.tsಮೂಲಕ AES-256-GCM resolvePublicCred()ಮೂಲಕ ಸಾರ್ವಜನಿಕ upstream OAuth ಗುರುತಿಸುವಿಕೆಗಳು —AIza…/GOCSPX-…/…apps.googleusercontent.comಲಿಟರಲ್ಗಳನ್ನು sourceನಲ್ಲಿ ಎಂದಿಗೂ ಎಂಬೆಡ್ ಮಾಡಬೇಡಿ.docs/security/PUBLIC_CREDS.mdನೋಡಿ.buildErrorBody()/sanitizeErrorMessage()ಮೂಲಕ ದೋಷ ಪ್ರತಿಕ್ರಿಯೆಗಳು — HTTP / SSE / executor / MCP ಪ್ರತಿಕ್ರಿಯೆ bodyಗಳಲ್ಲಿ ಕಚ್ಚಾerr.stack/err.messageಅನ್ನು ಎಂದಿಗೂ ಸೇರಿಸಬೇಡಿ.docs/security/ERROR_SANITIZATION.mdನೋಡಿ.envಆಯ್ಕೆಯ ಮೂಲಕexec()/spawn()ರನ್ಟೈಮ್ ಮೌಲ್ಯಗಳು — ಬಾಹ್ಯ pathಗಳು ಅಥವಾ ವಿಶ್ವಾಸಾರ್ಹವಲ್ಲದ ಮೌಲ್ಯಗಳನ್ನು shell ಮೂಲಕ ರವಾನಿಸಲಾದ scriptಗಳಿಗೆ ಎಂದಿಗೂ string-interpolate ಮಾಡಬೇಡಿ. ಉಲ್ಲೇಖ:src/mitm/cert/install.ts::updateNssDatabases.- ಪೂರ್ವನಿಯೋಜಿತವಾಗಿಯೇ ಸುರಕ್ಷಿತವಾಗಿರುವ ಲೈಬ್ರರಿಗಳಿಗೆ ಆದ್ಯತೆ ನೀಡಿ — tldrsec/awesome-secure-defaults ನೋಡಿ (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink). ನಿಮ್ಮದೇ ಪರಿಹಾರವನ್ನು ರೂಪಿಸುವ ಮೊದಲು ಅವುಗಳನ್ನು ಬಳಸಿ.
ವ್ಯಾಪ್ತಿಯ ಸೂಚನೆ: ರೆಪೊಸಿಟರಿಯ ಮೂಲದಲ್ಲಿರುವ
socket.yml, ಪ್ರಕಟಿಸಲಾದ npm ಆರ್ಟಿಫ್ಯಾಕ್ಟ್ನ Socket.dev ರಿಜಿಸ್ಟ್ರಿ-ಬದಿಯ ಪ್ರಕಟಣೆ-ನಂತರದ ಸ್ಕ್ಯಾನ್ಗಾಗಿprojectIgnorePathsಅನ್ನು ಮಾತ್ರ ರೂಪಿಸುತ್ತದೆ — ಇದು ಕಡ್ಡಾಯವಾಗಿ ಜಾರಿಗೊಳಿಸಲಾದ CI/PR ವಿಲೀನ ಗೇಟ್ ಅಲ್ಲ..github/workflowsನಲ್ಲಿನ ಯಾವುದೇ ವರ್ಕ್ಫ್ಲೋ, ಯಾವುದೇpackage.jsonಸ್ಕ್ರಿಪ್ಟ್ ಮತ್ತು ಯಾವುದೇMakefileಟಾರ್ಗೆಟ್ Socket.dev ಅನ್ನು ಆಹ್ವಾನಿಸುವುದಿಲ್ಲ.
ಪ್ರಕಟಿಸಲಾದ omniroute npm ಆರ್ಟಿಫ್ಯಾಕ್ಟ್ Next.js ನ output: "standalone"
ಬಿಲ್ಡ್ ಅನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ; ಇದರರ್ಥ ದಾಖಲಿತ ವಿಶೇಷಾಧಿಕಾರದ
ವೈಶಿಷ್ಟ್ಯಗಳು (MITM, Zed ಆಮದು, Cloud Sync, ಎಂಬೆಡೆಡ್ ಸೇವಾ ಮೇಲ್ವಿಚಾರಕ) ಸೇರಿದಂತೆ ಪ್ರತಿಯೊಂದು ರೂಟ್ ಹ್ಯಾಂಡ್ಲರ್
.next/server/*.js ಮಿನಿಫೈಡ್ ಚಂಕ್ಗಳಲ್ಲಿ ಸೇರುತ್ತದೆ. ಹ್ಯೂರಿಸ್ಟಿಕ್ ಪೂರೈಕೆ-ಸರಪಳಿ ಸ್ಕ್ಯಾನರ್ಗಳು
ಆ ಚಂಕ್ಗಳನ್ನು ಮಾಲ್ವೇರ್ ಸಿಗ್ನೇಚರ್ಗಳೊಂದಿಗೆ ಆಗಾಗ್ಗೆ ಪ್ಯಾಟರ್ನ್-ಮ್ಯಾಚ್ ಮಾಡುತ್ತವೆ.
ನಾವು ಬಳಸುವ ಸ್ಕ್ಯಾನರ್ ಕಾನ್ಫಿಗರೇಶನ್ ರೆಪೊಸಿಟರಿಯ ಮೂಲದಲ್ಲಿರುವ
socket.yml ನಲ್ಲಿದೆ (Socket.dev GitHub App ಫಾರ್ಮ್ಯಾಟ್ v2 — ನೋಡಿ
https://docs.socket.dev/docs/socket-yml). ಇದು ರವಾನೆಯಾಗದ
ಡೈರೆಕ್ಟರಿಗಳನ್ನು (tests/, _tasks/, _references/, _ideia/,
_mono_repo/, docs/, ಇತ್ಯಾದಿ) ಸ್ಪಷ್ಟವಾಗಿ ಹೊರಗಿಡುತ್ತದೆ; ಆದ್ದರಿಂದ ಸ್ಕ್ಯಾನರ್ ವಾಸ್ತವವಾಗಿ
ಪ್ರಕಟಿತ ಬಳಕೆದಾರರನ್ನು ತಲುಪುವ ಕೋಡ್ ಪಥಗಳ ಬಗ್ಗೆ ಮಾತ್ರ ವರದಿ ಮಾಡುತ್ತದೆ — ಸ್ಕ್ಯಾನ್ ಅನ್ನು ಈ
ರೆಪೊಸಿಟರಿಯ ವರ್ಕ್ಫ್ಲೋ ನಡೆಸುವುದಿಲ್ಲ, ಬದಲಾಗಿ ಆ ಫೈಲ್ ಅನ್ನು ಓದುವ Socket
GitHub App ನಡೆಸುತ್ತದೆ.
ಪ್ರತಿಯೊಂದು ಪತ್ತೆ ವರ್ಗಕ್ಕೂ ನಾವು ಪ್ರತಿ-ಪತ್ತೆಯ ನಿರ್ವಹಣಾಕಾರರ ದೃಢೀಕರಣವನ್ನು ನಿರ್ವಹಿಸುತ್ತೇವೆ:
docs/security/SOCKET_DEV_FINDINGS.md— ಪ್ರತಿ-ಪತ್ತೆಯ ನಕ್ಷೆ: ಮೂಲ ಫೈಲ್ ↔ ಫ್ಲ್ಯಾಗ್ ಮಾಡಲಾದ ಚಂಕ್ ↔ ವರ್ತನೆ ↔ v3.8.6 ನಲ್ಲಿ ಅನ್ವಯಿಸಲಾದ ಶಮನ ಕ್ರಮ.- ಫ್ಲ್ಯಾಗ್ ಮಾಡಲಾದ ಪ್ರತಿಯೊಂದು ಫಂಕ್ಷನ್ನಲ್ಲಿರುವ ಇನ್-ಸೋರ್ಸ್
SECURITY-AUDITOR-NOTE:ಬ್ಲಾಕ್ಗಳು ಅದೇ ಡಾಕ್ಯುಮೆಂಟ್ಗೆ ಮರಳಿ ಸೂಚಿಸುತ್ತವೆ.
ಅಲರ್ಟ್ ಅನ್ನು ಸಡಿಲಿಸಲಾಗದ ಪೈಪ್ಲೈನ್ ಹೊಂದಿರುವ ಬಳಕೆದಾರರು:
OMNIROUTE_BUILD_PROFILE=minimal npm run build ಬಳಸಿ ಬಿಲ್ಡ್ ಮಾಡಿ. ಇದು ನಾಲ್ಕು
ಸೂಕ್ಷ್ಮ ಮಾಡ್ಯೂಲ್ಗಳನ್ನು ರನ್ಟೈಮ್ನಲ್ಲಿ HTTP 503 feature-disabled ಅನ್ನು
ಹಿಂತಿರುಗಿಸುವ ಸ್ಟಬ್ಗಳಿಂದ ಬದಲಾಯಿಸುತ್ತದೆ; ಆದ್ದರಿಂದ ವಿಶೇಷಾಧಿಕಾರದ ಕೋಡ್ ಪಥಗಳು ಬಂಡಲ್ನಲ್ಲಿ
ಭೌತಿಕವಾಗಿ ಇರುವುದಿಲ್ಲ.
ಪ್ರಕಟಿಸುವ ವಿಧಾನಕ್ಕಾಗಿ docs/security/SOCKET_DEV_FINDINGS.md
ನೋಡಿ.
docs/architecture/AUTHZ_GUIDE.md— ಅಧಿಕಾರ ನೀಡುವ ಪೈಪ್ಲೈನ್docs/security/GUARDRAILS.md— ಗಾರ್ಡ್ರೇಲ್ಗಳ ಫ್ರೇಮ್ವರ್ಕ್docs/security/COMPLIANCE.md— ಆಡಿಟ್ ಲಾಗ್ ಮತ್ತು ಧಾರಣೆdocs/security/PUBLIC_CREDS.md— ಸಾರ್ವಜನಿಕ ಅಪ್ಸ್ಟ್ರೀಮ್ ರುಜುವಾತುಗಳಿಗಾಗಿ ಕಡ್ಡಾಯ ಪ್ಯಾಟರ್ನ್docs/security/ERROR_SANITIZATION.md— ದೋಷ ಪ್ರತಿಕ್ರಿಯೆಗಳಿಗಾಗಿ ಕಡ್ಡಾಯ ಪ್ಯಾಟರ್ನ್docs/security/SOCKET_DEV_FINDINGS.md— ಪೂರೈಕೆ-ಸರಪಳಿ ಸ್ಕ್ಯಾನರ್ ಪತ್ತೆಗಳಿಗಾಗಿ ನಿರ್ವಹಣಾಕಾರರ ದೃಢೀಕರಣdocs/architecture/RESILIENCE_GUIDE.md— ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ + ಕೂಲ್ಡೌನ್ + ಲಾಕ್ಔಟ್docs/security/STEALTH_GUIDE.md— TLS ಫಿಂಗರ್ಪ್ರಿಂಟಿಂಗ್ (ಕಾನೂನುಬದ್ಧ/ನೈತಿಕ ಸೂಚನೆ)CLAUDE.md— AI ಏಜೆಂಟ್ಗಳಿಗಾಗಿ ಕಟ್ಟುನಿಟ್ಟಿನ ನಿಯಮಗಳು- tldrsec/awesome-secure-defaults — ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಸುರಕ್ಷಿತವಾಗಿರುವ ಆಯ್ದ ಲೈಬ್ರರಿಗಳು