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 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
kontoNä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-webbkonsolenDen 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.
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:
-
Navigera till webbkonsolen på
<server>:<port>/system/console/configMgr
. -
Gå till Apache Felix OSGi Management Console och ändra användarnamn och lösenord.
-
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.
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.
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.
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:
-
Ö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.- 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.
-
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. -
Redigera de metoder som filtret ska använda för kontroller med
Filter Methods
fält. -
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.
För var och en av följande tjänster måste de angivna inställningarna ändras:
-
Bibliotekshanteraren Adobe Granite HTML:
- enable Minify (för att ta bort CRLF- och blankstegstecken).
- enable Gzip (för att tillåta att filer grupperas och öppnas med en begäran).
- disable Felsök
- disable Timing
-
- avmarkera Aktivera
-
- endast vid publicering, ange WCM-läge till "disabled"
-
Apache Sling Java Script Handler:
- disable Generera felsökningsinformation
-
Apache Sling JSP Script Handler:
- disable Generera felsökningsinformation
- disable Mappat innehåll
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).
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:
-
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.
- Styr väljarna i programmet så att du endast servar de explicita väljarna som behövs och returnerar
-
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. -
-
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
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:
-
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å inlägget 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 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.
-
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:
Apache Sling Simple WebDAV Access to repositories (org.apache.sling.jcr.webdav)
-
Klicka på stoppknappen (i åtgärdskolumnen) för att stoppa paketet.
-
I listan med paket hittar du det paket som heter:
Apache Sling DavEx Access to repositories (org.apache.sling.jcr.davex)
-
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:
-
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.
Observera att PID för den här konfigurationen är org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName.
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:
-
få åtkomst till AEM, 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-filer och överordnad filer.
-
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.
-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:
- Öppna CRXDE Lite genom att gå till https://<serrveraddress>:4502/crx/de/index.jsp
- Välj
/etc/key
nod. - Gå till Replikering -fliken.
- 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.