Przejdz do tresci
Avanet

Skanowanie Sophos Endpoint w Windows przez CLI

W pojedynczym podejrzanym przypadku często wystarcza Scan z lokalnego interfejsu. W runbooku RMM, podczas Incident Response lub dla określonej ścieżki Windows CLI jest dokładniejsze. Instaluje się z Sophos Endpoint i dodatkowo zgłasza Detections do Sophos Central.

Planowanie i rozwiązywanie problemów skanów Sophos Endpoint obejmuje planowanie, skany zaplanowane, analizę czasu działania i stan File Scanner. Ten artykuł koncentruje się na CLI Windows i niezawodnej automatyzacji.

Ścieżka i pomoc

Narzędzie znajduje się standardowo pod:

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

Administracyjny PowerShell pokazuje dostępne opcje Scan:

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

Miarodajna jest pomoc wersji zainstalowanej lokalnie. Narzędzie należy do agenta Windows; ta ścieżka nie dotyczy macOS.

Uruchamianie skanu systemowego

Pełny System Scan działa z prawami lokalnego procesu systemowego:

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

Quick System Scan skupia się na często używanych plikach, procesach działających i ostatnio wykonywanych, Autostarts, MBR i pamięci:

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

Przy --system nie podaje się dodatkowych Targets. Pliki niedostępne dla lokalnego procesu systemowego, na przykład powiązane z użytkownikiem treści EFS, mogą pozostać nieskanowane.

Skanowanie pliku, folderu lub dysku

Ukierunkowany Scan działa z prawami wywołującego użytkownika:

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

Cały dysk wymaga końcowego Backslash:

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

D: bez Backslash zwykle oznacza tylko bieżący katalog tego dysku. Ścieżki UNC są obsługiwane, jeżeli konto wywołujące ma dostęp.

Wildcards są możliwe w nazwach folderów i plików, ale nie dysków. Rozwinięcie w ostatnim elemencie ścieżki jest bardziej niezawodne niż Wildcard w folderze nadrzędnym.

Archiwa i szczegółowe wyniki

--expand_archives otwiera obsługiwane archiwa i sprawdza ich zawartość. Zwiększa to czas i I/O, dlatego należy używać go celowo.

--noui ukrywa interfejs i czeka na zakończenie Scan. Tylko wraz z nim poprawne jest --verbose:

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

Bardzo dużego Verbose Output nie należy bez kontroli zapisywać w RMM Logs. Ścieżki mogą zawierać nazwy użytkowników i wrażliwe informacje projektowe.

Prawidłowa obsługa Exit Codes

KodZnaczenie
0Scan udany, nie znaleziono malware
1błąd przetwarzania polecenia
2nieoczekiwany błąd uruchomienia narzędzia
3wykryto co najmniej jedno zagrożenie
4co najmniej jeden błąd skanowania pliku
5co najmniej jeden zaszyfrowany plik
6co najmniej jeden nieobsługiwany format
7co najmniej jeden plik był niedostępny

Jeżeli występuje wiele stanów, narzędzie zwraca najpoważniejszy kod. Wartość różna od zera nie zawsze oznacza malware. Z drugiej strony kod 0 nie dowodzi, że każdy plik był dostępny i wszystkie zapytania Cloud mogły zostać wykonane.

JSON dla automatyzacji

--json zapisuje na końcu strukturalny wynik do stdout. Poza fatalnymi błędami o kodzie 1 lub 2 skrypt może bezpośrednio przetworzyć podsumowanie i pliki:

$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

W User Scan wynik zawiera między innymi Targets, Detections, błędy skanowania, pliki nieobsługiwane, niedostępne, zaszyfrowane i uszkodzone. System Scan zwraca krótsze podsumowanie.

Live Protection i wyjątki

Scans używają Live Protection do pobierania aktualnych informacji SophosLabs. Bez sieci lub przy wyłączonym Live Protection ocena jest mniej kompletna.

Ukierunkowany User Scan respektuje wyjątki globalne i Policy Exceptions. Ręczne wywołanie CLI nie powoduje pełnego sprawdzenia pliku objętego wyjątkiem. Przed dochodzeniem należy więc sprawdzić skuteczne wyjątki.

Bezpieczny runbook RMM

Produkcyjny runbook powinien:

  1. Sprawdzić obecność i wersję CLI.
  2. Ograniczyć Scope i maksymalny czas.
  3. Oddzielnie zapisać stdout, stderr i Exit Code.
  4. Traktować kod 3 jako Detection, a pozostałe kody oceniać osobno.
  5. Skorelować wynik z Central Events i Health.
  6. Nie tworzyć automatycznego wyjątku ani nie usuwać pliku wyłącznie na podstawie Exit Code.

Po Detection obowiązuje runbook Threat Cleanup. Głębsze problemy agenta opisuje Endpoint Self Help i SDU.

Często zadawane pytania

Dlaczego System Scan nie znajduje pliku użytkownika zaszyfrowanego przez EFS?

System Scan działa z prawami lokalnego procesu systemowego i nie ma automatycznie prywatnych kluczy EFS użytkownika. User Scan może sprawdzić tylko pliki dostępne dla wywołującego konta.

Czy Exit Code 7 oznacza wykrycie malware?

Nie. Kod 7 oznacza, że co najmniej jeden plik był niedostępny. Przyczyną może być uprawnienie, blokada lub niedostępna ścieżka i wymaga osobnej kontroli.