"Backdoor" a QuickTime-ban

Címkék

A számítógépes biztonsággal foglalkozó Ruben Santamarta egy érdekes sebezhetőségre hívta fel a figyelmet nemrég. Az Apple QuickTime szoftverének ActiveX plugin-jában egy ledokumentálatlan paraméter található, amely lehetővé teszi a támadó számra, hogy az kártékony kódot injektáljon az áldozat rendszerére. Santamarta "backdoor"-ként ír róla, de megemlíti, hogy itt nem a klasszikus rosszindulatú kódra kell gondolni, hanem a fejlesztési ciklusban a fejlesztő által elkövetett "szörnyű trükk"-re. Az exploit a Windows XP-t vagy Windows 7-et plusz Internet Explorer-t és Apple Quicktime 7.x, 6.x (a 2004-es verziót is) szoftvert futtatókat érinti.

A sikeres támadás végrehajtásához mindössze rá kell venni a potenciális áldozatot, hogy meglátogassa a megfelelően preparált weboldalt. A Santamarta által írt exploit ellen nem nyújt védelmet sem a Data Execution Prevention (DEP), sem az Address Space Layout Randomisation (ASLR).

A szóban forgó _Marshaled_pUnk paraméter úgy tűnik véletlenül maradt benn a QuickTime-ban. Egy olyan függvény "maradéka", amely függvényt Santamarta egy 2001-es verziójú QuickTime-ban talált meg utoljára. Az Apple eltávolította a függvény a későbbi verziókból, de úgy tűnik, hogy a paraméter felett átsiklottak. Mivel a paramétert eredendően szándékosan implementálták, feltehetően programozási hiba miatt található meg a mostani QuickTime verziókban, így klasszikus backdoor-ról nem beszélhetünk.

Javítás még nincs. Óvintézkedésként az "Az ActiveX-vezérlők futtatásának megakadályozása az Internet Explorer böngészőben" jöhet szóba.

A részletek itt és itt.

Hozzászólások

Skilles, skilles Apple kóderek. Sej.

iTunes nincs QuickTime nélkül. Viszont akkor az összes IE-t használó Windows-os iPhone tulajdonos érintettnek látszik.

--
trey @ gépház

Azert a tobbitol sem kell hasra esni. Pillanatnyi kedvencem ez a 2004-es keltezesu, a kernelben 2009 ota letezo aranyos kis joszag az omap nand driverbol:

    
/* Read from ECC Control Register */
val = __raw_readl(info->gpmc_baseaddr + GPMC_ECC_CONTROL);
/* Clear all ECC | Enable Reg1 */
val = ((0x00000001<<8) | 0x00000001);
__raw_writel(val, info->gpmc_baseaddr + GPMC_ECC_CONTROL);

Meg a 2.6.35-ben is benne van, persze szuletett erre is patch ami fixalna, hirtelen nem talalom, de "termeszetesen" valahogy elkallodott.

Allitolag igy lenne helyes:


val = gpmc_register_read(sc->sc_gpmcsc, GPMC_ECC_CONTROL);
/* clear ecc, select ecc register 1 */
val &= ~ECCPOINTER;
val |= ECCCLEAR | MASKEDINT(ECCPOINTER, 1);
gpmc_register_write(sc->sc_gpmcsc, GPMC_ECC_CONTROL, val);

ECC check pwned minden TI hardveren futo disten.

Persze tudok vicces kodot mutatni Darwin/IOKitben es a FreeBSD/tun driverben is.

(thx to Replaced)

---
pontscho / fresh!mindworkz

Tehát ez egy kb. kilenc éves csontváz. Még fejlődő korban van. :-) Most csak az a kérdés hogy már eddig is szívatták-e a fölhasználókat ezen keresztül. Vagy csak ezután fogják a mostani hír láttán. Mert ugye hiába fogja kiadni a cég a javítást ha nem fog mindenki frissíteni, viszont a sötét arcok biztosan írnak rá kódot.