Κατάσταση: Πρόταση / Οδικός Χάρτης (Roadmap)
Αυτό το έγγραφο περιγράφει προτεινόμενες προσεγγίσεις και ενδέχεται να περιλαμβάνει υποθετικές εντολές ή ρυθμίσεις. Για την τρέχουσα λειτουργία, ανατρέξτε στα έγγραφα: config-reference.md, operations-runbook.md και troubleshooting.md.
Θα προκαλέσουν οι λειτουργίες ασφαλείας προβλήματα στην:
- Ταχύτητα των cross-compilation builds;
- Αρθρωτή αρχιτεκτονική (δυνατότητα αντικατάστασης στοιχείων);
- Υποστήριξη διαφορετικού υλικού (ARM, x86, RISC-V);
- Υποστήριξη περιορισμένων πόρων (<5MB RAM);
Απάντηση: Όχι — Η ασφάλεια υλοποιείται μέσω προαιρετικών feature flags και υποθετικής μεταγλώττισης (conditional compilation) ανά πλατφόρμα.
[features]
default = ["basic-security"]
# Βασική ασφάλεια (μόνιμα ενεργή, ελάχιστη επιβάρυνση)
basic-security = []
# Sandboxing (προαιρετική ενεργοποίηση ανά πλατφόρμα)
sandbox-landlock = [] # Linux 5.13+
sandbox-firejail = [] # Linux
sandbox-bubblewrap = []# macOS/Linux
sandbox-docker = [] # Υποστήριξη Docker (υψηλή επιβάρυνση)
# Πλήρης σουίτα ασφαλείας για περιβάλλοντα παραγωγής
security-full = [
"basic-security",
"sandbox-landlock",
"resource-monitoring",
"audit-logging",
]
# Παρακολούθηση πόρων και καταγραφή ελέγχου (Audit)
resource-monitoring = []
audit-logging = []# Γρήγορο dev build (χωρίς πρόσθετα ασφαλείας)
cargo build --profile dev
# Release build με βασική ασφάλεια (προεπιλογή)
cargo build --release
# Πλήρες build παραγωγής με όλες τις λειτουργίες ασφαλείας
cargo build --release --features security-fullΌταν οι λειτουργίες είναι απενεργοποιημένες, ο σχετικός κώδικας εξαιρείται πλήρως από τη μεταγλώττιση, διασφαλίζοντας ότι το μέγεθος του εκτελέσιμου (binary) παραμένει μικρό.
// src/security/mod.rs
#[cfg(feature = "sandbox-landlock")]
mod landlock;
#[cfg(feature = "sandbox-landlock")]
pub use landlock::LandlockSandbox;
// Η βασική ασφάλεια περιλαμβάνεται πάντα
pub mod policy; // Allowlist, path blocking, injection protectionΗ ασφάλεια υλοποιείται ως εναλλάξιμο στοιχείο μέσω του trait Sandbox:
// src/security/traits.rs
#[async_trait]
pub trait Sandbox: Send + Sync {
/// Εφαρμογή προστασίας sandbox σε μια εντολή
fn wrap_command(&self, cmd: &mut std::process::Command) -> std::io::Result<()>;
/// Έλεγχος διαθεσιμότητας του sandbox στην τρέχουσα πλατφόρμα
fn is_available(&self) -> bool;
/// Όνομα του μηχανισμού
fn name(&self) -> &str;
}Το ZeroClaw προσαρμόζει αυτόματα το επίπεδο προστασίας βάσει των δυνατοτήτων του λειτουργικού συστήματος:
| Πλατφόρμα | Κατάσταση Build | Μηχανισμός Runtime |
|---|---|---|
| Linux ARM (Raspberry Pi) | ✅ Επιτυχές | Landlock ή None |
| Linux x86_64 | ✅ Επιτυχές | Landlock ή Firejail |
| macOS ARM (M1/M2) | ✅ Επιτυχές | Bubblewrap ή None |
| Windows x86_64 | ✅ Επιτυχές | Επίπεδο Εφαρμογής |
| RISC-V Linux | ✅ Επιτυχές | Landlock ή None |
| Λειτουργία | Μέγεθος στο Binary (περίπου) | Επιβάρυνση RAM |
|---|---|---|
| Base ZeroClaw | 3.4MB | <5MB |
| + Landlock | +50KB | +100KB |
| + Παρακολούθηση Πόρων | +30KB | +50KB |
| Σύνολο (Πλήρης Ασφάλεια) | +140KB | <6MB |
Μπορείτε να αλλάξετε τον μηχανισμό ασφαλείας μέσω του αρχείου ρυθμίσεων:
# Χρήση Landlock (Native Linux LSM)
[security.sandbox]
backend = "landlock"
# Χρήση Docker (Μέγιστη απομόνωση)
[security.sandbox]
backend = "docker"| Κριτήριο | Πριν | Μετά (με Ασφάλεια) | Κατάσταση |
|---|---|---|---|
| Χρήση Μνήμης | <5MB RAM | <6MB RAM | ✅ Διατηρείται |
| Ταχύτητα Εκκίνησης | <10ms | <15ms | ✅ Διατηρείται |
| Συμβατότητα Υλικού | Πλήρης | Πλήρης | ✅ Διατηρείται |
| Αρθρωτή Σχεδίαση | Ναι | Ναι | ✅ Ενισχυμένη |
Η ασφάλεια παραμένει προαιρετική, αποδοτική και συμβατή με κάθε πλατφόρμα.