Новий інструмент ODGen розкриває 180 Zero-Days у бібліотеках Node.js PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Новий інструмент ODGen відкриває 180 Zero-Days у бібліотеках Node.js

Дослідники з Університету Джона Гопкінса нещодавно виявили вражаючі 180 уразливостей нульового дня в тисячах бібліотек Node.js за допомогою нового інструменту аналізу коду, який вони розробили спеціально для цієї мети під назвою ODGen.

Сімдесят із цих недоліків отримали загальні ідентифікатори вразливостей і загроз (CVE). Вони включають недоліки впровадження команд, уразливості проходження шляху, проблеми виконання довільного коду та уразливості міжсайтового сценарію — деякі з них у широко використовуваних програмах.

У статті, опублікованій на симпозіумі безпеки Usenix на початку цього місяця, дослідники Джона Гопкінса — Сонг Лі, Мінцін Кан, Цзяньвей Хоу та Їньчжі Цао — описали ODGen як кращу альтернативу поточному аналізу коду та так званому графовому запиту. підходи до пошуку вразливостей Node.js.

Підходи, засновані на аналізі програми, виявилися корисними для виявлення окремих типів уразливостей, таких як недоліки впровадження коду в JavaScript. Але їх неможливо легко розширити, щоб виявити всі типи вразливостей, які можуть бути присутніми на платформі Node.js, кажуть дослідники. Подібним чином методи аналізу коду на основі графів, коли код спочатку представляється у вигляді графіка, а потім запитується щодо певних помилок кодування, добре працюють у таких середовищах, як C++ і PHP. Однак підходи, засновані на графах, не настільки ефективні для пошуку вразливостей JavaScript через широке використання динамічних функцій мовою програмування, відзначили вони.

«Новий» підхід до пошуку вразливостей JavaScript

Отже, дослідники натомість розробили те, що вони описали «новий» і кращий метод під назвою Object Dependence Graph (ODG) який можна використовувати для виявлення вразливостей Node.js. За їхніми словами, вони застосували ODGen для створення «ODG» для програм Node.js для виявлення вразливостей.

Цао, доцент кафедри інформатики в Університеті Джонса Гопкінса та співавтор звіту про дослідження, використовує пару аналогій, щоб описати аналіз коду на основі графів у цілому та запропонований ними граф об’єктивної залежності. «Якщо ми розглядаємо вразливість як особливий шаблон — скажімо, зелений вузол, з’єднаний із червоним вузлом, а потім чорним вузлом — інструмент аналізу коду на основі графів спочатку перетворює програми на граф із багатьма вузлами та ребрами», — каже Цао. . «Тоді інструмент шукає такі шаблони на графіку, щоб знайти вразливість».

Граф залежності об’єктів, запропонований дослідниками, удосконалює цей підхід, представляючи об’єкти JavaScript у вигляді вузлів і додаючи функції, включаючи залежності між об’єктами, які є специфічними для мови програмування, а потім запитує помилки. Цао описує, як працює цей метод, використовуючи зерна в жмені рису: якщо всі зерна виглядають однаково перед відварюванням, але набувають двох різних відтінків після відварювання — один представляє хороші зерна, а інший погані — тоді їх стає легше помітити та відсіяти. погані зерна. «Абстрактна інтерпретація схожа на процес кип’ятіння, який перетворює рис — тобто програми — на різнокольорові об’єкти», тому помилки легше помітити, каже Цао.

Різноманітність жуків

Щоб перевірити, чи працює їхній підхід, дослідники спочатку перевірили ODGen на вибірці з 330 раніше повідомлених уразливостей у пакетах Node.js у сховищі менеджера пакетів вузлів (npm). Тест показав, що сканер правильно визначив 302 із 330 уразливостей. Завдяки відносно високому рівню точності дослідники порівняли ODGen із приблизно 300,000 2,964 пакетів Java у npm. Сканер повідомив про 264 потенційні вразливості в пакетах. Дослідники перевірили 1,000 з них — усі вони мали в середньому понад 180 завантажень на тиждень — і змогли підтвердити 122 як законні вразливості. Сорок три з них були на рівні програми, 15 були в пакетах, імпортованих іншими програмами або кодом, а решта XNUMX були присутні в непрямих пакетах.

Декілька (80) підтверджених уразливостей, які виявив ODGen, являли собою потоки введення команд, які дозволяли зловмисникам виконувати довільний код на рівні операційної системи через уразливу програму. Тридцять були недоліками проходження шляху; 24 увімкнули підробку коду, а 19 включали специфічний тип атаки з ін’єкцією команд, який називається забрудненням прототипу.

Часова мітка:

Більше від Темне читання