Förra veckan uppmärksammade Progress Software Corporation, som säljer mjukvara och tjänster för utveckling av användargränssnitt, devops, filhantering och mer, kunderna om sina MOVEit Transfer och relaterade MOVEit Cloud produkter om en kritisk sårbarhet dubbade CVE-2023-34362.
Som namnet antyder är MOVEit Transfer ett system som gör det enkelt att lagra och dela filer i ett team, en avdelning, ett företag eller till och med en försörjningskedja.
I sitt egna ord, "MOVEit tillhandahåller säkert samarbete och automatiserade filöverföringar av känslig data och avancerade funktioner för automatisering av arbetsflöden utan behov av skript."
Tyvärr visade sig MOVEits webbaserade gränssnitt, som gör det enkelt att dela och hantera filer med enbart en webbläsare (en process som generellt anses vara mindre benägen för felriktade eller "förlorade" filer än att dela dem via e-post), ha en SQL sårbarhet för injektion.
SQL-injektioner förklaras
Webbaserade SQL-injektionsbuggar uppstår när en HTTP-förfrågan skickas till en webbserver konverteras på ett osäkert sätt till ett frågekommando som sedan utfärdas av servern själv för att göra en databassökning för att ta reda på vilket HTTP-svar som ska konstrueras.
Till exempel kan en databassökning som utlöses från en webbsida sluta som en webbadress som begärs av din webbläsare och ser ut så här:
https://search.example.com/?type=file&name=duck
Frågetexten duck
kan sedan extraheras från namnparametern i URL:en, konverteras till databasfrågesyntax och sammanfogas till ett kommando att skicka till databasservern.
Om backend-data lagras i en SQL-databas kan webbservern konvertera den URL:en till ett SQL-kommando som det som visas nedan.
Smakämnen %
tecken som lagts till i texten duck
innebär att söktermen kan förekomma var som helst i det hämtade filnamnet, och de enstaka citattecken i varje ände läggs till som markörer för att beteckna en SQL-textsträng:
VÄLJ filnamn FRÅN filesdb VAR namn SOM '%duck%'
Datan som kommer tillbaka från frågan kan sedan formateras snyggt, konverteras till HTML och skickas tillbaka som ett HTTP-svar till din webbläsare, vilket kanske ger dig en klickbar lista med matchande filer som du kan ladda ner.
Naturligtvis måste webbservern vara väldigt försiktig med filnamnen som skickas in som en sökterm, ifall en illvillig användare skulle skapa och begära en URL så här:
https://search.example.com/?type=file&name=duck';DROP table filesdb;--
Om den söktermen blint konverterades till en frågesträng, kanske du kan lura webbservern att skicka SQL-servern ett kommando så här:
VÄLJ filnamn FRÅN filesdb VAR namn SOM '%duck';DROP TABLE filesdb;--%'
Eftersom ett semikolon (;
) fungerar som en satsseparator i SQL, detta enradiga kommando är faktiskt detsamma som att skicka tre på varandra följande kommandon:
VÄLJ filnamn FRÅN filesdb WHERE namn SOM '%duck' -- matchar namn som slutar duck DROP TABLE filesdb -- tar bort hela databasen --%' -- kommentar, gör ingenting
Smygande, eftersom varje efter --
kasseras av SQL som en programmerares kommentar, är dessa tre rader samma som:
VÄLJ filnamn FRÅN filesdb VAR namn SOM '%duck' SLÄPP TABELL filesdb
Du får tillbaka en lista över alla filnamn i databasen som slutar med strängen duck
(det speciella SQL-tecknet %
i början av en sökterm betyder "matcha vad som helst fram till denna punkt")...
…men du kommer att vara den sista personen som får ut något användbart filesdb
databas, eftersom din oseriösa sökterm kommer att följa upp sökningen med SQL-kommandot för att radera hela databasen.
Little Bobby -bord
Om du någonsin har hört syadmins eller kodare skämta om Little Bobby -bord, det beror på att den här typen av SQL-injektion förevigades i en XKCD tecknad film tillbaka 2007:
När den tecknade filmen avslutas i den sista bildrutan behöver du verkligen sanera dina databasindata, vilket innebär att du måste vara mycket försiktig så att inte personen som skickar in söktermen kan kontrollera hur sökkommandot tolkas av de inblandade backend-servrarna.
Du kan se varför den här typen av trick är känt som en injektionsattack: i exemplen ovan orsakar de skadliga söktermerna att ett extra SQL-kommando injiceras i hanteringen av begäran.
I själva verket involverar båda dessa exempel två injicerade ommander, efter det smygmatade "nära citat"-tecknet för att avsluta söksträngen tidigt. Det första extra kommandot är det destruktiva DROP TABLE
instruktion. Det andra är ett "kommentarkommando" som gör att resten av raden ignoreras, vilket på ett listigt sätt äter upp det efterföljande %'
tecken som genereras av serverns kommandogenerator, vilket annars skulle ha orsakat ett syntaxfel och förhindrat den injicerade DROP TABLE
kommando från arbetet.
Goda nyheter och dåliga nyheter
Den goda nyheten i det här fallet är att Progress korrigerade alla sina MOVEit-versioner som stöds, tillsammans med sin molnbaserade tjänst, när den blev medveten om sårbarheten.
Så om du använder molnversionen är du nu automatiskt uppdaterad, och om du kör MOVEit på ditt eget nätverk hoppas vi att du har patchat vid det här laget.
Den dåliga nyheten är att den här sårbarheten var en noll-dag, vilket betyder att Progress fick reda på det eftersom Bad Guys redan hade utnyttjat det, snarare än innan de kom på hur de skulle göra det.
Med andra ord, när du korrigerade dina egna servrar (eller Progress lappade dess molntjänst), kan skurkar redan ha injicerat oseriösa kommandon i dina MOVEit SQL-backend-databaser, med en rad möjliga resultat:
- Radering av befintliga data. Som visas ovan är det klassiska exemplet på en SQL-injektionsattack storskalig dataförstöring.
- Exfiltrering av befintlig data. Istället för att släppa SQL-tabeller kan angripare injicera egna frågor och på så sätt lära sig inte bara strukturen på dina interna databaser, utan också extrahera och stjäla deras saftigaste delar.
- Ändring av befintliga data. Mer subtila angripare kan besluta sig för att korrumpera eller störa din data istället för (eller lika väl som) att stjäla den.
- Implantation av nya filer, inklusive skadlig programvara. Angripare kan injicera SQL-kommandon som i sin tur startar externa systemkommandon och på så sätt uppnå godtycklig fjärrkörning av kod i ditt nätverk.
En grupp angripare, påstådda av Microsoft för att vara (eller vara kopplad till) det ökända Clop ransomware-gänget, har uppenbarligen använt denna sårbarhet för att implantera vad som kallas webbskal på berörda servrar.
Om du inte är bekant med webshells, läs vår vanlig-engelsk förklarare som vi publicerade vid tidpunkten för de besvärliga HAFNIUM-attackerna i mars 2021:
Webshell fara
Enkelt uttryckt ger webbskal ett sätt för angripare som kan lägga till nya filer till din webbserver att komma tillbaka senare, bryta sig in när de är lediga och koppla den skrivbara åtkomsten till fullständig fjärrkontroll.
Webshells fungerar eftersom många webbservrar behandlar vissa filer (vanligtvis bestäms av katalogen de är i, eller av tillägget som de har) som körbara skript används för att generera sidan som ska skickas tillbaka, snarare än som det faktiska innehållet som ska användas i svaret.
Till exempel är Microsofts IIS (internetinformationsserver) vanligtvis konfigurerad så att om en webbläsare begär en fil som heter t.ex. hello.html
, sedan kommer det råa, omodifierade innehållet i den filen att läsas in och skickas tillbaka till webbläsaren.
Så, om det finns någon skadlig kod i det hello.html
fil, då kommer det att påverka personen som surfar till servern, inte själva servern.
Men om filen anropas, säg, hello.aspx
(där ASP är en förkortning för den självbeskrivande frasen Aktiva serversidor), behandlas den filen som ett skriptprogram som servern kan köra.
Att köra den filen som ett program, istället för att bara läsa in den som data, kommer att generera utdata som ska skickas som svar.
Med andra ord, om det finns någon skadlig kod i det hello.aspx
fil, då kommer det att påverka själva servern direkt, inte personen som surfar till den.
Kort sagt, att släppa en webshell-fil som bieffekt av en kommandoinjektionsattack innebär att angriparna kan komma tillbaka senare, och genom att besöka webbadressen som motsvarar det webshells filnamn...
…de kan köra sin skadliga programvara direkt i ditt nätverk, utan att använda något mer misstänkt än en anspråkslös HTTP-förfrågan från en vanlig webbläsare.
Vissa webbskal består faktiskt av bara en rad med skadligt skript, till exempel ett enda kommando som säger "hämta text från en specifik HTTP-rubrik i begäran och kör den som ett systemkommando".
Detta ger generell kommando-och-kontroll åtkomst till alla angripare som känner till rätt URL att besöka, och rätt HTTP-huvud att använda för att leverera det falska kommandot.
Vad göra?
- Om du är en MOVEit-användare, se till att alla instanser av programvaran i ditt nätverk är patchade.
- Om du inte kan patcha just nu, stäng av de webbaserade (HTTP och HTTP) gränssnitten till dina MOVEit-servrar tills du kan. Tydligen exponeras denna sårbarhet endast via MOVEits webbgränssnitt, inte via andra åtkomstvägar som SFTP.
- Sök i dina loggar för nyligen tillagda webbserverfiler, nyskapade användarkonton och oväntat stora datanedladdningar. Progress har en lista över platser att söka, tillsammans med filnamn och att söka efter.
- Om du är en programmerare, sanera dina ingångar.
- Om du är en SQL-programmerare, använde parametriserade frågor, istället för att generera frågekommandon som innehåller tecken som kontrolleras av personen som skickar förfrågan.
I många, om inte de flesta, webshell-baserade attacker som hittills undersökts, Framsteg tyder på att du förmodligen kommer att hitta en oseriös webshell-fil som heter human2.aspx
, kanske tillsammans med nyskapade skadliga filer med en .cmdline
förlängning.
(Sophos-produkter kommer att upptäcka och blockera kända webshell-filer som Troj/WebShel-GO, om de kallas human2.aspx
eller inte.)
Kom dock ihåg att om andra angripare visste om den här nolldagen innan patchen kom ut, kan de ha injicerat olika, och kanske mer subtila, kommandon som nu inte kan upptäckas genom att söka efter skadlig programvara som lämnats kvar, eller genom att söka för kända filnamn som kan dyka upp i loggar.
Glöm inte att granska dina åtkomstloggar i allmänhet, och om du inte har tid att göra det själv, var inte rädd för att be om hjälp!
Läs mer om Sophos Managed Detection and Response:
24/7 hotjakt, upptäckt och respons ▶
Har du ont om tid eller expertis för att ta hand om cybersäkerhetshot? Orolig för att cybersäkerhet kommer att distrahera dig från alla andra saker du behöver göra?
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoAiStream. Web3 Data Intelligence. Kunskap förstärkt. Tillgång här.
- Minting the Future med Adryenn Ashley. Tillgång här.
- Köp och sälj aktier i PRE-IPO-företag med PREIPO®. Tillgång här.
- Källa: 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
- :är
- :inte
- :var
- $UPP
- 1
- 15%
- 2021
- a
- Able
- Om oss
- om det
- ovan
- Absolut
- tillgång
- konton
- uppnå
- handlingar
- faktiska
- faktiskt
- lägga till
- lagt till
- Annat
- avancerat
- påverka
- rädda
- Efter
- Alla
- tillåter
- längs
- redan
- också
- an
- och
- vilken som helst
- något
- var som helst
- visas
- ÄR
- AS
- At
- attackera
- Attacker
- Författaren
- bil
- Automatiserad
- automatiskt
- Automation
- medveten
- tillbaka
- backend
- bakgrund-bild
- Badrum
- BE
- blev
- därför att
- varit
- innan
- bakom
- nedan
- blint
- Blockera
- Bobby
- gränsen
- båda
- Botten
- brott
- Ha sönder
- webbläsare
- Bläddrar
- fel
- men
- by
- kallas
- kom
- KAN
- kapacitet
- vilken
- noggrann
- tecknad
- Vid
- Orsak
- orsakas
- Orsakerna
- Centrum
- vissa
- kedja
- karaktär
- tecken
- klassiska
- cloud
- koda
- samverkan
- färg
- komma
- kommer
- kommentar
- företag
- fullborda
- anslutna
- i följd
- anses
- konstruera
- innehåll
- kontroll
- kontrolleras
- konvertera
- konverterad
- FÖRETAG
- Motsvarande
- kunde
- Naturligtvis
- täcka
- skapa
- skapas
- Crooks
- Kunder
- Cybersäkerhet
- datum
- dataintrång
- Databas
- databaser
- beslutar
- leverera
- Avdelning
- detekterad
- Detektering
- bestämd
- Utveckling
- DevOps
- olika
- direkt
- Visa
- Störa
- do
- gör
- inte
- ladda ner
- Nedladdningar
- Drop
- Drop
- dubbade
- varje
- Tidig
- lätt
- änden
- fel
- Även
- NÅGONSIN
- dagliga
- exempel
- exempel
- exekvera
- utförande
- befintliga
- expertis
- Exploit
- utsatta
- förlängning
- extern
- extra
- Faktum
- bekant
- långt
- figured
- Fil
- Filer
- hitta
- Förnamn
- följer
- efter
- För
- hittade
- RAM
- från
- främre
- främre ände
- Gäng
- Allmänt
- generell mening
- allmänhet
- generera
- genereras
- generera
- Generatorn
- skaffa sig
- ger
- Ge
- god
- stor
- Grupp
- hade
- Arbetsmiljö
- Har
- hört
- höjd
- hoppas
- hovring
- Hur ser din drömresa ut
- How To
- Men
- html
- http
- HTTPS
- Jakt
- if
- Iis
- in
- Inklusive
- ökänd
- informationen
- injicerbart
- ingångar
- istället
- Gränssnitt
- gränssnitt
- inre
- Internet
- in
- engagera
- involverade
- Utfärdad
- IT
- DESS
- sig
- bara
- bara en
- känd
- Large
- storskalig
- Efternamn
- senare
- lansera
- inlärning
- vänster
- mindre
- tycka om
- linje
- rader
- Lista
- UTSEENDE
- slå upp
- gjord
- göra
- GÖR
- Framställning
- malware
- hantera
- förvaltade
- ledning
- många
- Mars
- Marginal
- matchande
- max-bredd
- Maj..
- betyda
- betyder
- betyder
- Microsoft
- kanske
- mer
- mest
- namn
- Som heter
- namn
- Behöver
- behov
- nät
- Nya
- nytt
- nyheter
- normala
- inget
- nu
- of
- sänkt
- on
- gång
- ONE
- endast
- or
- beställa
- Övriga
- annat
- vår
- ut
- utfall
- produktion
- egen
- sida
- parameter
- reservdelar till din klassiker
- Lappa
- paul
- kanske
- personen
- platser
- plato
- Platon Data Intelligence
- PlatonData
- placera
- möjlig
- inlägg
- förmodligen
- process
- Produkter
- Program
- Programmerare
- Framsteg
- ge
- ger
- publicerade
- sätta
- sökfrågor
- citera
- område
- Ransomware
- snarare
- Raw
- Läsa
- Läsning
- verkligen
- relaterad
- relativ
- avlägsen
- svar
- begära
- begärda
- förfrågningar
- respons
- REST
- översyn
- höger
- Körning
- rinnande
- Samma
- säga
- säger
- scanning
- skript
- Sök
- söka
- Andra
- säkra
- se
- Säljer
- sända
- skicka
- känslig
- skickas
- service
- Tjänster
- Dela
- delning
- Kort
- show
- visas
- helt enkelt
- enda
- So
- än så länge
- Mjukvara
- fast
- några
- speciell
- specifik
- SQL
- SQL-injektion
- starta
- .
- lagra
- lagras
- Sträng
- struktur
- skicka
- lämnats
- sådana
- Föreslår
- leverera
- leveranskedjan
- Som stöds
- misstänksam
- SVG
- syntax
- system
- bord
- Ta
- grupp
- termin
- villkor
- än
- den där
- Smakämnen
- deras
- Dem
- sedan
- Där.
- Dessa
- de
- saker
- detta
- hot
- tre
- hela
- tid
- till
- topp
- överföring
- överföringar
- övergång
- transparent
- behandla
- triggas
- SVÄNG
- vände
- två
- tills
- TIDSENLIG
- URL
- användning
- Begagnade
- Användare
- Användargränssnitt
- med hjälp av
- vanligen
- version
- via
- Besök
- sårbarhet
- var
- Sätt..
- we
- webb
- webbläsare
- webbserver
- Webb-baserad
- vecka
- VÄL
- były
- Vad
- när
- om
- som
- VEM
- Hela
- varför
- kommer
- med
- utan
- ord
- Arbete
- träna
- arbetsflöde
- arbetsflödesautomatisering
- arbetssätt
- orolig
- skulle
- dig
- Din
- själv
- zephyrnet