С быстрым развитием информационных технологий разработчики ПО имеют больше возможностей для улучшения старых систем и/или разработки новых.
И тестирование безопасности имеет в этом решающее значение. Тестирование безопасности программного обеспечения предотвращает утечку конфиденциальных данных или взлом цифровых услуг со стороны киберпреступников.
Основные понятия тестирования безопасности
При проектировании и разработке любой системы тестирование безопасности основывается на четырех ключевых концепциях: конфиденциальность, целостность, доступность и отслеживаемость.
А) Конфиденциальность - доступ к информации разрешен только ограниченному числу пользователей.
В) Целостность - информация не может быть повреждена ни случайно, ни умышленно каким-либо пользователем или процессом.
С) Доступность - только назначенным пользователям предоставляется доступ к информации.
D) Отслеживаемость - система ведет журнал действий всех пользователей, предоставляет пользователям доступ к информации в соответствии с их правами и реагирует на действия пользователей с целью минимизации возможных потерь, в том числе посредством шифрования.
Цели тестирования безопасности
Основными целями различных типов тестирования безопасности являются серверное программное обеспечение и базы данных, каналы передачи данных и клиент-серверные приложения. Существует множество требований для повышения безопасности каждого целевого объекта.
Основные вопросы, которые должны охватывать службы тестирования безопасности, включают:
- настройка прав доступа для всех категорий пользователей
- разделение и фильтрация потоков данных
- кластеризация базы данных
- выдача сертификатов на использование защищенных каналов передачи данных
- разработка базы данных и ее точная настройка для оптимальной обработки запросов
- реализация шифрования при передаче данных по незащищенным каналам
- мониторинг и применение новых решений безопасности от известных типов атак (как на уровне аппаратного, так и программного обеспечения)
Подходящим примером динамического подхода к тестированию безопасности веб-сервисов является Open Web Application Security Project - OWASP.
И все же, создание непрерывного конвейера тестирования безопасности требует высоких навыков от инженеров QA компании по тестированию программного обеспечения.
Когда речь идет о безопасности данных, никогда не ищите дешевого поставщика!
Как и чем тестировать
Программное обеспечение, которое помогает обнаруживать и решать проблемы безопасности, обычно делится на несколько категорий:
- Сетевые сканеры. Это программное обеспечение помогает определять состояние сетевых элементов (портов и служб) путем анализа их сетевой активности. Пользователи могут создавать свои собственные сценарии в зависимости от архитектуры сети и типа данных, которые должны быть переданы. Например: Nmap, Wireshark и Snort.
- Brute Force: программное обеспечение, позволяющее определять безопасность механизмов авторизации различными интернет-сервисами, поддерживающими несколько протоколов, таких как Mail, базы данных, VNC и SSH. Например: THC Hydra.
- Прокси-серверы: программное обеспечение, которое действует как прокси-сервер и позволяет анализировать данные при взаимодействии двух клиент-серверных приложений. Например: Burp Suite.
- Аудит программного обеспечения для обнаружения "атаки посередине". Это воздействие означает, что злоумышленник перехватывает сообщения и вводит новые, в то время как жертвы не подозревают о подделке данных. Для обнаружения такого рода уязвимости можно использовать Ettercap.
- Программное обеспечение для обнаружения атак на базы данных, таких как инъекции SQL, удаление или блокировка баз данных. Например: sqlmap .
- Программное обеспечение для анализа кода, предназначенное для выявления и устранения ошибок, возникающих на этапе разработки. Эта функция часто доступна для IDE.
Причины начать тестирование
При принятии решения о тестировании безопасности основными моментами являются затраты и тщательность тестирования. Решение о комплексной безопасности основывается на следующем предположении: когда стоимость разработки системы безопасности существенно ниже, чем потенциальная опасность, тогда разработка системы безопасности является необходимой.
Обычная практика - когда результаты тестов безопасности показывают, что программное обеспечение содержит критические уязвимости. Когда эти уязвимости не могут быть устранены на этапе разработки, должна быть разработана сложная система безопасности, включающая юридические и организационные меры, встроенное программное обеспечение и технические решения.
0 комментариев
Добавить комментарий