Защита от хакеров корпоративных сетей - страница 127

Шрифт
Интервал


Сравнение атрибутов файла

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

Ниже представлен уместный фрагмент кода файла ext2_fs.h инсталляции Red Hat 6.2 Linux:


>/*

>* Structure of an inode on the disk

>*/

>struct ext2_inode {

>__u16 i_mode; /* File mode */

>__u16 i_uid; /* Owner Uid */

>__u32 i_size; /* Size in bytes */

>__u32 i_atime; /* Access time */

>__u32 i_ctime; /* Creation time */

>__u32 i_mtime; /* Modification time */

>__u32 i_dtime; /* Deletion Time */

>__u16 i_gid; /* Group Id */

>__u16 i_links_count; /* Links count */

>__u32 i_blocks; /* Blocks count */

>__u32 i_flags; /* File flags */


В большинстве UNIX-систем атрибуты файла описаны похожим способом. В их состав входят владелец, размер, несколько полей времени и даты, группа, счетчик связей этого файла, число используемых блоков диска и флаги файла (стандартные разрешения чтения, записи и выполнения файлов).

Какие атрибуты интересны для нас? В большинстве случаев это один из атрибутов времени и размер файла. Любой из них может быть определен переадресовыванием вывода команды ls – al в файл до и после наступления анализируемого события с последующим сравнением двух файлов, как это показано в следующем примере:


>[elliptic@ellipse]$ diff /tmp/before /tmp/after

>2,3c2,3

>< drwxrwxr-x 2 ryan ryan 7168 Jun 16 01:55 .

>< drwxrwxrwt 9 root root 1024 Jun 16 01:55 ..

>–

>> drwxrwxr-x 2 ryan ryan 7168 Jun 16 01:56 .

>> drwxrwxrwt 9 root root 1024 Jun 16 01:56 ..

>97c97

>< -rw-r—r– 1 ryan ryan 31533 Jun 16 01:55 fs.h

>–

>> -rw-r—r– 1 ryan ryan 31541 Jun 16 01:56 fs.h


Из примера видно, что файл fs.h изменился. Этот способ сравнения содержимого директории обнаруживает изменение любого атрибута файла. Быстрый способ простого отслеживания изменения атрибута времени заключается в использовании команды ls – al, показанной в следующем примере. Команда ls – al в примере соединена программным каналом с командой more:


>[elliptic@ellipse]$ ls -alt | more

>total 2224

>drwxrwxrwt 9 root root 1024 Jun 16 01:56 ..

>drwxrwxr-x 2 ryan ryan 7168 Jun 16 01:56 .

>-rw-r—r– 1 ryan ryan 31541 Jun 16 01:56 fs.h