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
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария