Типичные подходы к уязвимостям: где реально помогает, а где просто время тратим
Ну что, народ, по уязвимостям и их устранению часто встречаются три популярных метода — код-ревью, автоматические сканеры и пентесты. Каждый из них по-своему хорош, но далеко не всегда идеален.
Код-ревью — отлично, если в команде нормальные разработчики, которые шарят в безопасности. Можно заметить банальные ошибки, но зачастую именно ревью не ловит хитрые цепочки уязвимостей, особенно бизнес-логики.
Автоматические сканеры — быстро и удобно, но у них много ложных срабатываний и наоборот, они иногда пропускают уникальные баги, которые нужны именно под проект. При этом многие слепо верят в их отчеты и не углубляются.
Пентесты — классная штука, если находишь толкового специалиста, который понимает проект и его специфику. Но дорого и не всегда есть возможность делать их регулярно. С другой стороны, хорошие пентесты находят реальные дырки, а не просто слова из базы известных багов.
Из моего опыта, безопаснее всего сочетать — сначала автоматизацию, чтобы не упустить очевидное, потом код-ревью с разбором спорных мест и в конце уже ручной пентест или пострешение найденных багов. Иногда вижу, что компании делают только одно из трех, и именно там и появляются проблемы.
Главное сейчас — не просто искать баги, а думать, как они могут реально использоваться. Кто что ещё добавляет в этот микс? Какие ещё методы живут у вас в проектах?