Тестирование безопасности Компьютерные системы очень часто являются мишенью незаконного проникновения. Под проникновением понимается
широкий диапазон действий: попытки хакеров проникнуть в систему из спортивного интереса, месть рассерженных
служащих, взлом мошенниками для незаконной наживы.
Тестирование безопасности проверяет фактическую реакцию защитных механизмов, встроенных в систему, на
проникновение.
В ходе тестирования безопасности испытатель играет роль взломщика. Ему разрешено все:
попытки узнать пароль с помощью внешних средств;
атака системы с помощью специальных утилит, анализирующих защиты;
подавление, ошеломление системы (в надежде, что она откажется обслуживать других клиентов);
целенаправленное введение ошибок в надежде проникнуть в систему в ходе восстановления;
просмотр несекретных данных в надежде найти ключ для входа в систему.
Конечно, при неограниченном времени и ресурсах хорошее тестирование безопасности взломает любую систему. Задача
проектировщика системы — сделать цену проникновения более высокой, чем цена получаемой в результате информации.
Стрессовое тестирование На предыдущих шагах тестирования способы «белого» и «черного ящиков» обеспечивали полную оценку нормальных
программных функций и качества функционирования. Стрессовые тесты проектируются для навязывания программам
ненормальных ситуаций. В сущности, проектировщик стрессового теста спрашивает, как сильно можно расшатать систему,
прежде чем она откажет?
Стрессовое тестирование производится при ненормальных запросах на ресурсы системы (по количеству, частоте, размеру-
объему).
Примеры:
генерируется 10 прерываний в секунду (при средней частоте 1,2 прерывания в секунду);
скорость ввода данных увеличивается прямо пропорционально их важности (чтобы определить реакцию входных
функций);
формируются варианты, требующие максимума памяти и других ресурсов;
генерируются варианты, вызывающие переполнение виртуальной памяти;
проектируются варианты, вызывающие чрезмерный поиск данных на диске.
По существу, испытатель пытается разрушить систему. Разновидность стрессового тестирования называется
тестированием чувствительности. В некоторых ситуациях (обычно в математических алгоритмах) очень малый диапазон
данных, содержащийся в границах правильных данных системы, может вызвать ошибочную обработку или резкое понижение
производительности. Тестирование чувствительности обнаруживает комбинации данных, которые могут вызвать
нестабильность или неправильность обработки.