Üdvözlet a kitartó olvasóimnak!
Gyakran találkozom fórumokon azzal a véleménnyel, hogy a GNU/Linux azért biztonságos és mentes a kártevő programoktól, mert viszonylag kevéssé elterjedt, így nem kerül a támadók célkeresztjébe. Valójában ez is egy érv, és helytálló, de ha kizárólag ezt tekintjük indoknak, akkor elsiklunk a lényeg felett.
Nemrég (na jó, viszonylag régen) azt találtam mondani egyik fórum témában, hogy a kevés elterjedtség pusztán a 15. érv arra, hogy miért tekinthető biztonságosnak és immúnisnak a GNU/Linux. Miért is roppant nehéz feladat rosszindulatú támadó programot írni és terjeszteni. Most megpróbálok összeszedni néhány érvet arra vonatkozóan, hogy miért is gondolom én ezt így. Igyekszem majd a közérthetőség és a szakmai korrektség mezsgyéjén egyensúlyozva kifejteni érveimet.
Persze lehet, hogy egyes kérdésekben tévedek, vagy más érvek és szempontok is lehetségesek. Ezt nyugodtan megvitathatjuk hozzászólásokban.
Arra viszont nyomatékosan kérek minden hozzászólót és érdeklődőt, hogy a - sajnos - szokásossá vált vitákat ne itt folytassák! Legyen ez a GNU/Linux rendszerek biztonságáról szóló írás és topik. Koncentráljunk erre a dologra. Köszönöm.
1. érv
A rendszergazda
A root nevű felhasználó minden erőforráshoz hozzáfér. De a sima felhasználók nem. Ez a két szerep a kezdetek óta szigorúan elkülönül egymástól. Így a rendszer beállításaihoz csak a megfelelő jelszó ismeretében férhet hozzá bárki.
2. érv
Minden fájl
A rendszerben minden ami létezik - hardveres és szoftveres értelemben is - leképeződik egy fájlban. Beilleszkedik a fájlrendszerbe és jogosultságot kap.
3. érv
A jogosultságok rendszere
Vagyis DAC - discretionary access control. Ennek lényege, hogy minden fájl - tehát minden eszköz lásd: 2. érv - jogosultságokat kap. Mindennek van tulajdonosa, csoportja, és persze ott vannak a többiek. Ezek háromféle jogosultságot kaphatnak: olvasás, írás, végrehajtás. Ez a módszer biztosítja, hogy megfelelően el legyenek osztva az egyes erőforrások, rendszer beállítások. Mint feljebb jeleztem, nem férhet bárki hozzá a kényes beállításokhoz. Ahhoz külön jogosultság szerzés kell.
4. érv
Csoportok
Ahogy a 3.-ban láttuk, az egyes fájlok hozzáférésénél meg van határozva a csoport is. Ilyen csoportokba oszthatók be a felhasználók. Így egyszerűsítve az adminisztrációt és feladatok/erőforrások hozzáférésének kiosztását.
Érdemes itt hozzátenni, hogy vannak alapelvek és szokások, amik mentén elkészülnek az ilyen besorolások. Ezzel nem kell törődnie a felhasználónak. Már eleve adottak, mint az itt felsorolt érvek többsége.
5. érv
SELinux
Sokan mégis elégedetlenek ezzel a rendszerrel, mert nem ad lehetőséget finomabban meghatározni a jogosultságokat. Szigorúbban védeni kényes erőforrásokat és feladatokat kiosztani illetve hozzáféréseket szabályozni. Az egyes folyamatok mindenképpen az indítójuk jogosultságával fut, és egy programhiba könnyen problémákat okozhat. Ezt hivatott megelőzni a MAC Mandatory Access Control rendszer, aminek lényege, hogy a rendszerben mindenki számára - a rootnak is - kötelező szabályokat definiál. Ennek egyik leg fejlettebb képviselője a SELinux. Belátható, hogy segítségéve tovább szigoríthatjuk a már amúgy is kemény szabályozást.
6. érv
Tűzfal
Az internetes támadások kivédése érdekében már régóta ismertek a tűzfal programok. A Linux kernel nagyjából a 2.2-es változat óta beépítetten tartalmaz tűfalat, melyhez számos kezelői felület készült.
Most a rendszer alapját képező biztonsági megoldások után nézzünk néhány, a felhasználói programra vonatkozót.
7. érv
Csomagok
Minden GNU/Linux terjesztéshez a készítők mellékelnek program csomagokat. Ezeket igyekeznek minden lehetséges igény kielégítésére válogatni. Tehát a felhasználónak nem kell külön - az esetek majd döntő többségében legalábbis - keresgélniük és eldönteni, mely programok elég megbízhatóak. Ezen kívül a csomagok ellenőrzött, megbízható forrásból származnak...
8. érv
gpg kulcsok
... tehát biztosak lehetünk abban, hogy azt a programot és úgy kapjuk kézhez, ahogy azt a disztribútor a felhasználóknak szánta. Ezt az ellenőrzést a gpg kulcsok rendszere biztosítja. A csomagkezelés ezen kívül még a rendszer frissítését is biztosítja...
9. érv
Teljes rendszerfrissítés
... tehát biztosak lehetünk benne, hogy a hivatalos forrásból származó összes programunk hibajavításait és újabb verzióit eljuttatja hozzánk a disztribútor a támogatási időszakban. Ez igaz gyakorlatilag a rendszer minden részére és alkalmazására.
10. érv
Távoli rendszer konfiguráció
A csomagkezelés arra is lehetőséget biztosít, hogy a felhasználó programjait és magát az operációs rendszer konfigurációját is - amennyiben ez indokolt - módosítsák a készítők.
11. érv
Programok módosítása
A felhasználói programok javítását nem csak azok készítői láthatják el, hanem bizonyos esetekben maguk a disztribúció készítői is. Ha egy rendkívül fontos alkalmazást csak lassan javítanak, akkor a disztribútorok is belejavíthatnak és eljuttathatják a felhasználóhoz. Erre ad lehetőséget a GNU/Linux rendszerekhez mellékelt legtöbb program nyílt forráskódja.
Most egy kevésbé technikai, inkább emberi/szemléleti indokokhoz jutottunk ezzel a legutóbbival. Lássuk melyek ezek:
12. érv
Nyílt forráskód
A legtöbb program nyílt forráskódja lehetőséget ad a könnyebb hibakeresésre és javításra, akár az eredeti készítő nélkül is. Kritikus fontosságú programok esetén ez meg is történik, hiszen gyakori, hogy a disztribúció készítői javítanak a programon majd eljuttatják azt a felhasználóiknak és a nyilvánosságnak is.
13. érv
Nyitott fejlesztési modell
A nyitottság nem csak a programok kódjára vonatkozik, hanem a fejlesztésre is. Bárki csatlakozhat a legtöbb projekthez akár munkával, akár hibák felderítésével. Ha valaki hibát, biztonsági rést fedez fel, azt könnyen publikálhatja, vagy javíthatja illetve egyszerűen csak jelezheti a felhasználóknak, vagy akár az egész nyilvánosság felé is. Ez nagyon fontos, mivel a hibák nem maradhatnak eltitkolva. Valamint a javítások is könnyebben és gyorsabban elkészülhetnek, ha azokat egy világ méretű közösség figyelemmel követheti.
14. érv
Egyszerűség
Avagy: kiss, keep it simle and stupid. Ez egy jellemző hozzáállás a UNIX szerű rendszerek fejlesztésénél. Jelentése kibontva az, hogy a program legyen egyszerű és átlátható. Tudjon minél kevesebbet, de azt nagyon. Legyen sok program kevés funkcionalitással. Miért is lényeges ez? Mert, ha kevés a funkció, kevesebb a hibázási lehetőség. Ez természetesen nem azt jelenti, hogy kevesebb dolgot lehet megcsinálni GNU/Linux alatt, hanem azt, hogy minden feladatra más eszköz áll rendelkezésünkre.
+1 a 15. érv
Óh, igen. Kevéssé elterjedt a rendszer, így kevéssé van a kártevő készítőinek szeme előtt.
Várom az észrevételeket kérdéseket, javaslatokat.
V