LINUX.ORG.RU

В Арче новый поток вредоносных пакетов в AUR

 , ,


1

0

Недавно организацией Independent Federated Intelligence Network при проверки пакетов в AUR был найден вредоносный код, благодаря которому можно грабить корованы получать удалённый доступ к машинам, иметь доступ через SSH, к крипокошелькам, получать пароли, ключи доступа и прочему. Предположительно могут быть «заражены» около 200 пакетов.

Разработчики самого Арча временно ограничили приём изменений в AUR до решения проблемы.

Более детально можно почитать здесь.

Дополнительные пояснения:

AUR (Arch User Repository) это не основной репозиторий (от команды разработчиков дистрибутива Arch с надлежащей проверкой), а место, где любые пользователи могут публиковать свои скрипты для сборки пакетов с минимальный порогом входа. Сами разработчики Арч советуют проверят содержание скриптов сборок и устанавливать их «на свой риск».

«Запрет изменений» является запретом на переход пакета от одного разработчика к другому: в ряде случаев злоумышленники начинали сопровождение устаревших пакетов и вносили в них вредоносные правки.



Последнее исправление: Ogden (всего исправлений: 1)
Ответ на: комментарий от anonymous

Там PKGBUILD, который и скачивает исходники. Вопрос же в доверенном источнике. Чем это отличается от других дистрибутивов, мне не ясно. Они скачивают, а потом их построчно проверяют? Нет конечно.

dmitry237 ★★★★★
()
Ответ на: комментарий от dmitry237

Чем это отличается от других дистрибутивов, мне не ясно.

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

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

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

Зачем я объясняю прописные истины? Короче АРЧ - васянский дистрибутив.

P.S. Глянул еще на : https://mirror.yandex.ru/slackware/slackware-15.0/source/ Мда :((( Интересно есть ли еще один дистрибутив (не пропер) где исходников нет?

anonymous
()
Ответ на: комментарий от anonymous

Мантейнер этого пакета в дистрибутиве скачивает исходники, проверяет что там чего

Я вас умоляю. Он сопровождает 50-100 пакетов, максимум он проверяет чек-суммы, ему сил не хватит проверить даже один firefox.

dmitry237 ★★★★★
()
Ответ на: комментарий от dmitry237

Да хоть 1000. Вопрос не в том что он там делает, а в том что он берет ответственность на себя и ему не наплевать на свой дистрибутив.

  • Ой у меня пакет не пересобирается,
  • А я тут причем? Вон идите к хозяину гитхаба !
anonymous
()
Ответ на: комментарий от anonymous

А как вы себе представляете сборщика deb-пакетов, rpm, slackbuild и т.д.? Ну посмотрите PKGBUILD и проанализируйте. По ссылке получите исходники, проверьте чек-сумму, которая указана в PKGBUILD, проверьте патчи и т.д. Все же доступно.

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

dmitry237 ★★★★★
()
Ответ на: комментарий от dmitry237

Ладно ставим впрос по другому. По вашему разрабы АРЧа умные, а все остальные разработчики дистрибутивов дураки.

anonymous
()
Ответ на: комментарий от dmitry237

На мой взгляд вы не правы. Какая разница исходник в репе или точь в точь такой же скачивается для сборки?

Я согласен, что ваш оппонент неправ, но всё же у меня есть что добавить или ответить.

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

В арче, а также слаке, воиде, или скажем, генте, мейнтейнер может внести правки в PKGBUILD (template, slackbuild, ebuild, и т.п.) и добавить туда нужный ему «зловред» (неважно какой, сферический в вакууме). Чтобы проверить, что он так не сделал, необходимо посмотреть в PKGBUILD и убедиться, что там всё в порядке. Помимо этого (кроме генты, где сам он ничего не собирает), он может использовать другой, секретный PKGBUILD, не тот, который опубликовал, для сборки пакета, и таким образом навредить. Для пакетов, для которых реализована повторяемая сборка, это проверяется сборкой пакета самостоятельно по тому же PKGBUILD и сверкой результата. Всё, это все его возможности в данном случае. Во всяких красношляпо-убунтах у него есть ещё одна возможность навредить — он может не трогать (аналог) PKGBUILD, но изменить сами исходники напрямую и тем самым навредить. Чтобы это проверить, необходимо выкачать исходник от мейнтейнера и сравнить его с исходником от разработчика — причём хрен ещё пойми, с каким именно и откуда, ежели разработчик выкладывает их несколько, или ежели есть проблемы с нумерацией версий и публикацией.

Соответственно, разница довольно большая — значительно снижается прозрачность и повышается площадь атаки по сравнению с арчем/воидом/слакой/гентой.

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

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 2)
Ответ на: комментарий от CrX

Я вообще не уверен, что пакеты собирают люди. Сопровождают скорее. Например решил я посмотреть, а сколько же пакетов у Jan Alexander Steffens, до конца не стал, прервал выполнение:

$  & {
     $packages = pacman -Sql
     foreach ($p in $packages)
     {
         if ((pacman -Si $p) -match 'Jan\sAlexander\sSteffens') { $p }
     }}

amd-ucode
base
ca-certificates
ca-certificates-mozilla
ca-certificates-utils
dbus
dbus-broker
dbus-broker-units
dbus-daemon-units
dbus-docs
dbus-units
glib2
glib2-devel
glib2-docs
json-c
libp11-kit
libsecret
libsecret-docs
libxml2
libxml2-docs
linux
linux-docs
linux-firmware
linux-firmware-amdgpu
linux-firmware-atheros
linux-firmware-broadcom
linux-firmware-cirrus
linux-firmware-intel
linux-firmware-liquidio
linux-firmware-marvell
linux-firmware-mediatek
linux-firmware-mellanox
linux-firmware-nfp
linux-firmware-nvidia
linux-firmware-other
linux-firmware-qcom
linux-firmware-qlogic
linux-firmware-radeon
linux-firmware-realtek
linux-firmware-whence
linux-headers
nspr
nss
p11-kit
p11-kit-docs
pkgconf
abi-compliance-checker
abi-dumper
accountsservice
acpi_call
adobe-source-code-pro-fonts
adobe-source-sans-fonts
adobe-source-serif-fonts
adwaita-fonts
aisleriot
alsa-card-profiles
anubis
aom
aom-docs
appstream-glib
at-spi2-core
at-spi2-core-docs
atkmm
atkmm-2.36
atkmm-2.36-docs
atkmm-docs
avahi
awesome
bbswitch
bbswitch-dkms
blueprint-compiler
bookworm
brasero
broadcom-wl
broadcom-wl-dkms
bubblewrap
bubblewrap-suid
budgie-control-center
cairo
cairo-docs
cairomm
cairomm-1.16
cairomm-1.16-docs
cairomm-docs
cantarell-fonts
cbindgen
cdemu-client
cdemu-daemon
colord
colord-docs
colord-gtk
colord-gtk-common
colord-gtk4
colord-sane
crawl-data
crawl-ncurses
crawl-tiles
dconf
decibels
deepin-anything-arch
default-cursors
deluge
deluge-gtk
desktop-file-utils
directx-headers
directx-shader-compiler
dleyna
dleyna-docs
dump_syms
eglexternalplatform
eog
eog-docs
eog-plugins
eom
evince
evince-lib-docs
evolution
evolution-bogofilter
evolution-ews
evolution-spamassassin
farstream
file-roller
firefox
firefox-i18n-ach
firefox-i18n-af
firefox-i18n-an
firefox-i18n-ar
firefox-i18n-ast
firefox-i18n-az
firefox-i18n-be
firefox-i18n-bg
firefox-i18n-bn
firefox-i18n-br
firefox-i18n-bs
firefox-i18n-ca
firefox-i18n-ca-valencia
firefox-i18n-cak
firefox-i18n-cs
firefox-i18n-cy
firefox-i18n-da
firefox-i18n-de
firefox-i18n-dsb
firefox-i18n-el
firefox-i18n-en-ca
firefox-i18n-en-gb
firefox-i18n-en-us
firefox-i18n-eo
firefox-i18n-es-ar
firefox-i18n-es-cl
firefox-i18n-es-es
firefox-i18n-es-mx
firefox-i18n-et
firefox-i18n-eu
firefox-i18n-fa
firefox-i18n-ff
firefox-i18n-fi
firefox-i18n-fr
firefox-i18n-fur
firefox-i18n-fy-nl
firefox-i18n-ga-ie
firefox-i18n-gd
firefox-i18n-gl
firefox-i18n-gn
firefox-i18n-gu-in
firefox-i18n-he
firefox-i18n-hi-in
firefox-i18n-hr
firefox-i18n-hsb
firefox-i18n-hu
firefox-i18n-hy-am
firefox-i18n-ia
firefox-i18n-id
firefox-i18n-is
firefox-i18n-it
firefox-i18n-ja
firefox-i18n-ka
firefox-i18n-kab
firefox-i18n-kk
firefox-i18n-km
firefox-i18n-kn
firefox-i18n-ko
firefox-i18n-lij
firefox-i18n-lt
firefox-i18n-lv
firefox-i18n-mk
firefox-i18n-mr
firefox-i18n-ms
firefox-i18n-my
firefox-i18n-nb-no
firefox-i18n-ne-np
firefox-i18n-nl
firefox-i18n-nn-no
firefox-i18n-oc
firefox-i18n-pa-in
firefox-i18n-pl
firefox-i18n-pt-br
firefox-i18n-pt-pt
firefox-i18n-rm
firefox-i18n-ro
firefox-i18n-ru
firefox-i18n-sat
firefox-i18n-sc
firefox-i18n-sco
firefox-i18n-si
firefox-i18n-sk
firefox-i18n-skr
firefox-i18n-sl
firefox-i18n-son
firefox-i18n-sq
firefox-i18n-sr
firefox-i18n-sv-se
firefox-i18n-szl
firefox-i18n-ta
firefox-i18n-te
firefox-i18n-tg
firefox-i18n-th
firefox-i18n-tl
firefox-i18n-tr
firefox-i18n-trs
firefox-i18n-uk
firefox-i18n-ur
firefox-i18n-uz
firefox-i18n-vi
firefox-i18n-xh
firefox-i18n-zh-cn
firefox-i18n-zh-tw
five-or-more
flac
flac-doc
flatpak
flatpak-builder
flatpak-docs
fontconfig
freealut
freeglut
fribidi
gcr
gcr-4
gcr-4-docs
gcr-docs
gdk-pixbuf2
gdk-pixbuf2-docs
gdm
geary
gedit
gedit-plugins
geoclue
geocode-glib
geocode-glib-docs
gexiv2
gexiv2-common
gexiv2-docs
ghex
ghex-docs
gi-docgen
git-cinnabar
gitg
gjs
glabels
glib-networking
glibmm
glibmm-2.68
glibmm-2.68-docs
glibmm-docs
glycin
glycin-docs
glycin-gtk4
gnome-2048
gnome-app-list
gnome-autoar
gnome-bluetooth-3.0
gnome-calls
gnome-chess
gnome-clocks
gnome-color-manager
gnome-control-center
gnome-desktop
gnome-desktop-4
gnome-desktop-common
gnome-desktop-docs
gnome-dictionary
gnome-disk-utility
gnome-initial-setup
gnome-keybindings
gnome-klotski
gnome-maps
gnome-menus
gnome-music
gnome-nettool
gnome-nibbles
gnome-online-accounts
gnome-photos
gnome-remote-desktop
gnome-robots
gnome-session
gnome-settings-daemon
gnome-shell
gnome-shell-docs
gnome-shell-extensions
gnome-software
gnome-sound-recorder
gnome-sudoku
gnome-taquin
gnome-tetravex
gnome-text-editor
gnome-tour
gnome-usage
gnome-user-docs
gnome-user-share
gnote
gom
gom-docs
gpaste
graphene
graphene-docs
gsettings-desktop-schemas
gsettings-system-schemas
gspell
gspell-docs
gssdp
gssdp-docs
gst-plugin-aws
gst-plugin-burn
gst-plugin-cdg
gst-plugin-claxon
gst-plugin-csound
gst-plugin-dav1d
gst-plugin-debugseimetainserter
gst-plugin-deepgram
gst-plugin-demucs
gst-plugin-elevenlabs
gst-plugin-fallbackswitch
gst-plugin-ffv1
gst-plugin-gif
gst-plugin-gopbuffer
gst-plugin-gtk4
gst-plugin-hlsmultivariantsink
gst-plugin-hlssink3
gst-plugin-hsv
gst-plugin-icecast
gst-plugin-isobmff
gst-plugin-json
gst-plugin-lewton
gst-plugin-livesync
gst-plugin-mpegtslive
gst-plugin-originalbuffer
gst-plugin-pipewire
gst-plugin-quinn
gst-plugin-raptorq
gst-plugin-rav1e
gst-plugin-regex
gst-plugin-reqwest
gst-plugin-rsanalytics
gst-plugin-rsaudiofx
gst-plugin-rsaudioparsers
gst-plugin-rsclosedcaption
gst-plugin-rsfile
gst-plugin-rsflv
gst-plugin-rsinter
gst-plugin-rsonvif
gst-plugin-rspng
gst-plugin-rsrtp
gst-plugin-rsrtsp
gst-plugin-rstracers
gst-plugin-rsvideofx
gst-plugin-rswebp
gst-plugin-rswebrtc
gst-plugin-skia
gst-plugin-sodium
gst-plugin-speechmatics
gst-plugin-spotify
gst-plugin-streamgrouper
gst-plugin-textaccumulate
gst-plugin-textahead
gst-plugin-textwrap
gst-plugin-threadshare
gst-plugin-togglerecord
gst-plugin-uriplaylistbin
gst-plugin-webrtchttp
gst-plugin-whisper
gst-webrtc-signalling-server
gtk-doc
gtk-update-icon-cache
gtk-vnc
gtk-vnc-docs
gtk3
gtk3-demos
gtk3-docs
gtk4
gtk4-demos
gtk4-docs
gtklock-userinfo-module
gtkmm-4.0
gtkmm-4.0-docs
gtkmm3
gtkmm3-docs
gtksourceview3
gucharmap
gupnp
gupnp-av
gupnp-av-docs
gupnp-dlna
gupnp-docs
gupnp-igd
gvfs
gvfs-afc
gvfs-dnssd
gvfs-goa
gvfs-gphoto2
gvfs-mtp
gvfs-nfs
gvfs-onedrive
gvfs-smb
gvfs-wsdd
^C
Interrupt signal received

Наверное в любом дистрибутиве есть распределение ответственности.

dmitry237 ★★★★★
()
Ответ на: комментарий от CrX

Во всяких красношляпо-убунтах у него есть ещё одна возможность навредить — он может не трогать (аналог) PKGBUILD, но изменить сами исходники напрямую и тем самым навредить.

Мда, логика 100% что еще сказать :)

автор дистрибутива, чтобы навредить юзерам своего дистра меняет исходники. Мда :(

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

Соответственно, разница довольно большая — значительно снижается прозрачность и повышается площадь атаки по сравнению с арчем/воидом/слакой/гентой.

Попрошу не упоминать через запятую эти дистры, так как гентаа и слака (хз за воид) сырцы кладет в свой дистрибут - так как они заботятся о своих дистрах. А АРЧ васянский дистр им на юзероов начихать.

anonymous
()
Ответ на: комментарий от anonymous

Попрошу не упоминать через запятую эти дистры, так как гентаа и слака (хз за воид) сырцы кладет в свой дистрибут - так как они заботятся о своих дистрах. А АРЧ васянский дистр им на юзероов начихать.

Про генту 4.2.

Со слакой да, я ошибся (юзал 20 лет назад, был о ней лучшего мнения по умолчанию и не проверил). Тут мой косяк, да.

Ну а так продолжай доставлять и выворачивать всё наизнанку, не останавливайся.

CrX ★★★★★
()
Ответ на: комментарий от anonymous

В душе не ведаю. Смотри оригинальные репы и ebuild’ы в них. Хватит уже позориться.

https://github.com/gentoo/gentoo/blob/master/gui-libs/wlroots/wlroots-0.20.2.ebuild

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от anonymous

Вот именно это я и хотел тебе сказать. Как обычно, короче. Ну или можешь хотя бы загуглить, что такое distfiles и откуда они берутся.

CrX ★★★★★
()
Ответ на: комментарий от CrX

Причем тут откуда берутся? Они скачиваются и ложатся внутрь дистра.

И если я локально сделаю зеркало gentoo то буду беспроблем юзать portage внутри локалки, я не теоретик я практик !

Или ты думаешь что если в РПМ в spec указан урл исходника файл берется от туда что ли?

Это надо же додуматься ляпнуть что мантейнеры дистрибута трояны в сырцы пихают :(((( Мдааа.

anonymous
()
Ответ на: комментарий от anonymous

Попрошу не упоминать через запятую эти дистры, так как гентаа и слака (хз за воид) сырцы кладет в свой дистрибут - так как они заботятся о своих дистрах. А АРЧ васянский дистр им на юзероов начихать.

  1. Арч упоминает, что AUR это пакеты, за которые команда не несёт ответственности.
  2. Наличие исходника не отменяет возможности вредоносности пакета.
AZJIO ★
()
Ответ на: комментарий от AZJIO

Наличие исходника не отменяет возможности вредоносности пакета.

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

anonymous
()
Ответ на: комментарий от greenman

В AUR снова принимают пуши.

Начали принимать массово в 2026-08-11 10:56 (UTC)

С этого времени на данный момент обновлено (в том числе добавлено, пример) более 3800 пакетов.

greenman ★★★★★
()
Последнее исправление: greenman (всего исправлений: 3)
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария