
semplice scanner di IOC basato su YARA
...un semplice scanner IOC modulare e autonomo basato su host
Spyre è un semplice scanner IOC basato su host, costruito attorno al motore di pattern matching YARA e ad altri moduli di scansione. L'obiettivo principale di questo progetto è la facile messa in opera delle regole YARA e di altri indicatori di compromissione.
Gli utenti devono portare i propri set di regole. Il repository awesome-yara fornisce una buona panoramica dei set di regole YARA gratuiti disponibili.
Spyre è pensato per essere utilizzato come strumento di indagine da parte dei responder agli incidenti. Non è destinato a trasformarsi in alcun tipo di servizio di protezione endpoint.
Usare Spyre è facile:
Aggiungi le firme YARA. Nella configurazione predefinita, Spyre legge le regole YARA per la scansione di file e processi rispettivamente da filescan.yar e procscan.yar. Le seguenti opzioni esistono per fornire file di regole a Spyre (e verranno provate in questo ordine):
spyre o spyre.exe, usa spyre.zip.I contenuti del file ZIP possono essere crittografati usando la password infected (standard del settore AV) per impedire al software antivirus di scansionare le regole, classificarle come contenuto dannoso e impedire la scansione.
I file di regole YARA possono contenere dichiarazioni include.
Distribuisci, esegui lo scanner
Raccogli report e prove
La configurazione runtime viene effettuata tramite un file opzionale spyre.yaml.
Se un file ZIP è stato aggiunto al binario di Spyre, la configurazione e altri file come le regole YARA vengono letti solo da questo file ZIP. Altrimenti, vengono letti dalla directory in cui è stato posizionato il binario.
Vedi la sottodirectory example-configuration/ per un esempio.
hostname / interruttore da riga di comando --set-hostname: Imposta esplicitamente il nome host che verrà utilizzato nel file di log e nel report. Di solito non è necessario.
max-file-size / interruttore da riga di comando --max-file-size: Dimensione massima per i file da scansionare utilizzando moduli di scansione costosi come YARA. Predefinito: 32MB
proc-ignore-names / interruttore da riga di comando --proc-ignore: Nomi dei processi che non verranno scansionati utilizzando moduli di scansione della memoria dei processi.
paths / interruttore da riga di comando --path: Percorsi da scansionare utilizzando moduli di scansione file. Predefinito: / (Unix) o tutte le unità fisse (Windows).
report / interruttore da riga di comando --report: Imposta uno o più obiettivi di report. Predefinito: spyre_${hostname}_${time}.log nella directory di lavoro corrente, usando il formato plain. È possibile specificare un formato di output diverso aggiungendo .
Attualmente ci sono tre aree per le quali possono essere implementati moduli di scansione: controlli a livello di sistema, scansioni di file e scansioni di processi.
Di seguito sono elencati i moduli attualmente implementati e i parametri di configurazione supportati.
system
eventobj (Windows)
iocsregistry (Windows)
iocswinkernelobj (Windows)
iocsconficker, booleano: IOC Conficker dinamici (basati su host/processo) devono essere aggiunti alla lista degli IOC? (Predefinito: false)findwindow (Windows)
iocsfile
yara
rule-filesSi prega di fare riferimento al file di configurazione di esempio example-spyre.yaml per suggerimenti su come descrivere gli indicatori di compromissione per ciascun modulo.
YARA è configurato con le impostazioni predefinite, più i seguenti interruttori espliciti (cfr. 3rdparty.mk):
--disable-magic--disable-cuckoo--enable-dotnet--enable-macho--enable-dexPer le scansioni di file, sono definite le seguenti variabili:
filename,filepath,extension,filetype (attualmente non popolata durante la scansione)Per le scansioni di processi, sono definite le variabili pid e executable.
La metavariabile spyre_collect_limit può essere utilizzata per limitare il numero di scritture raccolte da file corrispondenti o per inibire del tutto la raccolta di file. Questo può essere utile per limitare la dimensione dei pacchetti di prove ed evitare di raccogliere informazioni sensibili.
Spyre può essere compilato per target Linux e Windows a 32 e 64 bit.
Su un sistema Debian/buster (o un chroot) in cui sono stati installati i seguenti pacchetti:
GOROOT has been set.Questo descrive l'ambiente di compilazione che viene testato regolarmente tramite CI.
La stessa compilazione è stata tentata con successo anche su Fedora 30 con i seguenti pacchetti installati:
Una volta installato tutto, basta digitare make. Questo dovrebbe scaricare gli archivi per musl-libc, openssl, yara, compilarli e poi compilare spyre.
I binari spyre puri vengono creati in _build/<triplet>/.
Eseguire make release crea un file ZIP che contiene quei binari per tutte le architetture supportate.
La compatibilità con questi sistemi è stata rimossa con Go 1.11, quindi è necessaria una toolchain Go 1.10. Poiché Go 1.10 non supporta i moduli Go, le dipendenze Go di terze parti devono essere vendored: usa una versione più recente di Go per farlo (basta eseguire go vendor) e imposta GOROOT in modo che punti alla toolchain Go 1.10 prima di eseguire make.
Attualmente, la cross-compilazione non è supportata.
Il make fornito dal sistema è troppo vecchio perché Apple ha deciso di essere allergica alla GPLv3. gmake da Homebrew funziona bene.
Vedi HACKING.md
Copyright 2018-2020 DCSO Deutsche Cyber-Sicherheitsorganisation GmbH
Copyright 2020-2021 Spyre Project Authors (see: AUTHORS.txt)
Questo programma è software libero: puoi ridistribuirlo e/o modificarlo secondo i termini della GNU Lesser General Public License come pubblicata dalla Free Software Foundation, sia la versione 3 della Licenza, o (a tua scelta) qualsiasi versione successiva.
Vedi il file LICENSE per il testo completo della licenza.
,format=FORMATI seguenti formati sono attualmente supportati:
plain, il predefinito, un semplice formato di testo leggibile dall'uomotsjson, un documento JSON che può essere importato in TimesketchLe variabili hostname e time vengono espanse solo nel nome del file di destinazione.
Nota: La configurazione degli obiettivi del report probabilmente cambierà in una delle prossime versioni.
high-priority / interruttore da riga di comando --high-priority: Nella sua configurazione predefinita (con questa impostazione disabilitata), Spyre istruisce lo scheduler del sistema operativo ad abbassare le priorità del tempo CPU e delle operazioni I/O, per evitare interruzioni del normale funzionamento del sistema.
interruttore da riga di comando --loglevel=LIVELLO: Imposta il livello di log. Validi: trace, debug, info, notice, warn, error, quiet.
fail-on-warningsproc
yara
rule-filesfail-on-warnings