Et automatiseret angreb har udnyttet programmeringsfejl i tusindvis af webserverapplikationer.
Chefkonsulent Shehzad Ahmad, UNI•C, der leder det danske Computer Emergency Response Team (DK•CERT), skriver hver måned på Computerworld Online om aktuelle it-sikkerhedsspørgsmål. Kommentarerne bringes her, efterhånden som de udkommer.
Kender du webstedet uc8010.com? Ikke? En Google-søgning viser ellers, at over 85.000 websteder indeholder links til det.
Jeg kan ikke anbefale et besøg på webstedet.
Hvis du har RealPlayer på din pc, og programmet ikke er opdateret, vil der nemlig blive installeret skadelige programmer, hvis du besøger webstedet med en Internet Explorer.
Den del af angrebet er sådan set enkel nok: Webstedet udnytter en velkendt sårbarhed i RealPlayer, som der er udsendt rettelser til.
Men hvordan går det til, at så mange andre websteder henviser til det farlige websted?
Forklaringen er, at de er ramt af et automatiseret SQL-indsætningsangreb.
Indsætter i input-felter
Angrebet foregår ved, at et angrebsprogram besøger en lang række websteder.
Hvert sted prøver det at indsætte en tekststreng i inputfelter på siden.
Tekststrengen indeholder en kodet udgave af en stribe SQL-kommandoer.
Hvis webapplikationen sender tekststrengen direkte videre til en bagvedliggende relationsdatabase, vil den forsøge at udføre SQL-kommandoerne.
En af kommandoerne søger i tabellen Sysobjects. Den findes kun i Microsoft SQL Server, så derfor virker angrebet kun mod denne type database.
Kaldet til Sysobjects bruger programmet til at finde frem til tabeller i databasen, der indeholder tekstfelter. Alle tekstfelter bliver så udvidet med en kommando, der henter et Javascript-program fra uc8010.com.
Hvis man besøger et af de ramte websteder med en sårbar pc, risikerer man derfor at blive inficeret.
Udbredt programmeringsfejl
Jeg skriver ikke dette for at advare mod uc8010.com.
Webstedet er sandsynligvis for længst blokeret – de første angreb blev opdaget i slutningen af december.
Mange af de inficerede websteder er også blevet renset.
Men historien viser, at der er uhyggeligt mange webapplikationer, som ikke tjekker input fra brugerne.
En webapplikation må aldrig sende tekststrenge direkte videre til en relationsdatabase.
Som minimum skal strenglængden kontrolleres og indholdet tjekkes for specialtegn. Men det er bedre helt at undlade det og i stedet anvende stored procedures, der kaldes med parametre.
Angrebet virkede kun mod SQL Server. Men det er en tilfældighed. Hvis angriberen i stedet for at anvende Sysobjects havde kaldt systemtabellen
Information_Schema, kunne det have virket på stort set alle relationsdatabaser.
Sårbarheden ligger nemlig ikke i databasen, men i den webapplikation, der kommunikerer med den.
Hvis du driver et database-baseret websted, kan du undersøge, hvordan kommunikationen med databasen foregår.
Hvis den ikke er sikret, kan du overveje, hvad det vil koste dig i tid og penge, hvis du skal gendanne alle poster fra backup.
Har du råd til det?
Oprindelig bragt på Computerworld Online fredag den 25. januar 2008
LINKS
Slashdot-diskussion om angrebet
Web Security Blog med eksempel på SQL-kommandoerne