Aller au contenu principal

YARA-X (yara-x)

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é​

Version1.22.1
Usageinstaller et configurer
Couchefonctionnelle (catalogue IA)
CatégorieSécurité et politiques
Méthodes d'installationpython
Connexion externenon
Réservé au bac à sablenon

Licence​

Identifiant SPDXBSD-3-Clause
Politique de licenceexception de licence
Exception de licenceLEX-023 (en attente de la décision du client)
Composant de la plateformeyara-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.

TypePaquetVersionLicenceDétails
paquet Pythonyara-x1.22.1BSD-3-Clauseinterpréteurs, par ordre de préférence python3.11, python3.12, python3.10

Systèmes et architectures pris en charge​

MéthodeSystèmes d'exploitationArchitectures
pythonfamille 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​

ComposantNom du portPortOuvert dans le pare-feu de l'hôte
workerapi8475/tcpoui

Services et connexions nécessaires​

Ce service n'a aucune dépendance.

Méthodes et modes d'installation​

MéthodeDéfautCe que la méthode utilise
pythonouiun environnement virtuel Python qui contient les paquets Python du descripteur

Composants​

ComposantTypeMéthodes d'installationPorts
Worker (worker)maîtrepython8475/tcp

Worker unique (standalone) (par défaut)​

Un worker YARA-X.

Ce que le mode déploie :

ComposantPlacement
workermin 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 :

ComposantPlacement
workermin 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.

  1. 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.

  2. Choisissez le service. À l'étape Service, sélectionnez YARA-X. La carte affiche la licence BSD-3-Clause.

  3. 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.

  4. Liaisons. Ce service n'a aucune dépendance : l'étape Liaisons n'a rien à lier.

  5. 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.

  6. 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.

  7. 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é​

Clusterréplicas (replication)
Haute disponibilitéexterne (external)
Basculecôté client (client)
Réplicationaucun (none)
Quorumaucun (none)
Découvertestatique (static)
Point d'entréedécouverte par le client (client-discovery)
Documentation officiellehttps://virustotal.github.io/yara-x/
Référenceshttps://virustotal.github.io/yara-x/docs/
Paramètre TLS entre pairstls_enabled
Authentification entre pairsLes clients s'authentifient auprès de chaque worker avec la clé porteuse ; les workers n'ont aucun pair.

Topologie par mode​

ModesNiveau le plus haut du catalogueRépartitionComposant du quorumDomaines de panneDescription
standaloneautonome (standalone)unique (single)-1Un worker, sans tolérance aux pannes (les dépôts sont refusés en mode enforce tant qu'il est arrêté).
replicatedha (ha)actif-actif (active-active)-2Deux 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ètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
Port du worker (port)port8475-nonnonouiPort HTTPS du worker (/v1/scan, /v1/rules/reload, /readyz, /metrics).

Sécurité​

ParamètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
TLS (tls_enabled)booltrue-nonnonouiServir le worker en HTTPS avec un certificat de l'autorité de la console (obligatoire en production).
Clé d'API (api_key)passwordgénéré-nonouinonClé porteuse des clients du worker (EAI_YARAX_API_KEY de la plateforme).

Règles​

ParamètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
Dépôt de règles (rules_repository_url)url{{ mirror.url }}/yara-rules-nonnonnonDé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ètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
Plus gros fichier (max_file_size_mb)int100min 1, max 2000, MBnonnonnonLimite 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)int60min 1, max 600, snonnonnonDélai du scanner YARA-X pour un fichier (500 scan_timeout au-delà).

Points d'accès​

Point d'accèsSchémaComposantPortCheminParamètre TLSParamètres de liaisonSecrets de liaisonCommande de provisionnement
apihttpworker8475 (port)-tls_enabled-api_key-

Commandes​

CommandeComposantCibleDescription
État des règles (rules_status)workertous les hôtesJeux de règles actif et précédent de chaque worker et son état de disponibilité.
Mettre à jour les règles (update_rules)workertous les hôtesTé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)workertous les hôtesRamène chaque worker à son jeu de règles précédent et le recharge. (demande une confirmation)
Journaux du worker (logs)workerhôte choisiDernières lignes du journal du worker.

Paramètres des commandes​

CommandeParamètreTypeDéfautObligatoireDescription
update_rulesVersion (version)string-ouiVersion du jeu de règles (fichier navin-rules-<version>.tar.gz du dépôt).
update_rulessha256 attendu (sha256)string-ouiSHA-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)​

ComposantContrôleDétails
workerHTTP {{ 'https' if config.tls_enabled else 'http' }}://{{ host.ip or '127.0.0.1' }}:{{ config.port }}/healthzAttendu 200 ; 30 tentatives ; intervalle 2 s ; délai 5 s

Disponibilité (contrôle du service)​

ContrôleDétails
HTTP {{ 'https' if config.tls_enabled else 'http' }}://{{ host.ip or '127.0.0.1' }}:{{ config.port }}/readyzAttendu 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ôleTypeSignificationSévéritéComposants
memorymemory_mb {"min": 1024}au moins 1024 Mo de mémoireavertissementtous les composants
port_freeport_free {"param": "port"}port 8475 libre sur l'hôtebloquanttous 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​