Deze Spring4Shell flowchart helpt u om de juiste beslissingen te nemen

Inhoud

De afgelopen dagen vragen veel organisaties onze hulp bij het nemen van de juiste beslissingen rondom applicaties n.a.v. de Spring4Shell kwetsbaarheid. Er worden steeds meer details bekend maar nog lang niet alles is helemaal duidelijk. Toch wordt er geadviseerd zo spoedig mogelijk in actie te komen en de juiste maatregelen te nemen om ongeautoriseerde toegang tot uw systemen voor te zijn. Om u te helpen met het nemen van de juiste beslissingen hebben wij een Spring4Shell flowchart voor u uitgewerkt. Deze flowchart helpt u de juiste keuzes te maken met de informatie die er op dit moment beschikbaar is. Gezien de ontwikkelingen is het raadzaam om deze pagina en ons Threat Intelligence Report regelmatig te bekijken. Deze worden namelijk bijgewerkt zodra nieuwe informatie beschikbaar is.

Flowchart

Spring Core Framework is een verzameling van Java-softwarebibliotheken die kunnen worden gebruikt in softwareprogramma's die in Java geschreven zijn. Spring Core is ingebakken in veel Java-software.

De kwetsbaarheid maakt het mogelijk dat een aanvaller - zonder dat daar authenticatie voor nodig is - in bepaalde omstandigheden ongeautoriseerde code kan uitvoeren en toegang kan krijgen tot het programma/applicatie en de informatie in dat programma/applicatie.

 

Om misbruik te kunnen maken van deze kwetsbaarheid zijn er momenteel diverse technische randvoorwaarden bekend, het is mogelijk dat deze lijst nog niet volledig is.

Zover nu bekend is de applicatie kwetsbaar als deze voldoet aan de volgende voorwaarden:

  • Maakt gebruik van Spring Core Framework (tot en met versie 5.3.17);
  • Maakt gebruik van spring-webmvc of spring-webflux dependencies (onbevestigd)
  • Maakt gebruik van form bindings met "name=value" data.
  • Maakt geen gebruik van een allowlist of denylist waarbij het gebruik van specifieke velden wordt uitgesloten (zoals "class", "module" en "classLoader").
  • Draait op Java-versie 9 (JDK) of hoger.

Kortom: Applicaties die op afstand toegankelijk zijn, gebruikersinvoer kunnen verwerken en Spring Core Framework (een versie lager dan 5.3.17) gebruiken om deze invoer te verwerken, zijn mogelijk kwetsbaar.

Als een aanvaller in staat is om de kwetsbaarheid succesvol uit te buiten dan kan dit leiden tot het uitvoeren van ongeautoriseerde code op de getroffen systemen. Dit kan mogelijk resulteren in dat de server waarop de applicatie draait gecompromitteerd raakt. Deze aanval kan uitgevoerd worden vanaf het internet waarbij geen authenticatie vereist is.

Vanuit een gecompromitteerde server kan een aanvaller mogelijk toegang verkrijgen tot de rest van het netwerk. Om deze reden is de CVSS-score van de kwetsbaarheid geclassificeerd als kritiek (9.8).

Op het moment van schrijven zijn er meerdere indicatoren dat er actief geprobeerd wordt om misbruik te maken van de kwetsbaarheid – waaronder pogingen tot het uitbuiten van de kwetsbaarheid door bekende malafide IP-adressen: https://otx.alienvault.com/pulse/6246c5778ca27726b90d842e

Doordat de kwetsbare functionaliteit zich in een populaire Java-softwarebibliotheek bevindt welke veel gebruikt wordt, is de huidige scope of impact niet inzichtelijk. Het is zeer waarschijnlijk dat veel gebruikte applicaties kwetsbaar zijn welke op het moment van schrijven nog niet bekend zijn. Bovenstaande maakt dat het volledig detecteren van elke vorm van misbruik van de kwetsbaarheid, op het moment van schrijven, complex is.

Er is wel een scanner gepubliceerd welke mogelijk de aanwezigheid van het Spring Framework op (lokaal) op systemen kan detecteren – deze scanner is gepubliceerd via het code-platform GitHub: https://github.com/hillu/local-spring-vuln-scanner

Voor ontwikkelaars van applicaties die gebruik maken van Spring Framework, geldt het volgende advies:
Er is een nieuwe versie van Spring Framework beschikbaar welke te downloaden via de URL Het advies is om tenminste te updaten naar Spring Framework versie 5.3.18 (met Spring Boot 2.6.6 of 2.5.12) of Spring Framework 5.2.20.

NFIR adviseert om zo snel als mogelijk een upgrade uit te voeren en deze vervolgens uit te rollen naar de betrokken systemen en applicaties.

Op het moment dat upgraden niet mogelijk is, kan de volgende mitigatie toegepast worden:

  1. Voor organisaties die Spring Framework zelf gebruiken en binnen applicaties specifieke bindings hebben welke niet-standaard datatypes gebruiken is het van belang om de toegestane velden die de applicatie mag gebruiken te specificeren – Meer informatie hierover is beschikbaar in de Spring Documentatie: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/validation/DataBinder.html#:~:text=fields%20when%20binding.-,setAllowedFields,-public%C2%A0void%C2%A0setAllowedFields
  2. Een tweede beschikbare mitigatie (in het geval dat Tomcat gebruikt wordt als onderliggende webserver) betreft het updaten van Tomcat naar versie 10.0.20, 9.0.62, en 8.5.78 (of hoger) waarmee de aanvalsroute via Tomcat niet langer functioneert. Meer informatie hierover is beschikbaar op de website van Spring: https://spring.io/blog/2022/04/01/spring-framework-rce-mitigation-alternative

Voor applicaties van derden die u gebruikt, adviseert NFIR u om contact op te nemen met de leverancier voor eventuele updates.

Het is belangrijk voor uw organisatie om tenminste de volgende stappen te nemen:

  1. Breng in kaart welke individuele leveranciers u heeft voor on-premise softwarepakketten, Software-as-a-Service (SaaS) of andere applicatie-leveranciers;
  2. Raadpleeg de website van uw leveranciers en stel vast of er een vorm van ‘dependency-lijsten’ beschikbaar zijn waarbinnen u kunt controleren of ‘Spring Framework’ gebruikt wordt binnen de applicatie;
  3. Neem contact op met uw leveranciers om te verifiëren of er binnen de applicaties ‘Spring Framework’ gebruikt wordt en welke versie van Spring Framework er gebruikt wordt;
  4. Bereid uw organisatie voor op de situatie dat er onverwacht patches uitgevoerd dienen te worden (buiten de reguliere update-timeframes) en pas patches gecontroleerd toe volgens de voor uw organisatie gebruikelijke procedure.

Heeft u systemen waarvan het risico groot is (bijvoorbeeld systemen met gevoelige of bijzonder persoonsgegevens)? Zo ja heeft u mogelijk indicaties dat Java met Spring Framework gebruikt wordt en zijn er nog geen updates beschikbaar? Overweeg dan om het systeem tijdelijk uit te schakelen.

Als uw organisatie vermoedelijk het slachtoffer is geworden van een aanval, is het dringende advies om onderzoek uit te laten voeren naar de toedracht, in hoeverre aanvallers mogelijk andere systemen hebben gecompromitteerd en welke informatie mogelijk ongeautoriseerd geraadpleegd is.

  1. Koppel indien mogelijk de getroffen systemen los van het netwerk, maar laat deze aanstaan (in verband met eventuele sporen zoals het vluchtige geheugen – RAM);
  2. Laat de getroffen systemen forensisch onderzoeken; zorg voor adequate back-ups;
  3. Reset uw wachtwoorden en gebruikersgegevens;
  4. Doe aangifte bij de Politie;
  5. Overweeg een melding te doen bij de Autoriteit Persoonsgegevens.

Heeft uw organisatie op dit moment een incident? Onze Computer Emergency Response Teams (CERT) staan 24/7 voor organisaties klaar om te ondersteunen bij IT- Security Incidenten.

Bel dan 088 133 0700 en wij doen ons uiterste best om u zo snel mogelijk te helpen. (Meer informatie over onze Incident Response Dienst.)

Is uw organisatie vermoedelijk het slachtoffer geworden van een aanval? Dan geven wij u het dringende advies om onderzoek uit te laten voeren naar de toedracht, in hoeverre aanvallers mogelijk andere systemen hebben gecompromitteerd en welke informatie mogelijk ongeautoriseerd is geraadpleegd.

Disclaimer: NFIR heeft er alles aan gedaan om deze informatie accuraat en betrouwbaar te maken. De verstrekte informatie is echter zonder enige garantie van welke aard dan ook en het gebruik ervan is geheel voor risico van de gebruiker.  NFIR aanvaardt geen enkele verantwoordelijkheid of aansprakelijkheid voor de juistheid, de inhoud, de volledigheid, de rechtmatigheid of de betrouwbaarheid van de verstrekte informatie.