AEM 6.4 ha raggiunto la fine del supporto esteso e questa documentazione non viene più aggiornata. Per maggiori dettagli, consulta la nostra periodi di assistenza tecnica. Trova le versioni supportate qui.
Questa sezione descrive vari passaggi da seguire per garantire che l’installazione AEM sia sicura quando distribuita. La lista di controllo deve essere applicata dall’alto verso il basso.
Sono disponibili alcuni considerazioni di sicurezza applicabile nella fase di sviluppo.
Per ulteriori informazioni, consulta Esecuzione di AEM in modalità pronta per la produzione.
Per disporre di un’istanza sicura, è obbligatorio abilitare il livello di trasporto HTTPS sia sulle istanze di authoring che di pubblicazione.
Consulta la sezione 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 vivamente, dopo l'installazione, di modificare la password per i privilegi AEM admin
account (su tutte le istanze).
Tali account includono:
AEM admin
account
Dopo aver cambiato la password per l'account amministratore AEM, dovrai usare la nuova password quando accedi a CRX.
La admin
password per la console Web OSGi
Questa modifica verrà applicata anche all’account amministratore utilizzato per accedere alla console Web, quindi dovrai usare la stessa password per accedervi.
Questi due account utilizzano credenziali separate e dispongono di una password distinta e sicura per ciascuno di essi è fondamentale per una distribuzione sicura.
La password dell'account amministratore AEM può essere modificata tramite il Operazioni Granite - Utenti console.
Qui puoi modificare il admin
conto e cambiare la password.
La modifica dell’account amministratore comporta anche la modifica dell’account della console Web OSGi. Dopo aver cambiato l'account amministratore, devi quindi cambiare l'account OSGi in qualcosa di diverso.
A parte il AEM admin
account, la mancata modifica della password predefinita per la console Web OSGi può portare a:
Per ulteriori informazioni sulla modifica della password della console Web, consulta Modifica della password dell’amministratore della console Web OSGi sotto.
È inoltre necessario modificare la password utilizzata per accedere alla console Web. Questa operazione viene eseguita configurando le seguenti proprietà del Console di gestione Apache Felix OSGi:
Nome utente e Password, le credenziali per l'accesso alla console di gestione web Apache Felix stessa.
La password deve essere modificata dopo l’installazione iniziale per garantire la sicurezza dell’istanza.
Per effettuare questo collegamento:
Passa alla console web all’indirizzo <server>:<port>/system/console/configMgr
.
Passa a Apache Felix OSGi Management Console e modifica la nome utente e password.
Fai clic su Salva.
Adobe consiglia di definire pagine personalizzate del gestore di errori, in particolare per i codici di risposta HTTP 404 e 500, al fine di impedire la divulgazione delle informazioni.
Vedi Come creare script personalizzati o gestori di errori articolo della knowledge base per maggiori dettagli.
AEM Dispatcher è un elemento critico dell’infrastruttura. L’Adobe consiglia vivamente di completare il elenco di controllo della sicurezza del dispatcher.
Utilizzando Dispatcher è necessario disabilitare il selettore ".form".
Un'installazione standard di AEM specifica admin
come utente per le credenziali di trasporto all’interno del valore predefinito agenti di replica. Inoltre, l'utente amministratore viene utilizzato per avviare la replica sul sistema di authoring.
Per motivi di sicurezza, è opportuno modificare entrambe le opzioni per riflettere il caso d’uso specifico in questione, tenendo presenti i due aspetti seguenti:
La utente del trasporto non deve essere l'utente amministratore. Piuttosto, imposta un utente sul sistema di pubblicazione che dispone solo dei diritti di accesso alle parti rilevanti del sistema di pubblicazione e utilizza le credenziali dell'utente per il trasporto.
Puoi iniziare dall'utente destinatario della replica in bundle e configurare i diritti di accesso di questo utente in modo che corrispondano alla tua situazione
La utente di replica o ID utente agente non deve essere anche l’utente amministratore, ma un utente che può visualizzare solo il contenuto che deve essere replicato. L’utente di replica viene utilizzato per raccogliere il contenuto da replicare sul sistema dell’autore prima che venga inviato all’editore.
AEM 6 introduce il nuovo dashboard delle operazioni, volto ad aiutare gli operatori del sistema a risolvere i problemi e monitorare lo stato di un'istanza.
Il dashboard viene fornito anche con una raccolta di controlli dello stato di sicurezza. È consigliabile controllare lo stato di tutti i controlli di integrità della sicurezza prima di iniziare a lavorare con l'istanza di produzione. Per ulteriori informazioni, consulta la Documentazione del dashboard delle operazioni.
Tutti i contenuti e gli utenti di esempio (ad esempio il progetto Geometrixx e i relativi componenti) devono essere disinstallati ed eliminati completamente in un sistema produttivo prima di renderlo accessibile al pubblico.
Le applicazioni We.Retail di esempio vengono rimosse se questa istanza è in esecuzione in Modalità pronta per la produzione. Se, per qualsiasi motivo, non è così, è possibile disinstallare il contenuto di esempio andando a Gestione pacchetti, quindi cercare e disinstallare tutti i pacchetti We.Retail. Per ulteriori informazioni, consulta Come lavorare con i pacchetti.
Questi bundle OSGi di sviluppo devono essere disinstallati sia sui sistemi produttivi di authoring che di pubblicazione prima di renderli accessibili.
La AEM Developer Tools per Eclipse distribuisce il supporto Apache Sling Tooling (org.apache.sling.tooling.support.install).
Questo bundle OSGi deve essere disinstallato sui sistemi produttivi di authoring e pubblicazione prima di renderli accessibili.
AEM 6.1 viene fornito con un meccanismo che aiuta a proteggere contro gli attacchi Cross-Site Request Forgery, denominato Quadro di protezione CSRF. Per ulteriori informazioni su come utilizzarlo, consulta la documentazione.
Per risolvere problemi di sicurezza noti con Cross-Site Request Forgery (CSRF) in CRX WebDAV e Apache Sling è necessario aggiungere configurazioni per il filtro Referrer per utilizzarlo.
Il servizio filtro referrer è un servizio OSGi che consente di configurare:
quali metodi http devono essere filtrati
se è consentita un'intestazione referrer vuota
e un elenco di server da consentire oltre all'host del server.
Per impostazione predefinita, nell’elenco sono presenti tutte le varianti di localhost e i nomi host correnti a cui è associato il server.
Per configurare il servizio filtro referrer:
Apri la console Apache Felix (Configurazioni) all'indirizzo:
https://<server>:<port_number>/system/console/configMgr
Accedi come admin
.
In Configurazioni seleziona il menu:
Apache Sling Referrer Filter
In Allow Hosts
immetti tutti gli host consentiti come referrer. Ogni voce deve essere del modulo
<protocol>://<server>:<port>
Ad esempio:
https://allowed.server:80
consente tutte le richieste da questo server con la porta specificata.0
come numero di porta.Controlla la Allow Empty
se desideri consentire intestazioni referrer vuote o mancanti.
Si 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 agli attacchi CSRF.
Modifica i metodi che questo filtro deve utilizzare per i controlli con Filter Methods
campo .
Fai clic su Salva per salvare le modifiche.
Alcune impostazioni OSGI sono impostate per impostazione predefinita per consentire un debug più semplice dell'applicazione. Queste devono essere modificate nelle istanze produttive di pubblicazione e authoring per evitare che le informazioni interne vengano divulgate al pubblico.
Tutte le impostazioni seguenti, ad eccezione di Filtro di debug Day CQ WCM sono automaticamente coperti dal Modalità pronta per la produzione. Per questo motivo, consigliamo di rivedere tutte le impostazioni prima di distribuire l’istanza in un ambiente produttivo.
Per ciascuno dei servizi seguenti è necessario modificare le impostazioni specificate:
Adobe Granite HTML Library Manager:
Apache Sling Java Script Handler:
Apache Sling JSP Script Handler:
Per maggiori dettagli vedi Impostazioni di configurazione OSGi.
Quando si lavora con AEM esistono diversi metodi per gestire le impostazioni di configurazione di tali servizi; vedere Configurazione di OSGi per ulteriori dettagli e procedure consigliate.
Un attacco Denial of Service (DoS) è un tentativo di rendere la risorsa di un computer indisponibile per gli utenti a cui è destinata. Questo viene spesso fatto sovraccaricando la risorsa; ad esempio:
Con un flusso di richieste da una fonte esterna.
Con una richiesta di più informazioni di quelle che il sistema può consegnare correttamente.
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ò anche essere richiesto come:
.../en.ExtensionDosAttack
.../en.SelectorDosAttack.html
.../en.html/SuffixDosAttack
Tutte le varianti valide (ad es. restituisce un 200
response e sono configurati per essere memorizzati nella cache) sarà memorizzato nella cache dal dispatcher, il che porterà a un file system completo e a nessun servizio per ulteriori richieste.
Ci sono molti punti di configurazione per prevenire tali attacchi, qui discutiamo solo di quelli direttamente collegati a AEM.
Configurazione di Sling per impedire il DoS
Sling è incentrato sul contenuto. Ciò significa che l’elaborazione è incentrata sul contenuto, in quanto ogni richiesta (HTTP) viene mappata sul contenuto sotto forma di una risorsa JCR (un nodo di archivio):
Questo è trattato più dettagliatamente in Elaborazione delle richieste Sling.
Questo approccio rende Sling molto potente e molto flessibile, ma come sempre è la flessibilità che deve essere gestita con attenzione.
Per evitare abusi di DoS è possibile:
Incorporare controlli a livello di applicazione; a causa del numero di varianti possibili, una configurazione predefinita non è fattibile.
Nella tua applicazione devi:
404
per tutti gli altri.Controlla la configurazione dei moduli di rendering predefiniti, che possono essere un’area problematica.
In particolare, il modulo di rendering JSON che può trasmettere la struttura ad albero su più livelli.
Ad esempio, la richiesta:
http://localhost:4502/.json
potrebbe scaricare l’intero archivio in una rappresentazione JSON. Questo causerebbe gravi problemi al server. Per questo motivo Sling imposta un limite al numero di risultati massimi. Per limitare la profondità del rendering JSON, puoi impostare il valore per:
Risultati massimi JSON ( json.maximumresults
)
nella configurazione per Servlet Apache Sling GET. Quando questo limite viene superato, il rendering viene compresso. Il valore predefinito per Sling in AEM è 1000
.
Come misura preventiva, disattiva gli altri render predefiniti (HTML, testo normale, XML). Di nuovo configurando la Servlet Apache Sling GET.
Non disabilitare il renderer JSON, è necessario per il normale funzionamento di AEM.
Utilizza un firewall per filtrare l’accesso all’istanza.
Riduzione degli errori di DoS causati dall’utilizzo di selettori di moduli
Questa mitigazione deve essere eseguita solo su ambienti AEM che non utilizzano Forms.
Poiché AEM non fornisce indici predefiniti per FormChooserServlet
, l’utilizzo di selettori di moduli nelle query attiverà un costoso attraversamento dell’archivio, solitamente bloccando l’istanza AEM. I selettori di moduli possono essere rilevati dalla presenza di *.form.* stringa nelle query.
Per attenuarlo, segui i passaggi seguenti:
Passa alla console Web puntando il browser verso https://<serveraddress>:<serverport>/system/console/configMgr
Cerca Servizio di selezione moduli di CQ WCM Day
Dopo aver fatto clic sulla voce, disattiva la Ricerca avanzata richiesta nella finestra seguente.
Fai clic su Salva.
Riduzione del numero di DoS causato dal servlet di download delle risorse
Il servlet di download delle risorse predefinito in AEM consente agli utenti autenticati di emettere richieste di download simultanee di grandi dimensioni arbitrarie per la creazione di file ZIP di risorse visibili che possono sovraccaricare il server e/o la rete.
Per attenuare i potenziali rischi DoS causati da questa funzione, AssetDownloadServlet
Il componente OSGi è disabilitato per impostazione predefinita per le istanze di pubblicazione sulle versioni AEM più recenti.
Se la configurazione richiede l’abilitazione di Asset Download Server, consulta articolo per ulteriori informazioni.
WebDAV deve essere disabilitato sia negli ambienti di authoring che di pubblicazione. Questo può essere fatto arrestando i bundle OSGi appropriati.
Collega a Console di gestione Felix in esecuzione:
https://<*host*>:<*port*>/system/console
Esempio http://localhost:4503/system/console/bundles
.
Nell’elenco dei bundle, trova il bundle denominato:
Apache Sling Simple WebDAV Access to repositories (org.apache.sling.jcr.webdav)
Fai clic sul pulsante di arresto (nella colonna Azioni) per arrestare questo bundle.
Di nuovo nell'elenco dei bundle, trova il bundle chiamato:
Apache Sling DavEx Access to repositories (org.apache.sling.jcr.davex)
Fai clic sul pulsante di arresto per arrestare il bundle.
Non è necessario riavviare AEM.
È importante proteggere gli utenti assicurandosi di non esporre informazioni personali identificabili nel percorso home degli utenti dell’archivio.
A partire AEM 6.1, il modo in cui vengono memorizzati i nomi dei nodi ID utente (noti anche come autorizzabili) viene modificato con una nuova implementazione del AuthorizableNodeName
interfaccia. La nuova interfaccia non espone più l’ID utente nel nome del nodo, ma genera un nome casuale.
Per abilitarlo, non è necessario eseguire alcuna configurazione, in quanto è ora il modo predefinito per generare ID autorizzabili in AEM.
Anche se non consigliato, puoi disattivarlo nel caso in cui sia necessaria la vecchia implementazione per garantire la compatibilità con le applicazioni esistenti. Per eseguire questa operazione, è necessario:
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 di sicurezza Oak cercando il org.apache.jackrabbit.oak.security.internal.SecurityProviderRegistration PID nelle configurazioni OSGi.
Elimina Nome nodo Apache Jackrabbit Oak casuale autorizzabile Configurazione OSGi dalla console Web.
Per una ricerca più semplice, tieni presente che il PID per questa configurazione è org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName.
Per ulteriori informazioni, consulta la documentazione Oak su Generazione di nomi di nodo autorizzati.
Per prevenire il clickjacking, ti consigliamo di configurare il server web per fornire l’intestazione HTTP X-FRAME-OPTIONS
impostata su SAMEORIGIN
.
Per ulteriori informazioni sul clickjacking, vedi il sito OWASP.
Alcune funzioni AEM e schemi di autenticazione richiedono la replica delle chiavi di crittografia in tutte le istanze AEM.
Prima di eseguire questa operazione, tieni presente che la replica chiave viene eseguita in modo diverso tra le versioni, perché il modo in cui le chiavi vengono memorizzate è diverso tra le versioni 6.3 e 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 filesystem.
Pertanto, per replicare le chiavi tra le istanze è necessario copiarle dall'istanza sorgente alla posizione delle istanze di destinazione sul file system.
In particolare, devi:
Accedi all'istanza AEM, in genere un'istanza dell'autore, che contiene il materiale chiave da copiare;
Individua il bundle com.adobe.granite.crypto.file nel file system locale. Ad esempio, sotto questo percorso:
<author-aem-install-dir>/crx-quickstart/launchpad/felix/bundle21
La bundle.info
all'interno di ogni cartella identificherà 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 a cui desideri duplicare la chiave HMAC e passa alla cartella dei dati. Ad esempio:
<publish-aem-install-dir>/crx-quickstart/launchpad/felix/bundle21/data
Incolla i due file copiati in precedenza.
Aggiorna il bundle Crypto se l’istanza target è già in esecuzione.
Ripeti i passaggi precedenti per tutte le istanze a cui desideri replicare la chiave.
Per ripristinare il metodo precedente alla versione 6.3 di memorizzazione delle chiavi, aggiungi il parametro seguente al primo avvio dell'installazione di AEM:
-Dcom.adobe.granite.crypto.file.disable=true
Nelle versioni AEM 6.2 e precedenti, le chiavi sono memorizzate nell'archivio sotto /etc/key
nodo.
Il modo consigliato per replicare in modo sicuro le chiavi nelle istanze è quello di replicare solo questo nodo. È possibile replicare in modo selettivo i nodi tramite CRXDE Lite:
/etc/key
nodo.Adobe consiglia vivamente di eseguire un test di penetrazione dell’infrastruttura AEM prima di procedere alla produzione.
È fondamentale che il nuovo sviluppo segua la Tecniche consigliate per la sicurezza per garantire che l'ambiente AEM rimanga al sicuro.