István, Vajk
19 °C
33 °C

A Google megsértette a Windows felhasználói szerződését?

2008.09.24. 10:40
A Google böngészőjét a megjelenése óta eltelt pár hétben nem csak a hackerek és tesztelők próbálják darabjaira szedni, de kíváncsi programozók is. Az ő dolguk a legkönnyebb, hiszen a Chrome programkódjának nagy része nyílt forráskódú, így bárki letöltheti, és kedvére módosíthatja.

Scott Hanselman, a Microsoft programozója vette észre először, és tette közzé a blogján azokat a furcsaságokat, amiket a forráskódban talált. A Microsofttól származó, egyébként szabadon felhasználható kódrészlet a Chrome-ban még csak szimpla érdekesség, a nagyobb port kavaró sorok nem is a kódban, hanem a programozók egymás számára hagyott megjegyzéseiben van. Néhány helyen ugyanis a programsorok mellett olyan megjegyzések találhatók, hogy itt a program a Windows nem dokumentált jellegzetességeit használja, amikre a Vista SP1-es szervizcsomagjának visszafejtésével bukkant rá a programozó. Ez viszont olyasmi, amit a Windows felhasználói szerződése szigorúan tilt. De nem csak a Microsofté, általában a szoftveriparban tiltani szokták ezt, maga a Google is tiltja a Chrome esetében.

Visszafejtésnek (disassembling, vagy revesre engineering) azt nevezik, amikor egy futtatható programfájlból kinyerik az eredeti forráskódot, és ezzel a program működésének leírását lépésről lépésre. Mivel egy futtatható program úgy születik, hogy egy fordítóprogram, az assembler a programsorokból gépi kódot, a processzor számára értelmezhető egyeseket és nullákat állít elő, általában a visszafejtés sem ördöngösség, csak a megfelelő disassembler programot kell használni hozzá.

A Google tagadja, hogy a programozói visszafejtették volna a Windows forráskódját, és azzal védekeznek, hogy a szóban forgó megjegyzések a kódrészletekkel együtt egy az egyben az Uninformed nevű, nyílt forráskódú szoftverfejlesztéssel foglalkozó online magazinból kerültek a Chrome-ba.

A dolog iróniája, hogy a nem dokumentált Windows-trükköket használó sorok éppen a felhasználó biztonságát szolgálják, és a Windows egyik régi biztonsági résének befoltozása végett kerültek a programba. A DEP (Data Execution Prevention) mód bekapcsolásáról van szó, ami a memóriaterületek kezelését teszi rendbe. Eredetileg ha a Windowsban egy program memóriát foglal le azoknak az adatoknak, amivel dolgozik, a memóriát vagy olvasható, vagy írható módban jelöli ki magának. Ha olvashatónak jelölte meg, az azt jelenti, hogy az ott tárolt programkódot futtatni is tudja. Ezt használták ki a túlcsordulásos (buffer overflow) trükkök, amikor a támadó egy ilyen memóriaterületre csempészi a rosszindulatú kódot, ami az adatok beolvasásakor rögtön végre is hajtódik.

A DEP mód ezt a rendszert azzal egészíti ki, hogy vannak írható, olvasható, illetve olvasható+végrehajtható módban lefoglalt memóriaterületek. A DEP módot azonban külön be kell kapcsolni egy folyamat elindításakor (mivel a régebbi programok nem ismerik, nem lehetett ezt alapértelmezett módnak megtenni), és a Chrome a DEP bekapcsolásához használ egy olyan metódust, ami gyorsabb, mint normál mód - de hivatalosan nem létezik, csak a Windows forráskód visszafejtésével lehet rájönni, hogyan kell csinálni.

Szakértők szerint kicsi az esély, hogy a Microsoft pert indítson, vagy botrányt kavarjon az ügy körül, és az egész csupán egy újabb illusztráció ahhoz, hogy a nyílt forráskód mennyivel kulturáltabb, és a felhasználók érdekeit előtérbe helyező megoldás.