I sidste uge advarede Progress Software Corporation, som sælger software og tjenester til udvikling af brugergrænseflader, devops, filhåndtering og mere, kunderne om deres MOVEit-overførsel og relaterede MOVEit Cloud produkter om en kritisk sårbarhed døbt CVE-2023-34362.
Som navnet antyder, er MOVEit Transfer et system, der gør det nemt at gemme og dele filer på tværs af et team, en afdeling, en virksomhed eller endda en forsyningskæde.
I sin egne ord, "MOVEit giver sikkert samarbejde og automatiserede filoverførsler af følsomme data og avancerede workflowautomatiseringsfunktioner uden behov for scripting."
Desværre viste MOVEits webbaserede frontend, som gør det nemt at dele og administrere filer ved hjælp af blot en webbrowser (en proces, der generelt anses for at være mindre tilbøjelig til at fejldirigere eller "tabte" filer end at dele dem via e-mail), at have en SQL injektionssårbarhed.
SQL-injektioner forklaret
Web-baserede SQL-injektionsfejl opstår, når en HTTP-anmodning indsendes til en webserver konverteres usikkert til en forespørgselskommando, der derefter udsendes af serveren selv at lave et databaseopslag for at finde ud af, hvilket HTTP-svar der skal konstrueres.
For eksempel kan en databasesøgning, der udløses fra en webside, ende som en URL, som din browser anmoder om, og som ser sådan ud:
https://search.example.com/?type=file&name=duck
Forespørgselsteksten duck
kunne derefter udtrækkes fra navneparameteren i URL'en, konverteres til databaseforespørgselssyntaks og sammensættes til en kommando, der skal sendes til databaseserveren.
Hvis backend-dataene er gemt i en SQL-database, kan webserveren muligvis konvertere denne URL til en SQL-kommando som den, der er vist nedenfor.
%
tegn tilføjet til teksten duck
betyder, at søgeordet kan forekomme hvor som helst i det hentede filnavn, og de enkelte anførselstegn i hver ende tilføjes som markører for at angive en SQL-tekststreng:
VÆLG filnavn FRA filesdb HVOR navn SOM '%duck%'
De data, der kommer tilbage fra forespørgslen, kan derefter formateres pænt, konverteres til HTML og sendes tilbage som et HTTP-svar til din browser, hvilket måske giver dig en klikbar liste over matchende filer, som du kan downloade.
Naturligvis skal webserveren være meget forsigtig med de filnavne, der indsendes som et søgeord, i tilfælde af at en ondsindet bruger skulle oprette og anmode om en URL som denne:
https://search.example.com/?type=file&name=duck';DROP table filesdb;--
Hvis det søgeord blindt blev konverteret til en forespørgselsstreng, kan du muligvis narre webserveren til at sende SQL-serveren en kommando som denne:
VÆLG filnavn FRA filesdb HVOR navn SOM '%duck';DROP TABLE filesdb;--%'
Fordi et semikolon (;
) fungerer som en sætningsseparator i SQL, denne enkeltlinjekommando er faktisk det samme som at sende tre på hinanden følgende kommandoer:
VÆLG filnavn FRA filesdb HVOR navn SOM '%duck' -- matcher navne, der slutter duck DROP TABLE filesdb -- sletter hele databasen --%' -- kommentar, gør ingenting
Lusket, fordi hver gang efter --
kasseres af SQL som en programmørs kommentar, er disse tre linjer de samme som:
VÆLG filnavn FRA filesdb HVOR navn SOM '%duck' DROP TABLE filesdb
Du får en liste tilbage over alle filnavne i databasen, der ender med strengen duck
(det specielle SQL-tegn %
i starten af et søgeord betyder "match noget indtil dette punkt")...
…men du vil være den sidste person, der får noget nyttigt ud af filesdb
database, fordi din useriøse søgeterm vil følge op på søgningen med SQL-kommandoen for at slette hele databasen.
Lille Bobby borde
Hvis du nogensinde har hørt syadmins eller programmerere lave vittigheder om Lille Bobby borde, det er fordi denne form for SQL-injektion blev udødeliggjort i en XKCD tegnefilm tilbage i 2007:
Da tegneserien slutter i den sidste frame, skal du virkelig rense dine databaseinput, hvilket betyder, at du skal passe meget på ikke at tillade den person, der indsender søgetermen, at kontrollere, hvordan søgekommandoen bliver fortolket af de involverede backend-servere.
Du kan se, hvorfor denne form for trick er kendt som et injektionsangreb: I eksemplerne ovenfor forårsager de ondsindede søgetermer, at der injiceres en ekstra SQL-kommando i håndteringen af anmodningen.
Faktisk involverer begge disse eksempler to indsprøjtede meddelelser, der følger det snigende indsatte "nær citat"-tegn for at afslutte søgestrengen tidligt. Den første ekstra kommando er den destruktive DROP TABLE
instruktion. Den anden er en "kommentarkommando", der får resten af linjen til at blive ignoreret, og dermed på snedig vis æder det efterfølgende op. %'
tegn genereret af serverens kommandogenerator, som ellers ville have forårsaget en syntaksfejl og forhindret den injicerede DROP TABLE
kommando fra arbejdet.
Gode nyheder og dårlige nyheder
Den gode nyhed i dette tilfælde er, at Progress lappede alle dens understøttede MOVEit-versioner sammen med dens cloud-baserede tjeneste, når den blev opmærksom på sårbarheden.
Så hvis du bruger cloud-versionen, er du nu automatisk opdateret, og hvis du kører MOVEit på dit eget netværk, håber vi, at du har patchen nu.
Den dårlige nyhed er, at denne sårbarhed var en nul-dag, hvilket betyder, at Progress fandt ud af det, fordi Bad Guys allerede havde udnyttet det, snarere end før de fandt ud af, hvordan de skulle gøre det.
Med andre ord, på det tidspunkt, hvor du lappede dine egne servere (eller Progress lappede dens cloud-tjeneste), kan skurke allerede have injiceret useriøse kommandoer i dine MOVEit SQL-backend-databaser med en række mulige resultater:
- Sletning af eksisterende data. Som vist ovenfor er det klassiske eksempel på et SQL-injektionsangreb storstilet datadestruktion.
- Eksfiltrering af eksisterende data. I stedet for at droppe SQL-tabeller, kunne angribere injicere deres egne forespørgsler, og dermed lære ikke kun strukturen af dine interne databaser, men også at udtrække og stjæle deres saftigste dele.
- Ændring af eksisterende data. Mere subtile angribere kan beslutte at korrumpere eller forstyrre dine data i stedet for (eller så godt som) at stjæle dem.
- Implantation af nye filer, herunder malware. Angribere kunne injicere SQL-kommandoer, der igen starter eksterne systemkommandoer, og dermed opnår vilkårlig fjernudførelse af kode inde i dit netværk.
En gruppe angribere, påståede af Microsoft for at være (eller være forbundet med) den berygtede Clop ransomware-bande, har tilsyneladende brugt denne sårbarhed til at implantere det, der er kendt som webshells på berørte servere.
Hvis du ikke er bekendt med webshells, så læs vores almindelig engelsk forklaring som vi offentliggjorde på tidspunktet for de besværlige HAFNIUM-angreb tilbage i marts 2021:
Webshell fare
Kort sagt giver webshells en måde for angribere, der kan tilføje nye filer til din webserver, til at vende tilbage senere, bryde ind i ro og mag og give den skriveadgang til komplet fjernbetjening.
Webshells fungerer, fordi mange webservere behandler bestemte filer (normalt bestemt af den mappe, de er i, eller af den udvidelse, de har) som eksekverbare scripts bruges til at generere siden, der skal sendes tilbage, snarere end som det faktiske indhold, der skal bruges i svaret.
For eksempel er Microsofts IIS (internetinformationsserver) normalt konfigureret således, at hvis en webbrowser anmoder om en fil kaldet f.eks. hello.html
, så vil det rå, uændrede indhold af denne fil blive læst ind og sendt tilbage til browseren.
Så hvis der er malware i det hello.html
fil, så vil det påvirke den person, der browser til serveren, ikke selve serveren.
Men hvis filen kaldes, siger, hello.aspx
(hvor ASP er en forkortelse for den selvbeskrivende sætning Aktive serversider), så behandles den fil som et scriptprogram, som serveren kan udføre.
At køre denne fil som et program, i stedet for blot at læse den ind som data, vil generere output, der skal sendes som svar.
Med andre ord, hvis der er malware i det hello.aspx
fil, så vil det direkte påvirke selve serveren, ikke den person, der browser til den.
Kort sagt, at droppe en webshell-fil som bivirkning af et kommandoinjektionsangreb betyder, at angriberne kan vende tilbage senere, og ved at besøge den URL, der svarer til den webshells filnavn...
...de kan køre deres malware lige inde i dit netværk, og de bruger intet mere mistænkeligt end en beskeden HTTP-anmodning lavet af en daglig webbrowser.
Nogle webshells består faktisk af kun en linje med ondsindet script, for eksempel en enkelt kommando, der siger "hent tekst fra en specifik HTTP-header i anmodningen, og kør den som en systemkommando".
Dette giver generel kommando-og-kontrol-adgang til enhver angriber, der kender den rigtige URL at besøge, og den rigtige HTTP-header, der skal bruges til at levere rogue-kommandoen.
Hvad skal jeg gøre?
- Hvis du er en MOVEit-bruger, sørg for, at alle forekomster af softwaren på dit netværk er lappet.
- Hvis du ikke kan lappe lige nu, sluk for de webbaserede (HTTP og HTTP) grænseflader til dine MOVEit-servere, indtil du kan. Tilsyneladende er denne sårbarhed kun afsløret via MOVEits webgrænseflade, ikke via andre adgangsstier såsom SFTP.
- Søg i dine logfiler for nyligt tilføjede webserverfiler, nyoprettede brugerkonti og uventet store datadownloads. Progress har en liste over steder at søge sammen med filnavne og at søge efter.
- Hvis du er programmør, rense dine inputs.
- Hvis du er en SQL-programmør, brugte parametriserede forespørgsler i stedet for at generere forespørgselskommandoer, der indeholder tegn, der styres af den person, der sender anmodningen.
I mange, hvis ikke de fleste, webshell-baserede angreb, der er undersøgt indtil videre, Fremskridt tyder på at du sandsynligvis vil finde en useriøs webshell-fil med navnet human2.aspx
, måske sammen med nyoprettede ondsindede filer med en .cmdline
udvidelse.
(Sophos-produkter vil opdage og blokere kendte webshell-filer som Troj/WebShel-GO, om de kaldes human2.aspx
eller ikke.)
Husk dog, at hvis andre angribere vidste om denne nul-dag før patchen kom ud, kan de have injiceret forskellige, og måske mere subtile, kommandoer, som nu ikke kan detekteres ved at scanne for malware, der blev efterladt, eller søge for kendte filnavne, der kan dukke op i logfiler.
Glem ikke at gennemgå dine adgangslogfiler generelt, og hvis du ikke har tid til at gøre det selv, skal du ikke være bange for at bede om hjælp!
Lær mere om Sophos Managed Detection and Response:
24/7 trusselsjagt, detektion og reaktion ▶
Mangler du tid eller ekspertise til at tage sig af cybersikkerhedstrusler? Bekymret for, at cybersikkerhed vil ende med at distrahere dig fra alle de andre ting, du skal gøre?
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoAiStream. Web3 Data Intelligence. Viden forstærket. Adgang her.
- Udmøntning af fremtiden med Adryenn Ashley. Adgang her.
- Køb og sælg aktier i PRE-IPO-virksomheder med PREIPO®. Adgang her.
- Kilde: https://nakedsecurity.sophos.com/2023/06/05/moveit-zero-day-exploit-used-by-data-breach-gangs-the-how-the-why-and-what-to-do/
- :har
- :er
- :ikke
- :hvor
- $OP
- 1
- 15 %
- 2021
- a
- I stand
- Om
- om det
- over
- absolutte
- adgang
- Konti
- opnå
- handlinger
- faktiske
- faktisk
- tilføje
- tilføjet
- Yderligere
- fremskreden
- påvirke
- bange
- Efter
- Alle
- tillade
- sammen
- allerede
- også
- an
- ,
- enhver
- noget
- overalt
- vises
- ER
- AS
- At
- angribe
- Angreb
- forfatter
- auto
- Automatiseret
- automatisk
- Automation
- opmærksom på
- tilbage
- Bagende
- background-billede
- Bad
- BE
- blev
- fordi
- været
- før
- bag
- jf. nedenstående
- blindt
- Bloker
- Bobby
- grænse
- både
- Bund
- brud
- Pause
- browser
- Browsing
- bugs
- men
- by
- kaldet
- kom
- CAN
- kapaciteter
- hvilken
- forsigtig
- tegneserie
- tilfælde
- Årsag
- forårsagede
- årsager
- center
- vis
- kæde
- karakter
- tegn
- Classic
- Cloud
- kode
- samarbejde
- farve
- Kom
- kommer
- KOMMENTAR
- selskab
- fuldføre
- tilsluttet
- træk
- betragtes
- konstruere
- indhold
- kontrol
- kontrolleret
- konvertere
- konverteret
- VIRKSOMHED
- Tilsvarende
- kunne
- kursus
- dæksel
- skabe
- oprettet
- Crooks
- Kunder
- Cybersecurity
- data
- bruddet
- Database
- databaser
- beslutte
- leverer
- Afdeling
- opdaget
- Detektion
- bestemmes
- Udvikling
- DevOps
- forskellige
- direkte
- Skærm
- Afbryde
- do
- gør
- Dont
- downloade
- downloads
- Drop
- Dropper
- døbt
- hver
- Tidligt
- let
- ende
- fejl
- Endog
- NOGENSINDE
- hverdagen
- eksempel
- eksempler
- udføre
- udførelse
- eksisterende
- ekspertise
- Exploit
- udsat
- udvidelse
- ekstern
- ekstra
- Faktisk
- bekendt
- langt
- regnede
- File (Felt)
- Filer
- Finde
- Fornavn
- følger
- efter
- Til
- fundet
- FRAME
- fra
- forsiden
- forreste ende
- Bande
- Generelt
- generelle formål
- generelt
- generere
- genereret
- generere
- generator
- få
- giver
- Give
- godt
- stor
- gruppe
- havde
- Håndtering
- Have
- hørt
- højde
- håber
- hover
- Hvordan
- How To
- Men
- HTML
- http
- HTTPS
- Jagt
- if
- IIS
- in
- Herunder
- berygtede
- oplysninger
- injicerbar
- indgange
- i stedet
- grænseflade
- grænseflader
- interne
- Internet
- ind
- involvere
- involverede
- Udstedt
- IT
- ITS
- selv
- lige
- bare en
- kendt
- stor
- storstilet
- Efternavn
- senere
- lancere
- læring
- til venstre
- mindre
- ligesom
- Line (linje)
- linjer
- Liste
- UDSEENDE
- kig op
- lavet
- lave
- maerker
- Making
- malware
- administrere
- lykkedes
- ledelse
- mange
- Marts
- Margin
- matchende
- max-bredde
- Kan..
- betyde
- betyder
- midler
- microsoft
- måske
- mere
- mest
- navn
- Som hedder
- navne
- Behov
- behov
- netværk
- Ny
- nyligt
- nyheder
- normal
- intet
- nu
- of
- off
- on
- engang
- ONE
- kun
- or
- ordrer
- Andet
- Ellers
- vores
- ud
- udfald
- output
- egen
- side
- parameter
- dele
- patch
- paul
- måske
- person,
- Steder
- plato
- Platon Data Intelligence
- PlatoData
- position
- mulig
- Indlæg
- sandsynligvis
- behandle
- Produkter
- Program
- programmør
- Progress
- give
- giver
- offentliggjort
- sætte
- forespørgsler
- citere
- rækkevidde
- ransomware
- hellere
- Raw
- Læs
- Læsning
- virkelig
- relaterede
- relative
- fjern
- svar
- anmode
- anmodet
- anmodninger
- svar
- REST
- gennemgå
- højre
- Kør
- kører
- samme
- siger
- siger
- scanning
- scripts
- Søg
- søgning
- Anden
- sikker
- se
- Sells
- send
- afsendelse
- følsom
- sendt
- tjeneste
- Tjenester
- Del
- deling
- Kort
- Vis
- vist
- ganske enkelt
- enkelt
- So
- indtil nu
- Software
- solid
- nogle
- særligt
- specifikke
- SQL
- SQL Injection
- starte
- Statement
- butik
- opbevaret
- String
- struktur
- indsende
- indsendt
- sådan
- foreslår
- forsyne
- forsyningskæde
- Understøttet
- mistænksom
- SVG
- syntaks
- systemet
- bord
- Tag
- hold
- semester
- vilkår
- end
- at
- deres
- Them
- derefter
- Der.
- Disse
- de
- ting
- denne
- trussel
- tre
- hele
- tid
- til
- top
- overførsel
- overførsler
- overgang
- gennemsigtig
- behandle
- udløst
- TUR
- Drejede
- to
- indtil
- up-to-date
- URL
- brug
- anvendte
- Bruger
- Brugergrænseflade
- ved brug af
- sædvanligvis
- udgave
- via
- Besøg
- sårbarhed
- var
- Vej..
- we
- web
- webbrowser
- Webserver
- web-baseret
- uge
- GODT
- var
- Hvad
- hvornår
- hvorvidt
- som
- WHO
- Hele
- hvorfor
- vilje
- med
- uden
- ord
- Arbejde
- træning
- workflow
- Workflow automation
- arbejder
- bekymret
- ville
- dig
- Din
- dig selv
- zephyrnet