У каждого файла в Linux есть связанная с ним структура inode, в которой хранятся свойства MAC (modify/access/change - модификация/доступ/изменение), чтобы отслеживать состояние файла. При использовании системных файлов в inode эти свойства обновляются. Свойство Modify определяет состояние, когда в файле изменяются байты, если кто-то, например, пишет в файл или файл добавляется или удаляется из каталога. Access изменяется, когда запускается или открывается поле или когда получен доступ к каталогу. Change относится к событиям, когда изменяется режим или принадлежность файла или когда изменяется сам файл.
В системе Linux можно увидеть свойства любого файла при помощи утилиты stat(lu). Посмотрим на файл test.txt и его свойства MAC:
ids $stat test.txt
File: "test.txt"
Size: 15 Filetype: Regular File
Mode: (0640/-rw-r ) Uid: ( 500/ lance) Gid: ( 500/ lance)
Device: 3,8 Inode: 278758 Links: 1 Access: Sat Jun 24 10:42:11 2000(00243.10:21:58) Modify: Sat Jun 24 10:42:11 2000(00243.10:21:58) Change: Sat Jun 24 10:42:11 2000(00243.10:21:58)
Stat сообщает нам, что это файл размером 15 байт, принадлежащий файлу UID и GID lance. Он был создан 24 июня 2000 года в 10:42:11. С тех пор к нему не обращались.
Теперь посмотрим, что произойдет, когда мы получим доступ к файлу при помощи команды cat(1). Обратите внимание на то, что текущая дата/время - 22 февраля 2001 года, 20:05:50.
ids $date
Thu Feb 22 20:05:50 CST 2001
ids $cat test.txt This is a test ids $stat test.txt
File: "test.txt"
Size: 15 Filetype: Regular File
Mode: (0640/-rw-r ) Uid: ( 500/ lance) Gid: ( 500/ lance)
Device: 3,8 Inode: 278758 Links: 1 Access: Thu Feb 22 20:05:55 2001(00000.00:00:03') Modify: Sat Jun 24 10:42:11 2000(00243.10:23:47) Change: Sat Jun 24 10:42:11 2000(00243.10:23:47)
Обратите внимание на то, что время Access изменилось на текущее время, когда мы получили доступ к файлу 22 февраля в 20:05:55. Однако время Modify и Change остались прежними, так как файл не был изменен.
Теперь давайте изменим права доступа к файлу при помощи команды
chmod(1):
ids $date
Thu Feb 22 20:06:57 CST 2001
ids $chmod 755 test.txt
ids $stat test.txt
File: "test.txt"
Size: 15 Filetype: Regular File
Mode: (0755/-rwxr-xr-x) Uid: ( 500/ lance) Gid: ( 500/ lance) Device: 3,8 Inode: 278758 Links: 1 Access: Thu Feb 22 20:05:55 2001(00000.00:01:07) Modify: Sat Jun 24 10:42:11,2000(00243.10:24:51) Change: Thu Feb 22 20:07:00 2001(00000.00:00:02)
Обратите внимание на то, как обновилось значение времени Change, но осталось прежним время Modify. Если бы мы изменили файл, например добавили или удалили текст, были бы обновлены значения Change
и Modify.
ids $date
Thu Feb 22 20:06:57 CST 2001
ids $echo "add some text" » test.txt
ids $stat test.txt
File: "test.txt"
Size: 29 Filetype: Regular File
Mode: (0755/-rwxr-xr-x) Uid: ( 500/ lance) Gid: ( 500/ lance) Device: 3,8 Inode: 278758 Links: 1 Access: Thu Feb 22 20:05:55 2001(00000.00:06:25) Modify: Thu Feb 22 20:12:17 2001(00000.00:00:03) Change: Thu Feb 22 20:12:17 2001(00000.00:00:03)
Записав время MAC для всех файлов в системе, можно определить, что и когда в ней происходило. Если взломщик запускает файл, изменяется время доступа к нему. Как мы упоминали ранее, grave-robber записывает время MAC для всех файлов взломанной системы и хранит эти данные в файле под названием body. Затем можно воспользоваться этой информацией, чтобы получить полное представление о том, что и когда произошло. Все, что нужно сделать сейчас, - взять эту информацию и последовательно расположить файлы на основании значений MAC.
Для этих целей мы воспользуемся утилитой mactime, которая превращает данные о времени MAC, хранящиеся в файле body, в список файлов по времени их использования.
Эта команда берет информацию MAC, хранящуюся в файле body, и последовательно размещает файлы на основании их значений MAC, начиная с 6 ноября 2000 года, дня перед началом нападения. Эта команда была запущена для паролей, принадлежности файлов и групп файлов, которые располагаются в разделе /mnt. Результат, сохраненный в файле mactime.txt, выглядит следующим образом:
Nov 08 00
Nov 08 00
Nov 08 00
Nov 08 00
Nov 08 00
Nov 08 00
Nov 08 00
На основании этого списка последовательности событий можно определить следующее. Первые явные признаки каких-то действий в файловой системе появляются 8 ноября в 06:25:53. В это время происходит обращение к программе uptime, скорее всего, запущенной взломщиком для того, чтобы определить, как долго уже действует система. Обратите внимание на то, как установлен атрибут Access. За этим следует модификация в файле /etc/hosts, deny; кажется, файл был сброшен на ноль. Обратите внимание на значения свойств Modify и Change. Это указывает на то, что взломщик отключил контроль доступа ТСРгаррег. Отключение TCP Rapper весьма распространено среди взломщиков, так как после этого разрешается доступ для любой удаленной системы. К каталогу со сценариями запуска системы /mnt/etc/rc. d/init. d также был открыт доступ, значит, взломщик получил листинг каталогов. Затем кто-то запускает программу ftp, предположительно для того, чтобы загрузить в систему файл.