Что новичку в QA стоит знать о тестировании безопасности веб-сайта?

10 августа 2022

Любой веб-сайт находится в беспрерывном многопользовательском доступе для бесчисленного количества соединений. И каждый цифровой ресурс может быть подвергнут сетевой атаке независимо от размеров и степени коммерциализации. Как следствие, сайт потеряет работоспособность, возникнет серьёзная угроза утечки конфиденциальных данных. Но как не допустить этого негативного сценария?

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

Выявляем уязвимости в безопасности сайта

Первое, что необходимо сделать тестировщику при поиске уязвимостей, это задать себе два вопроса:

  • Кто попытается взломать веб-ресурс, каковы его мотивы?
  • Какие пути для взлома у него существуют?

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

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

Не менее важно проанализировать возможности «инъекций», внедрений вредоносного кода.

XSS-атака: всё, что важно знать

XSS (от англ. cross-site scripting – межсайтовый скриптинг) – это атака, в ходе которой злоумышленник внедряет вредоносный код на страницу веб-ресурса. Онавыполняется каждый раз, когда обыкновенный пользователь посещает сайт.

Выделяют несколько видов межсайтового скриптинга:

  • Отражённый

Создаётся в формате намеренно созданной вредоносной ссылки.

  • Хранимый 

Проявляется при намеренной загрузке вредоносного ввода.

Сама по себе уязвимость веб-ресурса к XS- атакам не представляется опасной. Она становится таковой, когда попадается на глаза злоумышленнику. Главная «лазейка», через которую хакер может внедрить вредоносный код – это те места, где пользователям дана возможность влиять на контент.

Проверки программного обеспечения в рамках тестирования защищённости

Сегодня быть уверенным в безопасности программного продукта практически нельзя. Причём речь идёт даже о приложениях серьёзных корпораций (например, Google или Apple). Потому так важно оценивать защищённость ПО.

Оценка программного обеспечения на безопасность проводится в несколько этапов:

Шаг 1. Анализ QA-экспертов

Данная активность предполагает ручное тестирование. По результатам тест-кейсов определяется, целесообразно ли внедрять в процесс автоматизированную проверку.

Шаг 2. Статический анализ полученных данных

Здесь тестировщик выявляет уязвимости программы без её реального запуска. На этой стадии оценивается качество кода. Статический анализ состоит из трёх частей: запуска потока данных, его контроля и измерения цикломатической сложности.

Шаг 3. Проведение динамических тестов

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

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

Полезные инструменты при тестировании безопасности сайта

Чтобы оптимизировать работу, QA-специалисты используют специализированное ПО. К наиболее востребованным программам для тестирования безопасности относятся:

  1. SQLMap. Инструмент для поиска уязвимостей типа SQL-инъекция.
  2. W3af. Программная платформа, способная выявить более двухсот видов уязвимостей. Одно из преимуществ W3af – возможность расширить функциональность платформы за счёт разнообразных плагинов.
  3. SonarQube. Кроме того, что инструмент ищет уязвимости, он подходит для измерения качества кода ресурса. SonarQube анализирует больше двадцати языков программирования. Для тестировщиков начального уровня предусмотрен понятный интерфейс.
  4. SkipFish. Ещё один бесплатный сканер, способный выстраивать интерактивную и подробную карту тестируемого сайта. SkipFish не имеет графического интерфейса.
  5. ZAP. Несложный инструмент, используемый для сканирования либо перехвата прокси при ручном тестировании сайта. Особенность ZAP – это поддержка веб-сокетов (программное решение, которое позволяет установить надёжное соединение между сервером и браузером пользователя).
  6. Wapiti. Проект, проводящий тестировать методикой «чёрный ящик». Wapiti – это профессиональный инструмент, требующий от тестировщика знания определённых команд.
  7. Argus. Это аппаратный комплекс, предназначенный для анализа сетевого трафика. Он углублённо обрабатывает информацию, перемещающуюся по сети. Argus способен мониторить огромные объёмы трафика и автоматически формировать отчёты.

Заключение

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

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

Начать свой путь в этой профессии поможет QA Academy. Курсы по тестированию программного обеспечения – это первый шаг в большое будущее.