Я не считаю себя крутым спецом в операционках. Имею
большой опыт программирования и системного администрирования разных систем, но
системного софта не писал, как-то не сложилось. Поэтому прошу не судить меня
строго за, может быть, неправильное использование терминов и недопонимание
системной архитектуры Linux.
Недавно я вспоминал свой опыт работы с
операционками. Пришёл к выводу, что системные логи почти не анализируются,
сисадмины зачастую сами пишут скрипты для добычи нужной им информации. Syslog
есть, анализа мало. Вспомнил, что когда-то вроде бы что-то такое было написано о
системах обнаружения вторжений. Я слышал о Snort, стал выяснять, набрёл на
название OSSEC. Эта система с открытыми исходниками, есть вариант под Linux,
обладает всеми свойствами системы обнаружения вторжений (СОВ). Можно было бы
вставлять её в базовый набор пакетов. Но можно сделать и
поинтереснее.
СОВ бывают сетевые и узловые (хостовые).
Функции сетевой СОВ почти полностью берёт на себя iptables,
который является теперь модулем ядра. Считаю, что код
узловой СОВ тоже должен быть модулем ядра и быть таким же обязательным, как
iptables. В Википедии описаны следующие функции СОВ: анализ системных вызовов,
логов приложений, модификаций файлов. Я бы добавил сюда ещё анализ состояния
процессов и межпроцессных коммуникаций. Анализом логов приложений (для
обнаружения атак, растянутых во времени) должен заниматься отдельный демон,
остальное можно сделать в модуле ядра. Если возникают непонятные ситуации при
анализе модификаций файлов, состояния процессов и межпроцессных коммуникаций, то
вызывается антивирусный демон. Антивирусы давно выросли из своего названия,
можно было бы назвать это средством борьбы с чужеродным кодом
(СБЧК).
Ядро Linux
пишется на C. Хотя ядро — это, по сути, набор объектов (пользователи, файлы,
процессы, потоки, сигналы и т. д.). Debian
уже сейчас, кроме ядра Linux,
предлагает для использования ядро FreeBSD, на подходе Hurd. Можно было бы создать
объектно-ориентированное ядро на C++, это, как минимум, интересная научная
разработка.
Вернёмся к анализу логов. Это, фактически,
история работы системы. Если сохранять как можно больше информации о системе, то
это можно использовать не только для анализа причин, по которым система пришла в
текущее состояние, но и для обучения компьютера, он мог бы приспосабливаться к
изменяющимся условиям работы (естественно, с разрешения пользователя). А это,
фактически, искусственный интеллект в приложении к компьютерам стандартной
архитектуры. Меняться и приспосабливаться должно не только внутреннее состояние
системы, но и интерфейс. Ну и, такие компьютеры должны обмениваться полученным
опытом друг с другом, Интернет-то под боком.
Давайте обменяемся мнениями, подключим специалистов по системному
программированию и операционным системам. К сожалению, у меня нет таких
знакомых. Сформулируем как надо и обратимся к специалистам Debian по ядру, а может, и к Линусу
Торвальдсу с Эндрю Мортоном.
Maxim Sakharov AKA
msugar,
Kemerovo,
Russia,
|