Волнует ли разработчиков безопасность кода? Для меня вопрос открыт. Эта статья — своего рода опрос: хочу собрать мнения как разработчиков, так и специалистов по безопасности. Поможете?
Расскажу, откуда у меня интерес к этой теме.
Я работаю над PVS-Studio. С одной стороны, это инструмент для поиска ошибок в коде, с другой — дефектов безопасности. То есть PVS-Studio сочетает в себе как черты "классического" статического анализатора, так и SAST-решения.
В последнее время меня интересует именно позиционирование PVS-Studio как SAST-решения. Хочется лучше понимать, чего команды ждут от подобных инструментов. С какими проблемами они сталкиваются при внедрении? Что для них важно, а что — нет? Как устроены процессы работы с выхлопом инструментов?
Чтобы найти ответы на эти вопросы, я решил посмотреть доклады с конференций по безопасности —на них чаще рассказывают про опыт внедрения SAST. После просмотра десятка докладов у меня сложилось впечатление, что... разработчикам вообще-то SAST и не особо интересен.
Поверьте, от разработчиков будет много лестных слов, когда они узнают, что им подключили SAST.
В докладах я усмотрел общую мысль: разработчики не рады внедрению SAST. Организовать процесс так, чтобы разработчики правили предупреждения — сложная задача.
Однако SAST всё же закрывает часть проблем с безопасностью кода. Поэтому команды, которые строят secure SDLC, внедряют его в процессы. При этом в разных компаниях используют разные подходы:
В первом случае разработчики хакают систему (например, подавляют предупреждения без разбора), во втором — не разбирают выхлоп анализатора.
Заставить людей культурно поменять своё мышление и ходить править свои баги самостоятельно — это прямо отдельная история.
Тут возникает такой вопрос: волнует ли разработчиков безопасность кода?
Казалось бы, SAST-решения должны помогать повышать её. Да, есть минусы в виде false positives, и всё же. Из-за чего тогда возникает конфликт? Проблема в инструментах, в процессах — или и в том, и в другом?
Здесь мне и нужна ваша помощь — прошу рассказать о вашем опыте и помочь найти ответы.
Есть ли конфликт интересов между командами разработки и безопасности? Как внедрён SAST? Что в инструменте важно, а что — нет? Кто работает с результатами анализа? Как вообще организован процесс?
Делитесь опытом и мыслями: как устроены процессы у вас, что нравится, что — нет, и как можно было бы сделать лучше.