Московский государственный университет имени М.В.Ломоносова
Опубликован: 21.09.2006 | Доступ: свободный | Студентов: 5053 / 926 | Оценка: 4.32 / 4.09 | Длительность: 19:19:00
ISBN: 978-5-9556-0076-0
Лекция 9:

Обеспечение безопасности web-серверов

< Лекция 8 || Лекция 9: 12345 || Лекция 10 >

Управление влиянием web Bots

Web bots (что тоже самое, что и агенты или spiders) есть прикладное ПО, используемое для сбора, анализа и индексирования web-содержимого. Web bots используются многими организациями в разных целях. Некоторые примеры:

  • Scooter, Slurp и Googlebot анализируют, индексируют и записывают web-сайты для поисковых систем, таких как AltaVista и Google;
  • ArchitextSpider собирает статистику Интернета;
  • Hyperlink validators используются для автоматической проверки корректности гиперссылок на другие сайты;
  • EmailSiphon и Cherry Picker являются bots, специально разработанными для поиска на web-сайтах e-mail адресов для добавления в e-mail списки ("спам"). Это пример bot, который имеет негативное воздействие на web-сайты или их пользователей.

Bots имеют негативные последствия, потому что:

  • web-серверы часто содержат директории, которые не должны индексироваться;
  • организации могут не хотеть, чтобы часть их сайта появлялась в поисковых системах;
  • web-серверы часто содержат временные страницы, которые не должны индексироваться;
  • bots часто содержат ошибки или не всегда имеют хорошие намерения и могут нанести вред частыми запросами, создавая DoS-атаку для законных пользователей.

В принципе, существует способ для web-администратора повлиять на поведение большинства bots на своем web-сайте. Была создана серия соглашений, называемая Robots Exclusion Standard (REP). Хотя REP не является официальным стандартом Интернета, он поддерживается большинством хорошо написанных и имеющих благие цели bots, включая те, которые используются в большинстве поисковых систем.

Web-администраторы, которые хотят ограничить деятельность bots на своих web-серверах, должны создать тестовый файл, называемый robots.txt. Файл должен всегда иметь данное имя и располагаться в корневой директории web-сервера. Кроме того, допускается только один такой файл на весь web-сайт. Заметим, что файл robots.txt является стандартом, который на добровольной основе должен поддерживаться программистами bots. Не существует обязательного требования использовать его. Таким образом, вредоносные bots, такие как EmailSiphon и Cherry Picker, игнорируют данный файл.

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

Допустимы следующие ключевые слова:

  • User-agent – имя робота или spider. Web-администратор может указать более одного имени агента, при этом действие будет применяться к каждому указанному bot. Запись нечувствительна к регистру (слово "googlebot" – то же самое, что и "GoogleBot", "GOOGLEBOT"). "*" указывает, что это запись по умолчанию, которая используется, если никакого соответствия не найдено. Например, если указать "GoogleBot", то "*" будет применяться к любому другому роботу, за исключением GoogleBot.
  • Disallow – говорит bots, какие разделы web-сайта следует исключить. Например, /images информирует bots, что не следует открывать или индексировать любые файлы в директории images и любых ее поддиректориях. Таким образом, директория /images/special также не будет индексироваться указанными в user-agent bots.

Заметим, что /do будет соответствовать любой директории, начинающейся с "/do" (например, /do, /document, /docs и т.п.), в то время как /do/ соответствует только директории, называемой "/do/".

Web-администратор может также указать конкретные файлы. Например, он может указать /mydata/help.html для предотвращения доступа только к одному файлу.

Значение "/" указывает, что ничего на web-сайте не разрешено для доступа указанных в user-agent bots.

Должна существовать по крайней мере одна запись на каждый user-agent.

Существует много способов использовать файл robots.txt. Несколько простых примеров:

  • запретить всем (учитывающим это) bots доступ в указанные директории:

    User-agent: *
    Disallow: /images/
    Disallow: /banners/
    Disallow: /Forms/
    Disallow: /Dictionary/
  • запретить всем (учитывающим это) bots доступ ко всему web-сайту:

    User-agent: *
    Disallow: /
  • запретить конкретному bot анализировать конкретную web-страницу:

    User-agent: GoogleBot
    Disallow: tempindex.html

Заметим, что файл robots.txt доступен всем. Следовательно, web-администратор не должен указывать имена чувствительных файлов или папок. Если они должны быть исключены, то лучше использовать защищенные паролем страницы, которые не могут быть доступны bots. Защита паролем является более надежным способом для исключения не придерживающихся правил bots. Более подробная информация будет приведена при описании методов аутентификации.

Использование программ проверки целостности файлов

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

Хотя программа проверки целостности и является полезным инструментальным средством, которое не требует большого участия человека, для гарантии эффективности она должна использоваться продуманно.

  1. При создании первого варианта базы данных файлом проверки целостности требуется гарантия, что система находится в безопасном состоянии. В противном случае могут быть созданы криптографические хэши скомпрометированной системы, и тем самым создастся ложное чувство безопасности у тестирующего.
  2. База данных контрольных сумм должна храниться off-line, чтобы атакующий не мог скомпрометировать систему и модифицировать базу данных с целью спрятать следы атаки.
  3. Программа проверки целостности файлов может также создавать ложные позитивные предупреждения. Каждое изменение файла и каждый системный patch изменяет файл и, следовательно, требуется изменить базу данных контрольных сумм. Таким образом, держать базу данных актуальной может быть непросто.

Однако, даже если программа проверки целостности выполняется только один раз (при первой инсталляции системы), она может быть полезна для определения того, какие файлы были модифицированы в случае предполагаемой компрометации. Наконец, атакующий может так модифицировать файл, что использование 32-битной циклической контрольной суммы (Cyclic Redundancy Check – CRC) не определит модификацию. Следовательно, рекомендуются более сильные алгоритмы подсчета контрольных сумм для гарантирования целостности данных.

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

Список действий для безопасного инсталлирования и конфигурирования web-сервера

Безопасное инсталлирование web-сервера.

  • Инсталлировать ПО сервера на выделенный хост.
  • Инсталлировать минимально требуемые сервисы Интернета.
  • Применить все patches и upgrades для устранения известных уязвимостей.
  • Создать выделенный физический диск или логический раздел (отдельно от ОС и приложения сервера) для web-содержимого.
  • Удалить или запретить все сервисы, инсталлированные приложением web-сервера, но в данном случае не требуемые (например, gopher, FTP и удаленное администрирование).
  • Удалить все примеры страниц, скриптов и выполняемого кода.
  • Удалить с сервера всю документацию производителя.
  • Протестировать сервер, применив различные образцы безопасности или скрипты взлома.
  • Переконфигурировать баннер НТТР-сервиса (и баннеры других сервисов, если требуется), чтобы он не сообщал о типе и версии web-сервера и ОС.

Конфигурирование управления доступом web-сервера со стороны ОС.

  • Сконфигурировать доступ к файлам со стороны ОС так, чтобы процессы web-сервера могли только читать файлы web-содержимого, но не могли записывать в них.
  • Сконфигурировать доступ к файлам со стороны ОС так, чтобы процессы web-сервера не могли записывать в директории, в которых расположено содержимое web.
  • Сконфигурировать доступ к файлам со стороны ОС так, чтобы только процессы, авторизованные для администрирования web-сервера, могли записывать в файлы содержимого web.
  • – Сконфигурировать доступ к файлам со стороны ОС так, чтобы web-приложение могло писать в лог-файлы web-сервера, но лог-файлы не могли быть читаемы приложением web-сервера.
  • Сконфигурировать доступ к файлам со стороны ОС так, чтобы временные файлы, создаваемые приложением web-сервера, были расположены только в указанной и соответствующим образом защищенной поддиректории.
  • Сконфигурировать доступ к файлам со стороны ОС так, чтобы доступ к любым временным файлам, созданным приложением web-сервера, был ограничен только процессами, которые создали эти файлы.
  • Инсталлировать web-содержимое на отдельном жестком диске или логическом разделе, отличном от ОС и web-приложения.
  • Сконфигурировать доступ к файлам со стороны ОС так, что если допустима загрузка на web-сервер, то должно существовать ограничение на пространство жесткого диска или логического раздела, которое выделено для этих целей.
  • Сконфигурировать доступ к файлам со стороны ОС так, чтобы лог-файлы имели соответствующий максимальный размер.

Конфигурирование безопасной директории web-содержимого.

  • Выделить отдельный жесткий диск или логический раздел для web-содержимого и установить соответствующие поддиректории исключительно для файлов содержимого web-сервера, включая графику, но исключая скрипты и другие программы.
  • Определить отдельную директорию исключительно для всех внешних по отношению к ПО web-сервера скриптов или программ, выполняющихся как часть содержимого web-сервера например, CGI, ASP и т.п.).
  • Запретить выполнение скриптов, которые не находятся под управлением административных аккаунтов. Данное действие выполняется созданием доступа и управлением им к отдельной директории, которая предназначена для авторизованных скриптов.
  • Создать группы и пользователей для web-сервера.
  • Запретить использование жестких и символических ссылок (аналог shortcuts в Windows).
  • Определить полную матрицу доступа к web-содержимому. Определить, какие папки и файлы внутри документов web-сервера имеют ограничения и какие являются доступными (и кому).
  • Проверить политику паролей в организации и установить соответствующие критерии паролей (длина, сложность).
  • Использовать при необходимости файл robots.txt.

Использование программ проверки целостности.

  • Инсталлировать проверку целостности для защиты конфигурационных файлов web-сервера.
  • Пересчитывать контрольные суммы при изменении содержимого файлов.
  • Хранить контрольные суммы в защищенном от записи носителе.
  • Регулярно сравнивать контрольные суммы критичных файлов с эталонными значениями.
< Лекция 8 || Лекция 9: 12345 || Лекция 10 >
Нияз Сабиров
Нияз Сабиров

Здравствуйте. А уточните, пожалуйста, по какой причине стоимость изменилась? Была стоимость в 1 рубль, стала в 9900 рублей.

Елена Сапегова
Елена Сапегова

для получения диплома нужно ли кроме теоретической части еще и практическую делать? написание самого диплома требуется?