Тестирование уязвимостей: выявление ваших слабых сторон — ваша самая сильная сторона

Опубликовано: 4 Апреля, 2023
Тестирование уязвимостей: выявление ваших слабых сторон — ваша самая сильная сторона

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

Что такое тестирование уязвимостей?

Тестирование уязвимостей — это процесс, посредством которого обнаруживаются и классифицируются лазейки безопасности в инфраструктуре. Это то, что Марти Бишоп и его команда сделали в фильме «Кроссовки», хотя наши технологические возможности сейчас продвинулись дальше, чем они были в начале 1990-х, но это уже другая тема. Что касается приложений, то сначала их необходимо протестировать на соответствие стандартному набору рисков, определенных такими организациями, как Консорциум безопасности веб-приложений (WASC) и Открытый проект безопасности веб-приложений (OWASP).

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

Изображение 10236
ТехМаяк

Каковы этапы тестирования уязвимостей?

Тестирование уязвимостей включает в себя несколько этапов:

  1. Определение целей или задач процесса: В зависимости от требований клиента поставщик устанавливает границы оценки, а также перечисляет требования к ресурсам для тестирования.
  2. Сбор всей необходимой информации о приложении или наборе приложений, включая бизнес-логику, специальные требования и т. д.
  3. Поставщик оценки использует инструменты, чтобы выявить глубоко укоренившиеся недостатки. Сложные недостатки потребуют ручного тестирования на проникновение.
  4. Анализ, документирование и отчетность об обнаруженных уязвимостях.
  5. Другие инструменты предоставляют рекомендации по устранению обнаруженных уязвимостей, а также выполняют проверочное тестирование, чтобы убедиться, что проблема устранена.
  6. Если уязвимость не может быть устранена быстро (как это часто встречается), другие инструменты могут помочь вам исправить ее, изменив политику на уровне WAF (брандмауэр веб-приложений).

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

Почему для вас важно тестирование уязвимостей?

Принято считать, что если проекты следуют стандартному жизненному циклу разработки программного обеспечения (SDLC), об аспекте уязвимости также позаботятся. Однако это не так. Тестирование уязвимостей требует отдельного внимания и подхода. Это подпадает под ведро тестирования безопасности. Итак, каковы риски невыполнения тестирования на уязвимости?

Потеря репутации и клиентов

Репутационный риск — одна из самых больших проблем, возникающих в результате неполного тестирования уязвимостей. С потерей репутации приходит потеря клиентов. Клиенты недовольны утечкой данных. Это приводит к ситуации, когда даже давние клиенты могут прекратить деловые отношения.

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

Финансовый ущерб

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

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

Как эффективно использовать тестирование уязвимостей

Хотя большинство владельцев бизнеса понимают риски, связанные со скомпрометированными приложениями, не все понимают важность комплексного тестирования.

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

Давайте рассмотрим несколько сценариев, которые были бы пропущены автоматизированными инструментами:

  1. Типичный сайт электронной коммерции позволяет пользователям добавлять товары в корзину, просматривать сводную страницу и затем совершать транзакцию. Что было бы, если бы хакер мог вернуться на страницу сводки и, сохраняя тот же сеанс, использовать инъекцию, чтобы обновить более низкую стоимость одного из элементов, а затем завершить транзакцию?
  2. Что было бы, если бы пользователь мог навсегда оставить уникальный товар в корзине и запретить другим покупать его?
  3. Может ли пользователь оставить товар в корзине по текущей сниженной цене, а затем совершить фактическую покупку через много месяцев?
  4. Что было бы, если бы пользователь мог приобрести товар через учетную запись лояльности и получить баллы лояльности, но затем отменить транзакцию до ее завершения?

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

Тестирование веб-приложений вместе с ручным тестированием на проникновение

И, наконец, вот наша 12-шаговая программа для ручного тестирования веб-приложений на проникновение.

  1. Целевая разведка: здесь приложение анализируется на поверхностном уровне для проверки первого уровня.
  2. Отображение бизнес-процессов и логики приложений: это процесс, в котором бизнес-процессы и логика приложений, связанные с приложением, тщательно анализируются.
  3. Настроить инструмент тестирования.
  4. Автоматическое сканирование веб-сайтов.
  5. Ручное сканирование сайта.
  6. Автоматическое сканирование без проверки подлинности с помощью инструмента.
  7. Автоматическое сканирование с проверкой подлинности с помощью инструмента.
  8. Ручное тестирование веб-уязвимостей.
  9. Эксплуатация веб-уязвимостей.
  10. Обзор результатов и ложных срабатываний.
  11. Оценка бизнес-рисков.
  12. Создайте документацию и опубликуйте результаты.