Aller au contenu
Avanet

Scanner Sophos Endpoint sous Windows en CLI

Pour un soupçon isolé, le Scan depuis l’interface locale suffit souvent. Dans un RMM Runbook, lors d’une Incident Response ou pour un chemin défini, la Windows CLI est plus précise. Elle est installée avec Sophos Endpoint et signale aussi les Detections à Sophos Fusion (anciennement Sophos Central).

Planifier et dépanner les analyses Sophos Endpoint traite la planification, les analyses planifiées, l’analyse de la durée et l’état de File Scanner. Cet article se concentre sur la CLI Windows et une automatisation fiable.

Chemin et aide

L’outil se trouve par défaut sous :

C:\Program Files\Sophos\Endpoint Defense\sophosinterceptxcli.exe

Ouvrez PowerShell avec le compte dont les droits doivent s’appliquer à l’analyse ciblée. L’opérateur & lance le chemin entre guillemets et help scan affiche les options de la version installée :

& "C:\Program Files\Sophos\Endpoint Defense\sophosinterceptxcli.exe" help scan

L’aide de la version installée localement fait foi. L’outil appartient à l’Agent Windows ; ce chemin ne s’applique pas à macOS.

Modèle d’exécution avant de commencer

  • Shell : Tous les exemples utilisent PowerShell. Dans cmd.exe, omettez l’opérateur & ; ne mélangez pas les deux syntaxes.
  • Privilèges : Une analyse de fichier, dossier ou lecteur hérite des droits du compte appelant. Une analyse avec --system utilise les droits du processus système local. Une console élevée n’est pas un prérequis général et n’étend pas les droits réels d’une analyse utilisateur.
  • Paramètres à remplacer : Remplacez C:\Users\Public\Downloads, C:\IR\Evidence et D:\ par le chemin autorisé. Ne saisissez pas littéralement de paramètres entre chevrons.
  • Effet : scan démarre immédiatement l’analyse. Sans --noui, une fenêtre de progression apparaît ; les résultats figurent dans Sophos Endpoint et les menaces détectées sont signalées à Sophos Fusion.
  • Sortie : Avec --noui, aucune interface n’apparaît, les détections sont écrites sur stdout et le processus attend la fin. Pour une exécution non fatale, --json laisse un seul objet JSON sur stdout.

Exécuter un System Scan

Un Full System Scan s’exécute avec les droits du Local System Process :

& "C:\Program Files\Sophos\Endpoint Defense\sophosinterceptxcli.exe" scan --system --full --noui

Un Quick System Scan se concentre sur les fichiers fréquemment utilisés, les processus actifs et récemment exécutés, les Autostarts, MBR et la mémoire :

& "C:\Program Files\Sophos\Endpoint Defense\sophosinterceptxcli.exe" scan --system --quick --noui

Avec --system, aucun Target supplémentaire n’est indiqué. Les fichiers auxquels Local System n’a pas accès, par exemple les contenus EFS liés à l’utilisateur, peuvent ne pas être scannés.

Scanner un fichier, dossier ou lecteur

Un Scan ciblé s’exécute avec les droits de l’utilisateur appelant :

& "C:\Program Files\Sophos\Endpoint Defense\sophosinterceptxcli.exe" scan --noui "C:\Users\Public\Downloads"

Un lecteur complet exige le Backslash final :

& "C:\Program Files\Sophos\Endpoint Defense\sophosinterceptxcli.exe" scan --noui "D:\"

D: sans Backslash désigne normalement uniquement le répertoire actuel de ce lecteur. Les chemins UNC sont pris en charge si le compte appelant dispose des droits.

Les Wildcards sont possibles dans les noms de dossier et de fichier, mais pas dans les noms de lecteur. Une expansion dans le dernier élément du chemin est plus fiable qu’un Wildcard dans un dossier parent.

Archives et sortie détaillée

--expand_archives ouvre les archives prises en charge et scanne leur contenu. Cela augmente la durée et les I/O et s’utilise donc de manière ciblée.

--noui masque l’interface et attend la fin du Scan. --verbose n’est valide qu’avec cette option :

& "C:\Program Files\Sophos\Endpoint Defense\sophosinterceptxcli.exe" scan --noui --verbose --expand_archives "C:\IR\Evidence"

Une sortie Verbose volumineuse n’est pas écrite sans contrôle dans les RMM Logs. Les chemins peuvent contenir des noms d’utilisateur et des informations de projet sensibles.

Traiter correctement les Exit Codes

CodeSignification
0Scan réussi, aucun malware trouvé
1erreur de traitement de la commande
2erreur inattendue au démarrage de l’outil
3au moins une menace détectée
4erreur de Scan pour au moins un fichier
5au moins un fichier chiffré
6au moins un format non pris en charge
7au moins un fichier inaccessible

Lorsque plusieurs états se produisent, l’outil renvoie le Code le plus grave. Une valeur différente de zéro ne signifie donc pas automatiquement un malware. Inversement, le Code 0 ne prouve pas que tous les fichiers imaginables étaient accessibles ni toutes les Cloud Queries possibles.

JSON pour l’automatisation

--json écrit un résultat structuré sur stdout à la fin. Sauf pour les erreurs fatales avec Code 1 ou 2, un Script peut analyser directement le résumé et, pour un User Scan, les fichiers concernés :

$cli = "C:\Program Files\Sophos\Endpoint Defense\sophosinterceptxcli.exe"
$json = & $cli scan --noui --json "C:\Users\Public\Downloads"
$exitCode = $LASTEXITCODE

if ($json) {
    $result = $json | ConvertFrom-Json
    $result.summary
}

exit $exitCode

Pour un User Scan, la sortie contient notamment Targets, Detections, Scan Errors, fichiers non pris en charge, inaccessibles, chiffrés et endommagés. L’objet JSON d’un System Scan contient uniquement type et summary ; il ne comprend aucune liste de fichiers.

Live Protection et exceptions

Les Scans utilisent Live Protection pour obtenir les informations SophosLabs actuelles. Sans réseau ou si Live Protection est désactivé, l’évaluation est moins complète.

Un User Scan ciblé respecte les exceptions globales et de Policy. Un fichier exclu n’est pas soudainement contrôlé intégralement par un appel CLI manuel. Avant une Incident Investigation, il faut vérifier les exceptions réellement appliquées.

Validation et escalade

Un Runbook de production doit :

  1. Confirmer que la CLI existe au chemin documenté et valider les options locales avec help scan.
  2. Limiter Scope et durée maximale.
  3. Enregistrer séparément stdout, stderr et Exit Code.
  4. Traiter le Code 3 comme Detection et différencier les autres Codes.
  5. Corréler le résultat avec Central Events et Health.
  6. Ne créer aucune exception ou suppression automatique sur le seul Exit Code.

L’exécution est validée lorsque le processus est terminé, que son code de sortie est conservé séparément et que la sortie attendue est disponible. Corrélez le code 3 avec les événements Sophos Fusion, puis suivez le runbook de nettoyage des menaces. Pour les codes 4 à 7, examinez les fichiers indiqués par un User Scan. Un System Scan ne renvoie aucune liste de fichiers : conservez et transmettez donc son JSON et sa sortie console lors de l’escalade. Analysez les codes 1 ou 2 et les pannes récurrentes avec Endpoint Self Help et SDU. Ces états ne constituent pas tous une détection de malware.

Questions fréquentes

Pourquoi un System Scan ne trouve-t-il pas un fichier utilisateur chiffré par EFS ?

Le System Scan s’exécute avec les droits de Local System et ne possède pas automatiquement les clés EFS privées de l’utilisateur. Un User Scan ne peut contrôler que les fichiers accessibles au compte appelant.

L'Exit Code 7 est-il une détection de malware ?

Non. Le Code 7 signifie qu’au moins un fichier était inaccessible. La cause peut être une autorisation, un verrouillage ou un chemin indisponible et doit être contrôlée séparément.