Тестирование безопасности — выбираем нужное (часть 2)

24 августа 2014
Дата публикации
Тестирование безопасности — выбираем нужное (часть 2)
  • Тестирование ПО
  • Обеспечение качества
Оценка защищенности ПО подразумевает наиболее полную и обширную проверку системы. Ее основная цель — не получение доступа, а выявление недостатков конфигурации и уязвимостей, которые потенциально могут привести к получению несанкционированного доступа либо к компрометации пользователей системы.

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

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

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

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

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

Три метода тестирования на основе данных о системе

Следующий критерий выбора вида теста безопасности — предоставляемые аудиторам данные о системе. В зависимости от того, какой информацией обладают тестировщики перед началом тестов, возможны три варианта:
  •  тестирование методом черного ящика — тестировщики не получают никаких сведений о системе, даже учетных записей; на входе они имеют только перечень IP-адресов или ссылку на сайт;
  •  тестирование методом серого ящика — тестировщикам предоставляются валидные учетные записи и ограниченная информация о системе;
  •  тестирование методом белого ящика — тестировщикам предоставляется полная информация о системе: учетные записи, карты сетей, технологические спецификации, исходный код веб-приложений.
Очевидно, что чем «белее» ящик, тем более полную информацию о защищенности вашей системы вы сможете получить по завершении тестирования. Однако тем большим количеством важной информации вам придется поделиться с третьей стороной и тем более затратным по времени и финансам будет проведение тестирования.

Точка входа в систему
Последний критерий — точка входа в систему. Этот критерий учитывается только при проведении тестирования на проникновение на уровне локальной сети. Здесь может быть два варианта:
  •  внешний тест на проникновение — тестам подвергаются только внешние IP-адреса компании, доступные из Интернета;
  •  внутренний тест на проникновение — тест проводится внутри корпоративной сети; тестировщикам предоставляется выделенное рабочее место в компании либо доступ во внутреннюю сеть по VPN.
Как правило, внутренний тест на проникновение проводится только при наличии соответствующих требований в отраслевых стандартах либо если необходимо проверить уровень защищенности от так называемых инсайдерских атак, т. е. осуществляемых сотрудниками самой компании.

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

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