Всем привет!
Статический анализ – один из самых первых видов анализа ПО, который только появился.
«Разобрать» исходный код, сформировать промежуточное представление, определить потоки данных и применить набор правил для поиска опасных конструкций.
На практике, конечно, всё намного сложнее, но подход достаточно понятный и оправданный. Нюанс заключается в большом количестве ложных срабатываний.
И картина (вроде бы) меняется с появлением LLM: вместо разбора ложных сработок можно сосредоточиться на том, как исправить то, что актуально.
Но так ли всё радужно на самом деле? В небольшой статье Автор представил своё мнение на этот счёт.
Он структурировал мысли по следующим разделам:
🍭 Good. Разметка. Да, тут LLM показывают очень хорошие результаты. Ведь, если упростить, то речь про понимание кода и ответы на вопросы
🍭 Bad. Галлюцинации, (не) всегда идемпотентные результаты, относительные возможности по поиску ИБ-дефектов в исходном коде
🍭
И, по мнению Автора, получается, что стандартные детерминированные подходы увеличивают Recall и могут «поймать всё на свете», а LLM – Precision (понимают, что из этого на самом деле применимо)
А что вы думаете по этому поводу и согласны ли вы с этим списком, что бы вы в него добавили?