Microsoft varoittaa SQL-hyökkäyksestä
Microsoft varoittaa SQL Server 2000- ja 2005 -ohjelmistoista löydetystä haavoittuvuudesta, joka saattaa sallia vieraan koodin ajamisen etänä SQL-palvelimella. Haavoittuvuudelle on jo julkaistu hyväksikäyttömenetelmä, mutta Microsoft on julkaissut ohjeet, joilla sen käyttö voidaan estää. Microsoftin mukaan hyökkäyksiä ei ole kuitenkaan tehty.
Haavoittuvuuden löysi jo huhtikuussa itävaltalainen tietoturvakonsulttiyhtiö SEC Consult. Microsoft ei kuitenkaan reagoinut yhtiön varoituksiin, joten SEC Consult päätti julkaista haavoittuvuuden ja hyväksikäyttökoodin. Yhtiön mukaan Microsoftilla on ollut paikkaus valmiina jo kolmen kuukauden ajan, mutta on kieltäytynyt julkaisemasta sitä.
Monet verkkopalvelut käyttävät SQL Server -ohjelmistoja palvelimillaan.
Haavoittuvuus on löydetty Microsoftin SQL Server -ohjelmien versioista Microsoft SQL Server 2000, Microsoft SQL Server 2005, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2000 Desktop Engine (MSDE 2000), Microsoft SQL Server 2000 Desktop Engine (WMSDE) ja Windows Internal Database (WYukon).
Haavoittuvuutta ei ole ohjelmiston uudemmissa versioissa.
































Kommentit (42)
Mitigating Factors:
• This issue does not affect supported editions of Microsoft SQL Server 7.0 Service Pack 4, Microsoft SQL Server 2005 Service Pack 3, and Microsoft SQL Server 2008.
• This vulnerability is not exposed anonymously. An attacker would need to either authenticate to exploit the vulnerability or take advantage of a SQL injection vulnerability in a Web application that is able to authenticate.
• By default, MSDE 2000 and SQL Server 2005 Express do not allow remote connections. An authenticated attacker would need to initiate the attack locally to exploit the vulnerability.
Itselle tuosta lähinnä hahmottuu että jos olisi suuri joukko SQL2000:sta jonkun yleisen viallisen webbiapplikaation takana, jolla tehdä injektio, mutta 2000 alkaa olla sen verran poistuvaa tavaraa, että se ei taida enää niin yleinen olla.
Ps. Otsikosta luulisi että kyseessä olisi ollut oikeasti kriittinen haavoittuvaisuus, eli siis autentikoimatta ja etänä. Mut ei ollutkaan.
Jos web-sovelluksessa hoidetaan esim. syötteiden parisiminen huonosti niin SQL injection on mahdollinen vaikka sisäpalomuurissa olisi vain yksi ainokainen reikä auki web-palvelimen ja SQL-palvelimen välistä liikennöintiä varten.
Tällöin sovelluksen käyttämällä tunnuksella voidaan hyödyntää ko. reikää ja suorittaa haluttua koodia SQL-palvelimessa. Teoriassa sama temppu toimii vaikka web-palvelu välittäisi ja noutaisi tietoja erillisen välikerroksen kautta mikäli välikerroksen sovellukset ovat yhtä huonosti tehtyjä.
Valitettavasti noita reikäisiä web-sovelluksia on maailmassa aivan liikaa ja niitä vastaan tietokannan ylläpitäjän paras puolustus on yleisesti rajoittaa web-sovelluksen käyttämän tunnuksen oikeuksia rankasti ja painottaa kehittäjille että käyttävät stored procedureita. Tällöin vahinko jää pienemmäksi ja keskittyy pääosin "vain" ko. sovelluksen käyttämään kantaan.
Ko. aukon avulla voidaan kuitenkin saada laajat oikeudet koko SQL-palvelimella, todennäköisesti koodia voidaan suorittaa vähintään SQL Serverin omilla ajotunnuksilla joilla SQL2K:ssa on tyypillisesti melko paljon oikeuksia.
Mitäs käytätte MS-roskaa. Tyhmästä päästä kärsii koko ruumis.
MS DBA:na saa palkkaa noin 7k€ enemmän / kk kuin MYSQL/POSTGRES Adminit joita ei voi edes tietokannoiksia sanoa. Oracle taas on turhan pienillä markkinoilla jotta siihen olisi järkevää panostaa. Tämän takia? Voinpahan asua hyvän postinumeron piirissä ylisuuressa asunnossa eikä tarvitsi olla vuokranantajan armoilla kuten sinun.
Höpö höpö. Menepäs takaisin nukkumaan pinkkiin sänkyysi lapsi, ehkä joskus vielä opit mitä t-i-e-t-o-k-a-n-t-a tarkoittaa.
Maailman suurimmat tietokannat pyörivät MySQL:llä ja Oraclella, ei millään MS:n pellesysteemeillä. Esimerkiksi Google. Googleta vaikka asiasta. MySQL:n sivuilla lisää referenssejä.
Kohtaan työssäni aika laajaa kirjoa tietokantoja (mm. SyBase, Informix, Solid, Oracle, SQL Server, MySQL ja UDB/DB2). Näistä mainituista MySQL ja (ent.) Solid eivät paini samassa sarjassa muiden kanssa kun puhutaan absoluuttisesta tiedon eheydestä ja transaktioiden hallinnasta. Myös monissa muissa ominaisuuksissa on paljon toivomisen varaan (suuri joukko joko rajoittuneita, epästabiileja tai kokonaan puuttuvia)
MySQL:n etuna on hinta ja sitä käytetään suurissakin integraatioissa (mm. Google) hajautettuna tai replikoituna hakukantana, varsinaisessa transaktiokäytössä ko. implementaatiot harvemmin ovat. MySQL ei täytä riittävällä tasolla rahanarvoisia tapahtumia käsittelevien sovellusten teknisiä tarpeita ja sen (ammattimaisen) teknisen tuotetuen kapasiteetti on osoittautunut käytännössä varsin rajalliseksi. Hinta on myös yritysmaailmassa melko suhteellista, isommalla hankkella on miljoonien budjetti ja käyttöönoton jälkeenkin jopa kymmenien tuhansien eurojen kuukausibudjetti joka koostuu laitteistosta, lisensseistä ja henkilötyöstä jne. Tällöin ei ole paljoa merkitystä maksaako kantamoottori 0 EUR vai 40K EUR, kunhan se on riittäävn luotettava (eli vastaa käyttötarkoitusta) ja tukipalvelut toimivat moitteettomasti (IBM:llä, MS:llä ja Oraclella toimivat, MySQL:llä on tällä saralla todella paljon opittavaa).
Nyt kun päätit valita MS:n tuotteen haukuntasi kohteeksi niin voin siitä valaista sen veran että teknisesti esim. SQL Server 2005 on huomattavasti MySQL:n kaikkia tähän mennessä julkaistuja versioita edistyneempi tuote. Jos kyseessä on kriitisempi pieni/keskisuuri tietokanta niin SQL 2K5:en on validimpi vaihtoehto (joissain erityistapauksissa myös Sybase). Jos kyseessä on järeämpi sovellus, voidaan tarpeen mukaan siirtyä Oraclelle tai DB2:lle mutta SQL Server selviää kunnialla myös tera-luokan analyysikannoista.
Myös MySQL kehittyy koko ajan ja sen käyttö on lisääntynyt hurjasti vähemmän kriittisessä käytössä. Sen käytön ennustetaan lisääntyvän lähivuosina entisestään yrityspuolella, lähinnä juuri noissa low-tier kannoissa joista järeämmät kantamoottori (vihaamasi SQL Server mukaanlukien) noutavat tietoa varsinaista OLTP- tai OLAP-prosessiaan varten.
Kaikista mainitsemistani kannoista sovelluskehitys on helpointa SQL Serverille (se joka väittää toisin ei ole todennäköisesti tehnyt työkseen sovelluskehitystä kovin laajalle kantakirjolle tai on muuten vain "sydämen asialla"). Tästä johtuen erittäin suuri joukko yritysmaailmassa käytössä olevista sovelluksista on rakennettu SQL Serverin varaan joten argumenttisi että "MS:n pellesysteemiä" ei tulisi käyttää on aika kaukana todelisuudesta. Huomautetaan nyt myös siitä tosiasiasta että jokainen kantamoottorin tarjoaja esittelee mielellään vaikka jos jonkinmoista referenssiä, puoluettomia referenssejä on vaikea löytää (ja jokaisen toimittajan mukaan heidän ratkaisunsa on paras).
Kaikki yllä olevat väittämäni perustuvat henkilökohtaiseen näkemykseeni mutta niille löytyy reilusti myös objektiivista viitemateriaalia googlettamalla. Mielestäni väittely jonkin tuotteen paremmuudesta/huonommuudesta on vain merkki kapeakatseisuudesta ja osoittaa vain kirjoittajansa naiiviutta asian suhteen. Jos asiasta haluaa argumentoida niin kannattaa ensin tutustua kunnolla asian molempiin puoliin omakätisesti ja ryhtyä vasta sitten jakamaan "valistuneita näkemyksiä", tuolloinkin rajaamalla ne räikeimmät tunnepitoiset kommentit keskustelun ulkopuolelle. Tämä pätee myös siihen kaveriin joka kehui MS DBA:n saavan 7K EUR / kk enemmän kuin "MYSQL/POSTGRES Adminit" (en tunne henk.koht. montaakaan DBA:ta joka tienaisivat edes tuon 7K EUR / kk ja kaikki heistä tuntevat useampia tietokantamoottoreita ja saavat rahallisen kompensaationsa liiketoiminnallisten vastuidensa vuoksi tuoteperheestä riippumatta).