Чтение онлайн

на главную - закладки

Жанры

Защита от хакеров корпоративных сетей

авторов Коллектив

Шрифт:

Будем надеяться, что читатель понял, какую проблему для безопасности представляют не предусмотренные разработчиком приложения данные, введенные пользователем. Следующее, что нужно узнать, – это уязвимо ли ваше приложение. Но как это сделать? Этот раздел посвящен наиболее общим методам, которые используются для определения уязвимости приложения и устранения их.

Тестирование методом «черного ящика»

В Web-приложениях проще всего найти уязвимости, вызванные вводом непредвиденных данных. Объясняется это их многочисленностью и широким распространением. Прежде всего следует исследовать HTML-формы и URL с параметрами (параметры – это значения после знака «?» в URL).

Для

тестирования рекомендуется найти Web-приложение, которое поддерживает динамические страницы с большим количеством параметров в URL. Для начала можно использовать придирчивую методику поиска, основанную на замене некоторых значений параметров. Это не так уж и сложно. Для повышения эффективности поиска потенциальных уязвимостей следует придерживаться следующих правил.

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

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

Умышленная попытка создания аварийной ситуации. Попытайтесь оставить некоторые поля ввода пустыми или ввести в них столько «плохих» символов, сколько возможно (поместите буквы туда, где должны быть цифры и т. п.). Цель подобных манипуляций – выяснить реакцию приложения на ошибку. Если приложение обнаружит ошибку, то реакция приложения поможет установить алгоритм проверки входных данных. Если приложение выдает диагностические сообщения об ошибке в данных или выводит уже исправленные значения, то следует поэкспериментировать с символами ASCII, чтобы определить, какие данные приложением отбраковываются, а какие – нет. Данные, отбракованные приложением, могут подсказать алгоритм обработки данных. Например, если приложение отсеивает одинарные или двойные кавычки, то данные, вероятнее всего, используются в запросах SQL. Если приложение избавляется от всех метасимволов командного процессора UNIX, то возможно, что они передаются в другую программу.

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

Определение необходимости и/или полезности каждого параметра. Длинные последовательности строк и чисел,

похожие на случайные последовательности, могут быть ключами сессий. Следует несколько раз выполнить ввод одних и тех же данных. Увиденные изменения могут многое сказать о сессии. Насколько сильны изменения? Обратите внимание, изменяется ли длина строки линейно. Некоторые приложения используют идентификатор процесса (PID) в качестве «случайного числа». Возрастающее число, меньшее 65 536, может быть основано на идентификаторе процесса.

Анализ общего состояния Web-сайта и приложения и его использование для предположений об алгоритме работы приложения. Малобюджетные компании, применяющие в своей работе информационный сервер Интернет IIS для Windows NT, вероятнее всего, используют на серверах баз данных Microsoft Access, а крупные корпорации, поддерживающие одновременную работу большого числа пользователей, используют что-то более солидное типа Oracle. Если на сайте используются сценарии интерфейса CGI, загруженные с многочисленных Интернет-ресурсов, то можно предположить, что приложения сайта не писались наспех и полностью адаптированы к потребностям своего сайта. Следует попытаться обнаружить, используется ли на сайте уже известное приложение. И если используется, то попытаться найти его исходный код.

Поиск имени файла. Следует не упустить из виду чего-нибудь, напоминающее имя файла. Имена файлов близки к формату «8.3» (который порожден операционной системой CP/M и был перенят в Microsoft DOS). Признаками имени файла являются строки «.tmp» и строки, состоящие только из букв, чисел, точек и, возможно, символов косой черты (прямой или обратной, в зависимости от используемой платформы). Рассмотрим указатель информационного ресурса URL для машины индексированного поиска в сети Интернет swish-e компании Simple Web Indexing System for Humans, Enhanced:

search.cgi/?swishindex=%2Fusr%2Fbin%2Fswish%2Fdb.swish& keywords=key&maxresults=40

Надеюсь, читатель сможет найти в URL замаскированный параметр swishindex=/usr/bin/swish/swish.db. Интуитивно понятно, что программа swish-e работает с этим файлом. Следует попытаться подставить в параметр известные имена файлов и посмотреть, сможет ли swish-e работать с ними. Скорее всего, ничего не получится. Наверняка для идентификации правильного файла используется внутренний заголовок файла. Это означает, что программа swish-e не прочитает ничего, кроме нужного ей файла. Тем не менее беглый просмотр исходного текста программы (программа swish-e свободно распространяется) многое прояснит. Для выполнения запроса swish-e получает значения переданных параметров (swishindex, keywords и maxresults) и запускает программу swish с параметрами:

swish -f $swishindex -w $keywords -m $maxresults

Но это недозволенный прием, потому что программа swish-e передает параметры пользователя напрямую командному интерпретатору в качестве параметров для другого приложения. Это означает, что если любой из параметров содержит метасимволы командного процессора в операционной системе UNIX (которые программа swish-e никак не контролирует), то могут быть выполнены системные команды. Пусть задан следующий URL:

Поделиться:
Популярные книги

Убивать чтобы жить 4

Бор Жорж
4. УЧЖ
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 4

Новик

Ланцов Михаил Алексеевич
2. Помещик
Фантастика:
альтернативная история
6.67
рейтинг книги
Новик

Инвестиго, из медика в маги. Том 6. Финал

Рэд Илья
6. Инвестиго
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Инвестиго, из медика в маги. Том 6. Финал

Законы Рода. Том 11

Flow Ascold
11. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 11

Леди Малиновой пустоши

Шах Ольга
Любовные романы:
любовно-фантастические романы
6.20
рейтинг книги
Леди Малиновой пустоши

Аристократ из прошлого тысячелетия

Еслер Андрей
3. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Аристократ из прошлого тысячелетия

Страж Кодекса. Книга IX

Романов Илья Николаевич
9. КО: Страж Кодекса
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Страж Кодекса. Книга IX

Солнечный корт

Сакавич Нора
4. Все ради игры
Фантастика:
зарубежная фантастика
5.00
рейтинг книги
Солнечный корт

Охота на царя

Свечин Николай
2. Сыщик Его Величества
Детективы:
исторические детективы
8.68
рейтинг книги
Охота на царя

Доктора вызывали? или Трудовые будни попаданки

Марей Соня
Фантастика:
юмористическая фантастика
попаданцы
5.00
рейтинг книги
Доктора вызывали? или Трудовые будни попаданки

Страж Кодекса. Книга III

Романов Илья Николаевич
3. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Страж Кодекса. Книга III

Неудержимый. Книга V

Боярский Андрей
5. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга V

Газлайтер. Том 8

Володин Григорий
8. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 8

Надуй щеки! Том 6

Вишневский Сергей Викторович
6. Чеболь за партой
Фантастика:
попаданцы
дорама
5.00
рейтинг книги
Надуй щеки! Том 6