Представляю вашему вниманию цикл статей по наиболее полной методологии тестирования безопасности веб-приложений  — OWASP Testing Guide.

Тестирование: введение и задачи

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

Что такое тестирование безопасности веб-приложений?
Тестирование безопасности – это способ оценки защищенности компьютерной системы или же сети, который заключается в методической проверке эффективности ее защиты. Тестирование безопасности веб-приложений концентрирует внимание только на оценке защищенности веб-приложений. Процесс тестирования включает активный поиск каких-либо слабостей, технических недостатков или уязвимостей в приложении. Любые обнаруженые проблемы в безопасности должны быть озвучены владельцу системы, также предоставляется оценка влияния обнаруженных проблем и возможные способы их устранения.

Что такое уязвимость?
Уязвимость это ошибка или же слабость дизайне или реализации системы, экпслуатация которой может скомпрометировать всю систему.

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

Что такое тестирование?
Тестирование это проверка соответствия веб-приложения всем требованиям безопасности.

Подход при написании данного руководства
Данное руководство является открытым и совместным:

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

С целью данного подхода мы стремимся создать Методологию тестирования, которая будет:

  • Последовательной;
  • Воспроизводимой;
  • Тщательной;
  • Под качественным контролем.

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

Что такое методология тестирования OWASP?

Тестирование безопасности никогда не будет точной наукой, с определенным списком возможных проблем, которые должны быть протестированы. В действительности же тестирование тестирование безопасности это набор способов тестирования веб-приложений при определенных обстоятельствах. Целью данного проекта является сбор всех возможных способов тестирования, пояснение данных способов и поддержание данного руководства в актуальном состоянии. Методология тестирования безопасности веб-приложений OWASP базируется на методе черного ящика. Информацию о тестируемом приложении является ограниченной или отсутствует вообще.

Модель тестирования состоит из следующих элементов:

  • Тестировщик — тот кто проводит тестирование;
  • Инструменты и методология – ядро данного проекта;
  • Приложение, которое тестируется методом черного ящика.

В целом тестирование можно разделить на два этапа:

  • Пассивный этап

Во время пассивного этапа тестировщик пытается понять логику приложения и «играет» с ним. Могут использоваться инструменты для сбора информации. Например, с помощью HTTP прокси можно изучить все HTTP запросы и ответы. В конце данного этапа тестировщик должен понимать все точки входа приложения (например, HTTP заголовки, параметры и куки). В разделе «Сбор информации» объясняется как нужно проводить тестирование во время пассивного этапа.

Например, тестировщик может найти что-нибудь подобное:

https://www.example.com/login/Authentic_Form.html

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

Следующие параметры представляют собой две точки входа в приложении:

http://www.example.com/Appx.jsp?a=1&b=1

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

  • Активный этап:

Во время данного этапа тестировщик проводит тесты в соответствии с методологией, состоящей из следующих разделов.

Все тесты были разбиты на одиннадцать подразделов:

  • Сбор информации;
  • Тестирование конфигурации;
  • Тестирование политики пользовательской безопасности;
  • Тестирование аутентификации;
  • Тестирование авторизации;
  • Тестирование управления сессией;
  • Тестирование обработки пользовательского ввода;
  • Обработка ошибок;
  • Криптография;
  • Тестирование бизнес-логики;
  • Тестирование уязвимостей на стороне пользователя.