Тестирование безопасности
Тестирование безопасности — это процесс, направленный на выявление уязвимостей в механизмах безопасности информационной системы, что способствует защите данных и обеспечению функционирования системы в соответствии с требованиями[1]. Из-за логических ограничений тестирования безопасности успешное прохождение данного процесса не свидетельствует об отсутствии уязвимостей или о полном соответствии системы требованиям по безопасности.
Обычные требования по безопасности могут включать такие элементы, как конфиденциальность, целостность, аутентификация, доступность, авторизация и неотказуемость[2]. Конкретные проверяемые требования по безопасности зависят от реализованных в системе мер защиты. Сам термин «тестирование безопасности» трактуется по-разному и может охватывать различные методики; для систематизации подходов используется специальная таксономия.
- Защита информации от раскрытия лицам, не являющимся предполагаемыми получателями, — это лишь одна из мер обеспечения безопасности.
Целостность
Целостность информации означает защиту данных от модификаций неавторизованными пользователями.
- Меры, направленные на подтверждение получателем правильности предоставленной системой информации.
- Схемы обеспечения целостности часто используют те же технологии, что и механизмы конфиденциальности, но обычно включают в коммуникацию дополнительную информацию для реализации алгоритмической проверки, а не только шифруют всё сообщение.
- Проверка корректности передачи информации между приложениями.
Аутентификация
Аутентификация может включать подтверждение личности человека, определение подлинности объекта, проверку соответствия продукта его упаковке или маркировке, либо удостоверение доверия к программному обеспечению.
Авторизация
- Процесс определения, имеет ли запрашивающий право получить услугу или выполнить операцию.
- Контроль доступа является примером авторизации.
Доступность
- Гарантирование готовности информационных и коммуникационных сервисов к использованию в ожидаемый момент времени.
- Информация должна быть доступна авторизованным лицам тогда, когда возникнет такая необходимость.
Неотказуемость
- В цифровой безопасности неотказуемость означает обеспечение того, что отправленное сообщение действительно было отправлено и получено заявленными сторонами. Неотказуемость позволяет отправителю сообщения не отрицать факт отправки, а получателю — факт получения.
- Идентификатор отправителя обычно указывается в заголовке сообщения для определения источника.
Таксономия
Наиболее распространённые понятия, связанные с проведением тестирования безопасности:
- Обнаружение — этап идентификации систем, находящихся в области тестирования, и используемых сервисов. Целью не является поиск уязвимостей, однако определение версий программного обеспечения или прошивок может выявить использование устаревших решений, связанных с потенциальными уязвимостями.
- Сканирование уязвимостей — после этапа обнаружения применяется автоматизированный поиск известных проблем с безопасностью путём сопоставления условий с известными уязвимостями. Уровень риска проставляется автоматически средством тестирования без ручной проверки или интерпретации. Может дополняться сканированием на основе учётных данных, что позволяет уменьшить число ложноположительных срабатываний с использованием предоставленных учётных данных (например, локальных аккаунтов Windows).
- Анализ уязвимостей — совмещает обнаружение и сканирование для выявления уязвимостей и интегрирует результаты в контекст тестируемой среды. Примером может быть исключение типичных ложноположительных результатов из отчёта и присвоение уровня риска с целью лучшей интерпретации результатов в бизнес-контексте.
- Оценка безопасности — расширяет анализ уязвимостей проверкой на практике для подтверждения наличия уязвимости, однако не включает эксплуатацию для дальнейшего получения доступа. Проверка может включать авторизованный доступ к системе, изучение логов, реакций системы, сообщений об ошибках, кодов и пр. Оценка безопасности ориентирована на широкий охват системы, но не на глубину одного конкретного вектора атаки.
- Тестирование на проникновение — тест на проникновение эмулирует нападение злоумышленника. На этом этапе выявленные уязвимости эксплуатируются для получения дополнительного доступа. Такой подход позволяет определить, насколько потенциальный атакующий может получить доступ к конфиденциальной информации, повлиять на целостность данных или доступность сервиса с соответствующими последствиями. Каждый тест проводится по обоснованной и полной методике, в рамках которой эксперт использует свои аналитические способности, широкий набор инструментов и знания по сетям и системам для поиска уязвимостей, которые не зарегистрированы автоматизированными средствами.
- Аудит безопасности — инициируется функцией аудита и управления рисками для анализа контроля или соответствия требованиям. Обычно характеризуется узкой областью; при этом могут использоваться любые подходы, перечисленные выше (анализ уязвимостей, оценка безопасности, тестирование на проникновение).
- Ревизия безопасности — верификация того, что установленные отраслевые или внутренние стандарты реализованы в компонентах системы или продукта. Обычно проводится посредством так называемого gap-анализа, анализа конфигураций/кода, либо анализа проектной/архитектурной документации. Эта активность не включает перечисленные выше методы (анализ уязвимостей, оценку безопасности, тесты на проникновение, аудит безопасности).
Инструменты
- Анализ безопасности контейнеров и инфраструктуры[3][4]
- SAST — статическое тестирование безопасности приложений
- DAST — динамическое тестирование безопасности приложений
- IAST — интерактивное тестирование безопасности приложений[5]
- DLP — предотвращение потерь данных
- IDS, IPS — системы обнаружения и предотвращения вторжений
- Сканирование открытого программного обеспечения (см. Безопасность открытого программного обеспечения)
- RASP — самозащита приложений во время исполнения
- SCA — Анализ состава программного обеспечения[6]
- WAF — межсетевой экран для веб-приложений