Säkerhetschecklista security-checklist

CAUTION
AEM 6.4 har nått slutet på den utökade supporten och denna dokumentation är inte längre uppdaterad. Mer information finns i teknisk supportperiod. Hitta de versioner som stöds här.

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.

NOTE
Det finns ytterligare säkerhetsaspekter som tillämpas i utvecklingsfasen.

Viktiga säkerhetsåtgärder main-security-measures

Kör AEM i produktionsklar läge run-aem-in-production-ready-mode

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

Aktivera HTTPS för transportlagersäkerhet enable-https-for-transport-layer-security

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.

NOTE
Se Aktivera HTTP över SSL för mer information.

Installera snabbkorrigeringar för säkerhet install-security-hotfixes

Kontrollera att du har installerat den senaste Säkerhetsuppdateringar från Adobe.

Ändra standardlösenord för AEM- och OSGi-konsolens administratörskonton change-default-passwords-for-the-aem-and-osgi-console-admin-accounts

Adobe rekommenderar att du efter installationen ändrar lösenordet för de behöriga AEM admin konton (i 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.

  • The admin lösenord 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 changing-the-aem-admin-password

Lösenordet för AEM administratörskonto kan ändras via Granitåtgärder - användare konsol.

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

NOTE
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 importance-of-changing-the-osgi-web-console-password

Förutom AEM admin om 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 administratörslösenordet för OSGi-webbkonsolen nedan.

Ändra administratörslösenordet för OSGi-webbkonsolen changing-the-osgi-web-console-admin-password

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 Apache Felix OSGi Management Console:

Användarnamn och Lösenord, inloggningsuppgifterna 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. Gå till ​ Apache Felix OSGi Management Console och ändra användarnamn och lösenord.

    chlimage_1-166

  3. Klicka Spara.

Implementera anpassad felhanterare implement-custom-error-handler

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

NOTE
Se Hur skapar jag egna skript eller felhanterare? kunskapsbasartikel för mer information.

Slutför checklista för utskickssäkerhet complete-dispatcher-security-checklist

AEM Dispatcher är en viktig del av din infrastruktur. Adobe rekommenderar starkt att du slutför säkerhetschacklista för avsändare.

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

Verifieringssteg verification-steps

Konfigurera replikerings- och transportanvändare configure-replication-and-transport-users

En standardinstallation av AEM anger admin som användare för transportreferenser inom standardinställningen replikeringsagenter. 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:

  • The transportanvändare ska inte vara administratörsanvändare. 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

  • The replikanvändare eller Användar-ID för agent ska inte heller vara admin-anvä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 check-the-operations-dashboard-security-health-checks

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 Dokumentation för instrumentpanelen för åtgärder.

Kontrollera om exempelinnehåll finns check-if-example-content-is-present

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.

NOTE
Exemplet med webbprogram.Detaljhandelsprogram tas bort om den här instansen körs i Produktionsklar 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 Web.Retail-paket. Mer information finns på Så här arbetar du med paket.

Kontrollera om det finns några CRX-utvecklingspaket check-if-the-crx-development-bundles-are-present

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 check-if-the-sling-development-bundle-is-present

The AEM Developer Tools for Eclipse distribuerar installationsprogrammet för Apache Sling Tooling Support (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 protect-against-cross-site-request-forgery

CSRF Protection Framework the-csrf-protection-framework

AEM 6.1 levereras med en mekanism som hjälper till att skydda mot attacker som leder till en begäran om förfalskning mellan webbplatser, som kallas Ramverk för CSRF-skydd. Mer information om hur du använder programmet finns i dokumentation.

Sling Referer-filtret the-sling-referrer-filter

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 (Konfigurationer) på:

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

  2. Logga in som admin.

  3. I Konfigurationer väljer du:

    Apache Sling Referrer Filter

  4. I 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. Kontrollera Allow Empty om du vill tillåta tomma/saknade hänvisningsrubriker.

    note caution
    CAUTION
    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 filtret ska använda för kontroller med Filter Methods fält.

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

OSGI-inställningar osgi-settings

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.

NOTE
Alla inställningar nedan utom Dagen CQ WCM-felsökningsfilter täcks automatiskt av Produktionsklar läge. 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 Konfigurationsinställningar för OSGi.

När du arbetar med AEM finns det flera metoder för att hantera konfigurationsinställningarna för sådana tjänster. se Konfigurerar OSGi om du vill ha mer information och rekommenderade rutiner.

Ytterligare läsningar further-readings

Minska DoS-attacker (Denial of Service) mitigate-denial-of-service-dos-attacks

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.

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

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

    Alla giltiga variationer (t.ex. returnera en 200 och är konfigurerade att cachelagras) kommer att cachas av dispatchern, vilket till slut leder till ett fullständigt filsystem och ingen tjänst för ytterligare förfrågningar.

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).
NOTE
Detta beskrivs mer ingående i Bearbetning av försäljningsbegä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:

    • Styr väljarna i programmet så att du endast servar de explicita väljarna 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-resultat ( 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 kan du inaktivera de andra standardåtergivningarna (HTML, oformaterad text, XML). Återigen genom att konfigurera Apache Sling GET Servlet.

    note caution
    CAUTION
    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

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

Eftersom AEM inte tillhandahåller index för FormChooserServlet, som använder formulärväljare i frågor, utlöser en kostsam databasgenomgång, vilket vanligen leder till att AEM avbryts. Formulärväljare kan identifieras med hjälp av *.form.* sträng i frågor.

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

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

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

  3. När du har klickat på inlägget inaktiverar du Avancerad sökning krävs i följande fönster.

  4. Klicka Spara.

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

Med standardtjänsten för hämtning av resurser i AEM kan autentiserade användare skicka godtyckligt stora, samtidiga hämtningsbegäranden för att skapa ZIP-filer med resurser som är synliga för dem och som kan överbelasta servern och/eller nätverket.

För att minska de potentiella DoS-riskerna som den här funktionen medför AssetDownloadServlet OSGi-komponenten är inaktiverad som standard för publiceringsinstanser i de senaste AEM versionerna.

Om din installation kräver att hämtningsservern för resurser är aktiverad, se den här artikeln för mer information.

Inaktivera WebDAV disable-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:

    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.

    note note
    NOTE
    Du behöver inte starta om AEM.

Verifiera att du inte avslöjar personligt identifierbar information i användarens hemsökväg verify-that-you-are-not-disclosing-personally-identifiable-information-in-the-users-home-path

Det är viktigt att du skyddar dina användare genom att se till att du inte visar någon personligt oidentifierbar 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 AuthorizableNodeName gränssnitt. 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 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 in Apache Jackrabbit Oak SecurityProvider.

    Du kan också hitta Oak Security Provider genom att leta efter org.apache.jackrabbit.oak.security.internal.SecurityProviderRegistration PID i OSGi-konfigurationer.

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

    Observera att PID för den här konfigurationen är org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName.

NOTE
Mer information finns i Oak-dokumentationen på Generering av auktoriseringsbart nodnamn.

Förhindra clickjacking prevent-clickjacking

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

Mer information om clickjacking finns på OWASP-webbplatsen.

Se till att du replikerar krypteringsnycklar korrekt vid behov make-sure-you-properly-replicate-encryption-keys-when-needed

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 replicating-keys-for-aem

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

    The 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 krypteringspaketet om målinstansen redan körs.

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

NOTE
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 replicating-keys-for-aem-and-older-versions

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

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://<serrveraddress>:4502/crx/de/index.jsp
  2. Välj /etc/key nod.
  3. Gå till Replikering -fliken.
  4. Tryck på Replikering -knappen.

Utför ett penetrationstest perform-a-penetration-test

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

Bästa praxis för utveckling development-best-practices

Det är viktigt att ny utveckling följer Bästa praxis för säkerhet för att säkerställa att AEM är säker.

recommendation-more-help
5ce3024a-cbea-458b-8b2f-f9b8dda516e8