The OpenNET Project / Index page

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

В репозитории PyPI выявлено около 5000 оставленных в коде секретов и 8 вредоносных обфускаторов

24.11.2023 18:08

Исследователи GitGuardian опубликовали результаты анализа конфиденциальных данных, забытых разработчиками в коде, размещённом в репозитории Python-пакетов PyPI (Python Package Index). После изучения более 9.5 млн файлов и 5 млн релизов пакетов, связанных с 450 тысячами проектов, было выявлено 56866 фактов утечки конфиденциальных данных. Если учитывать только уникальные данные, без дублирования в разных релизах, число выявленных утечек составило 3938, а число проектов, в которых присутствует хотя бы одна утечка - 2922.

Всего выделено более 150 типов утечек конфиденциальной информации, среди которых обычные пароли, криптографические ключи, токены доступа к облачным сервисам, системам непрерывной интеграции и API. Как минимум 768 учётных данных оставались действующими на момент проведения исследования. В качестве примера популярных утечек, сохраняющих актуальность, упоминаются ключи доступа к Azure Active Directory, учётные данные к SSH, MongoDB, MySQL и PostgreSQL, ключи к GitHub OAuth App, Dropbox и Auth0, параметры входа в Coinbase и Twilio.

Из набирающих популярность типов утечек упоминаются токены для доступа к ботам в Telegram, число которых удвоилось в начале 2021 года и затем ещё раз удвоилось весной 2023 года. Постоянный рост утечек также фиксируется с 2020 года для ключей доступа к Google API, а с 2022 года - учётных данных к СУБД. Из пакетов, лидирующих по числу утечек, упоминаются пакеты chatllm и safire, в которых были забыты 209 ключей к OpenAI и 320 ключей к Google Cloud.

Среди типов файлов, в которых выявлено наибольшее число утечек, помимо файлов с расширением ".py", отмечаются файлы с расширением .json (610 утечек), .md (270), PKG-INFO (240), METADATA (210), .txt (170), а также файлы README (209) и файлы из каталогов с именем test (675). Много утечек также связано с недосмотром и ошибками с настройкой исключения файлов при формировании пакетов. Например, файлы с локальными файлами конфигурации (.cookiecutterrc, .env, .pypirc и т.п.) могут исключаться из Git-репозитория через файл ".gitignore", который не учитывается при создании пакета. В частности, в репозитории было найдено 43 файла .pypirc, содержащих учётные данные для доступа к PyPI. В 15 случаях утечек разработчики не планировали публично размещать пакеты, изначально созданные для внутреннего использования, но опубликовали их в PyPI по ошибке.

Дополнительно можно упомянуть ещё два события, связанных с PyPI:

  • В репозитории PyPI выявлены 8 вредоносных пакетов, преподносимых как утилиты для обфускации, т.е. приведения кода к нечитаемому виду, усложняющему восстановление алгоритма работы. Выявленные пакеты содержали в названиях строку "pyobf" (Pyobftoexe, Pyobfusfile, Pyobfexecute, Pyobfpremium, Pyobflight, Pyobfadvance, Pyobfuse и pyobfgood) и были загружены более 2000 раз.

    Интегрированный в пакеты вредоносный код был специфичен для платформы Windows и позволял подключаться к внешнему управляющему серверу, запускать произвольные команды на компьютере разработчика, находить и отправлять на внешний сервер конфиденциальную информацию, такую как ключи доступа, а также передавать произвольные файлы с системы. Кроме того, вредоносный код мог выполнять функции кейлоггера, перехватывать вводимые в Chrome пароли, создавать скриншоты, записывать звук и даже управлять web-камерой.

  • Опубликованы результаты независимого аудита кодовой базы инструментария, применяемого для организации работы репозитория pypi.org, и фреймворка "cabotage", задействованного в инфраструктуре для оркестровки контейнеров. Аудит проведён при поддержке некоммерческой организации OTF (Open Technology Fund). В ходе аудита не выявлено проблем с высоким уровнем опасности, а исходные тексты признаны отвечающими основным требованиям к безопасному написанию кода. При этом отмечен недостаточный охват тестами кодовой базы cabotage и выявлено 29 проблем, из которых восьми присвоен умеренный уровень опасности, 6 - низкий, а 14 помечены как информирующие замечания.

    Наиболее заметные проблемы:

    • Недостаточная проверка цифровых подписей, используемых для интеграции PyPI с AWS SNS, позволяла отправлять уведомления на email отдельных пользователей.
    • Утечка информации в обработчике загрузок, позволяющая определить существование учётной записи без генерации событий о попытках входа.
    • Применение ненадёжных криптографических хэшей, не исключающих атаки по отравлению кэша.
    • При наличии прав запуска процессов сборки через cabotage, атакующий потенциально мог добиться подстановки своих команд.
    • При наличии прав развёртывания (deployment) в cabotage, атакующий потенциально мог развернуть легитимно выглядящий образ.


  1. Главная ссылка к новости (https://blog.gitguardian.com/u...)
  2. OpenNews: 46% Python-пакетов в репозитории PyPI содержат потенциально небезопасный код
  3. OpenNews: В публичных логах Travis CI выявлено около 73 тысяч токенов и паролей открытых проектов
  4. OpenNews: Анализ утечек конфиденциальных данных через репозитории на GitHub
  5. OpenNews: Новый поиск на GitHub привёл к выявлению забытых в репозиториях конфиденциальных данных
  6. OpenNews: GitHub реализовал проверку утечки конфиденциальных данных в репозиториях
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/60169-pypi
Ключевые слова: pypi, malware
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (84) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 18:18, 24/11/2023 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –1 +/
     

  • 1.2, Аноним (2), 18:18, 24/11/2023 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.8, Растишка (?), 18:25, 24/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Никогда такого небыло!
    Ну как говорится в лучших традициях PyPI и Cargo :)
     
     
  • 2.19, freecoder (ok), 19:37, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А что было в Cargo?
     
     
  • 3.21, Аноним (21), 19:42, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    он перепутал с npm
     
     
  • 4.23, YetAnotherOnanym (ok), 20:05, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Любая подобная репа будет помойкой, можно не тратить усилия и не устраивать тут перекличку.
     
  • 4.24, pda (ok), 20:08, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Но и cargo потенциально не безопасен. Люди ждут, что пакеты пишут профессионалы, что на загруженный код можно положиться. В реальности их пишут кто попало...
     
     
  • 5.25, Анонин (?), 20:44, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Но и любой репозиторий потенциально небезопасен.
    Если ты добавишь в зависимость/выкачаешь либу не с офф. аккаунта, а напр. с мутного форка - то у тебя есть все шансы получить троян.
    Напр. https://www.opennet.ru/opennews/art.shtml?num=57596

    А если ты внимательный, то что мешает быть таким же при выборе зависимостей для питона/раста/с++?

     
     
  • 6.80, Neon (??), 02:26, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Троян вполне можно получить и с офф.аккаунта
     
     
  • 7.105, Аноним (105), 21:33, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Троян можно написать самому
     
  • 5.59, Аноним (59), 13:58, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • –4 +/
    "Люди ждут, что пакеты пишут профессионалы, что на загруженный код можно положиться." - ну это проблема хэлловорлдщиков и любителей спагетти. Профессионалы прежде чем использовать чужой код тестят его. Либо делают полный аудит.
     
     
  • 6.65, нах. (?), 15:51, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +6 +/
    так код этих... опускаторов - работал. Тесты пройдены, прафисианал в деле.

    > Либо делают полный аудит.

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

    И где же водятся такие профиси@налы? В твоем маня-мирке?

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

     
     
  • 7.97, Бывалый смузихлёб (?), 17:21, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    да и не только тесты. Говорят, тайпскрипт очень хорошо воспринимает сторонние пакеты...
     
  • 6.81, Neon (??), 02:28, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Порой проще свой код написать, чем ковырять и делать полный аудит чужого. Да и работодатель не оценит ковыряние в чужом коде.
     
  • 6.98, Бывалый смузихлёб (?), 17:26, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну потестил - заработало, нужная фича появилась. Что ещё ?
    Для большого и относительно-сложного проекта( даже приложение что отлично работает на яблоке, андройде, винде, яблоке-настольном и линухе ) - невозможно перетрясти каждый пакет или для каждого запилить свой аналог
    Вообще-то, возможно запилить, но редко в любой конторе сидят мастера по работе с каждой нативщиной, смежно разбирающиеся в кроссплатформенных делах чтобы собственноручно запилить каждую версию конкретного модуля
    А, там же ещё работа с железом/графикой... ну тоже бывает. Но не так часто бывают такие посоны, как хотелось бы. Особенно за умеренную зп. Очень умеренную. Щоб у конторы бюджеты не треснули за первые 2 недели
     
  • 6.101, _kp (ok), 11:40, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Мелочёвку проще написать самому, что бы точно работало как ожидаешь А что крупн... большой текст свёрнут, показать
     

  • 1.12, Аноним (12), 18:38, 24/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А в SD он используется? Этот ПаПай
     
     
  • 2.34, Аноним (34), 02:29, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    ServiceDesk?
     
     
  • 3.62, Аноним (62), 14:52, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Стандартное отклонение — от англ. standard deviation.
     
     
  • 4.64, Аноним (34), 15:43, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Обычно это пишут в нижнем регистре.
     
  • 3.78, Аноним (78), 23:34, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Stable Diffusion
     

  • 1.13, Аноним (13), 19:01, 24/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    пакетная база большая... из них больше половины явно мусорное. кем это фильтруется - не понятно
     
     
  • 2.20, анон (?), 19:41, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    pypi и npmjs сборники мусора который нельзя удалять. там полно (никому не) нужных пакетов
     
     
  • 3.42, 11111001010 (?), 08:40, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Хорошо, что в Golang такого нет!
     
  • 3.46, Аноним (46), 09:44, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > npmjs сборники мусора который нельзя удалять

    Помещаешь пакет как уязвимый, и когда останется меньше 100 пользователей - удаляешь.

     
     
  • 4.79, Tron is Whistling (?), 23:53, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > когда останется меньше 100

    Никогда. Как висело зависимостью в 1000 не менее брошенных пакетов, так и будет висеть.


     
     
  • 5.83, Аноним (46), 06:10, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, да, мусорные пакеты, которые никто не поддерживает и вряд ли кто-то использует так и будут в зависимостях. Но тебе-то какое дело? Ими никто не пользуется.
     
     
  • 6.90, Tron is Whistling (?), 11:38, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Кто сказал, что в хламореповнике ими никто не пользуется?
    Там ещё 100500 чуть менее брошенных зависимостей, которым лень обновлять хлам.
    В итоге все тянут этот залежалый хлам с дырами и в ус не дуют.
    В этом и проблема автоматизированных хламовников.
     

  • 1.14, kl0p (?), 19:05, 24/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Если посмотреть на код, который загружают скрипты, то станет понятно, что это для Windows систем и создания ботнетов, можете узбагоится красноглазики.
     
     
  • 2.16, Аноним (13), 19:20, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    генерируется мусор а виндузятникам пофигу обычно что там крутится
     
  • 2.45, нах. (?), 09:42, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    ну не нужен пока никому неуловимый джо. Майнинг снова вышел из моды а больше ни для чего подкроватные серверы вообще не годны.

    Падаждтити, придумают и для них какую-нибудь вредную деятельность, вон токенов для AI понатырили, пусть он и придумает. Тогда и на крacноглазой улице наступит щастье.

     

  • 1.15, Анонин (?), 19:14, 24/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Т.е. на 5 млн пакетов нашли всего восемь вредноносных?
    И... из-за чего шум тогда?
     
     
  • 2.18, Аноним (18), 19:32, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Чукча, очевидно, не читатель
     
  • 2.60, Аноним (60), 14:35, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это перекликается со старым анекдотом:

    У одного мужика все лето крали арбузы,
    ему все это надоело и он поставил табличку:
    "Один арбуз отравлен!"
    На другой день приходит, смотрит все арбузы целые,
    а рядом стоит табличка :"Теперь их два!"

    Тебе приятно играть в лотерею, где выигрыш - это твой проигрыш? Ты любишь играть в русскую рулетку, пусть даже с такой маленькой вероятностью?

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

     

  • 1.17, Аноним (18), 19:31, 24/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Если учитывать только уникальные данные, без дублирования в разных релизах, число выявленных утечек составило 3938, а число проектов, в которых присутствует хотя бы одна утечка - 2922.

    Причина потерять веру в нечто, похожее на IT. А, Python?.. Тормозящая туфта. Поделом

    P.S. Отдельная благодарность автору статьи. Стиль почти безупречен!

     
     
  • 2.22, пох. (?), 19:47, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +7 +/
    ну зачем ты так вот сразу-то?

    Интегрированный в пакеты вредоносный код был специфичен для платформы Windows и позволял подключаться к внешнему управляющему серверу, запускать произвольные команды на компьютере разработчика, находить и отправлять на внешний сервер конфиденциальную информацию, такую как ключи доступа, а также передавать произвольные файлы с системы. Кроме того, вредоносный код мог выполнять функции кейлоггера, перехватывать вводимые в Chrome пароли, создавать скриншоты, записывать звук и даже управлять web-камерой.

    на питоне же ж! (скорее всего, конечно, нихрена, и либу притащили бинарную, но обертка-то точно ж на питоне)

    Тут тебе и удаленное управление, и security audit, и даже вебкам стриминг - и все в одном пакете!
    Попробовал бы вот ты так на своем хваленом си!


     
     
  • 3.53, Аноним (53), 11:12, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Понятно, что Python убог, но списывать на «либы» всё — такое себе. Новость не о том, не,
     
  • 3.82, Neon (??), 02:29, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ничего особо не мешает сделать похожее и под линукс
     
     
  • 4.95, нах. (?), 11:50, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    трудозатраты мешают. Там выше уже писалось же - майнинг снова вышел из моды, на подкроватных серверах местных специалистов ничего уже не намайнишь, а больше толку от них нет.

    Поэтому неуловимый джо никому снова и не сдался, а не потому что что-то мешало.

     
  • 2.28, Аноним (-), 21:06, 24/11/2023 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.27, Tron is Whistling (?), 20:58, 24/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хламокодинг всегда был и будет хламокодингом, пора уже привыкнуть.
     
     
  • 2.30, нах. (?), 22:46, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Бечь-то куды, куды бечь скажите?!

    Рейс на Марс видимо отменяется - там опять будет управление на ведроиде, пусть этот X сам на таком летит.

    Куды деваться-то?!

     
     
  • 3.31, Tron is Whistling (?), 22:48, 24/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Куды бечь - скрыто в никнейме. Не моём. Именно туда, подальше от хламокодинга.
     
     
  • 4.43, нах. (?), 09:38, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Уныло глядит на требования к водителю автобуса в одной не вконец еще е6анувшейся стране: "а поводи-ка ты легковушку - не по методу 'права отлежались', а покажи-ка справку из страховой о полной безаварийности - лет этак за пять. Потом профессиональный медосмотр, и, если пройдешь... можешь поучиться у нас - всего-то где-то 300000 ржубликов примерно, пол-годика. А там и экзамен. В процессе только язык подтяни чуток - нет, нам совсем не A1 надо, давай хотя бы B2"

    Вздыхает, уходит учить питон.

    На свой ресторанчик с пиццей-на-вынос, увы, не накопил.

     
     
  • 5.51, Аноним (51), 10:46, 25/11/2023 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 4.56, Аноним (53), 11:23, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    К здравомыслию, не?
     

  • 1.32, Аноним (32), 23:24, 24/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Чем больше синтаксического сахара в яп, тем больше проблем и узких мест))))
     
     
  • 2.36, Аноним (34), 03:23, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как известно, C - это ассемблер, щедро политый сахарным сиропом.
     
     
  • 3.57, Аноним (53), 11:24, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Нет
     
  • 2.71, Аноним (71), 17:35, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Тут приходится выбиоать: либо ничем не политый и софта на нём 3.5 штуки, либо достаточно политый и софта на нём достаточно.
     

  • 1.33, x3who (?), 23:58, 24/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вендузятников-любителей обфускации не жалко, зря они заложили pyobf-пакеты.
     
  • 1.35, Аноним (35), 02:56, 25/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не иначе через зависимости зловреды устанавливаются. Когда глубина зависимостей большая, им есть где разгуляться.
     
  • 1.39, Аноним (39), 04:05, 25/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Предполагаю, что через какое-то время демократия закончиться и кто-то начнет дум... большой текст свёрнут, показать
     
     
  • 2.48, Tron is Whistling (?), 10:02, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем? Так оно копейки стоит, а это в этот хлам вкладываться придётся.
    Собственно на этом месте хламокодинг обычно и умирает вместе с езычком. Их не один уже был.
     
  • 2.49, nox. (?), 10:31, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Сегодня нам нужено признать, что кроме программистов фанатиков, компаний заинтересованных в рекламе появился еще один класс программистов (хотя вероятно он и раньше всегда был) этаких вредителей делающих разные пакости.

    К какому классу отнести компании, пихающие телеметрию и бэкдоры в бинарники средств разработки с целью их подстановки во все генерируемые с их помощью проекты?

     
  • 2.75, Вы забыли заполнить поле Name (?), 19:04, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В любом случае демократии в репозиториях кажется начинает наступать переломный момент когда нечистые на руку люди начинают публиковать зловердный код.

    Так всегда было. Это извечная борьба. Если ты не закроешь дверь, то найдётся кто-то кто тебя обворует в любом обществе.

     
  • 2.102, Аноним (102), 12:20, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > В любом случае демократии в репозиториях кажется начинает наступать переломный момент когда нечистые на руку люди начинают публиковать зловердный код.

    Зачем вы ляпаете слова, смысл которых не знаете? Когда любой можно опубликовать что угодно - это не имеет никакого отношения к демократии. Никакого коллективного принятия решений и равного воздействия участников на результат тут нет. Собственно, тут скорее квази-анархия (квази - потому что власть там на самом деле есть, просто она преимущественно самоустранилась от принятия таких решений, про которые идёт речь).

     

  • 1.40, Аноним (40), 04:47, 25/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    никогда не понимал, зачем это, когда есть пакетный менеджер ОС
     
     
  • 2.41, Аноним (41), 06:01, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ось может любой создать, даже я свой дистриб собираю. Пакетный менеджер должен быть как альтернатива, а не как основной инструмент. Проблема в том что зависимостей ну очень много.
     
     
  • 3.47, Аноним (40), 09:58, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    эээ. изначальный набор слов я вообще не понял, к чему. последний бред тоже не понял: пакетный менеджер как раз и нужен для работы с кучей зависимостей
     
  • 2.55, Вы забыли заполнить поле Name (?), 11:21, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Для распространения софта. У других могут быть другие дистрибутивы или операционные системы, а разработчики не будут собирать под все существующи плтаформы. Ты скажешь, что это задача дистров? Но как быть проектам, которые разрабатываются скажем не на деб пакетах, а ты хочешь поставить его себе? Про это проект меинтейнеры даже краем уха не слыашли. И вот тебе вместо того, чтобы сделать pip install -r requrements.txt (лучше poetry install) придется самому выискивать пакеты своего дистра (а зачастую даже собирать) нужные версии всех зависимостей. Поверь мне, ты это не хочешь.

    Есть еще одно решение это проблемы - собирать все статически в бинарь. Так поступает go и много софта на С++, которые тащат все зависимоти в репе.

     
     
  • 3.58, Tron is Whistling (?), 11:45, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > придется самому выискивать пакеты своего дистра (а зачастую даже собирать) нужные версии всех зависимостей

    Именно так и делается. Благо в мире C зависимости обычно позадачные, а не построчные типа лефтпада.

     
     
  • 4.73, Вы забыли заполнить поле Name (?), 18:53, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Не от хорошей жизни. Вот дать нормальные модули в язык, унифицированную систему сборки, так сразу будут и маленькие модули делать, пример этому cargo.
     
     
  • 5.76, Tron is Whistling (?), 22:38, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, вот что ни хипстерский шит, то обычно да, с маленькими модулями и хламокодингом.

    Из исключений - жаба, но там немножко по-другому устроено.

     
     
  • 6.77, Вы забыли заполнить поле Name (?), 22:43, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Ну, вот что ни хипстерский шит, то обычно да, с маленькими модулями
    > и хламокодингом.

    Кстати, если говорить про js, то ранее, до распространения npm и модулей commonjs и esm (последний из которых стандарт языка) библиотеки были тоже большими, например, yui или google closure, которые подключил и у тебя почти все есть. Этакие аналоги буста.

     

  • 1.50, nox. (?), 10:37, 25/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Отравили репозиторий Python? Это системная проблема. Без репозиториев, которые стали весьма опасными, как язык широкого применения, а не только скрипты на замену bash, Python не имеет смысла. Хотя ... как интерфейс к С/С++ может пригодиться. Благодаря армии программистов, поддавшихся на как бы рекламу и типа рейтинги. Хотя нужен ли интерфейс к C/C++ ... Он и сам хорош.
     
     
  • 2.52, Аноним (40), 11:01, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    приматы после просмотра двух роликов по машинному обучению считают себя спецами в неком ИИ и бегут запускать питонячьи скрипты у себя на невидии.

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

    третьи шимпанзе после пяти лет эникеем в офисе с заменой чернил в принтерах находят другую работу и говнокодят на питоне

    вот из-за этих трёх категорий людей всё так плохо, там в принципе некому программировать

     
     
  • 3.74, Вы забыли заполнить поле Name (?), 18:58, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Всегда так было. Просто язык популярен и это побочный эффект. До этого популярен был пхп и курсы по нему; тогда выход был приседать со штангой теории категорий или писать динамические опердени на эрланге.
     

  • 1.54, ptr (??), 11:14, 25/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как я понимаю, проблема заключается в том, что многие "разработчики", которые пользуются этими пакетами, не в состоянии понять их исходный код. Особенно с учётом того, что этот код, преимущественно, вовсе не на Python, а на C/C++.
     
     
  • 2.61, Аноним (60), 14:52, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Может и в состоянии, но там по цепочке (дедка за репку, бабка за дедку, внучка за бабку,...) наверное мегабайты кода вытягиваются, замахаешься всё проверять. Подключаешь одну библиотеку, а она использует еще 10, каждая из которых еще 10...
     
     
  • 3.63, ptr (??), 15:09, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не утрируйте. Таких базовых библиотек, которые все тянут за собой, пару десятков. То есть, не смотря на то, что сама цепочка зависимостей одной пакета может содержать десяток пакетов, то суммарно для сотни пакетов используемых в одном проекте такие вторичные зависимости составят всего два-три десятка пакетов.
     
     
  • 4.91, Tron is Whistling (?), 11:41, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Угу, разворачивал я одно такое поделие, ну, потребовалось - по принципу "развернул и пусть сами с ним бибикаются". По цепочке вытянулось пакетов 150. Один из которых внезапно захотел конкретную версию жабогадюки постарее...
     
     
  • 5.92, Tron is Whistling (?), 11:42, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Короче всё это ныне сидит на отдельной виртуалке в чруте и имеет состояние поддержки "работает - не трожь" ныне.
     
  • 2.72, Вы забыли заполнить поле Name (?), 18:51, 25/11/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > не в состоянии понять их исходный код

    Не в желании скорее. Поставили, работает и ладно. А то, что там дичь какая-нибудь прилетает, они даже не смотрят.

     
     
  • 3.89, ptr (??), 11:28, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Желание зависит, в том числе, и от квалификации. Разработчику с опытом кодирования на C/C++ потребуется на порядок меньше времени и усилий на аудит кода пакета, написанного на C/C++, чем разработчику не знакомого с C/C++. А так как подавляющее большинство использующих Python не знают кроме него ни одного другого языка, отсюда и последствия. При разработке на C/C++ количество библиотек и классов используется не меньше, но количество намеренной дичи в них - на порядок меньше.
     
     
  • 4.93, Tron is Whistling (?), 11:44, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В этом плане очень удобно перехлёстываются C, C++, Java, .NET/C#, PHP и ещё несколько языков. Зная один - ты вполне прочитаешь и другой.
     
  • 4.94, Tron is Whistling (?), 11:45, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А вот у езычков со своим вычурным синтаксисом (всякие пито-расты) с этим конкретная проблема, да.
     
  • 4.96, Аноним (96), 15:32, 26/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >подавляющее большинство использующих Python не знают кроме него ни одного другого языка

    Чёт какие-то фантазии, не пересекающиеся с реальностью, бротышка. Или у тебя большинство -- это те, кого учили одному питону в школе? Меня вот тоже одному бейсику в школе учили, и это не значит, что я его хоть немного знаю (правда, даже клепал скрипты на вбс однажды, который никакого отношения к тому бейсику не имеет).

     
     
  • 5.103, Аноним (102), 12:29, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Полагаю, что большинство у него - это те, кто "по курсам в интернетиках". И таки он может быть вполне себе даже прав (но нужны пруфы, конечно, которых наверняка не будет).
     
     
  • 6.106, ptr (??), 14:50, 28/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Понятно, что моя выборка нерепрезентативна, но, судя по количеству задач в Jira на перенос алгоритмов, уже реализованных на Python, на C/C++ с оформлением пакета для Python, создается именно такое впечатление. Причины переноса в 99% - оптимизация с глубоким параллелизмом.
    Так что в холдинге, где я работаю, подавляющее большинство программистов на Python не способны перенести свой код в C/C++.
     
  • 4.107, Вы забыли заполнить поле Name (?), 21:20, 28/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Желание зависит, в том числе, и от квалификации. Разработчику с опытом кодирования
    > на C/C++ потребуется на порядок меньше времени и усилий на аудит
    > кода пакета, написанного на C/C++, чем разработчику не знакомого с C/C++.
    > А так как подавляющее большинство использующих Python не знают кроме него
    > ни одного другого языка, отсюда и последствия. При разработке на C/C++
    > количество библиотек и классов используется не меньше, но количество намеренной дичи
    > в них - на порядок меньше.

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

     

  • 1.99, Аноним (99), 09:08, 27/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно, сколько такого же спрятано в растовском карго?
     
     
  • 2.104, Аноним (102), 12:35, 27/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    По идее меньше:
    Во-первых, самого по себе кода там меньше понаписано.
    Во-вторых, код там больше в виде относительно небольших модулей (а не жирных пакетищ), которые в теории и просмотреть можно, перед заюзыванием.
    В-третьих, количество "писак по курсам с ютупа" на расте заметно меньше, чем питонистов.
    и т.д.
    Но всё это не важно, т.к. ты тебе совершенно на саомм деле не интересно, а написал ты просто чтобы набросить на вентилятор.
     

  • 1.100, Пряник (?), 09:59, 27/11/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Они бы ещё на DepositFiles вирусы искали...
     

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



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

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