Vorige week waarschuwde Progress Software Corporation, dat software en diensten verkoopt voor de ontwikkeling van gebruikersinterfaces, devops, bestandsbeheer en meer, klanten over zijn MOVEit-overdracht en bijbehorende MOVEit-cloud producten over een kritieke kwetsbaarheid nagesynchroniseerde CVE-2023-34362.
Zoals de naam al doet vermoeden, is MOVEit Transfer een systeem dat het gemakkelijk maakt om bestanden op te slaan en te delen binnen een team, een afdeling, een bedrijf of zelfs een toeleveringsketen.
In de eigen woorden, "MOVEit biedt veilige samenwerking en geautomatiseerde bestandsoverdracht van gevoelige gegevens en geavanceerde workflowautomatiseringsmogelijkheden zonder dat scripting nodig is."
Helaas bleek de webgebaseerde front-end van MOVEit, die het gemakkelijk maakt om bestanden te delen en te beheren met alleen een webbrowser (een proces dat over het algemeen als minder vatbaar wordt beschouwd voor verkeerd geadresseerde of "verloren" bestanden dan het delen via e-mail), een SQL-foutmelding bevatten. injectie kwetsbaarheid.
SQL-injecties uitgelegd
Webgebaseerde SQL-injectiebugs doen zich voor wanneer een HTTP-verzoek wordt ingediend naar een webserver wordt onveilig geconverteerd naar een queryopdracht die vervolgens wordt gegeven door de server zichzelf om een database-lookup uit te voeren om erachter te komen welk HTTP-antwoord moet worden geconstrueerd.
Een zoekopdracht in een database die wordt geactiveerd vanaf een webpagina, kan bijvoorbeeld eindigen als een door uw browser gevraagde URL die er als volgt uitziet:
https://search.example.com/?type=file&name=duck
De zoektekst duck
kan vervolgens worden geëxtraheerd uit de naamparameter in de URL, worden omgezet in databasequery-syntaxis en worden samengevoegd tot een opdracht om naar de databaseserver te verzenden.
Als de backend-gegevens zijn opgeslagen in een SQL-database, kan de webserver die URL omzetten in een SQL-opdracht zoals hieronder weergegeven.
De %
karakters toegevoegd aan de tekst duck
betekent dat de zoekterm overal in de opgehaalde bestandsnaam kan voorkomen en dat de enkele aanhalingstekens aan elk uiteinde worden toegevoegd als markeringen om een SQL-tekstreeks aan te duiden:
SELECTEER bestandsnaam UIT filesdb WHERE naam ZOALS '%duck%'
De gegevens die uit de zoekopdracht komen, kunnen vervolgens mooi worden opgemaakt, naar HTML worden geconverteerd en als een HTTP-antwoord naar uw browser worden teruggestuurd, waardoor u misschien een klikbare lijst met overeenkomende bestanden krijgt die u kunt downloaden.
Natuurlijk moet de webserver heel voorzichtig zijn met de bestandsnamen die als zoekterm worden ingevoerd, voor het geval een kwaadwillende gebruiker een URL zoals deze zou maken en opvragen:
https://search.example.com/?type=file&name=duck';DROP table filesdb;--
Als die zoekterm blindelings werd omgezet in een zoekreeks, zou je de webserver kunnen misleiden om de SQL-server een opdracht als deze te sturen:
SELECTEER bestandsnaam UIT filesdb WHERE naam ZOALS '%duck';DROP TABLE filesdb;--%'
Omdat een puntkomma (;
) fungeert als scheidingsteken voor instructies in SQL, is deze opdracht van één regel eigenlijk hetzelfde als het verzenden van drie opeenvolgende opdrachten:
SELECTEER bestandsnaam UIT filesdb WHERE naam LIKE '%duck' -- komt overeen met namen die eindigen op duck DROP TABLE filesdb -- verwijdert hele database --%' -- commentaar, doet niets
Stiekem, want elke keer weer --
wordt weggegooid door SQL als commentaar van een programmeur, deze drie regels zijn hetzelfde als:
SELECTEER bestandsnaam UIT filesdb WHERE naam ZOALS '%duck' DROP TABLE filesdb
Je krijgt een lijst terug van alle bestandsnamen in de database die eindigen op de string duck
(het speciale SQL-teken %
aan het begin van een zoekterm betekent "komt overeen met alles tot op dit punt")...
...maar jij zult de laatste zijn die iets bruikbaars uit de filesdb
database, omdat uw malafide zoekterm de zoekopdracht zal opvolgen met de SQL-opdracht om de hele database te verwijderen.
Kleine Bobby-tafels
Als je ooit hebt gehoord dat syadmins of coders grappen maken over Kleine Bobby-tafels, dat komt omdat dit soort SQL-injectie is vereeuwigd in een XKCD-cartoon terug in 2007:
Zoals de cartoon in het laatste frame concludeert, moet u uw database-invoer echt opschonen, wat betekent dat u er goed op moet letten dat de persoon die de zoekterm indient, niet bepaalt hoe de zoekopdracht wordt geïnterpreteerd door de betrokken backend-servers.
U begrijpt waarom dit soort trucs een injectieaanval wordt genoemd: in de bovenstaande voorbeelden zorgen de kwaadaardige zoektermen ervoor dat een extra SQL-opdracht wordt geïnjecteerd in de afhandeling van het verzoek.
In beide voorbeelden zijn in feite twee geïnjecteerde fommands betrokken, die het stiekem ingevoegde teken "aanhalingsteken sluiten" volgen om de zoekreeks vroegtijdig af te ronden. Het eerste extra commando is het destructieve DROP TABLE
instructie. De tweede is een "commentaarcommando" dat ervoor zorgt dat de rest van de regel wordt genegeerd, waardoor de achterliggende tekst sluw wordt opgegeten %'
tekens gegenereerd door de opdrachtgenerator van de server, die anders een syntaxisfout zouden hebben veroorzaakt en de geïnjecteerde DROP TABLE
commando van werken.
Goed nieuws en slecht nieuws
Het goede nieuws in dit geval is dat Progress alle ondersteunde MOVEit-versies heeft gepatcht, samen met zijn cloudgebaseerde service, zodra het zich bewust werd van de kwetsbaarheid.
Dus als je de cloudversie gebruikt, ben je nu automatisch up-to-date, en als je MOVEit op je eigen netwerk draait, hopen we dat je nu gepatcht bent.
Het slechte nieuws is dat deze kwetsbaarheid een zero-day was, wat betekent dat Progress erachter kwam omdat de slechteriken er al misbruik van hadden gemaakt, in plaats van voordat ze erachter kwamen hoe ze dat moesten doen.
Met andere woorden, tegen de tijd dat je je eigen servers hebt gepatcht (of Progress zijn cloudservice heeft gepatcht), hebben boeven mogelijk al malafide commando's in je MOVEit SQL-backend-databases geïnjecteerd, met een reeks mogelijke resultaten:
- Verwijdering van bestaande gegevens. Zoals hierboven getoond, is het klassieke voorbeeld van een SQL-injectieaanval grootschalige datavernietiging.
- Exfiltratie van bestaande gegevens. In plaats van SQL-tabellen te laten vallen, kunnen aanvallers hun eigen query's injecteren, waardoor ze niet alleen de structuur van uw interne databases leren kennen, maar ook hun sappigste onderdelen extraheren en stelen.
- Wijziging van bestaande gegevens. Meer subtiele aanvallers kunnen besluiten om uw gegevens te corrumperen of te verstoren in plaats van (of zelfs) ze te stelen.
- Implantatie van nieuwe bestanden, inclusief malware. Aanvallers kunnen SQL-commando's injecteren die op hun beurt externe systeemcommando's starten, waardoor willekeurige externe code binnen uw netwerk kan worden uitgevoerd.
Een groep aanvallers, vermeende door Microsoft om de beruchte Clop-ransomwarebende te zijn (of ermee verbonden te zijn), hebben blijkbaar deze kwetsbaarheid gebruikt om zogenaamde webshells op getroffen servers.
Als u niet bekend bent met webshells, lees dan onze eenvoudig-Engelse uitleg die we publiceerden ten tijde van de lastige HAFNIUM-aanvallen in maart 2021:
Webshell-gevaar
Simpel gezegd, webshells bieden een manier voor aanvallers die nieuwe bestanden aan uw webserver kunnen toevoegen om later terug te komen, op hun gemak in te breken en die alleen-schrijven-toegang om te zetten in volledige controle op afstand.
Webshells werken omdat veel webservers bepaalde bestanden behandelen (meestal bepaald door de map waarin ze zich bevinden, of door de extensie die ze hebben) als uitvoerbare scripts gebruikt om de pagina te genereren om terug te sturen, in plaats van als de daadwerkelijke inhoud die in het antwoord moet worden gebruikt.
De IIS (internetinformatieserver) van Microsoft is bijvoorbeeld meestal zo geconfigureerd dat als een webbrowser een bestand opvraagt met de naam bijvoorbeeld hello.html
, dan wordt de ruwe, ongewijzigde inhoud van dat bestand ingelezen en teruggestuurd naar de browser.
Dus als er malware in zit hello.html
bestand, dan heeft dit invloed op de persoon die naar de server bladert, niet op de server zelf.
Maar als het bestand heet, zeg, hello.aspx
(waarbij ASP de afkorting is voor de zelfbeschrijvende zin Actieve serverpagina's), dan wordt dat bestand behandeld als een scriptprogramma dat door de server kan worden uitgevoerd.
Door dat bestand als een programma uit te voeren, in plaats van het simpelweg in te lezen als gegevens, wordt de uitvoer gegenereerd die als antwoord moet worden verzonden.
Met andere woorden, als er malware in zit hello.aspx
bestand, dan heeft het rechtstreeks invloed op de server zelf, niet op de persoon die ernaartoe bladert.
Kortom, het laten vallen van een webshell-bestand als neveneffect van een commando-injectie-aanval betekent dat de aanvallers later terug kunnen komen, en door de URL te bezoeken die overeenkomt met de bestandsnaam van die webshell...
...ze kunnen hun malware rechtstreeks in uw netwerk uitvoeren, waarbij ze niets verdachts gebruiken dan een bescheiden HTTP-verzoek van een gewone webbrowser.
Sommige webshells bestaan inderdaad uit slechts één regel kwaadaardig script, bijvoorbeeld een enkele opdracht die zegt "haal tekst uit een specifieke HTTP-header in de aanvraag en voer deze uit als een systeemopdracht".
Dit geeft algemene command-and-control-toegang aan elke aanvaller die de juiste URL kent om te bezoeken en de juiste HTTP-header om te gebruiken voor het leveren van de malafide opdracht.
Wat te doen?
- Als u een MOVEit-gebruiker bent, zorg ervoor dat alle instanties van de software op uw netwerk zijn gepatcht.
- Als je nu niet kunt patchen, schakel de webgebaseerde (HTTP en HTTP) interfaces naar uw MOVEit-servers uit totdat u kunt. Blijkbaar wordt deze kwetsbaarheid alleen blootgelegd via de webinterface van MOVEit, niet via andere toegangspaden zoals SFTP.
- Doorzoek je logboeken voor nieuw toegevoegde webserverbestanden, nieuw aangemaakte gebruikersaccounts en onverwacht grote datadownloads. Progress heeft een lijst met plaatsen om te zoeken, samen met bestandsnamen en om naar te zoeken.
- Als je een programmeur bent, zuiver uw ingangen.
- Als u een SQL-programmeur bent, gebruikte geparametriseerde query's, in plaats van query-commando's te genereren die tekens bevatten die worden beheerd door de persoon die het verzoek verzendt.
Bij veel, zo niet de meeste, op webshell gebaseerde aanvallen die tot nu toe zijn onderzocht, Vooruitgang suggereert dat u waarschijnlijk een malafide webshell-bestand zult vinden met de naam human2.aspx
, misschien samen met nieuw gemaakte schadelijke bestanden met een .cmdline
verlenging.
(Sophos-producten detecteren en blokkeren bekende webshell-bestanden als Troj/WebShel-GO, of ze nu worden genoemd human2.aspx
of niet.)
Onthoud echter dat als andere aanvallers op de hoogte waren van deze zero-day voordat de patch uitkwam, ze mogelijk andere, en misschien subtielere, commando's hebben geïnjecteerd die nu niet kunnen worden gedetecteerd door te scannen op achtergebleven malware, of door te zoeken voor bekende bestandsnamen die in logboeken kunnen verschijnen.
Vergeet niet om uw toegangslogboeken in het algemeen te bekijken, en als u geen tijd heeft om het zelf te doen, wees dan niet bang om om hulp te vragen!
Lees verder over Door Sophos beheerde detectie en respons:
24/7 jacht op bedreigingen, detectie en reactie ▶
Gebrek aan tijd of expertise om te zorgen voor respons op cyberbeveiligingsdreigingen? Bezorgd dat cyberbeveiliging u uiteindelijk zal afleiden van alle andere dingen die u moet doen?
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- PlatoAiStream. Web3 gegevensintelligentie. Kennis versterkt. Toegang hier.
- De toekomst slaan met Adryenn Ashley. Toegang hier.
- Koop en verkoop aandelen in PRE-IPO-bedrijven met PREIPO®. Toegang hier.
- Bron: https://nakedsecurity.sophos.com/2023/06/05/moveit-zero-day-exploit-used-by-data-breach-gangs-the-how-the-why-and-what-to-do/
- : heeft
- :is
- :niet
- :waar
- $UP
- 1
- 15%
- 2021
- a
- in staat
- Over
- over het
- boven
- absoluut
- toegang
- accounts
- het bereiken van
- Handelingen
- daadwerkelijk
- werkelijk
- toevoegen
- toegevoegd
- Extra
- vergevorderd
- invloed hebben op
- bang
- Na
- Alles
- toelaten
- langs
- al
- ook
- an
- en
- elke
- iets
- overal
- verschijnen
- ZIJN
- AS
- At
- aanvallen
- Aanvallen
- auteur
- auto
- geautomatiseerde
- webmaster.
- Automatisering
- bewust
- terug
- backend
- background-image
- slecht
- BE
- werd
- omdat
- geweest
- vaardigheden
- achter
- onder
- blindelings
- Blok
- Bobby
- grens
- zowel
- Onder
- overtreding
- Breken
- browser
- Bladeren
- bugs
- maar
- by
- Dit betekent dat we onszelf en onze geliefden praktisch vergiftigen.
- kwam
- CAN
- mogelijkheden
- verzorging
- voorzichtig
- spotprent
- geval
- Veroorzaken
- veroorzaakt
- oorzaken
- Centreren
- zeker
- keten
- karakter
- tekens
- klassiek
- Cloud
- code
- samenwerking
- kleur
- hoe
- komt
- commentaar
- afstand
- compleet
- gekoppeld blijven
- opeenvolgend
- beschouwd
- bouwen
- content
- onder controle te houden
- gecontroleerd
- converteren
- geconverteerd
- BEDRIJF
- Overeenkomend
- kon
- cursus
- deksel
- en je merk te creëren
- aangemaakt
- Crooks
- Klanten
- Cybersecurity
- gegevens
- datalek
- Database
- databanken
- beslissen
- het leveren van
- afdeling
- gedetecteerd
- Opsporing
- vastbesloten
- Ontwikkeling
- DevOps
- anders
- direct
- Display
- ontwrichten
- do
- doet
- Dont
- Download
- downloads
- Val
- dropping
- nagesynchroniseerde
- elk
- Vroeg
- En het is heel gemakkelijk
- einde
- fout
- Zelfs
- OOIT
- alledaags
- voorbeeld
- voorbeelden
- uitvoeren
- uitvoering
- bestaand
- expertise
- Exploiteren
- blootgestelde
- uitbreiding
- extern
- extra
- feit
- vertrouwd
- ver
- bedacht
- Dien in
- Bestanden
- VIND DE PLEK DIE PERFECT VOOR JOU IS
- Voornaam*
- volgen
- volgend
- Voor
- gevonden
- FRAME
- oppompen van
- voor
- Voorkant
- Bende
- Algemeen
- voor algemeen gebruik
- algemeen
- voortbrengen
- gegenereerde
- het genereren van
- generator
- krijgen
- geeft
- Vrijgevigheid
- goed
- groot
- Groep
- HAD
- Behandeling
- Hebben
- gehoord
- Hoogte
- hoop
- zweven
- Hoe
- How To
- Echter
- HTML
- http
- HTTPS
- Jacht
- if
- Ik ben
- in
- Inclusief
- berucht
- informatie
- injecteren
- ingangen
- verkrijgen in plaats daarvan
- Interface
- interfaces
- intern
- Internet
- in
- betrekken
- betrokken zijn
- Uitgegeven
- IT
- HAAR
- zelf
- voor slechts
- eentje maar
- bekend
- Groot
- grootschalig
- Achternaam*
- later
- lancering
- leren
- links
- minder
- als
- Lijn
- lijnen
- Lijst
- LOOKS
- lookup
- gemaakt
- maken
- MERKEN
- maken
- malware
- beheer
- beheerd
- management
- veel
- Maart
- Marge
- matching
- max-width
- Mei..
- gemiddelde
- betekenis
- middel
- Microsoft
- macht
- meer
- meest
- naam
- Genoemd
- namen
- Noodzaak
- behoeften
- netwerk
- New
- onlangs
- nieuws
- een
- niets
- nu
- of
- korting
- on
- eens
- EEN
- Slechts
- or
- bestellen
- Overige
- anders-
- onze
- uit
- resultaten
- uitgang
- het te bezitten.
- pagina
- parameter
- onderdelen
- Patch
- Paul
- misschien
- persoon
- plaatsen
- Plato
- Plato gegevensintelligentie
- PlatoData
- positie
- mogelijk
- Berichten
- waarschijnlijk
- Producten
- Programma
- Programmeur
- Voortgang
- zorgen voor
- biedt
- gepubliceerde
- zetten
- queries
- citeren
- reeks
- ransomware
- liever
- Rauw
- Lees
- lezing
- werkelijk
- verwant
- relatief
- vanop
- antwoord
- te vragen
- aangevraagd
- verzoeken
- antwoord
- REST
- beoordelen
- rechts
- lopen
- lopend
- dezelfde
- ervaren
- zegt
- het scannen
- scripts
- Ontdek
- zoeken
- Tweede
- beveiligen
- zien
- Verkoopt
- sturen
- verzending
- gevoelig
- verzonden
- service
- Diensten
- Delen
- delen
- Bermuda's
- tonen
- getoond
- eenvoudigweg
- single
- So
- dusver
- Software
- solide
- sommige
- special
- specifiek
- SQL
- SQL Injection
- begin
- Statement
- shop
- opgeslagen
- Draad
- structuur
- voorleggen
- ingediend
- dergelijk
- Stelt voor
- leveren
- toeleveringsketen
- ondersteunde
- verdacht
- SVG
- syntaxis
- system
- tafel
- Nemen
- team
- termijn
- termen
- neem contact
- dat
- De
- hun
- Ze
- harte
- Er.
- Deze
- ze
- spullen
- dit
- bedreiging
- drie
- overal
- niet de tijd of
- naar
- top
- overdracht
- transfers
- overgang
- transparant
- behandelen
- veroorzaakt
- BEURT
- Gedraaid
- twee
- tot
- up-to-date
- URL
- .
- gebruikt
- Gebruiker
- User Interface
- gebruik
- doorgaans
- versie
- via
- Bezoek
- kwetsbaarheid
- was
- Manier..
- we
- web
- web browser
- webserver
- Web-based
- week
- GOED
- waren
- Wat
- wanneer
- of
- welke
- WIE
- geheel
- Waarom
- wil
- Met
- zonder
- woorden
- Mijn werk
- uitwerken
- workflow
- workflow automatisering
- werkzaam
- bezorgd
- zou
- u
- Your
- jezelf
- zephyrnet