
App web locale per condurre una Check Point Trusted Access Review. Questo scanner è costruito specificamente per individuare problemi di configurazione relativi a CVE-2026-16232, CVE-2026-62144 , e CVE-2026-62145. Questo strumento non è creato né supportato da Check Point e va utilizzato a proprio rischio.
APPLICARE SEMPRE LE PATCH DEL FORNITORE IL PRIMA POSSIBILE
Applicazione web locale per condurre una Check Point Trusted Access Review con comandi attendibili della Check Point Management API. La maggior parte dei controlli è solo di revisione. Qualsiasi azione di remediation disponibile richiede l'approvazione esplicita dell'operatore.
Questo scanner è costruito specificamente per individuare problemi di configurazione relativi a CVE-2026-16232 (https://support.checkpoint.com/results/sk/sk185169), CVE-2026-62144 (https://support.checkpoint.com/results/sk/sk185152) e CVE-2026-62145 (https://support.checkpoint.com/results/sk/sk185153)
Ti consentirà di analizzare e correggere gli utilizzi di ANY, oltre a scansionare i log alla ricerca di potenziali attori malintenzionati.
Questo strumento non è creato né supportato da Check Point e deve essere utilizzato a proprio rischio.
Versioni precompilate sono disponibili in dist/ per gli utenti che non vogliono installare Node.js, npm, Git o il codice sorgente:
dist/windows-x64/ contiene l'eseguibile .exe autonomo e uno ZIP corrispondente.dist/macos-apple-silicon/ contiene lo ZIP dell'app .app distribuibile, l'app estratta e l'eseguibile arm64 autonomo.Le release autonome includono il runtime Node.js, l'interfaccia web, il backend e il generatore diretto di report PDF. Si legano solo a 127.0.0.1, preferiscono la porta 4000, provano automaticamente 4001, 4002 e porte successive quando necessario e aprono l'URL locale selezionato nel browser predefinito.
Per GitHub, pubblica gli ZIP delle piattaforme—e opzionalmente il .exe Windows—come asset delle Release GitHub. Gli utenti non dovrebbero scaricare node_modules o l'albero del sorgente solo per eseguire una release autonoma. Vedi dist/README.md per la struttura degli artefatti.
L'app attuale è allineata alla Check Point Gateway and Management Hardening Administration Guide.
Questo strumento non è creato né supportato da Check Point e deve essere utilizzato a proprio rischio.
L'app viene eseguita localmente, accede a un Check Point Security Management Server o MDS, analizza le evidenze disponibili della Management API e presenta controlli di hardening allineati alla guida. La maggior parte dei controlli è solo di revisione; azioni di remediation specifiche vengono offerte solo quando esplicitamente implementate e richiedono l'approvazione dell'operatore. I controlli che richiedono la revisione del progetto di rete, Gaia Portal, Gaia API, SSH/Clish, impostazioni del provider di identità o ispezione della gestione out-of-band sono contrassegnati per la validazione manuale.
Lo scanner copre attualmente queste aree della guida all'hardening:
Per gli ambienti MDS, abilita MDS Scan nel modulo di accesso. Questo espone due campi importanti:
run-script contro il sistema stesso. È necessario quando l'host di accesso è l'IP MDS ma il dominio API selezionato è una CMA/dominio, poiché comandi come run-script devono avere come destinazione il nome dell'oggetto MDS, non l'IP MDS né l'IP della CMA/dominio.Quando MDS Scan è abilitato, l'app crea due sessioni della Check Point Management API:
run-script che hanno come destinazione il Global MDS Object Name. Questo è necessario per i controlli che ispezionano il sistema operativo del server MDS stesso, come l'individuazione dell'interfaccia/della rotta predefinita del management server, le impostazioni degli amministratori Gaia, la policy delle password di Gaia, SNMP e l'inoltro syslog del management server.In termini di mgmt_cli, i controlli di dominio si comportano come comandi che includono --domain "<Domain>", mentre i controlli dell'host MDS si comportano come mgmt_cli -r true run-script targets.1 "<Global MDS Object Name>" ... eseguiti nel contesto MDS globale.
Alcuni controlli MDS valutano intenzionalmente più di un piano di gestione. Ad esempio, Restrict Administrative Source IP Addresses valuta sia l'IP dell'host di gestione MDS/globale sia l'IP del Domain/CMA selezionato. Per ogni IP, tenta di risolvere l'oggetto corrispondente nel dominio selezionato, controlla gli oggetti di rete e gli intervalli di indirizzi che contengono l'IP, segue i gruppi che contengono tali oggetti e quindi raccoglie le regole di accesso che li riferenziano. Se la regola di dominio corrispondente si trova sotto un layer padre di Global Policy, l'app legge la rulebase di accesso Globale fino a Placeholder for domain rules e include quelle regole Globali nella stessa tabella delle evidenze del Policy Package con un indicatore GLOBAL RULES.
Per Smart-1 Cloud, abilita Smart-1 Cloud context URL nel modulo di accesso e inserisci l'host di Management con il suo percorso di contesto, ad esempio:```text tenant-name.maas.checkpoint.com/context-id/web_api
L'app mantiene quel percorso e invia richieste API a:```text
https://tenant-name.maas.checkpoint.com/context-id/web_api/<command>
Questo corrisponde alla struttura del contesto mgmt_cli Smart-1 Cloud:```bash
mgmt_cli -m tenant-name.maas.checkpoint.com --session-id --context context-id/web_api <cli_command>
Quando l'**URL di contesto Smart-1 Cloud** è abilitato, i controlli che richiedono accesso diretto a un oggetto Gaia Management Server di proprietà del cliente vengono saltati. In pratica, ciò rimuove i controlli di **Protezione del piano di gestione** come **Proteggi il Management Server dietro un firewall** e **Limita gli indirizzi IP amministrativi di origine**, poiché il management server è ospitato da Check Point e non esiste come normale oggetto Gaia gestito dal cliente nel dominio del tenant.
Il riepilogo della scansione mostra l'ora della scansione corrente e la scansione precedente registrata dall'app locale, incluso il nome utente Management API che l'ha eseguita. Questa cronologia viene mantenuta in memoria e si azzera quando il processo Node locale viene riavviato.
### Modalità Large Environment
Il modulo di accesso include la **modalità Large Environment** per ambienti MDS o multi-gateway di grandi dimensioni. Questa modalità non salta controlli né modifica la raccolta delle evidenze. Riduce la pressione della scansione sulla Management API limitando le richieste API concorrenti e le attività Gaia `run-script` durante una scansione completa.
Comportamento standard predefinito della scansione:
- I comandi di raccolta della Management API vengono eseguiti alla velocità con cui il processo Node locale li pianifica.
- La raccolta Gaia `run-script` è limitata da `RUN_SCRIPT_CONCURRENCY`, che per impostazione predefinita è `8`.
- Le query di audit dell'ultimo accesso degli amministratori usano `show-logs` e vengono serializzate da `SHOW_LOGS_CONCURRENCY`, che per impostazione predefinita è `1`.
- Il polling di `show-task` attende `750 ms` tra i tentativi di polling.
Comportamento della modalità Large Environment:
- Le chiamate di scansione della Management API vengono limitate da `LARGE_ENV_API_CONCURRENCY`, che per impostazione predefinita è `10`.
- La raccolta Gaia `run-script` è limitata da `LARGE_ENV_RUN_SCRIPT_CONCURRENCY`, che per impostazione predefinita è `3`.
- Le ricerche dell'ultimo accesso degli amministratori con `show-logs` restano serializzate da `SHOW_LOGS_CONCURRENCY` per evitare pressione di ricerca parallela sugli audit.
- Il polling di `show-task` attende `LARGE_ENV_TASK_POLL_INTERVAL_MS`, che per impostazione predefinita è `1250 ms`.
- Il polling dell'output delle attività Gaia `run-script` usa `TASK_POLL_ATTEMPTS`, che per impostazione predefinita è `20`. Ciò è utile quando Smart-1 Cloud o gateway remoti accettano la richiesta `run-script` prima che l'output decodificato di `show-task details-level full` sia pronto.
- I controlli delle regole Stealth del Security Gateway usano prima `show-access-rulebase` in modalità Large Environment e modalità Smart-1 Cloud. Ciò evita una chiamata `where-used details-level full` per gateway, che può essere costosa o andare in timeout in ambienti large/MDS/Smart-1 Cloud.
Questi valori possono essere regolati con le variabili d'ambiente prima di avviare il backend locale:```sh
LARGE_ENV_API_CONCURRENCY=8 LARGE_ENV_RUN_SCRIPT_CONCURRENCY=2 LARGE_ENV_TASK_POLL_INTERVAL_MS=1500 TASK_POLL_ATTEMPTS=20 TASK_POLL_INTERVAL_MS=1000 SHOW_LOGS_CONCURRENCY=1 CP_LOG_API_TIMEOUT_MS=120000 CP_VPN_API_TIMEOUT_MS=120000 VPN_COMMUNITY_PAGE_LIMIT=50 npm start
I controlli dell'ultimo login dell'amministratore interrogano i login di audit di SmartConsole con un filtro equivalente a administrator:<name> AND SmartConsole AND "Log In". CP_LOG_API_TIMEOUT_MS controlla il timeout per queste richieste show-logs separatamente dalle normali chiamate alla Management API.
I controlli CVE delle community VPN IKE scorrono le pagine di show-vpn-communities-star e show-vpn-communities-meshed con VPN_COMMUNITY_PAGE_LIMIT, il cui valore predefinito è 50, e usano CP_VPN_API_TIMEOUT_MS, il cui valore predefinito è 120000 ms. Ciò impedisce alle scansioni di Smart-1 Cloud e MDS di richiedere payload di community VPN details-level full molto grandi in un'unica chiamata.
Usare questa modalità quando si scansionano ambienti MDS di produzione, server di gestione molto carichi o distribuzioni con decine di gateway, dove proteggere la reattività di fwm / della Management API è più importante che ottenere il tempo di scansione assolutamente più rapido.
Alcuni controlli richiedono la revisione da parte dell'operatore anche quando la condizione automatizzata ad alto rischio è assente. I controlli dei client attendibili di SmartConsole, degli account amministratore e delle policy di password / timeout di inattività / scadenza / blocco degli amministratori possono essere contrassegnati come revisionati. Nella stessa sessione di login, lo stato cambia in Revisionato. Un nuovo login riporta lo stato a Da revisionare, mentre l'ultima approvazione di revisione rimane visibile con il nome utente della Management API che ha effettuato il login e il relativo timestamp.
Per il controllo della policy di password / timeout di inattività / scadenza / blocco degli amministratori, gli operatori possono contrassegnare il controllo come revisionato anche quando è in stato Correzione richiesta. L'app avvisa che l'operatore sta accettando impostazioni che Check Point non consiglia prima di registrare tale revisione.
Il riepilogo principale combina i risultati Correzione richiesta e Correzione consigliata in un unico conteggio Correzione necessaria.
http://...; ciò invierebbe il login dell'API Check Point su HTTP in chiaro.http://127.0.0.1:4000 per impostazione predefinita, o sulla prossima porta locale disponibile.Il backend inoltra questi comandi della Management API Check Point:
loginlogoutshow-trusted-clientsdelete-trusted-clientshow-api-settingsset-api-settingspublishdiscardshow-administratorsdelete-administratorshow-default-administrator-settingsset-default-administrator-settingsshow-smart-console-idle-timeoutIl controllo Security Feature Usage esegue un run-script di Gaia su ciascun gateway gestito di destinazione:```sh
mgmt_cli run-script script-name "show license" targets.1 "GATEWAY_OBJECT_NAME" script "clish -c 'show license status'" --format json
mgmt_cli show-task task-id "" details-level full --format json
L'app decodifica `task-details[].responseMessage`, estrae i codici blade noti come `FW`, `VPN`, `IPS` e `URLF` dalle righe di funzionalità/data della licenza e include anche i codici blade integrati perpetui dalla riga delle funzionalità principali (`FW`, `VPN`, `IA`). I suffissi di appliance/modello/durata come `3950-2Y` vengono ignorati e i codici blade noti vengono tradotti in nomi blade leggibili come `IPS`, `URL Filtering` o `Anti-Bot`. Le evidenze sono raggruppate per gateway con tabelle compatte `License Feature`, `Expiration Date` e `Enabled/Disabled`. Lo stato abilitato viene letto da `show gateways-and-servers details-level full` in `network-security-blades`; le chiavi blade mancanti vengono trattate come disabilitate. Advanced DNS Security è contrassegnato per la conferma manuale nel Threat Profile assegnato perché non è esposto come normale flag blade di gateway.
Il controllo dei trusted clients di SmartConsole esegue l'equivalente di:```sh
mgmt_cli -r true show trusted-clients --domain "System Data" details-level full --format json
La webapp accede al dominio System Data dell'API di gestione, recupera i dati del client fidato name, type e i dati IP specifici del tipo, e li mostra in una tabella di evidenza. Contrassegna il controllo come Remediation Required quando un oggetto restituito ha type impostato su any.
Quando un oggetto client fidato ha type impostato su any, l'app offre la prima azione di remediation. Cerca l'uid effettivo di quell'oggetto ed esegue l'equivalente di:```sh
mgmt_cli delete trusted-client uid "" --domain "System Data"
mgmt_cli publish --domain "System Data"
Se la pubblicazione fallisce dopo il comando di eliminazione, l'app tenta un `discard` nella stessa sessione di `System Data`, così l'oggetto non rimane bloccato da una modifica non pubblicata.
La tabella delle evidenze dei trusted client consente inoltre agli operatori di selezionare uno o più oggetti trusted client restituiti ed eliminarli dalla webapp. L'app valida i valori `uid` selezionati rispetto all'output corrente di `show-trusted-clients`, quindi esegue l'equivalente di:```sh
mgmt_cli delete trusted-client uid "<selected-trusted-client-uid>" --domain "System Data"
mgmt_cli publish --domain "System Data"
Per più client selezionati, il comando di eliminazione viene eseguito una volta per ogni uid selezionato, seguito da una singola pubblicazione. Se un'eliminazione o una pubblicazione fallisce dopo l'inizio delle modifiche, l'app tenta un discard nella stessa sessione System Data.
Il controllo di registrazione delle regole implicite esegue l'equivalente di:```sh mgmt_cli -r true show global-properties details-level full --format json
L'app web recupera ogni coppia chiave/valore all'interno dell'oggetto `firewall` restituito e la visualizza in una tabella. Se `log-implied-rules` è `false`, il controllo viene contrassegnato come **Correzione richiesta** e la riga offre un pulsante di correzione inline che esegue l'equivalente di:```sh
mgmt_cli set global-properties firewall.log-implied-rules true
mgmt_cli publish
Il controllo di accesso all'API di gestione esegue l'equivalente di:```sh mgmt_cli -r true show api-settings --domain "System Data" --format json
L'applicazione web mostra il valore `accepted-api-calls-from`. Se è `all ip addresses`, il controllo viene contrassegnato come **Remediation Required** e offre l'equivalente di:```sh
mgmt_cli set api-settings accepted-api-calls-from "all ip addresses that can be used for gui clients" --domain "System Data" --format json
mgmt_cli publish --domain "System Data"
Se l'accesso API è già limitato ai client GUI, il controllo visualizza la tabella delle evidenze dei client attendibili per la revisione.
I controlli di Policy Insights eseguono chiamate di Access Control Insights in sola lettura:```sh mgmt_cli insights/v3.0/show-suggestions-summary --method POST --format json mgmt_cli insights/v3.0/show-suggestions --method POST --format json
The detailed suggestions request is filtered for `unused-objects`, `tighten-rule`, `delete-disabled-rule`, and `zero-hits-rule`, with a first-page limit of 50 suggestions.
The administrator account review runs the equivalent of:```sh
mgmt_cli -r true show-administrators --domain "System Data" details-level full --format json
La webapp accede al dominio System Data dell'API di gestione per questo passaggio di raccolta, quindi mostra una tabella delle evidenze con Name, Permission Profile Name, Authentication-Method e expiration-date. I valori di scadenza vengono convertiti da iso-8601 in una data e un'ora leggibili. Gli amministratori senza una chiave expiration-date vengono mostrati come Never.
Il controllo di integrazione MFA e Identity Provider usa show default-administrator-settings per visualizzare il authentication-method predefinito, quindi usa show-administrators per elencare gli amministratori il cui authentication-method è check point password o os password. Se il metodo predefinito o un qualsiasi amministratore utilizza l'autenticazione basata su password, il controllo viene contrassegnato come Correzione Consigliata. Gli operatori possono contrassegnare la sezione come revisionata e viene mostrato lo stesso modello di cronologia 'reviewed-by'. Il controllo include un pulsante di aiuto all'impostazione con indicazioni per la configurazione SAML di SmartConsole e IdP esterno.
La tabella degli account amministratore consente agli operatori di selezionare uno o più oggetti amministratore restituiti ed eliminarli dalla webapp. L'app convalida i valori uid selezionati rispetto all'output corrente di show-administrators, quindi esegue l'equivalente di:```sh
mgmt_cli delete administrator uid "" --domain "System Data"
mgmt_cli publish --domain "System Data"
Per più amministratori selezionati, il comando di eliminazione viene eseguito una volta per ogni `uid` selezionato, seguito da una singola pubblicazione. Se un'eliminazione o una pubblicazione fallisce dopo l'inizio delle modifiche, l'app tenta un `discard` nella stessa sessione di `System Data`.
Il controllo della password dell'amministratore, del timeout di inattività, della scadenza e dei criteri di blocco esegue l'equivalente di:```sh
mgmt_cli show default-administrator-settings --domain "System Data" --format json
mgmt_cli show smart-console-idle-timeout --domain "System Data" --format json
mgmt_cli show login-restrictions --domain "System Data" --format json
mgmt_cli show cp-password-requirements --domain "System Data" --format json
L'app web visualizza le impostazioni restituite in una tabella Setting, Value e State. La scadenza predefinita dell'amministratore impostata su never, il timeout di inattività di SmartConsole disabilitato, il blocco dell'account amministratore disabilitato, lo sblocco automatico disabilitato o min-password-length inferiore a 10 vengono contrassegnati come bisognosi di correzione.
Quando il metodo di autenticazione predefinito dell'amministratore è check point password, la colonna State consiglia di utilizzare un metodo di autenticazione che supporti MFA o un provider di identità esterno.
Per la scadenza predefinita dell'amministratore, la colonna State visualizza il dettaglio della scadenza restituito: un valore expiration-date formattato, oppure il valore di expiration-period più expiration-period-time-units quando il tipo è expiration-period.
Quando la scadenza predefinita dell'amministratore è impostata su never, l'app offre un'azione di correzione consigliata. Esegue l'equivalente di:```sh
mgmt_cli set default-administrator-settings expiration-type "expiration period" expiration-period "4" expiration-period-time-units "months" --domain "System Data" --format json
mgmt_cli publish --domain "System Data"
Se la pubblicazione fallisce dopo la modifica delle impostazioni, l'app tenta un `discard` nella stessa sessione `System Data` affinché l'impostazione non rimanga bloccata da una modifica non pubblicata.
Quando il timeout di inattività di SmartConsole è disabilitato, l'app offre un'azione di remediation consigliata. Esegue l'equivalente di:```sh
mgmt_cli set smart-console-idle-timeout enabled true timeout-duration "10" --domain "System Data" --format json
mgmt_cli publish --domain "System Data"
Se la pubblicazione fallisce dopo la modifica del timeout di inattività, l'app tenta discard nella stessa sessione System Data.
Quando la lunghezza minima della password è inferiore a 10, l'app offre un'azione di remediation consigliata. Esegue l'equivalente di:```sh
mgmt_cli set cp-password-requirements min-password-length "10" --domain "System Data" --format json
mgmt_cli publish --domain "System Data"
If publish fails after the password requirement change, the app attempts `discard` in the same `System Data` session.
## Install and Run
Running from source requires Node.js 18 or newer and the npm dependencies declared in `package.json`. Users of the self-contained releases do not need Node.js, npm, or Git.
### macOS From Source
1. Install Node.js 18 or newer from [nodejs.org](https://nodejs.org/) or Homebrew. ```sh
brew install node
Installa Node.js 18 o versioni successive da nodejs.org.
Scarica ed estrai lo ZIP del progetto, oppure clona il repository con Git per Windows. ```powershell git clone cd "Check Point Trusted Access Review"
Installa le dipendenze e avvia l'app locale. ```powershell npm install npm start
Apri l'app in un browser. ```text http://127.0.0.1:4000
Per impostazione predefinita l'app preferisce 127.0.0.1:4000 e si sposta automaticamente verso l'alto se la porta è occupata. Per richiedere una porta specifica:
macOS:```sh PORT=4500 npm start
Windows PowerShell:```powershell
$env:PORT = "4500"
npm start
Quindi apri:```text http://127.0.0.1:4500
## Risoluzione dei problemi
Il server stampa la diagnostica delle richieste sul terminale. Un tentativo di accesso riuscito mostrerà righe simili a:```text
Local API request requestId=abc12345 route=/api/login
Login request received target=https://mgmt.example.com/web_api/login user=admin
Check Point API request starting command=login target=https://mgmt.example.com/web_api/login
Se il browser mostra un errore di accesso con un request ID ma la cattura dei pacchetti non mostra alcun tentativo in uscita verso il server di gestione, confronta il valore target= nel terminale con il filtro di cattura dei pacchetti.
Se non è presente alcuna riga Local API request, il browser non sta raggiungendo il backend locale. Verifica che l'app sia in esecuzione e che tu abbia aperto l'URL locale corretto.
set-smart-console-idle-timeoutshow-login-restrictionsshow-cp-password-requirementsset-cp-password-requirementsshow-simple-gatewaysshow-global-propertiesset-global-propertiesrun-scriptshow-taskinsights/v3.0/show-suggestions-summaryinsights/v3.0/show-suggestions