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
Все точки входа, обнаруженные во время пассивного этапа, в дальнейшем должны быть протестированы. Также полезно для следующего этапа составить таблицу с директориями и файлами приложения, со всеми точками входа .
- Активное тестирование
Во время данного этапа тестировщик проводит тесты в соответствии с методологией, состоящей из следующих разделов.
Все тесты были разбиты на одиннадцать подразделов:
- Сбор информации;
- Тестирование конфигурации;
- Тестирование политики пользовательской безопасности;
- Тестирование аутентификации;
- Тестирование авторизации;
- Тестирование управления сессией;
- Тестирование обработки пользовательского ввода;
- Обработка ошибок;
- Криптография;
- Тестирование бизнес-логики;
- Тестирование уязвимостей на стороне пользователя.