Jetinfo: Статический анализ кода: что могут инструментальные средства?

Jetinfo: Статический анализ кода: что могут инструментальные средства?
Попросили прокомментировать статью в Jetinfo . Кратко: по тексту - серьезных возражений не имею. Даже фраза про PT AI "На сегодняшний день набор применяемых правил для поиска уязвимостей достаточно беден" не далека от правды. Но есть нюанс (C)(R)(TM). Под катом.

name='more'> Основное "НО" заключается в том, что Positive Technologies Application Inspector не является статическим анализатором. И даже не совсем анализатором исходных кодов, он вполне может "пережевывать" и байткод Java.
В нем есть элементы SAST, но основное ядро (которое так и называется - AI, от Abstract Interpretation) работает на принципах интерактивного анализа (IAST), сочетающего реальное и символическое выполнение программы. Об этом пишет старик Гартнер включив Positive Technologies в Sample Vendors в Interactive Application Security Testing.

Поэтому класический вопрос "сколько у вас паттернов (шаблонов)" особого смысла не имеет и приводит к "ложным срабатываниям". Мало шаблонов, мало. Принцип анализа совсемнемного другой.
В модуле AST pattern-matching мы ищем только простенькие вещи, что-то типа ODBC connection string с жестко зашитым паролем или "плохие" криптографические функции. Все вещи, связанные с dataflow обрабатываются ядром AI. А у него "шаблоны" конечно в каком-то виде есть, но они не совсем шаблоны, да и не шаблоны вовсе :)
Поэтому шаблонов и мало - они плодят ложные срабатывания, и в принципе, не особо нужны.

Если вдруг хочется подробностей, ждем 24 сентября на Infosecurity Moscow , ну или можно почитать вот тут:

http://habrahabr.ru/company/pt/blog/224547/
http://habrahabr.ru/company/pt/blog/191002/

Более популярный вариант:  http://xakep.ru/positive-technologies-cto-interview/

PS. Ряд коллег спросил, достаточно ли для тестирования "15 тыс. CLOC". Недостаточно. Разве что на синтетических тестах по 20 строк на тест. Реальные приложения досаточно разлаписты, и я неоднократно видел как при попытке анализа обычного корпоративного портала на 500 000 LOC многие продукты просто падали. Возможно автор ошибся и было 15 000 [Kilo]LOC, что в принципе адекватно для конкурентного анализа.
Alt text

Большой брат следит за вами, но мы знаем, как остановить его

Подпишитесь на наш канал!