Miért mondják, hogy a nyílt forráskód biztonságosabb, mint a zárt? Tudnátok válaszolni néhány kérdésemre a nyílt forráskóddal és a szabad szoftverrel kapcsolatban, amit nem igazán értek?
Mindig a több szem többet lát elvre hivatkoznak, hogy világszerte felügyelnek egy projektet és így előnyben vannak a zárt forráskódú projektekkel, mert azokat csak egy meghatározott számú programozó figyelheti.
Tegyük fel, hogy egy rosszakaró ember felmegy githubra vagy gitlabra vagy akárhova, hogy megnézzen egy open source projektet magának. És mondjuk felfedez néhány biztonsági rést, de ezt nem jelenti be, hanem szépen megtartja magának, ezáltal lehetősége nyílik exploitolni azokat azokon az embereken akik azt az adott szoftvert használják. Na most ilyenkor mi van? És még csak reverse engineeringelnie sem kellett a rosszakarónak, hisz minden nyíltan ott van.
Tehát röviden, mi a garancia arra, hogy ha valaki talál egy sebezhetőséget, akkor azt jelzi a fejlesztő(k)nek és nem él vissza vele?
Ez pláne akkor veszélyesebb, ha mondjuk egy olyan projektről van szó, amit nagyon lassan fejlesztenek, tehát ritkán van rá frissítés. Ez azt jelenti, hogy a forráskódot nem sokan vizsgálgatják. Itt még nagyobb az esély arra, hogy egy black hat hacker kihasználja a sebezhetőségeket, amiket amúgy rég felfedeztek volna, ha van elég ember, aki segít az adott szoftver fejlesztésében.
Egy másik dolog. Ez már inkább a szabad szoftverekre vonatkozik. Tehát a GNU GPL (meg pl. a BSD, MIT, apache) licenc kimondja, hogy bárki szabadon módosíthatja igénye szerint az adott szoftvert és azt tovább is terjesztheti akárkinek, hogy segítsen másokat. Akkor hogy lehet ebben megbízni? Tegyük fel, hogy valaki forkol egy szoftvert, de mellé belerak egy csomó kártékony sort, ami mondjuk kémkedik a felhasználó után. Azt fogja és binárissá teszi és terjeszti valakinek, aki erről mit sem sejt. Ez megint egy érdekes dolog. Hogy bízhatunk így meg bárkiben? Honnan tudhatjuk, hogy tényleg segíteni akar és nem épp ellenkezőleg?
Aztán: Habár a GPL licenc is egy megengedő licenc, de annyi kikötése van, hogy amit GPL licencről forkolsz azt neked kötelességed GPL licenc alatt kiadni. És kérdezem én: Ezt ki ellenőrzi? Honnan tudják, hogy mondjuk én forkolom tegyük fel a LibreOffice-t és aztán kiadom zárt forráskódú licencként? Ez hogy tud kiderülni? Ki tudja ezeket leellenőrizni vagy hogy van ez?
Aztán még egy dolog: A nyílt forráskodú és a szabad játékok.
Ugye a megengedő licencek, mint tudjuk azért megengedőek, mert megengedik, hogy szabadon igény szerint módosíthatjuk és terjeszthetjük azt. Tehát ergo ha egy játékot kiadnak mondjuk GPL licenc alatt akkor én ahhoz nyugodtan készíthetek bármilyen cheatet? Aimbotot, wallhacket stb. és ráadásul még tovább is terjeszthetem ezt bárkinek?? Magyarán akkor egy GPL licences multiplayer játékban legálisan csalhatok, nem igaz? :D
Félre értés ne essék én nem ellene vagyok a nyílt forráskódnak és a szabad szoftvereknek. Szeretem őket, nap szinten többet is használok. Linuxot is mellesleg. Meg amúgy alapjában véve ez egy jó dolog, hogy szabadon tanulmányozható egy program, de biztos, hogy elég biztonságos?
Én nem vagyok szoftverfejlesztő, de furcsállom azokat, akik simán rámondják a nyílt forráskódú szoftverekre, hogy azok márpedig az biztonságosabbak, mint a zárt (proprietary) szoftverek.
Szóval ha valaki(k) jobban otthon van az ilyen licencek világában az elmagyarázhatná nekem ezeket. :)
A nyílt forráskód nem biztonságosabb!
Az alap felállásban azért mondják annak, mert "bárki" kitudja javítani ha hibát talál benne, meg lehet nézni mit csinál a program nem lehet elrejteni benne könnyedén kémkedésre alkalmas dolgokat...
DE! Valójában a nyílt forráskódú programok, így hogy bárki beletud nézni könnyedén találhat benne hibát, amit kihasználva másokat támadhat, és akár hónapokig vissza élhetnek vele mire azonosítják, és javítást kiadnak, ami fel is települ.
Tehát ezen a területen veszélyesebb!
Viszont mivel a nyílt forrású szabad szoftvernél nem költenek marketingre, nincs úgy bevétele amiből ezt megtehetnék, így nem olyan elterjedt (1-2 kivétel persze akad pl. Webes CMS rendszerek), így nem célplatform, ami pedig elterjedt ott pedig folyamatosan támadják.
A hozzáértők is ugyanígy találhatnak hibát, javítandó dolgot, amit azonnal jelezhetnek a nyílt forráskódú fejlesztőnek...
Régebben volt valamely nyíltforráskódú program esetén, hogy valamilyen feature hibásan működött (igaz biztonsághoz nem volt köze), jelezve lett a fejlesztőnek, másnap már hibátlanul műküödött. Zárt forráskódú programnál ezt nemt udod megtenni, túl nagy a cég ahhoz, hogy 1-2 felhasználó jelentéktelen panaszaival foglalkozzankak.
"Tegyük fel, hogy egy rosszakaró ember felmegy githubra vagy gitlabra vagy akárhova, hogy megnézzen egy open source projektet magának. És mondjuk felfedez néhány biztonsági rést..."
Ez a gondolatmenet ott hibádzik, hogy a legritkább esetben fog bárki megtalálni egy hibát csupán azáltal, hogy nézegeti a forráskódot. Az ilyen hiba valami nagyon banális, nagyon egyszerű hiba lehet, amit a legalapvetőbb tesztek kiszűrnek.
A hibák a legtöbb esetben tesztek a használat során derülnek ki, innentől fogva a forráskód megléte vagy nem megléte teljesen mindegy, hisz nem a forráskódot használod, hanem a binárist.
"Ez pláne akkor veszélyesebb, ha mondjuk egy olyan projektről van szó, amit nagyon lassan fejlesztenek, tehát ritkán van rá frissítés. Ez azt jelenti, hogy a forráskódot nem sokan vizsgálgatják. Itt még nagyobb az esély arra, hogy egy black hat hacker kihasználja a sebezhetőségeket, amiket amúgy rég felfedeztek volna, ha van elég ember, aki segít az adott szoftver fejlesztésében."
Ez ugyanúgy érvényes zárt forráskodú, elavult programokra is. Nem véletlenül mondjuk el sokszor, hogy manapság XP-vel, Vistával, Windows 7-tel nem szabad netre menni.
"Tegyük fel, hogy valaki forkol egy szoftvert, de mellé belerak egy csomó kártékony sort, ami mondjuk kémkedik a felhasználó után. Azt fogja és binárissá teszi és terjeszti valakinek, aki erről mit sem sejt. Ez megint egy érdekes dolog. Hogy bízhatunk így meg bárkiben? Honnan tudhatjuk, hogy tényleg segíteni akar és nem épp ellenkezőleg?"
A kérdés az, hogy ha kapsz valakitől egy zárt forráskodú programot, honnan tudod, hogy van-e benne kártevő. Mert ha te kapsz egy binárisan terjesztett programot forráskód nélkül, akkor gyakorlatilag egy zárt forráskódú programot kapsz, függetlenül attól, hogy az egy nyílt forráskódú program forkja.
De az általad felsorolt licencek közül egynémelyik azt is kimondja, hogy kötelességed a bináris mellé a forrást is odatenni.
Egyébként bármelyik zárt forráskodú programot meg lehet fertőzni kártékony kóddal.
"Ugye a megengedő licencek, mint tudjuk azért megengedőek, mert megengedik, hogy szabadon igény szerint módosíthatjuk és terjeszthetjük azt. Tehát ergo ha egy játékot kiadnak mondjuk GPL licenc alatt akkor én ahhoz nyugodtan készíthetek bármilyen cheatet?"
Készíthetsz, de egy normálisan megtervezett program esetén ebben nem lesz segítségedre a nyílt forráskód. (Ha csak nem módosítod a szerver forráskódját is és nem magad üzemelteted a szervert, persze.) Tegyük fel, te módosítod a játék kliens fájlait, újrafordítod és csatlakozol a szerverre. Ebben az esetben, ha a szerverben van hash ellenőrzés, egyből kiszúrja, hogy neked bizony mókolt fájlaid vannak, és fel sem enged.
Vagy ha a szerver úgy van megírva, hogy eleve el sem küldi azon játékosok paramétereit, amiket éppen nem látsz, akkor nem fogsz tudni wallhacket csinálni.
"Aimbotot, wallhacket stb. és ráadásul még tovább is terjeszthetem ezt bárkinek?? Magyarán akkor egy GPL licences multiplayer játékban legálisan csalhatok, nem igaz? :D"
Nem, nem, nem! A forráskódtól teljesen független az, hogy csalsz-e vagy sem. A csalás ténye önmagában bűn (jogilag), akkor is ha nyílt forráskódú a játék, akkor is ha zárt. Attól, hogy legaláisan tartasz fegyvert, még nem lesz legális mindenkit lelövöldözni az utcán.
"Én nem vagyok szoftverfejlesztő, de furcsállom azokat, akik simán rámondják a nyílt forráskódú szoftverekre, hogy azok márpedig az biztonságosabbak, mint a zárt (proprietary) szoftverek."
Én például a múltkor be akartam állítani a Windows-os gépemen, hogy el tudjam érni az SFTP megosztásomat. Ez Linux alatt könnyen megy, de Windows alatt külsős program kell hozzá. Vannak erre zárt és vannak nyílt forráskódú programok. Nyilván a nyílt forráskódút töltöttem le, mert ott legalább az esélye megvan annak, hogy nem fogja hazaküldeni az SFTP jelszavam. Zárt forráskodú programonál még annyira sem bízhatok meg.
Én nem vagyok feltétlen híve a nyilt forrású programoknak, de biztonságosabbnak tartom őket, ez nem kérdés.
A biztonság mint fogalom, ugye mindig a felhasználónál jelentkezik?
Nos, egy closed source programban bármi lehet, bármilyen kódrészt lehet időzítéshez, egyébhez kötni. Ugyanez elő sem fordulhat egy open source kód esetében.
GPL ellenőrzése:
A GPL vagy más licensz ellenőrzése a felhasználás helye szerinti ország jogrendszerétől függ. Itt nálunk pl. automatikus /közvádas/ az eljárás, nem kell, hogy feljelentést tegyen a sértett és a következmények /btk/ is elég komolyak.
Ez a nyílt forráskód is lehet átverés. Például:
Van egy szolgáltatás, amely titkosított üzenetet küldését teszi lehetővé. Nyílt forráskod elérhető githubon. Na igen. De te már a fordított verziót töltöd le az Ő oldalukról, amit nem tudsz visszafejteni, hogy mi volt a kódba. Persze fordíthatod magadnak a felrakott forráskódot is. Csak, hogy. Amit letöltessz teljesen más, mint amit fordítassz. ;). Ugyanarra tudod használni, csak a letöltött verzió mégsem azokat a szolgáltatásokat nyújtja a háttérben (titkosított küldés), mint amit a nyilt forráskódban látsz ....
AMIT NEM TE CSINÁLSZ -> Azzal óvatosan kell bánni!
#7
Ez pontosan ugyanígy fennáll abban az esetben, ha zárt forráskódú programot töltesz le, sőt.
Értem, így már tisztább... Szóval egy komolyabb biztonsági rés csak a program valódi futtatása, tesztelése során derül ki? Pontosan hogy zajlik ez? Hogy szírnek ki egy biztonsági rést?
Eszembe jutottak még a nyílt forráskódú vírusirtók. Ezek esetében is biztonságosabb a nyílt? Csak mert ha valaki egy vírust gyárt, vagy egy payloadot, akkor nem játszhatja ki simán a vírusirtót azáltal, hogy elemzi a forráskódját és így rájön, hogy az antivirus milyen algoritmus alapján szűri ki a kártékony programokat? Persze tudom, hogy ez valamennyire zárt antivirus esetén is lehetséges, de mi a helyzet a nyíltnál?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!