Xii. Защита и безопасност на ос



страница4/5
Дата01.09.2016
Размер0.62 Mb.
#8028
ТипГлава
1   2   3   4   5

Физическа идентификация. Различен подход е да се проверява дали потребителят има магнитна карта. Тя се вкарва в терминала и се проверява за идентичността на потребителя. Методът може да се допълни с използването на парола.

Друг подход е да се измерват характеристики, които трудно се подправят -например отпечатъци на пръсти или глас. Директното визуално разпознаване засега не е осъществимо.

Следващ подход е разпознаване на почерка. Потребителят със специален молив изписва името си и компютърът го сравнява с известен образец. Дори по-добре е да не се сравнява подписа, а движението на молива при писането.

Практично е да се измерва дължината на пръстите и да се сравнява с базата от данни.

Може да се предложат и други средства, като например анализ на кръвта.

Други методи. За да се подобри безопасността на системата, в някои системи се вземат допълнителни мерки. Един от начините е системата да проверява подозрителни активности, опитвайки се да открие нарушение на безопасността. Един такъв пример е ОС с времеделене, която брои неуспешните опити за влизане на някакъв потребител. Повече опити от определен брой може да е сигнал за опит да се отгатне парола.

Друг метод е ревизия на влизанията. Води се журнал, в който се записват всички важни събития, например време, потребител и тип на достъп до обект. При нарушаване на безопасността журналът може да се използва за определяне как и кога е настъпил пробивът и евентуално размера на щетите. Също така, тези данни могат да се използват за възстановяване от нарушение и евентуално за разработка на по-добри средства за предпазване на системата.



12.2.4. Преодоляване на защитата на ОС

За да се провери безопасността на системата се правят изследвания, като обикновено се наема трупа от експерти, които да установят възможностите за проникване в ОС. Основна задача се явява оценка на количеството работа (усилия и ресурси), за да могат вредителите да получат непозволен (несанкциониран) достъп до системата. Линнде описва резултатите от редица изследвания в тази насока. По-долу са дадени някои от най-важните.



Типови функционалам дефекти

- Обща памет. Системата може да остави важна информация в основната, в дисковата и в други памети, след като ги разпредели на друг потребител (без предварително да ги изтрива).

- Кодиране. Списъкът от пароли трябва да се пази в кодиран вид (често това не се прави).

- Подразбиращо се доверие. Всяка подпрограма смята, че другата работи правилно (вместо да проверява параметрите, идващи от втората подпрограма).

- Идентификация. В много системи потребителите не са в състояние да се уверят, че апаратурата и програмите, с които работят, са действително нужните им. Тогава злосторник може лесно да подмени програма, тайно от потребителя.

- Комуникация между процесите. Вредители могат да направят опит да използват механизма send/receive. Например, те могат да заявят ресурс на системата, заедно с някаква парола. Върнатата информация може да съдържа потвърждение за правилност на паролата, потвърждаваща тяхната догадка.

- Разпадане на връзката. В мрежовите или с времеделене системи, в случай на разпадане на връзката, ОС трябва незабавно да завърши сеанса с потребителя или да направи така, че потребителят, преди да продължи работата, отново да се потвърди. Някои системи в такива случаи пускат изпълняваните процеси на произвола на съдбата. Вредител може да успее да овладее управлението над тези процеси и да използва достъпните им ресурси.

- Привилегии. В някои ОС много програми имат високи привилегии. Това противоречи на принципа за най-малки привилегии.

- Предаване на параметри. Да се предават параметри непосредствено в регистрите е no-безопасно, отколкото в регистрите да се поместват указатели към местата в паметта, заети от параметрите (предаване по адрес, вместо по стойност). При предаване по адрес може да се случи параметрите да останат в пространството на потребителя след проверката за тяхната коректност, Потребителят може след това да измени параметрите, преди системата да ги е използвала.

- Уловки за вредители. ОС може да съдържа някакви механизми, които да играят роля на примамки за неопитни злосторници. Те могат да се използват за първоначално откриване на нарушителите, но за съжаление в много системи липсват.

- Изолиране на програмите. Програма, взета от друг потребител, може да играе роля на „Троянски кон" и да краде или да поврежда файловете на използващия я потребител.

- Забрани. Потребителите често са предупреждавани, че някои възможности не могат да се използват, тъй като водят до некоректни резултати. В действителност тези възможности остават достъпни за потребителите.

- Прагови стойности. Необходимо е да предотвратяват някои нежелани действия, като например повторни опити да се влезне в системата. След определен брой опити трябва да се блокира дадения потребител (респ. терминал) и да се съобщи на администратора. Много системи не прилагат това средство.



Типови атаки на ОС

- Асинхронност. Когато се изпълняват асинхронни процеси, процес може да получи възможност за измени параметри, които друг процес е проверил за коректност, но все още не ги е използвал.

- Преглеждане. Потребител чрез преглеждане се опитва да определи къде в системата се пази привилегирована информация.

- Подвключване към линия. С помощта на специален терминал може да се направи подвключване към линията за връзка на потребител, който е влязъл в системата, но в момента не работи.

- Нелегални команди. В ОС под формата на поправка на грешки се вмъкват допълнителни команди. Те откриват възможност за несанкциониран достъп до ОС.

- Лишаване от достъп. Потребител стартира програма, която разрушава системата, като я въвежда в безкраен цикъл или монополизира системни ресурси. Така останалите потребители не могат да ползват услугите на системата.

- Разпадане на връзката. Вредител може да се опита да получи достъп да процес на потребител след разпадане на връзката, но преди ОС да научи за разпадането.

- Маскиране. Злосторник приема облика на редовен потребител, узнавайки по някакъв начин съответния познавателен знак.

- Атаки от специални клавиши. В много системи потребителят може да прекъсне изпълняван процес чрез натискане на специален клавиш, да изпълни някакви действия и да продължи изпълнението на процеса. В някои случаи вредител може да хване системата в незащитено състояние и лесно да получи управлението в свои ръце.

- Непредвидени параметри. Вредител може да използва системни извиквания с непредвидени параметри, разчитайки на недостатък на системния механизъм за проверка на параметрите. В много системи това води до объркване.

- Измама на оператора. Възможно чрез измама някои да застави оператора да извърши действия, които да водят до нарушаване секретността на системата.

- Прехващаща врата. Тайна, недокументирана входна точка в програма, използвана от някой (например от автора) за получаване на достъп до системата, прескачайки обичайните процедури за безопасен достъп.

-Логически бомба. Процедура, вградена в легитимна програма, която проверява и „избухва" при срещане на определени условия (ден от седмицата, липса или наличие на някакви файлове, определен потребител, стартирал приложението и др.). Спуснатата бомба може да променя или унищожава данни, да спре машината и т.н.

- Троянски кон. Полезна програма или командна процедура, съдържаща скрит, недокументиран код. Изпълнението на програма води до изпълнение на тайна процедура, която извършва нежелани или вредни действия. Тези програми могат да се използват за изпълнение на функции, които неупълномощен потребител не може да изпълни директно. Типичен пример е компилатор, който добавя код в компилирана програма, например системната програма login. Кодът създава прехващаща врата, позволяваща на потребител да влезе в системата със специална парола. Възможно е Троянски кон да се използва за разрушаване на данни или за други вредни действия.



Червей, бактерии и вируси

Заплахи срещу ОС, като логическа бомба, прехващаща врата, Троянски кон, използват уязвимостта на компютърните системи, свързана с приложни и помощни програми, като компилатори и редактори. Друг вид заплаха е злонамереното използване на системните ресурси и потребителските файлове. Методите за това, базиращи се на възможността процесите да създават други процеси, са разгледани по-долу [44, 76, 87, 88, 91, 93]



Червей. Червеят е програма, която се самокопира и изпраща свои копия по мрежата от компютри. При пристигането си в някакъв възел, червеят може да се активира, за да се възпроизведе и разпространи отново. Освен това, червеят обикновено изпълнява някои нежелани функции - той може да се държи като вирус или да вмъкне Троянски кон, или да върши разрушителни действия.

За да се размножава по мрежата, червеят използва някои мрежови възможности: електронната поща (изпраща свое копие на друга система), отдалечено влизане (влиза като потребител в отдалечена система и използва команди да се самокопира), отдалечено изпълнение (изпълнява свое копие в отдалечена система).

Като пример ще бъде разгледан проблемът с Интернет. Най-голямото насилие срещу безопасността на компютърните системи е направено на 2.11.1988 г. от студента R.T. Morris, който пуска по мрежата вредителска програма, която изважда от строя хиляди компютри по целия свят, докато бъде проследена и унищожена.

Тази история започва, когато Морис открива в UNIX/BSD две грешки, които дават възможност за неавторизиран достъп до машини в цялата мрежа. Работейки сам, той написва самокопираща се програма, наречена червей, която използва тези грешки и се самокопира във всяка машина, до която би могла да получи достъп. Той работи над програмата месеци, като грижливо я настройва и тя да прикрива своя път.

Не е известно дали освобождаването и е замислено като тест или е било действителна работа. Във вески случай за няколко часа тя изважда от строя повечето системи VAX и SUN. Мотивацията на Морис е неизвестна.

Технически програмата съдържа две програми - самозареждаща се и същинския червей. Първата има 99 реда на С и се нарича l1.с. Тя се компилира и изпълнява на атакуваната система. След като тръгне, тя се свързва с машината, откъдето идва, зарежда главния червей и го изпълнява. След като преодолее известии трудности да скрие съществуването си, червеят преглежда маршрутизиращата таблица на новия възел-главен компютър, за да види с какви компютри той е свързан и се опитва да разпространи самозареждащата програма в тях.

Приложени са три метода за инфектиране на нови възли. Първият опитва да стартира отдалечена обвивка, използвайки команда rsh. Някои компютри се доверяват на други и с готовност изпълняват rsh, без по-нататъшна идентификация. Ако това работи, отдалечената обвивка зарежда програмата-червей и продължава да заразява нови машини оттам.

Вторият метод използва nporpaма finger, която е на разположение във всички BSD-системи и която позволява на потребител, където и да е в Интернет, да въведе finger name@site за извеждане на дисплей информация за лицето в съответния възел. Информацията обикновено включва името на лицето, login, домашен и служебен телефон, име и телефон на секретарката, номер на факс и т.н.

Програмата finger работи така. Във вески BSD-възел фонов процес finger daemon се изпълнява през цялото време, записвайки и отговаряйки на запитвания от цялата мрежа. Програмата-червей извиква finger със специално ръчно оформен 536-байтов низ като параметър. Този дълъг низ препълва буфера на процеса и презаписва неговия стек. Използваната грешка тук е в процеса при проверка за препълване. Когато процесът се върне от процедурата, в която е бил по време на получаването на заявката, той се връща не в main, но към процедура в 536 байтовия низ в стека. Тази процедура се опитва да изпълни /bin/sh. Ако това успее, червеят има обвивка shell, изпълнявана в атакуваната машина.

Третият метод зависи от грешка в системата за поща (sendmail), която позволява на червеят да изпрати копие от самозареждащата програма и да я изпълни.

След като е установен, червеят се опитва да разруши потребителските пароли. Морис не е трябвало да изследва как да го направи. Това, което е направил, е било да помоли баща си, експерт по безопасността в National Security Agency в САЩ, за препечатка на класическата статия на тема, която Морис и Томпсън са написали преди десетилетие в Bell Labs (1979г.). Всяка повредена парола позволява на червея да влиза в коя да е машина, където притежателят на паролата е включен.

По всяко време, когато червеят предприеме достьп до нова машина, той проверява дали други негови копия не са вече активни там. Ако е така, новото копие напуска, с изключение веднаж на седем, когато то продължава, вероятно да поддържа разпространението на червея, дори ако администрацията там е стартирала собствена версия на червея, за да измами действителния червей. Използването на 1 от 7 създава много червей и причинява всички заразени машини да спрат. Ако Морис е бил изоставил това и е излизал, когато друг червей е бил забелязан, червеят вероятно е щял да продължава, без да бъде детектиран.

Морис е бил хванат, когато един от неговите приятели е говорил с компютърния репортер Дж. Марков на New York Times и се е опитвал да го убеди, че инцидентът си е инцидент, червеят е безвреден и че авторът съжалява. Приятелят се изпуска, че входното име (login id) на виновника е rtm. Конвертиране в име на притежател е било лесно - трябвало е само да се пусне finger. На следващия ден историята е на първата страница на вестника.

Бактерии. Бактерията е програма, която се самокопира (обикновено се възпроизвежда експоненциално). Нейната задача е да консумира системните ресурси (процесор, памет, дисково пространство), не позволявайки на потребителите достъп до тях.

Вируси. Вирусите са специална категория атака над системата, която понякога става главен проблем за потребителите. Вирусът е програмен сегмент, който е прикрепен към легитимна програма с цел да зарази други програми. Типичният вирус работи така. Авторът на вируса най-напред разработва полезна нова програма, която съдържа скрит код на вируса. Съставянето на вируси изисква голяма опитност и умение, и затова обикновено предлаганата програма има отлични качества.

Когато програмата се стартира, тя започва да преглежда двоичните програми дали вече са заразени. Когато се открие здрава програма, тя се инфектира чрез добавяне на вирусния код накрая на файла, а в началото се записва преход към него. Когато вирусният код се изпълни, започва изпълнението на първата команда от нормалната програма. По този начин, при всяко изпълнение на заразената програма, се инфектират нови програми.

Възможно е вирусът, освен заразяването на други програми, да върши и други повреди, като изтриване, модифициране и т.н. на файлове. Например вирус може да инфектира зареждащия сектор на твърдия диск, като направи невъзможно пускането на компютъра, или да пита за парола, известна само на автора на вируса.

В [91] се прави следното категоризиране на вирусите:

Паразитни вирусы. Традиционните и най-разпространените вируси, които се прилепват към изпълнимите файлове.

Резидентны вируси. Разполагат се в основната памет, като част от резидентните системни програми. Оттук те могат да инфектират всяка изпълнявана програма.

Вируси в зареждащия сектор. Инфектират главния зареждащ запис или други зареждащи записи, когато системата се зарежда от инфектиран диск.

Невидими вируси. Форма на вирусите, които явно са разработени да се крият от антивирусните програми. Например, те могат да компресират файла, така че инфектираната и оригиналната програма имат еднаква дължина.

Полиморфни вирусы. Те мутират с всяка инфекция, правейки невъзможно разпознаването им чрез сигнатура.

По-лесно е да се предотвратят вирусите, отколкото да се лекуват. Затова трябва да се купуват само гарантирано фирмени продукти или да се използват антивирусни програми, но те проверяват само за известии вируси с известно закъснение.

Също така, справочникът с двоичните файлове може да се забрани за запис от обикновените потребители, с което вирусът ще бъде затруднен да модифицира други двоични програми. Това може да се направи в UNIX, но не може да се приложи в MS-DOS, защото справочниците и не могат да се направят незаписваеми въобще.

По-общо решение е да се преформатира диска (заедно със зареждащия сектор) и след това да се инсталират всички проверени незаразени файлове. Изчислява се сумата по четност (нечетност) за всеки файл и се прави списък от двойките (файл, сума), който се съхранява на сигурно място (възможно в кодиран вид). При всяко зареждане на системата всички суми се изчисляват отново и се сравняват с тези от списъка. Файл с несъответстваща сума се отхвърля. Този начин позволява ранна детекция на вируси, но не може да предотврати заразяването.



12.2.5. Безопасността в Windows NT

Някои основни компонента на системата за безопасност на Windows NT (2000) са описани в гл. V: Монитор за наблюдение на безопасността (SRM), Сървър на локалната безопасност (LSA), процесът WinLogon, услуга за мрежово влизане.

Процесът-сървър на LSA отговаря за стратегията за безопасност в локалната система (кои потрбители могат да влизат, управление на паролите, списък на привилегиите на потребителите и групите и др.), идентификация на потребителите и изпращане на съобщения за отчитане на достъп към модула за отчитане на събития.

Системните настройки за стратегията на безопасност се пазят в база от данни за стратегията на LSA. SRM и LSA комуникират чрез метода LPC.

Друг сървър — мениджър на безопасните сметки (SAM) управлява база от данни, съдържаща имената на потребителите и групите (заедно с паролите и другите атрибути), дефинирани за определена система или домен (ако системата управлява домен).

Динамична библиотека за идентификация извършва проверка на автентичността на потребителите чрез базата от данни на SAM и връща информация за потребителите.

NT (2000) предоставя единен механизъм за контролиране на достъпа до обектите - процеси, потоци, файлове, семафорите, събития и други [20, 65, 73, 74, 88]. Контролът над достъпа се управлява от два елемента: признак за безопасен достъп и дескриптор на безопасността (вж. гл. II).



Контролиране на достъпа. Когато потребител се регистрира в системата, NT използва име и парола за идентификация на потребителя. WinLogon предава тази информация на LSA, който се обръща към динамичната библиотека за идентификация. При положителен отговор, библиотеката създава logon-сесия с уникален идентификатор и връща на LSA необходимата информация за създаване на първичен признак за безопасен достъп. LSA добавя в признака идентификатори на безопасността (SID), привилегии и др., и връща на WinLogon манипулатор на признака за безопасност. WinLogon създава процес за потребителската обвивка и свързва признака с този обект (фиг. 2.27). Когато процесът породи нов процес, детето наследява признака.

Признакът за безопасен достъп пази цялата необходима информация относно безопасността (което ускорява проверката на достъпа) и позволява на всеки процес да променя по лимитиран начин характеристиките си на безопасност, без да влияе на другите процеси, протичащи в полза на потребителя. Последното се отнася и до привилегиите, които могат да се свържат с потребителя - признакът дава какви привилегии може да има той. Първоначално, признакът е инициализиран с всяка от привилегиите в забранено състояние. По-нататък, ако някой от потребителските процеси иска да извърши привилегирована операция, процесът може да разреши съответната привилегия и да предприеме достъп. Не е желателно да се пази на едно системно място цялата информация за безопасност за потребител -разрешаването на привилегия за един процес ще доведе до разрешаването и за всички.

С всеки обект, за който е възможен достъп между процесите, е свързан дескриптор на безопасност. Главен компонент в дескриптора е списъкът за контролиране на достъпа (ACL). Списъкът ACL включва елементи за контролиране на достъпа (АСЕ), определящи правата за достъп на различните потребители и потребителски групи за този обект. Когато процес поиска достъп до обекта, SID на процеса се съпоставя със списъка за контролиране на достъпа до обекта за получаване на разрешение за достъп.

Когато приложение отвори обръщане към обезопасен обект, NT проверява дали дескрипторът на безопасността позволява достъп на приложението. Ако проверката е успешна, NT кешира допуснатите права на достъп.

Важен аспект на безопасността е концепцията за представяне, позволяваща на потоците да имат, ако представят клиент, собствени признаци за безопасен достъп, различни от този на процеса. Ако клиент и сървер общуват чрез RPC, сървърът може временно да допусне идентичността на клиента и да прецени заявката за достъп по отношение на правата на клиента. След достъпа, сървърът преминава към собствената си идентичност.

Признак за безопасен достъп. На фиг. 12.11а е показана структурата на признака за достъп:

SID. Индивидуален идентификатор на безопасност, идентифициращ потребителя във всички машини в мрежата. Това обикновено кореспондира с потребителското входно име.


Идентификатори SID на групи. Списък на групите, към които принадлежи потребителят. Групата е набор от потребителски идентификатори, които се означават като група за целите на управлението на достъпа. Всяка трупа има уникален SID на група (по POSIX). Достъпът до обект може да се дефинира на базата на груповите SID, на индивидуалните SID, или комбинирано.

Привилегии. Списък от системни услуги, изискващи контролиран достъп, които може да използва този потребител (например, създаване на признак). Много потребители нямат никакви привилегии.

Подразбиран собственик. Ако процес създаде нов обект, полето определя кой е собственик му. Обикновено, собственикът на новия процес е този на пораждащия процес. Обаче, потребителят може да определи, че подразбиран собственик на който и да е процес-дете е SID на групата, към която принадлежи потребителят.

Подразбиран ACL. Това е начален списък от защити, приложени към обекти, създавани от потребителя. Потребителят може да променя ACL за всеки обект, които той или някой от групата му притежава.



Дескриптор на безопасност. На фиг. 12.116 е показана структурата на дескриптора на безопасността:

Флагове. Дефинира типа и съдържанието на дескриптора. Флаговете индицират дали са представени SACL и DACL (вж. по-долу), записани ли са те в обекта от подразбиращ се механизъм, дали указателите в дескриптора използват абсолютна или относителна адресация. Относителните дескриптори се изискват за обекти, прехвърляни през мрежата (например информация, прехвърляна чрез RPC).

Собственик. Собственикът на обекта обикновено може да изпълнява всяко действие над дескриптора на безопасност. Собственикът може да бъде индивидуален или групов SID. Собственикът може да променя съдържаниетс на DACL.

SACL (системен ACL). Списъкът включва само един тип елементи за контролиране на достъпа (АСЕ за надзор). Определя кои видове операции над обекта трябва да генерират проверяващи съобщения (отчетената информация се съхранява в специален файл). Приложение трябва да има съответни привилегии в признака си за достъп, за да чете или записва SACL на обект. Така се предотвратява четене на SACL (и да се научи какво трябва да се прави, за да избегне генерирането на проверки) или запис на SACL (да се генерират много проверки, за да се предизвика незабелязано преминаване на недопустима операция) от неавторизирани приложения.

DACL (ACL no усмотрение). Списъкът включва два типа елементи за контролиране на достъпа (АСЕ) - позволяващи и забраняващи правата, определени в маската за достъп (вж. по-долу). Той определя кои потребители и групи имат достъп до този обект и за какви операции.

Когато се създаде обект, създаващият процес, като собственик, може да му присвои собствения си SID или кой да е SID на група от признака си за достъп Процесът не може да присвои собственик, който не е в текущия признак за достъп. Следователно, всеки процес, който е получил правото да сменя собственик на обект, може да го прави, но със същите ограничения. Причината е да се предпази потребител от скриване на следите си след предприемане на неавторизирано действие.

Списъкът за контролиране на достъпа (фиг. 12.11в) е в основата на контролирания достъп. Всеки списък включва общо заглавие и променлив брой АСЕ. Всеки елемент АСЕ включва индивидуален или SID на група и маска на достъп, определяща правата, предоставени на този SID. Когато процес опита достъп до обект, обектният мениджър чете SID и груповите SID от признака за достъп и след това сканира надолу DACL на обекта. При съвпадение, т.е. намерен е АСЕ с SID, съвпадащ с един от тези в признака за достъп, процесът има права за достъп, определени от маската на достъп в този АСЕ.

На фиг. 12.12 е показана маската на достъп. Младшите 16 бита определят правата на достъп, които се прилагат за конкретен обектен тип. Например, бит 0 за събитиен обект е достъп Event_Query_Status, докато за файлов обект бит 0 е достъп File Read data.

Старшите 16 бита на маската се прилагат за всички типове на обектите. Пет от тях са стандартни типове на достъп:

Synchronize. Дава разрешение за синхронизация на изпълнението с някои събития, асоциирани с този обект. В частност, този обект може да се използва в чакаща функция.

Write_Owner. Позволява програма да модифицира собственика на обекта. Ползата е, че собственикът винаги може да променя защитата на обекта -собственикът не може да бъде отхвърлен от правото Write_DАС.

Write_DАС. Позволява на приложение да променя DACL, оттук и защитата на този обект.

Read_Control. Разрешава на приложение да поиска собственика и полетата DACL на дескриптора на безопасност на този обект.

Delete. Разрешава на приложението да унищожи този обект.

Най-старшите четири бита са общи типове на достъп. Те разрешават да се зададат определени типове на достъп за няколко различии обектни типове. В противен случай, за да защити всeки обект от всeки тип, приложението трябва да състави отделен АСЕ за всеки обектен тип и да изпрати коректен АСЕ при създаването на всеки обект. С общите типове за достъп е достатъчен един АСЕ, който да се използва при създаването на всеки от тези обекти. Общите битове оказват влияние и на стандартните типове на достъп.

Отделните битове на общите типове на достъп имат предназначнието:

Generic_All. Разрешава всички достъпи.

Generic_Execute. Разрешава изпълнение, ако е изпълним.

Generic_Write. Разрешава запис.

Generic_Read. Разрешава само четене.

Останалите два бита в маската имат специално значение. Битът Access_System_Security позволява промяната в контрола на достъп за този обект. Обаче, не само този бит трябва да се установи в АСЕ за даден SID, но и признакът за достъп трябва да има разрешена съответна привилегия.

Битът Maximum_Allowed не е в действителност бит за достъп, той модифицира алгоритьма за сканиране на DACL за този SID. Нормално, NT сканира списъка или, докато намери АСЕ, който позволява (битът е „1") или отказва (битът е „О") заявения от процеса достъп, или докато стигне края на списъка (тогава достьпът се отказва). Битът позволява на собственика да дефинира съвкупност от права за достъп, което е максимума, разрешен на даден потребител. Ако приложение не знае всички операции, коrто ще извърши по време на сесия, то има три възможности:

• Да опита да отвори обект за всички възможни достъпи. Недостатък на подхода е, че достьпът може да бъде отказан, дори приложението да има всички права на достъп, изисквани за тази сесия.

• Само да отвори обект, когато специфичен достъп е заявен, и да отваря нов манипулатор на обекта за всеки отделен тип заявка. Това е предпочитаният подход - няма отказване на достъп или излишни достъпи, но води до допълнителни разходи.

• Да опита да отвори обект за толкова достъпи, каквито обектът разрешава за този SID. Така, на приложението няма да се отказва достъп, но то може да има и излишно разрешени достъпи. Това може да маскира някои грешки в приложението.

Накрая, важна черта на NT е, че приложенията могат да използват системата за безопасност за обекти, дефинирани от потребителя.



Каталог: files -> tu files
tu files -> Увод в компютърната графика
tu files -> Електрически апарати
tu files -> Средства за описание на синтаксиса
tu files -> Stratofortress
tu files -> Начало Решаване на проблеми
tu files -> Писане на скриптове за bash шел : версия 2
tu files -> 6Технологии на компютърната графика 1Модели на изображението
tu files -> Z=f(x), където x- входни данни; z
tu files -> Body name библиотека global Matrix imports (достъп по име) … var m[N, N] := … end decl., proc … resource f final code imports node, Matrix end name var x: node node; if x … Matrix m[3,4] :=: … end


Сподели с приятели:
1   2   3   4   5




©obuch.info 2024
отнасят до администрацията

    Начална страница