Сразу оговорюсь: я программистка, а не системщик. Предпочитаю абстракции. На уровне железок совсем ничего не знаю, на уровне чуть повыше - такое. Так что, возможно, статья во многом кривая. Что, кмк, на данный момент неплохо - я думаю, на примерно моём же уровне сейчас многие. И вопросы похожие.
Если вы в комментариях что-нибудь подкорректируете, я исправлю. Причём исправления в статье оформлять буду так: "в комментарии №ХХ от Дата Имярек пишет: (и тут цитата)". Возможно, где-то появятся комментарии, противоречащие друг другу - тогда дам ссылку на тред.
Где живут библиотеки
При разработке я юзаю пару фреймворков (конкретнее - Laravel и Vue) и несколько разных библиотек под разные нужды (что-то одно для парсинга сайтов, что-то для выдачи из базы в .doc и др.).
Что мне там завтра понадобится в эту сумму добавить я так-то не знаю. Я же не знаю, какие задачи у меня будут завтра.
Кроме того, временами вам хочется что-то учить, что-то новое. Чем это новое будет, не знает даже заказчик (начальник).
Как мы вообще добавляем библиотеки? Мы идём в гугл. Спрашиваем: гугл, дай мне, пожалуйста, что-то, что сделает, что мне надо. На моём языке. Перебираем варианты, что-то себе выбираем и скачиваем. Читаем доку.
Эти библиотеки, вроде, останутся на зарубежных доменах - большею частию. Правда же, кто приземлит в РФ, например, lodash? Вы же, наверняка, делаете npm install, не всегда понимая, каких масштабов дерево на деле грузится. Какой глубины ветвление обходит ваш pip, со скольких серверов. Ваши composer, maven и др.
Как поведут себя суверенный рупип, рупозер, рунепоем? Они что-нибудь найдут? Они найдут всё, но медленно? Расскажите, кто знает. Надо ли запасаться исходниками? Или их будут по паспорту выдавать под роспись по месту работы? И кстати да, что тогда будет с фрилансерами? Я, например, фрилансер.
Фрилансерка. Но сейчас, знаете ли, это уже не важно. Лет через пять при таком раскладе я буду, как там... Корень "фри" запретят - и по значению, и по ассоциациям. Будет же не "картошка фри", а "родимая шкварка".
В общем, скажите, что станет с исходниками?
Если доступы к библиотекам останутся
Хакеры наверняка станут фигачить новости в библиотеки. Станут экплойтить через библиотеки, как только что вставили на кучу сайтов в wordpress "stand with Ukraine".
Можно, допустим, видео фильтровать. А что делать с текстовыми? В каждой разумной библиотеке есть readme.txt, как минимум. Что фильтровать-то будут? Длину этих текстовых файлов?
Если доступы сохранятся, тут будут странности. Если от этих странностей нас захотят спасти, вырубят и библиотеки, мне кажется. Я компромиссных вариантов не вижу.
То есть, в итоге рухнет весь русский IT. Ибо тут как и в спорте, для появления чемпионов требуется повсеместность. Если условный Вася в условном Брянске может скачать, не глядя, любую шнягу, через два года будет, кого нанимать в Сбербанк. Или го хантить индусов.
Повторюсь, я слабо понимаю в железе. Может быть, чебурнетная карта для dns куда более хитрая, и все вопросы мои исходно поставлены некорректно. You welcome нафиг мой текст разнести, я только рада буду.
АПД добавлю из свеженькой хаброленты (что ещё по теме найду, сюда же добавлю):
пакетным менеджером npm прямо сейчас пользоваться опасно, хотя вопрос, вроде бы, решают
список малвари, шифровальщиков и прочего в open source проектах
Комментарии (32)
MaryRabinovich Автор
19.03.2022 12:13Посмотрела расклад оценок к статье,
в данный момент суммарно -4.Причины двух плюсов, как водится, неизвестны хабру.
А вот причины минусов налицо:
два минуса за "низкий технический уровень материала",
один за "в статье нет новой для меня информации",
один за "ничего не понял после прочтения" и
ещё два за "другое".Просто оставлю тут, выводов из таких оценок у меня нету.
katletmedown
19.03.2022 14:20еще один за "юзаю", "шнягу" посчитатйте ¯\_(ツ)_/¯
MaryRabinovich Автор
19.03.2022 18:41Вот кстати да. Надо команде хабра подать идею об опции "за издевательское отношение к языку". Страшно подумать, сколько статей с ней заминусуют:)
AngelNet
19.03.2022 15:37Ещё один за отмазки "дисклеймер" в начале статьи. Такое принято размещать в конце, а тут сразу желание читать отбивает на входе.
MaryRabinovich Автор
19.03.2022 18:39Мне бы казалось, что это прекрасно, что "отбивает" на входе. Это же бережёт ваши время и нервы. У вас сразу появляется выбор, продолжить читать или бросить.
Имхо, конечно.
JustDont
19.03.2022 12:46+9Кто-то открыл для себя дивный новый мир открытых пакетных менеджеров? В 2022 году?
1) Все люди с проработанной оценкой рисков и с mission-critical зависимостями на npm уже давно пропускали пакеты с npm как минимум через кеширующее зеркало. А теперь еще и начнут делать аудит всего нового, что попадает на это зеркало, регламентировать обновления пакетов, и так далее. С другими пакетными менеджерами — то же самое.
2) У кого нет оценки рисков — будут жить дальше as is. До первого факапа, вероятность которого по прежнему довольно мала, хотя и увеличилась.Кроме прикручивания очевидных способов контроля за пакетами (регламент обновлений, аудит кода) ничего более не изменится. Опенсорс всё так же абсолютно в другой весовой категории относительно любых более радикальных решений (написать всё самим и т.п.), и отказаться от него не выйдет.
MaryRabinovich Автор
19.03.2022 13:03-2Исходно-то я имела в виду другую засаду. Если нам сделают "суверенный интернет", сможем ли мы ходить за пакетами куда-то наружу. Можете что-нибудь прояснить в эту сторону? Какие у вас ожидания, запасаетесь ли исходниками на пятилетку вперёд?
JustDont
19.03.2022 13:11+6Если нам сделают "суверенный интернет"
… тогда детали работы в IT будут, пожалуй, одной из наименьших наших проблем.
Настоящий "суверенный интернет" повлечет за собой неизбежный откат практически всей экономики к состоянию Северной Кореи. В такой обстановке мы будем решать проблемы "как бы сбежать" и "где научиться фермерству", а не проблемы с установкой пакетов.А если ненастоящий — ну, сядете на дыру во внешний интернет, да и скачаете себе пакеты. Это вообще не более чем девопс.
MaryRabinovich Автор
19.03.2022 14:34-3Ну, для себя я скорее планирую в такой ситуации переход в режим максимальной экономии и программирования для интеллектуального самосохранения. Сбежать у меня получится вряд ли, так что какая-нибудь унылая (под)работка по минимуму за еду и внутренняя эмиграция. И в этой внутренней эмиграции мне будут очень нужны пакеты, да. Я серьёзно.
funca
19.03.2022 13:40Тут ещё вопрос с доступностью самих репозиториев, в случае когда санкции налагают обязательства на их владельцев.
npm, nuget и GitHub это микрософт. Без комментариев.
pipy - Python Software Foundation, но:
Any uploads of packages must comply with United States export controls under the Export Administration Regulations.
packagist для PHP не содержит ограничений в явном виде. В прочем пакеты лежат на GitHub, Gitlab и т.п. (см выше).
MaryRabinovich Автор
19.03.2022 14:29ну вот гитхаб (пока что) не закрываться решил, для РФ. Я на случай чего мои репы скачала. Но ведь смогла скачать. Т.е., сейчас они неоднозначно себя ведут.
Можете прокомментировать всё таки строчку про "это микрософт"? Они не будут код отдавать в ответ на запросы? Они его отдадут, но... но что?
Ну да, то есть они на входе будут проверять, с какого айпишника код запрашивают? В какой стране то есть? И не отдавать?
kksudo
19.03.2022 13:02Использование Open-source проектов - часто это риск и используя в продакшене ту или иную либу, стоит принимать эти риски.
Я бы предложил юзать приватные репы для известных либ.
Для получения новых - можно заюзать vpn и добавлять к себе в приватный git сервер.
Еще как вариант - юзать свой lib proxy, например для golang есть такой проект https://github.com/gomods/athens .Как вариант превентивного решения для поиска эскплойтов - заюзать security scanner, например snyk (так же актуален для сканирования docker image). Удобно использовать подобные решения на уровне CI/CD.
Что будет дальше ? Никто не знает, но риски стоит всегда оценивать.
P.S.: Апнул тему, чтобы не в минусе была статья. На хабре хотелось бы видеть больше тех. статей.
P.P.S.:
> срочно учить ангуляр ....
Имхо, Хорошие специалисты нужны везде и всегда. Вам никто не мешает работать через VPN на зарубежных заказчиков в текущем стеке.funca
19.03.2022 13:12Вам никто не мешает работать через VPN на зарубежных заказчиков в текущем стеке.
Некоторые сервисы уже прописали соответствующие ограничения в SLA. Технически вы можете, но на свой и заказчика страх и риск.
MaryRabinovich Автор
19.03.2022 14:37Тот же вопрос про зарубежных заказчиков - будет ли доступ к таким заказчикам из суверенного интернета? Т.е., он "суверенный" в том смысле, что в полном вакууме, или он только даёт окончательное решение по заблокированным сайтам, а так - выпускает-впускает?
MaryRabinovich Автор
19.03.2022 14:14Спасибо:)
А как вы оцениваете вероятность полной потери доступа к зарубежным пакетам при окончательном осуверенивании интернета? И будут ли эти пакеты ловиться привычными пакетными менеджерами?
Запасаетесь ли вы исходниками на пятилетку вперёд, если вы всё таки что-то используете?
amarao
19.03.2022 14:03+3Модель безопасности у npm какая?
В голове у наивного падавана:
"Если я набираю npm install peaceorwar, то это тщательно отобранная безопасная библиотека, под наблюдением ведущих экспертов в области безопасности и качества"
В реальности: школьник загрузил на npm что хочет и никто не знает, школьник это, или престарелый майор из Северной Кореи.
Вместо этого есть дистрибутивы. В которых есть web of trust. Можно посмотреть кто аплоадит пакет; кто этому человеку доверяет и насколько. Или можно довериться ftpmasters (в контексте Debian), которые, действительно, проверяют качество загружаемого кода.
Да, там МАЛО библиотек (по сравнению с завалами на npm/pip/cpan), зато они все мейнтейнятся ответственными людьми, и инцидентов malware'ного поведения у них не было.
Про это много раз говорили, но все аргументы разбивались о "но тут же старая версия... на pip версия на +0.1.2 новее, и мы жить не можем без свежайших фич в этой либе, а вот этой либы вообще нет, ваш дебиан старое унылое г-но, весь просветлённый мир давно всё ставит напрямую curl-bash'ем откуда-то там".
Видимо, аргументы перестанут разбиваться.
MaryRabinovich Автор
19.03.2022 14:24А будет ли веб оф траст доступен внутри суверенного интернета? Который с внутренней картой днс серверов?
amarao
19.03.2022 15:48Особенность web of trust (GPG/PGP) в том, что он ни от чего не зависит. Либо вы ключам доверяете, либо нет. Всё вычисляется локально, а в настоящих, благородных средах, доверие происходит через общение и даже персонализированные key signing parties.
SkylineXXX
19.03.2022 14:15+1Заметил странность.
В мою бытность "системщиками" называли именно программистов.
"Системный программист", не прикладной. Тот кто хорошо знает внутренности ОС-к.
Умеет написать драйвер, к примеру (Для разных OS).
Хотелось бы понять, что означает данный жаргонизм сегодня.MaryRabinovich Автор
19.03.2022 14:22За всех юзеров жаргонизма я не скажу, для меня лично системщик может проводки соединить. И понимает, что именно нам продаётся как "суверенный тырнет". Я видела / слышала про "внутренняя карта днс-серверов", но как это имплементируется конкретно, я не понимаю. То ли от моего запроса мы теперь чешем на эту карту, и если я запросила фейсбук, просто уже внутри запрос зарубаем, а остальное выпустим (ну захотел человек на ассос, пускай идёт, пусть на витрины посмотрит издалека, всё равно же не купит). То ли, напротив, всё, что нацелено на зарубежные днс зарубим.
И это только первый вопрос, самый базовый.
Дальше вопросов больше. Скажем, где что хранится реально территориально. "У такой-то компании есть сервера там, тут и здесь. А у такой-то есть только там и там - а тут нет вообще." Ну там, не знаю, все ссылки на cdn bootstrap в РФ превратятся в тыкву... или не превратятся. Насколько я понимаю, тут вопрос в том, есть ли у cdn bootstrap хранилка внутри РФ. Но я так подозреваю, что я понимаю не точно, или попросту мимо.
Я не уверена, что всё это знает средний системщик, "не заинтересованный в карьерном росте". Но от одержимых и разбирающихся в железе людей я ожидала бы тут бОльших знаний, чем от неразбирающихся (пусть тоже одержимых).
kaichou
19.03.2022 14:39Простите, вы вопрос задаёте, просто пофлудить - или на феминитивы пожаловаться?
SkylineXXX
19.03.2022 15:32+1Я, просто, пытаюсь понять современную терминологию.
Она меняется. Системщиками, кажется, стали называть продвинутых сисадминов и сетевых инженеров.
Против специалистов женского пола я абсолютно ни чего против не имею.Сам наблюдал, множество отличных женщин специалистов. Особенно в математике они достигают больших успехов.
Так, что, ваши подозрения напрасны.
Я всегда был и буду за гендерное равенство.
SkylineXXX
19.03.2022 16:03И еще был бы очень благодарен, если кто-то объяснит,
как оплатить droplet на DO, находясь в РФ.
На нем развернут VPN. Срок оплаты подходит к завершению.
0xd34df00d
19.03.2022 17:58+1Я всегда был и буду за гендерное равенство.
Как относитесь к гендерной дискриминации по части возможностей выезда и обязанностей защиты одной постсоветской страны? Там запретили выезд всем неинвалидам-мужчинам от 18 до 60, но не женщинам в этом возрасте.
Сам наблюдал, множество отличных женщин специалистов. Особенно в математике они достигают больших успехов.
Я не сомневаюсь, что у специалистов бывают отличные женщины. Правда, непонятно, причем тут математика.
Но это так, о важности дефисов.
unsignedchar
Что-то сломается. Что-то удастся починить. Что-то не удастся. Собственно, вопросы в статье риторические, ответы очевидны.
MaryRabinovich Автор
Мне они не очевидны. Буду рада, если поделитесь какой-то конкретикой, если она у вас есть. Что именно наверняка сломается. Что - с ненулевой вероятностью выживет. Что выживет более точно, что менее.
И да, скачиваете ли вы исходники в запас?
nin-jin
У нас почти полностью свои исходники, чего и вам советую. Выбирайте крупных вендоров, у которых всё своё, а не понатырено из нпм.
MaryRabinovich Автор
А например? Я сейчас ссылку добавила на статью о международной драме с пакетом node-ipc. Но как ещё разрабатывать под js? Верно ли я понимаю, что надо отказываться от Vue, потому что он делается мелкой группой, срочно учить ангуляр, потому что оно от гугла, а гугл большой и такую беду в зависимостях не пропустит?
nin-jin
Надо срочно учить $mol, в котором есть всё необходимое, и почти нет внешних зависимостей.
funca
Хорошая попытка, но нет))
dzhiharev
Не паникуйте. Закладки в коде бьют по тем, кто всегда пытается использовать самые последние версии библиотек, без тщательного тестирования. Они рано или поздно будут обнаружены и удалены. Чем популярнее библиотека — тем раньше. Никого не устроит наличие в коде закладки, даже если непосредственно его она не касается (например только на российских IP адресах активируется).
Зафиксируйте текущие версии используемых библиотек, отключите автообновление. Любое обновление версии тщательно тестируйте, можете поизучать исходники апдейтов. В принципе это полезно делать всегда, а не только в текущих реалиях. Если лень или не хватает ресурсов, хотя бы просто не гонитесь за последними версиями — дайте другим возможность потестировать и найти закладки в коде.
Скачивать библиотеки про запас не вижу смысла. Тут физическую санкционку провозят, что уж говорить о цифровой, тем более опенсорсной — всегда найдется доброжелатель с другой стороны забора, который склонирует нужный вам проект и архивчиком перешлет (на крайняк на флешке передаст вместе с санкционными креветками).
Короче, если ваш заказчик будет согласен на использование продуктов зарубежного происхождения, то получить их проблем не составит, если нет — то это совсем другого уровня проблема, будете учить $mol :)
Это все касается библиотек, с онлайн-сервисами сложнее — там вы не контролируете процесс обновления. Если что-то критичное есть — присматривайте отечественные аналоги или что-то, что можно развернуть локально.