Разработка метода защиты сайтов от сканирования и хаотичных интенсивных запросов
Средства подбора паролей и несанкционированный доступ. Методы защиты от хаотичных интенсивных запросов. Реализация системы защиты в виде php-скрипта. Расчет затрат на создание скрипта для защиты сайта от сканирования и хаотичных интенсивных запросов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 21.03.2014 |
Размер файла | 3,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
МОСКОВСКИЙ ФИНАНСОВО-ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ МФЮА
Кафедра защиты информации
Специальность организация и технология защиты информации
ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА
На тему: Разработка метода защиты сайтов от сканирования и хаотичных интенсивных запросов
Студента
Солодова Максима Вадимовича
Научный руководитель
Черепанов А.В
Задание на выполнение выпускной квалификационной работы
Студенту Солодову Максиму Вадимовичу
Тема: Разработка метода защиты сайтов от сканирования и хаотичных интенсивных запросов
Исходные данные к работе: Нормативно-правовая, учебная, периодическая литература, материалы преддипломной практики
Содержание пояснительной записки (перечень подлежащих разработке вопросов)
1. Анализ распространенных видов сканирования и хаотичных интенсивных запросов
1.1. Анализ распространенных видов сканирования
1.1.1. Средства копирования содержимого сайта и осуществления поиска в нем
1.1.2. Программы для поиска уязвимостей
1.1.3. Результаты анализа распространенных видов сканирования сайта
1.2. Анализ хаотичных интенсивных запросов
1.2.1. Средства подбора паролей и несанкционированный доступ
1.2.2. Средства, направленные на нарушение работы сайта
1.2.3. Результаты анализа хаотичных интенсивных запросов
2. Разработка методов защиты от сканирования и хаотичных интенсивных запросов
2.1. Методы защиты от сканирования
2.2. Методы защиты от хаотичных интенсивных запросов
2.3. Программные средства защиты сайта
2.4. Разработка методов защиты сайта от сканирования и хаотичных интенсивных запросов
3. Реализация системы защиты в виде PHP-скрипта
3.1. Данные о реализуемом php-скрипте
3.2. Листинг программы
4. Тестирование PHP-скрипта, внедренного в сайт
4.1. Тестирование вручную
4.2. Тестирование при помощи онлайн-сервисов
4.3. Результаты тестирования php-скрипта, внедренного в сайт
5. Экономическая часть
5.1. Введение
5.1. Разработка сетевой модели решения поставленной задачи, составление календарного плана-графика выполнения работ
5.2. Расчет затрат на создание скрипта для защиты сайта от сканирования и хаотичных интенсивных запросов
6. Охрана труда и окружающей среды
6.1. Воздушная среда
6.2. Шум, инфразвук, ультразвук и вибрация.
6.3. Электробезопасность
6.4. Воздействие электромагнитных полей
6.5. Производственное освещение
Срок предоставления студентом законченной работы 13.12.13
Научный руководитель __________________ Черепанов А.В.
Задание принял к исполнению_____ Солодов Максим Вадимович
Введение
В Интернете существует проблема медленной работы сайтов, связанная с частыми обращениями к ним. Чаще всего это крупные порталы с высокой посещаемостью. Но эта проблема может коснуться и небольших сайтов, так как даже при малой посещаемости сайт может подвергаться высокой нагрузке. Высокая нагрузка создается различными роботами, постоянно сканирующими сайты. При этом работа сайта может сильно замедлиться, или он вообще может оказаться недоступным.
Так же свою лепту в снижение производительности сайта или вообще отказа в обслуживании вносят пользователи. Если у сайта достаточно высокая посещаемость, то большое значение играет количество страниц, запрошенных одним пользователем за малый промежуток времени.
Для того чтобы выбрать и разработать систему защиты, которая будет наиболее эффективно снижать нагрузку, нужно проанализировать виды сканирования и хаотичных интенсивных запросов.
Существует много различных программ и ресурсов в мировой сети осуществляющих сканирование сайтов с целью получения информации, но из всего их множества мы проанализируем самые распространенные. Так же по аналогии с анализом видов сканирования проанализируем самые распространенные виды хаотичных интенсивных запросов.
Сканирование сайта производится программами, сторонними сайтами или вручную. При этом создается большое количество запросов в короткий промежуток времени. Сканирование сайта чаще всего используют для поиска в нем уязвимостей или копирования содержимого сайта.
Хаотичные интенсивные запросы - это случайные или злонамеренные многочисленные запросы в короткий промежуток времени на страницы сайта со стороны пользователей или роботов. К примеру случайных интенсивных запросов относится частое обновление страницы. К злонамеренным многочисленным запросам относится спам на страницы сайта со стороны пользователей или DoS атаки.
В работе будут разработаны рекомендации по защите сайта от сканирования и хаотичных интенсивных запросов, и создана система на основе php-сценария, использующая эти рекомендации.
1 . Анализ распространенных видов сканирования и хаотичных интенсивных запросов
1.1 Анализ распространенных видов сканирования
1.1.1 Средства копирования содержимого сайта и осуществления поиска в нем
Сканирование сайта осуществляется программами или сайтами. Целью такого сканирования может являться копирование содержимого сайта, изучение структуры сканируемого веб-ресурса, поиск определенного рода информации, а также анализ полученного содержимого.
Можно выделить два основополагающих вида сканирования: это сканирование сайта вручную и сканирование сайта при помощи программы-краулера. Остановимся на каждом из этих видов подробнее.
Сканирование узла вручную возможно лишь в случае, если ресурс содержит не слишком много страниц. В подобной ситуации, для получения полного перечня имеющихся на ресурсе гиперссылок, вполне можно использовать обычный браузер. В сравнении с использованием программы-краулера подобный подход значительно точнее. Дело в том, что программы-краулеры далеко не всегда могут правильно интерпретировать различные клиентские сценарии и, соответственно, содержащиеся в них гиперссылки. Но с другой стороны сканирование веб-ресурса вручную - это очень долгий и трудоемкий процесс [1, стр. 181].
Во время сканирования сайта вручную человек обращает внимание на наличие статических и динамических страниц на ресурсе, изучает структуру каталогов, получает доступ к вспомогательным файлам. Особое внимание уделяется используемым на страницах сайта Java-классам, а также апплетам. Кроме того, определенную пользу представляют собой строки запросов [2, стр. 116].
Наибольшая польза для атакующего будет получена именно при «ручном» исследовании web-страниц целевого ресурса. В такой ситуации у злоумышленника получится извлечь наиболее полезную информацию - оценить уязвимость кода, наличие комментариев, а также разобраться с методами построения сайта. Нередко в этом деле необходимо задействовать интуицию.
В коде документа HTML содержится множество интересных сведений, которые порой недоступны при простом взгляде в окно браузера. К подобным сведениям можно отнести наличие комментариев разработчика в коде страницы, наличие адресов электронной почты, номеров телефонов и прочее [3, стр. 372].
Краулер (crawler) представляет собой программу, которая позволяет автоматизировать процесс сканирования сайта. Подобная программа может рассматриваться в качестве браузера, способного самостоятельно переходить по каждой ссылке, расположенной на текущей странице и, таким образом, перемещаться по всем доступным страницам веб-ресурса. Программа-краулер отправляет веб-серверу HTTP-запрос GET, после чего выполняет синтаксический анализ HTML-кода, который получает в качестве ответа. После получения ответа от сервера программа извлекает из него все доступные гиперссылки и рекурсивно продолжает выполнять те же действия касательно каждой из найденных гиперссылок.
В целом, программы-краулеры, вполне могут быть довольно сложными. Они могут не только переходить по гиперссылкам, но и создавать образ сканируемого веб-ресурса на локальном жестком диске. Из подобного образа программа вполне сможет извлечь разного рода элементы, к примеру, клиентские сценарии, комментарии и пр. [1, стр. 181].
Сегодня существует довольно много программных инструментов, которые помогают собирать информацию о веб-приложениях. В большинстве своем такие программные средства полностью копируют рассматриваемое веб-приложение на локальный диск, после чего анализируют полученные данные. Отдельно следует отметить, что подобным инструментам не под силу создавать копии таких узлов, которые содержат сценарии ASP или же запросы к базам данных.
Далее рассмотрим инструменты, предназначенные для автоматизации сканирования сайта.
Утилита lynx до сих пор является прекрасным инструментом, отлично подходящим для работы с отдельными URL адресами. В основном данным инструментом пользуются в сценариях getit для того, чтоб обеспечивать HTTP-аутентификацию с применением параметра auth.
Утилита Wget представляет собой инструмент, который работает в командной строке под платформами Windows или UNIX. Этот инструмент дает возможность получить на локальный жесткий диск полное содержимое сканируемого Web-узла. Данная программа отлично справляется с получением файлов со сканируемого сайта. Правда, для анализа полученных результатов эта утилита не слишком пригодна.
Утилита WebSleuth представляет собой инструмент, дающий возможность автоматически исследовать веб-узлы. Кроме того, программа сочетает в себе возможности присущие персональному прокси-серверу, такому как Achilles. Утилита предоставляет пользователю возможность находить заданные данные на страницах веб-документа. После выполнения всех действий программа создает отчет, в котором содержатся ссылки на сценарии, html-комментарии, подробная информация об имеющихся файлах cookie и пр.
Утилита Black Widow дает возможность находить и копировать заданную информацию. Еще одним преимуществом данной утилиты является ее возможность сохранения файлов в каталог на локальный жесткий диск. С сохраненным каталогом можно работать при помощи таких инструментов, как findstr или grep.
Утилита Teleport Pro работает на платформе Windows. Программа по своим возможностям приблизительно равна уже рассмотренной утилите Wget. Также она предоставляет возможность анализа полученных данных.
В случае использования программы Teleport Pro можно задавать абсолютно любой начальный URL-адрес. Кроме того, программа дает возможность заранее задать типы искомых файлов. Именно такие файлы и будут загружаться и, соответственно, сохраняться в качестве копии на локальном жестком диске. Основным недостатком этой утилиты можно считать то, что копию сканируемого веб-узла она сохраняет в виде файла с расширением .tpp (это ее собственный недокументированный формат).
Правда, эта утилита не дает возможности использовать поиск в полученном исходном коде страниц веб-ресурса. Для того, чтоб выполнить подобную задачу можно задействовать команду findstr [1, стр. 176].
Утилита Funnel Web Profiler дает возможность выполнения всестороннего анализа сканируемого веб-узла. Программа отличается простым и понятным пользовательским интерфейсом, а также дает возможность получения разного рода информации. После того, как сканирование будет завершено, программный продукт Funnel Web Profiler даст возможность изучить собранную о сайте информацию в разных ракурсах.
Утилита Sam Spade работает на платформе Windows и дает возможность не только проводить сканирование веб-ресурса, но и отсеивать часть «непригодных» результатов [1, стр. 183-185].
Для анализа наиболее распространенных программных средств сканирования сайтов, приведенных выше, сведем информацию об их преимуществах и недостатках в таблицу 1.1.
Таблица 1.1 - Анализ программных средств сканирования сайтов
Название утилиты |
Преимущества |
Недостатки |
Вывод |
|
1 |
2 |
3 |
4 |
|
lynx |
Работа в командой строке, гибкость, распространяется бесплатно, поддержка SSL |
Копировать веб-ресурсы неудобно |
Прекрасная программа для проверки из командной строки отдельных адресов URL |
|
Wget |
Работа в командой строке, гибкость, распространяется бесплатно, поддержка SSL |
Слабые возможности поиска различных элементов (например, комментариев, email и т.д.) |
Неплохой инструмент для создания копий веб-узлов работающий из командной строки |
|
WebSleuth |
Есть возможность создания отчетов о файлах cookie, формах, передаваемых параметрах и пр. |
Необходимо «вручную» заходить на каждую страничку сканируемого сайта |
Инструмент более ориентирован на взлом средств проверки данных, которые вводятся в веб-формы |
|
Black Widow |
Поддержка режима работы из командной строки, хорошие функции поиска |
Это платный программный продукт, нет поддержки SSL |
Утилита ориентирована на создание образа веб-узла оснащенного графическим интерфейсом пользователя |
|
Teleport Pro |
Утилита проста в использовании |
Отсутствует поддержка SSL, программа расспрос- |
Неплохая утилита для сканирования сайта состоящего из статичес- |
|
траняется на коммерческой основе, слабые возможности поиска различных элементов (например, комментариев, email и т.д.) |
ких файлов |
|||
Funnel Web Profiler |
Утилита проста в использовании и предоставляет огромное количество возможностей связанных с анализом полученных данных |
Программа распространяется на коммерческой основе |
Прекрасная утилита для проведения всестороннего анализа сканируемого веб-ресурса |
|
Sam Spade |
Утилита проста в использовании |
Это платный программный продукт, нет поддержки SSL |
Неплохая утилита для сканирования сайта и отсеивания «излишней» информации |
Кроме того, сканирование сайтов можно осуществлять при помощи пользовательских сценариев или же специально написанных скриптов. Конечно же, и скрипты, и сценарии, могут быть созданы на различных языках программирования. Разработанный скрипт или сценарий также сможет справиться с задачей сканирования заданного веб-ресурса.
К тому же, всегда можно найти готовые бесплатные или же недорогие скрипты (сценарии) [3, стр. 372].
Для сканирования веб-ресурса также может использоваться поисковый сервер Google. Этот сервер представляет собой поисковую машину, в базе данных которой содержится очень много информации. Именно поэтому, если робот Google посетил и проиндексировал сайт, значит, информация с этого сайта может быть получена от поисковой системы [2, стр. 118].
Одним из самых простых способов сканирования сайта является поиск страниц ресурса в поисковой системе. В частности, поисковая система Google вполне может проиндексировать страницы ресурсов, где защита основана на том, что при входе пользователь вводит пароль, а не на использовании SSL. В подобной ситуации поисковая система проиндексирует запрещенную веб-страницу и, таким образом, ее можно будет увидеть неавторизованному пользователю, у которого нет на это соответствующих прав. Для этого достаточно верно составить поисковый запрос [4, стр. 25].
Страницы становятся доступны благодаря ошибкам администраторам сайта. В частности страница может быть закрыта паролем, но информация будет находится в другом файле, доступном для индексации или когда-то открытые страницы сайта, которые успел проиндексировать робот. Так же существует информация о том, что происходит индексация поисковой системой запароленных страниц с помощью браузера Google Chrome.
В целом, после того, как необходимые веб-страницы оказались скопированными на локальный жесткий диск, атакующему все равно придется изучить каждую из скопированных страниц, каждую форму или сценарий, каждый из графических файлов. Это, бесспорно, поможет разобраться в составе и структуре просканированного веб-сайта [3, стр. 375].
Не сложно заметить, что основной целью сканирования сайта является сбор информации о недочетах, оставленных программистами, желающими облегчить и максимально ускорить процесс просмотра и последующей отладки веб-ресурса. Вот так и получается, что у анонимного пользователя может появиться доступ к важным функциям и важной информации на сайте вследствие ошибок допущенных в конфигурации ресурса, а также вследствие непродуманности всей архитектуры узла [2, стр. 136-137].
1.1.2 Программы для поиска уязвимостей
Отдельно следует отметить, что существуют утилиты способные автоматически выявлять общеизвестные уязвимые места на сканируемых веб-ресурсах.
В случае использования готового сценария можно быстро выявить уязвимости, оставленные программистами в защите веб-ресурса. Отметим, что средства выявления такого рода уязвимостей постоянно публикуются на страницах специализированных Интернет-ресурсов.
Далее рассмотрим сценарии и утилиты, позволяющие выявить уязвимость в процессе сканирования сайта.
Сценарий Phfscan.c направлен на выявление уязвимости PHF, которая в свое время оказалась первой общеизвестной уязвимостью, оставляемой в защите скрипта веб-сервера. Такого рода уязвимость дает возможность атакующему исполнять любые команды от лица пользователя веб-сервера.
Сценарий Cgiscan.c направлен на сканирование систем и поиск в них старых уязвимостей (в том числе уязвимости PHF, оставленных test-cgi, count.cgi, webdist.cgi, handler, nph-test-cgi и пр.) [3, стр. 375-376].
Пакет whisker считается одним из лучших средств, предназначенных для сканирования веб-серверов. Данный пакет состоит из двух различных частей. Первая часть представляет собой саму программу сканирования, а во второй располагаются конфигурационные файлы, определяющие, что же будет сканироваться. Данные файлы носят название базы данных сценария. В составе пакета whisker имеется набор баз данных, которые обеспечивают высокую надежность работы утилиты.
Основным преимуществом утилиты whisker является наличие простого языка, на которой написаны сценарии, а также взаимодействия сценариев и базы данных. Данный язык описывается в текстовом документе whisker.txt, который входит в комплект поставки. При помощи этого языка могут быть разработаны собственные базы данных [5, стр. 607-608].
Приложений, предназначенных для проверки определенных веб-сайтов на наличие в них широко известных или же формируемых в качестве умолчания, уязвимых мест, также немало. Их основным отличием является то, что они работают последовательно в, так сказать, ручном режиме.
Утилита Grinder работает на платформе Windows. Программе под силу сканировать одновременно заданный диапазон IP-адресов и, в процессе сканирования, выявлять версии и имена сайтов. Программа способна одновременно создавать несколько параллельно работающих сокетов, что ускоряет ее работу.
Утилита SiteScan показывает лучшие результаты в поиске уязвимых точек (по сравнению с предыдущим приложением) на веб-серверах. Программа одновременно может сканировать лишь один веб-сайт. Утилита работает на платформе Windows.
Среди нестандартных сценариев можно выделить таковые, которые производят атаку подтверждения ввода (или input validation attack). Такие сценарии действуют против Active Server Pages (ASP), а также Common Gateway Interface (CGI) и Cold Fusion Markup Language (CFML). Они дают возможность обнаружить ошибки допущенные веб-разработчиками. Основа проблемы заключается в неадекватности данных, которые вводятся сценарием в процессе сканирования сайта. В случае если отсутствует проверка ввода, у атакующего есть возможность введения определенного символа в качестве одного из параметров локальной команды. Таким образом, можно заставить сервер выполнить данную команду.
В сети существует множество сценариев и скриптов, использующих данную уязвимость [3, стр. 376-378].
1.1.3 Результаты анализа распространенных видов сканирования сайта
Подытоживая все вышесказанное можно сделать вывод о том, что информацию на сайте необходимо защитить от различных сканирующих программ, а также от тех программ, которые используют уже обнаруженные уязвимости, найденные в используемом программном обеспечении. Сканирование сайта при помощи программы-краулера вполне может быть выявлено. С учетом того, что сканирование сайта может быть направлено не на кражу информации, а представлять собой первый этап исследования ресурса, перед его взломом, следует относиться к этому очень серьезно и создать максимальное количество препятствий на пути автоматизированных средств, предназначенных для сканирования веб-ресурсов. Также необходимо продумать разного рода преграды на пути тех пользователей, которые действуют «вручную» и ставят перед собой цель досконально изучить структуру исследуемого сайта, а также же исследовать веб-ресурс на наличие разного рода уязвимостей.
Для того чтоб избежать взлома сайта и кражи информации с него, необходимо разработать методы защиты от сканирования сайта.
1.2 Анализ хаотичных интенсивных запросов
1.2.1 Средства подбора паролей и несанкционированный доступ
Хаотичные интенсивные запросы представляют собой случайные или же злонамеренные многочисленные запросы, создающиеся со стороны пользователей в короткий промежуток времени на различные страницы сайта. Например, случайным интенсивным запросом может считаться частое обновление страницы. А вот злонамеренным интенсивным запросом вполне можно считать флуд со стороны пользователей на страницы сайта.
В абсолютно любой компьютерной системе постоянно происходят события, которые ведут к изменению ее состояния, или же состояния ее компонентов, к примеру, информационных ресурсов. В данных событиях можно выделить две части - действие, к примеру, чтение, запись, изменение данных, а также адресат этого действия, к примеру, файл или процесс операционной системы. Система защиты ресурса ограничивает различные события, которые могут в ней произойти, не допуская, например, выполнение операции чтения закрытых данных для пользователей, не имеющих на это необходимых прав. Подобные ограничения носят название политики безопасности и, в случае, если в системе происходит множество событий, которые нарушают установленную на сервере политику безопасности, то подобная ситуация вполне может быть интерпретирована как один из признаков хакерской атаки.
Среди таких признаков можно выделить, к примеру, многократные неудачные попытки авторизации или же попытки обращения к файлу, закрытому для неавторизованных пользователей. Еще одним методом выявления различных признаков подозрительной активности является обнаружение подозрительных событий, происходящих в определенный временной промежуток. К примеру, поступление большого количества сетевых пакетов заданного типа за довольно короткий временной интервал вполне может говорить о том, что кто-то пытается просканировать веб-сервер. Кроме того, подозрительные события, связанные с высокой интенсивностью разного рода действий пользователей, вполне могут быть выявлены при помощи изучения определенных шаблонов хакерских атак. Иначе говоря, речь идет об определенной, уже выявленной последовательности действий злоумышленников связанных со взломом веб-сервера. В частности, выявление множества сетевых пакетов, имеющих специально искаженную структуру (которая зафиксирована в определенном шаблоне) вполне может говорить о том, что предпринимается попытка определить тип операционной системы, установленной на веб-сервере.
Среди подозрительных признаков атаки также числятся непонятные события, связанные с перегрузкой сети, или же внезапное появление множества пакетов, имеющих небольшие размеры. Подобные пакеты называют фрагментированными.
Появление непонятных отказов во время запуска каких-либо служб на веб-сервере, или же возникновение внезапной перегрузки серверного процессора вполне могут свидетельствовать о злонамеренных интенсивных запросах от пользователей. В то же время, причиной возникновения перегрузки процессора на веб-сервере вполне может быть работа программы подбирающей пароли с использованием метода перебора. Еще одним признаком злонамеренных действий может быть внезапная попытка запроса к нетрадиционной службе сервера, например, к службе Telnet [6, стр. 26-28].
Злонамеренными интенсивными запросами можно считать также попытки злоумышленника подобрать пароли пользователей. Взлом системы при помощи подбора пароля никак нельзя назвать интересным или очень захватывающим. В то же время, данный метод является наиболее эффективным среди всех методов взлома разного рода средств веб-аутентификации. Дело в том, что если администратор веб-сервера правильно подобрал протокол аутентификации и в реализации данного протокола не существует каких-либо ошибок, то самым уязвимым аспектом такой системы аутентификации станут выбираемые разными пользователями пароли.
Подбор паролей может производиться как вручную, так и при помощи программных средств, призванных автоматизировать данный процесс. Подобрать пароль вручную довольно непросто, в то же время порой интуиция способна одержать победу над автоматизацией, особо в той ситуации, когда в ответ на неудачную попытку авторизации веб-узел начинает выдавать нестандартные страницы, содержащие сообщения об ошибках. Проверку обычно начинают с самых простых вариантов.
В случае использования автоматизированных средств на сайт обрушивается буквально шквал пар «логин-пароль». И это делается в таком темпе, который человеку никогда не повторить.
Подбор паролей может использоваться против почти всех схем веб-аутентификации.
Наиболее популярными программами для автоматизации процесса подбора паролей являются WebCracker и Brutus.
Утилита WebCracker является простым и удобным средством. Основой ее работы является считывание из файлов пользовательских имен и паролей, после чего утилита использует полученные данные для составления пары «логин-пароль». Данная программа дает возможность прохождения базовой аутентификации. Индикатором успешного прохождения процесса аутентификации для утилиты является сообщение НТТР - 302 Object Moved. Правда, в случае обнаружение подходящей пары «логин-пароль» утилита не прекратит свою работу, а продолжит перебирать все ранее указанные пользователем значения в списках имеющихся логинов и паролей.
Утилита Brutus является универсальным средством, дающим возможность подобрать пароли. Программа обеспечивает возможность взлома механизмов как базовой, так и формоориентированной аутентификации не только по протоколу НТТР, но и по другим протоколам - POP3 и SMTP. Утилита предоставляет пользователю возможность выполнить как взлом по словарю или dictionary attack (в этом случае используется заранее созданный список наиболее часто используемых логинов и паролей пользователей), так и взлом перебором всех вариантов или brute-force attack (в этом случае пароли генерируются при помощи комбинирования символов из заранее заданного алфавита).
Также данная утилита снабжена подсистемой взлома так называемого формоориентированного механизма аутентификации. Программа в состоянии автоматически проанализировать введенный пользователем URL-адрес и выявить поля для ввода логина и пароля пользователя.
Кроме того, данная программа дает возможность пользователю указать какой код отклика необходимо ожидать во время прохождения аутентификации. Данный момент можно считать очень важным по той причине, что во время прохождения формоориентированной аутентификации бывают ситуации, когда на веб-узле используются нестандартные страницы для извещения об успешном или же неудачном окончании процесса. Утилита дает возможность настроить механизм подбора пары «логин-пароль» так, чтоб программа смогла обработать абсолютно любые (даже нестандартные) коды отклика, которые будут возвращаться веб-узлом.
Среди недостатков программы можно выделить то, что она отображает паролей, подобранных во время формоориентированной аутентификации. Также программа время от времени сообщает о том, что пара «логин-пароль» подобрана, в то время как подобрать ее утилите не удалось. Иначе говоря, происходит «ложное срабатывание» приложения. Но даже несмотря на такие досадные ошибки в работе программы, достоинств у этой утилиты существенно больше, нежели недостатков [2, стр. 161-164].
1.2.2 Средства, направленные на нарушение работы сайта
Нередко бывает так, что злоумышленники просто бессмысленно создают помехи в работе веб-сервера (ради удовольствия) во время его использования. Подобное поведение имеет что-то схожее с актами вандализма. Кроме того, такого рода действия могут быть и своеобразной проверкой наличия уязвимостей в системе, иначе говоря, прелюдией к дальнейшим атакам или же средством для сокрытия следов оставшихся после несанкционированного доступа. Также интенсивные запросы, создающие нагрузку на веб-сервер, могут посылаться просто в отместку. Заблокировать или же сильно усложнить работу выбранного веб-сервера сравнительно несложно [7, стр. 51].
Одним из видов злонамеренных интенсивных запросов, направленных на нарушение работы сайта, можно считать флуд. Например, если на форуме или же в гостевой книге сайта, любой пользователь может оставить сообщение, то следует учесть то, что часть пользователей решит воспользоваться возможностью отправки сообщений и «пофлудить». В частности, злоумышленник вполне может попытаться просто таки засыпать базу данных сайта многочисленными однотипными и бессмысленными сообщениями, отправляемыми друг за другом и состоящими из повторяющихся фраз, символов, смайлов или различных графических файлов. Флудом может считаться не только отправка бессмысленных сообщений, но и, к примеру, накрутка голосования. Или же действия пользователя, направленные на порождение многочисленных бессмысленных потоков информации. Отметим, что чаще всего это делается с недобрым умыслом.
Такого рода действия пользователя не только создают бессмысленную нагрузку на ресурсы веб-сайта, но и наполняют базу данных ненужной информацией, что в свою очередь ведет к снижению скорости ее работы и, соответственно, увеличению времени, необходимого на выполнение какого-либо запроса к серверу базы данных [8, стр. 180].
Один из видов злонамеренных интенсивных запросов от одного пользователя носит название Denial of Service (DoS), что можно перевести как «отказ в облуживании». Такие атаки не совсем подходят под описание критериев хаотичных интенсивных запросов. Мы рассмотрим их в качестве примера.
Основная цель подобного рода действий, как можно догадаться из названия, заключается в том, чтоб заставить веб-сервер не отвечать на те запросы, которые поступают от пользователей. Подобного результата злоумышленники добиваются при помощи зацикливания какой-либо работы. К примеру, если на сервере не проверяется корректность всех входящих пакетов, то злоумышленник вполне может создать такой запрос, на который серверу потребуется очень много времени на обработку, соответственно, на работу с другими соединениями у веб-сервера просто не хватит его процессорного времени. В такой ситуации остальные пользователи веб-сайта (клиенты) вынуждены будут получить отказ в обслуживании.
DoS-атаку можно производить несколькими способами, к примеру, используя ошибку в скрипте сайта и перегрузку пользовательского канала, или же мощности веб-сервера, который атакуется. В первом случае злоумышленнику необходимо знать об уязвимостях веб-сайта.
Далее рассмотрим, как же происходит отказ в обслуживании в случае переполнения буфера (эту ошибку злоумышленники используют чаще всего). К примеру, пользователь должен передать строку в 5 символов. Для этих целей в используемом скрипте выделен объем памяти для хранения именно такого размера данных.
Например, пользователь отправил сто символов. В случае если во время приема информации программой не будет проверен размер принимаемого блока, то во время записи полученных данных в буфер обмена сервера их размер выйдет за пределы отведенного объема памяти и будет записан поверх кода. Это означает, что, вероятнее всего, скрипт будет запорчен и не сможет выполнить возложенных на него обязанностей. Скорее всего, это приведет к зависанию его работы. Результатом станет то, что сервер не будет посылать ответы на запросы клиентов, а значит, будет совершена классическая DoS-атака выполненная при помощи переполнения буфера.
В итоге получается, что сайт не взломан, и информация на нем нетронута, вот только веб-сервер больше недоступен по сети.
В целом, для перегрузки всех ресурсов атакуемого сервера злоумышленнику ничего не надо знать. Ресурсы абсолютно любого компьютера вполне ограничены. В подобной ситуации злоумышленнику следует выбрать наиболее «слабое звено» веб-сервера (к примеру, процессор или канал связи) и там вызвать всплеск нагрузки [4, стр. 32-33].
Сейчас атаки DoS превратились в мощное оружие террористов в киберпространстве. Ведь сегодня значительно проще нарушить правильность функционирования сети или же системы, нежели получить доступ к ней. Существует множество программных средств, позволяющих реализовать DoS-атаку.
Выделяют четыре основных типа атак DoS.
1. Bandwidth consumption или насыщение полосы пропускания. Иначе говоря, злоумышленник заполняет всю доступную в определенной сети полосу пропускания. Конечно же, подобную атаку можно осуществить в локальной сети, но все же чаще злоумышленники производят захват ресурсов удаленно.
2. Recourse starvation или недостаток ресурсов. Данная атака отличается от вышеприведенной тем, что направлена на захват ресурсов системы, к примеру, центрального процессора, пространства жесткого диска, памяти и пр. системных процессов. Подобная атака ведет к тому, что система или же пользователи будут испытывать, как минимум, недостаток в тех ресурсах, которые используются совместно. Подобные атаки чаще всего приводят к продолжительной недоступности ресурса, переполнению файловой системы, зависанию различных процессов, а иногда и к краху системы в целом.
3. Programming flaw или ошибки программирования. Основой этой атаки является неспособность приложения, логической микросхемы или же операционной системы обрабатывать возникающие исключительные ситуации. Чаще всего подобные ситуации возникают во время передачи уязвимому элементу каких-либо несанкционированных данных. Во время такой атаки взломщик много раз пытается передать пакеты, в которых не учтены рекомендации к документам RFC, для того, чтоб определить, может ли сетевой стек справиться с такого рода исключениями или же получение подобных пакетов приведет к панике ядра (называемой kernel panic) и последующему возможному краху системы.
4. Атака DNS и маршрутизация. Подобные атаки DoS основаны на манипуляциях с записями в таблице маршрутизации. Это вполне может привести к прекращению обслуживания различных легитимных сетей или систем. В большинстве своем протоколы маршрутизации вообще не имеют или же пользуются слабыми алгоритмами аутентификации. Собственно говоря, именно этот факт и дает возможность взломщикам изменять маршруты. Чаще всего они указывают ложный исходных IP-адрес, а это, в свою очередь, приводит к отказу в обслуживании. Результатом подобной атаки становится то, что целевой трафик маршрутизируется либо через сеть самого взломщика, либо в сеть, которой фактически не существует. Атаки, которые направлены на сервера DNS, также считаются довольно эффективными. В большинстве своем такого рода атаки приводят к кэшированию фиктивных адресов на целевом сервере. Атаки на DNS-сервера ведут к тому, что большие узлы довольно долго оказываются недоступными для своих многочисленных пользователей [5, стр. 513-515].
При помощи любого из приведенных видов DoS-атак очень непросто вывести из строя большие веб-сайты, по той причине, что они для своей работы обычно используют широкие каналы в паре со сверхмощными серверами. Практика показывает, что хакеры вполне могут найти выход из практически любой ситуации [4, стр. 35].
Информацию, которая необходима для выявления признаков появления интенсивных злонамеренных запросов к серверу, можно найти в специальных журналах. Эти журналы ведутся программами защиты, установленными на веб-сервере. Среди такого рода журналов, предоставляющих информацию об активности пользователей, можно выделить:
1. Журнал регистрации системных событий. К примеру, журнал безопасности, который ведется операционной системой. В таком журнале регистрируются события аудита. Также следует обратить внимание и на журнал действий пользователя, который создается программами, относящимися к разряду компьютерной полиции (например, к подобным программам можно отнести клавиатурного регистратора STARR);
2. Журнал сетевого трафика. В такого рода журналах ведется запись всего трафика, как входящего, так и исходящего. Подобного рода запись производится при помощи специализированных программ, к примеру, такой утилиты как TCPDump;
3. Сообщения от программы обнаружения вторжений, записывающиеся в режиме реального времени. Подобного рода программы носят название Систем обнаружения вторжений в режиме реального времени или Intrusion Detection System (IDS). IDS представляют собой специализированные программы, которые в состоянии, в реальном времени, отслеживать весь сетевой трафик. Целью работы подобной программы является обнаружение признаков вторжения. Программа руководствуется шаблонами хакерских атак. Чаще всего, системы IDS ведут журналы, в которых регистрируют события безопасности. Эти журналы необходимы для того, чтоб пользователи могли проанализировать ситуацию самостоятельно. Примером такого рода программы является довольно популярная утилита под названием Blacklce Defender [6, стр. 28].
1.2.3 Результаты анализа хаотичных интенсивных запросов
Подытоживая все вышесказанное можно сделать вывод о том, что наблюдать за активностью пользователей необходимо постоянно. Дело в том, что всплеск активности пользователей, вполне может вызвать большую нагрузку на оборудование веб-сервера и тем самым привести к тому, что сайт перестанет отвечать на запросы пользователей. Кроме того, многочисленные интенсивные запросы вполне могут создаваться разного рода программным обеспечением, которое используется злоумышленниками во время сканирования сайта, поиска уязвимостей в его скрипте и т.д. Также интенсивная нагрузка, т.е. множество запросов к веб-сайту, может быть создана программой, подбирающей логины и пароли пользователей.
Для того чтоб избежать нарушения работоспособности веб-сервера необходимо разработать методы защиты от хаотичных интенсивных запросов.
Напоследок отметим, что нагрузку на веб-сервер также могут создавать поисковые роботы, посещающие сайт во время индексации. Конечно же, запросы, создаваемые поисковыми роботами, никак нельзя назвать злонамеренными, но все же они подчас, за счет интенсивности отправляемых запросов, также могут создать довольно высокую нагрузку на веб-сервер.
пароль несанкционированный доступ сканирование
2 Разработка методов защиты от сканирования и хаотичных интенсивных запросов
В истории существования сети Интернет есть сведения о многочисленных разрушительных атаках произведенных на веб-сайты, когда нападающие смогли не только извлечь ценную информацию о структуре самого сайта, но и получить привилегированный доступ к нему. В то же время данные атаки почти не затронули огромный айсберг ошибок, допускаемых множеством разработчиков. Многие веб-разработчики до сих пор создают сайты, не обладающие должным уровнем защиты [3, стр. 390].
В целом, проблема защиты веб-ресурса не может ограничиваться одной лишь защитой сценария. Можно написать самый безопасный скрипт, но при этом расположить его на сервере, который будет иметь операционную систему с настройками по умолчанию. Дело в том, что настройки установленные по умолчанию практически всегда далеки от идеала. Именно за счет этой их особенности такой сервер, вполне может быть взломан без использования сложных программных средств.
Безопасным обязательно должен быть не только каждый из участков написанного кода, но и каждая из программ, установленных на веб-сервере, а также сама операционная система вместе со всем используемым оборудованием (данное утверждение, естественно, касается разного рода сетевых устройств, используемых в работе веб-сервера).
Программисту всегда нужно сотрудничать с администратором веб-сервера, а также со специалистами по обеспечению безопасности. К примеру, программист может принять решение, что для его удобства нужно создать определенную папку, которая будет открыта всем пользователям для чтения, а также записи. В данной папке скрипт будет сохранять определенные данные. Вот только если эту папку использует также администратор и хранит в ней важные данные или же конфигурационные файлы, то веб-сервер, естественно, окажется под угрозой.
Подытоживая все вышесказанное, отметим, что защищать нужно не только скрипт самого сайта, но и операционную систему всего веб-сервера, а также сервер баз данных и, конечно же, используемое веб-сервером сетевое оборудование [8, стр. 111-112].
Прежде всего, администратору сервера необходимо обратить свое внимание на информацию об уже обнаруженных уязвимостях. Для их устранения необходимо постоянно обновлять используемое программное обеспечение, а также изменить конфигурацию используемого сервера.
Кроме того, в работе веб-сервера не следует использовать уязвимые сценарии. Для нахождения различных уязвимостей можно использовать коммерческие системы IDS. В случае если в системе используется NFR можно применить сценарий ncode, которому под силу выявить атаку вида PHF на сервер.
Кроме того, существует несколько видов сценариев, которые используют так называемый метод «ловли на живца». Такого рода сценарии сами выступают в роли наживки или обманного сценария PHF. Они отвечают атакующему компьютеру, в процессе его вторжения, и одновременно собирают о нем разного рода сведения. Правда такой метод подойдет только самым бесстрашным администраторам веб-серверов.
В целом, можно выделить два метода борьбы с обнаруженными уязвимостями: это либо удаление обнаруженного уязвимого сценария (замена его более новой версией), либо установка отдельного сценария-заплатки. Каждый администратор сервера сам решает, какой из этих способов обеспечения безопасности ему ближе [3, стр. 382-390].
В этой главе нам необходимо разработать методы защиты содержимого сайта от сканирования, а также защиты сайта от разного рода хаотичных интенсивных запросов.
2.1 Методы защиты от сканирования
Исходя из приведенного в предыдущей главе анализа процесса сканирования сайта, а также программного обеспечения, используемого для этих целей, несложно сделать вывод о том, что сам по себе процесс сбора необходимой злоумышленнику информации в основном основывается на недочетах, оставленных программистами. Все дело в желании облегчить и максимально ускорить процесс, как просмотра, так и отладки работы сайта. Именно благодаря таким недочетам, у анонимного пользователя вполне может появиться шанс получить доступ к какой-либо важной информации или же к важным функциям сайта. К такому исходу могут привести ошибки в конфигурации веб-ресурса, а также непродуманность общего построения узла [2, стр. 136-137]. Прежде всего, следует позаботиться о защите от сканирования сайта при помощи программы-краулера. Начнем, пожалуй, с того, что нередко такого рода программы оказываются в тупике, если встречают необычный для себя метод перенаправления или же связывания ресурсов. В то же время, некоторая часть программ-краулеров может верно распознать такого рода аномалии и предоставить неплохие результаты.
К примеру, проблема плохого распознавания перенаправления программой-краулером вполне может возникнуть в случае, если функции данного перенаправления возложены на клиентский сценарий, написанный на JavaScript или же на VBScript.
Ниже приведен фрагмент кода на JavaScript в котором используется директива перенаправления или же вызова метода объекта location. Именно эту директиву сначала интерпретирует, а после, соответственно, выполняет веб-браузер клиента.
<script language=”JavaScript”>
location.replace(“./index.php3”);
</script>
Результатом обработки данного фрагмента кода станет то, что браузер обратиться к ресурсу с именем index.php3. Конечно же, подобное перенаправление сработает лишь в том случае, если в самом браузере не запрещено выполнение клиентских сценариев, написанных на JavaScript. Одновременно программа-краулер не сможет правильно интерпретировать, а значит и выполнить, такой оператор как location.replace(). Именно по этой причине во время сканирования сайта при помощи программы-краулера, файл с именем index.php3 окажется пропущенным.
В то же время, если такого рода перенаправление будет выполняться с использованием дескриптора <meta> языка гипертекстовой разметки или же с применением заголовка ответа Content-Location, то программа-краулер сумеет это обнаружить, а, значит, просканирует и проведет анализ страницы на которую установлено перенаправление.
Отметим, что некоторое количество из существующих программ-краулеров все же снабжено необходимыми функциями, для проведения столь нужного синтаксического анализа, обеспечивающего корректную обработку всех директив перенаправления. Но все же часть такого рода программ, к примеру, утилита под названием wget не может обрабатывать включенные в документ HTML-дескрипторы [1, стр. 186-187].
Для того чтоб обезопасить сайт от сканирования необходимо создать максимально стойкую защиту для веб-узла. В большинстве своем утечки информации могут быть предотвращены благодаря поддержанию жесткой политики безопасности, а также благодаря устранению ошибок в конфигурировании сайта. О безопасности ресурса должен заботиться не только администратор веб-сервера, но и программист. В частности программисту необходимо позаботиться о защите каталогов. Дело в том, что возможность получить список каталогов, а также просмотреть файлы, содержащиеся в каталоге или же определить внутренний IP-адрес, благодаря полю Location находящемуся в заголовке HTTP, даст злоумышленнику массу информации, помогающей исследовать веб-приложение. Именно поэтому, во время разработки скриптов необходимо придерживаться принципа минимизации объемов информации, которая может оказаться доступной злоумышленнику. Подобный подход позволит существенно повысить общую защищенность всего веб-ресурса.
Во время сканирования сайта злоумышленник особое внимание уделяет файлу robots.txt, из которого он может почерпнуть информацию о расположении каталогов на сайте.
Наличие данного файла существенно снижает для злоумышленника трудоемкость полного исследования структуры каталогов сайта. Ведь в файле robots.txt содержится список множества каталогов, который предназначается для поисковых машин. Эти каталоги либо разрешены, либо запрещены к индексированию. Относительно разрешения или запрета на индексирование, априори можно сделать вывод о полезности определенного каталога для проведения исследования сайта. Ведь файл robots.txt, который может быть получен либо с сервера поисковой машины, либо непосредственно с веб-узла, обеспечивает отличное представление о внутренней структуре каталогов всего веб-узла. Собственно говоря, это одна из целей сканирования сайта.
Единственным способом избавиться от данной «подсказки» для злоумышленника является отказ от использования файла ограничения доступа к информации для различных поисковых роботов. Использовать файл robots.txt не обязательно. Иначе говоря, помещение файла robots.txt в корневой каталог сайта дело добровольное [2, стр. 120-138].
Для того чтоб сделать невозможным сканирование сайта при помощи поисковой системы необходимо запретить для поисковых роботов сканирование закрытых частей сайта. Для этого можно использовать не только файл robots.txt, но и основывать защиту закрытых областей сайта на криптографическом протоколе SSL, а не только на простой проверке пароля доступа, вводимого пользователем сайта при входе в защищенную область. Ведь в последнем случае поисковая система проиндексирует «закрытые» для простых пользователей страницы. В таком случае в базе данных поисковой системы может оказаться важная информация, скрытая от простых пользователей, но по ошибке администратора ставшая доступной роботу индексирующей машины [4, стр. 25].
Для того чтоб усложнить работу приложений, предназначенных для проверки определенных веб-сайтов на наличие в них широко известных или же формируемых в качестве умолчания, уязвимых мест, администратору веб-сервера необходимо не только изменить конфигурационные параметры веб-сервера по умолчанию, но и удалить (или же обновить) файлы, в которых была обнаружена уязвимость.
В целом, лучше удалить все сценарии, которые не задействованы в работе веб-сервера. На сервере должны работать лишь те сценарии, которые необходимы для его работоспособности.
Иначе говоря, все лишнее должно быть удалено. В то же время, если удалить или же обновить сценарии нет возможности, то необходимо установить так называемую «заплатку». Подобный подход, конечно же, нельзя назвать панацеей. Именно поэтому администратору также необходимо ограничить доступ к исходным файлам сервера. В частности, нужно отменить право на чтение для большинства групп пользователей. В целом, для исходного кода сценария вполне достаточно будет разрешения на исполнение файла. Право на чтение файла в такой ситуации необязательно.
Следующие советы дадут возможность администратору ресурса защитить сайт от различных технологий его исследования:
1. Необходимо помещать все клиентские сценарии, написанные на языке JavaScript в определенный отдельный каталог. При этом администратору следует убедиться в том, что у всех скриптов, которые размещены в данном каталоге, отсутствует разрешение на выполнение. Иначе говоря, данные файлы могут быть лишь прочитаны сервером, но не могут быть им выполнены в качестве сценариев.
2. В исходном коде не должно оставаться комментариев, выводимых в браузер клиента. Дело в том, что в исходном коде программы могут иметься переменные, невидимые во время обыкновенного просмотра Интернет-страницы. Эти переменные предназначаются для упрощения процесса отладки работы скрипта.
3. В случае если скрипт должен вызывать какой-либо другой файл, расположенный на веб-сервере, необходимо использовать имена путей относительно текущего каталога или же корневого каталога веб-сервера. Нельзя использовать в строках имен путей существующие названия каталогов (которые находятся вне корневого каталога сервера) или логических дисков веб-сервера. К тому же, необходимо учесть то, что написанный сценарий должен самостоятельно отбрасывать те символы, которые предназначаются для обхода каталогов, в частности ../, ./ и пр.
4. В случае если необходимо использовать аутентификацию, то программисту нужно обеспечить возможность добавочной аутентификации для получения доступа к каталогам и подкаталогам. Иначе говоря, если анонимный пользователь не имеет доступ к PHP-файлам, то значит, он не сможет получить доступ и к XSL-файлам [2, стр. 138].
В целом, контрмеры, которые помогут предотвратить кражу данных с веб-сайта, сформулированы ниже.
Необходим мониторинг всех действий пользователя. Он поможет выявить быстрые повторные запросы GET исходящие из одного источника. Такого рода запросы, естественно, необходимо блокировать на некоторое время. В подобной ситуации сканирование сайта окажется не только затрудненным, но и продолжительным.
Подобные документы
Анализ потенциальных уязвимостей материала, размещенного на сайте. Анализ потенциальных уязвимостей материала с использованием методов шифрования и стеганографии. Использование водяного знака для защиты изображений. Разработка php-скрипта для защиты.
курсовая работа [4,2 M], добавлен 11.05.2014Технические средства защиты информации. Основные угрозы безопасности компьютерной системы. Средства защиты от несанкционированного доступа. Системы предотвращения утечек конфиденциальной информации. Инструментальные средства анализа систем защиты.
презентация [3,8 M], добавлен 18.11.2014Программно-аппаратные средства защиты компьютера от несанкционированного доступа. Электронный замок "Соболь". Система защиты информации SecretNet. Дактилоскопические устройства защиты информации. Управление открытыми ключами, удостоверяющие центры.
курсовая работа [3,1 M], добавлен 23.08.2016Концептуальная модель, спецификация атрибутов. Диаграмма "сущность-связь". Пакет Sybase PowerDesigner. Разработка SQL-скрипта создания разрабатываемой базы данных. Создание и заполнение базы данных. Выполнение запросов на чтение, модификацию и удаление.
курсовая работа [2,3 M], добавлен 24.02.2014Организация системы защиты информации во всех ее сферах. Разработка, производство, реализация, эксплуатация средств защиты, подготовка соответствующих кадров. Криптографические средства защиты. Основные принципы инженерно-технической защиты информации.
курсовая работа [37,5 K], добавлен 15.02.2011Цели, методы и средства защиты информационных ресурсов. Права и обязанности субъектов. Обеспечение организационных мер. Попытки несанкционированного доступа. Виды угроз безопасности. Принципы создания системы защиты. Сущность криптографических методов.
контрольная работа [25,3 K], добавлен 17.11.2009Понятие запросов как объектов СУБД Access, предназначенных для отбора данных и удовлетворяющих заданным условиям. Основные виды запросов: простой, перекрестный, с параметром, группировкой, вычисляемым полем. Отличия запросов-действий от других запросов.
контрольная работа [2,9 M], добавлен 29.06.2015Создание визуального построителя запросов на извлечение данных с помощью оператора SELECT и его разделов. Постановка задачи; язык запросов SQL, общие сведения; агрегатные функции и результаты запросов. Программная реализация и алгоритм работы приложения.
курсовая работа [152,8 K], добавлен 12.08.2011Методы диагностики производительности запросов. Выбор инструментов для front-end разработки. Проектирование архитектур программной системы. Реализация системы регистрации и авторизации пользователей на сайте. Причины неэффективности SQL-запросов в Oracle.
дипломная работа [1,0 M], добавлен 09.11.2016Анализ информации как объекта защиты и изучение требований к защищенности информации. Исследование инженерно-технических мер защиты и разработка системы управления объектом защиты информации. Реализация защиты объекта средствами программы Packet Tracer.
дипломная работа [1,2 M], добавлен 28.04.2012