Что такое тестирование безопасности?qa-21

Тестирование безопасности (Security Testing) — это тип тестирования, направленный на выявление уязвимостей в системе, которые могут привести к несанкционированному доступу, утечке данных или нарушению работы приложения. Главная цель — обеспечить конфиденциальность, целостность и доступность (CIA-триада) информации.

Основные аспекты тестирования безопасности:

  1. Конфиденциальность — защита данных от несанкционированного доступа.
  2. Целостность — предотвращение несанкционированных изменений данных.
  3. Доступность — обеспечение бесперебойной работы системы для легальных пользователей.

Ключевые методы тестирования:

1. Статический анализ

Проверка исходного кода на уязвимости без запуска приложения.

# Пример уязвимости: SQL-инъекция
query = "SELECT * FROM users WHERE username = '" + user_input + "'"
# Решение: использовать параметризованные запросы

2. Динамический анализ

Тестирование работающего приложения (например, через OWASP ZAP или Burp Suite).
Проверяет:

  • Межсайтовый скриптинг (XSS)
  • Инъекции (SQL, OS-команды)
  • Небезопасные настройки CORS

3. Пентест

Имитация атак злоумышленника. Этапы:

  1. Разведка
  2. Эксплуатация уязвимостей
  3. Пост-эксплуатационный анализ

OWASP Top-10 :

  1. Инъекции
  2. Небезопасная аутентификация
  3. Чувствительные данные в логах
    ...и другие критичные риски.

Пример теста на XSS:

<script>alert('XSS')</script>

Ожидаемый результат: система должна экранировать или блокировать такой ввод.

Инструменты:

Категория Инструменты
Статический анализ SonarQube, Checkmarx
Динамический анализ Burp Suite, OWASP ZAP
Сканирование сетей Nmap, Wireshark

Когда применяется?

  • На этапе разработки (DevSecOps).
  • Перед релизом критичных систем (банки, мед.учреждения).
  • После значительных изменений архитектуры.

Преимущества:

  • Снижает риски финансовых потерь и репутационного ущерба.
  • Соответствие стандартам (GDPR, PCI DSS).

Недостатки:

  • Требует узкоспециализированных знаний.
  • Ложные срабатывания (false positives).

Резюмируем:

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