Lista di controllo sicurezza

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.

NOTA

Sono inoltre disponibili ulteriori informazioni sulle minacce più pericolose per la sicurezza, pubblicate da Apri progetto di sicurezza dell'applicazione Web (OWASP).

NOTA

Sono disponibili alcuni considerazioni di sicurezza applicabile nella fase di sviluppo.

Principali misure di sicurezza

Eseguire AEM in modalità pronta per la produzione

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

Abilita HTTPS per la sicurezza del livello di trasporto

Per disporre di un’istanza sicura, è obbligatorio abilitare il livello di trasporto HTTPS sia sulle istanze di authoring che di pubblicazione.

NOTA

Consulta la sezione Abilitazione di HTTP su SSL per ulteriori informazioni.

Installare gli hotfix di sicurezza

Assicurati di aver installato la versione più recente Hotfix di sicurezza forniti da Adobe.

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

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.

Modifica della password dell'amministratore AEM

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.

NOTA

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.

Importanza della modifica della password della console Web OSGi

A parte il AEM admin account, la mancata modifica della password predefinita per la console Web OSGi può portare a:

  • 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 l'archivio è inattivo/riavvio del bundle - e OSGI è in esecuzione.

Per ulteriori informazioni sulla modifica della password della console Web, consulta Modifica della password dell’amministratore della console Web OSGi sotto.

Modifica della password dell’amministratore della console Web OSGi

È 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:

  1. Passa alla console web all’indirizzo <server>:<port>/system/console/configMgr.

  2. Passa a Console di gestione Apache Felix OSGi e modificare nome utente e password.

    chlimage_1-3

  3. Fai clic su Salva.

Implementare un gestore di errori personalizzato

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.

NOTA

Vedi Come creare script personalizzati o gestori di errori articolo della knowledge base per maggiori dettagli.

Elenco di controllo completo della sicurezza del dispatcher

AEM Dispatcher è un elemento critico dell’infrastruttura. L’Adobe consiglia vivamente di completare il elenco di controllo della sicurezza del dispatcher.

ATTENZIONE

Utilizzando Dispatcher è necessario disabilitare il selettore ".form".

Passaggi di verifica

Configurare gli utenti di replica e trasporto

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.

Controlla i controlli di stato della sicurezza del dashboard delle operazioni

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.

Controlla se il contenuto di esempio è presente

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.

NOTA

Le applicazioni We.Retail di esempio vengono rimosse se questa istanza è in esecuzione in Modalità pronta per la produzione. Se, per qualsiasi motivo, non è il caso, è possibile disinstallare il contenuto di esempio andando a Gestione pacchetti, quindi cercando e disinstallando tutti i pacchetti We.Retail. Per ulteriori informazioni, consulta Utilizzare i pacchetti.

Controlla se i bundle di sviluppo CRX sono presenti

Questi bundle OSGi di sviluppo devono essere disinstallati sia sui sistemi produttivi di authoring che di pubblicazione prima di renderli accessibili.

  • Supporto 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)

Controlla se il bundle di sviluppo Sling è presente

La AEM Developer Tools per Eclipse distribuisce l'installazione del supporto per gli strumenti Sling di Apache (org.apache.sling.tooling.support.install).

Questo bundle OSGi deve essere disinstallato sui sistemi produttivi di authoring e pubblicazione prima di renderli accessibili.

Protect contro la falsificazione delle richieste intersito

Quadro di riferimento per la protezione del CSRF

AEM 6.1 viene fornito con un meccanismo che aiuta a proteggere dagli attacchi Cross-Site Request Forgery, denominato Quadro di protezione CSRF. Per ulteriori informazioni su come utilizzarlo, consulta la documentazione.

Filtro Sling Referrer

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:

  1. Apri la console Apache Felix (Configurazioni) all'indirizzo:

    https://<server>:<port_number>/system/console/configMgr

  2. Accedi come admin.

  3. In Configurazioni seleziona il menu:

    Apache Sling Referrer Filter

  4. In Allow Hosts immetti tutti gli host consentiti come referrer. Ogni voce deve essere del modulo

    <protocol>://<server>:<port>

    Esempio:

    • https://allowed.server:80 consente tutte le richieste da questo server con la porta specificata.
    • Se desideri anche consentire le richieste https, devi immettere una seconda riga.
    • Se consenti tutte le porte da quel server, puoi utilizzare 0 come numero di porta.
  5. Controlla la Allow Empty se desideri consentire intestazioni referrer vuote o mancanti.

    ATTENZIONE

    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.

  6. Modifica i metodi che questo filtro deve utilizzare per i controlli con Filter Methods campo .

  7. Fai clic su Salva per salvare le modifiche.

Impostazioni OSGI

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.

NOTA

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:

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.

Ulteriori letture

Riduzione degli attacchi di tipo DoS (Denial of Service)

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):

  • Il primo target è la risorsa (nodo JCR) che contiene il contenuto.
  • In secondo luogo, il renderer, o script, si trova dalle proprietà della risorsa in combinazione con alcune parti della richiesta (ad esempio selettori e/o estensione).
NOTA

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:

  1. Incorporare controlli a livello di applicazione; a causa del numero di varianti possibili, una configurazione predefinita non è fattibile.

    Nella tua applicazione devi:

    • Controlla i selettori nell'applicazione, in modo che tu only serve i selettori espliciti necessari e restituisce 404 per tutti gli altri.
    • Impedisci l’output di un numero illimitato di nodi di contenuto.
  2. 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.

    ATTENZIONE

    Non disabilitare il renderer JSON, è necessario per il normale funzionamento di AEM.

  3. Utilizza un firewall per filtrare l’accesso all’istanza.

    • L'utilizzo 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.

Riduzione degli errori di DoS causati dall’utilizzo di selettori di moduli

NOTA

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:

  1. Passa alla console Web puntando il browser verso https://<serveraddress>:<serverport>/system/console/configMgr

  2. Cerca Servizio di selezione moduli di CQ WCM Day

  3. Dopo aver fatto clic sulla voce, disattiva la Ricerca avanzata richiesta nella finestra seguente.

  4. Fai clic su Salva.

Riduzione del numero di DoS causato dal servlet di download delle risorse

Il servlet di download delle risorse predefinito consente agli utenti autenticati di emettere richieste di download simultanee di grandi dimensioni arbitrarie per creare file ZIP di risorse. La creazione di grandi archivi ZIP può sovraccaricare il server e la rete. Per attenuare il rischio potenziale di diniego del servizio (DoS) causato da questo comportamento, AssetDownloadServlet Il componente OSGi è disabilitato per impostazione predefinita su Experience Manager pubblica istanza. È attivato su Experience Manager istanza di authoring per impostazione predefinita.

Se non hai bisogno della funzionalità di download, disattiva il servlet nelle distribuzioni di authoring e pubblicazione. Se la configurazione richiede l’abilitazione della funzionalità di download delle risorse, consulta articolo per ulteriori informazioni. Inoltre, puoi definire un limite massimo di download supportato dalla distribuzione.

Disattiva WebDAV

WebDAV deve essere disabilitato sia negli ambienti di authoring che di pubblicazione. Questo può essere fatto arrestando i bundle OSGi appropriati.

  1. Collega a Console di gestione Felix in esecuzione:

    https://<*host*>:<*port*>/system/console

    Esempio http://localhost:4503/system/console/bundles.

  2. Nell’elenco dei bundle, trova il bundle denominato:

    Apache Sling Simple WebDAV Access to repositories (org.apache.sling.jcr.webdav)

  3. Fai clic sul pulsante di arresto (nella colonna Azioni) per arrestare questo bundle.

  4. Di nuovo nell'elenco dei bundle, trova il bundle chiamato:

    Apache Sling DavEx Access to repositories (org.apache.sling.jcr.davex)

  5. Fai clic sul pulsante di arresto per arrestare il bundle.

    NOTA

    Non è necessario riavviare AEM.

Verifica Di Non Divulgare Informazioni Personalmente Identificabili Nel Percorso Home Dell’Utente

È 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:

  1. 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.

  2. 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.

NOTA

Per ulteriori informazioni, consulta la documentazione Oak su Generazione di nomi di nodo autorizzati.

Previeni il clickjacking

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.

Assicurati Di Replicare Correttamente Le Chiavi Di Crittografia Quando Necessario

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.

Replica delle chiavi per AEM 6.3

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:

  1. Accedi all'istanza AEM, in genere un'istanza dell'autore, che contiene il materiale chiave da copiare;

  2. 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.

  3. Passa alla cartella dati. Esempio:

    • <author-aem-install-dir>/crx-quickstart/launchpad/felix/bundle21/data
  4. Copiare i file HMAC e master.

  5. Quindi, vai all'istanza di destinazione a cui desideri duplicare la chiave HMAC e passa alla cartella dei dati. Esempio:

    • <publish-aem-install-dir>/crx-quickstart/launchpad/felix/bundle21/data
  6. Incolla i due file copiati in precedenza.

  7. Aggiorna il bundle Crypto se l’istanza target è già in esecuzione.

  8. Ripeti i passaggi precedenti per tutte le istanze a cui desideri replicare la chiave.

NOTA

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

Replica delle chiavi per le versioni AEM 6.2 e precedenti

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:

  1. Apri CRXDE Lite andando in https://<serveraddress>:4502/crx/de/index.jsp
  2. Seleziona la /etc/key nodo.
  3. Vai a Replica scheda .
  4. Premere Replica pulsante .

Esegui un test di penetrazione

Adobe consiglia vivamente di eseguire un test di penetrazione dell’infrastruttura AEM prima di procedere alla produzione.

Tecniche consigliate per lo sviluppo

È fondamentale che il nuovo sviluppo segua la Tecniche consigliate per la sicurezza per garantire che l’ambiente AEM rimanga sicuro.

In questa pagina