DFIR · Malware-scanning · Detektionsregler

ClamAV & YARA
kommandoreference

Fyldestgørende oversigt over funktioner, kommandoer og flag for begge værktøjer — tilpasset Linux (Zorin / Ubuntu). Klik på et kodeeksempel for at kopiere det.

9kernekommandoer
60+flag & optioner
2integrationsmetoder
v1.x / v4.xClamAV / YARA
01

Installation

Pakker fra Ubuntu/Zorin-repo. clamav-daemon giver baggrundsscanning; clamtk er en GUI.

Installér ClamAV + YARA + GUIapt
sudo apt update
sudo apt install clamav clamav-daemon clamtk yara -y
Pakker: clamav (clamscan/freshclam), clamav-daemon (clamd/clamdscan), clamtk (GUI), yara (standalone engine).
02

freshclam

opdatering

Henter og opdaterer virusdefinitioner (main.cvd, daily.cvd, bytecode.cvd). Kører normalt som service i baggrunden.

Manuel opdatering
# Stop servicen først — ellers låser den databasen
sudo systemctl stop clamav-freshclam
sudo freshclam
sudo systemctl start clamav-freshclam
FlagFunktion
-vVerbose output under hentning
--daemon / -dKør som baggrundsdaemon med periodiske checks
--checks=N / -c NAntal databasekontroller pr. døgn (daemon-mode)
--datadir=PATHSti til databasemappe (standard /var/lib/clamav)
--config-file=PATHBrug alternativ freshclam.conf
--show-progressVis progress-bar ved download
--on-update-execute=CMDKør kommando efter vellykket opdatering
--list-mirrorsVis status for kendte mirrors
03

clamscan

on-demand scanner

Standalone scanner. Loader hele signaturdatabasen i RAM ved hver kørsel — grundig, men langsom. Brug clamdscan til hyppig scanning.

Scan mappe, vis kun fund
clamscan -ri ~/Downloads
-r rekursivt · -i kun inficerede
Scan med bip ved fund
clamscan -ri --bell ~
Flyt fund til karantæne
mkdir -p ~/karantæne
clamscan -ri --move=~/karantæne ~
Foretræk --move frem for --remove
Scan hele systemet
sudo clamscan -ri / --exclude-dir="^/sys|^/proc"
FlagFunktion
-r / --recursiveScan undermapper rekursivt
-i / --infectedVis kun inficerede filer
-oUndertryk OK-resultater (kun fejl/fund)
--bellLydsignal ved fund
--remove[=yes/no]Slet inficerede filer (destruktivt — vær forsigtig)
--move=DIRFlyt fund til karantænemappe
--copy=DIRKopiér fund til mappe (behold original)
-l FILE / --log=FILESkriv scanresultat til logfil
-d FILE/DIR / --database=Brug egen signaturdatabase eller YARA-regel
--exclude=REGEXSpring filer over efter regex på sti
--exclude-dir=REGEXSpring mapper over efter regex
--include=REGEXScan kun matchende filer
--max-filesize=NSpring filer over større end N (fx 100M)
--max-scansize=NMax data scannet pr. fil
--max-recursion=NMax dybde i arkiv-/komprimeringslag
--scan-archive[=yes/no]Scan inde i zip/rar/tar m.m. (default ja)
--detect-pua[=yes]Detektér Potentially Unwanted Applications
--scan-pe / --scan-elf / --scan-ole2Slå scanning af specifikke filtyper til/fra
--alert-encrypted[=yes]Markér krypterede arkiver/dokumenter som mistænkelige
--alert-broken[=yes]Markér ødelagte eksekverbare filer
--alert-macros[=yes]Advar om makroer i Office-dokumenter
--bytecode[=yes]Aktivér bytecode-signaturer (avanceret detektion)
--gen-jsonGenerér JSON-metadata om scannede objekter
-z / --allmatchFortsæt scanning af fil efter første match
--stdoutSend al output til stdout (også fejl)
-V / --versionVis version + database-info
Exit-koder: 0 = ingen fund · 1 = malware fundet · 2 = fejl. Brugbart i scripts: clamscan -ri ~ || echo "fund!"
04

clamdscan

daemon-klient

Sender scanjob til den kørende clamd-daemon, som allerede har databasen i hukommelsen. Markant hurtigere ved gentagne scans.

Hurtig scan via daemon
clamdscan -r ~/Downloads
Multithreaded fil-passing
clamdscan --multiscan --fdpass ~
FlagFunktion
-m / --multiscanScan parallelt med flere tråde
--fdpassSend fil-deskriptor til daemon (omgår permission-problemer)
--streamStream filindhold til daemon over socket
-i / --infectedVis kun fund
--move=DIR / --removeKarantæne / sletning som clamscan
--config-file=PATHAlternativ clamd.conf
-l FILELogfil
05

clamd & service

daemon

Baggrundsdaemonen der holder databasen i RAM og tilbyder on-access scanning (real-time overvågning af filsystemet via fanotify).

Aktivér & start daemon
sudo systemctl enable --now clamav-daemon
On-access (real-time) scan
# kræver OnAccess* i clamd.conf
sudo clamonacc -v
clamd.conf optionFunktion
OnAccessIncludePathMappe der real-time-overvåges
OnAccessPreventionBloker adgang til inficerede filer (ikke kun alarm)
OnAccessExtraScanningScan også ved create/move events
MaxThreadsAntal scantråde i daemon
LocalSocketUnix-socket sti til klientkommunikation
LogFile / LogTimeLogdestination og tidsstempling
clamconf dumper hele den aktive konfiguration for fejlfinding: clamconf -n
06

sigtool

signaturer

Værktøj til at inspicere databaser og bygge egne signaturer — nyttigt når du laver custom detektion i DFIR-sager.

KommandoFunktion
sigtool --info FILE.cvdVis metadata om en databasefil (version, antal sig.)
sigtool --unpack FILE.cvdPak databasen ud til rå signaturfiler
sigtool --md5 FILEGenerér MD5 hash-signatur af en fil
sigtool --sha256 FILEGenerér SHA256 hash-signatur
sigtool --hex-dumpKonvertér input til hex til brug i signaturer
sigtool --find-sigs=REGEXFind signaturer der matcher mønster i databasen
sigtool --vba FILEUdtræk VBA-makroer fra Office-dokumenter
Egen hash-signatur: sigtool --sha256 malware.bin > min.hsb → læg .hsb i /var/lib/clamav/ og scan med clamscan -d min.hsb
07

yara

detektionsregler

Mønsterbaseret klassificering af filer og processer ud fra regler du selv skriver. Standalone YARA understøtter alle moduler (pe, elf, hash, math, cuckoo m.fl.) — i modsætning til ClamAV's indbyggede YARA-støtte.

Kør regel mod mappe
yara -r regler.yar ~/sag
Vis matchende strenge
yara -r -s regler.yar ~/sag
Kompilér regler (hurtigere)
yarac regler.yar regler.cmp
yara -r regler.cmp ~/sag
Scan en kørende proces
sudo yara regler.yar $(pidof mistænkt_proces)
YARA kan scanne PID'er direkte — stærkt til memory forensics
Færdige regelsæt: Neo23x0/signature-base (Florian Roth, motoren bag LOKI/THOR), Elastic protections-artifacts, Yara-Rules/rules. Klon og kør rekursivt: yara -r signature-base/yara/ ~/sag 2>/dev/null
08

YARA flag-reference

Komplet flagoversigt for yara CLI.

FlagFunktion
-r / --recursiveScan mapper rekursivt
-s / --print-stringsVis de strenge der matchede
-m / --print-metaVis metadata fra reglen (author, ref, desc)
-g / --print-tagsVis regel-tags
-e / --print-namespaceVis namespace for matchet regel
-L / --print-statsVis statistik efter scanning
-c / --countVis kun antal matches pr. regel
-d VAR=VALUEDefinér ekstern variabel til reglen
-t TAG / --tag=TAGVis kun regler med dette tag
-i ID / --identifier=Kør kun reglen med dette navn
-n / --negateVis filer der ikke matcher
-w / --no-warningsUndertryk advarsler
-f / --fast-scanHurtig scan (stop ved første match pr. streng)
-x MODULE=FILESend moduldata (fx cuckoo report) til reglen
-p N / --threads=NAntal tråde til parallel scanning
-a N / --timeout=NAfbryd scanning efter N sekunder
-z N / --max-strings-per-ruleLoft over strenge pr. regel
--max-process-memory-chunkChunk-størrelse ved proces-scanning
-X N / --skip-larger=NSpring filer større end N bytes over
--scan-listBehandl input som fil med liste af stier
-v / --versionVis YARA-version
Anatomi af en regel: rule navn { meta: … strings: $a = "x" condition: $a } — sektionerne meta, strings og condition. Moduler importeres øverst med import "pe".
09

YARA i ClamAV

integration

ClamAV kan indlæse YARA-regler nativt sammen med sine egne signaturer.

Læg YARA-regler i ClamAV's database
sudo cp regler.yar /var/lib/clamav/
# eller scan ad hoc med -d:
clamscan -r -d regler.yar ~/sag
Begrænsninger: ClamAV's YARA-motor understøtter ikke alle features. Moduler som pe, hash, math og eksterne variabler virker ikke, og regler der bruger dem afvises ved indlæsning. Til fuld funktionalitet — herunder signature-base — brug standalone YARA.
10

Automatisering

systemd / cron

Planlæg ugentlig scanning og logging.

Ugentlig cron-scan med log
# crontab -e  → kør hver søndag kl. 02:00
0 2 * * 0 clamdscan -r --fdpass /home \
  -l /var/log/clamav/weekly-$(date +\%F).log -i
Kombineret ClamAV + YARA wrapper
#!/usr/bin/env bash
TARGET="${1:-$HOME}"
TS=$(date +%F_%H%M)
clamdscan -r --fdpass -i "$TARGET" | tee "clam_$TS.log"
yara -r -m ~/yara/signature-base/yara/ "$TARGET" \
  2>/dev/null | tee "yara_$TS.log"