tech_b0lt_genona | Unsorted

Telegram-канал tech_b0lt_genona - Технологический Болт Генона

7874

До Декарта никогда не существовало рационализма. Музыкальный Болт Генона: @mus_b0lt_Genona Мемный Болт Генона: @mem_b0lt_Genona Кадровый Болт Генона @kadr_b0lt_Genona Обратная связь: @rusdacent

Subscribe to a channel

Технологический Болт Генона

Дельфинарий на @und3rc0nf_chat 🐬

Читать полностью…

Технологический Болт Генона

Помните правила для AI-ассистентов, применяемых при разработке ядра Linux?

Вот тут можно почитать, если кто-то пропустил
/channel/tech_b0lt_Genona/5507

Теперь свои правила выкатила Fedora

- Разработчик, использующий AI-инструменты при подготовке изменений для Fedora, несёт ответственность за переданное изменение и обязан изучить, проверить и протестировать его. Сгенерированное AI-ассистентом содержимое должно рассматриваться как рекомендация, а не финальный код или текст. Отправка непроверенного или низкокачественного AI-контента недопустима и создаёт дополнительную нагрузку на рецензирующих изменения.

- При передаче изменений, подготовленных с использованием AI-инструментов, в примечании к коммиту или pull-запросу требуется добавлять тег "Assisted-by: название AI-ассистента".

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

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

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

- Предлагаемые в дистрибутиве AI-возможности, особенно отправляющие данные на внешние серверы, должны по умолчанию быть отключены и активироваться после информирования и получения согласия у пользователя (opt-in). Из полезных применений AI-инструментов называется их задействование в средствах для людей с ограниченными возможностями, например, для перевода, транскрипции и синтеза речи.

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

- Генерируемые проектом данные разрешено использовать в обучении AI-моделей при соблюдении лицензий и упоминании авторства. Запрещён агрессивный скрапинг данных, создающий большую нагрузку на инфраструктуру (для предоставления эффективного доступа к данным рекомендовано связаться с командой, отвечающей за инфраструктуру).

Правила использования AI-инструментов при разработке Fedora Linux
https://www.opennet.ru/opennews/art.shtml?num=63956

Оригинал
Council Policy Proposal: Policy on AI-Assisted Contributions
https://discussion.fedoraproject.org/t/council-policy-proposal-policy-on-ai-assisted-contributions/165092

Читать полностью…

Технологический Болт Генона

Слайды с моего сегодняшнего доклада на NeoQUEST 2025

Название: "Что в образе тебе моём?"

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

Будет ли запись не знаю, но если будет, то обязательно выложу.

Читать полностью…

Технологический Болт Генона

Есть такой популярный в узких кругах инструмент Valgrind
https://valgrind.org/docs/manual/QuickStart.html

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

О Valgrind я упоминал ранее
/channel/tech_b0lt_Genona/4832
/channel/tech_b0lt_Genona/5340

Чаще всего, из того что я видел, Valgrind использовался для программ написанных на C\C++. Это и логично учитывая, сколько проблем там возникает из-за работы с памятью.

И тут ВНЕЗАПНО11!! его поддержку завезли в Go.

Вот обсуждение из 2010 года (самое раннее, которое нашёл), где интересуются, а есть ли что-то похожее для Go
https://groups.google.com/g/golang-nuts/c/Vy5dDw0-fCY

Также я находил посты в которых пытались дебажить и Go-шный софт

Вот, например
Hunting down a C memory leak in a Go program
https://zendesk.engineering/hunting-down-a-c-memory-leak-in-a-go-program-2d08b24b617d

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

> Our app is actually correctly freeing it’s “leaked” memory before it exits. Valgrind produces its leak report at the end of program execution by comparing what it gave out by malloc to what it received back by free, and printing out any unpaired malloc invocations. However, if our app actually does call free on all its memory before terminating, then Valgrind won’t see a leak, even if the actual amount of memory first allocated is totally unbounded!

> When we correctly destroy the librdkafka handle during app shutdown, however, all the memory from this queue gets released: Valgrind never saw a leak.

Есть посты о том, как успешно применили Valgrind, но как по мне эта успешность весьма условная: типа мы видим что что-то не так, но что бы понять нам надо взять что-то ещё. Киньте ссылок в комменты, если есть реально успешные случаи.

Вот обсуждение в issue с пояснениями

> Go doesn't support valgrind, but does support asan, msan, and tsan, which work with clang, and perhaps gcc.
valgrind fails
https://github.com/golang/go/issues/60600

Вот объяснение в proposal'е (на который собственно и ссылается имплементация https://go-review.googlesource.com/c/go/+/674077)

> Go uses mmap (which Valgrind understands) to map a large memory region and then uses our own allocator to handle allocating objects from that region. We allocate both the heap, and individual stacks, from this region. This behavior confuses Valgrind.

add valgrind hints to the runtime under special build mode
https://github.com/golang/go/issues/73602

Да и вообще, казалось бы, зачем все эти приседания, если есть GC?

Если кратко, то для
- Анализа памяти в runtime
- Проверки и обеспечения константного времени выполнения для криптографии

С первым пунктом всё понятно, а для второго немного пояснений.

Если атакующий может каким-либо образом замерять время которое требуется алгоритму для обработки входных данных, то это может дать "зацепку" для подбора ключа. Соответственно, в proposal'е описывается как Valgrind может помочь в этом

> uninitialized memory taint analysis that Valgrind does looks very similar to how we would want to analyze constant-time code. Namely, we care about conditional instructions that operate on sensitive memory, which Valgrind has all the machinery for, just that it cares about uninitialized memory. We can slightly abuse this Valgrind behavior by simply marking sensitive memory as uninitialized, and seeing if Valgrind ever complains about branching behavior that relies on it

Вот пост из 2010 года про подход
Checking that functions are constant time with Valgrind
https://www.imperialviolet.org/2010/04/01/ctgrind.html

Вот большой пост от BearSSL, если кому-то интересно будет углубиться в эту тему
Why Constant-Time Crypto?
https://bearssl.org/constanttime.html

В целом, конечно, штука хорошая и должна помочь сделать софт на Go лучше и стабильней.

Обсуждение на HN
https://news.ycombinator.com/item?id=45344708

ЗЫ Поправьте меня, но я не вижу тестов в патче (см. скрин) 🌝

Читать полностью…

Технологический Болт Генона

Релиз пакетного менеджера RPM 6.0
https://www.opennet.ru/opennews/art.shtml?num=63925

> Версии RPM 5 пропущена для исключения пересечений с проектом RPM5, который не связан с RPM от Red Hat и развивался независимыми разработчиками.

Вот это я пониманию внимание к деталям

> В разработке разрешено использование языка C++ (C++20), а не только языка Си.

Удивительно, что не Rust 🌝

А ещё RPM теперь знает про "Эльбрус" (e2k)
https://github.com/rpm-software-management/rpm/commit/703b2933483c6dacb59e5868e54ac4ddfbd2bfea


Оригинал
[Rpm-announce] RPM 6.0.0 released!
https://lists.rpm.org/pipermail/rpm-announce/2025-September/000121.html

Читать полностью…

Технологический Болт Генона

Так же наглядно, как и диаграмма с GPT-5

/channel/tech_b0lt_Genona/5528

Читать полностью…

Технологический Болт Генона

В докладе на NeoQUEST-2025 (/channel/tech_b0lt_Genona/5705), я затрону тему, а какие есть вообще идеи и подходы как выстроить процесс так, что бы полученным SBOM'ам можно было бы доверять.

Напомню, что SBOM очень важен, если вы хотите понимать, что "приехало" в приложение и окружение. Именно на SBOM опирается понимание того, что поставляется и какие уязвимости в продукте есть.

Класический SBOM с этим плохо справляется (см. 1 и 2 скрины)

Одним из фреймворков, который призван решить проблему целостности и прозрачности всей цепочки разработки является in-toto (https://in-toto.io/). Во главу угла в нём поставлена идея аттестации каждого из шагов, который происходит во время разработки.

> in-toto models the software supply chain as a series of “steps”. Supply chain owners, i.e. project owners or maintainers, define the set of actors authorized to perform each step and rules that govern the artifacts used and produced by the step. They can also include other arbitrary checks called “inspections” to be performed during the verification workflow. These policies are recorded in a piece of metadata called a supply chain “Layout”, which is cryptographically signed by the supply chain owners. As each step is performed, one or more attestations are generated recording various aspects of the process, and during verification, in-toto applies the policies in the layout against the set of attestations produced during the execution of the supply chain

https://slsa.dev/blog/2023/05/in-toto-and-slsa

Можно попробовать поиграться самому на примере
https://in-toto.io/docs/demo/

Имплементации
https://github.com/in-toto/in-toto-java
https://github.com/in-toto/in-toto-golang

Репа с доработками и предложениями
https://github.com/in-toto/ITE/

На 4 скрине пример, link-файла, который является одним из этапов общей цепочки аттестации. В нём видно команду и файлы, которые участвуют в одном из шагов

Дальнейшим развитием этого подхода является включение аттестации in-toto в pipeline с дополнительной проверочной информацией - SBOMit (https://sbomit.dev/ + 3 скрин)

> Once an SBOMit document is produced, clients can perform extensive verification of the document in order to get a high degree of assurance about the software’s integrity. For example, a client could verify that the steps described in the document indeed took place; ensure the identity of who performed a particular step by inspecting link metadata; or ensure that all the steps indeed led to the final SBOM described by the SBOMit document.

https://openssf.org/blog/2024/06/26/a-deep-dive-into-sbomit-and-attestations/

Попробовать можно тут
- Recursively collects all system calls made during the compilation of your project.
- Parses the packages your project utilized during compilation.
- Generates an in-toto attestation for your project, detailing the materials used and the output products.
https://github.com/SBOMit/SBOMit-strace-prototype

В целом этот подход хорошо рассказан в докладе (откуда и взяты первые три скрина)
Your SBOM Is Lying To You – Let’s Make It Honest
https://www.youtube.com/watch?v=4ZsdNUJyZXU

Российские решения с которыми сам работал и/или пересекался и тоже относятся, по моему мнению, к тематике поста

- Buildography (ИСП РАН, https://www.ispras.ru/technologies/buildography/) - отслеживает системные вызовы в процессе сборки и собирает данные о файлах/каталогах, аргументы, вызываемые программы и т.д. и сохраняет всю собранную информацию для дальнейших проверок.

- sbom-checker (open source, https://gitlab.community.ispras.ru/sdl-tools/sbom-checker) - набор утилит, который позволяет обновить и проверить SBOM'ы согласно требованиям ФСТЭК. Главное в скриптах, по тематике поста, это то, что можно получить и провалидировать информацию по репозиториям зависимостей.

- CodeScoring (https://codescoring.ru/) - платформа в целом посвящённая SCA: построение SBOM'ов, построение цепочки зависимостей, защита от supply chain атак и т.д.

Если кто-то ещё что-то хочет добавить или поправить пишите в комменты или в личку.

Читать полностью…

Технологический Болт Генона

У меня есть серия постов про то как наше железо привязывают всё больше к облакам, подпискам и прочей шляпе

/channel/tech_b0lt_Genona/5163
/channel/tech_b0lt_Genona/5166
/channel/tech_b0lt_Genona/5195
/channel/tech_b0lt_Genona/5197
/channel/tech_b0lt_Genona/5657

Продолжаем

Компания Samsung начала развёртывать обновление для своих холодильников с дисплеями, которое позволит показывать на них рекламу. Это вызвало недовольство пользователей, пишет портал SamMobile.

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

Согласно этому обновлению, холодильник будет показывать рекламу на заставке в темах «Погода», «Цвет» и «Ежедневная доска». Однако на заставке в темах «Искусство» и «Галерея» реклама отображаться не будет. Поэтому, чтобы не видеть рекламу, пользователям придётся использовать эти две темы.

На экранах холодильников Samsung появится реклама; пользователи на это не соглашались
https://habr.com/ru/news/947990/

Оригинал новости
Get ready to see ads on your… Samsung refrigerator
https://www.sammobile.com/news/get-ready-see-ads-samsung-refrigerator/

Тред на Reddit
Samsung putting ads on your fridge
https://www.reddit.com/r/samsung/comments/1nifr1q/samsung_putting_ads_on_your_fridge/

Читать полностью…

Технологический Болт Генона

Ребята, открыл предзаказы на книги, второй партии быть ❗️
Первая разошлась тиражом 1000 экземпляров 💪

Сделать предзаказ можно по ссылке: https://eversecure.ru/shop

Доставка будет за счет получателя и согласовываться отдельно. Как книги будут у меня, опубликую форму заявки на доставку

Максимальный репост 💜

Читать полностью…

Технологический Болт Генона

Oracle уволил 70 сотрудников из команды проекта MySQL
https://www.opennet.ru/opennews/art.shtml?num=63869

По данным издания The Register под сокращение персонала в компании Oracle попали 70 сотрудников, вовлечённых в работу над СУБД MySQL, среди которых несколько опытных разработчиков. Майкл "Монти" Видениус, сооснователь СУБД MySQL и создатель проекта MariaDB, написал, что ему больно слышать о массовых увольнениях в MySQL и, хотя он не удивлён данными действиями Oracle, его всё равно печалит, что до этого дошло. Петр Зайцев, сооснователь компании Percona и бывший руководитель группы оптимизации производительности в компании MySQL AB, выразил опасение, что данный шаг может привести к постепенному сворачиванию Community-редакции MySQL.

Оригинал новости
Monty Widenius 'heartbroken' at the extent of Oracle's MySQL job cuts
https://www.theregister.com/2025/09/11/oracle_slammed_for_mysql_job/

Пост Петра Зайцева
https://www.linkedin.com/posts/peterzaitsev_mysql-opensource-activity-7370819205702664193-5gPl

Читать полностью…

Технологический Болт Генона

Закрываем конференцевый четверг

2-3 октября планирую быть на Питерской "Стачке" (тоже без доклада 🌝).

CFP у них закрыт, программа сформирована, так что могу сказать, куда собираюсь

Секция SafeITConf

- Оценка процессов безопасной разработки программного обеспечения / Нинель Шницарь

- Тыкаю кавычки больше 15 лет / Алексей Морозов (@SooLFaa, привет!)

- Есть ли безопасность в ИИ для IoT? / Николай Фомин

Секция GoRunConf

- Контейнер под капотом или как 4 syscall'а изменили подход к эксплуатации ПО / Олег Сидоренков

- Черная магия unsafe в Go / Владимир Балун

- Магия синхронизации в Go: от ассемблера и атомиков до мьютексов и модели памяти / Игорь Панасюк

- Go deeper или Сравнение C++ и GoLang на самом низком уровне / Михаил Литвинов

Инфраструктура и Архитектура

- Зачем в ИТ нужны эксперты по надежности (и чем они отличаются от SRE) / Вячеслав Кудряшов

- Kubernetes Pro vs Flex: размер имеет значение / Роман Гаян

- Как быстро сделать MVP для SLI/SLO и не наступить на грабли / Дмитрий Синявский

Секция DevPyConf

- Pythorust не серебряная пуля / Юрий Маркин (на эту тему у меня пост есть /channel/tech_b0lt_Genona/5325)

Что получится посетить по факту, пока не понятно, но если хотите пересечься, то пишите в личку (@rusdacent) или комменты

Сайт - https://spb25.nastachku.ru/
Канал - @nastachku2024
ВК - https://vk.com/nastachku

ЗЫ

> Разработка XMPP-чата в Flutter: локальная база, мультимедиа и нестандартные решения

А говорят XMPP умер

Читать полностью…

Технологический Болт Генона

Этот четверг также объявляю конференцевым, потому что поднакопилось всякого чего есть рассказать

Итак!

28 сентября буду на underconf'е (без доклада 🌝)
О нём я писал в начале августа
/channel/tech_b0lt_Genona/5535

Там уже составили программу и начали выкладывать доклады

Что внутри доклада @deadroot (@ld_anarchy) я знаю и представляю, там реально отвал жопы случился, всем рекомендую.

Ну и @dlinyj (@dlinyj_news) будет собственной персоной с докладом. Явление редкое.

Канал - @und3rc0nf
Чат - @und3rc0nf_chat
Сайт - https://underconf.ru/

Читать полностью…

Технологический Болт Генона

Помните в Ubuntu затаскивали uutils на Rust вместо GNU Coreutils?
/channel/tech_b0lt_Genona/5319

Ubuntu’s plan to replace the GNU Core Utils with Rust-based reimplementations is going exactly as poorly as predicted.

Some Rust versions being 17 times slower than the battle tested GNU C / C++ version. And other Rust-based versions simply failing to work on large files.


https://x.com/LundukeJournal/status/1967977345320734823

cksum implementation up to 17x slower than GNU for some large files #8573
https://github.com/uutils/coreutils/issues/8573

sort does not finish for large one line file #8583
https://github.com/uutils/coreutils/issues/8583

ЗЫ Контрибьютор там, конечно интересные вопросы задаёт (см. последний скрин)

По наводке @cosy_code

Читать полностью…

Технологический Болт Генона

Библиотека libxml2 осталась без сопровождающего
https://www.opennet.ru/opennews/art.shtml?num=63886

Ник Велнхофер (Nick Wellnhofer) объявил об уходе с поста сопровождающего библиотеку libxml2. Ник принимал участие в разработке libxml2 с 2016 года, был добавлен в число сопровождающих в 2022 году и с того времени оставался практически единственным активным разработчиком. После ухода Ника проект остался без сопровождения.

Библиотека libxml2 используется в операционных системах и продуктах компаний Apple, Google и Microsoft. Из открытых пакетов, упоминающих libxml2 в числе зависимостях, можно отметить GNOME, Xfce, Mate, Cinnamon, Budgie, LibreOffice, Epiphany, libvirt, BIND, VirtualBox, lldb, Flatpak, Evolution, clang-tools, xsltproc, PostgreSQL, Pacemaker, Apache httpd, Zypper, Scribus.

В июне Ник Велнхофер снял с себя полномочия сопровождающего библиотеку libxslt и отказался от особого отношения к устранению уязвимостей - стал трактовать уязвимости в libxml2 как обычные ошибки, рассматриваемые по мере появления свободного времени. Ник также раскритиковал предъявление компаниями дополнительных требований к сопровождающим-волонтёрам, работающим без компенсации.


> работающим без компенсации

Тут Selectel предлагает libxml2 переписать за компенсацию 🌝

Стоимость — 350 000 ₽

Описание
Библиотека парсера xml, хотя сам формат не очень популярен сейчас, однако много старого ПО завязана на libxml2.

Зачем надо переписать
Уязвимости в libxml ставят под угрозу разнообразное ПО для десктопа и сервера, и даже мобильных устройств. Библиотека активно используется в Android.

Особенности
Перенесены тесты из оригинального libxml2. Функциональность соответствует такой же у libxml2 со сборочными опциями в пакете debian


https://promo.selectel.ru/openfix

А так же там ещё c-ares и xz

Читать полностью…

Технологический Болт Генона

Возрождение легенды 🌝

Язык Perl поднялся с 27 на 10 место в рейтинге Tiobe
https://www.opennet.ru/opennews/art.shtml?num=63878

Причины роста популярности Perl не ясны, никаких значимых событий, связанных с данным языком, кроме очередного ежегодного релиза Perl 5.42, в этом году не происходило. По предположению руководителя TIOBE высокая позиция в рейтинге связана с большим числом книг по Perl, продаваемых в интернет-магазине Amazon (например, число книг по Perl в 4 раза превышает PHP и в 7 раз Rust).

Также упоминается учащение публикации промежуточных релизов Perl 5 и вытеснение Perl 6/Raku из поля зрения (Perl 6 занимает 129 место). Из гипотез также отмечается возвращение интереса к языку Perl из-за его возможностей обработки текста и продвинутых регулярных выражений, что стало востребовано с развитием AI-платформ. Пик популярности Perl пришёлся на март 2003 года, когда данный язык поднялся на 3 место в рейтинге, после чего началось постепенное снижение популярности Perl.

Из других набирающих популярность языков выделяется язык Си, который по сравнению с сентябрём прошлого года поднялся на 3 место, вытеснив на 4 место язык Java. Кроме того, с 11 на 9 место поднялся язык Pascal, с 15 на 13 - R, с 26 на 14 - Ada, с 21 на 17 - Assembler. Первое и второе места продолжают занимать Python и С++. Кроме Java популярность снизилась у языков SQL (с 9 на 11 место), Fortran (10 → 12), PHP (13 → 15), Rust (14 → 18), Matlab (12 → 19) и Kotlin (18 → 20).

Индекс популярности TIOBE строит свои выводы на основе анализа статистики поисковых запросов в таких системах, как Google, Bing, Wikipedia, Amazon, YouTube и Baidu.


Ссылка на рейтинг
https://www.tiobe.com/tiobe-index/

Читать полностью…

Технологический Болт Генона

Пополнение

A Lite Version of Kubernetes in Rust
https://github.com/rk8s-dev/rk8s/

rk8s is a lightweight, Kubernetes-compatible container orchestration system built on top of Youki, implementing the Container Runtime Interface (CRI) with support for three primary workload types: single containers, Kubernetes-style pods, and Docker Compose-style multi-container applications.

Core Components
- RKL (Container Runtime Interface) - The primary runtime component supporting CLI operations and daemon mode
- RKS (Control Plane) - Kubernetes-like control plane combining API server, scheduler, and controller functionality
- Xline - etcd-compatible distributed storage for cluster state
- Networking - CNI-compliant networking with libbridge plugin


Supported Workload Types
- Single Container Workloads
- Kubernetes-Style Pods
- Docker Compose-Style Applications


Описание RKL
https://github.com/rk8s-dev/rk8s/tree/main/project/rkl
+
RKL: A Docker-like Command-line Interface Built in Rust
https://r2cn.dev/blog/rkl-a-docker-like-command-line-interface-built-in-rust

Читать полностью…

Технологический Болт Генона

На днях вышел PostgreSQL 18

https://www.postgresql.org/about/news/postgresql-18-released-3142/

Новость прекрасна сама по себе, тут обсуждать нечего, но вы просто оцените

> PostgreSQL 18 New Features With Examples
> New Features
> 100 страниц

Всем бы такие релизы завозить 🌝

Читать полностью…

Технологический Болт Генона

Четверг, а значит время проектов от подписчиков! 🌝

Тем, кто пропустил, что такое четверговые проекты от подписчиков, можно прочитать тут - /channel/tech_b0lt_Genona/4983

Слово автору @viqxq

---

Всем привет.

Меня зовут Ви, и я делаю свою операционную систему — Amadeus (/channel/amadeus_eco_tg). Я активно пишу про это в своём канале.

Моя ОС — это не очередной дистрибутив Linux. Это попытка сделать нечто принципиально новое, чего раньше никто не делал в рамках проекта одного человека:

* Своя архитектура с нуля. Ядро Amadeus — это не монолит и не микроядро в классическом понимании. Это гибридная система, где все компоненты (включая драйверы) общаются через сверхбыстрый IPC на общей памяти, что сводит к минимуму накладные расходы и переключения контекста. Системные вызовы как устаревшая концепция — отправлены в отставку.

* Бинарная совместимость без компромиссов. Я не хочу заставлять мир переписывать софт под себя. Поэтому в Amadeus можно будет запускать нативные приложения Linux и Windows через механизм «вложенных ядер» (nested kernels). Ядро эмулирует API чужой ОС, но преобразует его в свой высокопроизводительный IPC. Цель — работать быстрее, чем Wine и быстрее нативного Linux в некоторых сценариях.

* Написана полностью на Rust. Это не просто модно. Это даёт беспрецедентную надежность для системы такого уровня. Безопасность памяти на уровне компилятора + полный контроль над железом — вот наш девиз.

* Драйверы? Не проблема. Я разработал инструмент для автоматического портирования драйверов из ядра Linux в нативную среду Amadeus. Это решает главную проблему всех новых ОС — поддержку железа.

* Безопасность и изоляция. Падение любого драйвера или сервиса не уронит всю систему. Они работают в изолированных пространствах пользователя. Никаких SUID-бинарей. Современная модель прав доступа, а не устаревшая UNIX-модель.

* Производительность как религия. Вся архитектура заточена под скорость: zero-copy IPC, акцент на асинхронность, собственные легковесные реализации libc и системных библиотек.

Зачем мне это всё?

* Хочется иметь «правильно» устроенную ОС. Без груза обратной совместимости, с современными решениями под капотом.
* Это вызов. Доказать, что один человек с упорством и правильным подходом может бросить вызов индустриальным гигантам.
* Создать платформу для будущего. Amadeus — это не просто ядро. Это мета-платформа, на основе которой можно будет создавать другие ОС с совместимостью нужной вам экосистемы.

Зачем мне этот анонс?

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

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

Присоединяйтесь! Ваша помощь в портировании софта, тестировании, документации или просто распространении информации бесценна.

Канал с новостями: /channel/amadeus_eco_tg

Давайте вместе строить ОС будущего.

---

Читать полностью…

Технологический Болт Генона

USB HID info-leak exploit for CVE-2025-38494/CVE-2025-38495

Exploit by Andrey Konovalov for an integer underflow bug in the HID subsystem that allows leaking up to 64 KB of kernel memory over USB.

The bug is still not fixed in the Pixel and Ubuntu kernels.

Читать полностью…

Технологический Болт Генона

Увидел в твиттере интересный тред: чувак расписал, как через ChatGPT можно увести всю вашу приватную переписку, имея на руках только ваш email.

Всё дело в новой фиче — поддержке MCP (Model Context Protocol). Теперь ChatGPT может коннектиться к вашему Gmail, Календарю и другим сервисам, чтобы "лучше помогать".

Но помощь работает в обе стороны. Вот как это паботает:

1. Вам на почту кидают календарное приглашение. Его даже не нужно принимать.
2. В описании встречи — джейлбрейк-промпт, который перехватывает управление ChatGPT.
3. Вы просите нейронку "посмотреть расписание на день".
4. ChatGPT читает ваше расписание, видит инструкции мамкиных хакеров и выполняет их: ищет в вашей почте письма с паролями, выписки из банка и тут же пересылает их на левый email.

Пока что OpenAI включает эту функцию только в "режиме разработчика" с ручным подтверждением каждого доступа. Но кто читает эти окна? Все по классике жмакают "Разрешить", "Разрешить", "Разрешить".

Сам еще пока не проверял, вечером гляну, но будьте аккуратны.


Оригинал треда тут.

Читать полностью…

Технологический Болт Генона

Выложены доклады с Open Source Summit Europe 2025 (288 докладов 🫡 )

Плейлист
https://www.youtube.com/playlist?list=PLbzoR-pLrL6qKwLt8A787ggMLHNivOHve

Программа тут
https://osseu2025.sched.com/

Читать полностью…

Технологический Болт Генона

https://anycrap.shop/product/genon-s-technological-bolt

Можно найти буквально любой товар 🌝

Читать полностью…

Технологический Болт Генона

@jerry_ru жжот про бесплатное хранилище данных 😃

Читать полностью…

Технологический Болт Генона

Rust теперь обязателен для сборки Git 3.0 (когда он выйдет пока не понятно)

https://lore.kernel.org/git/6674eb07df107d786b747ccd6dce4555d36d5d2c.camel@physik.fu-berlin.de/T/

Hi,

this small patch series introduces Rust into the core of Git. This patch series is designed as a test balloon, similar to how we introduced test balloons for C99 features in the past. The goal is threefold:

- Give us some time to experiment with Rust and introduce proper build infrastructure.

- Give distributors time to ease into the new toolchain requirements. Introducing Rust is impossible for some platforms and hard for others.

- Announce that Git 3.0 will make Rust a mandatory part of our build infrastructure.
. . .

I'm mostly splitting out the topic of introducing Rust from the larger series that introduce it into xdiff so that we can focus more on the actual process of introducing Rust into Git and less on the potential features that we want to build on top of it.

В сообщении упоминается xdiff, это параллельный процес в разработке git

Upcoming patches will simplify xdiff, while also porting parts of it to Rust. In preparation, add some stubs and setup the Rust build. For now, it is easier to let cargo build rust and have make or meson merely link against the static library that cargo builds. In line with ongoing libification efforts, use multiple crates to allow more modularity on the Rust side. xdiff is the crate that this series will focus on, but we also introduce the interop crate for future patch series.

https://lore.kernel.org/git/pull.2043.git.git.1756496539.gitgitgadget@gmail.com/T/#maf899d074287293cee029a688aa5ab14a5613986

Git has historically been written primarily in C, with some shell and Perl. However, C is not memory safe, which makes it more likely that security vulnerabilities or other bugs will be introduced, and it is also more verbose and less ergonomic than other, more modern languages.

One of the most common modern compiled languages which is easily interoperable with C is Rust. It is popular (the most admired language on the 2024 Stack Overflow Developer Survey), efficient, portable, and robust.

Introduce a document laying out the incremental introduction of Rust to Git and provide a detailed rationale for doing so, including the points above. Propose a design for this approach that addresses the needs of downstreams and distributors, as well as contributors.

https://lore.kernel.org/git/pull.2043.git.git.1756496539.gitgitgadget@gmail.com/T/#mb0f289427a079dd87e67cc7b597e19ed554a0100


В общем https://растпобеда.рф

Читать полностью…

Технологический Болт Генона

Регулярные выражения - это просто

Читать полностью…

Технологический Болт Генона

Продолжаем конференцевый четверг 🌝

26 сентября буду выступать с докладом на NeoQUEST-2025

Вообще, это мероприятие про CTF в первую очередь, но организаторы туда завезли ещё мастер-классы (lockpick и безопасность Wi-Fi ) и доклады.

Доклад называется "Что в образе тебе моём?"

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

Сайт - https://neoquest.ru/

Мем практически тематический
/channel/mem_b0lt_Genona/300

Читать полностью…

Технологический Болт Генона

Четверг, а значит время проектов от подписчиков! 🌝

Тем, кто пропустил, что такое четверговые проекты от подписчиков, можно прочитать тут - /channel/tech_b0lt_Genona/4983

Слово автору @n_i1ya

---

Всем добрый день. Меня зовут Илья и я делаю инструмент (https://github.com/inechakhin/nifuzzer), который позволит улучшить процесс фаззинг-тестирования веб-приложений.

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

Решено было опираться на документацию RFC в данном вопросе по нескольким причинам. Во-первых, никто не застрахован от совершения ошибки. Таким образом, возможна ситуация, что в RFC, которая уже была внедрена в проект, находится критическая ошибка, которую необходимо адаптировать. Поэтому полезно получить информацию об ошибках в RFC и посмотреть, как были исправлены определенные вещи, потому что некоторые технологии могут работать в первых версиях реальных RFC. Во-вторых, многие RFC, особенно описывающие какую-нибудь структуру, содержат описание в виде грамматики ABNF. Это позволяет обратить внимание на необязательные параметры и расширения, так как чем реже они используются, тем больше вероятность того, что они плохо реализованы.

По выше описанным причинам был реализован инструмент который при помощи всех правил ABNF грамматики для данной структуры из необходимого RFC, будет генерировать соответствующие базовые (стартовые) данные, которые будут использованы фаззером. Так как обычно необходимо генерировать сложно структурированные данные, то необходимо добавить возможность отслеживать отдельные части генерируемого значения. Во-первых, это поможет пользователю лучше анализировать и понимать те данные, которые он генерирует, так как видит его составные части, соответствующие стандарту. Во-вторых, это может использоваться, чтобы проверять соответствие стандарту различных парсеров.

Инструмент был протестирован на библиотеках для валидации и парсинга URL адресов таких языков программирования как Python, Java, Go, JavaScript, PHP, Perl, Ruby. Результаты представлены на прикрепленных рисунках. Можно заметить, что генерируется валидная полезная нагрузка, а это уменьшает шанс, что эти сгенерированные инструментом значения будут бесполезные, то есть даже не дойдут до основных функций ПО, не пройдя проверку валидации. Рассмотрев далее библиотеки, используемые в парсинге, видно, что генерируются разнообразные входные данные, которые позволяют находить множество различных мест в программе, вызывающие интересное поведение.

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

---

Читать полностью…

Технологический Болт Генона

Наконец-та!

Hosting a WebSite on a Disposable Vape
https://bogdanthegeek.github.io/blog/projects/vapeserver/

Сам сайт, который хостится - http://ewaste.fka.wtf/

"Железо"

- 24MHz Coretex M0+
- 24KiB of Flash Storage
- 3KiB of Static RAM
- a few peripherals, none of which we will use.


> This may not come as a surprise, but Linux (and with some tweaking even macOS) supports SLIP. The slattach utility can make any /dev/tty* send and receive IP packets. All we have to do is put the data down the wire in the right format and provide a virtual tty. This is actually easier than you might imagine, pyOCD can forward all semihosting though a telnet port. Then, we use socat to link that port to a virtual tty:

pyocd gdb -S -O semihost_console_type=telnet -T $(PORT) $(PYOCDFLAGS) &
socat PTY,link=$(TTY),raw,echo=0 TCP:localhost:$(PORT),nodelay &
sudo slattach -L -p slip -s 115200 $(TTY) &
sudo ip addr add 192.168.190.1 peer 192.168.190.2/24 dev sl0
sudo ip link set mtu 1500 up dev sl0


Для IP-стека был взят uIP - https://github.com/adamdunkels/uip (который был написан сразу хорошо и поэтому 12 лет не обновлялся 🌝)

Так же был реализован/портирован SLIP (Serial Line Internet Protocol) - старый протокол, который использовался для подключения через модемы

> If you are older than me, you might remember a time before Wi-Fi and Ethernet, the dark ages, when you had to use dial-up modems to get online. You might also know that the ghosts of those modems still linger all around us. Almost all USB serial devices actually emulate those modems: a 56k modem is just 57600 baud serial device. Data between some of these modems was transmitted using a protocol called SLIP (Serial Line Internet Protocol)

Сначала работало всё медленно, но после оптимизаций удалось достигнуть пинга в 20 мс, а загрузки страницы за 160 мс.

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

Memory region         Used Size  Region Size  %age Used
FLASH: 5116 B 24 KB 20.82%
RAM: 1380 B 3 KB 44.92%


> As you may have noticed, we have just under 20kiB (80%) of storage space. That may not be enough to ship all of React, but as you can see, it’s more than enough to host this entire blog post.

Исходный код проекта
https://github.com/BogdanTheGeek/semihost-ip

Читать полностью…

Технологический Болт Генона

На выходных наконец-то добрался посмотреть полностью доклады с дня безопасной разработки ПО АРПП «Отечественный софт» (в онлайне удалось зацепить только пару-тройку выступлений)

Кому интересна запись всех докладов, то она доступна тут
https://disk.yandex.ru/i/6P-pyq_EWTQRBA

Программа тут
https://arppsoft.ru/ie/19556/

В целом всё мероприятие было посвящено РБПО и регуляторике, а так же обсуждению вещей на стыке.

Но пост родился из доклада Алексея Смирнова из CodeScoring - "О влиянии применения ассистентов программиста на процессы безопасной разработки"

Я бы в называл этот доклад больше "визионерским" на тему того, куда мы движемся с возрастающим участием в разработке различных AI-агентов, ассистентов и т.д. с точки зрения ИБ и что с этим делать.

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

ЗЫ Звук прыгает немного, но он и в трансляции был такой

Читать полностью…

Технологический Болт Генона

Я, короче, решил сам проверить, как эти uutils работают в качестве замены системных утилит.

Собрал, перезагрузился, и, мааама-дорогая, у меня в 2 раза больше процессов, чем обычно.

Отлаживать особо не пришлось, виновника обнаружил самый простой pstree:

# pstree
...
... bash---env---sleep
...


Да, у кучи моих программ обнаружился очень странный parent - env.

env - максимально примитивная тулза, она выставляет заданные env переменные, и делает exec в программу, которая ей указана в самом конце cmd line.

(да, она обрабатывает те самые шебанги #!/usr/bin/env python3)

Только в случае rust uutils:

* она или делает fork + wait

* или, еще хуже, еще и перегоняет данные через pipe между child и parent, как это делает python subprocess, например

Школьники такие школьники - тесты проходить научились, а суть понимать - нет.

Я, от греха подальше, эту хтонь выключил - https://github.com/pg83/ix/commit/6b1c02c2cde2f3e229a33772ae04b2bf0e995081

Читать полностью…
Subscribe to a channel