June 14, 2020

4.0 Введение в курс и задачи пентестера

В этом разделе описывается методология тестирования веб-приложений и объясняется, как проверить наличие уязвимостей в приложении.

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

Тестирование безопасности веб-приложений - оценка защищённости определённой системы или сети , путём проверки эффективности средств контроля безопасности. Стоит упомянуть что данная проверка фокусируется именно на оценке безопасности именно веб приложений. Процесс же включает в себя активный анализ на наличие любых слабых мест / технических недостатков. О любых обнаруженных уязвимостях владелец будет оповещён и ему будут предоставлены рекомендации по устранению уязвимостей , улучшению системы защиты

Что такое уязвимость?

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

Что такое угроза?

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

Что такое тестирование?

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

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

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

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

  • Тестировщик — тот кто проводит тестирование;
  • Инструменты и методологии - основа данного проекта
  • Приложение: так называемый чёрный ящик, который нам предстоит протестировать

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

  • Разведка

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

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

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

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

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

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

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

  • Активное тестирование

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

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

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