https://www.opennet.ru/opennews/art.shtml?num=60880
https://www.opennet.ru/opennews/art.shtml?num=60877
#xz_gate
Прекрасная детективная история про то, как несколько (или один) очень мотивированных людей встроили эксплоит в кодовую базу xz.
Не менее прекрасно и то, как эксплоит был найден:
https://mastodon.social/@AndresFreundTec/112180406142695845
"I was doing some micro-benchmarking at the time, needed to quiesce the system to reduce noise. Saw sshd processes were using a surprising amount of CPU, despite immediately failing because of wrong usernames etc. Profiled sshd, showing lots of cpu time in liblzma, with perf unable to attribute it to a symbol. Got suspicious. Recalled that I had seen an odd valgrind complaint in automated testing of postgres, a few weeks earlier, after package updates.
Really required a lot of coincidences"
А что же #stal/ix?
А stal/ix эксплоиту не подвержен, по двум причинам:
* IFUNC не работает со статической линковкой. Это ограничение не принципиально, можно и завести, но всем лень.
* Более интересная причина - потому что я проактивно борюсь с такого рода возможностью, когда сумасшедший мейнтейнер может учудить, и не беру tgz, сваренные человеком, а беру tgz, сваренные системой контроля версий (прямые ссылки на архивы бранчей и коммитов) - https://t.iss.one/itpgchannel/93.
UPD: https://github.com/tukaani-project/xz - репу закрыли :(
https://www.opennet.ru/opennews/art.shtml?num=60877
#xz_gate
Прекрасная детективная история про то, как несколько (или один) очень мотивированных людей встроили эксплоит в кодовую базу xz.
Не менее прекрасно и то, как эксплоит был найден:
https://mastodon.social/@AndresFreundTec/112180406142695845
"I was doing some micro-benchmarking at the time, needed to quiesce the system to reduce noise. Saw sshd processes were using a surprising amount of CPU, despite immediately failing because of wrong usernames etc. Profiled sshd, showing lots of cpu time in liblzma, with perf unable to attribute it to a symbol. Got suspicious. Recalled that I had seen an odd valgrind complaint in automated testing of postgres, a few weeks earlier, after package updates.
Really required a lot of coincidences"
А что же #stal/ix?
А stal/ix эксплоиту не подвержен, по двум причинам:
* IFUNC не работает со статической линковкой. Это ограничение не принципиально, можно и завести, но всем лень.
* Более интересная причина - потому что я проактивно борюсь с такого рода возможностью, когда сумасшедший мейнтейнер может учудить, и не беру tgz, сваренные человеком, а беру tgz, сваренные системой контроля версий (прямые ссылки на архивы бранчей и коммитов) - https://t.iss.one/itpgchannel/93.
UPD: https://github.com/tukaani-project/xz - репу закрыли :(
www.opennet.ru
Ретроспектива продвижения бэкдора в пакет xz
Предположительно бэкдор в пакет xz был внедрён разработчиком Jia Tan, который в 2022 году получил статус сопровождающего и выпускал релизы начиная с версии 5.4.2. Помимо проекта xz предполагаемый автор бэкдора также участвовал в разработке пакетов xz-java…
👍13🔥8🤯5❤3🤨1
После этого вашего #xz_gate какие-то хаотические движения во всем open source:
Кто-то обсуждает отказ от xz.
Кто-то пилит способ воспроизвести все окружение, нужное для того, чтобы запустить эту дырень - https://github.com/amlweems/xzbot, прямо https://anekdotov.net/anekdot/all/bspkstvskrnnvsh.htm
кто-то предлагает пострипать лишние зависимости у systemd - https://www.opennet.ru/opennews/art.shtml?num=60912 Наверное, люди уже написали весь важный код, и надо писать не очень важный.
Кто-то пишет большие заметки, пытаясь срубить хайпа на великих (Кен Томпсон с его trusting trust) - https://joeyh.name/blog/entry/reflections_on_distrusting_xz/
Кто-то вендорит xz (https://github.com/Genivia/ugrep):
Я вот дернул кофе, и написал этот обзор.
Кто-то обсуждает отказ от xz.
Кто-то пилит способ воспроизвести все окружение, нужное для того, чтобы запустить эту дырень - https://github.com/amlweems/xzbot, прямо https://anekdotov.net/anekdot/all/bspkstvskrnnvsh.htm
кто-то предлагает пострипать лишние зависимости у systemd - https://www.opennet.ru/opennews/art.shtml?num=60912 Наверное, люди уже написали весь важный код, и надо писать не очень важный.
Кто-то пишет большие заметки, пытаясь срубить хайпа на великих (Кен Томпсон с его trusting trust) - https://joeyh.name/blog/entry/reflections_on_distrusting_xz/
Кто-то вендорит xz (https://github.com/Genivia/ugrep):
Making all in lzma/C
CC libviiz_a-viizip.o
CC libviiz_a-7zAlloc.o
CC libviiz_a-7zArcIn.o
CC libviiz_a-7zBuf.o
CC libviiz_a-7zBuf2.o
CC libviiz_a-7zCrcOpt.o
CC libviiz_a-7zDec.o
CC libviiz_a-7zCrc.o
CC libviiz_a-7zFile.o
CC libviiz_a-7zStream.o
CC libviiz_a-Bcj2.o
CC libviiz_a-Bra86.o
CC libviiz_a-Bra.o
CC libviiz_a-BraIA64.o
CC libviiz_a-CpuArch.o
CC libviiz_a-Delta.o
CC libviiz_a-Lzma2Dec.o
CC libviiz_a-LzmaDec.o
CC libviiz_a-Ppmd7.o
CC libviiz_a-Ppmd7Dec.o
Я вот дернул кофе, и написал этот обзор.
👍17😁8🐳6❤2🤔2
https://leahneukirchen.org/blog/archive/2024/04/what-autoconf-got-right.html
#autohell
Годный текст про autoconf, от коллегиблоггера мейнтейнера void linux.
С чем-то я согласен, можно сколько угодно ругать autohell, но он был первым в своем классе, было бы странно ожидать, что там все было сделано правильно с первого раза:
* "Overrides are possible". В cmake они тоже есть, но не стандартизированы, и работают не всегда ожидаемым образом. В meson это, вообще говоря, боль, потому что там ничего заоверрайдить нельзя, или я не нашел, как, поэтому если попадается какой-то всратый configure test, приходится патчить сборочные файлы.
* "The config.log tells what happened" В meson/cmake лог конфигурирования - это тихий ужас, чаще всего по нему невозможно понять, что же пошло не так.
С чем-то не согласен:
* "There is support for cross-compiling and for host/target separation". Как я уже когда-то писал, в autohell/cmake нет нормальной поддержки кросс-компиляции. #cross В meson немного лучше, там есть отдельные графы для host/target сборок, и можно проверять host свойства системы отдельно. Autohell, в лучшем случае, не мешает кросс-компиляции, cmake - просто вредит ей https://t.iss.one/itpgchannel/132.
* "It has few runtime dependencies" - это просто полуправда. Для запуска configure достаточно shell, но для его регенерации нужен m4/perl, а это уже очень и очень много. С точки зрения supply chain attack configure скрипты, конечно, надо всегда перегенерировать, как показал опыт проекта #xz_gate https://t.iss.one/itpgchannel/1789.
https://lobste.rs/s/ebnqzl/what_autoconf_got_right
#autohell
Годный текст про autoconf, от коллеги
С чем-то я согласен, можно сколько угодно ругать autohell, но он был первым в своем классе, было бы странно ожидать, что там все было сделано правильно с первого раза:
* "Overrides are possible". В cmake они тоже есть, но не стандартизированы, и работают не всегда ожидаемым образом. В meson это, вообще говоря, боль, потому что там ничего заоверрайдить нельзя, или я не нашел, как, поэтому если попадается какой-то всратый configure test, приходится патчить сборочные файлы.
* "The config.log tells what happened" В meson/cmake лог конфигурирования - это тихий ужас, чаще всего по нему невозможно понять, что же пошло не так.
С чем-то не согласен:
* "There is support for cross-compiling and for host/target separation". Как я уже когда-то писал, в autohell/cmake нет нормальной поддержки кросс-компиляции. #cross В meson немного лучше, там есть отдельные графы для host/target сборок, и можно проверять host свойства системы отдельно. Autohell, в лучшем случае, не мешает кросс-компиляции, cmake - просто вредит ей https://t.iss.one/itpgchannel/132.
* "It has few runtime dependencies" - это просто полуправда. Для запуска configure достаточно shell, но для его регенерации нужен m4/perl, а это уже очень и очень много. С точки зрения supply chain attack configure скрипты, конечно, надо всегда перегенерировать, как показал опыт проекта #xz_gate https://t.iss.one/itpgchannel/1789.
https://lobste.rs/s/ebnqzl/what_autoconf_got_right
👍11