Технологический Болт Генона
7.54K subscribers
2.69K photos
295 videos
213 files
3.54K links
До Декарта никогда не существовало рационализма.

Музыкальный Болт Генона: @mus_b0lt_Genona
Мемный Болт Генона: @mem_b0lt_Genona
Кадровый Болт Генона @kadr_b0lt_Genona

Обратная связь: @rusdacent
Download Telegram
Forwarded from commit -m "better"
https://www.phoronix.com/news/Rust-Debian-2025

"around 8% of the source packages in Debian Sid are building against at least one librust-* package. That 8% figure for Debian source packages building against at least one Rust library package is around double of what it is for Debian 12 "Bookworm". Quite a significant uptake over the past few years and it's only continuing to grow with more open-source projects introducing varying levels of Rust integration"

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

У меня против Rust собирается ровно 0 от базовой системы, потому что librsvg для загрузки иконок в gtk я переписал на кастомный #svg loader over #lunasvg/#skia/#svgren (по выбору), и убрал все эти опциональные зависимости.

Ну просто потому, что Rust не является #bootstrap абельным (я не могу собрать его из исходников, не имея под рукой готовый компилятор Rust, подробности в моей эпопее с #mrustc), а это зашквар.
😁63👏2💊2🤡1😐1
Пока вы спите там Let's Encrypt поплохело

https://letsencrypt.status.io/

Incident Status
Service Disruption

Components
acme-v02.api.letsencrypt.org (Production), {e,r}[1-14].o.lencr.org, acme-staging-v02.api.letsencrypt.org (Staging), stg-{e,r}[1-14].o.lencr.org
🫡23😭91
Принятие законопроекта, запрещающего, в частности, поиск экстремистских материалов в интернете, является альтернативой полной блокировке в России зарубежных платформ, объяснил в Госдуме глава Минцифры Максут Шадаев

Спасибо
😁48🤡26🫡25💊8🤬3👍1🔥1🌭1😐1
Forwarded from LD_ANARCHY
Пока делал один ресерч был прикольный случай -- меня SSTI в #laravel , но я в контейнере и файлы создавать не могу, суматохи гора и данные надо получить стопудово, а у таргета еще и WAF для бедных (сами, наверное на регулярках напилили).

И казалось -- что может пойти не так, если чуваки затащат в контейнер mysql? 🤣

{{pasSthru("mysql\x20-uprod\x20-pP4ss\x20-h127.0.0.1\x20-P3311\x20prod\x20-e\x20'select\x20*\x20from\x20logs'")}}


P.S. Кроме /x20 для байпаса пробелов еще использовал $IFS рядом 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱12👍3
Это отличная новость

Компания Google представила проект OSS Rebuild, предназначенный для выявления скрытых изменений в готовых пакетах, публикуемых в репозиториях. Работа OSS Rebuild основана на концепции воспроизводимых сборок и сводится к проверке соответствия размещённого в репозитории пакета с пакетом полученным на основе пересборки из эталонного исходного кода, соответствующего заявленной версии пакета.

В настоящее время в OSS Rebuild реализована поддержка верификации пакетов из репозиториев NPM (JavaScript/TypeScript), PyPI (Python) и
Crates.io (Rust). В будущем число поддерживаемых репозиториев планируют расширить. На практике инструментарий позволяет выявлять варианты атаки класса "supply chain", в ходе которых после компрометации учётных записей сопровождающих или диверсии внутри проекта в репозитории публикуется вредоносное обновление. При этом код в исходном репозитории основного проекта остаётся корректным, а вредоносные изменения вносятся только в готовые пакеты.

Система по возможности автоматически формирует сценарий для воспроизводимой сборки выбранного пакета, используя эвристику и подбирая параметры, позволяющие добиться идентичности артефактов, поставляемых в пакете. Если автоматически не удаётся воспроизвести размещённый в репозитории пакет, возможно ручное добавление сборочной спецификации. После того как удалось воспроизвести пакет, инструментарий OSS Rebuild сохраняет описание процесса сборки для последующей проверки новых версий пакета. Дополнительно публикуется информация для верификации с использованием фреймворка SLSA.

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


Google представил проект OSS Rebuild для выявления скрытых изменений в пакетах
https://www.opennet.ru/opennews/art.shtml?num=63613

Репа
https://github.com/google/oss-rebuild

Оригинал
Introducing OSS Rebuild: Open Source, Rebuilt to Last
https://security.googleblog.com/2025/07/introducing-oss-rebuild-open-source.html
🔥386👍1
Forwarded from 𝚔𝚟𝚊𝚙𝚜
К слову о дичи, я тут давеча с ресурсами и реквестами разбирался в одном кластере. Написал целую тулзу kubectl ps, это эдакий kubectl top но на стеройдах, умеет реквесты/лимиты показывать и по всякому их сравнивать с реальным потреблением.

Возможно кому-то будет полезно
https://github.com/aenix-io/kubectl-ps

Синтаксис позабористее чем у ps aux получился, в общем любой фидбек приветствуется

https://github.com/aenix-io/kubectl-ps
🔥30😁1
Под этот пост https://t.iss.one/mem_b0lt_Genona/290 пришёл подписчик со странным, но интересным

> Раз речь зашла, кто-нибудь поднимал selinux-sandbox на arch? Че за приколы там с политиками? Какого болта их нет?

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

> У меня арч на личном ноутбуке, решил что пора забуриться в MAC
Считай, из любопытства ноги себе отгрызаю
Ну и хотел песочницу для запуска LLM-генерированного кода, чтобы оно мне патч бармина не спрятало никуда, но это и без селинукса решаемо


Есть у кого опыт, может кто-то что-то подсказать? 🌝
💊26
https://t.iss.one/doomgrad/888

Спасибо подписчику за наводку
😁69🔥9👍6👏2🤔1
Картинки не открываем (вы уже открыли, вас похекали)

Linux-вредонос Koske прячется в картинках с милыми пандами
https://xakep.ru/2025/07/25/koske/

Аналитики из компании AquaSec обнаружили новое вредоносное ПО для Linux. Малварь получила название Koske и предполагается, что она была разработана с помощью ИИ. Для внедрения непосредственно в память вредонос использует JPEG-изображения с пандами.

Исследователи описывают Koske как «сложную Linux-угрозу», адаптивное поведение которой предполагает, что малварь разрабатывается с использованием больших языковых моделей (LLM) или фреймворков автоматизации.

Основной целью Koske является развертывание оптимизированных для CPU и GPU майнеров, которые используют вычислительные ресурсы хоста для добычи различных криптовалют.

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

Первоначальный доступ злоумышленники получают, эксплуатируя неправильные конфигурации JupyterLab, благодаря которым возможно выполнение команд. После этого атакующие загружают в систему жертвы два изображения с пандами в формате .JPEG, которые хранятся на таких легитимных сервисах, как OVH images, freeimage и postimage. В этих картинках и скрывается вредоносная полезная нагрузка.

Изображения панд содержат не только саму картинку, с корректными для формата JPEG заголовками, но также вредоносные шелл-скрипты и код, написанный на C, что позволяет интерпретировать оба формата отдельно. То есть, открыв такой файл, пользователь увидит лишь милую панду, а вот интерпретатор скриптов выполнит код, добавленный в конец файла.

Также скрипт обеспечивает устойчивость подключения и обходит сетевые ограничения: он перезаписывает /etc/resolv.conf, чтобы использовать DNS от Cloudflare и Google, защищает этот файл с помощью chattr +i. Также малварь сбрасывает правила iptables, очищает системные переменные, связанные с прокси, и запускает кастомный модуль для бутфорса рабочих прокси с использованием curl, wget и прямых TCP-запросов.

Именно из-за этой адаптивности и поведения исследователи предполагают, что малварь могла разрабатываться либо с помощью LLM, либо с применением платформ для автоматизации.

Перед развертыванием на машине жертвы малварь оценивает возможности хоста (CPU и GPU), чтобы выбрать наиболее подходящий майнер: Koske поддерживает добычу 18 разных криптовалют, включая Monero, Ravencoin, Zano, Nexa и Tari.


Оригинал
AI-Generated Malware in Panda Image Hides Persistent Linux Threat
https://www.aquasec.com/blog/ai-generated-malware-in-panda-image-hides-persistent-linux-threat/
😁12😱7🔥6👍3🌭21🖕1
Forwarded from ITTales :(){ :|:& };:
Вот вам небольшая пятничная история. Что делать когда Talos Linux сдох, и вот непонятно из-за чего.
Kubernetes API недоступен (не запускается CRI), у вас нет ничего, кроме доступа к Talos API.

Казалось бы всё. SSH нет, доступа на запись тоже нет. Только ребут или как предлагают сами разработчики Talos Linux:
<irony>нода сдохла, выкинь и заведи новую</irony>

Но не всё так просто, а как же отдебажить что там произошло. Собрать информацию, подготовить баг-репорт, отослать разработчикам containerd и Kubernetes.

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

Здесь стоит немного уточнить что в логике Talos заложено запуск двух containerd.

Один - системный, он запускает контейнеры с талосовые демонами и экстеншенами, а так же etcd и kubelet.
Второй - прикладной, он запускает всё что в кубе, в том числе статик поды.

Сделано это намерено, чтобы кубовый ворклоад не мог заафектить систему. Т.к. чаще всего проблемы возникают именно со вторым ввиду активного пуллинга имаджей, а первый containerd остаётся живым. Но как же запустить контейнер для дебага без работающего Kubernetes API? Ответ - никак. Придётся хитрить.

Talos позволяет указать кастомные image для запуска kubelet и etcd. Этим мы и воспользуемся.

Для начала соберём кастомный образ kublet. Добаляем busybox в имадж и слегка модифицируем код:
https://github.com/kvaps/kubernetes/commit/3e45ecd4a2718bc50f2d951c344b4c439f79e3ae

Собираем Dockerfile, пушим его куда-то и заменяем путь до образа в конфиге Talos.

Вуаля, у нас появляется доступ к системе:

echo 'uname -r' | nc 192.168.1.21 12345
6.12.18-talos


kubelet работает с полными административными правами, поэтому его привилегий должно быть достаточно для дебага всего что необходимо.
🔥195😁4👍2🙉2🤔1😢1🤡1🌚1
Представлены правила для AI-ассистентов, применяемых при разработке ядра Linux
https://www.opennet.ru/opennews/art.shtml?num=63631

Определены следующие ключевые принципы для AI:

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

Документация, которую должен учитывать AI-ассистент:

- Руководство, как стать разработчиком ядра.
- Информация о процессе разработки ядра.
- Руководство по передаче своего кода в ядро.
- Чек-лист проверок перед отправкой кода в ядро.
- Требования к стилю и оформлению кода (использование табуляции для выравнивания, не больше 80 символов в строке, отдельные правила форматирования функций и условных выражений).
- Требования к языкам программирования и стандартам.
- Запрет использования устаревших программных интерфейсов и возможностей.
- Правила отправки патчей для включения в ядро.
- Настройки почтового клиента для отправки патчей.
- Правила приёма патчей.
- Правила лицензирования кода для ядра (лицензия GPL-2.0 c исключениями для системных вызовов, наличие SPDX-идентификаторов лицензии в каждом файле).
- Инструкция по добавлению нового системного вызова.
- Правила для отправки патчей к стабильным веткам ядра.
- Обработка проблем с безопасностью.
- Действия при выявлении регрессий.
- Руководство по взаимодействию с сопровождающими.
- Руководства, специфичные для подсистем.

Для выделения изменений, подготовленных с использованием AI, к коммиту предписывается прикреплять тег "Co-developed-by: $AI_NAME $AI_MODEL $AI_VERSION". Например: "Co-developed-by: Claude claude-3-opus-20240229", "Co-developed-by: GitHub-Copilot GPT-4 v1.0.0" и "Co-developed-by: Cursor gpt-4-turbo-2024-04-09". При этом AI-ассистент не должен добавлять себя в тег "Signed-off-by".

Вообще, судя по списку, проще отказаться от использования AI-ассистентов, чем контролировать соблюдение ими всех требований 🌝

Оригиналы сообщений
https://lore.kernel.org/lkml/[email protected]/
https://lore.kernel.org/lkml/[email protected]/
https://lore.kernel.org/lkml/[email protected]/
😁24👍14🤣2💊2👏1🤡1
Я это мнение слышал и читал много раз: быть таким же успешным как Red Hat с open source может только Red Hat.

Текста в посте изначальном сильно больше, я постарался оставить у себя основные выдержки.

Giant value creation, very little value capture. That is the Red Hat model. The first company to successfully commercialize open source software at scale, Red Hat managed to make a billion-dollar business out of selling vetted open source updates and providing multi-product support, services, and training. At first, the model seemed like it could be the blueprint for commercial open source software. The only problem is no other company has been able to replicate this model successfully.

Low rake

he company generates way more value than it captures and has a low rake out of necessity—none of the software it creates is proprietary. If Red Hat tried to force people to pay too much, everyone would switch to the freely distributed versions (AlmaLinux, Rocky Linux, etc.).

A complicated model under constant threat

Red Hat’s 30+ products span a huge range of categories, from platforms to application services to cloud computing, data services, and automation. According to Gartner, the company competes with nearly every major technology company. It’s under constant threat of being disrupted or undermined by other open source providers.

The open core model

Most open-source-based startups today are focused on a single product. These companies generate higher rake by adopting an open core model: making some of the codebase proprietary but source-available. Many companies have started with a similar updates and services model, but the open source companies that have shown exponential growth ultimately went public with an open core model.

The Red Hat model won’t be repeated. In reality, open core is the most economically viable model for commercializing open source software. It’s poised to replace proprietary software as the default and is the path for open source projects to develop into sustainable businesses.

Support and services models don’t achieve hypergrowth

Developing features under a support model gives you no entitlement to the technology. And, if you’re good at what you do, you’ll eventually put yourself out of a job since customers can use it without help.

The Red Hat model only worked for Red Hat
https://www.opencoreventures.com/blog/the-red-hat-model-only-worked-for-red-hat
👍9🔥1
Большой пост от Slack про то, как они Stateful-приложения катят в продовый Kubernetes

Advanced Rollout Techniques: Custom Strategies for Stateful Apps in Kubernetes
https://slack.engineering/kube-stateful-rollouts/

Инфраструктура

At Slack, engineers deploy their applications to Kubernetes by using our internal Bedrock tooling. As of this writing, Slack has over 200 Kubernetes clusters, over 50 stateless services (Deployments) and nearly 100 stateful services (StatefulSets). The operator is deployed to each cluster, which lets us control who can deploy where.

Из интересного ещё отмечу, как в Slack осознанно понимают проблему с их подходом, но получается, что в их случае проблемы как таковой нет

Version leak

Some of you might have picked up on a not-so-subtle detail related to the (ab-)use of the OnDelete strategy for StatefulSets: what we internally call the version leak issue. When a user decides to do a percent-based rollout, or pause an existing rollout, the StatefulSet is left with some Pods running the new version and some Pods running the previous version. But if a Pod running the previous version gets terminated for any other reason than being rolled out by the operator, it’ll get replaced by a Pod running the new version. Since we routinely terminate nodes for a number of reasons such as scaling clusters, rotating nodes for compliance as well as chaos engineering, a stopped rollout will, over time, tend to converge towards being fully rolled out. Fortunately, this is a well-understood limitation and Slack engineering teams deploy their services out to 100% in a timely manner before the version leak problem would arise.
👍10