2 часа назад
Исследователи связали майскую атаку на RubyGems с агентами OpenAI

11 сентября исследователи Nightingale Collective опубликовали разбор RubyHack и связали майскую кампанию в RubyGems с внутренними агентами OpenAI. По их версии, скрипты внутри пакетов запускали исходник в инфраструктуре RubyDoc, собирали открытые данные с сайтов британских муниципалитетов и публиковали результаты обратно в реестр. В нескольких образцах исследователи также обнаружили попытки получить чужие программный интерфейс-ключи RubyGems.
Команда RubyGems не смогла независимо установить, кем именно были созданы пакеты, и не нашла доказательств успешного получения чужих ключей. Во время майской кампании она отозвала вредоносные пакеты и на четыре дня остановила регистрацию новых пользователей.
Одной из точек входа стала обычная сборка документации. В пакет добавляли .yardopts – файл параметров генератора YARD – с указанием скачать Ruby-скрипт. Когда для пакета запрашивали документацию на RubyDoc, сборщик обрабатывал этот файл и запускал вложенный исходник. Такое поведение соответствует механике самого YARD: параметр --load загружает указанный Ruby-файл перед выполнением команды.
Запущенный сценарий обращался к муниципальным сайтам, сохранял ответы, собирал из них свежий .gem-архив и отправлял его в RubyGems со встроенным ключом. В результате реестр использовался как канал передачи и хранения собранных данных. Установка такого пакета множеством разработчиков для работы этой схемы не требовалась: в достаточной степени было исполнения кода в сервисе сборки документации.
Отдельные пакеты обращались к старому endpoint выдачи api-ключей. В нём действовала сбой кэширования: при определённых условиях CDN мог сохранить ответ с legacy-ключом и до часа отдавать его следующим запросам на том же узле. RubyGems исправил проблему 9 июля, очистил кэш, отозвал legacy-ключи и затем отключил старый endpoint.
По данным базы CodeScoring на 14 сентября, 253 пакета, упомянутые в RubyHack, отмечены как вредоносные. Известные опасные версии можно остановить при загрузке. Для этого загрузку пакетов из RubyGems нужно направить через сервис OSA Proxy, а в политике выбрать условие «Зависимость опасна», этап proxy, признаки «Активно» и «Блокер».
Командам, которые автоматически обрабатывают сторонние пакеты Ruby, стоит проверить ещё два уровня. Сборщики документации лучше запускать без ключей публикации и с ограниченным сетевым доступом, а .yardopts и загружаемые им скрипты проверять до исполнения. Владельцам RubyGems-аккаунтов, использовавшим legacy-ключи, следует просмотреть историю публикаций и состав мейнтейнеров. Добавленный доступ мог сохраниться даже после отзыва ключа.
Читают сейчас

2 часа назад
DNS теперь маркетплейс — селлерам обещают комиссию в 25% и хранить товары на складах компании
На сайте DNS появился раздел для сторонних продавцов — «Селлерам». В контексте этого проекта сторонним поставщикам предлагается продавать товары через DNS. Пока инициатива работает в закрытом бета‑тес

2 часа назад
В OpenIDE появилась сопровождение C/C++ благодаря независимому разработчику
В маркетплейсе OpenIDE появился плагин C/C++ Support, для работы с C и C++. Его создал текст независимый разработчик из сообщества. Поддержку C++ пользователи просили давно, и автор решил не ждать, а

3 часа назад
опубликовал полноценное программа для ПК
— платформа для работы с сотнями ИИ-моделей. В одном интерфейсе доступны ChatGPT, Claude, Gemini, Grok, DeepSeek, генераторы изображений, видео и другие модели. Для использования не нужно оформлять от

4 часа назад
От рабочего опыта к публичной экспертизе в эпоху AI
У многих за плечами кейсы, эксперименты, ошибки и найденные решения — но публично о них почти никто не рассказывает. 17 сентября в 18:30 МСК Катя Ярадайкина, DevRel Garage Eight, проведёт вебинар «От

4 часа назад
Google выкатила Gemini 3.8 Live и версию с рассуждениями
15 сентября Google представила две нативные speech-to-speech модели, Gemini 3.8 Live и Gemini 3.8 Live Extended Thinking. Первая заточена под масштаб и цену, вторая — под многошаговые задачи с рассужд