На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

СРЕДСТВА   ДЕТЕКТИРОВАНИЯ   ПОСТОРОННЕГО ВМЕШАТЕЛЬСТВА

IDES/NIDES(Intrusion-Detection Expert System/Next-Generation ■ IDES) от SRI International - это экспертная система обнару-^р^ЩЩг  жения постороннего вмешательства, работающая в реальном
времени. Система может следить за действиями пользователя на указанном компьютере и изучать обычное поведение от­дельных пользователей, групп, удаленных хостов и всей системы в целом. Если поведение какого-либо объекта отличается от ожидаемого или наруша­ет какое-либо правило (которое хранится в специальной базе данных), то система IDES/NIDES сообщит об этом администратору. За более подробной информацией об этой системе я отсылаю вас на Web-сайт компании SRI International, расположенный по адресу http://www.sri.com.
СРЕДСТВО
Как уже говорилось, файл utmp содержит информацию только о текущих пользо­вателях системы. С точки зрения администратора этого недостаточно для наблю­дения за поведением пользователей. Для решения этой проблемы в Unix есть файл wtmp, где хранится история регистрации пользователей в системе и их вы­хода из системы. По своему назначению файл wtmp очень похож на файл utmp, однако записи wtmp не удаляются. Поэтому администратор может узнать обо всех регистрациях в системе.
Так как записи файла wtmp не удаляются, с течением времени размер этого
файла становится все больше и больше. Поэтому необходимо периодически со­хранять копии этого файла. Если же этого не делать, то хакер, получивший доступ системе, может удалить весь файл и информация будет безвозвратно утеряна. Создание резервных копий необходимо еще и потому, что в файле wtmp хранится информация о некоторых важных системных событиях, вроде выключений системы.
Для получения доступа к файлу wtmp нужно воспользоваться командой last. На экране появится содержимое файла, причем первые записи соответствуют по­следним сеансам работы в системе. Другими словами, wtmp представляет собой стек LIFO. Далее приводится листинг — образец файла wtmp:


jamsa

% last

-10 <Enter>

 

 

 

 

 

 

slipl

ttyaO

 

Thu

Sep

4

08: 15

still

logged in

user

ttyp4

fakedhost.com

Thu

Sep

4

06: 15

still

logged in

hacker

ttyp3

hacker

Thu

Sep

4

08:15

- 09:00

(00 :45)

slipl

ttyaO

 

Thu

Sep

4

06: 16

- 08:30

(02 :14)

pppl

ttyal

 

Thu

Sep

4

05: 15

- 07:58

(02 :43)

ccr

ttya6

 

Thu

Sep

4

05:40

- 07:56

(02: 16)

ppp2

ttyb2

 

Thu

Sep

4

01: 45

- 07:54

(06 :09)

Кроме команды last существуют и другие методы просмотра файла wtmp. Напри­мер, с помощью команды ас можно сформатировать выводимые на экран дан­ные файла wtmp по группам, относящимся к одному человеку (параметр -р), или по датам (параметр -d). Более того, с помощью команды ас можно опреде­лить полное время работы какого-либо пользователя в системе. Например, да­лее приведен листинг, полученный с помощью команды ас.
jamsa % ас -р <Enter>
И наконец, с помощью команды ас можно проследить время работы одного пользователя в течение дня и благодаря этому вовремя распознать атаку. Напри­мер, далее приводится листинг, в котором содержится отсортированная по дням информация о пользователе Iklander.
jamsa % ас -dp Iklander <Enter>
Aug 31 total   8 .65
Sep 1 total 10.30
Sep 2 total 12.50
Sep 3 total 15.50
Sep 4 total 780.21
Обратите внимание: четвертого сентября пользователь Iklander проработал в системе 780 часов. Очевидно, что для этого ему нужно было одновременно
jamsa %
655.42 155.78 177.82 200.15 827.16 2016.33
hacker
е jren Iklander
user
total
несколько раз войти в систему. Скорее всего, кто-то взломал его пароль и вос­пользовался этим.
КОМАНДА SYSLOG
Для получения более подробной информации о пользователях можно применить команду syslog. Это средство Unix очень полезно для регистрации сообщений (message logging). Дело в том, что при получении очередной команды операци­онная система Unix генерирует некоторое сообщение. Регистрацией сообщений называется процесс создания записей о каждом подобном сообщении. Понятия «регистрация сообщений» и «аудит» являются синонимами. Первоначально это средство было реализовано в BSD Unix; в настоящее время оно включено прак­тически в любую версию операционной системы Unix. С его помощью систем­ные администраторы могут просматривать журналы регистрации, генерируемые различными программами.
Основой программы syslog является демон syslogd, (В Unix демоном называется агент службы. Если говорить простым языком, то демон — это программа, выполняемая в памяти системы и наблюдающая за потоками данных. Получив специальный приказ от операционной системы, такая программа начинает вы-поднять некоторые специфические действия.) Демон syslogd запускается на вы­полнение при загрузке операционной системы Unix. После запуска эта про­грамма начинает прослушивать три источника регистрационных сообщений (1).
Источник_Функция_
Сокет домена Unix, получающий сообщения от локальных
процессов
/dev/klog Сокет домена Unix, получающий сообщения от ядра Unix
port 514           Сокет домена Internet, получающий (с помощью UDP) _сообщения syslog от других машин_
Три источника сообщений демона syslogd.
Получив сообщение, демон syslogd проверяет свой конфигурационный файл, в котором определены места отправления, соответствующие каждому сообщению. (Обычно файл конфигурации называется syslog.conf, однако в некоторых версиях
Unix он может называться по-другому.) В зависимости от информации, храни­мой в конфигурационном файле, сообщение может быть разослано в несколько
мест, в одно место или проигнорировано. Каждый элемент конфигурационного файла состоит из поля селектора и поля действия. Поле селектора (selector field) указывает команде syslog, какие сообщения должны быть зарегистрированы. В этом поле находятся сокращенные имена программ (так называемые имена средств [facility name]), генерирующих сообщения, и уровень строгости (severity level). Реакция команды syslog зависит от важности сообщения и соответствующего ему уровня строгости. Приведен список программ, которые могут быть указаны в файле syslog.conf.


 

Имя средства

Программа

auth

Программы, использующие идентификацию

 

(например, login, su и т. д.)

authpriv

Остальные сообщения, генерируемые в процессе

 

идентификации

cron

Демон стой (он описан в одном из следующих

 

разделов)

daemon

Демоны системы

ftp

Сообщения ftpd (file transfer protocol daemon — демон

 

протокола передачи файлов, или просто демон ftp)

kern

Ядро Unix

localO-7

Сообщения, генерируемые локально

tpr

Система построчно-печатающего устройства

mail

Система почты

mark

Периодически генерируемые отметки времени

 

(записи, содержащие время и дату), с помощью

 

которых можно упростить поиск записей в журнале

 

регистрации

news

Система новостей

syslog

Сообщения syslogd (демон syslog)

user

Процессы пользователя (программы)

uucp

UUCP (протокол, обрабатывающий сообщения

 

[Internet], зашифрованные с помощью uuencode)

*

Все средства, кроме mark

 Имена

средств, поддерживаемые командой syslog.

Как уже отмечалось,

каждое поле селектора содержит уровень серьезности. В

таблице 12.3 приведены его возможные значения (выстроенные по мере убыва-

ния важности).

 

Уровень серьезности Значение

emerg

Экстренные ситуации, например, угроза сбоя

 

системы

alert

Важные условия, требующие немедленного

 

вмешательства

crit

Критические условия

err

Обычные ошибки

warning

Сообщения с предупреждениями

 Уровни серьезности (продолжение таблицы на следующей странице).
Уровень серьезности Значение
notice Сообщения, не связанные с какими-либо ошибками,
но требующие особого внимания
info Информационные сообщения
debug Сообщения, генерируемые при отладке _
Уровни серьезности (окончание).
Информация, расположенная в поле действия (action field), указывает команде, какие действия нужно произвести в ответ на получение некоторого сообщения. Например, в файле конфигурации может храниться приказ оповещать всех теку­щих пользователей и службы системы об экстренной ситуации. Кроме того, он может содержать приказ предупреждать администратора системы о всякой не­корректной попытке регистрации в системе. Далее приводится пример файла syslog.conf.
#
# syslog file
#
*.err;kern.debug;auth.notice /dev/console
*.err;kern.debug;daemon.info;auth.notice    /var/adm/messages
mail.crit;daemon.info; /var/adm/messages
lpr.debug /var/adm/lpd-errs
*.alert;kern.err;daemon,err; operator
*.alert; root
*.emerg; *
auth.notice @logginghost.com
В этом примере в первой и второй строке содержится указание демону syslogd выводить на системную консоль и в файл /var/adm/messages сообщения обо всех обычных ошибках (*.«г), сообщениях отладки, поступающих от ядра системы (kern.debug), и некорректных попытках регистрации в системе. В третьей строке описано поведение демона syslogd: он должен помещать в файл /var/adm/messages сообщения обо всех критических ошибках системы почты. В четвертой строке содержится указание немедленно посылать оператору сообщения обо всех ошиб­ках ядра Unix или демона (обратите внимание: эти сообщения не регистрируются в журнале). Пятая строка файла конфигурации указывает команде syslog отправ­лять все условия, требующие немедленного вмешательства, текущим пользова­телям с привилегиями пользователя root. И наконец, в последней строке файла содержится указание посылать все сообщения о некорректных попытках регист­рации в системе на хост @logginghost.com. На этом хосте хранятся записи обо всех попытках хакеров войти в систему.
WATCHDOG
Существует еще одна программа, позволяющая существенно улучшить встроенные средства аудита систем Unix. Програм­ма WatchDog (именно о ней сейчас пойдет речь) специально создана для работы под управлением систем SunOS. Можно . "загрузить из Internet пробную версию программы WatchDog 1.0 (срок действия — 60 дней). Эта программа управляет и просматривает запи­си аудита операционной системы SunOS. Кроме того, разработчики WatchDog внедрили в свое детище работающую в реальном времени поддержку откли­ков. Можно настроить программу так, чтобы она производила некоторые действия в ответ на определенные события или цепочки событий. Такие со­бытия называются важными.
В WatchDogmnan^m графический интерфейс Motif. Процессор программы производит обработку записей аудита в реальном времени. Можно управлять его действиями с помощью диалогового окна Control. Процессор просмат­ривает записи аудита в поисках новых записей. Обнаружив новую запись аудита, он сверяет ее с указанными администратором важными событиями.
Каждому важному событию соответствует некоторый набор действий. В случае появления подобного события программа й^в/сЛ^о^произведет соответству­ющие ему действия. Во-первых, программа просмотрит специальную базу данных в поисках указаний на то, какое сообщение нужно сгенерировать в ответ на появление события. После этого процессор произведет все запрог­раммированные ответы или выдаст сообщение администратору (или и то, и другое). Его действия определяются уровнем серьезности события. Кроме того, во время вынужденного простоя (новые сообщения еще не поступили) процессор занимается управлением средствами аудита.
В настоящее время существует версия WatchDog только для SunOS 4.1.2+. Кроме того, вы должны установить службу безопасности (SunOS Security), чтобы ввести в действие средства аудита. Отметим, что в пробную версию программы входят и файлы с технической документацией. Чтобы загрузить ее, посетите Web-сайт компании Infostream, расположенный по адресу http:// www.infstredm.com. Объем файлов - около 1 Мб. Кроме того, можно загру­зить сжатую с помощью программы gz/p версию. Обе версии содержат до­статочно большой таил с технической информацией. , .
SULOG
Я уже говорил о том, как в Unix создаются записи о регистрации каждого пользова­теля и сообщениях системы. В главе 17 будет рассказано о наиболее распростра­ненном типе атак на системы Unix. При проведении атаки хакер регистрируется в системе под именем какого-либо пользователя, а затем с помощью команды su пытается изменить текущее имя пользователя на имя другого пользователя. В нормальныхусловиях команда su используется только администраторами. Чаще всего администратор регистрируется в системе под своим именем (как обычный пользователь). Если же возникла необходимость произвести некоторые специ­фические действия, то он воспользуется командой su и зарегистрируется в сис­теме как администратор.
Демон syslogd создает записи о каждом использовании команды su. Кроме того, эта команда хранит точно такую же информацию в файле sulog, который нахо­дится в каталоге /var/adm. Допустим, взломщик попытается воспользоваться командой su, чтобы работать под именем пользователя, обладающего правами на использование команды rlogin (доступ к машинам сети). В этом случае в файле sulog останется запись об этой попытке.ACULOG
В файле acu/og располагается информация обо всех действиях пользователей, работающих со средствами удаленного доступа. Каждый раз, когда кто-нибудь использует эти средства (например, tip или си), операционная система создает соответствующую запись в файле aculog. Обычно он размещается в каталоге /var/ adm/aculog. Каждый элемент этого файла содержит имя пользователя, время, дату, номер использовавшегося телефона и состояние завершения звонка. (Об­ратите внимание на то, что команды UUCP также хранят свою информацию в файле aculog.) Далее приводится один из таких элементов:
uucp:daemon (Thu Sep 4 06:15:42 1997) <jamsa, 555-1212,lklander> call completed
Этот элемент содержит информацию о времени и дате доступа, номере телефона и пользователе, зарегистрировавшемся в системе посредством телефонного со­единения. С помощью файла aculog можно попытаться выследить хакера, ис­пользующего ваш хост в качестве перевалочного пункта. Другими словами, до­пустим, что хакер попытается присоединиться с помощью телефонной линии к Unix-хосту, чтобы оттуда попасть на другой (удаленный) хост. (Благодаря это­му его нельзя будет выследить по телефону и, кроме того, хакеру не придется платить за дальний разговор.) В этом случае система оставит соответствующую
запись в файле aculog.
ЗАПИСИ   О    ТРАНЗАКЦИЯХ  С   УКАЗАННЫМ ВРЕМЕНЕМ
Многие системы Unix позволяют выполнять программы в определенное админи­стратором время. Например, администратор может указать сетевой программе создания резервных копий запускаться на выполнение в два часа ночи. Как из­вестно, все нормальные люди предпочитают в два часа ночи находиться дома. Чтобы заставить Unix автоматически выполнять некоторые программы, можно воспользоваться демоном crond.
Кроме того, некоторые версии Unix включают поддержку файлов crontab. С их помощью можно запускать программы повторно в определенное время. Файл регистрации стоп может содержать записи обо всех утилитах, выполняемых про­граммой сгоп или ее демоном. Обычно этот файл располагается в каталоге var/ log/cron. Однако стоит отметить, что некоторые современные версии команды сгоп сохраняют записи файле syslog, а не стоп. Таким образом, эта команда может сохранять записи в нескольких местах одновременно. Поэтому при изуче­нии записей не забудьте просмотреть оба файла.
Взломщики любят изменять файл Ведь он информацию об огра­ничениях времени доступа (включая указанные в файле программы и сценарии). Изменив его, хакер может получить более высокие привилегии доступа. Регис­трационные журналы, генерируемые командой сгоп, помогают администратору системы обнаружить подозрительные действия как зарегистрированных, так и анонимных (незарегистрированных) пользователей. Например, к подозритель­ным действиям можно отнести попытку получить более высокий уровень приви­легий доступа к системе.
ИСПОЛЬЗОВАНИЕ РЕГИСТРАЦИОННЫХ ЖУРНАЛОВ SMTP
Система Unix регистрирует все транзакции в регистрационных файлах
syslog и sendmail. Оба эти файла содержат информацию, с помощью которой системный администратор может обнаружить попытки получить доступ к порту SMTP с целью использования некоторых ошибок Unix, связанных с обслужива­нием электронной почты. В журнале sendmail регистрируются все сообщения sendmail, значения уровня серьезности которых изменяются от debug и до crit. Все сообщения в журнале sendmail содержат внутри себя имя программы sendmail.
Обратите внимание на то, что у программы sendmail есть параметр командной строки (-£). С его помощью можно указать операционной системе установить
низший уровень серьезности регистрируемых сообщений. Сообщения, уровень
серьезности которых будет ниже указанного в этом параметре, не будут регистри­роваться в журнале. Но допустим, вы хотите, чтобы операционная система ре­гистрировала как можно больше информации, — присвойте параметру -L более высокое значение. Если же не нужно регистрировать информацию вообще, ука­жите в параметре значение 0.
РЕГИСТРАЦИЯ ИСТОРИИ ОБОЛОЧКИ
Одной из наименее известных возможностей Unix является журнал регистрации истории оболочки (shell history). В этом файле хранятся записи о недавно введен­ных пользователем командах. Это средство поддерживается как в оболочке С, так и в оболочке Когп.
Существует переменная окружения, которая определяет количество командных строк, хранимых в файле истории оболочки. В оболочке С такой переменной является Shistory, а в оболочке Korn - $HISTSIZE. Каждая оболочка хранит команды в файле, расположенном в домашнем каталоге пользователя. По умол­чанию в оболочке С этому файлу присваивается имя .history, а в оболочке Когп -.shjilstory. Нолзо второй оболочке пользователь может изменить имя этого файла с помощью переменной окружения SHISTFILE.
С помощью команды history можно отобразить на экране содержание журнала регистрации истории оболочки. Элементы этого журнала будут отсортированы в хронологическом порядке (вместе с порядковым номером). Чтобы порядковые номера не отображались на экране, воспользуйтесь параметром -И.
Журнал регистрации истории оболочки может оказаться очень полезным оружи­ем в борьбе против хакеров. Дело в том, что многие хакеры даже и не подозре­вают о его существовании; многие из них его попросту игнорируют. Таким обра­зом, злоумышленник может уничтожить все записи в других журналах регистра­ции, но забыть про файл регистрации истории оболочки. А с его помощью вы легко можете проследить за всеми действиями хакера, незаконно проникшего в вашу систему.

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика