Habr.com

Syndicate content Хабр
Все публикации подряд на Хабре
Updated: 21 min 57 sec ago

Взлом GitHub-репозиториев Grafana Labs: как атака на цепочку поставок npm привела к краже кодовой базы и вымогательству

Wed, 05/20/2026 - 12:32

Часть I: Первопричина - атака Mini Shai-Hulud на экосистему TanStack

Цепочка поставок как вектор атаки

11 мая 2026 года, в промежутке с 19:20 до 19:26 UTC, произошло одно из наиболее технически изощрённых событий в истории атак на цепочку поставок npm. Группировка TeamPCP опубликовала 84 вредоносные версии пакетов в рамках 42 пакетов из пространства имён @tanstack/* - и всё это за шесть минут.

Кампания получила название Mini Shai-Hulud - отсылка к гигантским песчаным червям из вселенной «Дюны» Фрэнка Герберта. Это не первая волна активности TeamPCP: до этого они скомпрометировали сканер Trivy от Aqua Security в марте 2026-го и npm-пакет Bitwarden CLI в апреле 2026-го. Каждая следующая волна технически сложнее предыдущей.

Как работала атака: три уязвимости в одной цепочке

Атака объединила три уязвимости, каждая из которых по отдельности была бы недостаточна. Злоумышленник создал форк репозитория TanStack/router, открыл pull request, который запустил workflow с триггером pull_request_target, и отравил кэш GitHub Actions через границу доверия fork↔base. Когда легитимный workflow сработал, отравленный кэш был восстановлен, а вредоносный код извлёк OIDC-токен прямо из памяти процесса runner'а.

Ключевой момент: злоумышленники не крали статические npm-токены. Вместо этого они извлекали runtime OIDC-токены напрямую из памяти процесса runner'а, что позволило им аутентифицироваться легитимным образом через trusted publisher bindings и публиковать скомпрометированные обновления в npm-реестр.

Масштаб заражения

Читать далее

Более 10 лет Comprehensible Input: The Good, the Bad and the Ugly

Wed, 05/20/2026 - 12:31

Уже более 10 лет английский является моим основным каналом для получения информации. Все эти годы я очень много читал, включая художественную литературу и техническую документацию, но ещё больше слушал — аудиокниги и YouTube. Я уверен, что в сумме это не менее 5 000 часов.

Как это повлияло на мою способность говорить? В сухом остатке — никак. Если бы мне пришлось начинать сейчас сначала, то я бы безусловно выбрал другой путь. Под катом рассказываю о реальных плюсах и минусах метода Comprehensible Input, почему толерантность к неопределенности мешает говорить правильно, и как перевести язык из пассивного знания в процедурный навык.

Узнать, почему понимание не ведет к говоре

Про BDUI грабли на примере простого опросника, который не так прост, как кажется

Wed, 05/20/2026 - 12:31

Однажды у нас появилась задача, которая (на первый взгляд) выглядела очень простой: сделать опросник в приложении. На макетах всего лишь пара экранов, несколько вопросов, кнопка «Далее». Всё красиво, не сухо, с картинками у вариантов ответа и нормальной подачей, а не в формате «Заполните обязательные поля»

Судя по макету всё просто: сверстать флоу и отправить все ответы одним POST в конце. Самый короткий путь — зашить вопросы, переходы и тексты на клиенте. Делов на пару дней — сделал и забыл. 

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

Каждая правка текста, картинки, порядка вопросов или маршрута снова уезжает в релизный цикл web, iOS и Android. А синхронизировать такие изменения между тремя платформами намного сложнее, чем кажется на старте.

По некоторым косвенным признакам мы понимали, что с этой анкетой всё будет именно так, поэтому в качестве альтернативы мы выбрали путь backend-driven UI, когда клиент показывает поддерживаемые типы экранов, а backend управляет сценарием: текстами, изображениями, порядком шагов, переходами и состоянием прохождения.

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

Читать далее

Станьте спикером INFOSTART TECH EVENT 2026

Wed, 05/20/2026 - 12:26

8–10 октября 2026 года в Санкт-Петербурге пройдет INFOSTART TECH EVENT — техническая конференция для 1С-сообщества.

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

Прием заявок на доклады уже открыт....

Читать далее

Невозможный LED: запитать изолятор

Wed, 05/20/2026 - 12:20

Физика, будучи точной наукой, с огромной неохотой позволяет манипулировать собственными законами. К примеру, изоляторы — это вещества или материалы, которые не проводят (или практически не проводят) электрический ток, что делает их антиподами проводников. Однако данное утверждение не высечено в камне, если подойти к нему креативно. Ученые из Кембриджского университета (Великобритания) создали новый способ питания изоляторов. Что позволило ученым нарушить порядок вещей в физике, какими свойствами обладают новый проводящие изоляторы, и где они могут быть использованы? Ответы на эти вопросы мы найдем в докладе ученых.

Читать далее

Как мы строим клиентские стенды AI-ассистента: per-tenant overlay без форка кодовой базы

Wed, 05/20/2026 - 12:17

Когда мы начали встраивать AI-агента в BPM-платформу, перед нами встала знакомая enterprise-задача: десятки клиентов, у каждого своя онтология, словарь, роли и ограничения безопасности. В одной компании «заявка на покупку» — это «реестр заявок», в другой — «карточкой закупки». Один клиент работает на изолированном контуре с локальной моделью, другой не даёт ассистенту доступ к почте и репозиториям. 

Традиционный ответ — форк репозитория под каждого клиента — при масштабировании превращается в ад поддержки: багфиксы не попадают автоматически, стоимость растёт экспоненциально, качество падает. Мы решили эту проблему иначе: per-tenant overlay позволяет кастомизировать поведение агента без изменения кода.

Читать далее

Что читают разработчики: Анализ данных корпоративных библиотек

Wed, 05/20/2026 - 12:16

Привет, Хабр!

На связи команда Alpina Digital — мы развиваем корпоративную библиотеку для бизнеса, через которую компании обучают сотрудников и управляют внутренним knowledge-sharing . Через наши системы проходят сотни тысяч сессий чтения от сотрудников крупных компаний: разработчики, менеджеры, продакты, дизайнеры.

В какой-то момент мы поняли, что сидим на интересных данных. Решили покопаться и посмотреть, что реально читают люди из IT — не что рекомендуют списки «10 must-read книг», а что открывают, когда никто не смотрит. 

Статья будет интересна тем, кто отвечает за обучение и развитие сотрудников в IT-компаниях, HR- и T&D-специалистам, тимлидам и руководителям инженерных команд, а также самим разработчикам, которым любопытно сравнить свои читательские привычки с коллегами по индустрии и понять, какие книги помогают расти в профессии.

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

Читать далее

[Перевод] Проектируем с нуля калькулятор на FPGA, части 1 и 2

Wed, 05/20/2026 - 12:14

Идея этого проекта пришла ко мне в феврале 2021 года, когда в Остине (штат Техас) произошёл сбой энергосистемы. К сожалению, нам надолго запомнилось то, как правительство справлялось с ситуацией. Когда единственным источником тепла и света остался только газовый камин, а единственным окном в мир — слабое телефонное Интернет-соединение, у меня было много времени поразмыслить о том, что бы новое и интересное мне хотелось разработать. Я взял калькулятор HP-41CV и начал нажимать на кнопки. Как обычно, ощущения от этого были самыми приятными. И мне захотелось самому создать нечто подобное!

В начальной школе мне представилась возможность поиграть с HP-41CV. Я наблюдал, как калькулятор загружает программу с магнитной ленты и запускает её. Жужжание считывателя карт и тонкая магнитная лента, втягиваемая в устройство с одной стороны и выходящая с другой, внезапно изменяли поведение калькулятора, что произвело на меня очень сильное впечатление. Я и не подозревал, что оно повлияет на всю мою жизнь. Спустя несколько лет у меня появился Sinclair ZX81, потом ZX Spectrum, на котором я при помощи дизассемблера HiSoft Devpac MONS взламывал разные игры. Эти два устройства (калькулятор HP и микрокомпьютеры Sinclair) подтолкнули меня к разработке, программному обеспечению и исследованию внутренностей разных машин. Во многом я стал разработчиком именно благодаря этому.

Когда-то я изучал сам чип Z80, воссоздав его в виде A-Z80 и написав визуальный инструмент Z80 Explorer, отображающий его список связей. В каком-то смысле это ощущалось как закрытие темы одержимости Sinclair. Проект калькулятора ощущался как закрытие темы HP. Это не клон, не эмуляция, а реализация с нуля на основе тех же принципов. Мне хотелось изнутри разобраться в том, почему эти машины работали именно так.

Как работает научный калькулятор? Не в общих чертах, а в подробностях. Как он хранит числа? Какой алгоритм вычисляет sin(x)? Как функционирует его очень простой CPU?

В серии моих статей мы получим ответы на эти вопросы: в конечном итоге мы получим полностью работающий научный калькулятор, спроектированный и изготовленный с нуля, на собственном CPU, созданном на FPGA, с написанным вручную микрокодом, эталонными реализациями на C++ и физическим «железом», которое лежит у меня на столе и может вычислять точные ответы. И всё это в опенсорсе: вы можете увидеть это и попробовать самостоятельно.

Насколько я понимаю, этот проект уникален: мне неизвестен ни один другой научный калькулятор (с тем же уровнем функциональности), реализованный на FPGA с собственным CPU и оригинальным рукописным ПО для его работы.

Читать далее

Создаем ИИ-модель для генерации музыки на базе Lakh MIDI Dataset

Wed, 05/20/2026 - 12:09

Работать с сырым аудио в машинном обучении вычислительно тяжело и сложно. Но что, если свести музыку к тексту и применить к ней классические NLP-подходы?

В этой статье мы с нуля напишем рекуррентную нейросеть (LSTM) на PyTorch, которая научится улавливать музыкальные паттерны и генерировать собственные мелодии. Мы не будем использовать готовые сложные фреймворки вроде MusicGen. Вместо этого разберем весь процесс под капотом: возьмем очищенный датасет Lakh MIDI, напишем парсер нот с помощью music21, соберем датасет через скользящее окно и добавим модели «креативности» с помощью температуры сэмплинга.

Читать далее

Почему большие сети теряют деньги на разрыве данных и реальности. Объединяем картины мира

Wed, 05/20/2026 - 12:05

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

Читать далее

Создаем I2C Master Controller на Verilog. Burst‑транзакции и дисплей SSD1306

Wed, 05/20/2026 - 12:05

Продолжим совершенствование нашего I2C‑контроллера и расширение спектра применимости. В этот раз сделаем возможность burst‑транзакций и выведем картинку SSD1306. Для этого необходимо детально разобрать механизм функционирования OLED‑дисплея SSD1306 и сделать аппаратный контроллер с burst‑передачей по I2C, и в качестве примера сделать генерацию визуализацию 3D‑куба и текста. Получился ОЧЕНЬ объемный материал с объяснением всех механик примененных для решения данной задачи. И вся логика — сугубо в железе, без процессора, без микрокода и чисто в ПЛИС.

Всем кто интересуется кодингом под Verilog — добро пожаловать под кат!

Читать далее

Цифровизация с прибылью: 4 типа ИТ‑проектов в промышленности, где ИИ окупается менее чем за год

Wed, 05/20/2026 - 12:03

С 2024 года в российской промышленности менялся подход к инвестициям в ИИ. Если еще недавно компании были готовы экспериментировать с цифровыми инициативами «на вырост», то теперь инвест‑бюджеты сокращены (а кое‑где просто порезаны), при этом требования к проектам стали кардинально жестче. Деньги выделяются на то, что дает измеримый эффект «здесь и сейчас» — на проекты с горизонтом более года года советы директоров финансирование просто не дают. При этом направлений, где ИИ окупается за 6–12 месяцев, немного, но они есть. И эта статья — про обобщение проектного опыта команды SSP SOFT в промышленности.

Читать далее

mTLS на практике: от модели угроз до реальных атак на сервер

Wed, 05/20/2026 - 12:01

Это вторая часть цикла про mTLS. В первой разобрали теорию: как работает рукопожатие, от каких атак защищает и где принципиально бессилен. Здесь — практика. Разберём реальный сценарий: homelab на одном сервере с Traefik и Dokploy. Пройдём путь от модели угроз до конкретных попыток атаковать собственный сервер — с командами и объяснениями, что происходит.

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

Читать далее

Старики уходят в кеш: большие деньги не играют в техноказино?

Wed, 05/20/2026 - 12:00

Привет, Хабр! В этом материале я расскажу о старой школе Уолл-стрит: инвесторах, управляющих фондами и миллиардерах, которые десятилетиями переживали кризисы, пузыри, обвалы и рыночные эйфории. Они привыкли быть выше хайпа, смотреть на цену, маржу, риски и сроки окупаемости. Для них прорывная технология сама по себе еще не означает хорошую инвестицию, а ИИ-бум стал проверкой на совместимость с новой реальностью. 

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

Предлагаем посмотреть, как олды относятся к новым технологиям типа ИИ и к доллару в принципе.

Читать далее

Альтернативы Centrifugo для Laravel: Reverb, Pusher, Ably, Socket.IO, SSE и polling

Wed, 05/20/2026 - 12:00

Заключительная часть серии статей про Laravel + Centrifugo и как его готовить.

Сравниваем альтернативы Centrifugo для Laravel: Reverb, Pusher, Ably, Socket.IO, SSE и polling. Разбираем плюсы, минусы и сценарии выбора real-time решения.

Читать далее

[Перевод] 4/7. Целая прорва связных списков, чтобы выучить Rust: Плохой, но безопасный двусвязный дек

Wed, 05/20/2026 - 12:00

Наконец мы добрались до поистине сложной темы. Если вы думаете, что раньше были сложные, вы глубоко заблуждаетесь!

Двусвязный список на Rust. Это вообще возможно? Ну… да. С некоторыми оговорками. Что за оговорки, узнаем из четвёртой главы.

Читать далее

LLM без поиска — генератор галлюцинаций. Как мы с этим справились при создании поиска по интранету

Wed, 05/20/2026 - 12:00

Меня зовут Дима Кирпа, я разработчик из команды ML Laboratory в Yandex Infrastructure. Четыре года я делаю внутренний поиск по корпоративному интранету Яндекса. Сегодня предлагаю ненадолго отложить судорожный тюнинг промптов и температуры LLM и окинуть внутренние корпоративные знания более широким взглядом. На примере опыта Яндекса я разберу процесс LLM‑изации интранета компании с самых азов. На время мы вернёмся в ламповый мир старого доброго фича‑инжиниринга, неспешно пройдёмся от настроек ранжирования к настройкам поискового контекста для LLM и увидим, как фичи поиска плавно перетекают в фичи генеративки. Напоследок убедимся, что всё не зря и наши разработки реально приносят пользу компании.

Я расскажу, как устроен бэкенд и ранжирование внутреннего поиска Яндекса, как на базе внутреннего поиска мы построили генеративную Q&A‑систему AI Chat. Покажу обоснования разных внедрений в виде чисел из реальных A/B‑экспериментов. Никакого хайпа, только факты. Цель статьи — доказать, что поиск — это база для корпоративных процессов обмена знаниями, а модель роста от поиска к агенту — самая эффективная.

Читать далее

Скажите, а вовлеченность сотрудников сейчас с нами в этой комнате?

Wed, 05/20/2026 - 11:54

Привет! Меня зовут Андрей Терёхин, я руковожу отделом маркетинга в Projecto и за свой 15-летний опыт работы заметил такой паттерн: компании, где менеджеры говорят про низкую вовлеченность, обычно имеют проблемы с рабочими процессами, а компании, где процессы прозрачны, вообще не используют слово «вовлеченность» — у них и так все работает. Эта статья про то, почему вам не нужны горящие глаза, вовлеченные сотрудники и корпоратив на байдарках, а обычные скучные и понятные процессы.

Читать далее

Low code умер, да здравствует low code

Wed, 05/20/2026 - 11:53

Привет, Хабр! Меня зовут Александр Сахаров, я отвечаю за партнерства в «Диасофт». Хочу разобрать с вами один сюжет, который рынок сейчас подает максимально противоречиво, - платформенную разработку.

Повод любопытный. Прямо сейчас идут два встречных сигнала. «Ведомости» в апреле написали, что интерес крупного бизнеса к low-code за год упал почти вдвое: с 66% компаний в 2025 году до 34% в 2026-м. А свежие обзоры по integrated development environment говорят ровно обратное: внутренние платформы разработки внедряют все активнее. Так в какую сторону мы на самом деле движемся - и чего при этом боимся?

Читать далее

Я зарабатываю 8 млн в месяц на том, о чём мне запретили говорить

Wed, 05/20/2026 - 11:26

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

При этом у нас 32 магазина в одном городе, больше 100 сотрудников, оборот около 40 млн в месяц и примерно 20% чистыми. Ближайший конкурент держит 20 точек. Рекламы у нас почти нет, она запрещена законом. Ассортимент у всех плюс-минус одинаковый.

Мы — сеть табачных магазинов в Челябинске, работаем с 2015 года. В статье расскажу, как устроен этот ритейл изнутри, на что реально уходят деньги, почему мы сознательно не развиваем самое прибыльное направление и как один раз попробовали выйти в другой город и закрылись.

Читать далее

Who's online

There are currently 0 users and 7 guests online.