Cikkemben azt vizsgálom, milyen hatással van az egyes operációs rendszerek védelmére az, hogy milyen forráskóddal rendelkezik az adott program. Elsősorban Debian alapú Linux és Microsoft Windows operációs rendszerek vizsgálatát végzem el, leginkább az ellenük irányuló támadások típusa és minősége függvényében. Fentiek mentén szó lesz ezek civil, szervezeti és katonai szintű alkalmazásáról, a különböző támadások elleni hatékony védekezés módjáról, mindazon metodikákról, amelyek elősegítik a rosszindulatú támadások elleni védelmet. A fentiek mentén tehát nem elkerülendő a különböző definíciók bemutatása, és alapvetően a támadási felületekkel kapcsolatos kifejezések tisztázása sem, hiszen azok a későbbiek során más, hasonló tartalommal rendelkező cikkek esetében is támaszként szolgálhatnak.
A jelenlegi geopolitikai helyzetben Magyarországon, de alapvetően Európa- szerte mindenhol komoly figyelem összpontosul a kiberbiztonságra. Az ukrán-orosz konfliktus egyik legfontosabb műveleti tere a kibertér, amely az európai szankciók kapcsán is komoly szerephez jut. Cikkek százai, ezrei találhatók a témában az interneten, sőt, a közösségi média felületeinek hála már keresni sem igazán kell őket. Ami biztos azonban, hogy ahol felüti a fejét a digitalizáció, a technológiai fejlődés, ott előbb-utóbb óhatatlanul is összeakad a kiberbiztonság témakörével az olvasó. Ha már úgyis operációs rendszerekről lesz szó, érdemes ezzel kapcsolatban átnézni a Microsoft definícióját.
Amint az cikkem címéből már világossá vált, jelenlegi témám a nyílt és zárt forráskódú operációs rendszerek vizsgálata kiberbiztonsági szempontok alapján. Ehhez szükséges megvizsgálni néhány alapvető fogalmat, elsőként a forráskódét. Erre számos formát találni, az egyszerűség és könnyű hozzáférhetőség miatt a Wikipédia vonatkozó szócikkét tartom hasznosnak elolvasni erről.
?Forráskódon (angolul: source code) egy olyan szöveg értendő, ami egy leíró nyelv jelöléseinek vagy egy programozási nyelv definícióinak és/vagy utasításainak sorozatát tartalmazza. Az elnevezés arra utal, hogy az ilyen szövegek létrehozásának a célja az, hogy forrásai legyenek egy fordítóprogramnak vagy interpreternek, és végül megjelenjen valamilyen dokumentum, vagy létrejöjjön egy szoftver.?
Jon Smajda szerint a nyílt forráskód használata megegyezik az egyenlő felek közötti együttműködés elképzelésével. Informatikai szinten mára a társas élet számos egyéb területére kiterjedt a hadviseléstől a várostervezésen át a gyógyászatig. De mi is az a nyílt forráskód?
?Az Open Source Initiative meghatározása szerint az OSS nem egyszerűen ingyenes szoftvert, illetve a program forráskódjának szabad hozzáférhetőségét jelenti, hanem előírásokat is a kód jövőbeli felhasználására, módosítására és a származtatott szoftverekre ? de személyekre, csoportokra vagy alkalmazási területekre vonatkozó megkülönböztetések nélkül.?
A fentiek mentén nem nehéz értelmezni a zárt forráskódú szoftver definícióját, amely szöges ellentéte az előző meghatározásnak, ennélfogva a forráskód magántulajdon részét képezi, vagyis nem módosítható, fejleszthető a tulajdonos engedélye nélkül, azt semmilyen formában más nem használhatja, kivéve, ha a tulajdonos erre kifejezetten engedélyt ad.
Adott zárt forrású program felhasználása és módosítása azonban két külön dolog, fontos tehát leszögeznem, hogy ebben az esetben, például operációs rendszer vásárlásakor, pusztán a használati jogot kapjuk meg, tulajdonjogot nem szerzünk a kód felett. Az egyes programok vásárlásakor a jogi kötelmeket általában licenc szerződésben közlik.
A szakirodalom az operációs rendszerek csoportosítását forráskód szerint is számontartja. Ennek oka, hogy mind a zárt, mind a nyílt forrású programok rendelkeznek bizonyos előnyökkel és hátrányokkal, melyeket élelmes hackerek könnyűszerrel kihasználhatnak. Ha már itt tartunk, alapvetően nem is gondolná az ember, mekkora szerepe is van a hackertársadalomnak a nyílt forráskódú szoftverek evolúciójában. Pedig ahogyan Mátyus Imre írásában is tájékozódhat róla az érdeklődő, a hackerek komoly ideológiai és etikai határok mentén végzik teendőiket. Persze vannak kivételek, de ahogyan ma is léteznek ?etikus hackerek?, úgy a ?90-es években is voltak olyan informatikus szakértők, akik elsősorban a fejlesztés szabadságáért, az információ szabad áramlásáért harcoltak, sőt harcolnak ma is.
Hogy párhuzamot vonhassak fentiek és a jelen eseményei között, érdemes közelebbről megnézni az Anonymous nevű hackercsoport tevékenységét, amellyel az orosz agresszió ellen harcolnak az ukrán nemzet oldalán. Anélkül, hogy a részletekbe belemennék, kijelenthetem, hogy fentiek remek példával szolgálnak arra vonatkozóan, hogy a hackereknek is rendelkeznek belső értékrenddel, etikával és erkölcsi nívóval, még ha ez nem is mindig egyezik a társadalom aktuális elvárásaival.
Visszatérve a nyílt és zárt forrású operációs rendszerekre, lássuk tehát a zárt forráskóddal kapcsolatos észrevételeket. A zárt forráskóddal rendelkező szoftverek nem rendelkeznek folyamatos védelemmel egy hackertámadással szemben, ennek oka, hogy csak a tulajdonos ismeri a teljes kódot, tehát csak ő tud javításokat, ú.n. patcheket fejleszteni, amelyekkel időtállóvá lehet tenni a programokat a külső támadásokkal szemben. Ez máris egy komoly hátrány, hiszen, ha egy zárt forrású szoftverhez félévente csak egy javítás érkezik, azalatt a fél év alatt az addig meglévő hibákat szünet nélkül ki lehet használni, ennek leglátványosabb példája a Microsoft Windows operációs rendszere, de nincs másként az Android és MacOS esetében sem. Utóbbi kettő esetében a kép jóval árnyaltabb a megszokottnál. Míg az Andriod alapvetően a nyílt forrású Linux rendszeren alapul, számos zárt forrású adalékkal rendelkezik, a MacOS rendszertöltője és kernel magja nyílt, azonban az arra épülő elképesztően vaskos API már zárt.
Voltaképpen a fentiek ismerete akkor szükségszerű, amikor arra keressük a választ, miért létezik Windows rendszerre olyan sok kártevő, míg a Linuxra alig találni párat? Persze a válasz itt sem egészen fehér vagy fekete, erről még a későbbiekben lesz szó.
Mivel én alapvetően a kiberbiztonsági részekre fogok kitérni, álljon itt egy ábra Répási Sándor remek cikkéből, amelyből még a későbbiek folyamán fogok idézni.
1. ábra A nyílt és zárt forrású szoftverek jellemzői. Forrás: Répási Sándor: Kritikus információs infrastruktúrák védelme nyílt forráskódú kiberbiztonsági szoftverek segítségével. In: Bolyai Szemle 2016/2. 40.
Nyílt forrású szoftvereknél, amint az látható a fenti ábrán is, igen sok előnyt és hátrányt különböztetünk meg, azonban véleményem szerint az előnyök messze túlmutatnak a hátrányokon. A legnépszerűbb nyílt operációs rendszer, a Linux például egyre nagyobb népszerűségnek örvend hazánkban, bár ahogyan már említettem, a gamer-kultusz és a játékok DirectX függősége miatt még sokáig nem kell attól tartani, hogy a Windows kimegy a divatból. A Linux nagyjából olyan, mint egy nyílt forrású szoftverekből álló kirakós, ahol minden darabot magunk szabhatunk formára egészen a kernel és a rendszerbetöltő kiválasztásától az utolsó asztali elemig (feltéve, hogy szeretnénk desktop felületet).
A nyílt forrású operációs rendszer egyik legnagyobb védelmi erőssége abban rejlik, hogy ?ahogyan azt a fenti ábrán is láthatjuk? magas a közösségi támogatása, ebből adódóan tehát folyamatos ellenőrzés alatt van. Könnyen elképzelhető, mi történne, ha egy létező rendszerelem sebezhetőségére írnánk egy kártékony kódot; mire odajutnánk, hogy használatba helyezzük, addigra jóeséllyel egy szaktárs programozó már észlelte és javította is a hibát, és ezzel meg is válaszoltuk feltett kérdésünket. De ha nem is azonnal, a népszerűbb platformok (mint a debian-alapú linux disztribúciók) esetében órákon belül felfedezik és kijavítják a hibát. A másik komoly probléma a biztonsági célú kódelemzés. Mivel a zárt rendszer forráskódja nem nyilvános, nem lehet tudni, milyen sorokat tartalmaz, amelyek esetleg harmadik félnek továbbítják adatainkat tudtunk nélkül, vagy egyéb módon szolgáltatják ki adatainkat a külvilágnak. Éppen ezért manapság a felhasználói tudatba is kezd beszivárogni az a felfogás, hogy minél több nyílt forrású alkalmazást használjunk, hiszen azokon jóval kisebb a biztonsági kockázat.
A képen láthatjuk, milyen adatokat kötnek a felhasználókhoz az egyes chat és közösségi média alkalmazások. Látható továbbá az is, hogy míg a zárt forrású Messenger alkalmazás szinte minden létező adatot rögzít, addig a Signal például szinte semmit, ami a felhasználóhoz köthető. Ebből egyértelműsíthető, hogy azok az alkalmazások, amelyek forráskódja nyilvános, jóval kisebb eséllyel próbálják meg becsapni a felhasználót annak érdekében, hogy illetéktelen adatokhoz jussanak. Természetesen azoknak a programoknak sincsenek 100%-os védelmi paraméterei, amelyek nyíltak. A példaként használt Signal nevű alkalmazást is feltörték már, elvégre gyengesége, hogy két végpont között titkosítja a forgalmat, tehát ha a bármelyik fél eszköze eleve kompromittálódott, vajmi keveset ér az egész. Erről többek között itt lehet érdekességeket olvasni.
Az operációs rendszerek kiberbiztonsága kapcsán a Linux és a Windows között ég és föld a különbség. Mint ismeretes, a Linux rendszer betöltését az ú.n. kernelbetöltő végzi el. Ilyen a LILO, a Grub, és még számos egyéb változata ismert. A számítógépeken található egy BIOS modul, (vagy U(EFI)) amely megkeresi ezt a kernelbetöltőt és elindítja azt, mely megfelelő működés esetén elindítja az operációs rendszer további funkcióit (a kernel általában tömörített változatban van jelen a lemezeken, így az első lépés indítás előtt annak kitömörítése).
Ha a védelem/elterjedtség arányokat vizsgáljuk, jelenleg a világelső operációs rendszer a Linux. Ismételten annak nyílt forrású és változatos jellegéből adódóan semmilyen Windows rendszer nem képes megközelíteni egy jól konfigurált és karbantartott Linux biztonságát, és ami legalább ennyire fontos, stabilitását, bár persze a Linux kernel sem sérthetetlen.
A Linux biztonságát sok egyéb metódus is szavatolja. Mint ismeretes, a Windows rendszeren minden program akár alapértelmezett alkalmazásként is futhat, sőt, indítópultba kerülve minden indításkor betölt, ami már önmagában is egy veszélyforrás. Ennek oka, hogy ha egy vírus bejut a számítógépre, automatikusan fog futni, ameddig valamilyen módon eltávolításra nem kerül. Ezzel szemben a Linux alapú operációs rendszerek esetében erre nincsen lehetőség, hiszen csak akkor fut egy program, ha a felhasználó erre kifejezett engedélyt és utasítást ad, és a kernel is jóval biztonságosabb.
A felhasználói jogkör kérdése is komoly dilemmára ad okot. Míg a Windows operációs rendszerben alapvetően rendszergazdai jogosultsággal indul a gép a telepítést követően, addig a Linux esetében a felhasználói fiók jogköre alapból alacsonyra van állítva, s amíg át nem állítja a felhasználó, semmi nem futhat engedély nélkül (átállítás után sem mindig). A rendszergazdai Windows fiók adminisztratív hozzáférést biztosít a felhasználó számára, tehát ha megfertőződik, szabadon végezheti tevékenységét a céleszközön.
A fentiek után joggal merül fel a kérdés, hogy ha tényleg ennyivel biztonságosabb a Linux és különböző disztribúciói, mi lehet az oka annak, hogy bizonyos körökben mégis népszerűbb a Windows rendszer. Ennek számos oka van. A tárgyalt operációs rendszer elterjedése megváltoztatta a világot, elterjedésével vált népszerűvé a grafikus felületet alkalmazó operációs rendszer, a már említett desktop alapú elrendezés, az egér használata és megszámolhatatlan egyéb funkció.
Az első ok talán arra vezethető vissza, hogy a kezdetekor a Linux alapú operációs rendszer komoly Unix (és alapvetően programozói) tudást igényelt a megfelelő használathoz, a Windows azonban a kezdetektől az átlagfelhasználót célozta meg. A már említett desktoppal és tálcával, amely minden Windows rendszer elengedhetetlen kelléke mind a mai napig, olyan mértékben egyszerűsítette le a digitális eszközök használatát, amely már önmagában garancia volt a sikerre (ma már számos Linux desktop verzió létezik).
A másik ok, hogy a Microsoft, mint fejlesztő cég komoly összegeket fordított PR kampányra, és a különböző eszközök gyártóival is igen magas összegű szerződéseket kötött a rendszer használatára.
Összességében szeretném leszögezni, hogy mind a Windows, mind a Linux megfelelő választás lehet akkor, ha megfelelően használjuk őket, azonban korántsem mindegy, hogy az átlag felhasználó milyen módon kerül kapcsolatba az egyes operációs rendszerekkel.
Írta: Gál Henrik Norbert
Kiemelt kép forrása: flickr.com