Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
linux-malware-detect — Scanner di malware Linux multi-motore con cinque fasi di rilevamento (MD5, pattern HEX, YARA, ClamAV, statistico), monitoraggio inotify in tempo reale, quarantena e avvisi multi-canale | Kitploit
Strumenti/GitHubGitHub/rfxn/linux-malware-detect
Strumenti DifensiviAnalisi MalwareThreat IntelligenceRilevamento IntrusioniRisposta agli IncidentiRilevamento di Anomalie
GitHubrfxn/linux-malware-detect

linux-malware-detect

Scanner di malware Linux multi-motore con cinque fasi di rilevamento (MD5, pattern HEX, YARA, ClamAV, statistico), monitoraggio inotify in tempo reale, quarantena e avvisi multi-canale

Vedi Repository
1.5k2483 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

Linux Malware Detect (LMD)

Linux Malware Detect

CI Version License: GPL v2 Platform: Linux

Scanner di malware per Linux — rilevamento delle minacce multi-stadio (MD5, SHA-256, HEX, YARA, analisi statistica), integrazione con ClamAV, monitoraggio in tempo reale tramite inotify, operazioni di quarantena/pulizia/ripristino e alerting multi-canale (email, Slack, Telegram, Discord).

(C) 2002-2026, R-fx Networks <[email protected]>
(C) 2026, Ryan MacDonald <[email protected]>
Licenziato sotto GNU GPL v2


Novità nella 2.0.1

Motore di scansione nativo 43x più veloce — la pipeline di scansione nativa è stata completamente riscritta con elaborazione parallela in batch. Benchmark reale su ~10.000 file:

VersioneTempo di esecuzioneFileRilevazioni
v1.6.61.217s9.93135
v2.0.128s9.93135

Il confronto delle firme MD5 e HEX ora utilizza grep batch con worker paralleli Aho-Corasick, eliminando il sovraccarico di compilazione dei pattern per file e ~500.000 fork di sottoprocessi per scansione. Configura il numero di worker paralleli con scan_workers (predefinito: auto).

Altre novità: gestione del ciclo di vita della scansione (--kill, --pause, --stop/--continue, -L), scansione degli hash SHA-256 con rilevamento automatico dell'hardware CPU (scan_hashtype), scansione YARA nativa (scan_yara=1), alerting tramite webhook Discord, correzioni per l'alerting Slack/Telegram, supporto ai wildcard hex ClamAV nel motore nativo e oltre 200 correzioni di bug in tutto il codebase. Vedere CHANGELOG per i dettagli completi.


Contenuti

  • 1. Introduzione
  • 2. Installazione
  • 3. Configurazione
    • 3.1 Opzioni generali
    • 3.2 Alerting
    • 3.3 Opzioni di scansione
    • 3.4 Scansione YARA
    • 3.5 Opzioni di quarantena
    • 3.6 Opzioni di monitoraggio
    • 3.7 Hook post-scansione
    • 3.8 Integrazione ClamAV
    • 3.9 ClamAV remoto
    • 3.10 Integrazione ELK
    • 3.11 Ordine di caricamento della configurazione
  • 4. Utilizzo
  • 5. Opzioni di ignoramento
  • 6. Cron giornaliero
  • 7. Monitoraggio Inotify
  • 8. Sistema di firme
    • 8.1 Aggiornamenti delle firme
    • 8.2 Firme personalizzate
  • 9. Quarantena e pulizia
    • 9.1 Regole del pulitore
  • 10. Scansione hook
  • Integrazione
  • Licenza
  • Supporto

Avvio rapido```bash

Install to /usr/local/maldetect

./install.sh

Scan all files under a path

maldet -a /home/?/public_html

Scan files modified in the last 2 days

maldet -r /home/?/public_html 2

Enable YARA scanning at runtime

maldet -co scan_yara=1 -a /home/?/public_html

Quarantine all hits from a scan

maldet -q SCANID

Start real-time inotify monitoring

maldet -m users

Update signatures

maldet -u

root@kitploit:~
---

## 1. Introduzione

Architettura di LMD, fasi di rilevamento e piattaforme supportate.

Linux Malware Detect (LMD) è uno scanner malware per Linux rilasciato sotto licenza GNU GPLv2, progettato intorno alle minacce affrontate negli ambienti di hosting condiviso. Utilizza dati sulle minacce provenienti da sistemi di rilevamento intrusioni perimetrali di rete per estrarre malware attivamente utilizzati negli attacchi e genera firme per il rilevamento. Inoltre, i dati sulle minacce derivano dalle segnalazioni degli utenti tramite la funzionalità checkout di LMD e dalle risorse della community di malware.

LMD si concentra sulle classi di malware che i prodotti antivirus tradizionali spesso non rilevano: shell PHP, injector JavaScript, backdoor codificate in base64, bot IRC e altre minacce a livello di applicazione web che prendono di mira gli account utente di hosting condiviso piuttosto che le componenti interne del sistema operativo.

**Fasi di rilevamento**
- Corrispondenza hash MD5 dei file per l'identificazione esatta delle minacce
- Corrispondenza di pattern HEX tramite motore grep batch nativo con worker paralleli
- Scansione con firme composte (csig) con logica booleana multi-pattern (AND/OR/soglia), corrispondenza senza distinzione tra maiuscole e minuscole, corrispondenza wide (UTF-16LE) e caratteri jolly con gap delimitato
- Scansione nativa con regole YARA con supporto completo dei moduli e regole personalizzate
- Analisi statistica della lunghezza delle stringhe per rilevare minacce offuscate (base64, gzinflate)
- Integrazione ClamAV per una copertura estesa con firme ClamAV mantenute da LMD

**Scansione e monitoraggio**
- Scansione di tutti i file, dei file modificati di recente o di file da un elenco
- Monitoraggio file in tempo reale tramite inotify del kernel (eventi di creazione/modifica/spostamento)
- Scansione degli upload HTTP tramite hook `inspectFile` di ModSecurity2
- Scansione in background per operazioni su larga scala senza supervisione
- Filtraggio regex di inclusione/esclusione per singola scansione

**Quarantena e risposta**
- Coda di quarantena con archiviazione file a permessi zero
- Quarantena/ripristino in batch per ID di scansione
- Regole di pulizia specifiche per firma per la rimozione del malware
- Ripristino completo dei file (contenuto, proprietario, permessi, mtime)

**Avvisi e report**
- Avvisi email HTML + testo con design rfxn unificato (marchio teal, voci a scheda)
- Supporto relay SMTP (TLS/SSL) per ambienti senza MTA locale
- Avvisi per voce tramite Slack Block Kit, Telegram MarkdownV2, Discord embed
- Modelli di avviso personalizzabili tramite override in `alert/custom.d/`
- Report di scansione con dettagli dei riscontri per file, tipi di riscontro con codifica a colori

**Infrastruttura**
- Collegamento automatico delle firme ClamAV per copertura a doppio motore
- Cron giornaliero con rilevamento automatico di oltre 12 pannelli di controllo per hosting
- Controllo delle risorse CPU/IO (nice, ionice, cpulimit)
- Aggiornamenti automatici di firme e versione
- Supporto per unità di servizio systemd e script di init SysV

### Piattaforme supportate

LMD funziona su qualsiasi distribuzione Linux con bash e utility GNU standard. Piattaforme testate:

| Piattaforma | Sistema di init | Percorso configurazione pacchetto |
|----------|-------------|---------------------|
| RHEL / Rocky / AlmaLinux 8, 9, 10 | systemd | `/etc/sysconfig/maldet` |
| CentOS 6, 7 | SysV / systemd | `/etc/sysconfig/maldet` |
| Debian 10, 11, 12 | systemd | `/etc/default/maldet` |
| Ubuntu 20.04, 22.04, 24.04 | systemd | `/etc/default/maldet` |
| Gentoo | OpenRC | — |
| Slackware | SysV | — |
| FreeBSD | — | — (parziale; senza inotify) |

---

## 2. Installazione

Installazione, aggiornamento e rimozione di LMD da un sistema.

Lo script `install.sh` incluso gestisce tutte le attività di installazione. Le installazioni precedenti vengono automaticamente sottoposte a backup.```bash
./install.sh

L'installatore:

  • Copia i file in /usr/local/maldetect
  • Crea il symlink maldet in /usr/local/sbin/
  • Installa lo script cron.daily in /etc/cron.daily/maldet
  • Installa l'unità di servizio systemd (o lo script SysV init sui sistemi più vecchi)
  • Collega le firme LMD alle directory dati di ClamAV (se ClamAV è installato)
  • Preserva la configurazione esistente (conf.maldet), le firme personalizzate e i file da ignorare durante gli aggiornamenti

Le installazioni precedenti vengono salvate in /usr/local/maldetect.bk{PID} con un symlink maldetect.last che punta al backup più recente.

Percorsi predefiniti:

  • Percorso di installazione: /usr/local/maldetect
  • Symlink del binario: /usr/local/sbin/maldet
  • Script cron: /etc/cron.daily/maldet
  • Unità di servizio: /usr/lib/systemd/system/maldet.service

3. Configurazione

Tutte le impostazioni visibili all'utente e i loro valori predefiniti. Consultare man maldet(1) per il riferimento completo.

Il file di configurazione principale è /usr/local/maldetect/conf.maldet. Tutte le opzioni sono commentate per semplificare la configurazione. Le opzioni usano 0/1 per disattivare/attivare, salvo diversa indicazione.

La configurazione può anche essere sovrascritta in fase di esecuzione usando il flag -co:```bash maldet -co quarantine_hits=1,email_addr=[email protected] -a /home

root@kitploit:~
### 3.1 Opzioni generali

| Variable | Scopo | Predefinito |
|----------|---------|---------|
| `autoupdate_signatures` | Aggiorna automaticamente le firme ogni giorno tramite cron | `1` |
| `autoupdate_version` | Aggiorna automaticamente la versione di LMD ogni giorno tramite cron | `1` |
| `autoupdate_version_hashed` | Verifica l'hash SHA-256 dell'eseguibile LMD rispetto all'upstream (ricade su MD5) | `1` |
| `sigup_interval` | Ore tra i controlli automatici di aggiornamento firme tramite job cron indipendente (`/etc/cron.d/maldet-sigup`); 0 = disattivato | `6` |
| `cron_prune_days` | Giorni di conservazione dei dati di quarantena/sessione/temporanei | `21` |
| `cron_daily_scan` | Abilita la scansione automatica giornaliera tramite cron | `1` |
| `scan_days` | Giorni a ritroso per la ricerca di file modificati nelle scansioni cron giornaliere | `1` |
| `import_config_url` | URL per scaricare l'override remoto della configurazione | — |
| `import_config_expire` | Scadenza della cache per la configurazione importata (secondi) | `43200` |
| `sig_import_md5_url` | URL per scaricare firme MD5 personalizzate | — |
| `sig_import_hex_url` | URL per scaricare firme HEX personalizzate | — |
| `sig_import_yara_url` | URL per scaricare regole YARA personalizzate | — |
| `sig_import_sha256_url` | URL per scaricare firme SHA-256 personalizzate | — |
| `sig_import_csig_url` | URL per scaricare firme combinate personalizzate | — |
| `session_legacy_compat` | Genera file di sessione legacy in testo semplice insieme ai TSV: `auto` (rileva sessioni in vecchio formato), `1` (sempre), `0` (solo TSV) | `auto` |

### 3.2 Notifiche

| Variable | Scopo | Predefinito |
|----------|---------|---------|
| `email_alert` | Abilita le notifiche email dopo le scansioni | `0` |
| `email_addr` | Indirizzo del destinatario delle notifiche | `[email protected]` |
| `email_subj` | Modello dell'oggetto dell'email | `maldet alert from $(hostname)` |
| `email_ignore_clean` | Sopprime le notifiche quando tutti i rilevamenti sono stati ripuliti | `1` |
| `email_panel_user_alerts` | Invia le notifiche agli utenti del pannello in caso di rilevamento | `0` |
| `email_panel_from` | Intestazione From per le notifiche agli utenti del pannello | `[email protected]` |
| `email_panel_replyto` | Intestazione Reply-To per le notifiche agli utenti del pannello | `[email protected]` |
| `email_panel_alert_subj` | Oggetto per le notifiche agli utenti del pannello | `maldet alert from $(hostname)` |
| `email_format` | Formato email: `text`, `html` o `both` | `html` |
| `smtp_relay` | URL del relay SMTP (es. `smtps://smtp.gmail.com:465`) | — |
| `smtp_from` | Indirizzo del mittente per la consegna tramite relay SMTP | — |
| `smtp_user` | Nome utente per l'autenticazione SMTP | — |
| `smtp_pass` | Password per l'autenticazione SMTP | — |
| `slack_alert` | Abilita le notifiche Slack con caricamento file | `0` |
| `slack_subj` | Nome file per il caricamento su Slack | `maldet alert from $(hostname)` |
| `slack_token` | Token API Bot di Slack (ambiti: `files:write`, `files:read`) | — |
| `slack_channels` | Elenco di nomi o ID di canali separati da virgole | `maldetreports` |
| `telegram_alert` | Abilita le notifiche Telegram | `0` |
| `telegram_bot_token` | Token API Bot di Telegram | — |
| `telegram_channel_id` | ID della chat o del gruppo Telegram | — |
| `discord_alert` | Abilita le notifiche Discord tramite webhook | `0` |
| `discord_webhook_url` | URL del webhook Discord per l'invio delle notifiche | — |

### 3.3 Opzioni di scansione

| Variable | Scopo | Predefinito |
|----------|---------|---------|
| `scan_hashtype` | Algoritmo hash per la fase 1: `auto`, `sha256`, `md5`, `both` | `auto` |
| `scan_max_depth` | Profondità massima delle directory per find | `15` |
| `scan_min_filesize` | Dimensione minima dei file da scansionare | `24` bytes |
| `scan_max_filesize` | Dimensione massima dei file da scansionare | `2048k` |
| `scan_hexdepth` | Profondità in byte per il match delle firme HEX | `262144` |
| `scan_hex_chunk_size` | File per micro-lotto nella scansione HEX+CSIG (intervallo: 1024-20480) | `10240` |
| `scan_csig` | Abilita la scansione con firme combinate (csig) (solo modalità nativa) | `1` |
| `scan_workers` | Worker paralleli per le passate di scansione MD5, SHA-256, HEX e CSIG | `auto` |
| `scan_cpunice` | Priorità nice per il processo di scansione (da -19 a 19) | `19` |
| `scan_ionice` | Priorità della classe di scheduling IO (0-7) | `6` |
| `scan_cpulimit` | Limite rigido della CPU in percentuale (0=disattivato) | `0` |
| `scan_ignore_root` | Salta i file di proprietà di root nelle scansioni (non applicato in modalità monitor per impostazione predefinita; vedi `monitor_scan_owner_filters`) | `1` |
| `scan_ignore_user` | Salta i file di proprietà di utenti specifici | — |
| `scan_ignore_group` | Salta i file di proprietà di gruppi specifici | — |
| `scan_user_access` | Consenti agli utenti non-root di eseguire scansioni | `0` |
| `scan_user_access_minuid` | UID minimo per la creazione delle directory utente di --mkpubpaths | `100` |
| `scan_find_timeout` | Timeout per la generazione dell'elenco file di find (0=disattivato, minimo 60s, consigliato 14400=4 ore) | `0` |
| `scan_export_filelist` | Salva i risultati di find in tmp/find_results.last | `0` |
| `scan_tmpdir_paths` | Percorsi temporanei scrivibili da tutti inclusi nelle scansioni -a/-r | `/tmp /var/tmp /dev/shm /var/fcgi_ipc` |
| `string_length_scan` | Abilita l'analisi statistica della lunghezza delle stringhe | `0` |
| `string_length` | Lunghezza minima sospetta delle stringhe | `150000` |
| `scan_progress_log_interval` | Secondi tra i checkpoint del log di avanzamento durante le scansioni in background (0=disattivato) | `60` |
| `scan_meta_cleanup_age` | Ore di conservazione dei file meta delle scansioni completate/terminate (0=disattivato) | `48` |
| `maint_compress_age` | Giorni prima che i file di sessione completati vengano compressi con gzip (0=disattivato) | `30` |
| `maint_archive_age` | Giorni prima che le sessioni compresse vengano raggruppate in archivi mensili (0=disattivato) | `90` |

### 3.4 Scansione YARA

La scansione YARA nativa richiama il binario `yara` (o `yr` di YARA-X) indipendentemente da ClamAV, supportando moduli YARA completi, regole compilate e file di regole personalizzate che il sottoinsieme YARA limitato di ClamAV non può gestire. Quando entrambi sono disponibili, viene preferito `yr` (YARA-X). Se impostato su `auto`, la scansione YARA nativa viene abilitata solo quando ClamAV non è disponibile e viene trovato un binario yara/yr, evitando la valutazione duplicata delle regole.

| Variable | Scopo | Predefinito |
|----------|---------|---------|
| `scan_yara` | Abilita la fase di scansione YARA nativa: `auto` (rileva il binario, fallback su ClamAV), `0` (disattivata), `1` (attivata) | `auto` |
| `scan_yara_timeout` | Timeout in secondi (0=nessun timeout) | `300` |
| `scan_yara_scope` | Ambito delle regole quando è attivo anche ClamAV: `all` (scansione nativa completa) o `custom` (solo regole personalizzate in modalità nativa, ClamAV gestisce rfxn.yara) | `custom` |
| `sig_import_yara_url` | URL per scaricare regole YARA personalizzate all'aggiornamento delle firme | — |

**Regole YARA personalizzate** possono essere inserite in due posizioni, entrambe mantenute tra gli aggiornamenti:
- `sigs/custom.yara` — regole in file singolo
- `sigs/custom.yara.d/` — directory drop-in per file di regole `.yar` e `.yara`

Compatibile con set di regole di terze parti come [YARA Forge](https://yarahq.github.io/) e [Signature Base](https://github.com/Neo23x0/signature-base). Le regole compilate (output di `yarac`) sono supportate anche tramite `sigs/compiled.yarc`.

**Scansione batch:** YARA 4.0+ e tutte le versioni di YARA-X usano `--scan-list` per una scansione batch efficiente dei file. Le versioni precedenti di YARA ricadono automaticamente sulla scansione file per file.

Abilita in fase di esecuzione senza modificare la configurazione:```bash
maldet -co scan_yara=1 -a /home/?/public_html

3.5 Opzioni di quarantena

3.6 Opzioni di monitoraggio

3.7 Hook post-scansione

Uno script hook configurabile può essere invocato al termine della scansione, ricevendo i risultati della scansione tramite argomenti posizionali, variabili d'ambiente LMD_* e, opzionalmente, JSON su stdin. L'hook non interrompe mai la scansione — gli errori vengono registrati, non sono fatali. Vedere maldet(1) per il contratto completo dell'hook.

3.8 Integrazione ClamAV

Quando la scansione ClamAV è abilitata (scan_clamscan=1 o auto con un binario rilevato), LMD seleziona il miglior motore ClamAV disponibile in ordine di priorità:

  1. clamdscan remoto (se scan_clamd_remote=1 e la configurazione esiste)
  2. Demone clamd locale in esecuzione come root
  3. Demone clamd locale in esecuzione come non-root (con --fdpass)
  4. Binario clamscan (fallback, più lento)

Le firme LMD vengono automaticamente collegate tramite link simbolici alle directory dati di ClamAV da install.sh, dando a ClamAV accesso alle firme MD5 (rfxn.hdb), HEX (rfxn.ndb) e YARA (rfxn.yara) di LMD.

Gate di validazione delle firme: Prima di distribuire firme aggiornate nelle directory dati di ClamAV, LMD le valida tramite clamscan -d con una directory di staging. Se la validazione fallisce, le firme LMD esistenti vengono rimosse dal percorso di ClamAV per evitare che database malformati rompano ClamAV. Il segnale di ricaricamento SIGUSR2 a clamd viene inviato solo quando almeno una directory dati di ClamAV supera la validazione (issue #467).

VariabileScopoPredefinito
scan_clamscanAbilita ClamAV come motore di scansione: auto (rileva il binario a runtime), 0 (disabilitato), 1 (abilitato)auto

3.9 ClamAV remoto

3.10 Integrazione ELK

3.11 Ordine di caricamento della configurazione

Le fonti successive sovrascrivono i valori precedenti:

  1. internals/internals.conf — percorsi interni, rilevamento binari, definizioni URL
  2. conf.maldet — configurazione rivolta all'utente
  3. internals/compat.conf — mappature di variabili deprecate
  4. /etc/sysconfig/maldet o /etc/default/maldet — override di sistema
  5. CLI -co|--config-option — override a runtime

4. Utilizzo

Interfaccia a riga di comando, codici di uscita ed esempi comuni. Vedere man maldet(1) per il riferimento completo alle opzioni.``` usage: maldet [OPTION] [ARGUMENT]

SCANNING: -a, --scan-all PATH scan all files in path (wildcard: ?) -r, --scan-recent PATH DAYS scan files created/modified in last X days -f, --file-list FILE scan files from a line-separated file list -b, --background run scan in the background

SCAN FILTERS: -i, --include-regex REGEX include only matching paths -x, --exclude-regex REGEX exclude matching paths -co, --config-option V=V,... override config options at runtime -U, --user USER run as specified user

MONITORING: -m, --monitor USERS|PATHS|FILE|RELOAD start inotify monitoring -k, --kill-monitor stop inotify monitoring

SCAN MANAGEMENT: -L, --list-active list active scans (text/json/tsv) --kill SCANID abort a running scan --pause SCANID [DURATION] pause a running scan (e.g., 2h, 30m) --unpause SCANID resume a paused scan --stop SCANID checkpoint and stop a running scan --continue SCANID resume a stopped scan from checkpoint --maintenance rotate histories, compress/archive old sessions

QUARANTINE & RESTORE: -q, --quarantine SCANID quarantine hits from scan -n, --clean SCANID clean malware from scan hits -s, --restore FILE|SCANID restore quarantined file(s) -qd PATH override quarantine directory for this run

REPORTING: -e, --report [SCANID|list|latest|hooks|active] view scan report --all show full history with -e list (default: recent) --format text|json|html|tsv set report output format (default: text) --mailto ADDRESS email report to address --json-report [SCANID|list] shorthand: --report --format json --alert-daily generate inotify monitor digest alert --digest fire unified digest (monitor + hook sources) -l, --log view event log

UPDATES: -u, --update-sigs [--force] update malware signatures -d, --update-ver [--force|--beta] update LMD version --cron-sigup cron sig update (internal use)

OTHER: -p, --purge clear logs, quarantine, temp data -c, --checkout FILE submit suspected malware to rfxn.com --test-alert TYPE CHANNEL test alert delivery (scan|digest, email|slack|telegram|discord) --mkpubpaths create per-user pub/ data directories --web-proxy IP:PORT set HTTP/HTTPS proxy -hscan, --hook-scan scan via service hook (internal use) -v, --version show version information -h, --help show detailed help

root@kitploit:~
### 4.1 Codici di uscita

| Codice | Significato |
|------|---------|
| `0` | Successo, nessun rilevamento di malware |
| `1` | Errore o tutti i percorsi di scansione inesistenti |
| `2` | Trovati rilevamenti di malware |

**Esempi:**```bash
# Scan all files under user web roots
maldet -a /home/?/public_html

# Scan recent files with auto-quarantine and YARA enabled
maldet -co quarantine_hits=1,scan_yara=1 -r /home/?/public_html 2

# Background scan with email alert to specific address
maldet -b -co [email protected] -a /var/www

# View the most recent scan report
maldet -e

# Email a specific report
maldet --mailto [email protected] -e 050910-1534.21135

# Output scan report as JSON (pipe to jq for formatting)
maldet --format json -e 050910-1534.21135

# List all reports as JSON
maldet --format json -e list

# Shorthand JSON output (equivalent to --format json -e)
maldet --json-report 050910-1534.21135

# Restore all quarantined files from a scan
maldet -s 050910-1534.21135

Output JSON: Utilizza --format json -e o --json-report per generare JSON strutturato (schema v1.2) con metadati dello scanner, dettagli della scansione (percorso, tempi, conteggi file), voci per singolo hit con nome della firma, percorso del file, tipo di hit, proprietario, permessi e stato di quarantena, oltre a un riepilogo con ripartizioni per tipo. Sono supportate sia le sessioni TSV sia le sessioni plaintext legacy; le sessioni legacy includono "source": "legacy" e rendono i campi arricchiti non disponibili (hash, dimensione, proprietario, ecc.) come null.

4.2 Gestione delle Scansioni

Le scansioni a lunga esecuzione su filesystem di grandi dimensioni (1M+ file) possono essere controllate senza kill -9:```bash

List active scans (running, paused, stopped)

maldet -L

List active scans as JSON

maldet --format json -L

Abort a running scan (full cleanup of temp files and workers)

maldet --kill 260327-1509.25279

Pause a scan for 2 hours (workers sleep, I/O freed)

maldet --pause 260327-1509.25279 2h

Resume a paused scan

maldet --unpause 260327-1509.25279

Checkpoint and stop a scan for later resume

maldet --stop 260327-1509.25279

Resume from checkpoint (skips completed stages, restores prior hits)

maldet --continue 260327-1509.25279

Rotate histories, compress old sessions, archive by month

maldet --maintenance

root@kitploit:~
**Ripresa del checkpoint:** `--stop` scrive un file di checkpoint registrando la fase di scansione, il conteggio delle rilevazioni, le opzioni di configurazione e l'avanzamento per worker. `--continue` valida il checkpoint, avvisa se le firme sono cambiate, ricostruisce l'elenco dei file dallo stato corrente del filesystem, ripristina le rilevazioni precedenti e riprende la scansione dalla fase interrotta. I worker HEX riprendono con granularità di chunk (~30s di lavoro perso per worker).

**Supporto motore:** Il motore nativo (worker HEX/CSIG/hash) e `clamscan` standalone supportano tutte le operazioni del ciclo di vita. ClamAV basato su daemon (`clamdscan`/`clamd`) supporta solo `--kill` — `--pause` e `--stop` vengono rifiutati con un messaggio di errore poiché lo stato I/O del daemon è opaco e condiviso con altri client.

---

## 5. Opzioni di esclusione

Esclusione di percorsi, tipi di file e firme da scansioni e monitoraggio.

Quattro file ignore controllano ciò che viene escluso dalla scansione:

| File | Formato | Scopo |
|------|--------|---------|
| `ignore_paths` | Percorsi separati da righe | Escludi directory o file dalle scansioni |
| `ignore_file_ext` | Estensioni separate da righe | Escludi estensioni di file (`.js`, `.css`) |
| `ignore_sigs` | Pattern separati da righe | Salta le firme corrispondenti (regex, corrispondenza per sottostringa) |
| `ignore_inotify` | Percorsi letterali separati da righe | Escludi eventi di monitoraggio inotify |

Tutti i file ignore si trovano in `/usr/local/maldetect/`.

**Esempi:**```
# ignore_paths
/home/user/public_html/cgi-bin

# ignore_file_ext
.js
.css

# ignore_sigs
base64.inject.unclassed

# ignore_inotify (user-owned — your additions only)
/home/user/public_html/cache/
backup-

# ignore_inotify.defaults (LMD-managed — refreshed on every upgrade)
# Ships under /usr/local/maldetect/internals/ with curated defaults
# for systemd-private tmpdirs, MariaDB temp tables, Redis, ClamAV, etc.
# Do NOT edit — add your own entries to ignore_inotify instead.

Nota: le voci ignore_sigs sono trattate come modelli regex estesi e corrispondono come sottostringhe. Una voce php.shell sopprimerà php.shell, php.shell.v2, {YARA}php.shell.backdoor, ecc. Usa ^php\.shell$ per una corrispondenza esatta. Il carattere . corrisponde a qualsiasi carattere nelle regex; sfuggilo come \. per un punto letterale.


6. Cron giornaliero

Scansione giornaliera automatizzata, pulizia dei dati e aggiornamento delle firme.

Il job cron installato in /etc/cron.daily/maldet esegue tre attività:

  1. Pulisce i dati di quarantena, sessione e temporanei più vecchi di cron_prune_days (predefinito: 21)
  2. Aggiorna firme e versione (quando autoupdate_signatures e autoupdate_version sono abilitati)
  3. Esegue la scansione dei file modificati di recente nei percorsi dei pannelli di hosting rilevati (entro scan_days giorni, predefinito: 1)

La scansione giornaliera rileva automaticamente i pannelli di controllo installati e adatta i percorsi di scansione di conseguenza:

Se la modalità monitor è attiva, le scansioni giornaliere vengono saltate e viene invece emesso un rapporto giornaliero degli eventi di monitoraggio.

Per percorsi di scansione personalizzati, usa il file hook /usr/local/maldetect/cron/custom.cron. Per le override di configurazione specifiche per cron, usa /etc/sysconfig/maldet (RHEL) o /etc/default/maldet (Debian) o /usr/local/maldetect/cron/conf.maldet.cron.

Uno script watchdog settimanale (/etc/cron.weekly/maldet-watchdog) fornisce aggiornamenti indipendenti delle firme di riserva quando il cron primario è rotto o obsoleto.


7. Monitoraggio Inotify

Monitoraggio dei file in tempo reale con inotify del kernel, avvisi digest e gestione del supervisor.

Il monitoraggio dei file in tempo reale utilizza il sottosistema inotify del kernel per rilevare eventi di creazione, modifica e spostamento dei file. Richiede un kernel con CONFIG_INOTIFY_USER (standard su tutti i kernel moderni).```bash

Monitor all user home directories (UIDs >= inotify_minuid) — foreground

maldet -m users

Monitor in the background (daemon mode)

maldet -b -m users

Monitor specific paths

maldet -m /home/mike,/home/ashton

Monitor paths from a file

maldet -m /root/monitor_paths

Stop monitoring (sends SIGTERM; escalates to SIGKILL after 10s)

maldet -k

root@kitploit:~
**How it works:**

`maldet -m` esegue un processo supervisor in primo piano per impostazione predefinita. Il supervisor gestisce un processo figlio `inotifywait` e si occupa del ripristino dopo i crash, del ricaricamento della configurazione e degli avvisi digest. Usa `-b` per trasformare il supervisor in un demone e tornare immediatamente al prompt.

1. `monitor_init()` configura le watch inotify su tutti i file nei percorsi monitorati
2. Gli eventi dei file vengono accodati e scansionati in batch ogni `inotify_sleep` secondi (default: 15)
3. La configurazione viene ricaricata ogni `inotify_reloadtime` secondi (default: 3600)
4. I parametri del kernel `max_user_watches` e `max_user_instances` vengono regolati automaticamente per prestazioni ottimali
5. Se `inotifywait` va in crash, il supervisor lo riavvia con backoff esponenziale (2, 4, 8, 16, 32 secondi); dopo 3 guasti consecutivi il supervisor termina

**Gli avvisi digest** vengono inviati periodicamente all'intervallo impostato da `digest_interval` (default: `24h`). Se il numero di riscontri dall'ultimo digest supera `digest_escalate_hits`, viene inviato un avviso di escalation immediato (default: `0`, disabilitato).

**Percorsi additivi:** Per monitorare percorsi aggiuntivi senza modificare `conf.maldet`, aggiungili uno per riga al file referenziato da `monitor_paths_extra` (default: `/usr/local/maldetect/monitor_paths.extra`). Questi vengono uniti all'elenco di watch principale a ogni ricaricamento della configurazione.

Quando si usa la modalità `users`, vengono monitorate solo le sottodirectory corrispondenti a `inotify_docroot` (default: `public_html,public_ftp`), oltre alle directory temporanee di sistema `/tmp`, `/var/tmp` e `/dev/shm`.

**File di esclusione (inotify):** Le esclusioni di monitoraggio uniscono due file — il file di proprietà dell'utente `/usr/local/maldetect/ignore_inotify` e quello gestito da LMD `/usr/local/maldetect/internals/ignore_inotify.defaults`. Entrambi sono separati da righe e supportano commenti `#` e righe vuote. Il file `ignore_inotify` di proprietà dell'utente accetta POSIX ERE (regex estesa) per impostazione predefinita — le ancore (`^`, `$`) e i metacaratteri jolly (`.*`, `.+`) funzionano. Per escludere un percorso letterale contenente metacaratteri regex, anteponi alla voce il prefisso `literal:` (es. `literal:/tmp/app.cache`). Il file `ignore_inotify.defaults` gestito da LMD viene trattato come sottostringhe letterali — le sue voci curate vengono auto-escaped al momento del caricamento. Il file dei default viene sovrascritto a ogni aggiornamento di LMD; aggiungi le esclusioni specifiche del sito solo a `ignore_inotify`.

---

## 8. Sistema di firme

Tipi di firma, convenzioni di denominazione, aggiornamenti e file di regole personalizzati.

LMD include cinque tipi di firma:

| Tipo | File | Formato | Conteggio |
|------|------|--------|-------|
| Hash MD5 | `sigs/md5v2.dat` | `HASH:SIZE:{MD5}sig.name.N` | ~14,801 |
| Hash SHA-256 | `sigs/sha256v2.dat` | `HASH:SIZE:{SHA256}sig.name.N` | CDN |
| Pattern HEX | `sigs/hex.dat` | `HEXSTRING:{HEX}sig.name.N` | ~2,054 |
| Firme composte | `sigs/csig.dat` | `SUBSIG1\|\|SUBSIG2:signame` | CDN |
| Regole YARA | `sigs/rfxn.yara` | sintassi YARA | ~783 regole |
| YARA compilate | `sigs/compiled.yarc` | output `yarac` | opzionale |

Vengono mantenute anche firme compatibili con ClamAV:
- `sigs/rfxn.hdb` — formato ClamAV MD5
- `sigs/rfxn.ndb` — formato ClamAV HEX
- `sigs/rfxn.hsb` — formato ClamAV SHA-256 (richiede ClamAV >= 0.97)

**Convenzione di denominazione delle firme:** `{TYPE}category.name.variant_number`

Le categorie includono: `bin.` (binario), `c.` (linguaggio C), `exp.` (exploit), `php.` (PHP), `js.` (JavaScript), `perl.` (Perl), `html.` (phishing), `base64.inject.`, `gzbase64.`

**Prefissi dei riscontri nei report di scansione:**

| Prefisso | Origine |
|--------|--------|
| `{MD5}` | corrispondenza hash MD5 (fase 1) |
| `{SHA256}` | corrispondenza hash SHA-256 (fase 1) |
| `{HEX}` | corrispondenza pattern HEX (fase 2) |
| `{CSIG}` | corrispondenza firma composta (fase 2.5) |
| `{SA}` | analisi statistica (lunghezza stringa) |
| `{YARA}` | scansione YARA nativa (`scan_yara=1`) |
| `{CAV}` | motore ClamAV (clamd/clamscan) |

### 8.1 Aggiornamenti delle firme

Le firme vengono aggiornate quotidianamente tramite il job cron o manualmente:```bash
maldet -u            # update signatures
maldet -u --force    # force update even if current

8.2 Firme personalizzate

Le firme personalizzate possono essere aggiunte in tre formati, tutti conservati tra un aggiornamento e l'altro:

È possibile configurare URL di importazione remota per il download automatico durante gli aggiornamenti delle firme:


9. Quarantena e pulizia

Isolamento, ripristino e pulizia dei file infetti da malware.

I file in quarantena sono memorizzati in /usr/local/maldetect/quarantine/ con permessi impostati a 000. Percorso originale, proprietario, permessi e data di modifica sono registrati in /usr/local/maldetect/sess/quarantine.hist per un ripristino completo.```bash

Quarantine all hits from a scan

maldet -q SCANID

Restore all quarantined files from a scan

maldet -s SCANID

Restore a specific file

maldet -s /usr/local/maldetect/quarantine/config.php.23754

Clean (attempt malware removal) from a scan

maldet -n SCANID

root@kitploit:~
**Denominazione dei file in quarantena:** `FILENAME.INODE` (es. `config.php.23754`)

Per le scansioni non-root (es. scansione upload di ModSecurity2), i dati in quarantena sono memorizzati in `/usr/local/maldetect/pub/USERNAME/quar/`. Usa il flag `-U` per interagire con la quarantena non-root:```bash
maldet -U nobody -s 112012-0032.13771

9.1 Regole del Cleaner

La funzione cleaner cerca script nominati in base alla firma nella directory clean/. Ogni script riceve il percorso del file infetto come argomento e deve rimuovere il contenuto dannoso. Dopo la pulizia, il file viene nuovamente scansionato: se innesca ancora un rilevamento, la pulizia viene marcata come FAILED.

Per creare una regola di pulizia per la firma php.cmdshell.r57, aggiungi un file clean/php.cmdshell.r57 contenente un comando come sed -i con il pattern appropriato. Le pulizie riuscite ripristinano il file al suo percorso, proprietario e permessi originali.

Il cleaner è una sotto-funzione della quarantena: i file devono essere messi in quarantena (oppure usare -n) perché la pulizia venga eseguita.


10. Scansione Hook

API di service hook per ModSecurity, FTP, Exim e integrazioni personalizzate.

LMD fornisce la scansione dei file in tempo reale per più servizi tramite l'API unificata hookscan.sh. Un singolo script gestisce l'invio delle modalità per ModSecurity, pure-ftpd, ProFTPD, Exim e integrazioni generiche (personalizzate).

I rilevamenti della scansione hook vengono registrati in un log di hit a rotazione (hook.hits.log) invece di creare file di sessione per ogni scansione. I rilevamenti sono inclusi negli avvisi digest periodici e possono essere visualizzati tramite maldet --report hooks.

10.1 ModSecurity```apache

SecRequestBodyAccess On SecTmpSaveUploadedFiles On # Required for ModSecurity >= 2.9 SecRule FILES_TMPNAMES "@inspectFile /usr/local/maldetect/hookscan.sh"
"id:1999999,phase:2,t:none,deny,log,auditlog,severity:2,
msg:'Malware upload blocked by LMD'"

root@kitploit:~
Gli upload malevoli vengono rifiutati con un'azione deny e registrati nel log di audit di ModSecurity. Non è necessario alcun argomento di modalità — `hookscan.sh` utilizza per impostazione predefinita la modalità ModSecurity per la compatibilità con le versioni precedenti. Sia ModSecurity v2 che v3 (libmodsecurity) usano lo stesso contratto `popen()`.

### 10.2 pure-ftpd```bash
# pure-ftpd.conf (or command-line flags):
CallUploadScript yes

# Start the upload-script daemon:
pure-uploadscript -r /usr/local/maldetect/hookscan.sh -B

Richiede pure-ftpd compilato con --with-uploadscript. La modalità viene rilevata automaticamente tramite la variabile d'ambiente UPLOAD_VUSER. I file infetti vengono messi in quarantena dopo l'upload (spara e dimentica — gli upload non possono essere bloccati, solo post-elaborati).

10.3 ProFTPD```

ExecEngine on ExecLog /var/log/proftpd/exec.log ExecTimeout 30 ExecOnCommand STOR /usr/local/maldetect/hookscan.sh proftpd %f ExecEnviron PROFTPD_USER %u ExecEnviron PROFTPD_HOME %d ``` Nota: `mod_exec` restituisce sempre `PR_DECLINED` indipendentemente dal codice di uscita dello script — i caricamenti non possono essere bloccati da questo hook. LMD mette in quarantena i file infetti dopo il completamento del caricamento.

10.4 Exim```

exim.conf

av_scanner = cmdline:
/usr/local/maldetect/hookscan.sh exim %s :
maldet: (.+):
maldet: (.+)

root@kitploit:~
I tre campi separati da due punti sono: modello di comando, regex di attivazione e regex di acquisizione del nome. Quando viene rilevato malware, Exim rifiuta il messaggio utilizzando il nome della firma acquisito.

### 10.5 API generica

Per integrazioni personalizzate, scansioni batch e uso da parte di terze parti:```bash
# Single file scan
hookscan.sh generic /path/to/file
# Exit: 0 = clean, 1 = error, 2 = infected
# Stdout: CLEAN: /path, INFECTED: signame /path, ERROR: reason

# Batch scan from a file list
hookscan.sh generic --list /tmp/filelist.txt

# Batch scan from stdin
find /uploads -newer /tmp/marker -type f | hookscan.sh generic --stdin

Batch output produces one STATUS: PATH line per file. Exit code is worst-result-wins.

10.6 Configurazione

La configurazione dello scan hook è memorizzata in conf.maldet.hookscan (opzionale — i valori predefiniti sono integrati nello script). I valori predefiniti di riferimento sono in conf.maldet.hookscan.default.

Variabili chiave:

Esegui maldet --mkpubpaths dopo l'abilitazione per creare directory dati per-utente per le operazioni di scan non-root.

10.7 Test degli avvisi

Verifica che i canali di consegna degli avvisi siano configurati correttamente:```bash maldet --test-alert scan email # test per-scan email alert maldet --test-alert scan slack # test per-scan Slack alert maldet --test-alert digest email # test digest email alert maldet --test-alert digest telegram # test digest Telegram alert

root@kitploit:~
Gli avvisi di test utilizzano la pipeline di rendering reale con dati sintetici. La riga dell'oggetto è prefissata con `[TEST]`. L'isolamento del canale garantisce che venga attivato solo il canale specificato.

### 10.8 Digest degli Hook

Le rilevazioni degli hook vengono riepilogate tramite avvisi digest periodici:```bash
# On-demand digest (reads all sources: monitor + hooks)
maldet --digest

# View hook scan activity
maldet --report hooks                    # last 24 hours
maldet --report hooks --last 7d          # last 7 days
maldet --report hooks --mode modsec      # filter by mode

Il processo cron giornaliero attiva automaticamente un digest degli hook quando esistono nuove rilevazioni (controllato da cron_digest_hook=1 in conf.maldet).

10.9 Migrazione da CXS

Per gli amministratori che sostituiscono CXS con LMD:


Integrazione

Connessione di LMD con strumenti esterni, pipeline di automazione e scanner di terze parti.

ClamAV

Le firme LMD vengono automaticamente collegate simbolicamente alle directory dati di ClamAV da install.sh, fornendo una copertura a doppio motore. Imposta scan_clamscan=auto (predefinito) per il rilevamento automatico di ClamAV. Vedi 3.8 Integrazione ClamAV per la selezione del motore e la validazione delle firme.

ELK Stack

Abilita enable_statistic=1 con elk_host, elk_port e elk_index per inviare gli eventi di scansione a Elasticsearch. Vedi 3.10 Integrazione ELK.

Canali di notifica

LMD supporta quattro canali di consegna degli avvisi oltre alla email: Slack (Block Kit), Telegram (MarkdownV2), Discord (embed webhook) e relay SMTP per ambienti senza un MTA locale. Vedi 3.2 Notifiche per la configurazione.

Report JSON

Output di scansione leggibile dalla macchina per CI/CD e automazione:```bash maldet --format json -e SCANID # JSON report to stdout maldet --json-report list # list all scans as JSON

root@kitploit:~
Vedi `man maldet`(1) per lo schema JSON v1.2 (forma uniforme `{schema_version, scanner, host, reports[]}` sia con `-e SCANID` che con `-e list`).

### Rilevamento dei Pannelli di Hosting

Il cron giornaliero rileva automaticamente 12+ pannelli di controllo hosting e adatta i percorsi di scansione. Vedi [6. Cron Daily](#6-cron-daily) per la matrice completa dei pannelli.

---

## Licenza

LMD è sviluppato e supportato su base volontaria da Ryan MacDonald [[email protected]].

Linux Malware Detect (LMD) è distribuito sotto la GNU General Public License (GPL) v2
senza restrizioni sull'uso o sulla ridistribuzione. La dichiarazione di copyright e la GNU GPL
sono incluse nel file `COPYING.GPL`. Il credito deve essere attribuito per le opere derivate come
richiesto dalla GNU GPL.

---

## Supporto

Il repository sorgente di LMD si trova all'indirizzo: https://github.com/rfxn/linux-malware-detect

Bug, richieste di funzionalità e domande generali possono essere segnalati come problemi GitHub o inviati a [email protected].

La pagina ufficiale del progetto è all'indirizzo: https://www.rfxn.com/projects/linux-malware-detect/
Scarica lo strumento
VariabileScopoPredefinito
quarantine_hitsMetti in quarantena automaticamente il malware rilevato0
quarantine_cleanProva a pulire il malware dai file in quarantena0
quarantine_suspend_userSospendi l'account cPanel o revoca la shell al rilevamento0
quarantine_suspend_user_minuidUID minimo da sospendere (protegge gli account di sistema)500
quarantine_on_errorMetti in quarantena i file quando il motore di scansione restituisce un errore1
VariabileScopoPredefinito
default_monitor_modeModalità di avvio del monitor (users o percorso di un file); vuoto = disabilitato""
inotify_base_watchesNumero base di watch sui file per percorso utente16384
inotify_minuidUID minimo per il monitoraggio delle home utente500
inotify_docrootSottodirectory da monitorare nelle home utentepublic_html,public_ftp
inotify_sleepSecondi tra i lotti di scansione15
inotify_reloadtimeSecondi tra i ricaricamenti della configurazione3600
inotify_cpunicePriorità nice per il processo di monitor18
inotify_ionicePriorità IO per il processo di monitor6
inotify_cpulimitLimite CPU rigido per il monitor (0=disabilitato)0
digest_intervalIntervallo tra gli avvisi riepilogativi digest periodici: 24h, 30m, 7d, 0 (disabilitato)24h
digest_escalate_hitsSoglia di rilevamenti per l'avviso di escalation immediato; 0 = disabilitato0
cron_digest_hookAbilita il passaggio digest dell'hook cron.daily (attiva il digest se sono presenti nuovi rilevamenti hook)1
monitor_paths_extraPercorso di un file con percorsi watch inotify aggiuntivi separati da riga/usr/local/maldetect/monitor_paths.extra
monitor_scan_owner_filtersApplica i filtri di proprietà scan_ignore_root/scan_ignore_user/scan_ignore_group in modalità monitor; 0 (predefinito) = off — il monitor scansiona tutti i file indipendentemente dal proprietario (ripristina la semantica 1.6.6, corregge l'issue #485); 1 = on — applica i filtri di proprietà0
VariabileScopoPredefinito
post_scan_hookPercorso dello script hook (di proprietà di root, non scrivibile da tutti). Non può essere impostato tramite -co""
post_scan_hook_formatLivello di output: args, file, json (cumulativo)args
post_scan_hook_execModalità di esecuzione: async (non bloccante), sync (attesa)async
post_scan_hook_timeoutSecondi prima del SIGTERM (0=disabilitato, min 5)60
post_scan_hook_onFiltro tipo di scansione: all, cli, digestall
post_scan_hook_min_hitsNumero minimo di rilevamenti per l'attivazione (0=sempre)1
VariabileScopoPredefinito
scan_clamd_remoteUsa un server clamd remoto per la scansione0
remote_clamd_configPercorso del file di configurazione clamd remoto/etc/clamd.d/clamd.remote.conf
remote_clamd_max_retryNumero massimo di tentativi in caso di errore clamd remoto5
remote_clamd_retry_sleepSecondi tra i tentativi3
VariabileScopoPredefinito
enable_statisticAbilita la raccolta statistiche dello stack ELK0
elk_hostHost TCP per l'input ELK—
elk_portPorta TCP per l'input ELK—
elk_indexNome dell'indice Elasticsearch—
PannelloPercorso di scansione
cPanel/home?/?/public_html/ (+ docroot di addon/sottodomini)
Plesk/var/www/vhosts/?/
DirectAdmin/home?/?/domains/?/public_html/, /var/www/html/?/
Ensim/home/virtual/?/fst/var/www/html/
ISPConfig/var/www/clients/?/web?/web, …/subdomains, /var/www
Virtualmin/home/?/public_html/, /home/?/domains/?/public_html/
ISPmanager/var/www/?/data/, /home/?/data/
Froxlor/var/customers/webs/
Bitrix/home/bitrix/www/, /home/bitrix/ext_www/?/
VestaCP / HestiaCP/home/?/web/?/public_html/ (+ public_shtml, tmp, private)
DTC${conf_hosting_path:-/var/www/sites}/?/?/subdomains/?/html/
TipoFileFormato
MD5 personalizzatosigs/custom.md5.datCome md5v2.dat
SHA-256 personalizzatosigs/custom.sha256.datCome sha256v2.dat
HEX personalizzatosigs/custom.hex.datCome hex.dat
CSIG personalizzatosigs/custom.csig.datCome csig.dat
YARA personalizzatosigs/custom.yaraSintassi delle regole YARA
YARA personalizzato (drop-in)sigs/custom.yara.d/*.yarFile di regole YARA
YARA compilatosigs/compiled.yarcOutput di yarac (opzionale)
VariabileScopo
sig_import_md5_urlURL per le firme MD5 personalizzate
sig_import_sha256_urlURL per le firme SHA-256 personalizzate
sig_import_hex_urlURL per le firme HEX personalizzate
sig_import_csig_urlURL per le firme composte personalizzate
sig_import_yara_urlURL per le regole YARA personalizzate
VariablePredefinitoDescrizione
hookscan_timeout30Timeout dello scan in secondi
hookscan_fail_open1Consenti file in caso di errore di scan (0 = blocca)
hookscan_escalate_hits0Avviso immediato a N hit hook/ora (0 = disabilitato)
hookscan_service_usersapache,nginx,...UID di servizio esenti dalla restrizione homedir
hookscan_user_rate_limit60Max scan/ora per chiamanti non-root
hookscan_user_show_signames1Mostra i nomi delle firme ai chiamanti non-root
hookscan_list_max_bytes1048576Dimensione massima file di elenco (1 MB)
hookscan_list_max_entries10000Numero massimo di voci nell'elenco file
Componente CXSEquivalente LMD
cxscgi.shhookscan.sh modsec
cxsftp.shhookscan.sh ftp
ProFTPD mod_exec verso cxshookscan.sh proftpd
cxs --filehookscan.sh generic
cxswatchmaldet --monitor
/etc/cxs/cxs.confconf.maldet.hookscan