Biztonsági rés

A Wikipédiából, a szabad enciklopédiából

A számítógépes biztonság területén, a biztonsági rés, sebezhetőség, sérülékenység kifejezéseket olyan gyengeség jelölésére használják, amely egy számítógépes rendszerre jellemző, és amelynek kihasználásával egy támadó kárt tehet a rendszer integritásában. A biztonsági rések fakadhatnak többek között:

Egy biztonsági kockázatot biztonsági résnek nyilvánítanak, ha arról bebizonyosodik hogy a gyakorlati életben is kihasználható gyengeséget jelent. Egy biztonsági kockázathoz, amennyiben biztonsági réssé lép elő, általában egy vagy több úgynevezett exploit tartozik. Az exploit egy működő és teljesen implementált demonstrációja a biztonsági résnek. Az úgynevezett sebezhetőségi ablak egy időintervallum, amely attól az időponttól kezdődik, hogy egy szoftverben biztonsági rést találnak, és addig tart amíg hivatalos javítás nem érkezik hozzá.

Általában elmondható, hogy minél bonyolultabb és alacsonyabb szintű nyelven készítenek el egy szoftvert, az annál nagyobb teret enged az emberi hibázásból adódó biztonsági kockázatoknak. Maga a programnyelv nem jelent kockázatot, a kockázatot a programozó tudása és munkafelfogása jelenti. Például, az ANSI C nyelvben a programozó maga tervezi meg és implementálja a memóriakezelést, C# .NET esetén viszont ezt a rendszer úgynevezett szemétgyűjtő algoritmusokkal leveszi a programozó válláról. Az ANSI C vagy C++ nyelven készített alkalmazások gyakran szenvednek memóriaszivárgással vagy puffertúlcsordulással kapcsolatos gyengeségekben.

Okok[szerkesztés | forrásszöveg szerkesztése]

  • Jelszó menedzselési hiányosságok: A felhasználó gyenge jelszavakat használ. A felhasználók néha nincsenek tájékoztatva hogy milyen követelményeknek kell megfelelnie az általuk használt jelszónak, hogy az emberek vagy úgynevezett brute force szoftverek által nehezen kitalálható legyen. Esetleg a felhasználó a számítógépén olyan dokumentumban is tárolja jelszavát amely könnyen elolvasható. Máskor a felhasználók minden szolgáltatáshoz és rendszerhez ugyanazt a jelszót használják.
  • Fundamentális operációs rendszer - tervezési hibák: Bizonyos operációs rendszerek fejlesztői rá voltak/vannak kényszerítve arra, hogy a könnyű kezelhetőség miatt hiányos biztonsági szabályokat alkalmazzanak a termékben. Például a Microsoft Windows korai kiadásaiban minden felhasználó teljes jogosultsággal használta a rendszert, felügyelet és korlátozás nélkül. [1]
  • Szoftver hibák: A programozó valamilyen okból (például elégtelen tesztelésből kifolyólag) hibákat hagy a kiadásra szánt szoftver verzióban. Ezen szoftverhibák aztán a piacra került verziókkal együtt kerülnek a felhasználókhoz.
  • Nem megfelelően ellenőrzött adatbevitel: A program feltételezi hogy minden adatbevitel megfelelően átgondoltan érkezik. Bizonyos szoftvermegoldások használatakor a speciálisan formázott felhasználói bemenettel manipulálható a szoftverrendszer.

Biztonsági hibák közzététele[szerkesztés | forrásszöveg szerkesztése]

A számítógépes biztonsággal foglalkozók körében mindig éles vitákat vált ki. Általában nincs konszenzus arra vonatkozóan, hogy például egy sok felhasználót érintő biztonsági hibát egyáltalán nyilvánosságra kell-e hozni. Egyesek szerint kötelesség bármilyen, gyakran használt szoftver hibájának minél szélesebb körben való közzététele. Mások szerint a felhasználók biztonsága (vagy biztonságérzete) okán bizonyos ideig várni kell a hiányosságokról híreket közölni. Megfelelően megfontolt várakozási idő beiktatásával a fejlesztők kidolgozhatják megoldásaikat a hibákra, amelyeket előbb eljuttatnak a felhasználóikhoz, a hiba részleteit pedig csak ezután fedik fel. Manapság a számítógépes szoftverek biztonságával szinte külön iparág foglalkozik, a maga jelentős és kevésbé jelentős cégeivel. Ezen cégek új gyakorlatot vezettek be: pénzjutalmakat ígérnek azon felhasználóknak, akik első kézben bizonyítanak be új sebezhetőségeket („zero day”). Ez egy új és legális piac, ahol a biztonsági rések információival kereskednek.

A biztonság szemszögéből, a szabad, nyilvános és azonnali közzététel csak akkor sikeres, ha az érintett fejlesztők előbb kapják meg az információkat, mint a számítógépes bűnözők (vagy ellenérdekeltek), illetve a fejlesztők el is készítik a javításokat. A másik gyakorlat esetén, ahol a titkolózás a megoldás, ugyanez a szabály érvényesül, de a bűnözőknek a biztonsági rések kiadásáig (amennyiben az egyáltalán megtörténik) sokkal több idejük és szabadságuk van a rések felfedezésére, azok kihasználására. A hátrány itt a nyilvánosság hiánya: ha egy rést egy bűnöző vagy egy bűnözői csoport felfedez egy titkolózással „védett” szoftverben, és arról nem értesíti a fejlesztőket vagy a nyilvánosságot, megfelelő ügyességgel korlátlan ideig élhetnek titkukkal.

Vannak bizonyos kereskedelmi vagy nonprofit csatornák ezen érzékeny információk archiválására és közzétételére, mint CERT, SecurityFocus, vagy a Secunia. Az információk elemzése és kockázati besorolása jelenti a közzétett információk megbízhatóságát. Az analízisnek megfelelően bő információval kell rendelkeznie a gyakorlott felhasználó számára, hogy saját maga ellenőrizze a felügyelete alatt álló rendszerek biztonságát, és azonnali intézkedéseket tudjon hozni amennyiben az őt vagy a rá bízott szervezetet érinti (akár a rendszer üzemen kívül helyezésével).

Sebezhetőségek nyilvánosságra hozatala[szerkesztés | forrásszöveg szerkesztése]

A következő kategóriák jellemzik a nyilvánosságra hozatal mikéntjét:

  • Az információ szabadon elérhető a teljes nyilvánosság számára, valamely forrásból, valamely részletességgel és megbízhatósággal
  • Az információt egy megbízott, vagy egy szakterület által elismert szervezet tesz közzé, valamely részletességgel
  • Az információ megbízott szakértők alapos analízise és kritikusság szerinti besorolása után teszik közzé, megbízható helyen, megfelelő részletességgel

Sebezhetőségek felfedezése és javítása[szerkesztés | forrásszöveg szerkesztése]

Sok eszköz létezik amelyek segítenek a fejlesztőknek a biztonsági rések felfedezésében, vagy akár annak eltávolításában. Ezek az eszközök megfelelően alkalmazva jó segítséget adnak, de nem helyettesítik az emberi ítélőképességet. Ezen úgynevezett "scanner" szoftverek gyakran hagynak figyelmen kívül biztonsági réseket vagy gyakran okoznak vaklármát.

Sebezhetőségek minden jelentős operációs rendszerben kerültek már felfedezésre, többek között a Microsoft Windowsban, a Mac OS X-ben, a Unix számtalan változatában, a Linux sok változatában, az OpenVMS-ben és másokban. Az egyetlen út a biztonságos használathoz a rendkívül megfontolt módon végzett telepítés (akár a rendszert izolálva), a rendkívül komolyan vett és folyamatos karbantartás, (a biztonsági figyelmeztetők figyelése és minden biztonsági frissítés alkalmazása), az üzembe helyezés és üzemeltetés aranyszabályainak elfogadása és alkalmazása (például tűzfalak, víruskeresők alkalmazása) illetve egyéni, a szervezetre szabott biztonsági házirend kidolgozása, annak következetes fejlesztése, frissítése, betartatása, oktatása.

Példák sebezhetőségekre[szerkesztés | forrásszöveg szerkesztése]

  • Memória biztonsággal kapcsolatos sebezhetőségek:
  • Adat- vagy bemenetellenőrzési hiányosságok:
  • Versenyhelyzetek:
  • Privilégium-korrupció:
    • Cross-site autentikációs hiba
    • Clickjacking ("kattintás elterelés")
    • FTP bounce
  • Privilégium-emelés
  • Felhasználói felülettel kapcsolatos hibák
    • Áldozat-vádolás: A szoftver a felhasználóra bíz egy biztonsággal kapcsolatos döntést, anélkül hogy elég információval látná el a megfelelő döntéshez

Lásd még[szerkesztés | forrásszöveg szerkesztése]

Külső hivatkozások angol nyelven[szerkesztés | forrásszöveg szerkesztése]