OberonCore https://forum.oberoncore.ru/ |
|
Защита операционных систем построенных на технологии Oberon https://forum.oberoncore.ru/viewtopic.php?f=6&t=161 |
Страница 1 из 1 |
Автор: | FromOGU [ Понедельник, 17 Апрель, 2006 15:07 ] |
Заголовок сообщения: | Защита операционных систем построенных на технологии Oberon |
Расскажите пожалуйста. Слышал, что там нет уровней привилегированности кода? |
Автор: | Vlad [ Вторник, 18 Апрель, 2006 11:20 ] |
Заголовок сообщения: | Re: Защита операционных систем построенных на технологии Obe |
FromOGU писал(а): Расскажите пожалуйста. Слышал, что там нет уровней привилегированности кода?
Уровней нет. Как и многопользовательности. Вся защита возложена на компилятор (который легко обмануть с помощью SYSTEM). |
Автор: | Илья Ермаков [ Вторник, 18 Апрель, 2006 12:45 ] |
Заголовок сообщения: | |
Цитата: Вся защита возложена на компилятор
Фактически так. Это проблема, проблема, которую потребуется решать при переходе к массовому использованию Оберон-систем. Просто изначально ставилась цель надежности в плане защиты от сбоев в специальных системах, а не защиты от вирусов и т.п. Согласитесь, во встроенную систему никто не станет вставлять дискету с вирусом О путях решения говорили уже и в соседней ветке. Определенный опыт накоплен в Java-технологиях, Microsoft тоже в NET Web Applications как-то ведь это решает (как - честно, еще не интересовался). А самый прямой путь, имхо - интеграция такой защиты в новые процессоры. |
Автор: | Info21 [ Среда, 19 Апрель, 2006 09:45 ] |
Заголовок сообщения: | Re: Защита операционных систем построенных на технологии Obe |
Vlad писал(а): Вся защита возложена на компилятор (который легко обмануть с помощью SYSTEM).
Во-первых, есть еще и загрузчик. Научить его проверять наличие импорта SYSTEM -- как двумя пальцами за ухом почесать. Во-вторых, точно так же легко проверять наличие слова SYSTEM в тексте модуля, подаваемого на вход компилятору. |
Автор: | Vlad [ Среда, 19 Апрель, 2006 10:01 ] |
Заголовок сообщения: | Re: Защита операционных систем построенных на технологии Obe |
info21 писал(а): Во-первых, есть еще и загрузчик. Научить его проверять наличие импорта SYSTEM -- как двумя пальцами за ухом почесать.
А толку, если SYSTEM может быть использован индиректно через дырявый системный модуль? Не говоря уже о том, что сам загрузчик обмануть ничего не стоит - грузится уже скомпилированный машинный код. |
Автор: | Илья Ермаков [ Среда, 19 Апрель, 2006 12:32 ] |
Заголовок сообщения: | |
Цитата: импорта SYSTEM
Так вроде SYSTEM как таковой и не импортируется. Это слово используется только как флаг для компилятора. А в конечном модуле остается только машинный код, порожденный для директив SYSTEM'а. И отличить небезопасный код от безопасного - это ого как непросто. |
Автор: | Сергей Губанов [ Среда, 19 Апрель, 2006 14:09 ] |
Заголовок сообщения: | |
Илья Ермаков писал(а): Это слово используется только как флаг для компилятора. Вот-вот...Я пытался с помощью полей Kernel.Module.imports / Kernel.Module.nofimps получить список импорта - чего-то не понял результатов: для некоторых модулей результаты правильные, а для некоторых - нет. Определённо есть корреляция между присутствием в массиве Kernel.Module.imports значений NIL и импортом псевдомодулей. Хотя в обратную сторону, это не верно: если модуль импортировал псевдомодули, то не факт увидеть их или NIL в массиве Kernel.Module.imports. Вобщем, если следующий код не печатает NIL-ы, то это еще не гарантирует того, что модуль на самом деле не импортирует псевдомодули: Код: MODULE TestSafeCheck; IMPORT Kernel, Log, Meta; PROCEDURE Check (IN name: ARRAY OF CHAR); VAR m: Kernel.Module; i: INTEGER; BEGIN m := Kernel.ThisMod(name); IF m = NIL THEN Log.String("Модуль " + name + " не найден"); Log.Ln ELSE IF m.nofimps <= 0 THEN Log.String("Модуль " + name + " ничего не импортирует"); Log.Ln ELSE Log.String(name + ": "); FOR i := 0 TO m.nofimps - 1 DO IF m.imports[i] # NIL THEN Log.String(m.imports[i].name$); Log.String("; "); ELSE Log.String("NIL"); Log.String("; "); END END; Log.Ln END END END Check; PROCEDURE Do*; BEGIN Check("Kernel"); Check("Meta"); Check("TestSafeCheck"); END Do; END TestSafeCheck. После выполнения TestSafeCheck.Do у меня печатается вот что: Цитата: Kernel: NIL; NIL; NIL; NIL; National;
Meta: Kernel; National; TestSafeCheck: Kernel; Log; Meta; Почему-то про модуль Meta "замалчивается" о том, что он тоже импортирует псевдомодуль, а про Kernel говорится как буд-то он импортирует всего 5 модулей (на самом деле 7). |
Автор: | CheshireCat [ Понедельник, 28 Август, 2006 07:41 ] |
Заголовок сообщения: | |
problem s bezopasnostyu imho v Oberone NET. prosto kak pologeno 1) programmy dolgny idti tolko v ishodnikah. 2) kompilirovat i ustanavlivat kod v sistemu dolgen odin chelovek, TOLKO otvetstvennoe za normalnuyu rabotu sistemy lico, tolko administrator. Pri sobludenii etih dvuh trebovaniy vse ok. A bez nih problemy budut v LUBOY operacionke)) ...plus Oberona v tom chto prikladnye programmy v nem tesnee integrirovany s sistemoy i znachit sodergat menshe ballastnogo interfeisnogo koda. menshe po razmeru - legche proveryat. plus kompilyator pomogaet... |
Автор: | Vlad [ Понедельник, 28 Август, 2006 13:29 ] |
Заголовок сообщения: | |
[quote="CheshireCat"]problem s bezopasnostyu imho v Oberone NET. prosto kak pologeno 1) programmy dolgny idti tolko v ishodnikah. 2) kompilirovat i ustanavlivat kod v sistemu dolgen odin chelovek, TOLKO otvetstvennoe za normalnuyu rabotu sistemy lico, tolko administrator. Pri sobludenii etih dvuh trebovaniy vse ok. [quote] 3) В прикладном коде не будет SYSTEM. Совсем. В системном коде его будет минимальное количество, он будет вылизан и он не будет безконтрольно модифицироваться. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |