Поддержание достоверности лог-файлов IIS

В настоящее время многие веб-администраторы сталкиваются с серьезными вторжениями в свои серверы, которые часто заканчиваются судебными исками. Первым очевидным свидетельством для обнаружения злоумышленников, конечно, являются лог-файлы веб-сервера. Однако в этом случае сразу же возникает вопрос о том, возможно ли использовать IIS лог-файлы в качестве свидетельских показаний в суде. Может ли представитель защиты заявить, что записи в этих файлах недостаточно достоверны и поэтому не могут считаться свидетельским показанием?
Недавно в рамках одного криминального расследования я занимался исследованием серьезного вторжения. Злоумышленник проник в IIS-сервер, загрузил свои программные инструменты, с помощью которых вторгся во внутреннюю базу данных компании. Мы приблизительно знали, когда это случилось, но было неизвестно, через какой из нескольких сотен веб-сайтов на дюжине серверов произошло вторжение.
Перекопав сотни лог-файлов веб-серверов, я натолкнулся на один лог-файл, в котором среди тысяч отметок о вхождениях имелась одна пустая строчка. Я проверил последнее изменение даты этого файла и обнаружил, что она была изменена спустя два дня после того, как лог-файл был закрыт. Сотни мегабайтов показаний лог-файла внезапно стали бесполезными из-за единственной пустой строчки. Поскольку лог-файлы хранились на том же самом сервере, через который произошло вторжение, злоумышленник, возможно, легко удалил отметку о своем вхождении или, хуже того, заменил ее ложной записью. Изменение всего лишь одного лог-файла заставляет подвергнуть сомнению истинность всех лог-файлов на этом сервере.
Для доказательства подлинности ваших лог-файлов необходимо привести убедительные аргументы, так как только в этом случае эти лог-файлы могут быть приняты судом в качестве свидетельства. Поэтому необходимо предпринять меры защиты ваших лог-файлов, которые бы гарантировали их точность, подлинность, а так же возможность обращения к IIS лог-файлам. Хотя, следует отметить, что существует множество юридических сложностей, и в каждом конкретном случае необходимо найти верное решение проблемы. Ниже приведены некоторые советы, которые должны увеличить достоверность ваших IIS лог-файлов.

точность лог-файла

Понятие точность применительно к лог-файлу означает, что вы можете доказать точность данных этого файла. Даже самая небольшая неточность может поставить под сомнение истинность данных. Следующие действия помогают вам обеспечить точность данных.
Регистрируйте все. Настройте свои IIS лог-файлы так, чтобы в них записывались все действия. Хотя некоторые администраторы не видят большой ценности в хранении этой дополнительной информации, тем не менее, каждая такая запись имеет значение, если мы производим расследование. Однажды, проверяя лог-файлы после вторжения, я по некоторым признакам обнаружил, что нападавший создал файлы в директории C:\ \WINNT. Однако я не мог найти эти файлы на жестком диске. Просмотрев более внимательно лог-файлы, я заметил, что имя сервера не соответствовало имени, зарегистрированному в IIS лог-файлах. Оказалось, что компания недавно перевела веб-сайт на новый сервер. Проверив старый сервер, я немедленно нашел нужные файлы. Без зарегистрированного имени хоста я не смог бы сделать это.
Кроме того, информация о посетителях сети помогает устанавливать, что нападение исходит от определенной компьютерной системы или зарегистрированного пользователя. Например, предположим, ответчик утверждает, что хакер вторгся в его компьютер и установил анонимный прокси сервер, а затем использовал его для нападения на другие системы. Как доказать, что трафик прибыл от веб-браузера некоторого пользователя или нападение исходило от кого-то еще? Хотя не всегда это можно доказать, но чем больше информации вы соберете, тем больше шансов разобраться с данным конкретным случаем.
Синхронизируйте время. Синхронизируйте ваши IIS-серверы с внешним источником времени, пользуясь службой времени Windows. Если вы используете домен, служба времени будет автоматически синхронизирована с контроллером домена. На автономном сервере вы можете синхронизировать время следующим образом:

Key: HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\
Setting: Type
Type: REG_SZ
Value: NTP
Key: HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\
Setting: NtpServer
Type: REG_SZ
Value: tock.usno.navy.mil (см. http://tycho.usno.navy.mil/ntp.html для списка NTP-серверов.)
Key: HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\
Setting: Period
Type: REG_SZ
Value: 24 (количество синхронизаций в день. Если 24, то синхронизация будет производиться каждый час. Можно устанавливать и меньшее количество.)

Другая проблема, связанная со временем, заключается в том, что IIS записывает лог-файлы, используя единое время. Предполагается, что это помогает синхронизации, когда сервер обслуживает зоны во многих часовых поясах. Однако Windows вычисляет единое время, изменяя системное время на поясную поправку. Единственный способ быть уверенным в правильности установки единого времени — правильная установка местного времени.
Существует способ, позволяющий проверить то, что IIS лог-файлы используют местное время. Вы можете проверить установку часового пояса сервера, просмотрев первые вхождения в лог-файле. Если на вашем сервере поясная поправка равна -0600, то первые вхождения (за день) в лог-файле должны появиться около 18:00 (00:00 - 06:00 = 18:00). Поскольку в едином времени не учитываются переходы на летнее время, вы должны также обращать внимание на дату. Например, поясная поправка - 6:00 через полгода будет равна -5:00.
Используйте множественные датчики. Трудно опровергнуть регистрацию вхождения, если оно записано двумя различными устройствами. Комбинируя лог-файлы от нескольких устройств, вы усиливаете ценность каждого из них. Лог-файлы Firewall и IDS и даже столь простые, как логи TCPDump, могут помочь доказать, что с данного IP-адреса происходит атака на определенный сервер в определенное время.

подлинность лог-файла

Лог-файлы называются подлинными, если можно доказать, что они не были изменены со времени первоначальной записи. IIS лог-файлы являются обычными текстовыми файлами, которые легко изменить. Дата файла и отметки времени также могут легко быть изменены. В случае недоверия IIS лог-файлы не могут считаться подлинными, но при помощи следующих действий, вы можете исправить эту ситуацию.
Переместите лог-файлы. Чтобы гарантировать подлинность, переместите IIS лог-файлы из веб-сервера. Если сервер был компрометирован, вы должны предполагать, что лог-файлы также, возможно, были скомпрометированы. Переместите лог-файлы на мастер-сервер, после чего, как можно быстрее, переместите их (в автономном режиме) на ленту, компакт-диск, или WORM-device.
Подписи, кодирование и контрольные суммы. Единственный способ, абсолютно гарантирующий, что лог-файл не был изменен, — это подписать и закодировать лог-файл при помощи PGP или другой схемы кодирования. Подписи файла полезны, потому что, если отдельный лог-файл испорчен, другие файлы истинны. Вы можете также использовать инструмент типа Fsum (http://www.slavasoft.com/fsum/), чтобы быстро сгенерировать MD5-таблицы для файлов. Храните подписи и хэш-таблицы вместе с лог-файлами, но также храните и защищенную копию в отдельном месте.
Обратите внимание, что, если вы используете автоматизированный процесс подписывания файлов, вы должны всегда иметь собственноручную подпись администратора, которому доверяете.
При шифровке файлов, вы должны иметь в виду воздействие на созданные, измененные, и входные данные, которое может произойти. Вы можете сделать запись этих данных в отдельном месте, используя утилиту типа Fdir (http://www.roninsg.com/fdir.zip).
Работайте с копиями. При выполнении анализа лог-файла, никогда не работайте с оригинальными файлами. Делайте копии перед выполнением любой последующей обработки или анализа. Создание уверенности, что оригинальные лог-файлы не затронуты, помогает вам гарантировать, что они все еще подлинны. Если вы используете лог-файлы в качестве свидетельских показаний, вы должны представить оригинальные файлы в их первоначальном виде. Заметим, что в Федеральном законе Соединенных Штатов о свидетельских показаниях записано: точная распечатка также может рассматриваться, как свидетельское показание (см. Federal Rules of Evidence 1001(3) на http://www.law.cornell.edu/rules/fre/).
Следите за целостностью системы. Вы всегда должны проверять сервисные пакеты и hotfixes, чтобы гарантировать, что ваши системные файлы в порядке. Вы должны также проверять все изменения в бинарных файлах вашей директории WINNT. Если злоумышленник способен изменить системные файлы, которые делают запись лог-файлов, то лог-файлы не могут являться свидетельским показанием.

контроль доступа

Как только лог-файл создан, важно предохранить его от возможности проникновения и проверять все законные и незаконные доступы. Если вы должным образом обеспечиваете и проверяете лог-файл, пользуясь NTFS-разрешениями, вы имеете документальное свидетельство, помогающее установить его достоверность.
Ограничьте доступ к файлу. Лог-файл должен иногда разрешать доступ, чтобы IIS мог записывать в файл. Но после того, как лог-файл закрыт /* имеется в виду, по всей видимости, «закончен», например в результате ежедневной ротации — прим. ред. */, ни у кого не должно быть разрешения на изменение содержание файла. Вы можете использовать список команд для блокирования разрешений и проверок после закрытия лог-файла. Кроме того, когда вы перемещаете лог-файлы, убедитесь, что NTFS-разрешения правильно установлены в новом месте.
Цепь охраны. Когда вы перемещаете лог-файлы с сервера на автономное устройство, вы должны сохранить путь следования вашего файла. Это может быть сделано с помощью технических или нетехнических методов. Например, один мой клиент опечатывал свои ленты с резервными копиями и использовал специальный лэйбл для записи физического движения ленты. Прослеживание охраны свидетельств особенно важно при восстановлении содержания резервных копий в криминальном расследовании.
Имейте в виду, что каждодневный процесс сбора лог-файлов однажды может стать частью сбора свидетельских показаний в криминальном расследовании. Вы всегда должны рассматривать ваш IIS веб-сервер как место возможного преступления и поэтому содержите свои лог-файлы так, чтобы они могли использоваться в качестве свидетельских показаний.
В мире имеется множество законов. В современной юридической практике лог-файлы часто рассматривают всего лишь как деловые отчеты. Если вы хотите, чтобы суд принял лог-файлы в качестве свидетельских показаний, то необходимо следовать некоторым правилам, чтобы гарантировать их достоверность. Не всегда есть четкое определение того, что является допустимым, а что является достоверным. Но, как и в случае со свидетелями суда, эти понятия часто сводятся к правдоподобности. Чем больше у вас зарегистрированных свидетельств, тем более правдоподобны ваши IIS лог-файлы.
Конечно, ваши местные законы могут различаться, и ваш адвокат может иметь другое мнение о том, что делает лог-файл достоверным. Обсудите эти проблемы с вашим адвокатом, и установите процесс, который будет гарантировать точность, подлинность, и управляемый доступ к вашим IIS лог-файлам.

Марк Бернетт



Сетевые решения. Статья была опубликована в номере 04 за 2003 год в рубрике save ass…

©1999-2024 Сетевые решения