Как стать автором
Обновить

Комментарии 15

Насколько я понимаю данный анализ способен найти только структурные уязвимости путём матчинга вашего кода на основе предопределенных паттернов?
И если это так, то данный инструмент будет выдавать большое количество False positive уязвимостей.
payload = {
"username": "username",
"password": "password",
"sid": "f4cd64c990eb89e7c38b6975762808dc",
"redirect":"index.php",
"mode": "login",
"login": "Вход"
}

Съел и не поморщился. А по идее, он на секреты должен агрессивно срабатывать.

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

Для C/C++ пока он бесполезен чуть более, чем полностью. А была надежда что хотя бы до среднего статического анализатора подтянут к запуску.

Та не было надежды. Это ж надо было или покупать какой-то толковый стат.анализатор или вкладываться в адаптацию бесплатного. И кто это будет финансировать для бесплатных юзеров? Я ещё поверю в это как в фишку для платных аккаунтов, но там кто хотел — уже всё себе и так купил и настроил.

У них самая большая база кода (github) и самая большая база данных об ошибках (issues / pull requests). Дело в технологии, а не в цене или рынке.

Дело всегда в цене и рынке.
У них нет по сути базы об ошибках.
Пул реквесты? А о чем они? Как их разбирать автоматически?
Если PR упоминает issue, это хороший признак. Плюс вполне можно классифицировать это фича или маленький багфикс. Особенно когда прицепом идёт regression test.

Вся информация у них есть, но вопрос в том научились ли они с ней работать. Если бы это было так просто, то давно бы кто-то сделал. Вот, похоже, они пока тоже не научились. Я уверен что со временем натренируют свою модель так, что будет конкуренция другим тулам.

Смотреть на это надо так — может ли человек за безлимитное время смотря на текущий снапшот github'а научиться искать баги? Я думаю может. Значит вопрос в том как научить это делать машину вполне себе вопрос времени.
Что для одного проекта баг, для другого фича :) Простейшую классификацию сделать можно, но не думаю что с текущим уровнем развития технологий возможно сделать адекватного конкурента SAST с помощью ML
Студент на коленке не напишет, но речь-то про серьёзных пацанов. AI/ML давно такое делает, что раньше казалось вообще научной фантастикой.
НЛО прилетело и опубликовало эту надпись здесь
Если честно, я в небольшом недоумении. Вроде бы хорошее начинание, но что-то не так. Казалось бы, поиск по базе паттернов известных уязвимостей должен давать почти стопроцентное попадание. Это же как антивирус. Известен фрагмент кода, вызывающий уязвимость. И надо его просто найти. Да, как и антивирус, это будет давать иногда ложные срабатывания. Но не понятно, почему их уже так много. Видимо, фрагменты для поиска слишком малы и под них попадает много нормального кода. В общем как-то не туда пошло… Это ведь только начало. И чем больше будет пополнять база, тем больше будет ложных срабатываний…

Ну и да, не забывайте помимо поиска известных ляпов, проводить классический статический анализ для поиска дефектов безопасности (SAST). Наш анализатор PVS-Studio уже умеет для этого работать в режиме классификации предупреждений согласно CWE, CERT и скоро добавим OWASP.

Потому что помимо паттернов нужен дата флоу анализ по крайней мере.
Кроме того с паттернами не всегда всё однозначно.
Вот например в Го все типы имеют дефолтное значение.
В коде разработчик создаёт структуру http.Cookie
httpCookie := &http.Cookie{}
в этот момент все поля устанавливаются в дефолтные значения.
Далее этот разработчик устанавливает отдельно уже поля, в частности поле HttpOnly:
httpCookie.HttpOnly = true
Это важно потому что усложняет XSS атаку с воровством session id. CWE-1004

Но как относиться анализатору к дефолтному значению? Действительно ли там есть уязвимость? Нет потому что дальше поле устанавливается в правильное значение. Фолс позитив? Ну не совсем.

Наш анализатор рекламировать не буду :)
Зарегистрируйтесь на Хабре , чтобы оставить комментарий