Написать пост

Выпущен инструмент Synode для обнаружения инъекций кода в модулях Node.js

Аватар Макс Голосов

Создан инструмент Synode для определения защищенности модулей на Node.js от атак-инъекций. Утилита находит более 96 % уязвимостей за минуту.

Исследователи в области информационной безопасности обнаружили, что тысячи модулей Node.js уязвимы к нападениям с применением вредоносного кода. Для устранения данной бреши они выпустили инструмент Synode.

Авторы утилиты проанализировали 235 850 npm-модулей и обнаружили, что 3 % (7686 модулей) и 4 % (9111 модулей) используют наиболее уязвимые семейства интерфейсов exec и eval соответственно. 20 % всех устройств оказываются зависимыми от по меньшей мере одной API-инъекции.

Выпущен инструмент Synode для обнаружения инъекций кода в модулях Node.js 1

Механизм обнаружения брешей

Утилита использует статический анализ для обнаружения мест, потенциально уязвимых для атак путем внедрения кода, и анализ времени выполнения программы для их поиска и пресечения. Разработчики рекомендуют использовать Synode через процесс пост-инсталляции npm. Фаза статического анализа идентифицирует входы API-инъекций и обобщает информацию о значениях, которые могут быть переданы функции в дереве шаблонов:

Выпущен инструмент Synode для обнаружения инъекций кода в модулях Node.js 2

Затем деревья шаблонов сводятся к набору строк и вставок:

Выпущен инструмент Synode для обнаружения инъекций кода в модулях Node.js 3

Если в шаблонах нет неизвестных частей, тогда сайт статически безопасен. Иначе проверка продолжается в процессе выполнения программы.

Итоги

18 924 из всех 51 627 вызовов API-инъекций являются статически безопасными (36,66 %). Шаблоны для подавляющего большинства сайтов вызовов имеют не более одной уязвимости. Статический анализ заканчивается для 96,27 % из 15 604 модулей менее чем за минуту, со средним временем анализа для этих модулей 4,38 секунды.

Следите за новыми постами
Следите за новыми постами по любимым темам
1К открытий1К показов