DevOps 8. Важность непрерывного тестирования программного обеспечения

Автор: Дзен и искусство компьютерного программирования

1. Введение

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

Автоматизированное построение, непрерывная интеграция, развертывание, тестирование, мониторинг и т. д. — вот некоторые важные звенья в практике DevOps (разработка, эксплуатация и обслуживание). Среди них очень важной частью является автоматизированное тестирование, которое в основном используется для проверки наличия уязвимостей безопасности во вновь запускаемом или обновляемом программном обеспечении.

В этой статье в основном объясняется необходимость непрерывного тестирования со следующих аспектов:

  1. Обнаружено больше уязвимостей
  2. Быстрая реакция на раскрытие информации об уязвимостях
  3. Улучшение качества и надежности программного обеспечения

2. Объяснение основных понятий и терминов

2.1 Что такое уязвимость безопасности программного обеспечения?

Уязвимости безопасности программного обеспечения обычно относятся к классу программных проблем, которые могут привести к серьезным последствиям, таким как сбои системы, утечка данных и фальсификация данных при использовании злоумышленниками. Такие дыры в безопасности, как внедрение SQL, межсайтовый скриптинг (XSS) и CSRF (подделка межсайтовых запросов), влияют на нормальную работу системы и приносят огромные убытки злоумышленникам.

2.2 Введение в процесс тестирования

Уязвимости безопасности программного обеспечения можно обнаружить и предотвратить с помощью тестирования. Тестирование состоит из двух частей: статического анализа и динамического тестирования.

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

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

Статический анализ требует ручного написания тестовых случаев, ручной модификации исходного кода и запуска

Guess you like

Origin blog.csdn.net/universsky2015/article/details/132383789