# Security Policy (Ελληνικά) 🌐 **Languages:** 🇺🇸 [English](../../../SECURITY.md) · 🇪🇹 [am](../am/SECURITY.md) · 🇸🇦 [ar](../ar/SECURITY.md) · 🇦🇿 [az](../az/SECURITY.md) · 🇧🇬 [bg](../bg/SECURITY.md) · 🇧🇩 [bn](../bn/SECURITY.md) · 🇧🇦 [bs](../bs/SECURITY.md) · 🇨🇿 [cs](../cs/SECURITY.md) · 🇩🇰 [da](../da/SECURITY.md) · 🇩🇪 [de](../de/SECURITY.md) · 🇪🇸 [es](../es/SECURITY.md) · 🇪🇪 [et](../et/SECURITY.md) · 🇮🇷 [fa](../fa/SECURITY.md) · 🇫🇮 [fi](../fi/SECURITY.md) · 🇫🇷 [fr](../fr/SECURITY.md) · 🇮🇪 [ga](../ga/SECURITY.md) · 🇮🇳 [gu](../gu/SECURITY.md) · 🇳🇬 [ha](../ha/SECURITY.md) · 🇮🇱 [he](../he/SECURITY.md) · 🇮🇳 [hi](../hi/SECURITY.md) · 🇭🇷 [hr](../hr/SECURITY.md) · 🇭🇺 [hu](../hu/SECURITY.md) · 🇦🇲 [hy](../hy/SECURITY.md) · 🇮🇩 [id](../id/SECURITY.md) · 🇳🇬 [ig](../ig/SECURITY.md) · 🇮🇹 [it](../it/SECURITY.md) · 🇯🇵 [ja](../ja/SECURITY.md) · 🇬🇪 [ka](../ka/SECURITY.md) · 🇰🇭 [km](../km/SECURITY.md) · 🇮🇳 [kn](../kn/SECURITY.md) · 🇰🇷 [ko](../ko/SECURITY.md) · 🇱🇹 [lt](../lt/SECURITY.md) · 🇱🇻 [lv](../lv/SECURITY.md) · 🇮🇳 [ml](../ml/SECURITY.md) · 🇮🇳 [mr](../mr/SECURITY.md) · 🇲🇾 [ms](../ms/SECURITY.md) · 🇲🇹 [mt](../mt/SECURITY.md) · 🇲🇲 [my](../my/SECURITY.md) · 🇳🇵 [ne](../ne/SECURITY.md) · 🇳🇱 [nl](../nl/SECURITY.md) · 🇳🇴 [no](../no/SECURITY.md) · 🇮🇳 [or](../or/SECURITY.md) · 🇮🇳 [pa](../pa/SECURITY.md) · 🇵🇭 [phi](../phi/SECURITY.md) · 🇵🇱 [pl](../pl/SECURITY.md) · 🇵🇹 [pt](../pt/SECURITY.md) · 🇧🇷 [pt-BR](../pt-BR/SECURITY.md) · 🇷🇴 [ro](../ro/SECURITY.md) · 🇷🇺 [ru](../ru/SECURITY.md) · 🇱🇰 [si](../si/SECURITY.md) · 🇸🇰 [sk](../sk/SECURITY.md) · 🇸🇮 [sl](../sl/SECURITY.md) · 🇷🇸 [sr](../sr/SECURITY.md) · 🇸🇪 [sv](../sv/SECURITY.md) · 🇰🇪 [sw](../sw/SECURITY.md) · 🇮🇳 [ta](../ta/SECURITY.md) · 🇮🇳 [te](../te/SECURITY.md) · 🇹🇭 [th](../th/SECURITY.md) · 🇹🇷 [tr](../tr/SECURITY.md) · 🇺🇦 [uk-UA](../uk-UA/SECURITY.md) · 🇵🇰 [ur](../ur/SECURITY.md) · 🇺🇿 [uz](../uz/SECURITY.md) · 🇻🇳 [vi](../vi/SECURITY.md) · 🇳🇬 [yo](../yo/SECURITY.md) · 🇨🇳 [zh-CN](../zh-CN/SECURITY.md) · 🇹🇼 [zh-TW](../zh-TW/SECURITY.md) --- ## Αναφορά Ευπαθειών Εάν ανακαλύψετε μια ευπάθεια ασφαλείας στο OmniRoute, παρακαλούμε να την αναφέρετε υπεύθυνα: 1. **ΜΗΝ** ανοίξετε δημόσιο ζήτημα στο GitHub 2. Χρησιμοποιήστε τα [GitHub Security Advisories](https://github.com/diegosouzapw/OmniRoute/security/advisories/new) 3. Συμπεριλάβετε: περιγραφή, βήματα αναπαραγωγής και πιθανό αντίκτυπο ## Χρονοδιάγραμμα Απόκρισης | Στάδιο | Στόχος | | --------------------- | ------------------------------ | | Επιβεβαίωση | 48 ώρες | | Αξιολόγηση & Εκτίμηση | 5 εργάσιμες ημέρες | | Κυκλοφορία Διόρθωσης | 14 εργάσιμες ημέρες (κρίσιμες) | ## Υποστηριζόμενες Εκδόσεις | Έκδοση | Κατάσταση Υποστήριξης | | ------- | --------------------- | | 3.8.x | ✅ Ενεργή | | 3.7.x | ✅ Ασφάλεια | | < 3.7.0 | ❌ Μη υποστηριζόμενη | --- ## Αρχιτεκτονική Ασφαλείας Το OmniRoute υλοποιεί ένα πολυεπίπεδο μοντέλο ασφαλείας: ``` Request → CORS → Authz pipeline (classify → policies → enforce) → Guardrails (PII masker, prompt injection, vision bridge) → Rate Limiter → Circuit Breaker → Cooldown → Model Lockout → Provider ``` ### 🔐 Αυθεντικοποίηση & Εξουσιοδότηση | Λειτουργία | Υλοποίηση | | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **Σύνδεση Dashboard** | Αυθεντικοποίηση με κωδικό πρόσβασης μέσω JWT tokens (HttpOnly cookies) | | **Αυθεντικοποίηση API Key** | Κλειδιά υπογεγραμμένα με HMAC και επαλήθευση CRC | | **OAuth 2.0 + PKCE** | Το OAuth browser/device για συγκεκριμένους παρόχους χρησιμοποιεί PKCE όπου υποστηρίζεται· τα διαπιστευτήρια Devin (μόνο εισαγωγή) διαχειρίζονται ξεχωριστά. | | **Ανανέωση Token** | Αυτόματη ανανέωση OAuth token πριν τη λήξη | | **Ασφαλή Cookies** | `AUTH_COOKIE_SECURE=true` για περιβάλλοντα HTTPS | | **Authz Pipeline** | Ταξινόμηση διαδρομών (PUBLIC / CLIENT_API / MANAGEMENT) — βλ. `docs/architecture/AUTHZ_GUIDE.md` | | **Επίπεδα Route Guard** | Μοντέλο 3 επιπέδων για διαδρομές διαχείρισης (LOCAL_ONLY / ALWAYS_PROTECTED / MANAGEMENT) — βλ. `docs/security/ROUTE_GUARD_TIERS.md` | | **Manage-Scope MCP** | Η απομακρυσμένη πρόσβαση `/api/mcp/*` ελέγχεται από API keys με εμβέλεια `manage`· το `/api/cli-tools/runtime/*` παραμένει αυστηρά loopback. Βλ. ROUTE_GUARD_TIERS | | **MCP Scopes** | 32 λεπτομερείς εμβέλειες (read:health, write:combos, execute:completions, κ.λπ.) — βλ. `docs/frameworks/MCP-SERVER.md` | ### 🛡️ Κρυπτογράφηση σε Ηρεμία Όλα τα ευαίσθητα δεδομένα που αποθηκεύονται στο SQLite κρυπτογραφούνται με **AES-256-GCM** και παραγωγή κλειδιού scrypt: - API keys, access tokens, refresh tokens και ID tokens - Μορφή με έκδοση: `enc:v1:::` - Λειτουργία passthrough (απλό κείμενο) όταν το `STORAGE_ENCRYPTION_KEY` δεν έχει οριστεί ```bash # Δημιουργία κλειδιού κρυπτογράφησης: STORAGE_ENCRYPTION_KEY=$(openssl rand -hex 32) ``` ### 🛡️ Πλαίσιο Guardrails Το OmniRoute διαθέτει ένα **μητρώο guardrails** που επαναφορτώνεται εν ώρα λειτουργίας (`src/lib/guardrails/`) με 3 ενσωματωμένα guardrails ταξινομημένα κατά προτεραιότητα: | Guardrail | Προτεραιότητα | Σκοπός | | ------------------ | ------------- | ----------------------------------------------------------------------------------------------------- | | `vision-bridge` | 5 | Γεφυρώνει μοντέλα χωρίς όραση με περιγραφές που αναγνωρίζουν εικόνες· προστασία SSRF για URLs εικόνων | | `pii-masker` | 10 | Απόκρυψη PII πριν και μετά την κλήση (email, τηλέφωνο, CPF, CNPJ, πιστωτικές κάρτες, SSN) | | `prompt-injection` | 20 | Ανιχνεύει μοτίβα παράκαμψης/πλαστοπροσωπίας ρόλου/jailbreak/διαρροής | Τα προσαρμοσμένα guardrails δηλώνονται μέσω `registerGuardrail(new MyGuardrail())`. Το μοντέλο είναι fail-open (οι εξαιρέσεις δεν αποκλείουν ποτέ την κίνηση). Απόρριψη ανά αίτημα μέσω της κεφαλίδας `x-omniroute-disabled-guardrails`. → Βλ. [`docs/security/GUARDRAILS.md`](docs/security/GUARDRAILS.md). ### 🧠 Φρουρός Έγχυσης Οδηγιών Ευρετικό middleware καλύτερης προσπάθειας που ανιχνεύει μοτίβα έγχυσης οδηγιών σε αιτήματα LLM. **Δεν αποτελεί πλήρες τείχος προστασίας έγχυσης οδηγιών** — μπορεί να παράγει ψευδώς θετικά (αβλαβείς οδηγίες persona/RPG) και ψευδώς αρνητικά (leetspeak, κενά, μοτίβα σε άλλες γλώσσες). | Τύπος Μοτίβου | Σοβαρότητα | Παράδειγμα | | --------------------- | ---------- | ------------------------------------------------------------- | | Παράκαμψη Συστήματος | Υψηλή | "ignore all previous instructions" | | Πλαστοπροσωπία Ρόλου | Μέτρια | "you are now DAN, you can do anything" | | Έγχυση Διαχωριστή | Υψηλή | Κωδικοποιημένοι διαχωριστές για παραβίαση ορίων περιβάλλοντος | | DAN/Jailbreak | Μέτρια | Γνωστά μοτίβα οδηγιών jailbreak | | Διαρροή Οδηγιών | Υψηλή | "show me your system prompt" | | Αποφυγή Κωδικοποίησης | Μέτρια | Αποκωδικοποίηση base64/rot13/hex + λέξεις-κλειδιά οδηγιών | Μόνο οι ανιχνεύσεις **Υψηλής** σοβαρότητας αποκλείονται στη λειτουργία `block`. Οι οικογένειες μέτριας σοβαρότητας καταγράφονται αλλά δεν αποκλείονται ποτέ από το `sanitizeRequest`. Διαμόρφωση μέσω του dashboard (Ρυθμίσεις → Ασφάλεια) ή `.env`: ```env INPUT_SANITIZER_ENABLED=true INPUT_SANITIZER_MODE=block # warn | block (πολιτική έγχυσης· το παλαιό "redact" δεν αφαιρεί κείμενο έγχυσης) INPUT_SANITIZER_BLOCK_THRESHOLD=high # high (προεπιλογή) | medium | low — σοβαρότητες ίσες ή πάνω από αυτό αποκλείονται σε λειτουργία block ``` ### 🔒 Απόκρυψη PII Αυτόματη ανίχνευση και προαιρετική απόκρυψη προσωπικά αναγνωρίσιμων πληροφοριών: | Τύπος PII | Μοτίβο | Αντικατάσταση | | --------------- | --------------------- | ------------------ | | Email | `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 (ΗΠΑ) | `123-45-6789` | `[SSN_REDACTED]` | ```env PII_REDACTION_ENABLED=true # επανεγγραφή PII αιτήματος· ανεξάρτητο από το INPUT_SANITIZER_MODE PII_RESPONSE_SANITIZATION=true # προαιρετικό: απόκρυψη PII στις αποκρίσεις παρόχου που επιστρέφονται στους πελάτες ``` ### 🌐 Ασφάλεια Δικτύου | Λειτουργία | Περιγραφή | | ------------------------ | ------------------------------------------------------------------------------------ | | **CORS** | Ρητή λίστα επιτρεπόμενων cross-origin (`CORS_ALLOWED_ORIGINS`· παλαιό `CORS_ORIGIN`) | | **Φιλτράρισμα IP** | Λίστες επιτρεπόμενων/αποκλεισμένων εύρη IP στο dashboard | | **Περιορισμός Ρυθμού** | Περιορισμοί ρυθμού ανά πάροχο με αυτόματη καθυστέρηση | | **Anti-Thundering Herd** | Mutex + κλείδωμα ανά σύνδεση αποτρέπει διαδοχικά 502 | | **TLS Fingerprint** | Πλαστογράφηση TLS fingerprint τύπου browser για μείωση ανίχνευσης bot | | **CLI Fingerprint** | Διάταξη κεφαλίδων/σώματος ανά πάροχο για αντιστοίχιση με υπογραφές native CLI | ### 🔌 Ανθεκτικότητα & Διαθεσιμότητα | Λειτουργία | Περιγραφή | | ------------------------- | ----------------------------------------------------------------------- | | **Circuit Breaker** | 3 καταστάσεις (Closed → Open → Half-Open) ανά πάροχο, αποθήκευση SQLite | | **Ιδεμποτέντς Αιτήματος** | Παράθυρο αποεπανάληψης 5 δευτερολέπτων για διπλά αιτήματα | | **Εκθετική Καθυστέρηση** | Αυτόματη επανάληψη με αυξανόμενες καθυστερήσεις | | **Dashboard Υγείας** | Παρακολούθηση υγείας παρόχου σε πραγματικό χρόνο | ### 📋 Συμμόρφωση | Λειτουργία | Περιγραφή | | ----------------------- | ------------------------------------------------------------------------------ | | **Διατήρηση Αρχείων** | Αυτόματος καθαρισμός μετά από `CALL_LOG_RETENTION_DAYS` | | **Απόρριψη Καταγραφής** | Η σημαία `noLog` ανά API key απενεργοποιεί την καταγραφή αιτημάτων | | **Αρχείο Ελέγχου** | Διοικητικές ενέργειες καταγράφονται στον πίνακα `audit_log` | | **MCP Audit** | Καταγραφή ελέγχου με SQLite για όλες τις κλήσεις εργαλείων MCP | | **Επικύρωση Zod** | Όλες οι εισόδοι API επικυρώνονται με σχήματα Zod v4 κατά τη φόρτωση του module | --- ## Απαιτούμενες Μεταβλητές Περιβάλλοντος Όλα τα μυστικά πρέπει να οριστούν πριν από την εκκίνηση του διακομιστή. Ο διακομιστής θα **αποτύχει άμεσα** εάν λείπουν ή είναι αδύναμα. ```bash # ΑΠΑΙΤΟΥΜΕΝΑ — ο διακομιστής δεν θα εκκινήσει χωρίς αυτά: 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`. --- ## Ασφάλεια Docker - Χρησιμοποιείτε χρήστη χωρίς δικαιώματα root στο περιβάλλον παραγωγής - Προσαρτάτε τα μυστικά ως τόμους μόνο για ανάγνωση - Μην αντιγράφετε ποτέ αρχεία `.env` μέσα σε Docker images - Χρησιμοποιείτε `.dockerignore` για να αποκλείετε ευαίσθητα αρχεία - Ορίστε `AUTH_COOKIE_SECURE=true` όταν βρίσκεστε πίσω από 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 ``` --- ## Εξαρτήσεις - Εκτελείτε `npm audit` τακτικά (`npm run audit:deps` καλύπτει main + electron) - Διατηρείτε τις εξαρτήσεις ενημερωμένες - Το έργο χρησιμοποιεί `husky` + `lint-staged` για ελέγχους πριν από κάθε commit (lint-staged + check-docs-sync + check:any-budget:t11) - Το CI pipeline εκτελεί κανόνες ασφαλείας ESLint σε κάθε push (`no-eval`, `no-implied-eval`, `no-new-func` = error) - Οι σταθερές παρόχου επικυρώνονται κατά τη φόρτωση της μονάδας μέσω Zod (`src/shared/validation/schemas.ts`) - Χρησιμοποιούνται βιβλιοθήκες με ασφαλείς προεπιλογές: `dompurify` / `isomorphic-dompurify` (XSS), `jose` (JWT), `better-sqlite3` (χωρίς κίνδυνο SQLi μέσω παραμετροποιημένων ερωτημάτων), `bcryptjs` (κατακερματισμός κωδικών πρόσβασης) ## Αυστηροί Κανόνες Ασφαλείας Αυτοί οι κανόνες επιβάλλονται από εργαλεία και αξιολογητές: 1. **Ποτέ μην κάνετε commit μυστικά** — το `.env` είναι στο gitignore· το `.env.example` είναι το πρότυπο (χωρίς κυριολεκτικές τιμές, μόνο σχόλια — βλ. PUBLIC_CREDS.md παρακάτω) 2. **Ποτέ μην χρησιμοποιείτε `eval()`, `new Function()` ή έμμεσο eval** — το ESLint επιβάλλει τον κανόνα 3. **Ποτέ μην παρακάμπτετε τα Husky hooks** (`--no-verify`, `--no-gpg-sign`) χωρίς ρητή έγκριση διαχειριστή 4. **Ποτέ μην γράφετε ακατέργαστη SQL σε routes** — πάντα να διέρχεστε από το `src/lib/db/` (παραμετροποιημένο) 5. **Πάντα να επικυρώνετε εισόδους με Zod** — `src/shared/validation/schemas.ts` 6. **Πάντα να απολυμαίνετε επικεφαλίδες upstream** — λίστα απαγορευμένων στο `src/shared/constants/upstreamHeaders.ts` 7. **Κρυπτογραφείτε τα διαπιστευτήρια σε ηρεμία** — AES-256-GCM μέσω `src/lib/db/encryption.ts` 8. **Δημόσιοι αναγνωριστές OAuth upstream μέσω `resolvePublicCred()`** — ποτέ μην ενσωματώνετε κυριολεκτικές τιμές `AIza…` / `GOCSPX-…` / `…apps.googleusercontent.com` στον πηγαίο κώδικα. Βλ. [`docs/security/PUBLIC_CREDS.md`](docs/security/PUBLIC_CREDS.md). 9. **Αποκρίσεις σφαλμάτων μέσω `buildErrorBody()` / `sanitizeErrorMessage()`** — ποτέ μην τοποθετείτε ακατέργαστο `err.stack` / `err.message` σε σώματα HTTP / SSE / executor / MCP αποκρίσεων. Βλ. [`docs/security/ERROR_SANITIZATION.md`](docs/security/ERROR_SANITIZATION.md). 10. **Τιμές χρόνου εκτέλεσης `exec()` / `spawn()` μέσω της επιλογής `env`** — ποτέ μην παρεμβάλλετε εξωτερικά μονοπάτια ή μη αξιόπιστες τιμές σε σενάρια που περνούν από το shell. Αναφορά: `src/mitm/cert/install.ts::updateNssDatabases`. 11. **Προτιμάτε βιβλιοθήκες με ασφαλείς προεπιλογές** — βλ. [tldrsec/awesome-secure-defaults](https://github.com/tldrsec/awesome-secure-defaults) (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink). Καταφεύγετε σε αυτές πριν υλοποιήσετε τη δική σας λύση. ## Ευρήματα σαρωτή εφοδιαστικής αλυσίδας (Socket.dev / Snyk / παρόμοια εργαλεία) > **Σημείωση πεδίου εφαρμογής:** Το `socket.yml` στη ρίζα του αποθετηρίου διαμορφώνει μόνο το `projectIgnorePaths` για τη σάρωση μετά τη δημοσίευση, στην πλευρά του μητρώου του Socket.dev, του δημοσιευμένου τεχνουργήματος npm — δεν αποτελεί υποχρεωτική πύλη συγχώνευσης CI/PR. Καμία ροή εργασίας στο `.github/workflows`, κανένα script του `package.json` και κανένας στόχος του `Makefile` δεν καλεί το Socket.dev. Το δημοσιευμένο τεχνούργημα npm `omniroute` περιλαμβάνει το build του Next.js με `output: "standalone"`, κάτι που σημαίνει ότι κάθε χειριστής διαδρομής — συμπεριλαμβανομένων των τεκμηριωμένων προνομιακών λειτουργιών (MITM, εισαγωγή Zed, Cloud Sync, ενσωματωμένος επόπτης υπηρεσιών) — καταλήγει σε ελαχιστοποιημένα τμήματα `.next/server/*.js`. Οι ευρετικοί σαρωτές εφοδιαστικής αλυσίδας συχνά αντιστοιχίζουν μοτίβα αυτών των τμημάτων με υπογραφές κακόβουλου λογισμικού. Η ρύθμιση παραμέτρων του σαρωτή που χρησιμοποιούμε βρίσκεται στο [`socket.yml`](socket.yml) στη ρίζα του αποθετηρίου (μορφή v2 του Socket.dev GitHub App — δείτε ). Εξαιρεί ρητά καταλόγους που δεν διανέμονται (`tests/`, `_tasks/`, `_references/`, `_ideia/`, `_mono_repo/`, `docs/` κ.λπ.), ώστε ο σαρωτής να αναφέρει μόνο διαδρομές κώδικα που φτάνουν πράγματι στους χρήστες της δημοσιευμένης έκδοσης — η ίδια η σάρωση εκτελείται από το Socket GitHub App που διαβάζει αυτό το αρχείο και όχι από κάποια ροή εργασίας σε αυτό το αποθετήριο. Για κάθε κατηγορία ευρημάτων διατηρούμε μια επιβεβαίωση από τους συντηρητές ανά εύρημα: - **[`docs/security/SOCKET_DEV_FINDINGS.md`](docs/security/SOCKET_DEV_FINDINGS.md)** — αντιστοίχιση ανά εύρημα: αρχείο προέλευσης ↔ επισημασμένο τμήμα ↔ συμπεριφορά ↔ μετριασμός που εφαρμόστηκε στην v3.8.6. - Μπλοκ `SECURITY-AUDITOR-NOTE:` στον πηγαίο κώδικα, σε κάθε επισημασμένη συνάρτηση, παραπέμπουν στο ίδιο έγγραφο. Για χρήστες των οποίων η διοχέτευση δεν μπορεί να χαλαρώσει την ειδοποίηση: δημιουργήστε το build με `OMNIROUTE_BUILD_PROFILE=minimal npm run build`. Αυτό αντικαθιστά τις τέσσερις ευαίσθητες μονάδες με υποκατάστατα που επιστρέφουν HTTP 503 `feature-disabled` κατά την εκτέλεση, ώστε οι προνομιακές διαδρομές κώδικα να απουσιάζουν φυσικά από το πακέτο. Δείτε το [`docs/security/SOCKET_DEV_FINDINGS.md`](docs/security/SOCKET_DEV_FINDINGS.md) για τη διαδικασία δημοσίευσης. ## Αναφορές - [`docs/architecture/AUTHZ_GUIDE.md`](docs/architecture/AUTHZ_GUIDE.md) — διοχέτευση εξουσιοδότησης - [`docs/security/GUARDRAILS.md`](docs/security/GUARDRAILS.md) — πλαίσιο προστατευτικών ελέγχων - [`docs/security/COMPLIANCE.md`](docs/security/COMPLIANCE.md) — αρχείο καταγραφής ελέγχου και διατήρηση - [`docs/security/PUBLIC_CREDS.md`](docs/security/PUBLIC_CREDS.md) — **υποχρεωτικό** μοτίβο για δημόσια διαπιστευτήρια upstream - [`docs/security/ERROR_SANITIZATION.md`](docs/security/ERROR_SANITIZATION.md) — **υποχρεωτικό** μοτίβο για αποκρίσεις σφαλμάτων - [`docs/security/SOCKET_DEV_FINDINGS.md`](docs/security/SOCKET_DEV_FINDINGS.md) — επαλήθευση συντηρητή για ευρήματα σαρωτή αλυσίδας εφοδιασμού - [`docs/architecture/RESILIENCE_GUIDE.md`](docs/architecture/RESILIENCE_GUIDE.md) — αποδιακόπτης + περίοδος ψύξης + κλείδωμα - [`docs/security/STEALTH_GUIDE.md`](docs/security/STEALTH_GUIDE.md) — δακτυλοτύπωση TLS (νομική/ηθική σημείωση) - [`CLAUDE.md`](CLAUDE.md) — αυστηροί κανόνες για πράκτορες ΤΝ - [tldrsec/awesome-secure-defaults](https://github.com/tldrsec/awesome-secure-defaults) — επιμελημένες βιβλιοθήκες ασφαλείς εξ ορισμού