Рубрик
🔎 Проверять код можно (и нужно!) по-разному, в том числе анализируя его при помощи разных алгоритмов и технологий. Один из таких методов называется SAST (static application security testing), он включает разные способы проверки, в том числе абстрактную интерпретацию, или символьное исполнение кода. 🤔 Что это такое? Интерпретация кода без его конкретного выполнения для сбора семантической информации о коде (потоков передачи данных, передач управления и т. д.). Суть метода в том, что все входные данные, такие как аргументы точек входа или обращения к файловой системе, считаются неизвестными и помечаются символьными значениями. Например, привычными x и y. При этом неизвестные могут принимать любые доступные значения, пока не наложены ограничительные условия. 🤓 Проблема и решение Вроде бы все просто, но практика показывает, что чем выше количество вариантов выражений с нашими условными x и y, тем больше ресурсов (времени и памяти системы) мы тратим на такой анализ. Причем вариативность растет по экспоненте, и в какой-то момент это становится проблемой. ‼ Решить ее можно, бесконечно добавляя новые слоты оперативной памяти (так себе вариант) или уменьшая покрытие кода (а вот это уже интереснее). Как это сделать? Узнаете, прочитав в Positive Research статью нашего коллеги Георгия Александрии, ведущего программиста группы разработки средств статического анализа: https://vk.cc/cBUUXo #PositiveResearch #PositiveЭксперты #PositiveTechnologies
1 фото
Проверять код можно (и нужно!) по-разному, в том числе анализируя его при помощи разных алгоритмов и технологий.
Рубрики
Информационные технологии и Телеком