01.11.2011 15:55, Maxim Sakharov пишет:
СОВ для того и создавались, чтобы отслеживать состояние системы в
динамике. При нормальном подходе именно СОВ должна отслеживать
внедрение руткитов. Не хочется использовать СОВ - пожалуйста, не
используйте. Модуль ядра - он на то и модуль, чтобы использовать его
по мере необходимости.
Проблема в том, что до этого Вы предлагали не модуль ядра, а
приложение, идущее в базовом пакете.
Если я понял вас правильно, то антивирусы совсем не нужны. Я считаю,
что нужны. Пусть человек, пользующийся системой, сам выбирает, нужно
ему это или нет, но надо всё же хотя бы предоставить возможность
выбора. По поводу производительности. Linux используется не только на
персоналках, но и на мощных серверах, кластерах, суперкомпьютерах.
Linux уже давно занимает прочное положение на рынке серверов, а
сервера используются в самых разных направлениях. Есть не только
закрытые сервера баз данных, как в вашем случае, но и бастионы,
причём не всегда стоящие по периметру локальной сети. Теперь я вас
процитирую: "демон в ядре". Что вы имели в виду? Насколько я знаю,
процессы могут обращаться к ядру, ядро может управлять процессами.
Демону в ядре делать нечего.
Уточню.. имелось ввиду демон работающий в пространстве ядра.
Работать в пространстве пользователя оно не может. В противном случае
будет использовать API ядра. Однако руткиты же внедряются в области
памяти недоступные пользовательским программам. И Вашему модулю просто
подсунут нужный им вывод. В результате ресурсы будут тратиться напрасно.
Антивирусы это самое последнее дело. Современная практика доказывает
низкую эффективность антивирусов. Если вернуться к серверам, то на
каждом сервере висит один сервис. Сам сервис должен сидеть как минимум
за специализированным прокси или фаерволом. Доступ к серверу только для
внутренней сети по ключам и только для администраторов, и то под
непривилегированным пользователем. Есть ещё куча возможностей как
осложнить проникновение. И всё это гораздо эффективнее всяких
антивирусов. Это можно сравнить с гриппом. Можно поставить прививку (так
сказать превентивные меры), а можно ждать когда этот самый грипп найдёт
и затем бежать к врачу за лекарствами. Я предлагаю превентивные меры, Вы
предлагаете уже по факту.
Вот есть ситуация. Есть уязвимость в ядре из-за которой злоумыленник
может получить права рута. Как Ваш антивирус поможет предотвратить это ?
А что будет если в самом антивирусе будет существовать такая же
уязвимость ? Как антивирус будет определять какая операция ввода/вывода
правильная, а какая нет ? Что будет если злоумышленник изменит область
памяти так, что антивирус всегда будет получать неправильную информацию ?
Я никого не прошу переписывать миллионы строк кода. Ребята из Debian
не стали всовывать в ядро Linux понравившийся им код из FreeBSD, а
взяли окружение Debian и ядро FreeBSD. С Hurd, наверно, будет то же
самое. Объектно-ориентированное программирование создавалось с
определёнными целями, почему бы не использовать это для создания
ядра? Я слышал об операционках на Java, занявших свою узкую нишу. Про
научные разработки. Дейкстра со своими студентами в своё время создал
THE. Я думаю, студентам от этого была большая польза. Ребята хотя бы
кодить нормально научились. Ещё один пример. BSD появилась не
где-нибудь а в университете, и это ответвление UNIX оказало большое
влияние на развитие других операционных систем.
Если Вы не хотите изменять код, тогда зачем писать мейнтейнерам и
тем более Линусу ? Да и Debian/GNU Hurd существует. Наличие ОС на языках
отличных от Си ничего не доказывает. Мало того, их распространнённость
наоборот доказывает, что они преследуют чисто академическую цель. Цель,
конечно, достойная, но на данный момент все эти ОС неконкурентно
способны. Я знаю ОС например на PHP. А теперь вопрос, Вы поставите
такую ОС в продакшен ?
P.S. Не подумайте ничего плохо. Я буду только рад, если у Вас
получится что-то работоспособное. Если Вы напишете работающий антивирус,
то я - за.
С Уважением,
Валов Василий