OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 24 Май, 2018 01:36

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
СообщениеДобавлено: Понедельник, 17 Апрель, 2006 15:07 

Зарегистрирован: Вторник, 11 Апрель, 2006 19:46
Сообщения: 12
Расскажите пожалуйста. Слышал, что там нет уровней привилегированности кода?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 18 Апрель, 2006 11:20 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
FromOGU писал(а):
Расскажите пожалуйста. Слышал, что там нет уровней привилегированности кода?


Уровней нет. Как и многопользовательности. Вся защита возложена на компилятор (который легко обмануть с помощью SYSTEM).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вторник, 18 Апрель, 2006 12:45 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8945
Откуда: Россия, Орёл
Цитата:
Вся защита возложена на компилятор


Фактически так. Это проблема, проблема, которую потребуется решать при переходе к массовому использованию Оберон-систем. Просто изначально ставилась цель надежности в плане защиты от сбоев в специальных системах, а не защиты от вирусов и т.п. Согласитесь, во встроенную систему никто не станет вставлять дискету с вирусом :-)

О путях решения говорили уже и в соседней ветке. Определенный опыт накоплен в Java-технологиях, Microsoft тоже в NET Web Applications как-то ведь это решает (как - честно, еще не интересовался). А самый прямой путь, имхо - интеграция такой защиты в новые процессоры.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 19 Апрель, 2006 09:45 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7817
Откуда: Троицк, Москва
Vlad писал(а):
Вся защита возложена на компилятор (который легко обмануть с помощью SYSTEM).


Во-первых, есть еще и загрузчик. Научить его проверять наличие импорта SYSTEM -- как двумя пальцами за ухом почесать.

Во-вторых, точно так же легко проверять наличие слова SYSTEM в тексте модуля, подаваемого на вход компилятору.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 19 Апрель, 2006 10:01 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
info21 писал(а):
Во-первых, есть еще и загрузчик. Научить его проверять наличие импорта SYSTEM -- как двумя пальцами за ухом почесать.


А толку, если SYSTEM может быть использован индиректно через дырявый системный модуль? Не говоря уже о том, что сам загрузчик обмануть ничего не стоит - грузится уже скомпилированный машинный код.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 19 Апрель, 2006 12:32 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8945
Откуда: Россия, Орёл
Цитата:
импорта SYSTEM


Так вроде SYSTEM как таковой и не импортируется. Это слово используется только как флаг для компилятора. А в конечном модуле остается только машинный код, порожденный для директив SYSTEM'а. И отличить небезопасный код от безопасного - это ого как непросто.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 19 Апрель, 2006 14:09 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Илья Ермаков писал(а):
Это слово используется только как флаг для компилятора.
Вот-вот...

Я пытался с помощью полей 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).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Понедельник, 28 Август, 2006 07:41 

Зарегистрирован: Вторник, 04 Июль, 2006 13:04
Сообщения: 88
Откуда: Novosibirsk
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...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Понедельник, 28 Август, 2006 13:29 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
[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. Совсем. В системном коде его будет минимальное количество, он будет вылизан и он не будет безконтрольно модифицироваться.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2018, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB