.Net 2 előadás jegyzet – 3. óra
1.oldal
.NET Microsoft .Net Framework és programozása II. Előadás jegyzet Előadó: Pócza Krisztián ELTE,2012
Windows Server Security – Biztonság II A Windows server biztonsága A Windows Serverre minden igaz, ami igaz volt az Windows Desktop -ra. Active Directory Fő célja a Windowst futtató számítógépek részére autentikációs és autorizációs szolgáltatások nyújtása, lehetővé téve a hálózat minden publikált erőforrásának (fájlok, megosztások, perifériák, kapcsolatok, adatbázisok, felhasználók, csoportok stb.) központosított adminisztrálását. Röviden az Active Directory alapvetően két fő funkciót lát el: Authentikálás a hálózaton keresztül Karbantartási feladatok megkönnyítése az adminoknak Az Active Directory lehetővé teszi a rendszergazdáknak, hogy vállalati korlátozásokat érvényesítsenek user csoportokra, vagy programokat telepítsenek. Pl: Start Run gpedit.msc (Group. Pol. Obj. Editor) Lehetőség van pl Shutdown script definiálására, ami automatikusan lefut minden kikapcsoláskor. Group Policy segítségével az AD-ben felvett szervezeti egységek tagjaihoz (gépek, felhasználók) beállításokat. Az Active Directory szabványos protokoll, ami lehetővé teszi a bármilyen UNIX, pl. FreeBSD alól az authentikálást. AD két része: - LDAP (Lightweight Directory Access Protocol) – azaz címtár szolgáltatás - Kerberos - a felhasználók (és szolgáltatások) biztonságos hitelesítésére szolgál. - DNS nevek és egyéb hálozati információk kezelése Mi az LDAP (röviden): Címtár. A benne tárolt adatokat egy-egy egyedi név: Distinguished Name (DN) azonosítja. A név több részből áll, a különböző részek alapján faszerkezetű hierarchiába szervezhetőek a
.Net 2 előadás jegyzet – 3. óra
2.oldal
bejegyzések. Minden bejegyzéshez tartozik egy vagy több tulajdonság, amit egy típus-érték pár határoz meg. A típus lehet például a "common name" (cn) - mindennapi név, a hozzá tartozó érték meg "Gipsz Jakab", vagy épp a levélcím megadására szolgáló "mail" mező. Egy cég bellső struktúrája, szervezeti egységei, erőforrásai, felhasználói pl. jól leképezhetőek benne. További infók: http://hu.wikipedia.org/wiki/Active_Directory Windows Server Update Services (WSUS) Lehetőség van egy vállalati szervernek megmondani, hogy ő fogja kezelni a frissítéseket, a hálózat többi tagja tőle fogja letölteni a friss programokat, ez a megoldás jóval gyorsabb, mint pl mindig a microsoft.com-ra felmenni a frissítésekért (minden gépnek külön), valamint azt is biztosítja, hogy minden gépen ugyanazon verziójú program fog futni. Továbbá menedzselhető hogy mely frissítéseket szeretnénk telepíteni, és az is hogy mikor (pl minden kedden délben). Microsoft Internet Security and Acceleration Server (ISA) Ez egy sokoldalú Firewall, proxy és Web-cache csomag. Néhány lehetősége, amelyek miatt egy klasszikus tűzfalnál többet nyújt: Nagyvállalati szintű Klaszterezni tud Traffic Protokoll szűrés Schedule Mikor éljen a szabályozás Melyik user/csoportra vonatkozzon? Egy kis reklám: URL szűrés A Forefront TMG 2010 hatékonyabban blokkolja a kártékony webhelyeket, felhasználva az összesített adatokat több URL-szűrő, anti-phishing és anti-malware technológiát, amelyek védik az Internet Explorer 8 felhasználóit. A honlapok rendkívül pontos kategorizálása mellett blokkolja azokat a webhelyeket, amelyek sérthetik a vállalati politikát. Hálózati Ellenőrzési Rendszer(Network Inspection System) Forefront TMG 2010: integrált behatolás-megelőző technológia, amely véd a böngésző-alapú és egyéb biztonsági réseket (pl. a böngésző plugin –eket kihasználó) támadások ellen. Web Anti-Malware Forefront TMG 2010 nagyon pontos malware érzékelőt egy keresőmotort nyújt, amely egyesíti a generikus és a heurisztikus technológiákat, ezzel segítve elkapni a módosított kártevőket külön aláírás szükségessége nélkül. HTTPS Ellenőrzés HTTPS ellenőrzés lehetővé teszi, hogy megvizsgáljuk belülről a felhasználók SSL –el titkosított internetes forgalmát is. Egyaránt érzékelni lehet rosszindulatú, valamint az
.Net 2 előadás jegyzet – 3. óra
3.oldal
alkalmazottak által nem látogatható helyeket. Érzékeny területek, mint például a banki oldalak, kizárhatók a vizsgálat alól. Server Management A szerverek folyamatos kezelése az egyik legidőigényesebb feladat napjaink IT világában. A nem hatékony szerverek felemésztik az energiát, azaz a PÉNZT. Windows Server 2008 R2 SP1 óta számos funkció került a Server Manager -be, hogy csökkentse adminisztrációs erőbefektetést a naponta ismétlődő feladatoknál. ISA 2006 Tartalmazza a Microsoft Internet Security és az Acceleration Server 2006 jól bevált hálózatvédelmi technológiáit. Lehetővé teszi, hogy tűzfalat vagy biztonságos átjárót telepítsünk az olyan alkalmazásoknak, mint a Microsoft Exchange Server és a Microsoft SharePoint. Központi menedzsment Lehetővé teszi, hogy létrehozzuk és kezeljük az összes webes biztonsági funkciót elosztott környezetekben egyetlen konzolról. Egyéni jelentések Gyorsan létrehoz web biztonsági jelentéseket és megkönnyíti a testreszabást az üzletspecifikus igényeknek megfelelően. Továbbá integrálja a Microsoft SQL Server infrastruktúrát, hogy egyedi riportokat készíthessünk. Active Directory integráció Leegyszerűsíti az authentikációt. Pl. a HTTPS ellenőrzést azzal, hogy megosztja a tanusítványt az Active Directory -n keresztül. Továbbá kihasználja a Windows Update infrastuktúrát, így lehetővé téve a a frissítések gyors telepítését az összes szerverre. További infók: http://en.wikipedia.org/wiki/Microsoft_Internet_Security_and_Acceleration_Server .NET processzek biztonsága A processzen belül is lehet szeparáció jogosultság szempontjából. .NET processzen belül Application domain.(Lehet külön szálon is akár külön adatokkal.) Egy processzen belül több is lehet. Az alkalmazás tartományok közötti kommunikáció gyorsabb. Külön rendelhető hozzájuk jogosultság, illetve erőforrások. Nem lehet az egyikből csak úgy átnyúlni a másikba. Ha az egyik lefagy, akkor a másik még fut tovább. Hasznos lehet pl. IIS webszervernél, több webalkalmazásnál. (IIS) Internet Information Services webszerveren futnak az ASP .NET alkalmazások.
.Net 2 előadás jegyzet – 3. óra
4.oldal
.NET CAS (Code Access Security) A kód szintű korlátozás lehetősége Eddig csak felhasználó szintű korlátozásra volt csak lehetőség, de most modulszinten adható meg, hogy milyen jogai vannak neki. A Windows Security-re épül (ezt mindenképp be kell tartani) és ezen lehet még szigorítani a CAS-el. PL: Start Run mmc File menü/Add/Remote snap in/.NET 2.0 Configuration Runtime Security Policy Machine Code Groups All Code Create Code Group Meg lehet adni pl, hogy a saját honlapról érkező kódokban megbízok. 3 csoport van: Vállalati, Gépszintű, és Felhasználó szintű. A rendszer a 3 csoport metszeteként számítja az aktuális jogainkat. A beállításokról vállalati szinten lehet .msi telepítőt csinálni és így hordozni a biztonsági beállításokat (vagy serverről letölteni.) Fontos, hogy egy kód honnan származik (net, pendriver, saját gépem). Ez is állítható a Zone beállításoknál (lásd fent.). Pl My_Computer_Zone, Internet_Zone A program induláskor kéri a számára szükséges jogokat, és ha megkapja akkor fut, ha nem akkor leáll. A CAS jogosultságok beállításához admin jog kell. A .NET-es programok indulásakor lehetőség van jogok visszautasítására is. Megmondhatja a program, hogy neki mire van szüksége a helyes futáshoz, a többletet visszautasít(hat)ja, így is növelve a biztonságot. Ez deklarSatív és imperatív módon is megadható. Általában kevés helyen használják, főleg komolyabb válallatoknál. Vannak olyan segédprogramok, amik kiszámítják, hogy milyen jogok kellenek a programhoz. Részletes leírás található a CAS -ról az előadő honlapján (Technical Publications: A .NET Code Access Security) http://kpocza.net/Files/Publications/Technical/dotNetCAS.doc CAS Példa A jogok a program indításakor ellenőrzésre kerülnek. Ha nincs meg a minimum, akkor Exception-t dob a rendszer. Jogok deklaratív módon: using System.Security.Permissions; [assembly:FileIOPermission(SecurityAction.RequestMinimum, Write = @"c:\dotNET\test")] [assembly:FileIOPermission(SecurityAction.RequestOptional, Read = @"c:\dotNET")] [assembly:FileIOPermission(SecurityAction.RequestRefuse, All = @"c:\WINDOWS")]
.Net 2 előadás jegyzet – 3. óra
5.oldal
A SecurityAction enumerationnak 9 tagja van, ebből a gyakran használtak magyarázata:
RequestMinimum A minimum jog, ami a program futásához kell. RequestOptional De jó lenne, ha lenne még ez… az optimális futáshoz. RequestRefuse A visszautasított jogok, amik egyáltalán nem kellenek a program futásához, pl írni a Windir-be (növeli a biztonságot). PermitOnly Csak ezt a jogot adom neki és azoknak, amit ő hív.
Az előző feltétel deklaratív módon is megadható a programban. FileIOPermission perm = new FileIOPermission(FileIOPermissionAccess.AllAccess, @"c:\dotNET\test");
A feltételeket nem csak assembly-kre, hanem az egyes fv-ekre is be lehet állítani, ekkor a jog öröklődik lefelé a hívási láncon. A Demand() utasítással ellenőrizhetjük, hogy van-e elegendő jogunk, a művelet végrehajtásához, ha nincs, akkor System.Security.SecurityException dobódik, ami kezelhető kivétel. Ekkor általában valami normális hibaüzenettel állítjuk le a programot. try { FileIOPermission perm = new FileIOPermission(FileIOPermissionAccess.AllAccess, @"c:\dotNET\test\sub"); perm.Demand(); } catch(System.Security.SecurityException sex) { Console.WriteLine("File create demand in test failed"); Console.WriteLine("A demand jogos, hogy elszáll, mert PermitOnly van máshova (" + sex.Message + ")"); return; }
.Net 2 előadás jegyzet – 3. óra
6.oldal
Tartalomjegyzék
Biztonság II ................................................................................................................................ 1 A Windows server biztonsága ................................................................................................ 1 Active Directory ..................................................................................................................... 1 Windows Server Update Services (WSUS) ........................................................................... 2 Microsoft Internet Security and Acceleration Server (ISA) ................................................... 2 .NET CAS (Code Access Security) ............................................................................................ 3 A kód szintű korlátozás lehetősége ........................................................................................ 3 CAS Példa .............................................................................................................................. 4