ot N. Antonov(3-12-2004)

reiting (10)   [ dobre ]  [ zle ]

Printer Friendly Variant za otpechatvane

Imame pootdelno dve mnozhestva - mnozhestvo ot obekti O i mnozhestvo ot subekti S. Pod obekti shte razbirame vsiakakvi resursi na sistemata kato failove, direktorii, pozvolena za zadeliane pamet, pipe failove i failove ustroistva. Subektite sa potrebitelite, koito puskat i izpolzvat tezi resursi. Subektite se opitvat da poluchat dostup do obektite, a sistemata za zashtita na dostupa im pozvoliava ili otkazva zhelaniia dostup. V mandatniia model na zashtita sa neobhodimi kriterii, na bazata na koito da se izvurshva pozvoliavaneto ili otkazut na dostup do daden resurs.

Na vseki obekt i na vseki subekt se naznachava mandaten marker - nivo na dostup, chilo L i kategorialno mnozhestvo M. Poslednoto shte predstavim vuv vid na mnozhestvo ot 64 elementa, kudeto vseki element e 0 ili 1. SHTe priemem, che kategorialnoto mnozhestvo M1 se iaviava podmnozhestvo na kategorialnoto mnozhestvo M2, ako za vsiaka edinitsa i v mnozhestvoto M1 sushtestvuva edinitsa i v mnozhestvoto M2. V protiven sluchai shte kazvame, che mnozhestvoto M1 i M2 ne se presichat. Da razgledame mnozhestvo ot mandatni markeri, t.e. {Li,Mi} i da gi postavim kato suotnosheniia. A imenno, shte schitame, che marker {Li, Mi} dominira nad marker {Lj,Mj} i shte gi opoznachim suotvetno {Li,Mi} > {Lj,Mj}, ako Li > Lj i Mi e nadmnozhestvo na Mj.

Neobhodimo ni e da imame sushto taka i t. nar. matritsa na dostupa D, kudeto pri presichaneto na i i j se posochva kakvi prava na dostup ima subektut i spriamo obekta j. Mozhem da imame naprimer prava za chetene, startirane, promiana i startirane. Dadenata matritsa nosi naimenovanieto Diskretizatsionen model na dostup i v RSBAC se porazhda ot standartnite failovi prava v Unix s ogled imeto na potrebitelia i negovata grupa.

I taka, v modela se vuvezhdat slednite pravila:

  • (ss-property) Ako subektut ima pravo na zapis ili chetene spriamo obekta, to se priema, che mandatniiat marker na subekta dominira nad mandatniia marker na obekta (ds-property).
  • (ds-property) Pravata za dostup na subekta spriamo obekta se vzimat ot matritsata za dostup D i samo ottam. Tova pravila tvurdo skrepiava vruzkata na matritsata za dostup s tseliia model.
  • (*-proprerty) Ako vuznikne situatsiia, kogato subektut otvaria edin obekt za zapis, a vtori za chetene, pri koeto markerut na vtoriia obekt dominira nad markera na purviia, subektut poluchava otkaz za dostup. Dadenoto pravilo pozvoliava da se izklyuchi situatsiia, pri koiato danni ot zashtiten obekt se prehvurliat kum nezashtiten. Reshenieto za dostup e polozhitelno, ako mandatniiat marker za dostup na subekta dominira nad mandatniia marker na obekta.

Kakto sigurno ste uspeli da zabelezhite, dadeniiat model natrupva mnogo seriozni ogranicheniia. Rabotata s nego ne e taka lesna i programi, koito na se suobrazeni s nego, pochti vinagi sus sigurnost shte poluchat otkaz za dostup. Sega shte razgledame kakvi parametrii za failove i potrebiteli upravliavat tozi model.

Da suzdadem edin fail ~/mactest. Otnovo puskame v direktoriiata, v koiato se namira tozi fail tsentralnata programa za adimnistrirane rsbac_menu. Vsichki nastroiki pravim kato secoff - otgovornik po sigurnostta.

Modulut MAC pritezhava slednite parametri:

  • MAC security level - Nivo na sekretnost na faila. Da go ustanovim primerno na 2.
  • MAC categories - Kategorialno mnozhestvo na faila. Niama da go pipame.
  • MAC trusted for user - Tuk mozhem da kazhem doveriavame li se na drugi potrebiteli ili ne. Dovereniiat potrebitel mozhe formalno da niama dostup, no pri zadavane na doverie kum nego spriamo faila, toi shte poluchi dostup do nego. Tuk sushto niama da promeniame nishto.

I taka, failut e zasekreten i ako sega se opitame da go otvorim, nishto niama da stane, dori i standartnite UNIX prava da ni pozvoliavat da go storim.

V programata rsbac_menu otivame v menyuto za upravlenie na potrebiteli ("User Attributes: Go to user attribute menu") i s nemalko udivlenie otkrivame, che za potrebitelia imame ne po-malko parametri otkolokoto za faila. Sega ni interesuvat tezi:

  • Security Level - Nivo na sekretnost na potrebitelia. Potrebiteliat mozhe da chete dokumenti s nivo ne po-goliamo ot negovoto.
  • MAC Categories - Kategorialno mnozhestvo na potrebitelia.

Izbirame potrebitelia, v domashnata direktoriia na kogoto suzdadohme nashiia fail mactest i da mu zadadem nivo ne sekretnst 2. Sega, sled kato tozi potrebitel vleze sledvashtiia put v sistemata, veche shte mozhe da otvaria tozi fail.

Vazhen moment: Modulut MAC pozvoliava da se izvurshva promiana na UID na potrebitelia, samo ako nivoto na sekretnost na tekushtiia potrebitel ne e po-nisko ot nivoto na sekretnost na noviia. Osnovniiat problem e v tova, che administratorut (root) vinagi ima maksimalno nivo na sekretnost.

Uprazhnenie za razrabotchitsi:
Razreshete problemi s maksimalnata sekretnost na root. Edin ot vuzmozhnite podhodi mozhe stane chrez dobaviane na nov atribut "Enforced MAC security level" analogichno na atributa "RC enforced role".

Modulut ACL

Mandatniiat dostup e hubav, no imame nuzhda ot neshto poveche. Imame nuzhda da kontrolirame pravata za dostup do faila s tochnost do milimetur, s tochnost do potrebitel ili do grupa ot potrebiteli.

S tazi tsel mozhem da vklyuchim modula ACL, koito dobavia kum standartnite prava spisutsi za kontrol na dostupa.

Da suzdadem direktoriia ~/acltest. Startirame programa rsbac_menu i izbirame v menyuto za upravlenie na pravata na tozi fail, sled koeto posochvame "ACL Menu: Go to ACL menu". Tam, za razlika ot predishnite sluchai, niama da vidim nikakvo izobilie ot prava, no tsuknete li na "Change Mask" shte vidite dulug spisuk s vuzmozhnosti. Eto i niakoi ot tiah, ot koito mozhe da se dobie predstava za kakuv totalen kontrol na dostupa mozhe da se ustanovi vurhu vsichki vidove resursi na sistemata:

  • CHANGE_GROUP - Smiana na grupata.
  • CHANGE_OWNER - Smiana na sobstvenika.
  • CHDIR- Smiana na direktoriia.
  • CREATE - Suzdavane.
  • DELETE - Iztrivane.
  • EXECUTE - Startirane.
  • LINK_HARD - Suzdavane na tvurda vruzka.
  • MODIFY_ACCESS_DATA - Promiana na informatsiiata za dostup do faila.
  • MODIFY_ATTRIBUTE - Promiana na rsbac atribut.
  • MODIFY_PERMISSIONS_DATA - Promiana na Unix pravata.
  • MODIFY_SYSTEM_DATA - Promiana na sistemni danni.
  • MOUNT - Izvurshvane na montirane.
  • READ_OPEN - Otvariane za chetene.
  • READ_WRITE_OPEN - Otvariane za chetene/zapis.
  • RENAME - Preimenuvane.
  • SEARCH - Izvurshvane na tursene.
  • SEND_SIGNAL - Izprashtane na signal do drug protses.
  • SHUTDOWN - Spirane/restartirane ne sistemata.

Da izklyuchim za direktoriiata ~/acltest atributa CHDIR. Sega veche nikoi ne mozhe da vleze v tazi direktoriia, nezavisimo koi e. Daite da go napravim po-interesno: da rechem, da napravim taka, che potrebiteliat test vse pak da vliza v tazi direktoriia. Vrushtame se otnovo v osnovnoto menyu na modula ACL i izbirame "Add ACL Entry: Add group, role or user entry". SHTe budem popitani kakvo iskame da dobavim. Otgovariame, che iskame da dobavim potrebitel ot spisuka. Vklyuchvame vsichki atributi (v tova chislo i CHDIR, otklyuchen v osnovnata maska) i se ubezhdavame, che samo test mozhe da vliza v tazi direktoriia.

Po podoben nachin mozhem da dobavim i grupa ot potrebiteli.

Osven tova, kogato ovladeete i roleviia mehanizum RC, mozhete da zadavate individualni nastroika na izbranite ot vas roli.

Uprazhnenie:
ACL pritezhava interesna vuzmozhnost za onaslediavane. Vsichki obekti imat ACL maski po podrazbirane (:DEFAULT:). Opitaite se da gi promenite. Budete vnimatelni, zashtoot ako mahnete niakoi prava ot maskata na otgovornika po sigurnostta, gubite vsiakakuv shans da promenite povtorno neshto v modula ACL, a ottam i za tsialata sistema.

Sledva...



<< Vuvedenie v RSBAC, chast IV | Vuvedenie v RSBAC, chast II >>