Passa al contenuto principale
Versione: v0.19

Riferimento comandi CLI

Esegui php scanner --help per vedere le opzioni supportate dalla tua versione installata.

php scanner [path] [options]

path accetta un file, una directory, un wildcard, oppure un URL FTP o FTPS. Se omesso, lo scanner usa la directory corrente.

Rilevamento

OpzioneScopo
--lite, -lRiduce i falsi positivi comuni mantenendo un rilevamento ampio
--only-signatures, -sScansiona solo per firme di malware
--only-exploits, -eScansiona solo per pattern di exploit
--only-functions, -fScansiona solo per funzioni PHP pericolose
--exploits=<names>Include definizioni exploit selezionate, separate da virgole
--ignore-exploits=<names>Esclude definizioni exploit selezionate, separate da virgole
--functions=<names>Scansiona funzioni PHP selezionate, separate da virgole
--scan-all, --allIspeziona i file indipendentemente dall'estensione
--scan-archivesIspeziona le voci ZIP entro limiti di sicurezza
--scan-wordpress-dbEsegue controlli in sola lettura contro un database WordPress locale
--max-filesize=<size>Salta i file più grandi della dimensione indicata

Ambito e avanzamento

OpzioneScopo
--ignore-paths=<patterns>Esclude percorsi o wildcard separati da virgole
--filter-paths=<patterns>Include solo percorsi o wildcard corrispondenti
--offset=<number>Inizia da una posizione nell'elenco dei file candidati
--limit=<number>Limita il numero di file mappati
--checkpoint=<path>Salva lo stato di scansione in un file JSON privato
--resumeContinua da un checkpoint quando file e impostazioni continuano a corrispondere
--disable-cache, --no-cacheIgnora i risultati della cache di scansione
php scanner /var/www/example --lite --report \
--ignore-paths="*/cache/*,*/logs/*" \
--max-filesize=5MB

Report e output

OpzioneScopoPredefinito
--report, -rDisattiva le azioni interattive e scrive un reportOff
--report-format=<format>Seleziona html, txt, json o sarifhtml
--path-report=<path>Imposta il percorso del file di report./scanner-report.html
--log=<path>Scrive un log di scansioneOff
--path-logs=<path>Imposta il percorso del log dello scanner./scanner.log
--silentNasconde l'output e le richieste nel terminaleOff nella CLI
--disable-report, --no-reportPreviene la generazione del reportOff nella CLI
--disable-colors, --no-colors, --no-colorRimuove i colori ANSIOff
--debugMostra tutti gli errori e gli avvisi PHPOff

I report di testo includono totali di scansione, conteggi di verifica, totali di severità, metadati dei file infetti e dettagli dei rilevamenti trovati. JSON e SARIF sono adatti all'elaborazione automatica.

Azioni sui file

Le azioni automatizzate possono distruggere dati

Usa la pulizia o l'eliminazione automatica solo con backup aggiornati e un piano di recupero verificato. Inizia sempre con --report su ogni nuovo progetto.

OpzioneScopo
--backup, -bEsegue il backup di ogni file modificato dallo scanner
--auto-cleanRimuove il codice rilevato senza conferma
--auto-clean-lineRimuove la riga rilevata senza conferma
--auto-deleteElimina i file rilevati senza conferma
--auto-quarantineSposta i file rilevati in quarantena
--auto-skipLascia invariati tutti i rilevamenti
--auto-whitelistAggiunge tutti i rilevamenti alla whitelist
--auto-prompt=<action>Applica una risposta alle richieste a ogni rilevamento
--whitelist-only-pathConfronta le voci della whitelist solo per percorso senza leggere la riga

Memorizza backup, quarantena, report e dati della whitelist fuori dalla document root pubblica:

OpzioneScopo
--path-backups=<path>Imposta la directory dei backup
--path-quarantine=<path>Imposta la directory di quarantena
--path-whitelist=<path>Imposta il file JSON della whitelist
--findings-store=<path>Imposta il file JSON canonico del ciclo di vita dei rilevamenti
--path-deobfuscate=<path>Imposta la directory per i file deofuscati

Integrità e definizioni

OpzioneScopo
--disable-checksum, --no-checksum, --no-verifySalta la verifica dei checksum di piattaforma e pacchetti
--path-definitions=<path>Imposta la cache privata delle definizioni Maltrail
--disable-definitions-updateUsa l'ultimo cache verificato di Maltrail senza richiedere aggiornamenti
--defsStampa le definizioni di exploit e funzioni
--defs-exploitsStampa le definizioni di exploit
--defs-functionsStampa le definizioni delle funzioni pericolose
--defs-functions-encodedStampa le definizioni delle funzioni codificate

Le signature integrate rimangono disponibili offline. Le verifiche dei checksum della piattaforma e gli aggiornamenti delle definizioni Maltrail possono richiedere HTTPS in uscita al primo avvio di scansione.

Opzioni di utilità

OpzioneScopo
--ftp-user=<username>Imposta il nome utente FTP, oppure usa AMWSCAN_FTP_USER
--update, -uAggiorna il file standalone dello scanner
--version, -vStampa la versione installata
--help, -h, -?Stampa la guida dei comandi

Sorgenti FTP

Passa un URL ftp://host/path o ftps://host/path come percorso di scansione. PHP richiede l'estensione FTP e FTPS richiede ftp_ssl_connect.

Non inserire credenziali nell'URL. Imposta l'utente con --ftp-user oppure AMWSCAN_FTP_USER. Imposta la password con AMWSCAN_FTP_PASSWORD. Preferisci FTPS perché FTP invia credenziali e contenuti dei file senza crittografia.

AMWSCAN_FTP_USER=scanner \
AMWSCAN_FTP_PASSWORD=secret \
php scanner ftps://files.example.com/public_html --report

Le scansioni FTP usano un mirror locale temporaneo, forzano la modalità report e rimuovono il mirror al termine. Una scansione accetta una sola sorgente FTP con limiti di 10.000 file, 64 MiB per file e 512 MiB totali. Le sorgenti FTP non possono usare --scan-wordpress-db.

Verifica dei checksum della piattaforma

La verifica dei checksum supporta WordPress, alcuni plugin WordPress, Drupal, Joomla, Magento Open Source e pacchetti Composer pubblici. Lo scanner salta solo i file che corrispondono ai byte del rilascio affidabile. Scansiona file modificati, generati e sconosciuti.

Una prima verifica della versione di una piattaforma può richiedere HTTPS in uscita. I manifest riusciti rimangono in una cache locale. Usa --disable-checksum quando la scansione non deve fare richieste di checksum.

Copertura e ripresa

I report separano file scoperti, idonei, scansionati, memorizzati in cache, verificati e saltati. Le cause del salto includono filtri di percorso, estensioni, dimensioni di file, file illeggibili e limiti di archivio.

--checkpoint=<private-path> salva lo stato dopo ogni candidato. --resume continua solo quando l'elenco dei candidati e le impostazioni di scansione corrispondono ancora.

La scansione ZIP richiede ext-zip. Lo scanner limita percorsi delle voci, collegamenti simbolici, numero di voci, dimensione dei file, dimensione espansa, rapporto di compressione e profondità di annidamento. I report indicano come incompleta la copertura del contenuto oltre quei limiti.

Scansione del database WordPress

--scan-wordpress-db esegue una fase opzionale in sola lettura contro installazioni WordPress rilevate localmente. Controlla trigger del database, elenca gli amministratori principali del sito, segnala più amministratori per revisione e riporta post orfani. Non modifica il contenuto del database.

L'opzione richiede ext-mysqli. AMWScan legge le impostazioni del database da wp-config.php senza eseguirlo. Impostazioni dinamiche o ambigue producono un risultato di copertura incompleta.

Uscita e guida all'automazione

Usa JSON quando un altro programma deve elaborare i rilevamenti dettagliati. Usa SARIF per strumenti che supportano lo standard. Mantieni i report come artefatti di build, proteggi i percorsi locali o gli estratti di codice che contengono e testa il comportamento di uscita dello scanner nel tuo job di continuous integration prima di farlo diventare un gate di rilascio.