Это статья первая из трех частей об утилитах, которые являются полезными для предотвращения
проникновений, происходящих в ОС OpenBSD, Linux или Solaris. Эта часть будет о системных утилитах, вторая будет о инструментах работы с файлами, а завершающая станет описанием утилит для роботы с сетью. Описанная информация относится к ОС
OpenBSD 3.2, Debian,
GNU/Linux3.0, RedHat 8.0 и
Solaris 9 (Solaris 2.9 или SunOS 5.9).

В процессе чтения данной статьи вы можете встретить множество описанных утилит, которые
могут отсутствовать в вашей системе. Вот
где вы их можете взять:

OpenBSD ports
system

FreeBSD ports system
Freeware for Solaris

HOWTO install packages on a Debian system 
Installing packages on a RedHat system
GNU binutils
Lsof
Sudo

Давайте ознакомимся с лучшими утилитами, которые используются для ответа на угрозу вторжения. Они будут описаны в той последовательности, в какой они должны быть использованы после вторжения. Вторжение, вообще, вещь предсказуемая и поэтому
предотвратимая. Использование альтернативных способов хранения данных, правильная конфигурация системы с использованием минимального количества доступных сервисов, своевременная установка всех заплат для используемого ПО должны вас избавить от необходимости использования данных утилит. 

Вы должны также понять, что как только
нападающий получил управление системой, доверять ей уже практически невозможно. Многие из описанных приложений активно используются пользователями в повседневной работе. А ведь многие из них могут быть использованы злоумышленником для сокрытия своего присутствия в системе. Такая возможность оставаться незаметным в системе возможна благодаря не принятым ранее контрмерам
(Dino Dai Zovi's paper on kernel rootkits,
Sealing the linux
kernel
, gr-security linux kernel
patch
, LIDS linux kernel patch).
Это, в свою очередь, значит, что вы не можете доверять результатам роботы используемых вами инструментов. Вам необходимо быть крайне скептичными, педантичными и дотошными при реакции на происшедшую атаку. 

Инструменты, используемые вами, должны быть подлинными, чтобы вы могли доверять полученным результатам. Есть несколько технологий
безопасного хранения утилит (CD Writing.HOWTO,
F.I.R.E.
(Forensic and Incident Response Environment) Bootable CD
, Knoppix Linux,
How to Make a
Bootable, Full System OpenBSD CD-ROM
, LNX-BBC mini-linux distribution,
Google's Tiny Linux distributions list), они основаны на хранении таких
программ с использованием только читаемые средства информации. А такой подход более безопасен, по отношению к
использованию утилит захваченной системы.

Все необходимые методы были приняты, но тем не менее система была успешно атакована. Что же делать?

Для начала, давайте обсудим утилиты, которыми мы воспользуемся
для определение происшедшей атаки. Не будем
обращать особого внимания на используемые ключи, поскольку они индивидуальны для каждой ОС.

vmstat - программа, дающая статистику о работе памяти, центрального процессора и подсистемах диска. Ее полезно использовать в некоторых промежутках времени, чтобы видеть статистику роботы системы и если что-то работает, не так как ожидалось, вовремя среагировать.

mpstat - программа, которая доступна в Solaris и Linux, ее функция выводить статистику роботы процессора. Она также поддерживает опцию позволяющую давать статистику отдельно взятого процессора, для мультипроцессорных систем. vmstat не имеет этой способности. 

iostat - отображает более детальную статистику о подсистеме диска, чем vmstat. 

sar, sa, lastcomm и last - позволяют исследовать происшедшие
события в системе, а также активные сейчас. sar - системный инструмент анализа производительности системы, доступный в ОС Solaris и Linux. Данные о производительности, с которые можно ознакомится, подобны тем, которые мы получим от vmstat, mpstat, и iostat. Статистика sar используется, для проверки более старой статистики. lastcomm - инструмент, который отображает команды, выполненные в системе, начиная с наиболее новых. Для этого
он используют данные хранящиеся в системе. Sa, доступная на *BSD и Linux, предоставляет пользователям большее количество параметров в форматировании выводимых данных.

ps - отображает список процессов, выполняющихся в системе. 

top - подобна команде ps, но top отображает статистику роботы CPU. 

Lsof - показывает все файлы, открытые операционной системой в настоящее время. В ОС Unix практически все будет файлом, так что lsof показывает существенное количество информации о состоянии этой операционной системы. 

readelf - подробно отображает ELF (Executable Linking and Format) заголовок двоичного файла. Эти детали могут помочь в определении функций выполняемых программой. 

od - выводит дамп содержания файла в различных пользовательских форматах. od полезен чтобы смотреть на необработанные биты в файлах для определения их содержания и соответственно функций. 

ldd - читает содержание ELF заголовка, и показывает какие объектные библиотеки использует выполняемая программа. 

strings отображает первые 4(или больше) ASCII символов, определенного файла. Это полезно для обнаружения целей с которыми он используется приложением. 

find - команда, которая рекурсивно ищет файл в указанной директории. 

strace - утилита, которая создает процесс или присоединяется к активному в настоящее время процессу и показывает все используемые им системные вызовы. Это может быть полезно для классификации выполняемой программы, чтобы определить цель ее выполнения. strace доступен в
Linux. strace в ОС Solaris - truss. *BSD использует программу, называемую ktrace. 

sudo - дает возможность администраторам предоставлять для пользователей право выполнять команды от имени иного пользователя, чтобы избавится от необходимости разглашать пароль root. 

grep (global regular expression print) - ищет указанный пользователем образец в некотором файле. grep использует
регулярные выражения. Строки, содержащие искомый текст, будут отображены на экране. GNU grep имеет некоторые дополнения к типичному grep, которые делают его более мощным. Для Perl существует
pcregrep, который позволяет определять регулярные выражения в соответствии с синтаксисом Perl. 

less - программа, отображающая страницу текста на экране

Если вы установили этот набор, то сможете легко узнать информацию о работе системы. 

Удача - это когда заготовленное используется по мере возможности.

К сожалению, удача, подобно технологии, беспристрастна. У атакующего
есть много возможностей для успешного захвата вашей системы. Используемая им уязвимость может присутствовать в ОС или
программном обеспечении. А если она еще не была опубликована,
то можно предположить, что ваш нападавший был на IRC и получил/купил
свежий эксплоит. Таким образом он имеет все шансы захватить ваш сервер.
Ваша работа, как администратора, должна быть всегда совершенна
и потому хакер должен получить это право однажды. 

(Продолжение следует)

Оставить мнение