Обновить

Комментарии 42

НЛО прилетело и опубликовало эту надпись здесь
Где заразится информационной безопасностью?
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

Это явно не к экспертам, а нацелены на script-kiddies, которые запускают всё подряд.

Увы мы все сейчас в таком дурацком положении. Библиотечки часто пользуют тонну сторонних библиотек и "быстренько посмотреть" не подсунут ли чего веселого - представляется мало возможным.

Хотя бы есть автоматический сканнер по известным уязвимостям в пакетах проекта (фронтенд). Жаль он не различает пакеты, которые идут на прод и пакеты, которые отвечают за разработку...

Меня всегда радовали заявления программистов на GO - на гитхабе для любого кейса найдется модуль а так же JSеры тащущие в проект пакеты для тривиальных операций - вроде odd и even.

В раст своя помоечка с библиотеками назревает.

Вообще инциденты за последние 2 года недвусмысленно намекают, что пора делать репозитории с валидацией библиотек.

НЛО прилетело и опубликовало эту надпись здесь

Я и говорю про ручную. Deno эту проблему со своей печочницей не решает - ее просто будут отключать. А библиотеки опять будут раскиданы хз где.

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

На любую валидацию найдётся свой отбитый меинтейнер node-ipc.

Разве что поднимать репо локально и самому проверять каждую библиотеку перед добавлением\обновлением.

Ну так я и говорю про ПОВЕРСИОННУЮ валидацию. Чтобы в случае если майнтейнеру какой либо библиотеки отбило мозги(или как вариант силой заставили) - это не просочилось в хранилище отвалидированных артифактов.

Так ведь и сейчас никто не мешает явно зафиксировать версию зависимости в проекте и обновлять её только после всех проверок, а не сидеть на :latest в ожидании сюрпризов.

В Go так вообще можно импортировать пакет по версии из конкретного коммита даже, а не по тэгу/релизу.

Другой вопрос, что, скорее всего, все эти «пакеты» по факту мало проверены.

НЛО прилетело и опубликовало эту надпись здесь

Я пару раз ловил себя на мысли, когда у меня мавен собирал приложение со спрингом, что у меня волосы дыбом на голове встают от количестве пакетов с кодом, которые он тянет со сторонней помойки.

Да да, сейчас придут адепты NPM и будут доказывать, что в 2021 это прям Ъ и только так и нужно, но...

И что в нпм и что в мавене одна и таже беда. Вернее в нас пользователях. Когда кучу внешних порой больших библиотек тащат для тривиальных операций.(строки массивы и тд.)

Знаешь, я осознал всю глубину и масштабность этой проблемы после новости с пакетом в NPM, где чел добавил код, печатающий что-то на тему СВО, в либу, которая используется не в одной тысяче проектов. Причем ЕМНИП там проекты были не уровня наколеночных поделок, а глобальные.

Я тогда ужаснулся, если честно: все эти разработки используют по сути непроверенный код из помойки, где любой дурак может запихать туда что угодно.

Но, судя по поведению людей вокруг и комментариям на форумах — «это норма», «щас так принято, облака-бла-бла» и так далее.

Я ее осознал в 2014 когда пришлось плотно поработать с нодой, и орать с кода многих npm пакетов. А еще с кода коллег которые для прохода по массиву, перебору полей объекта, работы со строками, проверки четности/нечетности пользовали не то что УЖЕ есть в ноде, а россыпь внешних библиотек. И такой же ад творился в опубликованных npm, когда уже тогда очень много пакетов тянули за собой спагетти из не всегда нужных пакетов ради пары тройки тривиальных функций.

У меня всегда было понимание, что универсальная библиотека для разных нужд должна быть более менее компактная и с минимумом зависимостей.

Тогда это правда было все не такое распухшее, и мы таки валидировали то, что добавляли в проект. Но понимание что там может лежать что угодно, видя КТО и КАК это пишет - было уже тогда.

Казалось бы что Мавен с фиксацией всего навсегда давно придуман и используется. Зачем делать что-то новое?

Популярная массово используемая библиотека + хотя бы пара месяцев с момента релиза дают достаточную для любого разумного использования гарантию что там сознательно треш какой-то не внесен. Для срочных фиксов безопасности хотя бы наискосок дифф просмотреть придется. Он обычно небольшой.

НЛО прилетело и опубликовало эту надпись здесь

Вероятность что такое кто-то найдёт и поднимет шум в популярном пакете за пару месяцев стремится к 100%. Вероятность rce допущенного по глупости выше.

НЛО прилетело и опубликовало эту надпись здесь

Вы сильно недооцениваете человеческое любопытство и количество глаз. На практике оно прям совсем невероятно. Вы же берете на себя риск бага в библиотеке? Вот и этот возьмете. Он точно меньше.

НЛО прилетело и опубликовало эту надпись здесь

надеются друг на друга

О, это классика :) «Вот я нашел косяк... Но чет лень, его и без меня пофиксят, пофиг!» Причем не только в программировании.

Экстраполируйте количество таких уязвимостей на количество массово используемого кода. В общем выходит довольно надежно. Я бы сказал что надежнее чем средний энтерпрайз код и средняя инфраструктура.

В мире нет ничего абсолютного. Есть управление рисками. Я не могу представить себе проект для которого использование только популярных Мавен библиотек с отставанием 2 месяца несло бы повышение риска появления уязвимостей в проекте. Для чего-то супер критичного отставание можно увеличивать до года. И ставить на них только отревьюенные обновления безопасности. Их довольно мало на таких сроках. Объем работы терпимый.

НЛО прилетело и опубликовало эту надпись здесь

Багов вы я думаю много знаете. В том числе долго необнаруживаемых. А сколько случаев сознательного внедрения делающего что-то не то кода в популярный опенсорс вы знаете? Таких чтобы этот код не был обнаружен хотя бы за месяц. Второй месяц оставим запасом. Я ни одного не знаю, но допускаю что я что-то упустил.

НЛО прилетело и опубликовало эту надпись здесь

Я чуть выше писал про вероятности и управление рисками.

Вы уже взяли на себя риск наличия критического бага в любой используемой вами библиотеке. Такие баги бывают и известны в природе. В том числе в старых проверенных библиотеках.

Вы так же в дополнение берете на себя риск сознательного вредительства. Случаи которого в дикой природе еще не разу не остались незаметными дольше чем предложенный мной карантинный период.

Почему вы второй риск считаете выше первого я так и не понял. Какие способы вы предлагаете для его минимизации я тоже не понял. Система оценки рисков без каких-то хотя бы относительно достоверных исходных данных и действий по уменьшению этих рисков исходя из этих данных не работает.

НЛО прилетело и опубликовало эту надпись здесь

Почему вы опять говорите про гарантии? Вы уже доказали весь свой код?

Почему вы говорите про какое-то везение? Есть обычное управление рисками. Никакого везения не существует. Почему вы отказываетесь использовать стандартную и работающую практику?

Почему вы опять рассматриваете гипотетическую и никогда не встречавшуюся ситуацию как реальную? Почему вероятность этой ситуации вы принимаете выше эпсилон?

Я не понимаю.

НЛО прилетело и опубликовало эту надпись здесь

Судя по описанию, BlueKeep до конца запустит только очень любознательный человек.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Другие новости