Biztons - PowerPoint PPT Presentation

1 / 43
About This Presentation
Title:

Biztons

Description:

... biztons g Felhaszn l hiteles t sen Kerberos NTLM Publikus kulcs Objektum alap hozz f r s szab lyoz s + .NET biztons g ... .NET Remoting ... – PowerPoint PPT presentation

Number of Views:111
Avg rating:3.0/5.0
Slides: 44
Provided by: unim232
Category:
Tags: net | biztons | remoting

less

Transcript and Presenter's Notes

Title: Biztons


1
Biztonság .NET-ben
  • Krizsán Zoltán
  • iit
  • 1.0

2
Alapfogalmak
  • Azonosítás (authentication)
  • Hitelesítés Ki az aki a kérést küldi ?
  • Engedélyezés (authorization)
  • Hozzáférés szabályozás Milyen eroforrásokat
    érhet el, használhat ez a személy ?
  • Integritás ellenorzés (integrity check)
  • Hogyan biztosítható, hogy az adatokat útközben ne
    manipulálhassák ?

3
Windows biztonság
  • Felhasználó hitelesítésen
  • Kerberos
  • NTLM
  • Publikus kulcs
  • Objektum alapú hozzáférés szabályozás

4
.NET biztonság
  • Nem lehet kikerülni vagy lecserélni az op.
    rendszer vagy hálózat biztonságát
  • Csak fokozni vagy kiterjeszteni lehet

5
Biztonsági modell filozófiája
  • Segédalkalmazásokkal állítható!
  • Ellenorizheto
  • felhasználó kilétét - szerep alapúés vagy
  • kód eredetétés vagy
  • hívási láncot

6
Szerep alapú biztonság
  • Tradicionális, elterjedt biztonsági ellenorzés.
  • A felhasználókat csoportokba rendezik, ezek a
    szerepek. A jogokat a szerepek kapják, nem a
    felhasználók.
  • A .NET szál szinten kezeli a szerep alapú
    biztonságot.

7
Ellenorzés helye
  • Az operációs rendszer a kernelben vagy modulban.
  • A .NET alaposztály-könyvtárában, az osztályok
    fv.-eiben.
  • Az alkalmazás komponenseiben, osztályiban.

8
Biztonságot fenyegeto szereplok
  • Jóindulatú (ártatlan)hitelesített óvatlan,
    figyelmetlen
  • Rosszindulatú (támadó)
  • hitelesített felh. adatait megszerezni,
    használni.
  • Megváltoztatni a rendszer komponenseit
    észrevétlenül (buffer túlcsordulás)

9
Biztonsági fenyegetések
  • TitoksértésKód, illetéktelen személy - kényes
    bizalmas információ
  • Ellenorzés hamisításLogok módosítása, zagyválása
  • Azonosító megszerzéseJogosult felhasználó
    nevében
  • Jogosultság megszerzésejogosult felhasználó -gt
    admin
  • Szerviz elfojtásSok felesleges, érvényes muvelet
    -gt szükséges funkciók lassulnak
  • Mobil kódLetöltött kódok gyakran admin jog!

10
Megvalósítás
  • Minden esetben Demand() fv. Hívás.(IPermission
    interface, PermissionSet osztály)
  • SecurityException kivétel dobódik, ha nincs
    megfelelo jogosultság.

11
Osztálykönyvtár eszközei
  • System.Security.Principal névtér
  • Interface-ek (általánosak)
  • Iidentity felhasználók adatai
  • Iprincipal csoporttagság

12
IIdentity
  • public interface IIdentity
  • String Nameget
  • String AuthenticationTypeget
  • bool IsAutenticatedget

13
IPrincipal
  • Minden szálhoz egy principal objektum
  • Tread.CurrentPrincipal (olvasható -
    írható)public interface IPrincipal
  • Iidentity Identityget
  • bool IsInRole(String Role)

14
Általános osztályok
  • Elore definiált, az alaposztály könyvtár eleme.
  • Csak az interface-t implementálja.
  • GenericIdentity
  • GenericPrincipal

15
Windows specifikus osztályok
  • WindowsIdentityEgy windows-os felhasználót
    kezel.
  • WindowsPrincipalWindows-os csoporttagság
    nyilvántartása.

16
WindowsIdentity
  • Az Iidentity fv.-ei
  • IsAnonymous
  • IsGuest
  • IsSystem
  • static GetAnonymous()
  • static GetCurrent() - win32 szállehet, hogy más,
    mint a .NET Identity
  • Impersonate() - win32 szál felh. változtatása
    (eroforrás hozzáférés).

17
WindowsPrincipal
  • Hasonló, mint a GenericPrincipal, de IsInRole()
    két fajta paraméterrel
  • string
  • BUILTIN\szerep
  • GÉPNÉV\Felhasználó
  • TARTOMÁNY\Felhasználó
  • felsosorolt (WindowsBuiltInRole)
  • AcountOperator, Administrator, PowerUser
    BackupOperator, Guest, User, Replicator, ...

18
Példa I
  • Thread.CurrentPrincipal new GenericPrincipal(
  • new GenericIdentity(Hát én), null)
  • Console.WriteLine(
  • string.Format(Az aktuális Identity 0\n
    \tTípusa 1,
  • Thread.CurrentPrincipal.Identity.Name,
  • Thread.CurrentPrincipal.Identity.GetType().F
    ullName
  • )
  • )
  • Console.WriteLine(
  • string.Format(Az aktuális Identity 0\n
    \tTípusa 1,
  • WindowsIdentity.GetCurrent().Name,
  • WindowsIdentity.GetCurrent().GetType().FullN
    ame
  • )
  • )

19
Példa II - MyIdentity
  • public class MyIdentity GenericIdentity
  • private string m_fullName
  • public string FullName
  • get return m_fullName
  • public MyIdentity (string userName, string
    fullName)
  • base(userName) m_fullName fullName
  • public static MyIdentity Current
  • get
  • return (MyPrincipal.Current null) ?
  • null MyPrincipal.Current.Identity as
    MyIdentity

20
Példa II - MyPrincipal
  • public class MyPrincipal GenericPrincipal
  • public MyPrincipal(MyIdentity ident, string
    roles)
  • base(ident,roles)
  • public override bool IsInRole(string role)
  • if (Identity ! null Identity.Name
    Admin) return true
  • else return base.IsInRole(role)
  • public new MyIdentity Identity
  • getreturn base.Identity as MyIdentity
  • public static MyPrincipal Current
  • get return Thread.CurrentPrincipal as
    MyPrincipal

21
Példa II - teszt kód
  • static void Main(string args)
  • Thread.CurrentPrincipal new
    GenericPrincipal(new MyIdentity("Admin",
    "Rendszer gizda"), null)
  • try
  • DoIt()
  • Thread.CurrentPrincipal new
    GenericPrincipal(new MyIdentity("Krz", "Hát én ki
    más"), null)
  • DoIt()
  • catch(Exception e)Console.WriteLine("Kivétel
    " e.ToString ())
  • PrincipalPermission(SecurityAction.Demand,
    Name"Admin")
  • static void DoIt()
  • MyIdentity MyI Thread.CurrentPrincipal.Identit
    y as MyIdentity
  • Console.WriteLine("DoIt hívás Név0 (1)",
  • MyI.Name, MyI.FullName)

22
Biztonsági környezet öröklése
  • Új szál esetén öröklodik a Pirncipal?
  • new Thread() -gt igen
  • new Timer -gt nem
  • .NET Remoting -gt általában nem
  • Web Service -gt általában nem

23
Alkalmazástartomány
  • Szálak biztonsági környezetét egységesen
    szabályozhatjuk.
  • AppDomain.SetPrincipalPolicy()
  • Paraméterek lehetnek (PrincipalPolicy felsorolt
    típus)
  • NoPrincipal (null)
  • UnauthenticatedPrincipal (alapért., üres)
  • WindowsPrincipal

24
Nem szerep alapú biztonság
  • Nem Mindet, vagy semmit, hanem
  • az adott program
  • adott eroforráson
  • milyen muveletet hajthat végre
  • Kóderedet-alapú (evidence based security)
  • Kódhozzáférési jogosultság(Code Access Security
    CAS)

25
Biztonsági házirend
  • A programok jogait nem minden esetben a
    rendszergazda állítja és nem futásidoben.
  • Elore elkészített szabályrendszer, amely kódról
    származó információk alapján meghatározza
  • hogy mely eroforrásokon
  • milyen muvelet(ek)et hajthat végre

26
Eredetigazolás, erdetinformációkódról származó
információ (bizonyíték - evidence)
  • Beépített információk
  • Információk szerelvényrol
  • Hash
  • Kiadó (kiadó digitális aláírása)
  • Eros név
  • Információk indítás helyérol
  • Alkalmazásmappa
  • Webhely
  • URL
  • Zóna
  • Lehet saját is!

27
Kódhoz rendelheto jogok
  • CodeAccessPermission osztály leszármazottjai
  • Léteznek beépített jogok
  • EnvironmentPermission
  • EventLogPermission
  • PrintingPermission
  • RegitryPermission
  • FileIOPermission
  • ...
  • Bovítheto saját jogokkal!

28
Jog csoportok, engedély halmazok
  • Jogok csoportba rendezhetoek, nevesíthetoek
    (Named Permission Set)!
  • Léteznek beépített engedélyhalmazok
  • Nothing
  • Execution (nem használhat védett eroforrást)
  • Internet
  • LocalInternet
  • Everything (kivéve kód ellenorzés kihagyása)
  • FullTrust (GAC-ban levok alapból)
  • Saját definiálható!

29
Házirend felépítése, muködése
  • Fastruktúra
  • Csomópontjaiban feltétel (Kód eredetére) -
    engedélyhalmaz
  • Ha a feltétel igaz, akkor
  • a program megkapja a jogokat
  • folytatódik a kiértékelés s gyermekkel
  • Végigmegy a fán és összegzi azokat (UNIÓ).
  • A fa egy szintjén csak egy levélre illeszkedhet!
  • A rendszer többszintu, 4 fából áll.

30
Támogatott házirendek
  • 1. szint Vállalati (Enterprise)
  • Active Directory telepítheti
  • Tartományra érvényes
  • 2. szint Számítógép (Machine)
  • 3. szint Felhasználói (User)
  • 4. szint Alkalmazástartományi (Application
    Domain)
  • Futtató hoszt által létrehozott

31
Házirendek végso jogosultsága
  • A rendszer sorra kiértékeli az összes fát!
  • Az 1. szinttol kezdodoen a 4. szintig
  • A végso jogosultság az egyes jogosultságok
    metszete.

32
Kiértékelést befolyásolása
  • Kizárólagosság (Exclusive)Ha a fát bejárva elér
    egy ilyen csomópontot, nem megy tovább a
    gyerekre! Megy a következo fára.(Nem kaphat több
    jogot)
  • Végso szint (Level Final)Az aktuális fánál
    abbahagyja a kiértékelést nem folytatja az
    alacsonyabb szintuvel!(Nem kaphat kevesebb jogot)

33
Házirend vizuálisan
Vállalati
Számítógép
Felhasználó
Alkalmazástartomány
34
Szerelvények - biztonság
  • Szerelvényekhez is rendelhetoek biztonsági
    eloírások
  • Required
  • Optional
  • Refused
  • Attribútummal valósítják meg!

35
Futó program végso jogosultsága
  • ((MIN ? OPT) ? ALLOWED) \ REFUSED
  • MIN, OPT szerelvény által kért jogok
  • ALLOWED házirendból eredo jogok
  • Szerelvény által visszautasított jogok
  • Ha a MIN jog nem áll rendelkezésre, akkor kivétel
    keletkezik!

36
Jog, jogcsoport
  • Legkisebb egység, eroforrásokon végezheto
    muveletek halmazak.
  • public interface IPermission
  • IPermission Union(IPermission rhs)
  • IPermission Intercect(IPermission rhs)
  • IPermission Copy()
  • Void Demand()
  • PermissionSet osztály (ICollection)

37
Ellenorzés fajtái
  • Op. rendszer eroforrást
  • Alkalmazás Feladatot, funkciót
  • Keretrendszer személy, jog, stackmódja
  • Deklaratív
  • Imperatív

38
Deklaratív ellenorzés
  • Attribútum segítségével (beépül metaadatba)
  • Az engedély paramétereit már fordítási idoben
    tudni kell!
  • Gyors
  • Könnyen felderítheto, dokumentálható
  • Szerelvényre, tfv.-re érvényes.

39
Imperatív ellenorzés
  • Permission vagy PermissionSet osztály egy
    példányának létrehozása.
  • Majd Demand fv.-ével is.
  • Futásideju
  • Kivétel elkapása.
  • Kódszintu

40
Stack ellenorzés
  • Minden metódus híváshoz veremkeret.
  • Biztonsági ell. (Demand) esetén bejárja a hívási
    vermet, és megvizsgálja a fv.-ek veremkereteit.
  • Minden Win32API hívás elott Demand()!

41
Ellenorzés módosítói
  • A hagyományos ell. módosítják!
  • Assertnem vizsgál tovább, engedélyez
  • Denynem vizsgál tovább, tilt
  • Permit OnlyAktuálisra assert, többire Deny

42
Stack ellenorzés szabályai
  • Engedélyen, vagy engedélyhalmazon hívható
    módosító.
  • Csak egy módosító lehet aktív.
  • Muvelet elvégzése után szokás visszavonni
    (RevetAll, RevertAssert, ).
  • Konstruktorban tilos a veremvizsgálat!
  • Demand() helyett lehet LinkDemand() nem jár
    végig a vermen, csak az aktuálisat vizsgálja!
  • Reflexiónál LinkDeman() -gt Demand()

43
Biztonság beállítása
  • Jogok
  • Caspol.exe-házirend muvelet pl. -addfullTrust
  • .NET Configurartor
  • Engedély
  • Configurator (beépített)
  • XML fájlból (beépített, saját)
Write a Comment
User Comments (0)
About PowerShow.com