Het verminderen van rangschikkingskwesties in AEM mitigating-serialization-issues-in-aem

CAUTION
AEM 6.4 heeft het einde van de uitgebreide ondersteuning bereikt en deze documentatie wordt niet meer bijgewerkt. Raadpleeg voor meer informatie onze technische ondersteuningsperioden. Ondersteunde versies zoeken hier.

Overzicht overview

Het AEM-team bij Adobe werkt nauw samen met het open-source-project NotSoSerial helpen bij het verhelpen van de kwetsbaarheden die worden beschreven in CVE-2015-7501. NotSoSerial is in licentie gegeven onder de Apache 2-licentie en omvat ASM-code die onder zijn eigen licentie is verleend BSD-achtige licentie.

De agent jar inbegrepen met dit pakket is Adobe aangepaste distributie van NotSoSerial.

NotSoSerial is een oplossing op Java-niveau voor een probleem op Java-niveau en is niet AEM specifiek. Er wordt een Preflight-controle toegevoegd aan een poging om een object te deserialiseren. Deze controle zal een klassennaam tegen een firewall-stijl lijst van gewenste personen en/of lijst van gewezen personen testen. Vanwege het beperkte aantal klassen in de standaard lijst van gewezen personen is het onwaarschijnlijk dat dit van invloed is op uw systemen of code.

Door gebrek, zal de agent een lijst van gewezen personen controle tegen huidige bekende kwetsbare klassen uitvoeren. Deze lijst van gewezen personen is bedoeld om u te beschermen tegen de huidige lijst van exploitaties die dit type van kwetsbaarheid gebruiken.

De lijst van gewezen personen en de lijst van gewenste personen kunnen worden gevormd door de instructies in te volgen De agent configureren van dit artikel.

De agent is bedoeld om de recentste bekende kwetsbare klassen te helpen verlichten. Als uw project niet-vertrouwde gegevens deserializing, kan het nog kwetsbaar aan ontkenning van de dienstaanvallen, uit geheugenaanvallen, en onbekende toekomstige deserialization exploiteert.

Adobe biedt officieel ondersteuning voor Java 6, 7 en 8, maar volgens ons biedt NotSoSerial ook ondersteuning voor Java 5.

De agent installeren installing-the-agent

NOTE
Als u eerder rangschikkingshotfix voor AEM 6.1 hebt geïnstalleerd, te verwijderen gelieve de bevelen van het agentenbegin van uw de uitvoeringslijn van Java.
  1. Installeer de com.adobe.cq.cq-serialization-tester bundel.

  2. Ga naar de bundel webconsole op https://server:port/system/console/bundles

  3. Zoek de serialisatiebundel en begin het. Dit zou dynamisch autoload de agent NotSoSerial moeten.

De Agent installeren op toepassingsservers installing-the-agent-on-application-servers

De agent NotSoSerial is niet inbegrepen in de standaarddistributie van AEM voor toepassingsservers. U kunt deze echter extraheren uit de AEM jar-distributie en deze gebruiken met de configuratie van de toepassingsserver:

  1. Download eerst het AEM QuickStart-bestand en extraheer het:

    code language-shell
    java -jar aem-quickstart-6.2.0.jar -unpack
    
  2. Ga naar de locatie van de nieuw uitgegumde AEM QuickStart en kopieer de crx-quickstart/opt/notsoserial/ aan de crx-quickstart map van de installatie van de AEM toepassingsserver.

  3. Eigendom wijzigen van /opt aan de gebruiker die de server uitvoert:

    code language-shell
    chown -R opt <user running the server>
    
  4. Vorm en controleer dat de agent behoorlijk zoals aangetoond in de volgende secties van dit artikel is geactiveerd.

De agent configureren configuring-the-agent

De standaardconfiguratie is geschikt voor de meeste installaties. Dit omvat een lijst van gewezen personen van bekende klassen die kwetsbaar zijn voor externe uitvoering en een lijst van gewenste personen van pakketten waar deserialization van vertrouwde gegevens relatief veilig zou moeten zijn.

De firewallconfiguratie is dynamisch, en kan op elk ogenblik worden veranderd door:

  1. Ga naar de webconsole op https://server:port/system/console/configMgr

  2. Zoeken naar en klikken op Configuratie van de firewall voor deserialisatie.

    note note
    NOTE
    U kunt de configuratiepagina ook direct bereiken door tot URL toegang te hebben bij:
    • https://server:port/system/console/configMgr/com.adobe.cq.deserfw.impl.DeserializationFirewallImpl

Deze configuratie bevat de lijst van gewenste personen, de lijst van gewezen personen, en deserialization registreren.

Aanbieding toestaan

In de sectie voor het toestaan van lijsten zijn dit klassen of voorvoegsels van pakketten die kunnen worden gedeserialiseerd. Houd er rekening mee dat als u deserialiseert voor klassen van uw eigen klasse, u klassen of pakketten aan deze lijst van gewenste personen moet toevoegen.

Aanbieding blokkeren

In de sectie met bloklijsten staan klassen die nooit voor deserialisatie zijn toegestaan. De aanvankelijke reeks van deze klassen is beperkt tot klassen die aan verre uitvoeringsaanvallen kwetsbaar zijn gevonden. De lijst van gewezen personen wordt toegepast voordat vermelde items worden toegestaan.

Diagnostische registratie

In de sectie voor kenmerkend registreren, kunt u verscheidene opties kiezen om te registreren wanneer deserialization plaatsvindt. Deze worden slechts het programma geopend eerste gebruik, en niet opnieuw het programma geopend op verder gebruik.

De standaardinstelling van class-name-only Hiermee geeft u op welke klassen worden gedeserialiseerd.

U kunt ook de vol-stapel Deze optie registreert een Java-stapel van de eerste deserialisatiepoging om u te informeren waar uw deserialization plaatsvindt. Dit kan nuttig zijn om deserialization van uw gebruik te vinden en te verwijderen.

De activering van de agent controleren verifying-the-agent-s-activation

U kunt de configuratie van de deserialization agent verifiëren door aan URL te doorbladeren bij:

  • https://server:port/system/console/healthcheck?tags=deserialization

Zodra u tot URL toegang hebt, zal een lijst van gezondheidscontroles met betrekking tot de agent worden getoond. U kunt bepalen of de agent correct wordt geactiveerd door te controleren of de gezondheidscontroles voldoende zijn. Als zij ontbreken, kunt u de agent manueel moeten laden.

Voor meer informatie over het oplossen van problemenkwesties met de agent, zie Fouten afhandelen met laden van dynamische agent hieronder.

NOTE
Als u org.apache.commons.collections.functors voor de lijst van gewenste personen zal de gezondheidscontrole altijd mislukken .

Fouten afhandelen met laden van dynamische agent handling-errors-with-dynamic-agent-loading

Als de fouten in het logboek worden blootgesteld, of de verificatiestappen een probleem ontdekken ladend de agent, zou u de agent manueel kunnen moeten laden. Dit wordt ook aanbevolen voor het geval u een JRE (Java Runtime Environment) gebruikt in plaats van een JDK (Java Development Toolkit), omdat de gereedschappen voor dynamisch laden niet beschikbaar zijn.

Volg onderstaande instructies om de agent handmatig te laden:

  1. Wijzig de JVM startparameters van de CQ-jar en voeg de volgende optie toe:

    code language-shell
    -javaagent:<aem-installation-folder>/crx-quickstart/opt/notsoserial/notsoserial.jar
    
    note note
    NOTE
    Dit vereist ook het gebruiken van de optie -nofork CQ/AEM, samen met de aangewezen JVM geheugenmontages, aangezien de agent niet op een forked JVM zal worden toegelaten.
    note note
    NOTE
    De distributie van de Adobe van de agent NotSoSerial kan in worden gevonden crx-quickstart/opt/notsoserial/ van de AEM installatie.
  2. De JVM stoppen en opnieuw starten;

  3. Verifieer opnieuw de activering van de agent door de hierboven beschreven stappen te volgen in De activering van de agent controleren.

Andere overwegingen other-considerations

Als u op een IBM JVM werkt, raadpleegt u de documentatie over ondersteuning voor de Java Attach-API op deze locatie.

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