Linux Foundation и Гарвардская лаборатория инновационной науки (LISH) составили список наиболее важных библиотек ПО с открытым исходным кодом, сообщает портал ZDNet.
Когда речь идет о важных Open Source-проектах, чаще всего упоминаются Linux, Apache, LibreOffice и т. д. Они действительно жизненно важны, но в их основе лежат критически важные библиотеки ПО, которые обеспечивают работу сотен тысяч других программ. Они гораздо менее известны. Именно поэтому LISH и Фонд безопасности Open Source при Linux Foundation (OpenSSF) недавно обнародовали всеобъемлющее исследование «Census II of Free and Open Source Software — Application Libraries» этих критически важных программ, «находящихся под капотом».
Это уже второе подобное исследование. Первое, «Vulnerabilities in the Core,’ a preliminary report and Census II of open-source software», датированное 2020 г., было посвящено критическим библиотекам и утилитам ОС нижнего уровня. В новом отчете собраны данные более полумиллиона наблюдений за библиотеками свободного и открытого ПО (FOSS), используемыми в производственных приложениях тысяч компаний.
Данные для этого отчета были получены в результате сканирования кодовых баз тысяч компаний с помощью анализа состава ПО (SCA). Эти данные были предоставлены Snyk, Synopsys Cybersecurity Research Center (CyRC) и FOSSA.
Целью исследования, помимо простого желания узнать, какие библиотеки, пакеты и компоненты приложений с открытым исходным кодом действительно являются самыми популярными, является помощь в обеспечении безопасности этих проектов. Пока вы не поймете, что это важно, вы не сможете понять, что нужно обезопасить в первую очередь.
Например, до сих пор относительно неизвестный пакет протоколирования log4j стал серьезной проблемой безопасности, когда был обнаружена уязвимость нулевого дня Log4Shell. Джен Истерли, директор CISA, назвал ее самой серьезной уязвимостью последнего десятилетия. Эта ошибка затронула десятки или даже сотни миллионов устройств и программ.
«Повсеместное применение OSS означает, что серьезные уязвимости — такие как Log4Shell — могут иметь разрушительное и широкомасштабное воздействие. Создание комплексной защиты от угроз цепочкам поставок ПО начинается с обеспечения его надежной видимости, — сказал Кевин Ванг, основатель и генеральный директор FOSSA. — Только осознав нашу зависимость от Open Source, мы cможем повысить прозрачность и доверие к цепочке поставок ПО».
По словам Майка Долана, старшего вице-президента Linux Foundation по проектам, понимание того, какие пакеты FOSS наиболее важны для общества, позволяет фонду проактивно поддерживать проекты, которые действительно заслуживают операционной поддержки и поддержки безопасности. «ПО с открытым исходным кодом — это основа, на которой протекает наша повседневная жизнь, от банковских учреждений до школ и рабочих мест», — сказал он.
Представленная в новом отчете перепись разбивает 500 наиболее используемых пакетов FOSS на восемь различных областей. Они включают различные срезы, в том числе версионность/агностичность версий, менеджер пакетов npm/non-npm, прямые/непрямые и косвенные вызовы пакетов. Например, в топ-10 версионно-агностических npm-пакетов JavaScript, которые вызываются напрямую, входят: 1) lodash, 2) react, 3) axios, 4) debug, 5) @babel/core, 6) express, 7) semver, 8) uuid, 9) react-dom, 10) jquery. За этими и другими ведущими библиотеками необходимо внимательно следить на предмет проблем с безопасностью.
Помимо простого перечисления, авторы исследования из Гарвардского университета сделали пять общих выводов:
- необходима стандартизированная схема именования компонентов ПО. В настоящее время имена не случайны, но и рифмы и причин в них не так много;
- нужно упростить версионирование пакетов. Можете ли вы с первого взгляда определить версию пакета? Наверное да, если вы работаете над этой программой, но если вы просто используете ее как кирпичик в своем ПО более высокого уровня, это может быть для вас загадкой;
- большая часть наиболее широко используемого FOSS разрабатывается лишь несколькими контрибуторами. Можно вспомнить карикатуру о гигантском стеке ПО, которое зависит от одного разработчика. Забавно, но это не шутка. Мы все еще зависим от кода, который зависит от единственного программиста;
- повышение безопасности индивидуальных аккаунтов разработчиков становится критически важным. Поскольку хакерские атаки на разработчиков становятся все более распространенными, их учетные записи надо защищать, как драгоценные камни разработки;
- необходимо расчистить унаследованное ПО в пространстве Open Source. Обычно мы ассоциируем такое ПО с тем парнем, которого мы все знаем и который все еще работает под Windows XP. Но старый, некачественный код продолжает жить и в репозиториях Open Source.