Sécurité

Aperçu

Neotask est conçu avec une architecture axée sur la sécurité. Le Gateway se lie à localhost par défaut, toutes les données sensibles sont chiffrées au repos, et l'exécution des agents peut être mise en bac à sable dans des conteneurs isolés.

Sécurité réseau

Boucle locale par défaut

Le Gateway écoute uniquement sur 127.0.0.1 (localhost) à moins que vous ne changiez explicitement le mode de liaison. Aucune exposition réseau externe par défaut.

Authentification

Toutes les connexions WebSocket nécessitent une authentification :

Sécurité de l'accès distant

Pour l'accès distant, l'approche recommandée est Tailscale VPN ou le tunnel SSH, n'exposez jamais le Gateway directement à Internet.

Couplage des appareils

Fonctionnement du couplage

Chaque client qui se connecte au Gateway doit être couplé :

  1. L'appareil présente son identité (empreinte + clé publique)
  2. Le Gateway émet un défi de couplage (nonce)
  3. L'appareil signe le nonce avec sa clé privée
  4. Vous approuvez l'appareil via l'interface utilisateur
  5. Le Gateway émet un jeton d'appareil pour les connexions futures

Modèle de confiance

Chiffrement

Données au repos

Données en transit

Bac à sable

Isolation basée sur Docker

L'exécution des commandes d'agents peut être mise en bac à sable dans des conteneurs Docker :

Portées du bac à sable

Portée Description
Par session Conteneur frais pour chaque session
Par agent Conteneur persistant par agent
Partagé Conteneur partagé entre les agents

Accès à l'espace de travail

Les agents mis en bac à sable peuvent accéder à leur répertoire d'espace de travail (monté dans le conteneur) mais ne peuvent pas accéder au système de fichiers hôte en dehors de leur espace de travail.

Approbations d'exécution

Contrôlez quelles commandes les agents peuvent exécuter sur les nœuds et l'hôte du Gateway :

Modes

Mode Description
Liste d'autorisation Seules les commandes préapprouvées s'exécutent
Demande Les commandes inconnues demandent l'approbation de l'utilisateur
Complet Aucune restriction (utiliser avec précaution)

Configuration par nœud

Chaque nœud (macOS, hôte headless) a sa propre configuration d'approbation d'exécution, stockée localement. Vous pouvez autoriser des binaires spécifiques (par ex., /usr/bin/docker, /usr/local/bin/terraform) tout en bloquant tout le reste.

Mode élevé

Certaines opérations nécessitent de s'exécuter directement sur l'hôte du Gateway (pas dans un bac à sable). Le mode élevé est :

Audit de sécurité

L'audit de sécurité intégré vérifie :

L'audit peut corriger automatiquement de nombreux problèmes lorsque la permission est accordée.

Meilleures pratiques

  1. Gardez le Gateway sur la boucle locale, Utilisez Tailscale ou SSH pour l'accès distant
  2. Activez le bac à sable, Exécutez les commandes des agents dans des conteneurs Docker
  3. Utilisez des listes d'autorisation d'exécution, Limitez les commandes que les agents peuvent exécuter sur les nœuds
  4. Définissez des jetons d'authentification, Configurez toujours l'authentification par jeton, même pour la boucle locale
  5. Vérifiez les permissions des agents, Utilisez des profils d'outils minimaux lorsque c'est possible
  6. Maintenez Neotask à jour, Les mises à jour incluent des correctifs de sécurité
  7. Auditez régulièrement, Exécutez des audits de sécurité pour détecter les mauvaises configurations
  8. Limitez le chargement des plugins, N'installez que des plugins de confiance