Portal for ArcGIS include uno strumento di script Python, portalScan.py, che effettua una ricerca dei problemi di sicurezza più comuni. Lo strumento verifica la presenza di problemi in base ad alcune procedure consigliate per configurare un ambiente protetto per il portale. Analizza molti criteri e proprietà di configurazione e li suddivide in tre livelli di gravità: Critico, Importante e Consigliato. Di seguito sono riportate le descrizioni di questi criteri:
ID | Gravità | Proprietà | Descrizione |
---|---|---|---|
PS01 | Critica | Restrizioni proxy | Determina se la funzionalità proxy del portale è limitata. Per impostazione predefinita, il server proxy del portale è aperto a qualsiasi URL. Per mitigare i rischi di potenziali attacchi DoS (Denial of Service) o SSRF (Server Side Request Forgery), si consiglia caldamente di limitare la funzionalità proxy del portale a indirizzi Web approvati. |
PS02 | Critica | Richieste token | Determina se le richieste token con credenziali nel parametro di query sono supportate. Se supportate, quando si generano i token, le credenziali di un utente possono essere fornite come parte dell'URL e possono essere esposte tramite cronologia browser o in registri di rete. Si consiglia di disabilitarlo se non è richiesto da altre applicazioni. |
PS03 | Importante | Directory servizi del portale | Determina se la directory servizi del portale è accessibile tramite un browser Web. Disabilitare per ridurre la probabilità che gli elementi, i servizi, le mappe Web, i gruppi e le altre risorse del portale aziendale possano essere esplorati, trovati in una ricerca Web o interrogati tramite moduli HTML. |
PS04 | Importante | Comunicazioni protette | Determina se il portale comunica solo tramite HTTPS. Per impedire che le comunicazioni all'interno del portale vengano intercettate, è consigliabile configurare il portale aziendale e il server Web che ospita Web Adaptor in modo da imporre l'uso di SSL. |
PS05 | Consigliato | Accesso all'account incorporato | Determina se gli utenti possono fare clic sul pulsante Crea un account nella pagina di accesso del portale per creare un account del portale incorporato. Se stai usando account specifici dell'organizzazione o vuoi creare tutti gli account manualmente, disabilita questa opzione. |
PS06 | Consigliato | Accesso anonimo | Determina se l'accesso anonimo è consentito. Per impedire agli utenti di accedere ai contenuti senza prima fornire le credenziali al portale, è consigliabile configurare il portale aziendale in modo da disabilitare l'accesso anonimo. |
PS07 | Consigliato | Archivio identità LDAP | Se il portale è configurato con un archivio identità LDAP, questo determina se si utilizza la comunicazione crittografata. Si consiglia di utilizzare LDAPS nelle proprietà ldapURLForUsers e ldapURLForRoles elencate nei parametri di configurazione dell'archivio utenti e dell'archivio gruppi. |
PS08 | Consigliato | Certificato SSL del portale | Determina se il portale utilizza un certificato autofirmato. Per contribuire alla riduzione di avvisi del browser Web o altro comportamento imprevisto dai client che comunicano con il portale, si consiglia di importare e utilizzare un certificato SSL firmato da una CA associato alla porta 7443. |
PS09 | Consigliato | Richieste tra domini | Determina se le richieste tra domini (CORS) sono senza restrizioni. Per ridurre la possibilità che un'applicazione sconosciuta acceda a un elemento di un portale condiviso, si consiglia di limitare le richieste tra domini alle applicazioni ospitate solo in domini attendibili. |
PS10 | Critica | URL amministrativo del server federato | Determina se l'URL amministratore del server federato è raggiungibile dal portale e se il certificato SSL utilizzato in questo URL è attendibile. Se non è attendibile o non è raggiungibile, molte funzioni e operazioni del portale non funzioneranno. |
PS11 | Consigliato | URL dei servizi del server federato | Determina se l'URL dei servizi del server federato è raggiungibile dal portale e se il certificato SSL utilizzato in questo URL è attendibile. Se non è attendibile o non è raggiungibile, il portale funzionerà comunque, ma alcune operazioni del portale potrebbero non funzionare. |
PS12 | Consigliato | Contenuto pubblico | Se il portale è configurato in modo che i membri non possano condividere pubblicamente i contenuti, saranno elencati gli elementi ancora condivisi con Tutti. |
PS13 | Importante | Impostazioni di configurazione SAML | Se il portale è configurato per utilizzare l'autenticazione SAML, determina se le asserzioni crittografate e le richieste firmate sono abilitate. Se supportato dal provider di identità, si consiglia di configurare il portale per richiedere sia le asserzioni crittografate che le richieste firmate. |
PS14 | Importante | Stato del servizio di stampa predefinito | Il servizio di stampa configurato per impostazione predefinita sul portale in genere viene sovrascritto dopo che ArcGIS Server è stato federato. Si consiglia di disabilitare il servizio di stampa predefinito, se non è in uso. |
PS15 | Consigliato | Stato del servizio legenda | Il servizio legenda viene utilizzato dal portale per recuperare le icone della legenda da precedenti feature service e map service (tramite SOAP). A meno che non si acceda a servizi precedenti che non supportano il recupero della legenda tramite REST, si consiglia di disabilitare questo servizio. |
PS16 | Consigliato | Stato del servizio RSS | Il servizio RSS viene utilizzato dal portale per comunicare con i feed GeoRSS. Se non si accede ad alcun feed GeoRSS tramite mappe Web sul portale, si consiglia di disabilitare questo servizio. |
PS17 | Consigliato | Stato del servizio KML | Il servizio KML viene utilizzato dal portale per comunicare con gli endpoint KML. Se non si accede ad alcun endpoint KML GeoRSS tramite mappe Web sul portale, si consiglia di disabilitare questo servizio. |
Lo script portalScan.py si trova nella stessa directory <Portal for ArcGIS installation location>/tools/security. Esegui lo script shell utilizzando lo script portalScan Bash, che si trova nella stessa directory. Durante l'esecuzione dello script è possibile specificare uno o più parametri.
Parametri dello script portalScan.py
La seguente tabella descrive parametri portalScan.py:
Parametro | Descrizione |
---|---|
-n | Il nome dominio completo del computer in cui è installato Portal for ArcGIS (in altre parole, gisportal.domain.com). Il valore predefinito è il nome host del computer in cui viene eseguito lo script. |
-u | Nome utente dell'account amministratore. |
-p | Password dell'account amministratore. |
-o | Directory in cui verrà salvato il report relativo all'analisi della sicurezza. La directory predefinita è la stessa cartella in cui viene eseguito lo script. |
-t | È possibile generare e utilizzare un token anziché nome utente e password. Quando si genera un token, portalScan dovrebbe essere immesso nel campo Webapp URL. Quando viene immesso un token, tale token sovrascriverà qualsiasi nome utente o password immessi. |
--ignoressl | Disabilita la verifica del certificato SSL. A partire dalla versione 10.7.1, lo script proverà a verificare tutti i certificati SSL per impostazione predefinita. Se Python non si fida dell'emittente dei certificati, lo script non riuscirà a completarsi. Se necessario, è possibile specificare questo parametro in modo da ignorare tutti i certificati. |
-h o -? | Visualizza l'elenco di parametri che possono essere specificati durante l'esecuzione dello script. |
Esempio (con il file di output scritto nella directory principale dell'utente):./portalScan -n portal.domain.com -u admin -p my.password -o ~
Se lo script portalScan viene eseguito senza parametri, verrà richiesto di immetterli manualmente o di selezionare un valore predefinito. Se si desidera utilizzare un token, è necessario specificarlo come parametro durante l'esecuzione dello script.
La scansione genera un report in formato HTML che elenca gli eventuali problemi precedenti che sono stati trovati nel portale specificato.
Per impostazione predefinita, il report viene salvato nella stessa cartella in cui si esegue lo script ed è denominato portalScanReport_[hostname]_[date].html.