Pull to refresh

Comments 8

Удивляет, что в опросе нельзя выбрать больше одного варианта) Мы вот используем сразу 3 из списка + неупомянутый вроде как отечественный SVACE , который на удивление хорош (только документация отстой).

Будем знать, но эту опцию опроса уже не изменить, к сожалению. Таковы правила Хабра

Спасибо за статью.

Интересно, что кол-во инструментов в духе "собери статический анализатор сам" растёт. Как я понял, по сути всё сводится к написанию рулсета (в совокупности с правилами отслеживания данных, а-ля синки и сорцы для taint-анализа).

Что ещё интересно — насколько часто подобные решения применяются где-нибудь в энтерпрайзе на регулярной основе. Всё-таки SAST — это не только про рулсеты и анализ, но и про сопутствующие штуки, которые нужны для удобного регулярного использования.

Например:

  • плагины для IDE;

  • удобство интеграции в CI;

  • возможности разметки false positives;

  • baselinig;

  • ...

Даже если вернуться к рулсетам. Кажется, одно дело — писать их самим и самим же заниматься правками false positives и т. п., и другое — отдать всё это на откуп разработчикам анализатора.

Отсюда и вопрос — насколько удобно использовать подобные инструменты на регулярной основе в рамках процесса разработки.

Будет интересно почитать, если кто-нибудь поделится своим опытом. :)

Отличный комментарий.
Да, статья, можно сказать, написана с колокольни исследователей безопасности. Большинство инструментов в обзоре были созданы как раз с целью помогать ресечерам находить интересные/уязвимые места в исходном/декомпилированном коде. Эти инструменты едва ли будут полезны в процессе разработки, ибо это не главная цель их использования. Однако CodeQL и Semgrep имеют гораздо более широкий спектр применения и могут пригодиться всем сторонам.

Подробнее об интеграции Semgrep в CI/CD

Подробнее об интеграции CodeQL в CI/CD

Применяются очень широко. Насколько вижу (я DevOps фрилансер из Израиля) SonarCloud (+SonarQube) самый популярный. Он очень легко интегрируется с GitHub и т.п.
Используют SAST и по требованию проверяльщиков безопасности, и/или просто руководство хочет "правильный" код.

Кстати поэтому мне жаль, что SonarCloud не вошел в разбор. Насколько понимаю, многие его сканеры используются и в других продуктах - например в Codacy.

Насчет  "собери статический анализатор сам" - ИМХО, как и во многих случаях, "в принципе возможно". Но когда мы хотим  GUI, легкую интеграцию в CI и т.п., то лучше выбрать сервис, пусть даже и платный.

Неоспоримый плюс semgrep перед другими подобными инструментами - это поддержка большого количества языков. Не нашел другого варианта для написания правил для Lua кроме как semgrep.

Игрушечный проект расположился в github-репозитории "double-free-samples".

А что за странности с форматированием?

https://raw.githubusercontent.com/Nalen98/double-free-samples/main/funcs.cpp

Так и задумывалось? Зачем такие отступы?

Или в битве tabs vs spaces опять победили tabs?

Sign up to leave a comment.