Säkerhetschecklista

I det här avsnittet beskrivs olika åtgärder som du bör vidta för att se till att AEM är säker när du distribuerar. Checklistan ska användas uppifrån och ned.

OBSERVERA

Ytterligare information finns också om de farligaste säkerhetshot som publicerats av Open Web Application Security Project (OWASP).

OBSERVERA

Det finns ytterligare säkerhetsaspekter som gäller under utvecklingsfasen.

Viktiga säkerhetsåtgärder

Kör AEM i produktionsklar läge

Mer information finns i Köra AEM i produktionsklart läge.

Aktivera HTTPS för transportlagersäkerhet

Det är obligatoriskt att aktivera HTTPS-transportlagret på både författare- och publiceringsinstanser för att en säker instans ska kunna användas.

OBSERVERA

Mer information finns i avsnittet Aktivera HTTP över SSL.

Installera snabbkorrigeringar för säkerhet

Kontrollera att du har installerat de senaste säkerhetsuppdateringarna från Adobe.

Ändra standardlösenord för AEM- och OSGi-konsolens administratörskonton

Adobe rekommenderar att du efter installationen ändrar lösenordet för de behöriga AEM admin-kontona (för alla instanser).

Dessa konton omfattar:

  • AEM admin-konto

    När du har ändrat lösenordet för AEM administratörskonto måste du använda det nya lösenordet när du använder CRX.

  • Lösenordet admin för OSGi-webbkonsolen

    Den här ändringen kommer även att gälla för det administratörskonto som används för åtkomst till webbkonsolen, så du måste använda samma lösenord när du kommer åt det.

De här två kontona använder separata autentiseringsuppgifter och det är viktigt att ha tydliga, starka lösenord för var och en av dem för att driftsättningen ska vara säker.

Ändra AEM administratörslösenord

Lösenordet för AEM administratörskonto kan ändras via konsolen Bevilja åtgärder - Användare.

Här kan du redigera admin-kontot och ändra lösenordet.

OBSERVERA

Om du ändrar administratörskontot ändras även OSGi-webbkonsolens konto. När du har ändrat administratörskontot bör du ändra OSGi-kontot till något annat.

Viktigt att ändra lösenordet för OSGi-webbkonsolen

Förutom i kontot admin AEM du inte ändrar standardlösenordet för OSGi-webbkonsolen kan det leda till:

  • Serverns exponering med ett standardlösenord vid start och avstängning (som kan ta minuter för stora servrar).
  • Exponering av servern när databasen är avstängd/startad och OSGI körs.

Mer information om hur du ändrar lösenord för webbkonsolen finns i Ändra lösenord för OSGi-webbkonsolens administratör nedan.

Ändra administratörslösenordet för OSGi-webbkonsolen

Du måste också ändra lösenordet som används för att komma åt webbkonsolen. Detta görs genom att konfigurera följande egenskaper för hanteringskonsolen Apache Felix OSGi:

Användarnamn och lösenord, autentiseringsuppgifter för åtkomst till själva Apache Felix Web Management Console.
Lösenordet måste ändras efter den första installationen för att säkerställa instansens säkerhet.

Så här gör du:

  1. Navigera till webbkonsolen på <server>:<port>/system/console/configMgr.

  2. Navigera till Apache Felix OSGi Management Console och ändra användarnamnet och lösenordet.

    chlimage_1-3

  3. Klicka på Spara.

Implementera anpassad felhanterare

Adobe rekommenderar att du definierar anpassade felhanterarsidor, särskilt för 404- och 500 HTTP Response-koder för att förhindra informationsexponering.

OBSERVERA

Mer information finns i Hur kan jag skapa anpassade skript eller felhanterare kunskapsbasartikel.

Slutför checklista för utskickssäkerhet

AEM Dispatcher är en viktig del av din infrastruktur. Adobe rekommenderar att du slutför dispatchersäkerhetschecklistan.

FÖRSIKTIGHET

Med Dispatcher måste du inaktivera ".form"-väljaren.

Verifieringssteg

Konfigurera replikerings- och transportanvändare

En standardinstallation av AEM anger admin som användare för transportautentiseringsuppgifter i standardreplikeringsagenterna. Administratörsanvändaren används också för att hämta replikeringen på författarsystemet.

Av säkerhetsskäl bör båda ändras för att återspegla det aktuella användningsfallet, med följande två aspekter i åtanke:

  • transportanvändaren ska inte vara administratörsanvändaren. I stället anger du en användare i publiceringssystemet som bara har behörighet till de relevanta delarna av publiceringssystemet och använder användarens inloggningsuppgifter för transporten.

    Du kan starta från den paketerade replikeringsmottagaren och konfigurera den här användarens åtkomsträttigheter så att de matchar din situation

  • replikeringsanvändaren eller Agentanvändar-ID ska inte vara administratörsanvändare, utan en användare som bara kan se innehåll som ska replikeras. Replikeringsanvändaren används för att samla in det innehåll som ska replikeras på författarsystemet innan det skickas till utgivaren.

Kontrollera säkerhetshälsokontrollerna för instrumentpanelen för åtgärder

I AEM 6 introduceras den nya kontrollpanelen för åtgärder, som är avsedd att hjälpa systemansvariga att felsöka problem och övervaka en instans hälsa.

Kontrollpanelen innehåller också en samling säkerhetskontroller. Vi rekommenderar att du kontrollerar statusen för alla säkerhetshälsokontroller innan du publicerar med produktionsinstansen. Mer information finns i dokumentationen till kontrollpanelen för åtgärder.

Kontrollera om exempelinnehåll finns

Allt exempelinnehåll och alla användare (t.ex. Geometrixx och dess komponenter) ska avinstalleras och tas bort helt i ett produktionssystem innan det görs tillgängligt för allmänheten.

OBSERVERA

Exemplet med webbprogram.Detaljhandelsprogram tas bort om den här instansen körs i Produktionsklart läge. Om så inte är fallet kan du avinstallera exempelinnehållet genom att gå till Package Manager och sedan söka efter och avinstallera alla We.Retail-paket. Mer information finns i Arbeta med paket.

Kontrollera om det finns några CRX-utvecklingspaket

Dessa OSGi-utvecklingspaket bör avinstalleras både på författaren och publicera produktionssystem innan de blir tillgängliga.

  • Stöd för 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)

Kontrollera om Sling-utvecklingspaketet finns

AEM Developer Tools for Eclipse distribuerar installationsprogrammet för Apache Sling Tooling (org.apache.sling.tooling.support.install).

Detta OSGi-paket bör avinstalleras både på författaren och publicera produktionssystem innan de blir tillgängliga.

Protect mot smidning av förfrågningar mellan webbplatser

CSRF Protection Framework

AEM 6.1 levereras med en mekanism som hjälper till att skydda mot attacker med attacker med smidda korswebbplatser som kallas CSRF Protection Framework. Mer information om hur du använder den finns i dokumentationen.

Sling Referer-filtret

För att åtgärda kända säkerhetsproblem med CSRF (Cross-Site Request Forgery) i CRX WebDAV och Apache Sling måste du lägga till konfigurationer för referensfiltret för att kunna använda det.

Refererarfiltertjänsten är en OSGi-tjänst som gör att du kan konfigurera:

  • vilka http-metoder som ska filtreras

  • om en tom referensrubrik tillåts

  • och en lista över servrar som ska tillåtas utöver servervärden.

    Som standard finns alla varianter av localhost och de värdnamn som servern är bunden till i listan.

Så här konfigurerar du referenspunktsfiltertjänsten:

  1. Öppna Apache Felix-konsolen (Configurations) på:

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

  2. Logga in som admin.

  3. Välj:

    Apache Sling Referrer Filter

  4. I fältet Allow Hosts anger du alla värdar som tillåts som referent. Varje tävlingsbidrag måste ha blanketten

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

    Till exempel:

    • https://allowed.server:80 tillåter alla begäranden från den här servern med den angivna porten.
    • Om du även vill tillåta https-begäranden måste du ange en andra rad.
    • Om du tillåter alla portar från den servern kan du använda 0 som portnummer.
  5. Markera fältet Allow Empty om du vill tillåta tomma/saknade hänvisningsrubriker.

    FÖRSIKTIGHET

    Vi rekommenderar att du skickar en referens när du använder kommandoradsverktyg som cURL i stället för att tillåta ett tomt värde eftersom det kan exponera systemet för CSRF-attacker.

  6. Redigera de metoder som det här filtret ska använda för kontroller med fältet Filter Methods.

  7. Klicka på Spara för att spara ändringarna.

OSGI-inställningar

Vissa OSGI-inställningar ställs in som standard för att underlätta felsökning av programmet. Dessa måste ändras i era publicerings- och upphovsarbetsinstanser för att undvika att intern information läcker till allmänheten.

OBSERVERA

Alla inställningar nedan utom Dag CQ WCM Debug Filter täcks automatiskt av Production Ready Mode. Därför rekommenderar vi att du granskar alla inställningar innan du distribuerar instansen i en produktiv miljö.

För var och en av följande tjänster måste de angivna inställningarna ändras:

Mer information finns i OSGi Configuration Settings.

När du arbetar med AEM finns det flera metoder för att hantera konfigurationsinställningarna för sådana tjänster. Mer information och rekommenderade metoder finns i Konfigurera OSGi.

Ytterligare läsningar

Minska DoS-attacker (Denial of Service)

En denial of service-attack (DoS) är ett försök att göra en datorresurs otillgänglig för de avsedda användarna. Detta görs ofta genom att överbelasta resursen. till exempel:

  • Med en mängd förfrågningar från en extern källa.

  • Med en begäran om mer information än vad systemet kan leverera.

    Till exempel en JSON-representation av hela databasen.

  • Genom att begära en innehållssida med ett obegränsat antal URL-adresser kan URL-adressen innehålla ett handtag, vissa väljare, ett tillägg och ett suffix, som alla kan ändras.

    .../en.html kan också begäras som:

    • .../en.ExtensionDosAttack
    • .../en.SelectorDosAttack.html
    • .../en.html/SuffixDosAttack

    Alla giltiga variationer (t.ex. returnera ett 200-svar och är konfigurerade att cachelagras) cachas av dispatchern, vilket till slut leder till ett fullständigt filsystem och ingen tjänst för ytterligare begäranden.

Det finns många konfigurationspunkter för att förhindra sådana attacker, här diskuterar vi bara de som är direkt relaterade till AEM.

Konfigurera Sling för att förhindra DoS

Sling är innehållscentrerad. Detta innebär att bearbetningen är inriktad på innehållet eftersom varje HTTP-begäran mappas till innehåll i form av en JCR-resurs (en databasnod):

  • Det första målet är den resurs (JCR-nod) som innehåller innehållet.
  • För det andra finns återgivaren, eller skriptet, från resursegenskaperna i kombination med vissa delar av begäran (t.ex. väljare och/eller tillägg).
OBSERVERA

Detta beskrivs mer ingående under Behandling av delningsbegäran.

Den här metoden gör Sling mycket kraftfull och mycket flexibel, men som alltid är det den flexibilitet som måste hanteras noggrant.

För att förhindra missbruk kan du:

  1. Införliva kontroller på applikationsnivå. På grund av antalet möjliga variationer är en standardkonfiguration inte möjlig.

    I ditt program bör du:

    • Kontrollera väljarna i programmet så att du bara hanterar de explicita väljare som behövs och returnerar 404 för alla andra.
    • Förhindra utdata från ett obegränsat antal innehållsnoder.
  2. Kontrollera konfigurationen av standardåtergivningsprogrammen, som kan vara ett problemområde.

    • I synnerhet JSON-renderaren som kan omvända trädstrukturen över flera nivåer.

      Exempelvis begäran:

      http://localhost:4502/.json

      kan dumpa hela databasen i en JSON-representation. Detta skulle orsaka allvarliga serverproblem. Därför anger Sling en gräns för antalet maximala resultat. Om du vill begränsa djupet i JSON-återgivningen kan du ange värdet för:

      JSON Max results ( json.maximumresults)

      i konfigurationen för Apache Sling GET Servlet. När den här gränsen överskrids komprimeras återgivningen. Standardvärdet för Sling inom AEM är 1000.

    • Som en förebyggande åtgärd inaktiverar du de andra standardåtergivningarna (HTML, oformaterad text, XML). Återigen genom att konfigurera Apache Sling GET Servlet.

    FÖRSIKTIGHET

    Inaktivera inte JSON-renderaren, vilket krävs för att AEM ska fungera normalt.

  3. Använd en brandvägg för att filtrera åtkomsten till instansen.

    • Du måste använda en brandvägg på operativsystemnivå för att filtrera åtkomst till punkter i din instans som kan leda till denial of service-attacker om den lämnas oskyddad.

Minska mot DoS som orsakas av att formulärväljare används

OBSERVERA

Denna begränsning bör endast utföras i AEM som inte använder Forms.

Eftersom AEM inte tillhandahåller ut- och utdataindex för FormChooserServlet, kommer formulärväljare i frågor att utlösa en kostsam databasgenomgång, vilket vanligen leder till att AEM avbryts. Formulärväljare kan identifieras genom närvaro av *.form.* sträng i frågor.

Följ stegen nedan för att minska detta:

  1. Gå till webbkonsolen genom att peka din webbläsare till https://<serveradress>:<serverport>/system/console/configMgr

  2. Sök efter Day CQ WCM Form Chooser Servlet

  3. När du har klickat på posten inaktiverar du Advanced Search Require i följande fönster.

  4. Klicka på Spara.

Minska mot DoS som orsakas av tjänsten för hämtning av resurser

Med standardservern för hämtning av resurser kan autentiserade användare skicka godtyckligt stora begäranden om samtidig hämtning för att skapa ZIP-filer med resurser. Om du skapar stora ZIP-arkiv kan servern och nätverket överbelastas. För att minska en potentiell denial of service-risk (DoS) som orsakas av det här beteendet är OSGi-komponenten inaktiverad som standard på Experience Manager-publiceringsinstansen. AssetDownloadServlet Den är aktiverad som standard på Experience Manager-författarinstansen.

Om du inte behöver nedladdningsfunktionen kan du inaktivera servleten för att skapa och publicera distributioner. Om din installation kräver att hämtningsfunktionen för resurser är aktiverad finns mer information i den här artikeln. Du kan också ange en maximal hämtningsgräns som din distribution kan stödja.

Inaktivera WebDAV

WebDAV ska vara inaktiverat i både författar- och publiceringsmiljön. Detta kan göras genom att stoppa de aktuella OSGi-paketen.

  1. Anslut till Felix Management Console som körs på:

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

    Till exempel http://localhost:4503/system/console/bundles.

  2. I listan med paket hittar du paketet:

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

  3. Klicka på stoppknappen (i åtgärdskolumnen) för att stoppa paketet.

  4. I listan med paket hittar du det paket som heter:

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

  5. Klicka på stoppknappen för att stoppa det här paketet.

    OBSERVERA

    Du behöver inte starta om AEM.

Verifiera att du inte avslöjar personligt identifierbar information i användarens hemsökväg

Det är viktigt att du skyddar dina användare genom att se till att du inte visar någon personligt identifierbar information i databasanvändarens hemsökväg.

Sedan AEM 6.1 har sättet som användar-ID-nodnamn (kallas även auktoriseringsbara) lagras på ändrats med en ny implementering av gränssnittet AuthorizableNodeName. Det nya gränssnittet visar inte längre användar-ID:t i nodnamnet, utan genererar i stället ett slumpmässigt namn.

Ingen konfiguration behöver göras för att aktivera den, eftersom detta nu är standardsättet att generera auktoriserbara ID:n i AEM.

Även om det inte rekommenderas kan du inaktivera det om du behöver den gamla implementeringen för bakåtkompatibilitet med dina befintliga program. För att göra detta måste du:

  1. Gå till webbkonsolen och ta bort posten ​ org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName från egenskapen requiredServicePids i Apache Jackrabbit Oak SecurityProvider.

    Du kan också hitta Oak Security-providern genom att leta efter PID:t org.apache.jackrabbit.oak.security.internal.SecurityProviderRegistration i OSGi-konfigurationerna.

  2. Ta bort konfigurationen Apache Jackrabbit Oak Random Authorizable Node Name OSGi från webbkonsolen.

    Observera att PID:t för den här konfigurationen är org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName för enklare sökning.

OBSERVERA

Mer information finns i dokumentationen för eko om generering av auktoriseringsbart nodnamn.

Förhindra clickjacking

För att förhindra clickjacking rekommenderar vi att du konfigurerar webbservern så att HTTP-huvudet X-FRAME-OPTIONS är inställt på SAMEORIGIN.

Mer information om clickjacking finns på OWASP-platsen.

Se till att du replikerar krypteringsnycklar korrekt vid behov

Vissa AEM funktioner och autentiseringsscheman kräver att du replikerar dina krypteringsnycklar i alla AEM instanser.

Innan du gör detta bör du tänka på att nyckelreplikering sker på olika sätt mellan versionerna eftersom det sätt som nycklarna lagras på skiljer sig åt mellan 6.3 och äldre versioner.

Mer information finns nedan.

Replikeringsnycklar för AEM 6.3

I äldre versioner lagrades replikeringsnycklarna i databasen, med början AEM 6.3 lagras de i filsystemet.

För att replikera dina nycklar mellan instanser måste du därför kopiera dem från källinstansen till målinstansens plats i filsystemet.

Mer specifikt:

  1. få åtkomst till AEM, vanligtvis en författarinstans, som innehåller det nyckelmaterial som ska kopieras,

  2. Leta reda på paketet com.adobe.granite.crypto.file i det lokala filsystemet. Under den här sökvägen:

    • <author-aem-install-dir>/crx-quickstart/launchpad/felix/bundle21

    bundle.info-filen i varje mapp identifierar paketnamnet.

  3. Navigera till datamappen. Till exempel:

    • <author-aem-install-dir>/crx-quickstart/launchpad/felix/bundle21/data
  4. Kopiera HMAC-filer och överordnad filer.

  5. Gå sedan till den målinstans som du vill duplicera HMAC-nyckeln till och navigera till datamappen. Till exempel:

    • <publish-aem-install-dir>/crx-quickstart/launchpad/felix/bundle21/data
  6. Klistra in de två filer som du kopierade tidigare.

  7. Uppdatera Crypto Bundleom målinstansen redan körs.

  8. Upprepa stegen ovan för alla förekomster som du vill replikera nyckeln till.

OBSERVERA

Du kan återgå till metoden för att lagra nycklar före 6.3 genom att lägga till parametern nedan när du först installerar AEM:

-Dcom.adobe.granite.crypto.file.disable=true

Replikeringsnycklar för AEM 6.2 och äldre versioner

I AEM 6.2 och tidigare lagras nycklarna i databasen under noden /etc/key.

Det rekommenderade sättet att på ett säkert sätt replikera nycklarna mellan dina instanser är att bara replikera den här noden. Du kan selektivt replikera noder via CRXDE Lite:

  1. Öppna CRXDE Lite genom att gå till https://<serveradress>:4502/crx/de/index.jsp
  2. Markera noden /etc/key.
  3. Gå till fliken Replikering.
  4. Tryck på knappen Replikering.

Utför ett penetrationstest

Adobe rekommenderar starkt att du utför ett penetrationstest av din AEM infrastruktur innan du börjar producera.

Bästa praxis för utveckling

Det är viktigt att den nya utvecklingen följer Bästa praxis för säkerhet för att säkerställa att AEM är säker.

På denna sida