Предлагаю новую тему для разговора - вирусологию

Applications development, KoOS API questions

POLL Нам нужна вирусология в МЕ|CO оси?

Total votes: 66
Да, это нужная тема.
56%
37
Нет, не надо, нам это не грозит
44%
29

  • SoUrcerer wrote:У меня однажды Касперский удалил cygwin. Так что не верьте антивирусникам безоговорочно. :) Только и всего.
    Это ты будешь прокурору типичным пользователям объяснять, что Кошмарский дурак. Поверят скорее более долгосрочному Кошмарскому. Даже если ложечки найдутся, осадочек опять таки останется. Я вот сейчас пишу карту города и все терзает мысль, как бы один из кошмарских не объявил вирусом написанное на ассемблере, потому что ему померещилось. Вирустотал в этом случае даже наоборот противопоказан - изучат найдут 5% совпадений и объявят заразой с рекомендацией для всей пачки антивирусов.
  • Политики доступа можно организовать совершенно любые на основе контроля запуска.

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

    Думаю надо включить несколько системных функций:
    1. Регистрация программы-антивируса как обработчика для протектора запуска. Протектор запуска - код для остановки задачи до подтверждения прав запуска, встроен в функцию запуска.
    2. Возврат от антивируса результата (только от зарегистрированного как антивирус процесса) код возобновление работы задачи после подтверждения.
    3. Отключение антивируса (в результате выхода из антивируса)
    3. Рекомендация антивирусу по добавлению файла в список доверенных
    4. Рекомендация антивирусу по удалению файла из списка доверенных
    5. Проверка файла без запуска
    6. Добавление файла в черный лист
    7. Удаление файла из черного листа

    Настройки антивируса (да-нет):
    1. Включено
    2. Блокировать по черному списку
    3. Доверять белому списку
    4. Выполнить анализ (по сигнатурам, базам, эвристикам)
    5. Запрашивать подтверждение
    6. Запускать только при подтверждении
    7. Добавлять запускаемые в список
  • Зачем так сложно?
    Пусть каждый файл и каждая папка имеют права стандартного набора - r/w/x для всех, r/w/x для владельца, r/w/x для определенной группы.
    Пусть имеются пользователи и группы. Обычный пользователь не может менять права на чужих файлах, и не может ставить флаг x для своих, в том числе скачанных из инета.
    Хочешь запустить программу - установи флаг запуска через учетку суперпользователя. Компилятор можно поместить в группу, которая создает запускаемые файлы с правами на запись для всех (чтобы пользователь мог их удалить, если что). Когда программа отлажена, флаг w для обычного пользователя с нее нужно снять. В общем, на словах это довольно-таки просто. На деле - потребует для каждого потока хранить имя группы и пользователя, который поток запустил, и отслеживание в модуле ФС доступа к файлам. Потребуется так же запись в ext2/3-разделы, и формат rd придется сменить с fat 12 на что-нибудь другое. И ОС будет безопаснее.
    А если пользователь захочет выстрелить себе в ногу - ничто не сможет помешать ему в этом.
  • тогда уж ext4, но без журнала. И еще у него есть ACL
  • Насчет ext4 - если будет стабильная реализация :twisted: а то я уже в ubuntu год назад наигрался, когда восстанавливал 200 гиг файлов
  • ext4 вполне стабилен. А вот убунта - она и в африке убунта :D
    Кроме прав доступа имеет смысл впиливать аналог fanotify/dnotify

    Но в первую очередь надо выбрать систему контроля доступа - дискретную (DAC), мандатную (MAC) или ролевую (RBAC)

    в случае реализации rbac антивирус в принципе не нужен.
  • Представил: ext4 на флопике. Хотя, можно сделать на fat-томе какой-нибудь tar.7z, и распаковывать потом. В таком случае нельзя будет перезаписать ядро на флоппи командой rdsave - и это хорошо. Хотя доступ к самому kernel.mnt останется :(
    DAC простой и понятный. MAC необходим для систем класса МСВС. RBAC выглядит сложным.
  • SoUrcerer wrote:Пусть каждый файл и каждая папка имеют права стандартного набора - r/w/x для всех, r/w/x для владельца, r/w/x для ...
    Ненавижу эту тупую систему. :evil:

    Файл - это данные определённого объёма имени и места. Возможно ещё, с данными о времени создания, модификации, доступа. Флаги архивности, только чтения, скрытости это куда ни шло. Но приписывать файлу флаги доступа - это идиотизм. Самый тупой идиотизм древнего юникса.
  • Пока что это лучшее в плане надежности из того что есть. Вне зависимости от того нравится это кому-то или нет.
  • Надёжности чего? Флаг это не криптография, а системная защита. А уж системная защита может быть и совсем не через флаги.
  • Что-то другие виды не сильно распространены.
    Last edited by Mario on Sun Dec 11, 2011 11:18 am, edited 1 time in total.
  • Я занял второй бит параметров запуска, это будет "запуск без блокировки протектором".
    Он нужен исключительно для того, чтобы показать принцип защиты: Если зловред был запущен, защита не поможет. (Он же просто выполнит запуск без блокировки!)

    Ещё мне нужно будет три системных функции.
    1. Регистрация антивируса в системе
    2. Обращение системе от антивируса (О разморозке или закрытии проверяемого процесса, о де-регистрации антивируса при выходе)
    3. Просьба антивирусу от программы (Например, обновить доверенный список после установки или обновления программы)
    Подскажите какие номера брать.

    И ещё мне нужно будет системные переменные:
    1. Признак работы защиты
    2. Идентификатор зарегистрированного как антивирус процесса.
    По каким адресам их разместить?
  • Зачем три системных функции? Нет-нет, одна функция и несколько подфункций!
  • Подскажите где почитать про момент распаковки kpack, а то в вики написано, что распаковывается ещё до проверки заголовка, а это скорее всего не так.
  • Who is online

    Users browsing this forum: No registered users and 9 guests