Moteur de règles YARA-X de la chaîne de sécurité des fichiers : un worker HTTPS authentifié avec les règles navin-baseline et des mises à jour contrôlées des règles depuis le dépôt interne.
Généré depuis catalog/services/yara-x.yaml : ne pas modifier à la main.
Résumé
| |
|---|
| Version | 1.22.1 |
| Usage | installer et configurer |
| Couche | fonctionnelle (catalogue IA) |
| Catégorie | Sécurité et politiques |
| Méthodes d'installation | python |
| Connexion externe | non |
| Réservé au bac à sable | non |
Licence
| |
|---|
| Identifiant SPDX | BSD-3-Clause |
| Politique de licence | exception de licence |
| Exception de licence | LEX-023 (en attente de la décision du client) |
| Composant de la plateforme | yara-x |
Paquets et artefacts
Un paquet que publie le projet du service (son image, son archive binaire, son paquet Python ou système) porte la licence du service ; un paquet tiers porte la licence écrite sur sa ligne, lue dans les métadonnées officielles du projet amont.
| Type | Paquet | Version | Licence | Détails |
|---|
| paquet Python | yara-x | 1.22.1 | BSD-3-Clause | interpréteurs, par ordre de préférence python3.11, python3.12, python3.10 |
Systèmes et architectures pris en charge
| Méthode | Systèmes d'exploitation | Architectures |
|---|
python | famille RHEL (dnf), famille Debian (apt), Arch Linux (pacman) | x86_64, aarch64 (non restreintes par le descripteur) |
Systèmes hôtes certifiés : RHEL 8/9/10, Rocky Linux 8/9/10, AlmaLinux 8/9/10, Oracle Linux 8/9, CentOS Stream 9/10, Ubuntu 22.04/24.04, Debian 12, Arch Linux (rolling). Le contrôle préalable des hôtes accepte ces systèmes (une autre version d'une famille connue donne un avertissement, une version en fin de vie est refusée) et les architectures x86_64 et aarch64.
Prérequis
Hôte
- au moins 1024 Mo de mémoire (avertissement,
memory).
Réseau et ports
| Composant | Nom du port | Port | Ouvert dans le pare-feu de l'hôte |
|---|
worker | api | 8475/tcp | oui |
Services et connexions nécessaires
Ce service n'a aucune dépendance.
Méthodes et modes d'installation
| Méthode | Défaut | Ce que la méthode utilise |
|---|
python | oui | un environnement virtuel Python qui contient les paquets Python du descripteur |
Composants
| Composant | Type | Méthodes d'installation | Ports |
|---|
Worker (worker) | maître | python | 8475/tcp |
Worker unique (standalone) (par défaut)
Un worker YARA-X.
Ce que le mode déploie :
| Composant | Placement |
|---|
worker | min 1, max 1 |
Répliqué (replicated)
Deux workers indépendants ou plus avec le même jeu de règles ; la plateforme bascule entre eux.
Ce que le mode déploie :
| Composant | Placement |
|---|
worker | min 2, recommandé 2 |
Installer ce service
L'assistant d'installation du Navin Manager planifie, valide et exécute l'installation ; il faut la permission services:install sur le cluster.
-
Ouvrez l'assistant. Dans Clusters, choisissez l'action de ligne Installer des services du cluster cible. L'assistant s'ouvre sur sa première étape, Service.
-
Choisissez le service. À l'étape Service, sélectionnez YARA-X. La carte affiche la licence BSD-3-Clause.
-
Choisissez les hôtes et le mode. À l'étape Hôtes, cochez les hôtes, puis choisissez le Mode : standalone (par défaut), replicated. Chaque mode déploie les composants listés dans Méthodes et modes d'installation.
-
Liaisons. Ce service n'a aucune dépendance : l'étape Liaisons n'a rien à lier.
-
Configurez. À l'étape Configuration, relisez les paramètres (voir Paramètres de configuration). Les mots de passe laissés vides avec une valeur générée par défaut sont générés et scellés par le Manager.
-
Relisez et installez. À l'étape Installation, le Manager valide le plan et affiche l'ordre d'installation ; quand il indique « Le plan est valide. Prêt pour l'installation. », choisissez Installer. Un mode hautement disponible n'est installé que si ses contrôles HA réussissent.
-
Vérifiez. L'opération se termine quand les contrôles de santé de chaque instance réussissent (voir Contrôles de santé) ; le service apparaît alors en marche dans Services. Ouvrez le service et choisissez Lancer le test fonctionnel dans la carte Contrôles : Analyse le fichier de test EICAR (doit correspondre à navin_eicar_test_file), puis un fichier propre (ne doit correspondre à rien).
Haute disponibilité
| |
|---|
| Cluster | réplicas (replication) |
| Haute disponibilité | externe (external) |
| Bascule | côté client (client) |
| Réplication | aucun (none) |
| Quorum | aucun (none) |
| Découverte | statique (static) |
| Point d'entrée | découverte par le client (client-discovery) |
| Documentation officielle | https://virustotal.github.io/yara-x/ |
| Références | https://virustotal.github.io/yara-x/docs/ |
| Paramètre TLS entre pairs | tls_enabled |
| Authentification entre pairs | Les clients s'authentifient auprès de chaque worker avec la clé porteuse ; les workers n'ont aucun pair. |
Topologie par mode
| Modes | Niveau le plus haut du catalogue | Répartition | Composant du quorum | Domaines de panne | Description |
|---|
standalone | autonome (standalone) | unique (single) | - | 1 | Un worker, sans tolérance aux pannes (les dépôts sont refusés en mode enforce tant qu'il est arrêté). |
replicated | ha (ha) | actif-actif (active-active) | - | 2 | Deux workers sans état ou plus avec le même jeu de règles ; la plateforme reçoit tous les workers et bascule sur le suivant. |
Remarques
- Chaque worker garde sa propre copie des règles : lancer update_rules sur tous les workers (cible all) pour qu'ils servent la même version.
Paramètres de configuration
Réseau
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|
Port du worker (port) | port | 8475 | - | non | non | oui | Port HTTPS du worker (/v1/scan, /v1/rules/reload, /readyz, /metrics). |
Sécurité
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|
TLS (tls_enabled) | bool | true | - | non | non | oui | Servir le worker en HTTPS avec un certificat de l'autorité de la console (obligatoire en production). |
Clé d'API (api_key) | password | généré | - | non | oui | non | Clé porteuse des clients du worker (EAI_YARAX_API_KEY de la plateforme). |
Règles
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|
Dépôt de règles (rules_repository_url) | url | {{ mirror.url }}/yara-rules | - | non | non | non | Dépôt HTTPS interne qui sert navin-rules-<version>.tar.gz, vérifié avec l'autorité de la console (update_rules). |
Limites d'analyse
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|
Plus gros fichier (max_file_size_mb) | int | 100 | min 1, max 2000, MB | non | non | non | Limite du corps de /v1/scan (413 au-delà) ; au moins la limite de la plateforme EAI_FILE_SCAN_MAX_BYTES. |
Délai d'analyse (scan_timeout_s) | int | 60 | min 1, max 600, s | non | non | non | Délai du scanner YARA-X pour un fichier (500 scan_timeout au-delà). |
Points d'accès
| Point d'accès | Schéma | Composant | Port | Chemin | Paramètre TLS | Paramètres de liaison | Secrets de liaison | Commande de provisionnement |
|---|
api | http | worker | 8475 (port) | - | tls_enabled | - | api_key | - |
Commandes
| Commande | Composant | Cible | Description |
|---|
État des règles (rules_status) | worker | tous les hôtes | Jeux de règles actif et précédent de chaque worker et son état de disponibilité. |
Mettre à jour les règles (update_rules) | worker | tous les hôtes | Télécharge navin-rules-<version>.tar.gz depuis le dépôt interne, contrôle son sha256, le compile dans une zone de préparation, bascule de façon atomique et recharge chaque worker. Tout échec garde les règles actives. |
Revenir aux règles précédentes (rollback_rules) | worker | tous les hôtes | Ramène chaque worker à son jeu de règles précédent et le recharge. (demande une confirmation) |
Journaux du worker (logs) | worker | hôte choisi | Dernières lignes du journal du worker. |
Paramètres des commandes
| Commande | Paramètre | Type | Défaut | Obligatoire | Description |
|---|
update_rules | Version (version) | string | - | oui | Version du jeu de règles (fichier navin-rules-<version>.tar.gz du dépôt). |
update_rules | sha256 attendu (sha256) | string | - | oui | SHA-256 de l'archive publié avec le jeu de règles ; le téléchargement est refusé s'il diffère. |
Contrôles de santé
Vivacité (par instance)
| Composant | Contrôle | Détails |
|---|
worker | HTTP {{ 'https' if config.tls_enabled else 'http' }}://{{ host.ip or '127.0.0.1' }}:{{ config.port }}/healthz | Attendu 200 ; 30 tentatives ; intervalle 2 s ; délai 5 s |
Disponibilité (contrôle du service)
| Contrôle | Détails |
|---|
HTTP {{ 'https' if config.tls_enabled else 'http' }}://{{ host.ip or '127.0.0.1' }}:{{ config.port }}/readyz | Attendu 200 ; Attendu "status": "ready" ; 10 tentatives ; intervalle 3 s ; délai 10 s |
Test fonctionnel
Analyse le fichier de test EICAR (doit correspondre à navin_eicar_test_file), puis un fichier propre (ne doit correspondre à rien). (worker: eicar_matched, clean_nothing)
Contrôles préalables
| Contrôle | Type | Signification | Sévérité | Composants |
|---|
memory | memory_mb {"min": 1024} | au moins 1024 Mo de mémoire | avertissement | tous les composants |
port_free | port_free {"param": "port"} | port 8475 libre sur l'hôte | bloquant | tous les composants |
Désinstallation
Chemins supprimés quand les données sont purgées : {{ paths.data }}, {{ paths.log }}.
Liens rapides
- Métriques du worker :
{{ 'https' if config.tls_enabled else 'http' }}://{{ host.fqdn }}:{{ config.port }}/metrics
Documentation amont