Pull to refresh

Comments 42

UFO landed and left these words here
Где заразится информационной безопасностью?
UFO landed and left these words here
UFO landed and left these words here

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

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

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

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

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

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

UFO landed and left these words here

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

UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here

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

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

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

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

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

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

UFO landed and left these words here

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

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

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

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

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

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

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

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

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

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

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

UFO landed and left these words here

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

UFO landed and left these words here

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

UFO landed and left these words here

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

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

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

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

UFO landed and left these words here

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

UFO landed and left these words here

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

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

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

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

UFO landed and left these words here

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

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

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

Я не понимаю.

UFO landed and left these words here

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

Sign up to leave a comment.

Other news