Понад 75% вразливостей ховаються у непрямих залежностях

2 хв. читання

У проєктах з відкритим кодом більшість вразливостей пов'язано з непрямими залежностями — а не з компонентами, завантаженими безпосередньо в проєкт.

До такого висновку дійшли дослідники Snyk, які проаналізували стан безпеки у галузі Open Source у 2020 році. Вони розглядали проблеми безпеки в екосистемах JavaScript (npm), Ruby (RubyGems), Java (MavenCentral), PHP (Packagist) і Python (PyPI). Виявилось, що у непрямих залежностях вразливостей втричі більше, ніж у прямих.

snyk-indirect

86% помилок безпеки у JavaScript, 81% — у Ruby і 74% помилок у Java стосувалися бібліотек, від яких залежали основні компоненти проєкту. Водночас у PHP і Python більшість проблем були у прямих залежностях (тобто в основних компонентах). Імовірно, це пов'язано з тим, що для Java і Node.js взагалі властиво формувати залежності — більше, ніж для інших екосистем.

Один із наших улюблених прикладів — це Java-застосунок на 80 рядків коду, який має 7 залежностей. Та пройдіться усім деревом — і побачите 59 підзалежностей. Раптово 80 рядків коду перетворюються на 740 000.

Також дослідники виявили, що більшість нових вразливостей, знайдених у 2019 році, були помилками міжсайтового скриптингу (cross-site scripting, XSS). Однак вони не вплинули на значну кількість реальних проєктів.

Натомість кількадесят помилок прототипного забруднення (prototype pollution) мали найбільший вплив і зачепили 115 000 проєктів з відкритим кодом (та, ймовірно, не лише їх). Найбільш помітними були помилки у jQuery і LoDash, адже ці платформи досить популярні серед JS-розробників.

Другий найпоширеніший вид вразливостей — зловмисні пакети. До них належать і спеціально створені шкідливі проєкти з відкритим кодом, і бібліотеки, які зламали та додали в них шкідливий код.

snyk-vuln-impact-type

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 6.2K
Приєднався: 7 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація