Автоматизированное тестирование безопасности программного обеспечения для разработчиков (4 серии деталей)
Делайте в способах и инструментах тестирования безопасности программного обеспечения, которые разработчики могут настроить и автоматизировать, чтобы сделать свои приложения более безопасными 🔐
В Cossack Labs , Мы создаем программное обеспечение для безопасности данных и шифрования. Забота о смягчении векторов угроз для наших клиентов, мы не можем дать никаких шансов на слабости в нашем программном обеспечении. Вот почему на протяжении многих лет мы разработали арсенал подходов к поиску и предотвращению дефектов в начале процесса разработки программного обеспечения безопасности. В этой серии мы делимся тем, на что смотреть, как потратить усилия и «смену безопасности, и какие инструменты использовать.
Часть 1
Достоинства непрерывного тестирования безопасности
Начиная
Тестирование управления безопасности/Dast
💡 Достоинства непрерывного тестирования безопасности
Для начала тесты безопасности программного обеспечения, как и любые другие виды тестов, за исключением того, что большинство из них не проверяют предопределенное поведение. Вместо этого они проверяют отсутствие определенных поведений и слабостей, которые, как известно, приводят к некоторым рискам безопасности.
Многие известные проблемы безопасности возникают из -за незамеченного поведения программного обеспечения, которое не заметно нарушает основную функциональность программного обеспечения. Такие ошибки являются самыми хитрыми, потому что все, кажется, работает как задумано.
Отдельное тестирование гарантирует, что новые коммиты и сборки не вводят проблемы с безопасностью, и это Основная практика применяться к программному обеспечению с высокими требованиями к безопасности.
В рамках неоднократной работы тестов непрерывной интеграции (CI) тесты позволяют идентифицировать и исправлять такие проблемы, как ошибки памяти, входные ошибки, проблемы с укреплением производительности, небезопасное поведение и неопределенное поведение.
Тем не менее, до роста непрерывной интеграции, написание и реализация таких тестов не была идеей каждого большого распределения ресурсов даже в сообществе инженерии безопасности (хотя проверка безопасности ручной работы является примером еще худшего времени).
В наши дни, когда пугающие и угрозы, связанные с безопасностью, возникают неоднократно, написание тестов безопасности должно стать любимым хобби каждого, потому что каждая часть программного обеспечения способствует общей безопасности или отсутствию ее.
💡 Начиная
Хорошее место для начала с тестирования безопасности — это узнать Какие элементы безопасности на самом деле присутствуют в вашем продукте (Приложение, веб -сайт и т. Д.) , как Входная санете, профилактика переполнения буфера, защита от инъекции SQL, профилактика XSS, правоприменение авторизации, запуска событий безопасности Анкет
Следующим шагом является получение понимания того, как на эти элементы управления влияют поток выполнения и входные данные, независимо от того, можно ли это изменить, или возможно, что ожидаемое поведение неожиданно не удалось.
«Чтобы обеспечить безопасность программного продукта от большинства уязвимостей, процесс тестирования безопасности может включать Несколько берет Анкет Например:
- Функциональные тесты безопасности Убедитесь, что контроль безопасности вашей программной работы работает, как и ожидалось.
- Нефункциональные тесты Ищите известные слабости и неисправные конфигурации компонентов (то есть использование криптографии, которое, как известно, является слабым, анализ исходного кода для утечек памяти, а также неопределенное поведение и т. Д.).
- Целостная безопасность Сканирование на уязвимости по всей поверхности атаки, когда приложение или инфраструктура протестируются в целом наступательными тестерами безопасности.
- Ручное тестирование и обзор кода используются, когда существует необходимость в сложной работе, которая все еще не может быть вполне алгоритмирована и требует человеческого внимания.
⇪⇪⇪ Слайд из @vixentael поговорить о Поддержание криптографической библиотеки Themis и тестирование слоев.
💡esting Cestry Controls/Dast
Тестирование управления безопасности и компонентов безопасности сводится к тому, чтобы убедиться, что Управление безопасности ведут себя так, как и ожидалось в выбранных обстоятельствах.
Примеры включают в себя активные/пассивные атаки на вызовы API, завернутые в HTTPS, передачу шаблонов инъекции SQL в ввод пользователя, манипулирование параметрами для монтируемого прохождения пути и т. Д. Целью динамического тестирования безопасности применения (DAST) является эмуляция атак и выявление потенциальных уязвимостей, обработки системы в целом.
Вы можете пойти с Dast со следующими инструментами с открытым исходным кодом:
⚙ OWASP Zap и OWASP Zapper ( jenkins плагин). Они позволяют автоматизировать прокси -сервер атаки проверить некоторые возможные атаки, ⚙ BDD-Security Suite используется в качестве структуры тестирования для тестирования функциональной безопасности, тестирования безопасности инфраструктуры и тестирования безопасности приложений, ⚙ Gauntlt который представляет собой ряд рубиновых крючков для инструментов безопасности для интеграции в вашу инфраструктуру CI, ⚙ Mittn , Инструменты тестирования безопасности F-Secure для CI, изначально вдохновленные Gauntlt.
Хотя эти инструменты не являются заменой тщательного осмотра специалистом по безопасности, по крайней мере, они обеспечивают определенный уровень формализуемой проверки для контроля безопасности.
После проверки того, что управление безопасностью вашего приложения работает должным образом, пришло время расширить усилия по тестированию для проверки кода, нечетки, сканирования зависимостей и других причин ошибок безопасности.
☛ Следуйте серии, чтобы попасть в другие аспекты.
Автоматизированное тестирование безопасности программного обеспечения для разработчиков (4 серии деталей)
Оригинал: «https://dev.to/cossacklabs/automated-software-security-testing-for-devs-part-1-gcf»