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.
Ytterligare information finns också tillgänglig om de farligaste säkerhetshot som publicerats av Open Web Application Security Project (OWASP).
Det finns ytterligare säkerhetsaspekter som tillämpas i utvecklingsfasen.
Mer information finns i Köra AEM i produktionsklart läge.
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.
Se Aktivera HTTP över SSL för mer information.
Kontrollera att du har installerat den senaste Säkerhetsuppdateringar från Adobe.
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 använder du det nya lösenordet när du använder CRX.
The admin
lösenord för OSGi-webbkonsolen
Den 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.
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.
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.
Förutom AEM admin
om du inte ändrar standardlösenordet för OSGi-webbkonsolen kan det leda till:
Mer information om hur du ändrar lösenord för webbkonsolen finns i Ändra administratörslösenordet för OSGi-webbkonsolen nedan.
Ä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:
Se OSGI-konfiguration om du vill ha fullständig information om hur du konfigurerar OSGi-inställningar.
Ändra administratörslösenordet för OSGi-webbkonsolen:
Använda verktyg, Operationer -menyn, öppna Webbkonsol och navigera till Konfiguration -avsnitt.
Till exempel <server>:<port>/system/console/configMgr
.
Navigera till och öppna posten för Apache Felix OSGi Management Console.
Ändra användarnamn och lösenord.
Välj Spara.
Adobe rekommenderar att du definierar anpassade felhanterarsidor, särskilt för 404- och 500 HTTP Response-koder för att förhindra informationsexponering.
Se Hur skapar jag egna skript eller felhanterare? för mer information.
AEM Dispatcher är en viktig del av din infrastruktur. Adobe rekommenderar att du slutför Checklista för utskickssäkerhet.
Med Dispatcher måste du inaktivera ".form"-väljaren.
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 får 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 får inte heller vara admin-användare, utan en användare som bara kan se innehåll som är replikerat. Replikeringsanvändaren används för att samla in det innehåll som ska replikeras på författarsystemet innan det skickas till utgivaren.
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.
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.
Exemplet We.Retail
program 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 Pakethanteraren, söka efter och avinstallera alla We.Retail
paket.
Se Arbeta med paket.
Dessa OSGi-utvecklingspaket bör avinstalleras både på författaren och publicera produktionssystem innan de blir tillgängliga.
The AEM Developer Tools installera 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.
AEM 6.1 levereras med en mekanism som hjälper till att skydda mot attacker som leder till cross-site request-attacker, som kallas Ramverk för CSRF-skydd. Mer information om hur du använder programmet finns i dokumentation.
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 (Konfigurationer) på:
https://<server>:<port_number>/system/console/configMgr
Logga in som admin
.
I Konfigurationer väljer du:
Apache Sling Referrer Filter
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.0
som portnummer.Kontrollera Allow Empty
om du vill tillåta tomma/saknade hänvisningsrubriker.
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 Filter Methods
fält.
Klicka Spara för att spara ändringarna.
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.
Alla inställningar nedan förutom Dagen CQ WCM-felsökningsfilter, omfattas automatiskt av Produktionsklar läge. Därför rekommenderar Adobe 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:
Bibliotekshanteraren Adobe Granite HTML:
Apache Sling JavaScript-hanterare:
Apache Sling JSP Script Handler:
Se 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.
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.
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
-svar och är konfigurerade att cachelagras) cachas av Dispatcher, vilket till slut leder till ett fullständigt filsystem och ingen tjänst för fler 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.
Konfigurera 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):
Se Bearbetning av försäljningsbegäran för mer information.
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:
404
för alla andra.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 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 bör du inaktivera andra standardåtergivare (HTML, oformaterad text, XML). Återigen genom att konfigurera Apache Sling GET Servlet.
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.
Minska mot DoS som orsakas av att formulärväljare används
Denna begränsning bör endast utföras i AEM som inte använder Forms.
Eftersom AEM inte tillhandahåller färdiga index för FormChooserServlet
, kan formulärväljare i frågor utlösa en kostsam databasgenomgång, vilket vanligen gör att AEM inte fungerar som den ska. Formulärväljare kan identifieras med hjälp av *.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 webbläsaren till https://<serveraddress>:<serverport>/system/console/configMgr
Sök efter Day CQ WCM Form Chooser Server
När du har klickat på posten inaktiverar du Avancerad sökning krävs i följande fönster.
Klicka 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, 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 risken för denial of service-attacker som orsakas av detta beteende AssetDownloadServlet
OSGi-komponenten är inaktiverad som standard på Experience Manager publiceringsinstans. Den är aktiverad på Experience Manager författarinstans 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, se den här artikeln för mer information. Du kan också ange en maximal hämtningsgräns som din distribution kan stödja.
Inaktivera WebDAV både i skribent- och publiceringsmiljöer genom att stoppa rätt OSGi-paket.
Anslut till Felix Management Console som körs:
https://<*host*>:<*port*>/system/console
Till 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.
Du behöver inte starta om AEM.
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ä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 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 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.
Ta bort Apache Jackrabbit Oak Random Authorizable Node Name OSGi-konfiguration från webbkonsolen.
För enklare sökning är PID för den här konfigurationen org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName.
Mer information finns i Oak-dokumentationen på Generering av auktoriseringsbart nodnamn.
Som standard lagras systemmetadata i AEM, som jcr:createdBy
eller jcr:lastModifiedBy
som nodegenskaper, bredvid regelbundet innehåll, 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-auktoriseringsstacken. Å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 är tillgängligt för hämtning här och kan 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 när paketet har installerats, där jcr:createdBy
och jcr:lastModifiedBy
är inte synliga:
Mer information finns i versionsinformationen för paketet.
Adobe rekommenderar att du konfigurerar webbservern så att den X-FRAME-OPTIONS
HTTP-huvudet är inställt på SAMEORIGIN
.
Mer information om clickjacking finns i OWASP-plats.
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.
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
The 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 krypteringspaketet om målinstansen redan körs.
Upprepa stegen ovan för alla förekomster som du vill replikera nyckeln till.
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:
https://<serveraddress>:4502/crx/de/index.jsp
/etc/key
nod.Adobe rekommenderar att du utför ett penetrationstest av din AEM infrastruktur innan du börjar producera.
Det är viktigt att ny utveckling följer Bästa praxis för säkerhet för att säkerställa att din AEM är säker.