Show Menu
ARGOMENTI×

Security Checklist

Questa sezione descrive i vari passaggi da seguire per garantire che l’installazione di AEM sia sicura quando distribuita. L'elenco di controllo deve essere applicato dall'alto verso il basso.
Nella fase di sviluppo sono applicabili alcune considerazioni supplementari in materia di sicurezza.

Principali misure di sicurezza

Esecuzione di AEM in modalità pronta per la produzione

Per ulteriori informazioni, consultate Esecuzione di AEM in modalità pronta per la produzione.

Abilita HTTPS per la sicurezza del livello di trasporto

L'abilitazione del livello di trasporto HTTPS sia sulle istanze di creazione che di pubblicazione è obbligatoria per disporre di un'istanza protetta.
Per ulteriori informazioni, consultate la sezione Abilitazione di HTTP su SSL .

Installazione degli hotfix di sicurezza

Accertatevi di aver installato gli hotfix di sicurezza più recenti forniti da Adobe .

Modificare le password predefinite per gli account di amministrazione di AEM e OSGi Console

Adobe consiglia vivamente di cambiare la password degli account privilegiati di dopo l’installazione (in tutte le istanze).
Questi account includono:
  • L’account AEM admin
    Dopo aver modificato la password dell'account amministratore AEM, dovrete utilizzare la nuova password per accedere a CRX.
  • La admin password per la console Web OSGi
    Questa modifica verrà applicata anche all'account amministratore utilizzato per accedere alla console Web, pertanto dovrete utilizzare la stessa password per accedervi.
Questi due account utilizzano credenziali separate e dispongono di una password distinta e complessa per ciascuno di essi è fondamentale per una distribuzione protetta.

Modifica della password di amministrazione di AEM

La password per l'account amministratore AEM può essere modificata tramite la console Granite Operations - Users .
Qui puoi modificare l' admin account e cambiare la password .
Modificando l’account amministratore viene modificato anche l’account della console Web OSGi. Dopo aver modificato l’account amministratore, dovete cambiare l’account OSGi in qualcosa di diverso.

Importanza della modifica della password della console Web OSGi

A parte l’account AEM admin , la mancata modifica della password predefinita per la console Web OSGi può comportare:
  • Esposizione del server con una password predefinita durante l'avvio e lo spegnimento (che può richiedere minuti per i server di grandi dimensioni);
  • Esposizione del server quando il repository è inattivo/riavviato e OSGI è in esecuzione.
Per ulteriori informazioni sulla modifica della password della console Web, consultate Modifica della password amministratore della console Web OSGi.

Modifica della password amministratore della console Web OSGi

È inoltre necessario modificare la password utilizzata per accedere alla console Web. A tale scopo, è necessario configurare le seguenti proprietà della console di gestione Apache Felix OSGi:
Nome utente e password , le credenziali per accedere 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 ciò:
  1. Passate alla console Web all’indirizzo <server>:<port>/system/console/configMgr .
  2. Andate alla console di gestione Apache Felix OSGi e modificate il nome ​utente e la password .
  3. Fai clic su Salva .

Implementazione del gestore errori personalizzato

Adobe consiglia di definire pagine del gestore di errori personalizzate, in particolare per i codici di risposta HTTP 404 e 500 al fine di impedire la divulgazione delle informazioni.

Elenco di controllo completo per la sicurezza Dispatcher

AEM Dispatcher è una componente fondamentale dell'infrastruttura. Adobe consiglia vivamente di completare l'elenco di controllo della sicurezza del dispatcher .
Utilizzando Dispatcher è necessario disabilitare il selettore ".form".

Passaggi di verifica

Configure replication and transport users

Un'installazione standard di AEM specifica admin come utente per le credenziali di trasporto all'interno degli agenti di replica predefiniti. Inoltre, l'utente amministratore viene utilizzato per eseguire la replica nel sistema di creazione.
Per motivi di sicurezza, è opportuno modificare entrambe le opzioni in modo da riflettere il caso d’uso specifico in questione, tenendo presenti i due aspetti seguenti:
  • L'utente di trasporto non deve essere l'utente amministratore. Configurate invece un utente nel sistema di pubblicazione che disponga solo dei diritti di accesso alle porzioni pertinenti del sistema di pubblicazione e utilizzate le credenziali dell'utente per il trasporto.
    È possibile iniziare dall'utente del ricevitore di replica in bundle e configurare i diritti di accesso dell'utente in modo che corrispondano alla propria situazione
  • L'utente di replica o l'ID utente agente non devono essere 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 nel sistema di creazione prima che venga inviato all'editore.

Controllare i controlli di stato della sicurezza del dashboard delle operazioni

AEM 6 introduce il nuovo Pannello operativo, che consente agli operatori di sistema di risolvere i problemi e monitorare lo stato di un’istanza.
Il dashboard include anche una raccolta di controlli di stato di sicurezza. Si consiglia di controllare lo stato di tutti i controlli di stato di protezione prima di iniziare a vivere con l'istanza di produzione. Per ulteriori informazioni, consulta la documentazione di Operations Dashboard.

Verificate la presenza di contenuto di esempio

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 l'istanza è in esecuzione in modalità Pronto per produzione. Se, per qualsiasi motivo, non è così, potete disinstallare il contenuto di esempio andando a Gestione pacchetti, quindi cercando e disinstallando tutti i pacchetti We.Retail. Per ulteriori informazioni, consultate Operazioni con i pacchetti .

Verificate la presenza dei bundle di sviluppo CRX

I bundle OSGi di sviluppo devono essere disinstallati sia nei sistemi produttivi di creazione che di pubblicazione prima di renderli accessibili.
  • Supporto di Adobe CRXDE (com.adobe.granite.crxde-support)
  • Adobe Granite CRX Explorer (com.adobe.granite.crx-explorer)
  • Adobe Granite CRXDE Lite (com.adobe.granite.crxde-lite)

Verificare la presenza del bundle di sviluppo Sling

Gli strumenti per sviluppatori AEM per Eclipse distribuiscono l’installazione del supporto Apache Sling Tooling (org.apache.sling.tooling.support.install).
Prima di renderli accessibili, questo bundle OSGi deve essere disinstallato nei sistemi produttivi di creazione e pubblicazione.

Protezione contro la contraffazione delle richieste tra siti

Quadro di protezione CSRF

AEM 6.1 viene fornito con un meccanismo che aiuta a proteggere contro gli attacchi di contraffazione delle richieste cross-site, denominato CSRF Protection Framework . Per ulteriori informazioni su come utilizzarlo, consulta la documentazione .

Filtro Sling Referrer

Per risolvere problemi noti di sicurezza con CSRF (Cross-Site Request Forgery) in CRX WebDAV e Apache Sling, è necessario aggiungere configurazioni per il filtro Referrer per utilizzarlo.
Il servizio filtro di riferimento è un servizio OSGi che consente di configurare:
  • quali metodi http devono essere filtrati
  • se è consentita un'intestazione di referente vuota
  • e un elenco di server da consentire oltre all'host del server.
    Per impostazione predefinita, tutte le varianti di localhost e i nomi host correnti che il server è associato sono nell'elenco.
Per configurare il servizio filtro di riferimento:
  1. Aprite la console Apache Felix ( Configurazioni ) in:
    https://<server>:<port_number>/system/console/configMgr
  2. Effettuate il login come admin .
  3. Nel menu Configurazioni , selezionare:
    Apache Sling Referrer Filter
  4. Nel Allow Hosts campo, immettere tutti gli host consentiti come referente. Ogni voce deve essere del modulo
    <protocollo>://<server>:<porta>
    Ad esempio:
    • https://allowed.server:80 consente tutte le richieste da questo server con la porta specificata.
    • Se desiderate anche consentire le richieste https, dovete immettere una seconda riga.
    • Se si accettano tutte le porte da quel server, è possibile utilizzare 0 come numero di porta.
  5. Se si desidera consentire intestazioni referrer vuote o mancanti, controllare il Allow Empty campo.
    Si consiglia di fornire un referente durante l'utilizzo di strumenti della riga di comando, ad esempio cURL anziché consentire un valore vuoto in quanto potrebbe esporre il sistema agli attacchi CSRF.
  6. Modificate i metodi da utilizzare per i controlli con il Filter Methods campo.
  7. Click Save to save your changes.

Impostazioni OSGI

Alcune impostazioni OSGI sono impostate per impostazione predefinita per consentire un debug più semplice dell’applicazione. Per evitare che le informazioni interne vengano divulgate al pubblico, è necessario modificare le istanze produttive di pubblicazione e creazione.
Tutte le impostazioni riportate di seguito, ad eccezione di Day CQ WCM Debug Filter , sono automaticamente coperte dalla Produzione Ready Mode . Per questo motivo, consigliamo di rivedere tutte le impostazioni prima di distribuire l'istanza in un ambiente produttivo.
Per ciascuno dei seguenti servizi è necessario modificare le impostazioni specificate:
    • abilitate Minify (per rimuovere CRLF e spazi bianchi).
    • abilitare Gzip (per consentire la creazione di gzip dei file e l’accesso tramite una sola richiesta).
    • disable Debug
    • disattiva temporizzazione
  • Filtro debug CQ WCM Day:
    • deseleziona Abilita
  • Filtro WCM CQ Day:
    • solo per la pubblicazione, impostate la modalità ​WCM su "disabled"
  • Gestore Java Script Apache Sling:
    • disabilita Genera informazioni di debug
  • Gestore script JSP Apache Sling:
    • disabilita Genera informazioni di debug
    • disabilita contenuto mappato
Per ulteriori dettagli, consultate Impostazioni di configurazione OSGi.
When working with AEM there are several methods of managing the configuration settings for such services; see Configuring OSGi for more details and the recommended practices.

Ulteriori letture

Riduzione degli attacchi di tipo Denial of Service (DoS)

Un attacco Denial of Service (DoS) è un tentativo di rendere una risorsa computer non disponibile agli utenti previsti. Questo avviene spesso sovraccaricando la risorsa; ad esempio:
  • Con un'ondata di richieste da una fonte esterna.
  • Con una richiesta di maggiori informazioni, il sistema è in grado di fornire con successo.
    Ad esempio, una rappresentazione JSON dell’intero repository.
  • 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 come:
    • .../en.ExtensionDosAttack
    • .../en.SelectorDosAttack.html
    • .../en.html/SuffixDosAttack
    Tutte le varianti valide (ad esempio, restituire una 200 risposta e configurate per essere memorizzate nella cache) verranno memorizzate nella cache dal dispatcher, con conseguente file system completo e nessun servizio per ulteriori richieste.
Ci sono molti punti di configurazione per prevenire tali attacchi, qui discutiamo solo di quelli direttamente correlati ad 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 risorsa JCR (un nodo del repository):
  • La prima destinazione è la risorsa (nodo JCR) che contiene il contenuto.
  • In secondo luogo, il renderer, o script, si trova dalle proprietà delle risorse in combinazione con alcune parti della richiesta (ad es. selettori e/o estensione).
Questo argomento viene trattato più dettagliatamente in Sling Request Processing .
Questo approccio rende Sling molto potente e molto flessibile, ma come sempre è la flessibilità che deve essere gestita con attenzione.
Per evitare l'uso improprio dei DoS è possibile:
  1. incorporare controlli a livello di applicazione; a causa del numero di variazioni possibili, una configurazione predefinita non è fattibile.
    Nell’applicazione è necessario:
    • Controllare i selettori nell'applicazione, in modo da servire solo i selettori espliciti necessari e tornare 404 per tutti gli altri.
    • Impedire l'output di un numero illimitato di nodi di contenuto.
  2. Controllare la configurazione dei renderer predefiniti, che possono essere un'area problematica.
    • In particolare, il renderer JSON che può trasmettere la struttura ad albero su più livelli.
      Ad esempio, la richiesta:
      http://localhost:4502/.json
      potrebbe scaricare l'intero repository in una rappresentazione JSON. Ciò causerebbe gravi problemi al server. Per questo motivo Sling imposta un limite al numero massimo di risultati. Per limitare la profondità del rendering JSON potete impostare il valore per:
      JSON Max risultati ( json.maximumresults )
      nella configurazione per il Servlet GET Apache Sling. Quando questo limite viene superato, il rendering viene compresso. Il valore predefinito per Sling in AEM è 200 .
    • Come misura preventiva, disattivate gli altri renderer predefiniti (HTML, testo normale, XML). Di nuovo configurando il Servlet GET Apache Sling.
    Non disattivate il renderer JSON. Questo è richiesto per il normale funzionamento di AEM.
  3. Usate un firewall per filtrare l’accesso all’istanza.
    • L'uso di un firewall a livello di sistema operativo è necessario per filtrare l'accesso ai punti dell'istanza che potrebbero causare attacchi di tipo Denial of Service se lasciato non protetto.
Ottimizzazione rispetto a DoS causata dall'utilizzo dei selettori del modulo
Questa limitazione deve essere eseguita solo sugli ambienti AEM che non utilizzano Forms.
Poiché AEM non fornisce indici out-of-box per i FormChooserServlet , l’utilizzo di selettori di moduli nelle query attiverà un lungo attraversamento del repository, in genere bloccando l’istanza di AEM. I selettori dei moduli possono essere rilevati dalla presenza di &ast;.form.&ast; stringa nelle query.
Per attenuare questo problema, attenetevi alla procedura seguente:
  1. Andate alla console Web puntando il browser su https://<serveraddress>:<serverport>/system/console/configMgr
  2. Cerca servlet di selezione moduli CQ Day WCM
  3. Dopo aver fatto clic sulla voce, disattivate la richiesta di ricerca avanzata nella finestra seguente.
  4. Fai clic su Salva .
Mitigare contro i DoS causati dal servlet di download delle risorse
Il Servlet di download delle risorse predefinito in AEM consente agli utenti autenticati di inviare richieste di download simultanei di dimensioni arbitrarie per la creazione di file ZIP di risorse visibili agli utenti che possono sovraccaricare il server e/o la rete.
Per attenuare i potenziali rischi DoS causati da questa funzione, il componente AssetDownloadServlet OSGi è disabilitato per impostazione predefinita per le istanze di pubblicazione nelle versioni AEM più recenti.
Se la configurazione richiede l’attivazione del server di download delle risorse, consultate questo articolo per ulteriori informazioni.

Disattiva WebDAV

WebDAV deve essere disattivato sia negli ambienti di creazione che di pubblicazione. A tale scopo, potete arrestare i bundle OSGi appropriati.
  1. Connettiti alla console di gestione Flash in esecuzione su:
    https://<*host*>:<*port*>/system/console
    Esempio http://localhost:4503/system/console/bundles .
  2. Nell’elenco dei bundle, individua il bundle denominato:
    Apache Sling Simple WebDAV Access to repositories (org.apache.sling.jcr.webdav)
  3. Fate clic sul pulsante Interrompi (nella colonna Azioni) per arrestare il bundle.
  4. Di nuovo nell'elenco dei bundle, trovate il bundle denominato:
    Apache Sling DavEx Access to repositories (org.apache.sling.jcr.davex)
  5. Fate clic sul pulsante Interrompi per arrestare il bundle.
    Non è necessario riavviare AEM.

Verifica Di Non Essere Nella Visualizzazione Di Informazioni Personalmente Identificabili Nel Percorso Home Degli Utenti

È importante proteggere gli utenti accertandosi di non esporre alcuna informazione personale nel percorso principale degli utenti del repository.
A partire da AEM 6.1, il modo in cui vengono memorizzati i nomi dei nodi ID degli utenti (o di quelli autorizzabili) viene modificato con una nuova implementazione dell’ AuthorizableNodeName interfaccia. La nuova interfaccia non esporrà più l'ID utente nel nome del nodo, ma genererà un nome casuale.
Per abilitarlo, non è necessario eseguire alcuna configurazione, in quanto si tratta del metodo predefinito per generare ID autorizzabili in AEM.
Anche se non consigliato, potete disattivarlo nel caso in cui sia necessaria la vecchia implementazione per garantire la compatibilità con le applicazioni esistenti. A tale scopo, è necessario:
  1. Andate alla console Web e rimuovete la voce org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName dalla proprietà requirementsServicePids in Apache Jackrabbit Oak SecurityProvider .
    Potete inoltre trovare il provider di sicurezza Oak cercando il PID org.apache.jackrabbit.oak.security.internal.SecurityProviderRegistration nelle configurazioni OSGi.
  2. Eliminate dalla console Web la configurazione Apache Jackrabbit Oak Random Authorizable Node Name OSGi.
    Per una ricerca più semplice, il PID di questa configurazione è org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName .
Per ulteriori informazioni, consulta la documentazione Oak su Generazione di nomi di nodo autorizzabili.

Impedisci il clickjacking

Per evitare il clickjacking, si consiglia di configurare il server Web in modo che fornisca l’intestazione X-FRAME-OPTIONS HTTP impostata su SAMEORIGIN .

Se Necessario, Assicuratevi Di Replicare Correttamente Le Chiavi Di Cifratura

Alcune funzioni di AEM e alcuni schemi di autenticazione richiedono la replica delle chiavi di crittografia in tutte le istanze di AEM.
Prima di eseguire questa operazione, tenere presente che la replica chiave viene eseguita in modo diverso tra le versioni, perché il modo in cui le chiavi vengono memorizzate è diverso tra la versione 6.3 e le versioni precedenti.
Per ulteriori informazioni, vedi sotto.

Replica dei tasti per AEM 6.3

Nelle versioni precedenti le chiavi di replica venivano memorizzate nella directory archivio, a partire da AEM 6.3 vengono memorizzate nel file system.
Pertanto, per replicare le chiavi tra le istanze è necessario copiarle dall'istanza di origine alla posizione delle istanze di destinazione nel file system.
Più specificamente, è necessario:
  1. Accedete all’istanza di AEM, in genere un’istanza di creazione, che contiene il materiale chiave da copiare;
  2. Individuate 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 file all’interno di ciascuna cartella identificherà il nome del bundle.
  3. Passa alla cartella dei dati. Ad esempio:
    • <author-aem-install-dir>/crx-quickstart/launchpad/felix/bundle21/data
  4. Copiate i file HMAC e master.
  5. Quindi, passate all'istanza di destinazione alla quale desiderate duplicare la chiave HMAC e individuate la cartella di dati. Ad esempio:
    • <publish-aem-install-dir>/crx-quickstart/launchpad/felix/bundle21/data
  6. Incollate i due file precedentemente copiati.
  7. Aggiornate Crypto Bundle se l'istanza di destinazione è già in esecuzione.
  8. Ripetere i passaggi indicati sopra per tutte le istanze in cui si desidera replicare la chiave.
Per ripristinare il metodo pre 6.3 di memorizzazione delle chiavi, aggiungi il parametro seguente alla prima installazione di AEM:
-Dcom.adobe.granite.crypto.file.disable=true

Chiavi di replica per AEM 6.2 e versioni precedenti

In AEM 6.2 e nelle versioni precedenti, le chiavi sono memorizzate nella directory archivio sotto il /etc/key nodo.
Il modo consigliato per replicare in modo sicuro le chiavi nelle istanze consiste solo nel replicare questo nodo. È possibile replicare i nodi in modo selettivo tramite CRXDE Lite:
  1. Aprite CRXDE Lite andando a https://<serveraddress>:4502/crx/de/index.jsp
  2. Select the /etc/key node.
  3. Passate alla scheda Replica .
  4. Premere il pulsante Replica .

Eseguire un test di penetrazione

Adobe consiglia vivamente di eseguire un test di penetrazione dell’infrastruttura AEM prima di iniziare la produzione.

Tecniche consigliate per lo sviluppo

È fondamentale che i nuovi sviluppi seguano le procedure consigliate per la sicurezza per garantire che l’ambiente AEM rimanga al sicuro.