Röviden az információbiztonságról… Miért van erre szükség az alkalmazásfejlesztésben? Néhány ismertebb támadás Amire a biztonságos fejlesztés érdekében figyelni kell
Információbiztonság az alkalmazásfejlesztésben Oroszi Eszter 2009.10.12.
Biztonság
Információ
„Bonyolult, nehezen meghatározható fogalom. A témával foglalkozók mindegyike által elfogadott definíció nem létezik.” A Magyar Értelmezı Kéziszótár szerint: „veszélyektıl vagy bántódástól mentes (zavartalan) állapot.”
Adat
Információelmélet
A rögzített információ. Tulajdonképpen minden, amit fel lehet dolgozni. Szükséges adathordozó, de független attól.
„Egyértelmően elfogadott definíciója nincsen.” ☺ „A valóság (vagy egy részének) visszatükrözıdése.” /Munk/ Feldolgozott adat.
Információforrás
Adó
Átviteli csatorna
Zajforrás
ADAT ≠ INFORMÁCIÓ
Vevı
Cél
Információbiztonság „Zajforrás” Szándékos vagy véletlen külsı zaj minimalizálása, az információ torzításának megakadályozása Kifelé az információ torzítása, hogy az az illetéktelenek számára értelmezhetetlen legyen.
Bizalmasság
CIA elv
Confidentiality = Bizalmasság Integrity = Sértetlenség Availability = Rendelkezésre állás (ISO/IEC 13335-1:2004)
Sértetlenség
„Olyan tulajdonság, amely biztosítja, hogy az információt jogosulatlan egyének, entitások vagy folyamatok számára nem teszik hozzáférhetıvé, és nem hozzák azok tudomására.” (ISO/IEC 13335-1:2004)
„Az információ pontosságának és teljességének védelmét biztosító tulajdonság.” (ISO/IEC 13335-1:2004) Ide soroljuk még:
Rendelkezésre állás „Olyan tulajdonság, amely lehetıvé teszi, hogy az adott információ – feljogosított entitás által támasztott igény alapján – hozzáférhetı és igénybe vehetı legyen.” (ISO/IEC 13335-1:2004)
Letagadhatatlanság (Non-repudiation) Elszámoltathatóság (Accountability) Hitelesség (Authenticity)
Biztonsági rendszer kialakítása
Cél mindezek biztosítása… … és folyamatos fenntartása! Fontos: a biztonság nem egy termék, hanem egy folyamat!
Alapszabályok
A védelem ne kerüljön többe, mint a védett érték! Teljes körő, egész rendszerre kiterjedı védelem Minden fenyegetést figyelembe kell venni Változások követése, folyamatos megvalósulás Törekedjünk az egyenszilárdságra! Kompromisszumok vállalása…
Miért van szükségünk minderre az alkalmazás-fejlesztésben?
Az információbiztonság 3 alapkérdése
Mit kell védeni? Mitıl kell védeni? Milyen módon akarjuk megvédeni?
Szoftverkörnyezet fenyegetései
A felhasználók hozzáférnek valamilyen fejlesztıi környezethez… Time of Check/Time of Use (ToC/ToU) Buffer overflow Covert channel Backdoor Stb.
ToC/ToU
Buffer overflow
Time of Check/Time of Use, azaz Ellenırzés ideje/használat ideje Például amikor valaki dolgozik a rendszerben és a rendszergazda egyszercsak kitiltja, azonban szoftverhiba következtében a felhasználó még jogosultan fejezheti be az egyébként jogosulatlan módosítást.
Puffer túlcsordulás A támadó egy ellenırizetlen puffert használ ki a programban, és a saját adataival írja felül a programkódot. Programozási hiba folytán a puffer méretén túl írható.
Covert channel
Backdoor
Rejtett csatorna Biztonsági politikát megsértı adatok közlését teszi lehetıvé. Hálózati mőveletet vagy csatornát használnak az információ kiszivárogatásához.
Kártékony programok
Vírus
Vírus Féreg Trójai program Rootkit Kém- és reklámprogramok Stb.
Hátsó kapu/csapóajtó Illegális hozzáférést tesz lehetıvé.
Olyan önsokszorosító kártékony program, amely más programokhoz vagy dokumentumokhoz kapcsolódik hozzá. Rendelkezik a következı tulajdonságokkal:
Sokszorozódik Rejtızködik Kárt okoz
Vírus
Vírusok felépítése:
Vírus
Makró vírus
Aktivizálási mechanizmus
Script vírus
Objektív rutin
Fertızési stratégiák:
Rengeteg típusa van: Boot vírus
Reprodukciós rész
Stb.
Polimorf vírus:
Közvetlenül fertızı vírusok
Mutációs vírus
Rezidens vírusok
Olyan vírus, amely képes változtatni a kódját, mindig
más módon és más kulccsal titkosítja magát. Pl. WHALE, V2P6, Mutation Engine
Féreg
Trójai programok
A vírusokhoz hasonló kártékony program, különbség, hogy nincsen szüksége gazdaprogramra. Pl. MyDoom
Rootkitek
Más kártevık
Rendszergazda jogosultságok szerzése Eredetileg UNIX/Linux rendszerekre készültek Elrejtik saját és más programok jelenlétét Több célt szolgálhatnak:
Információk győjtése
Trójai faló története… Hasznosnak vagy érdekesnek tőnı, valójában azonban rosszindulatú programok. Elıfordul, hogy valódi funkciójukat betöltı programok, csak káros mellékhatásokkal… Pl. ál-vírusirtók.
Spyware Céljuk a felhasználók személyes adatainak
megszerzése illegális úton. Pl. jelszavak és hitelkártyaszámok lopkodása.
Vezérlés fenntartása
üzleti célra felhasználása. Pl. internetezési szokások figyelése.
Más támadók kizárása ☺
Szándékosan vagy véletlenül elkövetett helytelen módosítás. ToC/ToU itt is… Az adatok sértetlensége sérül adatbeviteli hiba vagy hibás feldolgozás miatt. Többszörös adattárolás problémája. Aggregálás: amikor nem érzékeny adatok kombinálásával érzékeny adatok hozhatók létre.
Reklámprogramok Adware Felhasználók adatainak megszerzése és
Nyomok eltüntetése
Adatbázisok fenyegetései
Kémprogramok
Adatbázisok fenyegetései Deadlock/holtpont: akkor jelentkezik, amikor két felhasználó egyszerre próbál hozzáférni egy adott adathoz. Különféle eltérítéses, megkerüléses támadások. SQL injection DoS támadások
SQL injection
Néhány példa
SQL injektálás/befecskendezés Az SQL nyelvre épül, a felhasználói felület és az adatbázis között SQL parancsok teszik lehetıvé az adatmozgatást. Webes felületen keresztüli támadási forma. A bemenı adatok közé SQLlekérdezéseket szúrhatunk be. Pl. URLbe, őrlap beviteli mezıbe.
Néhány példa
Védekezés ellene
Ha nem tudom a felhasználónevet: ‘ OR 1=1 --
A lekérdezés: SELECT tanaradatok FROM tanarok WHERE tanar = ‘’ OR 1=1
Ha tudom a felhasználónevet: Eszter’ --
A lekérdezés: SELECT tanaradatok FROM tanarok WHERE tanar = ‘Eszter’ –’ AND jelszo = ‘barmi’
Különleges karakterek kiszőrése Felhasználók által bevihetı karakterek számának korlátozása Tárolt eljárások használata (elıre megírt és beépített lekérdezések).
DoS támadások
DDoS támadás
DoS = Denial of Services, vagyis szolgáltatás megtagadás/elárasztás Célja a hálózat túlterhelése, megbénítása, mely ezáltal nem tudja ellátni feladatát. A lényege, hogy sok kéréssel bombázzuk a szervert, így az képtelen több kérést kiszolgálni, ezért elutasítja ıket.
Distributed Denial of Services = Elosztott szolgáltatás megtagadás Annyiban különbözik az elıbbitıl, hogy egyszerre több géprıl érkeznek kérések Jóval nehezebb védekezni ellene
Védekezés ellenük
Biztonságos fejlesztés
Ez ellen a támadás ellen különösen nehéz védekezni Az alkalmazást már a kezdetektıl fogva úgy kell megtervezni, hogy ellenálljon az ilyen jellegő támadásoknak… IDS rendszerek Sávszélesség-kezelı megoldások
Tervezés
Mennyire szenzitívek az alkalmazás által tárolt, kezelt adatok? Kockázatok felmérése, milyen fenyegetések jelenthetnek veszélyt. Milyen védelmi intézkedéseket kell és lehet bevezetni? Költség-haszon elemzés elvégzése… Biztonsági specifikációk meghatározása. Tesztelési terv kidolgozása.
Melyik szakaszban van szükség a biztonságra?
Kivitelezés, megvalósítás
Biztonsági kód megírása… … programba illesztése … … és tesztelése. Hozzáférés-védelem Megfelelı dokumentálás
Elfogadás és telepítés
Mőködtetés
Biztonsági tesztelés az integrált környezetben is. A dokumentációnak tartalmaznia kell a biztonságos mőködés feltételeit is. Az elfogadási tesztelés az utolsó lehetıség a sérülékenységek felfedezésére! Nem szabad megfeledkezni a felhasználók oktatásáról sem!
Biztonsági mentések és visszaállítások. A megfelelı biztonságos mőködés folyamatos figyelemmel kísérése. Kockázatok idıszakos felülvizsgálata. Patch-elés…
Nyílt vs. zárt forráskód
Melyik a biztonságosabb? A nyílt forráskód elınye és hátránya: Bárki átnézheti a forráskódot
megmondhatja a benne talált hibát… Bárki átnézheti a forráskódot kihasználhatja
a sebezhetıséget…