Опубликован: 20.02.2006 | Доступ: свободный | Студентов: 2944 / 491 | Оценка: 4.22 / 3.75 | Длительность: 33:08:00
ISBN: 978-5-9556-0087-1
Лекция 11:

Судебные средства

Средства судебного анализа

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

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

Fport: Средство идентификации процессов для Windows

Fport

Автор/основной контакт: Foundstone, Inc.

Web-сайт: http://www.foundstone.com/index.htm?subnav=resources/navigation.htm&subcontent=/resources/freetools.htm

Платформы: Windows NT, 2000, XP

Лицензия: Freeware

Рассмотренная версия: 2.0

Это небольшое добавление к системе может быть полезно при исследовании машины на предмет подозрительной активности. Нередко вирус, резидентный в памяти, или "троянская" программа проявляются как процесс, выполняющийся под странным именем или с необычным портом. Fport ищет открытые сетевые порты TCP или UDP и выдает их вместе с идентификатором ассоциированного процесса, именем процесса и маршрутным именем. Программа Fport аналогична собственной команде Windows netstat за исключением того, что предоставляет несколько больше информации и позволяет различным образом форматировать вывод для анализа. Это помогает отследить подозрительные программы, которые открывают сетевые порты на вашей машине. Подобное поведение служит признаком "троянской" программы.

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

Программа Fport создана и распространяется компанией Foundstone Corporation, занимающейся разработкой защитного программного обеспечения и оказывающей консультационные услуги. Компания предлагает несколько других свободных средств безопасности, и их web-сайт в любом случае стоит посетить. Хотя исходные тексты программы Fport не вполне открыты (распространяются только бинарные файлы), она условно свободна, и для ее применения в коммерческих целях имеются лишь незначительные ограничения.

Установка Fport

Загрузите zip-файл с web-сайта Foundstone и распакуйте его в отдельном каталоге. Там появятся два файла - исполнимый файл Fport и небольшой информационный README.

Применение Fport

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

Для запуска Fport в каталоге с исполнимым файлом введите в командной строке fport. Будет распечатан список всех портов, открытых в данный момент, и ассоциированных с ними приложений (листинг 11.1).

Port v2.0 - TCP/IP Process to Port Mapper
Copyright 2000 by Foundstone, Inc.
http://www.foundstone.com

Pid  Process      Port  Proto Path
940  svchost   -> 135   TCP C:\WINDOWS\system32\svchost.exe
4    System    -> 139   TCP
4    System    -> 445   TCP
1348 WCESCOMM  -> 990   TCP C:\Program Files\Microsoft ActiveSync\WCESCOMM.EXE
4072 WCESMgr   -> 999   TCP C:\Program Files\Microsoft ActiveSync\WCESMsg.exe
1032 svchost   -> 1025  TCP C:\WINDOWS\System32\svchost.exe
1032 svchost   -> 1031  TCP C:\WINDOWS\System32\svchost.exe
1032 svchost   -> 1034  TCP C:\WINDOWS\System32\svchost.exe
4    System    -> 1042  TCP
4072 WCESMgr   -> 2406  TCP C:\Program Files\Microsoft ActiveSync\WCESMgr.exe
2384 websearch -> 3008  TCP C:\Program Files\websearch\websearch.exe
1144           -> 54321 TCP C:\temp\cmd.exe
4072 WCESMgr   -> 5678  TCP C:\Program Files\Microsoft ActiveSync\WCESMgr.exe
2384 websearch -> 8755  TCP C:\Program Files\websearch\websearch.exe
136  javaw     -> 8765  TCP C:\WINDOWS\System32\javaw.exe
1348 WCESCOMM  -> 123   UDP C:\Program Files\Microsoft ActiveSync\WCESCOMM.EXE
2384 websearch -> 123   UDP C:\Program Files\websearch\websearch.exe
940  svchost   -> 135   UDP C:\WINDOWS\system32\svchost.exe
1144           -> 137   UDP
1932 svchost   -> 1026  UDP C:\WINDOWS\System32\svchost.exe
Листинг 11.1. Выдача Fport

При просмотре этого листинга взгляд скользит по нормальным на вид выполняющимся службам и программам, пока где-то в середине не натыкается на программу cmd.exe, запущенную из каталога Temp. Это бинарный файл командного интерпретатора, и ему нечего делать в каталоге Temp. Тот факт, что у службы нет имени, также подозрителен. Наконец, номер входного порта не соответствует ни одному из известных сервисов. На самом деле, если поискать его в базе данных известных троянских программ в Интернете (http://www.simovits.com/trojans/trojans.html), можно обнаружить совпадение с номером порта документированной троянской программы. Это служит весомым свидетельством того, что система была взломана. Теперь вы должны решить, нужно ли выключить систему, чтобы провести дополнительный судебный анализ.

В табл. 11.1 перечислено несколько опций Fport для сортировки вывода. Можно также использовать опцию -h для вывода краткой справочной информации.

Таблица 11.1. Опции сортировки Fport
Опция Описание
-a Сортировка вывода по имени приложения
-ap Сортировка вывода по маршруту приложения
-i Сортировка вывода по идентификатору процесса (PID)
-p Сортировка вывода по номеру порта.

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

lsof: Средство идентификации портов и процессов для UNIX

lsof

Автор/основной контакт: Ray Show

Web-сайт: http://freshmeat.net/projects/lsof/

Платформы: Linux и большинство UNIX

Лицензия: GPL

Рассмотренная версия: 4.68

Зеркалирующие сайты (допускающие анонимный доступ по FTP без обратного DNS):

thewiretapped.net/pub/security/host-security/lsof

ftp.tau.ac.il/pub/unix/admin/

Это средство аналогично только что рассмотренному Fport для Windows. LSOF (LiSt Open Files) ассоциирует открытые файлы с процессами и пользователями. Оно напоминает команду netstat, но выдает также сетевые порты, используемые сервисом. Это важно при попытке отследить активную программу в сети. Зачастую единственным способом найти неуловимые ошибки является наблюдение за тем, какие сетевые порты открываются.

Средство lsof предустанавливается в некоторых дистрибутивах UNIX и Linux и доступно в форме RPM на установочных дисках других, таких как Mandrake и RedHat Linux. Чтобы выяснить, установлено оно или нет, наберите lsof и посмотрите, каков будет ответ.

Установка lsof

  1. Загрузите tar-файл с прилагаемого к книге компакт-диска или с официального web-сайта. Если IP-адрес, с которого выполняется загрузка, не имеет обратной записи DNS, то основной FTP-сайт не позволит с ним соединиться. Попробуйте один из указанных зеркалирующих сайтов.
  2. Распакуйте tar-файл.
  3. Вы увидите несколько текстовых файлов и еще один tar-файл, что-нибудь вроде lsof_4.68_src. В этом файле содержатся исходные тексты. Распакуйте его и войдите в этот каталог.
  4. Прежде чем начинать процесс компиляции, необходимо выяснить сокращенный код вашего диалекта UNIX. Так как программа lsof переносима практически на любую версию UNIX, требуется сообщить, какая разновидность UNIX применяется, чтобы процедура конфигурирования могла настроить ее для вашей системы.

    Чтобы выяснить коды различных версий UNIX, введите

    ./configure -h

    Например, код Linux - linux (не правда ли, просто?)

  5. Когда вы будете готовы, наберите следующую команду
    ./configure код_диалекта_UNIX

    Программа будет сконфигурирована для компиляции.

  6. Когда конфигурирование закончится, наберите:
    make
  7. Это завершает процесс сборки.

Программа lsof готова к употреблению.

Применение lsof

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

Если вы хотите увидеть все открытые в данный момент файлы в системе и ассоциированные с ними процессы, наберите

lsof -n

Опция -n предписывает lsof не пытаться разрешать записи DNS для каждого IP-адреса, подключившегося к вашей машине. Это существенно ускоряет процесс. Примерный вид выдачи показан на листинге 11.2.

COMMAND  PID   USER  FD TYPE     DEVICE    SIZE   NODE NAME
xfs      903    xfs  0r  DIR        3,1    4096      2 /
atd      918 daemon rtd  DIR        3,1    4096      2 /
atd      918 daemon txt  REG        3,6   14384 273243 /usr/sbin/atd
sshd     962   root cwd  DIR        3,1    4096      2 /
sshd     962   root rtd  DIR        3,1    4096      2 /
sshd     962   root txt  REG        3,6  331032 274118 /usr/sbin/sshd
dhcpcd   971   root cwd  DIR        3,1    4096      2 /
dhcpcd   971   root rtd  DIR        3,1    4096      2 /
dhcpcd   971   root txt  REG        3,1   31576  78314 /sbin/dhcpcd
xinetd  1007   root cwd  DIR        3,1    4096      2 /
xinetd  1007   root  5u IPv4       1723            TCP 127.0.0.1:1024 (LISTEN)
xinetd  1007   root  8u unix 0xc37a8540           1716 socket
rwhod   1028   root cwd  DIR        3,1    4096  61671 /var/spool/rwho
rwhod   1028   root rtd  DIR        3,1    4096  61671 /var/spool/rwho
rwhod   1028    tim cwd  DIR        3,1    4096  61671 /var/spool/rwho
crond   1112   root cwd  DIR        3,1    4096     14 /var/spool
crond   1112   root  lw FIFO        0,5           1826 pipe
        1112   root  2w FIFO        0,5           1827 pipe
nessusd 1166   root cwd  DIR        3,1    4096      2 /
nessusd 1166   root rtd  DIR        3,1    4096      2 /
nessusd 1166   root txt  REG        3,6 1424003 323952
init       1   root cwd  DIR        3,1    4096      2 /
init       1   root rtd  DIR        3,1    4096      2 /
init       1   root txt  REG        3,1   31384  75197 /sbin/init
Листинг 11.2. Вывод команды lsof -n

Соединения на этом листинге выглядят нормально, вопросы вызывает лишь подключение через службу rwho. Стоит убедиться, что допустимый пользователь применяет команду законно. Если этот счет принадлежит кому-то из нетехнического персонала, может понадобиться дальнейшее расследование.

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

lsof маршрут/имя_файла

Замените маршрут/имя_файла маршрутом и именем файла, который вас интересует, в данном случае - /etc/passwd. Необходимо задать для lsof полное маршрутное имя, чтобы программа нашла этот файл.

Еще один вариант применения lsof - получение списка всех открытых сокетов. В этом случае можно будет увидеть работающий сервер, о котором вы не знаете. Формат этой команды таков:

lsof -i

В результате получается выдача, аналогичная представленной на листинге 11.3. На нем можно видеть все выполняющиеся программы, включая sshd и nessusd - демоны для SSH и Nessus. Можно даже видеть отдельные соединения с этими службами. Похоже, что кто-то использует в данный момент сервер Nessus. Проверив IP-адрес, можно понять, что это внутренний пользователь. На самом деле это ваша собственная машина! Поэтому беспокоиться не о чем.

COMMAND  PID USER FD TYPE DEVICE SIZE NODE NAME
portmap  733  rpc 3u IPv4   1417       UDP *:sunrpc
portmap  733  rpc 4u IPv4   1426       TCP *:sunrpc (LISTEN)
sshd     962 root 3u IPv4   1703       TCP *:ssh (LISTEN)
xinetd  1007 root 5u IPv4   1728       TCP localhost.localdomain:1024 (LISTEN)
rwhod   1028 root 3u IPv4   1747       UDP *:who
nessusd 1166 root 4u IPv4   1971       TCP *:1241 (LISTEN)
nessusd 1564 root 5u IPv4   1972       TCP 192.168.1.101:1024->192.168.1.2:1994 (ESTABLISHED)
Листинг 11.3. Вывод команды lsof -i

Можно задать для просмотра определенный IP-адрес или хост, помещая знак @ и адрес после ключа -i. Например, команда

lsof -i@192.168.1.0/24

отображает все соединения, исходящие из вашей сети, при условии, что ваша внутренняя сеть в нотации с косой чертой задается как 192.168.1.0/24.

Роман Попов
Роман Попов

После прохождения курса Стандарты инфрмационной безопасности мне предложено получение Удостоверения о повышении квалификации от НИУ ВШЭ по программе Менеджмент информационной безопасности. Программа включает в себя ряд курсов которые я уже ранее проходил. Какой порядок действий в данном случае? Как прозводится перезачет результатов? И какие экщамены мне надо еще доздать чтобы получить удостоверение?

Александр Путятинский
Александр Путятинский

Добрый день по окончании данного курса выдается сертификат?