Questa sezione descrive i vari passaggi da seguire per garantire la sicurezza dell’installazione dell’AEM durante l’installazione. L’elenco di controllo deve essere applicato dall’alto verso il basso.
Sono inoltre disponibili ulteriori informazioni sulle minacce più pericolose per la sicurezza pubblicate da Apri progetto di protezione applicazione Web (OWASP).
Sono disponibili alcuni considerazioni sulla sicurezza applicabile nella fase di sviluppo.
Per ulteriori informazioni, consulta Esecuzione di AEM in modalità pronta per la produzione.
Per poter disporre di un’istanza protetta, è obbligatorio abilitare il livello di trasporto HTTPS sia sulle istanze di authoring che su quelle di pubblicazione.
Consulta la Abilitazione di HTTP su SSL per ulteriori informazioni.
Assicurati di aver installato la versione più recente Hotfix di sicurezza forniti da Adobe.
L'Adobe consiglia dopo l'installazione di modificare la password per il privilegiato AEM admin
account su tutte le istanze.
Tali account includono:
L'AEM admin
account
Dopo aver modificato la password per l’account amministratore AEM, utilizza la nuova password per accedere a CRX.
Il admin
password per la console Web OSGi
Questa modifica viene applicata anche all’account amministratore utilizzato per accedere alla console Web, pertanto utilizza la stessa password per l’accesso.
Questi due account utilizzano credenziali separate e disporre di password distinte e sicure per ciascuno è fondamentale per una distribuzione sicura.
La password dell'account amministratore dell'AEM può essere modificata tramite Operazioni Granite - Utenti console.
Qui puoi modificare il admin
account e cambiare la password.
La modifica dell’account amministratore comporta anche la modifica dell’account della console web OSGi. Dopo aver modificato l’account amministratore, devi impostare l’account OSGi su un valore diverso.
A parte l'AEM admin
account, se non si modifica la password predefinita per la password della console web OSGi, si possono verificare le seguenti situazioni:
Per ulteriori informazioni sulla modifica della password della console Web, consulta Modifica della password amministratore per la console Web OSGi di seguito.
Modifica la password utilizzata per accedere alla console Web. Utilizza un Configurazione OSGI per aggiornare le seguenti proprietà del Console di gestione Apache Felix OSGi:
Consulta Configurazione OSGI per informazioni dettagliate sulla configurazione delle impostazioni OSGi.
Per modificare la password amministratore della console Web OSGi:
Utilizzo di Strumenti, Operazioni aprire il menu Console web e passare alla Configurazione sezione.
Ad esempio, in corrispondenza di <server>:<port>/system/console/configMgr
.
Passa alla voce e aprila per Console di gestione Apache Felix OSGi.
Modificare il nome utente e password.
Seleziona Salva.
L’Adobe consiglia di definire pagine personalizzate del gestore degli errori, in particolare per i codici di risposta HTTP 404 e 500, per impedire la divulgazione delle informazioni.
Consulta Come posso creare script personalizzati o gestori di errori per ulteriori dettagli.
AEM Dispatcher è un elemento fondamentale dell’infrastruttura. L’Adobe consiglia di completare il Elenco di controllo della sicurezza di Dispatcher.
Con Dispatcher devi disattivare il selettore ".form".
Un'installazione standard di AEM specifica admin
come utente per le credenziali di trasporto all’interno del predefinito agenti di replica. Inoltre, l’utente amministratore viene utilizzato per determinare l’origine della replica sul sistema di authoring.
Per motivi di sicurezza, entrambi dovrebbero essere modificati per riflettere il caso d’uso specifico in questione, tenendo presenti i due aspetti seguenti:
Il utente trasporto non deve essere l’utente amministratore. Piuttosto, imposta un utente sul sistema di pubblicazione che dispone solo dei diritti di accesso alle parti pertinenti del sistema di pubblicazione e utilizza le credenziali di tale utente per il trasporto.
Puoi iniziare dall’utente di ricezione della replica in bundle e configurare i diritti di accesso di questo utente in base alla tua situazione
Il utente di replica o ID utente agente inoltre, non deve essere l’utente amministratore, ma un utente in grado di visualizzare solo il contenuto replicato. L’utente di replica viene utilizzato per raccogliere il contenuto da replicare sul sistema di authoring prima che venga inviato all’editore.
AEM6 introduce il nuovo dashboard delle operazioni, volto ad aiutare gli operatori di sistema a risolvere i problemi e a monitorare lo stato di un’istanza.
La dashboard viene inoltre fornita con una raccolta di controlli di integrità della sicurezza. Si consiglia di controllare lo stato di tutti i controlli di integrità della sicurezza prima di andare "live" con l’istanza di produzione. Per ulteriori informazioni, consultare Documentazione del dashboard operazioni.
Tutti gli utenti e i contenuti di esempio (ad esempio, il progetto e i relativi componenti) devono essere disinstallati ed eliminati completamente in un Geometrixx produttivo prima di renderlo accessibile al pubblico.
Il campione We.Retail
le applicazioni vengono rimosse se questa istanza è in esecuzione in Modalità pronta per la produzione. In caso contrario, puoi disinstallare il contenuto di esempio da Gestione pacchetti, quindi cercare e disinstallare tutti We.Retail
pacchetti.
Consulta Utilizzare I Pacchetti.
Prima di renderli accessibili, questi bundle OSGi di sviluppo devono essere disinstallati sia sui sistemi produttivi di authoring che su quelli di pubblicazione.
Il Strumenti per sviluppatori AEM implementa l’installazione del supporto per gli strumenti Apache Sling (org.apache.sling.tooling.support.install).
Prima di renderli accessibili, questo bundle OSGi deve essere disinstallato sui sistemi produttivi sia di authoring che di pubblicazione.
L’AEM 6.1 viene fornito con un meccanismo che aiuta a proteggere da attacchi di tipo Cross-Site Request Forgery, chiamato Framework di protezione CSRF. Per ulteriori informazioni su come utilizzarlo, consulta documentazione.
Per risolvere i problemi di sicurezza noti con Cross-Site Request Forgery (CSRF) in CRX WebDAV e Apache Sling, aggiungi le configurazioni per il filtro Referrer per utilizzarlo.
Il servizio di filtro dei referenti è un servizio OSGi che consente di configurare quanto segue:
quali metodi http filtrare
se è consentita un’intestazione referente vuota
e un elenco di server da consentire in aggiunta all’host del server.
Per impostazione predefinita, tutte le varianti di localhost e i nomi host correnti a cui è associato il server sono inclusi nell'elenco.
Per configurare il servizio filtro referenti:
Apri la console Apache Felix (Configurazioni) in:
https://<server>:<port_number>/system/console/configMgr
Accedi come admin
.
In Configurazioni , selezionare:
Apache Sling Referrer Filter
In Allow Hosts
, immettere tutti gli host consentiti come referrer. Ogni voce deve essere nel modulo
<protocol>://<server>:<port>
Ad esempio:
https://allowed.server:80
consente tutte le richieste provenienti da questo server con la porta specificata.0
come numero di porta.Controlla la Allow Empty
, se desideri consentire intestazioni referente vuote/mancanti.
L’Adobe consiglia di fornire un referente durante l’utilizzo di strumenti della riga di comando come cURL
invece di consentire un valore vuoto in quanto potrebbe esporre il sistema ad attacchi CSRF.
Modifica i metodi utilizzati da questo filtro per i controlli con Filter Methods
campo.
Clic Salva per salvare le modifiche.
Alcune impostazioni OSGI sono impostate per impostazione predefinita per consentire un debug più semplice dell’applicazione. Modifica tali impostazioni sulle istanze produttive di pubblicazione e authoring per evitare la perdita di informazioni interne al pubblico.
Tutte le impostazioni seguenti, tranne Filtro di debug Day CQ WCM, sono automaticamente coperti dal Modalità pronta per la produzione. Di conseguenza, Adobe consiglia di rivedere tutte le impostazioni prima di distribuire l’istanza in un ambiente produttivo.
È necessario modificare le impostazioni specificate per ciascuno dei servizi seguenti:
Adobe Granite HTML Library Manager:
Gestore JavaScript Apache Sling:
Gestore script Apache Sling JSP:
Consulta Impostazioni configurazione OSGi.
Quando si lavora con l’AEM, esistono diversi metodi per gestire le impostazioni di configurazione per tali servizi; vedi Configurazione di OSGi per ulteriori dettagli e le pratiche consigliate.
Un attacco Denial of Service (DoS) è un tentativo di rendere la risorsa di un computer indisponibile per gli utenti a cui è destinata. Questo attacco viene spesso eseguito sovraccaricando la risorsa, ad esempio:
Un flusso di richieste provenienti da una sorgente esterna.
Una richiesta di informazioni superiore a quelle che il sistema è in grado di fornire.
Ad esempio, una rappresentazione JSON dell’intero archivio.
Richiedendo una pagina di contenuto con un numero illimitato di URL, l’URL può includere un handle, alcuni selettori, un’estensione e un suffisso, ciascuno dei quali può essere modificato.
Ad esempio: .../en.html
può essere richiesto anche come:
.../en.ExtensionDosAttack
.../en.SelectorDosAttack.html
.../en.html/SuffixDosAttack
Tutte le varianti valide (ad esempio, restituiscono un 200
e sono configurati per essere memorizzati in cache) vengono memorizzati nella cache da Dispatcher, portando a un file system completo e a nessun servizio per ulteriori richieste.
Ci sono molti punti di configurazione per prevenire questi attacchi, ma solo i punti che si riferiscono all'AEM sono discussi qui.
Configurazione di Sling per impedire i DoS
Sling è incentrato sui contenuti. L’elaborazione si concentra sul contenuto, in quanto ogni richiesta (HTTP) viene mappata sul contenuto sotto forma di risorsa JCR (un nodo dell’archivio):
Consulta Elaborazione richiesta Sling per ulteriori informazioni.
Questo approccio rende Sling potente e flessibile, ma come sempre è la flessibilità che deve essere gestita con attenzione.
Per evitare l'uso improprio del DoS, è possibile effettuare le seguenti operazioni:
Incorporare controlli a livello di applicazione. A causa del numero di varianti possibili, non è possibile effettuare una configurazione predefinita.
Nell’applicazione dovresti:
404
per tutti gli altri.Controlla la configurazione dei renderer predefiniti, che può rappresentare un’area problematica.
In particolare, il renderer JSON trasmette la struttura ad albero su più livelli.
Ad esempio:
http://localhost:4502/.json
potrebbe scaricare l’intero archivio in una rappresentazione JSON, il che potrebbe causare problemi significativi al server. Per questo motivo, Sling imposta un limite al numero di risultati massimi. Per limitare la profondità del rendering JSON, imposta il valore per quanto segue:
Max risultati JSON ( json.maximumresults
)
nella configurazione per Apache Sling GET Servlet. Quando questo limite viene superato, il rendering viene compresso. Il valore predefinito per Sling in AEM è 1000
.
Come misura preventiva, disattivate gli altri renderer predefiniti (HTML, testo normale, XML). Di nuovo, configurando Apache Sling GET Servlet.
Non disabilitare il renderer JSON perché è necessario per il normale funzionamento dell’AEM.
Utilizza un firewall per filtrare l’accesso all’istanza.
Attenuare i DoS causati dall'utilizzo dei selettori di moduli
Questa mitigazione deve essere eseguita solo sugli ambienti AEM che non utilizzano Forms.
Poiché l’AEM non fornisce indici predefiniti per FormChooserServlet
Tuttavia, l’utilizzo di selettori di moduli nelle query può attivare un attraversamento costoso dell’archivio, che in genere comporta l’arresto dell’istanza AEM. I selettori di moduli possono essere rilevati dalla presenza di *.form.* stringa nelle query.
Per attenuare questo problema, puoi effettuare le seguenti operazioni:
Passa alla console Web puntando il browser su https://<serveraddress>:<serverport>/system/console/configMgr
Cerca Servlet selettore modulo WCM Day CQ
Dopo aver fatto clic sulla voce, disattiva Ricerca avanzata richiesta nella finestra seguente.
Fai clic su Salva.
Attenuazione rispetto ai DoS causati dal servlet di download delle risorse
Il servlet di download delle risorse predefinito consente agli utenti autenticati di inviare richieste di download simultanee di grandi dimensioni e arbitrarie per creare file ZIP delle risorse. La creazione di grandi archivi ZIP può sovraccaricare il server e la rete. Per attenuare un potenziale rischio Denial of Service (DoS) causato da questo comportamento, AssetDownloadServlet
Il componente OSGi è disabilitato per impostazione predefinita il Experience Manager istanza di pubblicazione. È abilitato su Experience Manager per impostazione predefinita.
Se non hai bisogno della funzionalità di download, disabilita il servlet nelle distribuzioni di authoring e pubblicazione. Se la configurazione richiede che la funzionalità di download delle risorse sia abilitata, consulta questo articolo per ulteriori informazioni. Inoltre, puoi definire un limite massimo di download supportato dalla tua implementazione.
Arresta i bundle OSGi appropriati per disabilitare WebDAV negli ambienti di authoring e di pubblicazione.
Connetti a Console di gestione Felix esecuzione:
https://<*host*>:<*port*>/system/console
Esempio: http://localhost:4503/system/console/bundles
.
Nell’elenco dei bundle, individua il bundle denominato:
Apache Sling Simple WebDAV Access to repositories (org.apache.sling.jcr.webdav)
Per arrestare questo bundle, nella colonna Azioni, fai clic sul pulsante Interrompi.
Di nuovo, nell’elenco dei bundle, individua il bundle denominato:
Apache Sling DavEx Access to repositories (org.apache.sling.jcr.davex)
Per arrestare questo bundle, fai clic sul pulsante Stop.
Non è necessario riavviare l’AEM.
È importante proteggere gli utenti accertandosi di non esporre informazioni personali identificabili nel percorso principale degli utenti dell’archivio.
A partire da AEM 6.1, il modo in cui i nomi dei nodi ID degli utenti (noti anche come autorizzabili) vengono memorizzati è cambiato con una nuova implementazione della AuthorizableNodeName
di rete. La nuova interfaccia non espone più l’ID utente nel nome del nodo, ma genera invece un nome casuale.
Non è necessario eseguire alcuna configurazione per abilitarla, perché è ora il modo predefinito per generare ID autorizzabili nell’AEM.
Anche se non consigliato, puoi disattivarlo nel caso sia necessaria la vecchia implementazione per compatibilità con le applicazioni esistenti. A tale scopo, è necessario effettuare le seguenti operazioni:
Vai alla console web e rimuovi la voce org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName dalla proprietà requiredServicePids in Apache Jackrabbit Oak SecurityProvider.
Puoi anche trovare il provider della sicurezza Oak cercando org.apache.jackrabbit.oak.security.internal.SecurityProviderRegistration PID nelle configurazioni OSGi.
Elimina Nome nodo casuale autorizzabile Apache Jackrabbit Oak Configurazione OSGi dalla console Web.
Per una ricerca più semplice, il PID di questa configurazione è org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName.
Per ulteriori informazioni, consulta la documentazione di Oak su Generazione nome nodo autorizzabile.
Per impostazione predefinita, l’AEM memorizza i metadati del sistema, ad esempio jcr:createdBy
o jcr:lastModifiedBy
come proprietà del nodo, accanto al contenuto normale, nell’archivio. A seconda della configurazione e della configurazione del controllo degli accessi, in alcuni casi ciò potrebbe causare l’esposizione di informazioni personali (PII, personally identifiable information), ad esempio quando tali nodi vengono visualizzati come JSON o XML non elaborati.
Come tutti i dati dell’archivio, queste proprietà sono mediate dallo stack di autorizzazione Oak. L'accesso ad esse dovrebbe essere limitato conformemente al principio del minimo privilegio.
Per supportare questa funzione, Adobe fornisce un pacchetto di protezione delle autorizzazioni come base su cui i clienti possono basarsi. Funziona installando una voce di controllo di accesso "nega" nella directory principale dell’archivio, limitando l’accesso anonimo alle proprietà di sistema comunemente utilizzate. Il pacchetto è disponibile per il download qui e possono essere installati su tutte le versioni supportate di AEM.
Per illustrare le modifiche, possiamo confrontare le proprietà del nodo che possono essere visualizzate in modo anonimo prima di installare il pacchetto:
con quelli visualizzabili dopo l’installazione del pacchetto, dove jcr:createdBy
e jcr:lastModifiedBy
non sono visibili:
Per ulteriori informazioni, consulta le note sulla versione del pacchetto.
Per evitare il clickjacking, l’Adobe consiglia di configurare il server web per fornire X-FRAME-OPTIONS
intestazione HTTP impostata su SAMEORIGIN
.
Per ulteriori informazioni sul clickjacking, vedi Sito OWASP.
Alcune funzionalità AEM e alcuni schemi di autenticazione richiedono la replica delle chiavi di crittografia in tutte le istanze AEM.
Prima di procedere, la replica delle chiavi viene eseguita in modo diverso tra le versioni, poiché il modo in cui le chiavi vengono memorizzate è diverso tra la versione 6.3 e le versioni precedenti.
Per ulteriori informazioni, consulta di seguito.
Mentre nelle versioni precedenti le chiavi di replica venivano memorizzate nell’archivio, a partire da AEM 6.3 vengono memorizzate nel file system.
Pertanto, per replicare le chiavi tra le istanze, copiale dall’istanza di origine nella posizione delle istanze di destinazione sul file system.
In particolare, devi effettuare le seguenti operazioni:
Accedere all’istanza dell’AEM, in genere un’istanza di authoring, che contiene il materiale chiave da copiare;
Individua il bundle com.adobe.granite.crypto.file nel file system locale. Ad esempio, in questo percorso:
<author-aem-install-dir>/crx-quickstart/launchpad/felix/bundle21
Il bundle.info
all'interno di ogni cartella identifica il nome del bundle.
Passa alla cartella dati. Ad esempio:
<author-aem-install-dir>/crx-quickstart/launchpad/felix/bundle21/data
Copiare i file HMAC e master.
Quindi, vai all’istanza di destinazione in cui desideri duplicare la chiave HMAC e passa alla cartella dati. Ad esempio:
<publish-aem-install-dir>/crx-quickstart/launchpad/felix/bundle21/data
Incolla i due file copiati in precedenza.
Aggiorna il pacchetto di crittografia se l’istanza di destinazione è già in esecuzione.
Ripeti i passaggi precedenti per tutte le istanze a cui desideri replicare la chiave.
Puoi ripristinare il metodo di memorizzazione delle chiavi precedente alla versione 6.3 aggiungendo il seguente parametro alla prima installazione dell’AEM:
-Dcom.adobe.granite.crypto.file.disable=true
In AEM 6.2 e versioni precedenti, le chiavi sono memorizzate nell’archivio sotto /etc/key
nodo.
Il modo consigliato per replicare in modo sicuro le chiavi nelle istanze consiste nel replicare solo questo nodo. È possibile replicare in modo selettivo i nodi tramite CRXDE Lite:
https://<serveraddress>:4502/crx/de/index.jsp
/etc/key
nodo.L’Adobe consiglia di eseguire un test di penetrazione dell’infrastruttura AEM prima di procedere alla produzione.
È fondamentale che i nuovi sviluppi seguano Best practice per la sicurezza per garantire la sicurezza dell’ambiente AEM.