Типы тестирования безопасности

Какие существуют типы тестирования безопасности?

Я предлагаю вам уточнить этот вопрос, чтобы объяснить, что вы ищете. своего рода систематика тестирования безопасности довольно субъективна и не очень полезна.

frankodwyer 31.12.2008 15:44
SQL Injection: Атаки в реальной жизни и как это вредит бизнесу
SQL Injection: Атаки в реальной жизни и как это вредит бизнесу
Один-единственный вредоносный запрос может нанести ущерб вашему бизнесу. Уязвимости вашего кода могут привести к:
3
1
9 711
5

Ответы 5

  • Оценка рисков - создание модели угроз и определение того, что будет проверяться.
  • Аудит безопасности - использование модели угроз для проверки конструкции системы.
  • Сканирование уязвимостей - использование программного обеспечения для проверки работоспособности системы.
  • Тестирование на проникновение - попытка взлома системы как извне, так и изнутри.
  • Эксплуатационное тестирование - некоторые или все вышеперечисленное после запуска системы в производство.
  • Сканирование уязвимостей - обычно автоматическая процедура сканирования одной или нескольких систем на наличие известных сигнатур уязвимостей.

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

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

  • Аудит безопасности - обычно углубленный аудит программного кода и / или операционных систем. Часто это очень тщательная проверка кода построчно.

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

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

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

У нас есть довольно полный список, который обсуждается в Security Stack Exchange здесь и здесь.

Открытие

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

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

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

Оценка уязвимости

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

Оценка безопасности

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

Тест на проникновение

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

Аудит безопасности

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

Обзор безопасности

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

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

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

  • Взлом базы данных: компрометация баз данных, которые поддерживают систему и хранят данные, важные для бизнеса или работы приложения.

  • Кража файлов cookie: действительный компьютерный сеанс используется для получения несанкционированного доступа

  • Межсайтовый скриптинг: злоумышленник внедряет вредоносные скрипты в код на стороне клиента, чтобы перенаправить ссылку на сайт.

  • Подделка межсайтовых запросов: также называется атакой в ​​один клик или сеансом, неавторизованным.

  • Повышение привилегий: взломать ID старшего и злоупотреблять привилегиями.

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по теме