Säkerhetschecklista security-checklist
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.
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.
Installera snabbkorrigeringar för säkerhet install-security-hotfixes
Kontrollera att du har installerat de senaste säkerhetsuppdateringarna 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
kontona (i alla instanser).
Dessa konton omfattar:
-
AEM
admin
-kontotNär du har ändrat lösenordet för AEM administratörskonto använder du det nya lösenordet när du använder CRX.
-
Lösenordet
admin
för OSGi-webbkonsolenDen här ändringen tillämpas även på det administratörskonto som används för att komma åt webbkonsolen, så använd 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 konsolen Bevilja åtgärder - användare.
Här kan du redigera admin
-kontot och ändra lösenordet.
Viktigt att ändra lösenordet för OSGi-webbkonsolen importance-of-changing-the-osgi-web-console-password
Förutom AEM admin
-kontot kan följande hända om du inte ändrar standardlösenordet för OSGi-webbkonsolen:
- 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
Ändra lösenordet som används för att komma åt webbkonsolen. Använd en OSGI-konfiguration för att uppdatera följande egenskaper för Apache Felix OSGi Management Console:
- Användarnamn och lösenord, autentiseringsuppgifter för åtkomst till själva webbhanteringskonsolen för Apache Felix.
Lösenordet måste ändras efter den första installationen för att garantera instansens säkerhet.
Så här ändrar du administratörslösenordet för OSGi-webbkonsolen:
-
Använd menyn Verktyg, Åtgärder, öppna webbkonsolen och gå till avsnittet Konfiguration.
Till exempel vid<server>:<port>/system/console/configMgr
. -
Navigera till och öppna posten för Apache Felix OSGi Management Console.
-
Ändra användarnamnet och lösenordet.
-
Välj 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.
Fullständig checklista för Dispatcher complete-dispatcher-security-checklist
AEM Dispatcher är en viktig del av er infrastruktur. Adobe rekommenderar att du slutför Dispatcher checklista.
Verifieringssteg verification-steps
Konfigurera replikerings- och transportanvändare configure-replication-and-transport-users
En standardinstallation av AEM anger admin
som användare för transportautentiseringsuppgifter inom replikeringsagenterna som standard. 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 får 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 agentens användar-ID får inte vara administratörsanvändare, utan en användare som bara kan se innehåll som 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 dokumentationen för Operations Dashboard.
Kontrollera om exempelinnehåll finns check-if-example-content-is-present
Allt exempelinnehåll och alla användare (till exempel Geometrixx och dess komponenter) ska avinstalleras och tas bort helt i ett produktionssystem innan det görs tillgängligt för allmänheten.
We.Retail
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 Pakethanteraren och sedan söka efter och avinstallera alla We.Retail
-paket.Se Arbeta med paket.
Kontrollera om CRX utvecklingspaket finns 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
AEM Developer Tools 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 på olika 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 med attacker med attacker med korsdomänsbegäran, vilket kallas CSRF Protection Framework. Mer information om hur du använder den finns i dokumentationen.
Sling Referer-filtret the-sling-referrer-filter
Om du vill åtgärda kända säkerhetsproblem med CSRF (Cross-Site Request Forgery) i CRX WebDAV och Apache Sling lägger du till konfigurationer så att referensfiltret kan använda det.
Refererarfiltertjänsten är en OSGi-tjänst som gör att du kan konfigurera följande:
-
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:
-
Öppna Apache Felix-konsolen (Configurations) på:
https://<server>:<port_number>/system/console/configMgr
-
Logga in som
admin
. -
Välj:
Apache Sling Referrer Filter
-
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.
-
Markera fältet
Allow Empty
om du vill tillåta tomma/saknade hänvisningsrubriker.note caution CAUTION Adobe rekommenderar att du anger 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. -
Redigera de metoder som det här filtret använder för kontroller med fältet
Filter Methods
. -
Klicka på 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. Ändra sådana inställningar för publiceringsinställningarna och författarens produktivitetsinstanser för att undvika att intern information läcker till allmänheten.
För var och en av följande tjänster måste de angivna inställningarna ändras:
-
Bibliotekshanteraren för Adobe Granite HTML:
- aktivera Minify (för att ta bort CRLF- och whitespace-tecken).
- aktivera Gzip (om du vill tillåta att filer grupperas och nås med en begäran).
- inaktivera Felsök
- inaktivera Timing
-
- avmarkera Aktivera
-
- endast vid publicering, ställ in WCM-läge till "inaktiverat"
-
Apache Sling JavaScript Handler:
- inaktivera Generera felsökningsinformation
-
Apache Sling JSP Script Handler:
- inaktivera Generera felsökningsinformation
- inaktivera Mappat innehåll
Se OSGi-konfigurationsinställningar.
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 tillvägagångssätt finns i Konfigurera OSGi.
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. Den här attacken utförs ofta genom att resursen överbelastas, till exempel:
-
En flod av förfrågningar från en extern källa.
-
En begäran om mer information än 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 till exempel också begäras som:.../en.ExtensionDosAttack
.../en.SelectorDosAttack.html
.../en.html/SuffixDosAttack
Alla giltiga variationer (till exempel returnera ett
200
-svar och är konfigurerade att cachelagras) cachas av Dispatcher, 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, men endast de punkter som rör AEM diskuteras här.
Konfigurerar Sling för att förhindra DoS
Sling är innehållscentrerad. 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 med vissa delar av begäran (till exempel väljare och/eller tillägget).
Mer information finns i Bearbetning av delningsbegäran.
Sling är en kraftfull och flexibel metod, men som alltid är det den flexibilitet som måste hanteras noggrant.
För att förhindra missbruk kan du göra följande:
-
Lägg in kontroller på programnivå. På grund av antalet möjliga variationer går det inte att konfigurera som standard.
I ditt program bör du:
- Kontrollera väljarna i programmet så att du endast kan hantera de explicita väljarna som behövs och returnera
404
för alla andra. - Förhindra utdata från ett obegränsat antal innehållsnoder.
- Kontrollera väljarna i programmet så att du endast kan hantera de explicita väljarna som behövs och returnera
-
Kontrollera konfigurationen av standardåtergivningsprogrammen, som kan vara ett problemområde.
-
JSON-renderaren omformar trädstrukturen över flera nivåer.
Exempelvis begäran:
http://localhost:4502/.json
kan dumpa hela databasen i en JSON-representation vilket kan orsaka betydande serverproblem. Därför anger Sling en gräns för hur många resultat som får maximalt användas. Om du vill begränsa djupet i JSON-återgivningen anger du värdet för följande:
JSON-maxresultat (
json.maximumresults
)i konfigurationen för Apache Sling GET Server. 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 bör du inaktivera andra standardåtergivare (HTML, oformaterad text, XML). Återigen genom att konfigurera Apache Sling GET-servern.
note caution CAUTION Inaktivera inte JSON-återgivning eftersom det krävs för att AEM ska fungera normalt. -
-
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, vilket kan leda till denial of service-attacker om den inte skyddas.
Korrigera mot DoS på grund av att formulärväljare används
Eftersom AEM inte tillhandahåller körklara index för FormChooserServlet
kan formulärväljare i frågor utlösa en kostsam databasövergång, vilket vanligen gör att AEM instansen stannar. Formulärväljare kan identifieras med *.form.* sträng i frågor.
Du kan åtgärda det här problemet genom att göra följande:
-
Gå till webbkonsolen genom att peka din webbläsare till https://<serveradress>:<serverport>/system/console/configMgr
-
Sök efter dagars CQ WCM-formulärväljarserver
-
När du har klickat på posten inaktiverar du Advanced Search Require i följande fönster.
-
Klicka på Spara.
Minskar mot DoS på grund av hämtningsservern
Med standardservern för hämtning av resurser kan autentiserade användare skicka godtyckligt stora, samtidiga hämtningsbegäranden 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 detta beteende är AssetDownloadServlet
OSGi-komponenten inaktiverad som standard på Experience Manager -publiceringsinstansen. Det är aktiverat på författarinstansen Experience Manager som standard.
Om du inte behöver nedladdningsfunktionen kan du inaktivera servern för författare och publicera distributioner. Om din installation kräver att funktionen för hämtning av resurser är aktiverad finns mer information i Hämta resurser från Adobe Experience Manager. Du kan också ange en maximal hämtningsgräns som din distribution kan stödja.
Inaktivera WebDAV disable-webdav
Inaktivera WebDAV både i skribent- och publiceringsmiljöer genom att stoppa rätt OSGi-paket.
-
Anslut till Felix Management Console som körs på:
https://<*host*>:<*port*>/system/console
Exempel:
http://localhost:4503/system/console/bundles
. -
I listan med paket hittar du paketet med namnet:
Apache Sling Simple WebDAV Access to repositories (org.apache.sling.jcr.webdav)
-
Om du vill stoppa det här paketet klickar du på stoppknappen i åtgärdskolumnen.
-
I paketlistan hittar du även här paketet:
Apache Sling DavEx Access to repositories (org.apache.sling.jcr.davex)
-
Klicka på stoppknappen om du vill 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 skydda 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 AuthorizableNodeName
-gränssnittet. 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 måste utföras för att den ska kunna aktiveras eftersom det 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 det måste du göra följande:
-
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-säkerhetsprovidern genom att leta efter PID:t org.apache.jackrabbit.oak.security.internal.SecurityProviderRegistration i OSGi-konfigurationerna.
-
Ta bort Apache Jackrabbit Oak Random Authorizable Node Name OSGi-konfigurationen från webbkonsolen.
För enklare sökning är PID:t för den här konfigurationen org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName.
Anonymt behörighetskontrollpaket anonymous-permission-hardening-package
Som standard lagrar AEM systemmetadata, till exempel jcr:createdBy
eller jcr:lastModifiedBy
som nodegenskaper, bredvid det reguljära innehållet, i databasen. Beroende på konfigurationen och åtkomstkontrollkonfigurationen kan detta i vissa fall leda till exponering av personligt identifierbar information (PII), till exempel när sådana noder återges som rå JSON eller XML.
Precis som alla databasdata förmedlas dessa egenskaper av Oak behörighetsstack. Åtkomsten till dem bör begränsas i enlighet med principen om minst privilegium.
Som stöd för detta tillhandahåller Adobe ett behörighetskontrollerande paket som kan användas av kunder. Det fungerar genom att installera en "deny"-åtkomstkontrollpost i databasroten, vilket begränsar anonym åtkomst till vanliga systemegenskaper. Paketet kan hämtas och installeras på alla AEM som stöds.
För att illustrera ändringarna kan vi jämföra nodegenskaperna som kan visas anonymt innan paketet installeras:
med de som kan visas efter att paketet har installerats, där jcr:createdBy
och jcr:lastModifiedBy
inte är synliga:
Mer information finns i versionsinformationen för paketet.
Förhindra clickjacking prevent-clickjacking
För att förhindra clickjacking rekommenderar Adobe att du konfigurerar webbservern så att HTTP-huvudet X-FRAME-OPTIONS
anges till 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 det utförs nyckelreplikering på olika sätt i olika versioner, 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.
Om du vill replikera dina nycklar mellan instanser kopierar du dem från källinstansen till målinstansens plats i filsystemet.
Mer specifikt måste du göra följande:
-
få åtkomst till den AEM instansen - vanligtvis en författarinstans - som innehåller det nyckelmaterial som ska kopieras,
-
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. -
Navigera till datamappen. Till exempel:
<author-aem-install-dir>/crx-quickstart/launchpad/felix/bundle21/data
-
Kopiera HMAC- och mallfilerna.
-
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
-
Klistra in de två filer som du kopierade tidigare.
-
Uppdatera Crypto Bundle om målinstansen redan körs.
-
Upprepa stegen ovan för alla förekomster som du vill replikera nyckeln till.
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 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:
- Öppna CRXDE Lite genom att gå till
https://<serveraddress>:4502/crx/de/index.jsp
- Markera noden
/etc/key
. - Gå till fliken Replikering.
- Tryck på knappen Replikering.
Utför ett penetrationstest perform-a-penetration-test
Adobe rekommenderar 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 den nya utvecklingen följer Bästa praxis för säkerhet för att säkerställa att AEM är säker.