dotnet2 jegyzet ea 02.docxplcportal.inf.elte.hu/edu/net2/jegyzet/docx/dotnet2 jegyz…  · web...

15

Click here to load reader

Upload: vophuc

Post on 28-Aug-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DotNet2 jegyzet EA 02.docxplcportal.inf.elte.hu/edu/net2/Jegyzet/docx/DotNet2 jegyz…  · Web viewUser spaceKernel spaceSzolgáltatások= ServicesFelhasználói alkalmazások (Word,

User space

Kernel space

Szolgáltatások= Services

Felhasználói alkalmazások (Word, Excel, stb)

Rendszer folyamatok(Session Manager,stb)

User módú driverek

Win32.sys

Security Manager Object

Manager

ConfigManager

I/OManager

CacheManager

TCP/IPStack

Microkernel

Hardware abstraction layer

Kernel módú driverek

.Net 2 előadás jegyzet – 2. óra 1.oldal

.NET Microsoft .Net Framework

és programozása II.

Előadás jegyzetElőadó: Pócza Krisztián

ELTE,2012

Windows Security - Biztonság

Biztonsági szintekA Windows -nak két fő futási (biztonsági) szintje van: User space, Kernel (Executive) space. A felépítést a következő ábra mutatja:

A Windows biztonsági szintjei

Page 2: DotNet2 jegyzet EA 02.docxplcportal.inf.elte.hu/edu/net2/Jegyzet/docx/DotNet2 jegyz…  · Web viewUser spaceKernel spaceSzolgáltatások= ServicesFelhasználói alkalmazások (Word,

.Net 2 előadás jegyzet – 2. óra 2.oldal

Megj:

Win32.sys – grafikus vezérlés, mivel kernel vezérelt, ezért könnyen magával ránthatja a rendszer hiba esetén (kék halál)

Security Manager – jogok a komponensek eléréséhezObject Manager – Windows mindent objektumként kezel, acces control jogokConfig Manager – Windows registry, karbantartja a konfigurációs beállításokat (pl TCP/IP csomag

mérete)Microkernel – melyik task, melyik CPU-n, mennyit futHardver abstraction layer

– (HAL) hardver eszközöket elfedő legalacsonyabb szoftverréteg,

Ahogy UNIX -ban minden entitás leképezhető a merevlemez egy állományára, azaz minden egy fájllal van reprezentálva, úgy Windowsban minden egy kernel-szintű objektummal.

Ha a User meg akar nyitni egy fájlt, akkor a kernel-szintű Object Manager átfordítja a kérést egy számra, a Security manager ellenőrzi, hogy a Usernek van-e elég joga megnyitni a file –t és ettől függően a User space -re jut vissza: Access Granted vagy Access Denied.A driverek kernel, vagy user módban futnak, a Vistánál már főleg user módban, ezzel növelve a biztonságot (ha kernel módban elszáll egy driver, akkor negatív hatással lehet az egész rendszerre - rossz esetben kék képernyő és végzetes hiba). De ha user módú a driver, akkor hiba esetén anélkül újra lehet indítani, hogy különösebb (negatív) hatással lenne a rendszer egészének működésére. A Unix és a Linux architekturája monolitikus, a fenti architektúra hibrid.Monolitikus: minden funkciót egyetlen, megbonthatatlan egységet képező modulban megvalósító rendszermag.A monolitikus kernelek mikro és vegyes jellegű társaiknál jóval nagyobb teljesítményt nyújtanak, azonban bővítésük és módosításuk kizárólag a teljes rendszermag újrafordításával lehetséges. Ezen kívül a kernel bármelyik részében bekövetkező hiba a teljes rendszert veszélyezteti, ami miatt stabilitásuk is jóval elmarad mikrokernel-jellegű társaiké mögött.

A WinObj.exe használata

A WinObj.exe egy sysinternalos (www.sysinternals.com) ingyenes segédprogram amivel kernel szintű objektumokat nézegethetünk. (Érdemes rendszergazdaként futtatni)PL: \Device\Null Security PermissionsACL (Access Control List) : Minden egyes kernel-szintű objektumhoz van egy ACL definiálva, ami azt határozza meg, hogy mely User-csoportoknak milyen jogai vannak az adott objektumon. Ez jóval komolyabb skálázhatóságot ad a Windowsnak mint a UNIX-nak az rwx lehetősége a fájlokon. (Windows C2-es biztonsági besorolás)Windowsnak kb. 30 kernel szintje van.

Page 3: DotNet2 jegyzet EA 02.docxplcportal.inf.elte.hu/edu/net2/Jegyzet/docx/DotNet2 jegyz…  · Web viewUser spaceKernel spaceSzolgáltatások= ServicesFelhasználói alkalmazások (Word,

.Net 2 előadás jegyzet – 2. óra 3.oldal

User space

Windows szolgáltatás (≡ Unix daemon ): általában folyamatosan a memóriában van és egy jól meghatározott szerepkört lát be.

Pl:svchost.exe: Felhasználó authentikációwinlogon: Bejelentkeztetéscsrss.exe: Win32 API hívásokalg.exe: Applicatioon layer gate

Pl: Userek lekérdezéselsass.exe-nek továbbadódik a hívás és ő megy le a kernel-szint felé a kérés megválaszolásához. Persze figyelembe veszi, hogy ki hívta (jogok).Az lsass.exe egy Trusted Process mivel ő szólhat a kernelnek. A kernellel közvetlenül nem tud mindenki “beszélni”.

ntdll.dll: Ezen keresztül megy le a hívás kernel szintre, user módból (pl: kernel32.dll-ből)

A gyakorlatban

Windows Start menu Run cmd (command line)

Itt beírva : tasklist /svc kilistázza melyik programkódban milyen szolgáltatás fut, azaz hogy melyik process melyik service-t hostolja. (pl. spoolert a spoolsv.exe.)A szolgáltatások más-más Account alatt futnak. Ne adjunk túl nagy jogot olyan alkalmazásoknak, amiknek nem kell a NORMÁL futáshoz! Ha pl. mindent Administrator joggal futtatunk, akkor csökkentjük rendszerünk biztonságát (főleg Vistában figyeltek arra, hogy minden alkalmazás azzal a minimum joggal fusson, ami elég neki).A Windows-ban minden User/Group rendelkezik egyedi azonosítóval (SID azaz Security ID), amit a következőképp kaphatunk meg pl. PowerShellben:

PS: cd \PS: Get-WmiObject Win32_UserAccount

(a PowerShell letölthető a MS honlapjáról: http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx )

SID : S-1-5-21-1644491937-1242620229-725345543-500 alakú azonosító. Két ugyanolyan azonosítójú User nincs. Igazából SID -hez rendeljük a jogokat, és a neveket összerendeljük a SID-ekkel (Registry -ben van összemappelve). A Registryben minden kulcshoz van ACL rendelve.

Page 4: DotNet2 jegyzet EA 02.docxplcportal.inf.elte.hu/edu/net2/Jegyzet/docx/DotNet2 jegyz…  · Web viewUser spaceKernel spaceSzolgáltatások= ServicesFelhasználói alkalmazások (Word,

.Net 2 előadás jegyzet – 2. óra 4.oldal

Fájlrendszer jogok

Jobb klikk egy könyvtáron vagy fájlon (stb.-n) és ott Security fül.Advanced fül alatt részletesebben ki vannak fejtve a jogok. User audit itt kérhető.

Page 5: DotNet2 jegyzet EA 02.docxplcportal.inf.elte.hu/edu/net2/Jegyzet/docx/DotNet2 jegyz…  · Web viewUser spaceKernel spaceSzolgáltatások= ServicesFelhasználói alkalmazások (Word,

.Net 2 előadás jegyzet – 2. óra 5.oldal

A Registry

Registry kulcsokra hasonlóan meg vannak ezek a jogosultságok.Start menü / Run : RegeditPl. HKEY_CURRENT_USER\Identities\ SID-en jobb klikk és Permission.

HKEY_LOCAL_MACHINE Helyi gép beállítások.HKEY_CURRENT_USER Aktív user.… PS: Get-Acl temp | fl ACL lekérdezésePS: Get-PSDrive Meghajtók lekérdezése

Shellből lehet registrybe is írni/olvasni.

Privilégiumok

Mi van azokkal a jogokkal, amik nem köthetőek objektumokhoz? PL: Idő átállítás, CD-használatErre Privilégiumok vannak, amik rendszer szinten engedélyezik a jogok kezelését.

Control panel Admin tools Local security policy Local policy User rights

Itt állíthatjuk be a privilégiumokat. Pl: Log on as a service, Shut down the system (Kik kapcsolhatják le a rendszert?)Fontos még ugyanitt az Audit Policy (szintén Local policy alatt).

Page 6: DotNet2 jegyzet EA 02.docxplcportal.inf.elte.hu/edu/net2/Jegyzet/docx/DotNet2 jegyz…  · Web viewUser spaceKernel spaceSzolgáltatások= ServicesFelhasználói alkalmazások (Word,

.Net 2 előadás jegyzet – 2. óra 6.oldal

ProcessExplorer

Ingyenes segédprogram a Sysinternals -tól. Meg tudjuk nézni a futó processzek privilégiumait (és még sok másra is jó)Pl: Iexplore.exe Kevés privilégiumMinél kevesebb privilégiuma van neki, annál veszélytelenebb a rendszerre.

(Megjegyzés : Célszerű nem adminként használni a saját gépünket, mert ekkor a letöltő vírusoknak is kevesebb privilégiuma van)

Logok

Lehetőség van a Windowsban történő események naplózására (loggolás).Start Run eventvwr.msc /s

A logokat lehet szűrni is. Definiálhatunk saját kategóriákat (a Powershell is ezt teszi) Pl: lehet a belépési próbálkozásokat loggolni.

Vigyázni kell, mert növelik a Windows könyvtár méretét. Ez által csökkentik a szabad helyet a merevlemezen.

DAC

A Data Execution Prevention vagyis az adatvégrehajtás megakadályozása (DEP) szolgáltatás olyan szoftver- és hardvertechnológiákra épül, amelyek a memória fokozott ellenőrzésével megkönnyítik a rosszindulatú kódok futtatásának megakadályozását.Pl: a memóriában egy adatszegmensbe rejtettek kódokat, és oda aztán behívtak – ezt is védA DEP rendszerszintű konfigurálását a Boot.ini fájlban megadott kapcsolók segítségével lehet szabályozni.

Principle of Least Privilage

Ez csupán egy aranyszabály mely szerint mindent a lehető legkevesebb joggal végezzünk, futtassunk, mert akkor biztonságosabb (pl. ha csak olvasni akarok egy fájlt, akkor nem kell egyből írásra is megnyitni!).

Process monitor

Szintén Sysinternals program, amivel a process -ek működését ellenőrizhetjük, trace -elhetjük.

Page 7: DotNet2 jegyzet EA 02.docxplcportal.inf.elte.hu/edu/net2/Jegyzet/docx/DotNet2 jegyz…  · Web viewUser spaceKernel spaceSzolgáltatások= ServicesFelhasználói alkalmazások (Word,

.Net 2 előadás jegyzet – 2. óra 7.oldal

A Windows biztonsági szintekről egy részletesebb ábra (most nem térünk ki a magyarázatra)

Windows VISTA

Vistában minden standard User joggal fut. Ha több jogra van szükségünk, akkor vagy a program kéri ezt és explicit rákérdez indításkor, vagy RunAs… adminnal kell indítani, ez a User Account Control lényege (UAC).Még az administrator user esetén elég kevés jog, illetve privilégium van.A processeknek nem ad sok jogot, csak épp amennyit kell.

A Windows Integrity Control (WIC) (korábban: Mandatory Integrity Control - MIC) lényege, hogy az adatokat és a processzeket különbözö szintekbe soroljuk. Alacsony, Normál (ez a default), Magas, Rendszer. Egy processz maximum olyan szintű adatokat érhet el, mint ami az ő szintje.

Processzeink állapotáról könnyedén informálódhatunk a korábban említett Process Explorer segítségével. Ez a szabadon letölthető program képes különböző jogosultságokkal párhuzamosan futtatni programjainkat, továbbá jóval részletesebb kimutatást nyújt, mint az alap Task Manager.

Page 8: DotNet2 jegyzet EA 02.docxplcportal.inf.elte.hu/edu/net2/Jegyzet/docx/DotNet2 jegyz…  · Web viewUser spaceKernel spaceSzolgáltatások= ServicesFelhasználói alkalmazások (Word,

.Net 2 előadás jegyzet – 2. óra 8.oldal

Próbáljuk ki!Jelentkezzünk be Windows –unkba limitált jogosultságú felhasználóként és futassuk a Process Explorert! Tetszőleges munkafolyamatot kiválasztva, dupla kattintással az alábbihoz hasonló ábrával találkozhatunk:

A File menu Run as Administrator funkcióval tallózzuk be ugyanezt a programot! Észrevehető a különbség a jogosultságok között:

A User Interface Privilege Isolation (UIPI), lényege a következő: Egy processznek üzenetet csak olyan küldhet, aki ugyanazon a szinten van. Normal szintet kapnak pl. a User fájljai.A Temporary Internet fájlok viszont alacsony szintet kapnak, hogy ezek ne tudjanak nagy galibát okozni. Ezért az IE -nek egy másik processz segítségét kell igénybe vennie, hogy Normal módú fájlokat töltsön le.

Az Address Space Layout Randomization (ASLR) célja annak az elkerülése, hogy bizonyos rendszer dll -ek mindig ugyanarra a helyre töltődjenek be a memóriába, mivel így fokozott veszélynek teszik ki a rendszert a behatolókkal szemben. Így a betörő entitásoknak előbb a dll címét is meg kell határozniuk.

Fájlrendszer és registry virtualizálás. Vistában a Program Files könyvtárba nem mindenki tud írni, csak az admin, de a régebbi programok még nem készülhettek fel a Vistára, ezért ha

Page 9: DotNet2 jegyzet EA 02.docxplcportal.inf.elte.hu/edu/net2/Jegyzet/docx/DotNet2 jegyz…  · Web viewUser spaceKernel spaceSzolgáltatások= ServicesFelhasználói alkalmazások (Word,

.Net 2 előadás jegyzet – 2. óra 9.oldal

valamelyik program a Program Files-ba akar írni, azt átvirtualizálja a megfelelő User könyvtárra. Visszaolvasásnál hasonlóan. Ilyen megszorítások a registryre is érvényesek, az eljárás ott is hasonló.

Rendszer fájlok hozzáférése: A rendszerfájlok védelme különösen fontos, ezért ezek módosítására az adminnnak sincsen joga. Ezeket csak egy TrustedInstaller nevű (rendszerjogokkal bíró) szolgáltatáshoz tartozó entitás módosíthatja. Így a rendszerünket nem lehet olyan könnyen tönkrevágni. Patch telepítéshez is TrustedInstaller szolgáltatást kell futtatni.

Service hardening: Vistában az ACL-ekbe service -eket is be tudunk pakolni, azaz a kódnak adunk jogosultságokat.