Инструмент под названием ODGEN был разработан учеными из Университета Джона Хопкинса и Ренминского университета. Вдохновленные методами на основе графовых запросов, такими как Code Property Graph (CPG), исследователи разработали новую структуру графа под названием Object Dependence Graph (ODG), а также создали прототип инструмента ODGEN, чтобы использовать ODG для поиска ошибок.
ODG представляет JavaScript-объекты как узлы, а их взаимодействия с абстрактным синтаксическим деревом (АСД) как ребра. Кроме того, ODG учитывает зависимости данных между объектами, что помогает обнаруживать уязвимости по типу внедрения команд.
Для генерации ODG используется чувствительный к потоку и контексту статический анализ. Группа ученых отмечает, что ODG можно использовать для обнаружения различных типов уязвимостей в Node.js, причем даже без подключения к интернету.
Исследователи смогли настроить ODGEN на выявление шести типов уязвимостей. В ходе тестов им удалось обнаружить 43 0-day уязвимости в приложениях c 14 ложными срабатываниями инструмента и 137 0-day уязвимостей в пакетах с 84 ложными срабатываниями инструмента.
Около 70 уязвимостей, обнаруженных с помощью ODGEN, уже получили свой идентификатор CVE.
Источник: SecurityLab