Lapsus koodissa vaarantaa QuickTime-käyttäjät
Espanjalainen tietoturvatutkija Rubén Santamarta huomasi suositussa QuickTime-sovelluksessa haavoittuvuuden. Se koskee ohjelmiston versioita 7.x ja 6.x, jos käytössä on Windows XP, Windows Vista tai Windows 7 ja Internet Explorer.
Apple ei ole aukkoa vielä korjannut, mutta Metasploit-haavoittuvuustestaustyökaluun on julkaistu haavoittuvuutta hyödyntävä moduuli. Se perustuu Santamartan hyökkäyskoodiin.
Tutkijan selvitys on varsin tekninen, mutta hän tekee pari asiaa selviksi. Hyökkäyskoodi päihittää Windowsin kaksi avainsuojausta ASLR:n (address space layout randomisation) ja DEP:n (data execution prevention).
Haavoittuvuuden syyksi hän epäilee huolimatonta koodintarkistusta. Näyttää siltä, että aikaisemmin tarvittu, mutta uudemmissa QuickTimeissa tarpeeton koodinpätkä on vain jäänyt osaksi sovellusta.
– Veikkaan, että joku unohti siivota koodin, Santamarta pohtii.
Huolimaton koodaus on ollut laajemminkin esillä tietoturvapiireissä viime viikkoina, kun lukuisat Windowsin sovellukset paljastuivat haavoittuviksi niin sanotulle dll-bugille.
QuickTimen voi pakottaa
ajamaan haittakoodia
Viestintäviraston tietoturvayksikkö Cert-fi on myös tiedottanut QuickTimen aukosta. Yksikön mukaan ongelma on ActiveX-komponentissa QTPlugin.ocx. Hyökkääjä voi pakottaa ohjelman siirtymään tiettyyn muistipaikkaan ja siten suorittamaan haluamaansa ohjelmakoodia.
Haavoittuvuus mahdollistaa hyökkääjän koodin suorittamisen Internet Explorerin kontekstissa, jos käyttäjä vierailee selaimella haitallista sisältöä sisältävällä www-sivulla tai avaa haitallisen tiedoston.
Uhkan torjumiseen on tarjolla väliaikainen kill bit -ratkaisu.
































Kommentit (10)
Huolimattomuus eli huono laatu on ihan tyypillistä lähes kaikelle ohjelmoinnille. Tuskinpa montaakaan ohjelmataloa kiinnostaa laatu kun "roskallakin" saa liikevaihtoa. Ja sitten tyhmimmät asiakkaat uskovat vielä markkinointi höpinää.
Tuo on siten itse koodiin jäänyt virhellinen toiminto, jolla voi murron tehdä. Tätä vastaan ASLR tai DEP eivät suojaa kun kyseessä on ohjelman oman toiminto eikä puskuriylivuoto.
Huolimattomuusvirheitä syntyy etenkin, jos koodia on tuhansia ellei miljoonia rivejä. Toki tässä tapauksessa laadunvarmistus on se vaihe missä useimmat vastaavat siivotaan pois. Kyse on vain kustannuksista ja kuinka paljon on varaa laittaa koodin laadunvalvontaan ja sen kirjoittamiseen. Muistaakseni IBM:n arvio yhden koodirivin hinnaksi $10-20, jokainen voi siintä laskea, että esimkerkisi pelkässä linux kernelissä on jo ~14 miljoonaa koodiriviä.
Mitä tuohon windowsin dll haavoittuvuuteen tulee niin, en ymmärrä miksi vastuuta on sysätty sovelluskehittäjille - tilannehan olisi täysin järjetön, jos pitäisi tietää etukäteen tarkka polku kirjastoon (eli pitäisi toisin sanoen liittää kaikki kirjastot asennuksen mukaan, jopa windowsin omat?). Itse kannattaisin kaiken koodin allekirjoitusta ja kirjastojen versiointia+allekirjoitusta, jonka voisi sitten omassa koodissa varmistaa oikeaksi.
Ehkä se sitten seuraavaan windows versioon tulee. :) Linuxissahan on täsmälleen sama "ongelma" ulkoisten kirjastojen kanssa.
Miksi ne kustannukset pitää siirtää ohjelmiston hankkineelle asiakkaalle? Kyllä se heikko laatuinen ohjelmisto aiheuttaa käyttäjälleen ylimääräisiä kustannuksia. Ohjelmistotalot saisivat ottaa laatu vastuuta myös itselleen.