<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
  <channel>
    <language>ru</language>
    <title>Информационная безопасность</title>
    <description>Информационная безопасность для программистов и не только. В разделе собраны опыт, мнения и гайды о том, как защитить информацию от хакерских атак.</description>
    <link>https://tproger.ru/tag/kiberbezopasnost</link>
    <atom:link href="https://tproger.ru/tag/kiberbezopasnost/feed" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Sat, 03 Oct 2026 11:21:18 GMT</lastBuildDate>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>12</sy:updateFrequency>
    <image>
      <title>Информационная безопасность</title>
      <link>https://tproger.ru</link>
      <url>https://tproger.ru/apple-touch-icon.png</url>
    </image>
    <item>
      <title>Обвязка важнее модели: три слоя, которые определяют результат</title>
      <link>https://tproger.ru/articles/obvyazka-vazhnee-modeli-tri-sloya-kotorye-opredelyayut-rezultat</link>
      <comments>https://tproger.ru/articles/obvyazka-vazhnee-modeli-tri-sloya-kotorye-opredelyayut-rezultat?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Tproger]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/obvyazka-vazhnee-modeli-tri-sloya-kotorye-opredelyayut-rezultat</guid>
      <description><![CDATA[<p>Почему код вокруг модели влияет на результат сильнее выбора модели: маршрутизация вычислений, автоматические проверки отказов и контроль границ информации.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/obvyazka-vazhnee-modeli-tri-sloya-kotorye-opredelyayut-rezultat">Обвязка важнее модели: три слоя, которые определяют результат</a>»</p>]]></description>
      <category><![CDATA[Архитектура ПО]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[DevOps]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[CI/CD]]></category>
      <category><![CDATA[Промпты]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 08 Sep 2026 13:00:17 GMT</pubDate>
      <content:encoded><![CDATA[<p>Спор о том, какая модель лучше, съедает почти всё внимание. Между тем на поведение системы куда сильнее влияет то, что построено вокруг модели: как формируются запросы, что попадает в контекст, какие проверки стоят на выходе и кому позволено читать сохранённые данные.</p><p>Всё это принято называть обвязкой, и определение у неё простое.</p><blockquote>Обвязка — это весь код между тем, что вы печатаете, тем, что получает модель, тем, что модель выдаёт, и тем, что вы видите. И это много кода, не имеющего отношения к ИИ. Модели при этом выглядят в значительной степени взаимозаменяемыми.</blockquote><p>Разбираем три слоя обвязки, на которых результат меняется заметнее, чем от смены модели: маршрутизация вычислений, страховка надёжности в конвейере и контроль границ информации.</p><p>Обвязка — это код без единой нейросети внутри: сборка запроса, управление контекстом, проверки на выходе и координация нескольких моделей.</p><p>Маршрутизация задач между дорогой внешней моделью и дешёвой локальной даёт выигрыш в скорости, приватности и цене без смены качества на основных сценариях.</p><p>Анализ сгенерированного кода не показывает, как он поведёт себя при отказе зависимости, поэтому проверки надёжности строятся на воспроизведении реальных отказов, а не на чтении текста.</p><p>Пять источников почти всех сбоев одни и те же: процессор, память, диск, ввод-вывод и сеть. С них и начинают автоматические проверки.</p><p>Модели с постоянной памятью раскрывают лишние данные в неподходящем контексте, причём доля нарушений растёт с числом задач, а просьба быть осторожнее проблему не решает.</p><h2>Слой первый: что и где считать</h2><p>Первое, что делает обвязка, — решает, какой моделью обрабатывать конкретную задачу. Шнайер прямо советует руководителям по безопасности <a href="https://www.schneier.com/news/archives/2026/07/why-an-ai-harness-may-matter-more-than-the-latest-model.html">смотреть мимо брендов моделей и разбираться с окружающим их программным слоем</a>: он управляет промптами, выводом, контекстом, ограничениями и координацией нескольких моделей одновременно.</p><p>Отдельная функция этого слоя — маршрутизация между дорогими внешними моделями и дешёвыми локальными. По мере того как компактные системы приближаются по качеству к передовым, всё больше задач имеет смысл считать локально: это быстрее, дешевле, приватнее и оставляет контроль на своей стороне.</p><p>Из того же наблюдения следует острый вывод, который Шнайер делает применительно к безопасности: раз возможности моделей широко доступны и во многом взаимозаменяемы, экспортные ограничения и закрытие доступа их не сдержат. Реальные риски он видит в другом: в концентрации корпоративной власти, в слабой целостности моделей и в плохо устроенных стимулах. Для инженера это переводится в практическое требование — проверять заявления поставщика и не полагаться на то, что выбор конкретного вендора сам по себе что-то гарантирует.</p><h2>Слой второй: страховка надёжности в конвейере</h2><p>Оговорка сразу: это уже не обвязка вокруг обращения к модели, а обвязка процесса поставки. Принцип тот же, объект другой: проверяется не ответ модели, а код, который агент написал и который вот-вот уедет в продакшен.</p><p>Код теперь пишется быстрее, и это меняет характер рисков, а не только их количество. Опечаток в сгенерированном коде стало меньше, зато прибавилось незапланированных зависимостей, расползания конфигурации и изменений инфраструктуры, сделанных агентом без нужного контекста.</p><p>Аналогия с гонками здесь уместнее обычного: на малой скорости из заноса выходят легко, на большой одна ошибка стоит несопоставимо дороже. Отсюда идея <a href="https://devops.com/why-reliability-guardrails-are-needed-in-every-ai-coding-pipeline/">автоматических проверок надёжности</a> Колтона Эндруса: замкнутых циклов, которые безопасно создают настоящие условия отказа, проверяют устойчивость, предлагают исправление и перепроверяют его после внесения.</p><h3>Почему чтения кода недостаточно</h3><p>Ранняя идея инженерии хаоса состояла в том, что перебрать все сочетания отказов юнит-тестами и интеграционными тестами невозможно. Прогон реалистичного отказа против живого сервиса проверяет много вещей разом и потому эффективнее.</p><p>Для сгенерированного кода это верно вдвойне. Статический анализ доводит до определённой черты, но не отвечает на главный вопрос: что произойдёт, когда отвалится кеш или вырастет задержка у зависимости. Правильное поведение здесь описывается заранее (скажем, при недоступности кеша сервис обязан уйти в основную базу), и проверка сводится к тому, соблюдает ли кандидат уже существующую политику.</p><h3>Пять ресурсов, с которых начинают</h3><p>Львиная доля сбоев упирается в одни и те же пять вещей: процессор, память, диск, ввод-вывод и сеть. Программы работают на компьютерах, а у компьютеров набор ресурсов один и тот же. Отсюда и минимальный набор автоматических проверок:</p><ul><li>Избыточность по зонам и узлам: что происходит при отказе целой зоны, отдельного хоста или контейнера.</li><li>Масштабирование по процессору: корректно ли настроено расширение при всплеске и сворачивается ли оно обратно после.</li><li>Масштабирование по памяти: то же самое, включая корректную деградацию, если расшириться не удалось.</li><li>Отказ зависимости: как ведёт себя приложение, когда до внешнего или внутреннего сервиса не достучаться.</li><li>Задержка зависимости: сервис доступен, но отвечает медленно. Приложение деградирует аккуратно, уходит к запасному источнику или просто падает.</li></ul><p>Ответы на эти вопросы у зрелой команды обычно уже записаны в виде политик. Проверки не изобретают новых требований, они лишь удостоверяют, что очередной кандидат на выкатку этим требованиям соответствует.</p><h3>Результат проверки возвращается агенту</h3><p>Ставится это всё в конце конвейера сборки, прямо перед продвижением версии. Провалилась проверка — код помечается и уходит обратно вместе с описанием теста и предложенным исправлением.</p><p>Дальше начинается самое интересное. Данные о том, какая проверка провалилась, что исправили и прошла ли она после этого, возвращаются в агентский рабочий процесс как контекст. Проверять всё равно нужно каждый раз, но новый код начинает проходить проверки чаще, чем проваливать. Тот же журнал полезен и при разборе инцидентов: понятно, какие режимы отказа уже проверялись, с какими результатами и что было исправлено.</p><h2>Слой третий: границы информации</h2><p>Третий слой обсуждают реже всего, а он становится критичным ровно в тот момент, когда система обзаводится постоянной памятью о пользователе.</p><p>Речь о контекстной целостности — принципе из теории приватности Хелен Ниссенбаум: какие сведения уместно раскрывать при выполнении конкретной задачи. Домашний адрес нужен для оформления доставки и совершенно неуместен при составлении рабочего письма коллеге. Человек проводит эту границу не задумываясь, у модели с сохранённой памятью её приходится обеспечивать отдельно.</p><h3>Что показали измерения</h3><p>Шнайер <a href="https://www.schneier.com/blog/archives/2026/08/llms-and-contextual-integrity.html">разбирает две работы на эту тему</a>. Первая описывает бенчмарк CIMemories: синтетические профили пользователей больше чем со ста атрибутами каждый и набор задач, в которых один и тот же атрибут для одних задач необходим, а для других неуместен.</p><p>Результаты неутешительные. <a href="https://www.schneier.com/blog/archives/2026/08/llms-and-contextual-integrity.html">Передовые модели показывают до 69% нарушений</a> на уровне отдельных атрибутов, то есть раскрывают их там, где раскрывать не следовало. Снижение доли нарушений при этом обычно достаётся ценой полезности: модель становится осторожнее и хуже решает задачу.</p><p>Ещё важнее динамика. Нарушения накапливаются и по числу задач, и по числу прогонов: при росте использования с одной задачи до сорока доля нарушений у GPT-5 поднимается с 0,1 до 9,6%, а при пятикратном исполнении одного и того же промпта достигает 25,1%. Последняя цифра особенно неприятна: она означает нестабильное поведение, когда на идентичный запрос модель раскрывает разные атрибуты.</p><h3>Почему просьба быть осторожнее не помогает</h3><p>Естественная реакция инженера — добавить в системный промпт указание бережно относиться к персональным данным. Измерения показывают, что это не работает: модели переобобщают и начинают выдавать либо всё, либо ничего, вместо того чтобы принимать решение с учётом контекста.</p><p>Вывод авторов прямой: проблема не решается ни лучшим промптингом, ни увеличением масштаба модели, потому что требуется собственно рассуждение о контексте, в котором система сейчас работает.</p><h3>Что действительно даёт эффект</h3><p>Вторая работа как раз про это. Авторы сначала просят модель явно рассуждать о том, какие сведения уместны для текущей задачи, а затем закрепляют это обучением с подкреплением. На синтетическом наборе всего из 700 примеров с разнообразными контекстами и нормами раскрытия им удалось заметно сократить неуместное раскрытие, не потеряв в качестве решения задач, причём для моделей разных размеров и семейств.</p><p>Ценнее всего то, что улучшение переносится: обучение шло на синтетике, а результат подтвердился на устоявшемся бенчмарке с человеческой разметкой, оценивающем утечки в действиях и вызовах инструментов. Практический смысл для тех, кто строит систему поверх готовой модели, тот же, что и на двух предыдущих слоях: контроль границ реализуется в обвязке, а не выпрашивается у модели формулировками.</p><h2>Что забрать с собой</h2><p>Три слоя выглядят разнородно, но подчиняются одному правилу: свойство, которое вам нужно от системы, обеспечивается кодом вокруг модели, а не выбором модели. Маршрутизация даёт цену и приватность инфраструктуры: данные не покидают периметр. Автоматические проверки отказов дают устойчивость. Явный контроль границ информации даёт приватность самих данных пользователя, независимо от того, где физически стоит модель.</p><p>Проверить это на своём проекте несложно: посмотрите, сколько времени команда потратила за квартал на сравнение моделей и сколько на то, что находится между пользователем и моделью. Если первое число заметно больше, вы, скорее всего, оптимизируете не тот слой.</p><p>Материалы разбора: <a href="https://www.schneier.com/news/archives/2026/07/why-an-ai-harness-may-matter-more-than-the-latest-model.html">интервью Шнайера об обвязке и локальных моделях</a>, <a href="https://devops.com/why-reliability-guardrails-are-needed-in-every-ai-coding-pipeline/">проверки надёжности в конвейере с ИИ-кодом</a> и <a href="https://www.schneier.com/blog/archives/2026/08/llms-and-contextual-integrity.html">обзор двух работ о контекстной целостности</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Copilot в приложении и CLI перестал читать исключённые файлы</title>
      <link>https://tproger.ru/news/copilot-v-prilozhenii-i-cli-perestal-chitat-isklyuchyonnye-fajly</link>
      <comments>https://tproger.ru/news/copilot-v-prilozhenii-i-cli-perestal-chitat-isklyuchyonnye-fajly?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Tproger]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/copilot-v-prilozhenii-i-cli-perestal-chitat-isklyuchyonnye-fajly</guid>
      <description><![CDATA[<p>Исключение файлов теперь действует в Copilot app и CLI на планах Business и Enterprise. Что покрыто и где возможна утечка: IDE, симлинки, удалённые ФС.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/copilot-v-prilozhenii-i-cli-perestal-chitat-isklyuchyonnye-fajly">Copilot в приложении и CLI перестал читать исключённые файлы</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 03 Sep 2026 05:20:06 GMT</pubDate>
      <content:encoded><![CDATA[<p>GitHub 2 сентября <a href="https://github.blog/changelog/2026-09-02-content-exclusions-generally-available-in-copilot-app-and-cli/">объявила</a>, что политики content exclusion, то есть списки файлов, которые Copilot не имеет права читать, теперь в общем доступе для приложения Copilot и для Copilot CLI. Настраивают их администраторы репозитория, владельцы организации или enterprise; доступно на планах Copilot Business и Enterprise. Исключённые файлы не должны использоваться агентом как контекст, попадать в ответы и проверяться Copilot code review.</p><p>Для команд, которые пускают агента в репозиторий с .env, приватными схемами и внутренними документами, это способ формально закрыть ему доступ. Но по документации GitHub у механизма есть заметные дыры: в VS Code режимы Edit и Agent исключения пока не поддерживают, симлинки и репозитории на удалённых файловых системах не покрываются, а семантическая информация из IDE (типы, определения по наведению, свойства сборки) может просочиться в контекст даже для исключённого файла.</p><ul><li>Content exclusions стали GA для Copilot app и Copilot CLI; сайт GitHub и GitHub Mobile остаются в public preview.</li><li>Политику настраивают администраторы репозитория, владельцы организации и enterprise; планы Copilot Business и Enterprise.</li><li>Исключённые файлы не участвуют в inline-подсказках, не влияют на подсказки в других файлах, не попадают в ответы чата и не проверяются Copilot code review.</li><li>Не покрыты: режимы Edit и Agent в VS Code, симлинки, репозитории на удалённых файловых системах; возможна утечка через семантику IDE.</li><li>Клиент передаёт GitHub URL текущего репозитория, чтобы получить политику; GitHub заявляет, что эти URL не логируются.</li></ul><h2>Как работает исключение и что оно гарантирует</h2><p>Механизм описан в <a href="https://docs.github.com/en/copilot/concepts/context/content-exclusion">документации GitHub</a>: администратор задаёт пути и маски файлов на уровне репозитория, организации или enterprise. Клиент Copilot при запуске отправляет на GitHub URL текущего репозитория и получает применимую политику; по заявлению GitHub, эти URL не логируются. Дальше клиент обязан не показывать содержимое исключённых файлов модели: ни для автодополнения внутри них, ни как контекст для подсказок в соседних файлах, ни в ответах чата, ни в автоматическом ревью.</p><p>Слово «обязан» здесь важно. Это политика на стороне клиента, а не криптографическая изоляция: GA-статус означает, что GitHub заявляет поддержку в приложении и CLI и берёт на себя ответственность за её работу. До 2 сентября правила действовали в части IDE-сценариев и в code review, а для app и CLI были в предварительном статусе.</p><h2>Где исключения не срабатывают</h2><ul><li>VS Code: режимы Edit и Agent пока не поддерживают content exclusion. Именно в агентном режиме модель читает файлы активнее всего.</li><li>Симлинки: если исключённый файл доступен по символической ссылке под другим путём, политика его не закроет.</li><li>Удалённые файловые системы: репозитории на сетевых дисках и в remote-окружениях не покрываются.</li><li>Семантика IDE: языковой сервер может отдать типы, hover-определения и свойства сборки из исключённого файла, и они попадут в контекст.</li></ul><p>Практический вывод: исключение файлов снижает риск случайной утечки секрета в подсказку, но не заменяет хранение секретов вне репозитория. Файл .env с ключами в Git был плохой идеей и до Copilot; агент лишь делает цену ошибки заметнее. Как это выглядит на практике, показал недавний <a href="https://tproger.ru/news/metr-rasskazala-kak-u-neyo-ukrali-api-klyuch-k-modelyam-vajb-kodi">инцидент METR</a> с украденным API-ключом.</p><h2>Что настроить сегодня</h2><ol><li>В настройках репозитория, организации или enterprise добавить в исключения .env*, каталоги с ключами и сертификатами, приватные схемы данных и внутренние документы.</li><li>Проверить каждую поверхность отдельно: Copilot app, CLI, IDE, code review. Для VS Code помнить, что Edit и Agent исключения игнорируют.</li><li>Найти симлинки на чувствительные файлы (find . -type l) и репозитории на сетевых дисках: там политика не действует.</li><li>Убедиться, что тариф Business или Enterprise: на индивидуальных планах content exclusion недоступен.</li></ol><p>Доступность оплаты планов Business и Enterprise из России GitHub в changelog не обсуждает. В тот же день GitHub выпустила и другое изменение для администраторов: <a href="https://github.blog/changelog/2026-09-02-enterprise-managed-settings-support-any-default-model/">managed settings</a> теперь позволяют назначать командам любую модель Copilot по умолчанию с возможностью переопределения. Про то, что Copilot научился <a href="https://tproger.ru/news/github-razrewil-copilot-stavit-approve-na-pull-request">ставить approve на pull request</a>, мы писали накануне; в связке с исключениями это означает, что ревьюер-агент может не видеть части файлов, которые одобряет.</p><p>Источники: <a href="https://github.blog/changelog/2026-09-02-content-exclusions-generally-available-in-copilot-app-and-cli/">GitHub Changelog: Content exclusions generally available in Copilot app and CLI</a>, <a href="https://docs.github.com/en/copilot/concepts/context/content-exclusion">GitHub Docs: Content exclusion for GitHub Copilot</a></p><p>Изображение на обложке: GitHub</p>]]></content:encoded>
    </item>
    <item>
      <title>В даркнете продают сканы 153 млн водительских прав, ФБР ищет источник</title>
      <link>https://tproger.ru/news/v-darknete-prodayut-skany-153-mln-voditelskih-prav-fbr-ishhet-ist</link>
      <comments>https://tproger.ru/news/v-darknete-prodayut-skany-153-mln-voditelskih-prav-fbr-ishhet-ist?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Tproger]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/v-darknete-prodayut-skany-153-mln-voditelskih-prav-fbr-ishhet-ist</guid>
      <description><![CDATA[<p>Сервис Nexus продавал сканы 153 млн водительских прав США и Канады. Следы ведут к IDScan.net, ФБР открыло расследование. Что это значит для верификации по документам.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/v-darknete-prodayut-skany-153-mln-voditelskih-prav-fbr-ishhet-ist">В даркнете продают сканы 153 млн водительских прав, ФБР ищет источник</a>»</p>]]></description>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Утечка данных]]></category>
      <category><![CDATA[Персональные данные]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 02 Sep 2026 06:00:24 GMT</pubDate>
      <content:encoded><![CDATA[<p>1 сентября журналист Брайан Кребс <a href="https://krebsonsecurity.com/2026/09/fbi-probes-service-selling-153m-drivers-licenses/">рассказал</a> о новом сервисе в даркнете под названием Nexus, который продаёт цифровые сканы более чем 153 млн водительских удостоверений жителей США и Канады. Продавцы утверждают, что выгружают данные из взломанной компании больше года; косвенные улики Кребса указывают на IDScan.net из Луизианы, чьи сканеры проверяют документы в прокатах автомобилей, магазинах, казино и отелях. Сама компания говорит, что расследует ситуацию, а полевой офис ФБР в Новом Орлеане в тот же день открыл официальное расследование предполагаемого взлома.</p><p>Для разработчиков, которые встраивают проверку по документам в свои продукты, это история о том, куда на самом деле уходят сканы паспортов и прав после «мгновенной верификации». Если версия Кребса подтвердится, окажется, что снимки документов, сделанные при аренде машины или на входе в магазин, хранились у стороннего поставщика месяцами, и компрометация одного поставщика затронула клиентов многих брендов, которые о нём даже не слышали.</p><ul><li>Nexus заявлял более 153 млн водительских удостоверений, более 10 млн ID-карт, более 3 млн проездных документов и международных удостоверений и не менее 579 тысяч медицинских карточек (medical cards).</li><li>Пустой поиск возвращал около 11,5 млн страниц по 15 записей; за 24 часа число удостоверений выросло почти на 400 тысяч.</li><li>Кребс связывает утечку с IDScan.net по косвенным уликам: у девяти его знакомых временные метки сканов совпали с датами поездок и аренды машин в Hertz; официально источник не установлен.</li><li>IDScan.net заявляет более 21 млн проверок в месяц в более чем 20 тысячах точек; официального заявления компания пока не дала.</li><li>После публикации сайт Nexus исчез, вместо страницы входа осталась надпись «This service is no longer available».</li></ul><h2>Что именно продавал Nexus</h2><p>Источник Кребса обратил внимание на объявление 31 августа на русскоязычном форуме Exploit: новый пользователь предлагал доступ к сканам документов более 170 млн жителей Северной Америки и в качестве бесплатного образца выложил права самого журналиста. Сервис, названный Nexus, перечислял более 153 млн водительских удостоверений США и Канады, более 10 млн идентификационных карт, более 3 млн проездных документов и международных удостоверений и не менее 579 тысяч медицинских карточек.</p><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-09-02/191d242c-f9ca-47e9-a3ef-98261b3d061e.webp" alt="Диаграмма: сколько документов каждого типа заявлял сервис Nexus" /><figcaption>Заявленные объёмы базы Nexus по типам документов, млн записей; проездные документы и международные удостоверения показаны одной категорией, как у продавцов. График: Tproger по данным KrebsOnSecurity</figcaption></figure><p>Цифры похожи на правду: поиск без параметров возвращал примерно 11,5 млн страниц по 15 записей на каждой. Основная масса записей приходится на американцев, канадских прав около 1,1 млн, больше всего из Онтарио (473 673 записи). Среди источников записей встречаются пометки CDL (коммерческие водительские права) и CAC (карты доступа в правительственные здания США), а также карты клиентов диспансеров марихуаны.</p><p>Продавцы утверждали, что данные идут из «активного взлома крупной компании по верификации личности», среди клиентов которой есть компании из Fortune 500. В стартовом посте они писали, что «непрерывно выгружают новые данные больше года в свою приватную базу» (перевод редакции). За сутки наблюдений число водительских удостоверений в Nexus выросло почти на 400 тысяч, то есть выгрузка продолжалась в момент публикации.</p><h2>Как Кребс вышел на IDScan.net</h2><p>В записи с правами журналиста лежали шесть файлов: три пары снимков лицевой и оборотной стороны, обычный скан плюс версии в инфракрасном и ультрафиолетовом свете. Такие снимки делают специализированные сканеры документов, у смартфона такого режима нет. К каждому файлу была приписана дата и время; у Кребса метка совпала с июнем 2025 года, когда он летал на похороны родственника.</p><p>Дальше расследование пошло по временным меткам. Более десятка друзей и родственников журналиста разрешили поискать их документы; нашлись девять, и у каждого дата снимка совпала с поездкой. Версия про аэропорты отпала: среди проверенных Кребсом записей паспортов не нашлось, а часть людей в аэропорту показывала другие документы. Зато общий знаменатель нашёлся быстро: в день снимка люди арендовали машину в Hertz, а у Кребса и его матери метки отличаются на несколько секунд, ровно как при сдаче двух удостоверений одному сотруднику проката. Метки, судя по данным о прокатах, выставлены по Гринвичу.</p><p>Исследователь приватности Зак Эдвардс, чьи права тоже продаются в Nexus, машину не арендовал, зато в тот день его удостоверение сканировали в диспансере сети Planet13 в Лас-Вегасе. В 2022 году IDScan.net объявляла об эксклюзивном соглашении с Planet13; на странице доверия компании среди клиентов названы Hertz, Target, FedEx, Motorola Solutions, Jack Henry и Caesars Entertainment. Собственная документация IDScan.net описывает сканирование в инфракрасном и ультрафиолетовом диапазоне, то есть ровно те три пары снимков, что лежат в каждой записи Nexus. Компания заявляет более 21 млн проверок в месяц в более чем 20 тысячах точек по миру.</p><p>IDScan.net ответила Кребсу, что расследует ситуацию, но официального заявления и ответов на конкретные вопросы не дала. В комментариях к статье один из читателей опубликовал текст уведомления, которое, по его словам, компания разослала клиентам утром 2 сентября: там говорится о «потенциальном инциденте», подключении внешних юристов и криминалистов и отсутствии выводов о масштабе. Независимого подтверждения этого письма нет.</p><h2>Почему это касается не только США</h2><p>В базе документы жителей США и Канады; о российских паспортах или российских компаниях в материале речи нет. Механизм утечки при этом универсален. Верификация по документам всё чаще становится обязательной: возрастные проверки в интернете, аренда, отели, финансовые сервисы. Каждая такая проверка обычно означает, что копия документа уехала к стороннему вендору, а вендор хранит её неопределённо долго вместе с миллионами других.</p><blockquote>Эти системы отдают чувствительные данные всё большему числу сторонних поставщиков, а надзора, который гарантировал бы их безопасность, у нас и близко нет.</blockquote><p>Ларри Болдуин из компании Cybera, чьи права тоже нашлись в Nexus, указывает на второе следствие: водительские права в США служат доказательством личности при открытии кредитных линий, а по фотографии современные системы распознавания лиц найдут человека, даже если он сменил имя. Под ударом оказываются жертвы домашнего насилия и участники программы защиты свидетелей.</p><h2>Что делать тем, кто строит такие системы</h2><p>По нашей оценке, главный вывод для инженера здесь архитектурный. Если продукт принимает сканы документов, стоит ответить на четыре вопроса: где физически хранятся изображения, зачем они хранятся после завершения проверки, кто из подрядчиков получает копию и что произойдёт, если утечёт база подрядчика вместо вашей. В записях Nexus есть снимки с метками июня 2025 года, хотя для проверки права на аренду машины они нужны несколько секунд.</p><ul><li>Хранить результат проверки (пройдена, дата, тип документа), а не сам скан, если закон не требует иного.</li><li>Для подрядчиков верификации прописывать срок хранения и удаление изображений после проверки и проверять это, а не верить странице доверия.</li><li>Не перечислять поставщиков верификации публично без необходимости: список клиентов на сайте IDScan.net в этой истории стал картой для поиска пострадавших.</li><li>Для пользователей из США и Канады, которые сдавали права в прокатах и точках с ID-сканерами: исходить из того, что скан утёк, и следить за кредитными отчётами.</li></ul><p>Обновление в исходной статье в 20:56 по восточному времени США: вскоре после публикации сайт Nexus пропал из даркнета, страница входа заменена сообщением «This service is no longer available». Кребс предупреждает, что история быстро развивается, и обещает дополнять материал; ответа от Hertz на момент публикации не было.</p><p>Источник: <a href="https://krebsonsecurity.com/2026/09/fbi-probes-service-selling-153m-drivers-licenses/">KrebsOnSecurity: FBI Probes Service Selling 153M+ Drivers Licenses</a></p><p>Изображение на обложке: График: Tproger по данным KrebsOnSecurity</p>]]></content:encoded>
    </item>
    <item>
      <title>Трудно быть безопасником</title>
      <link>https://tproger.ru/articles/trudno-byt-bezopasnikom</link>
      <comments>https://tproger.ru/articles/trudno-byt-bezopasnikom?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Неопознанный программист]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/trudno-byt-bezopasnikom</guid>
      <description><![CDATA[<p>Многие представляют IT‑безопасников суровыми дядьками без чувства юмора и с нулевой терпимостью к окружающим. Однако это не так. Перед вами — сатирический монолог о жизни в информационной безопасности. Возможно, некоторые персонажи слишком похожи на ваших коллег.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/trudno-byt-bezopasnikom">Трудно быть безопасником</a>»</p>]]></description>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Юмор]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 13 Aug 2026 06:23:10 GMT</pubDate>
      <content:encoded><![CDATA[<p><i>Многие представляют IT‑безопасников суровыми дядьками без чувства юмора и с нулевой терпимостью к окружающим. Однако это не так. Перед вами — сатирический монолог о жизни в информационной безопасности. Возможно, некоторые персонажи слишком похожи на ваших коллег.</i></p><p>Здравствуйте! Меня зовут Андрей, и я работаю в сфере информационной безопасности.</p><p>Когда кто‑то спрашивает, чем я занимаюсь, я отвечаю, что работаю в IT и слежу за безопасностью компании. Это звучит как ответ сапёра, который говорит, что просто гуляет по полю.</p><p>Технически не ложь, но… есть нюансы.</p><p>Почему я так отвечаю? Всё просто. Стоит лишь заговорить про инфобез, утечки данных и поверхность атаки, как у собеседника в глазах загорается огонёк непонимания. Он перестаёт меня слышать. В этот момент я могу сказать любую чушь. Например, что по ночам веслом отгоняю медведей от советских спутников. Всё равно в ответ получу уважительный кивок и полный ноль понимания.</p><p>Вообще, в любой нормальной профессии виден результат работы. Разработчик хорошо поработал — появилась новая функция. Дизайнер — новая кнопка. Маркетолог — из каждого утюга кричат про скидки.</p><p>Если хорошо работаю я — ничего не происходит. И это считается отличным результатом.</p><p>Некоторые руководители‑оптимизаторы любят спрашивать: «Ну и за что тебе платить? Нас ещё ни разу не атаковали хакеры». Странная логика. От ремня безопасности они почему‑то не отказываются. Хотя тоже ещё ни разу не вылетали через лобовое.</p><p>ИБ, информационная безопасность — это невидимость как услуга. Нас можно заменить табличкой «Пока всё нормально». Но табличка не умеет писать отчёты на 47 страниц о том, почему всё перестало быть нормально.</p><h2>Кто такой безопасник</h2><figure><img src="https://media.tproger.ru/user-uploads/139778/2026-08-13/7417212d-f27f-4963-bd4a-1bdde584de9c.webp" alt="" /></figure><p>Из‑за фильмов многие думают, что безопасник в IT — это такой хороший хакер, который на самом деле способен за десять секунд взломать Пентагон.</p><p>В жизни мой главный взлом — это взлом человеческого упрямства. Ведь это я на утренней пятиминутке полтора часа объясняю всему коллективу, почему нельзя хранить эксель‑файл с названием «клиентские_пароли» на рабочем столе.</p><p>И все соглашаются. Но файл не удаляют. Ведь «он нужен для работы».</p><p>Безопасник — это тревожный человек, которому за тревожность платят зарплату. В обычной жизни таких людей называют паникёрами. В IT — ведущими специалистами по информационной безопасности.</p><p>Работа в инфобезе — это когда все думают, что ты самый противный тип в компании, который подозревает окружающих в чём‑то очень плохом. А на самом деле ты просто в третий раз за день пишешь: «Коллеги, пожалуйста, не присылайте пароли от сервисов в общий чат».</p><p>И всегда, абсолютно всегда, находится человек — допустим, Дима, который отвечает: «Это тестовый пароль».</p><p>Конечно. В IT слово «тестовый» часто означает: «Мы надеемся, что это не попадёт в публичный доступ, как в прошлый раз». В каждой компании есть такой Дима. Если у вас нет Димы — есть риск, что Дима — это вы.</p><p>В детстве я мечтал стать космонавтом, потом — супергероем. А стал ведущим специалистом по информационной безопасности. Теперь моя суперсила — запрещать людям то, что они только что придумали. Поэтому все отделы компании ненавидят меня одинаково. Можно сказать, что я один сплачиваю весь коллектив.</p><p>Я как глютен: никто точно не знает, что я делаю, но все убеждены, что без меня было бы лучше. Ведь только я обычно говорю «нет», когда меня о чём‑то просят.</p><p>Отдел информационной безопасности вообще часто называют «отделом моментального нет». Это неправда! Иногда я говорю «нет» не сразу, а спустя шесть месяцев, после аудита.</p><p>Я вообще смотрю на мир по‑своему. Нормальные люди выходят из дома и думают: «А я утюг выключил?». Когда я выхожу из дома, то думаю: «Если кот получит физический доступ к кухне, сможет ли он повысить свои привилегии?».</p><p>Потому что кот уже успешно повышал привилегии. Дважды. Оба инцидента привели к утечке сосисок.</p><p>Быть безопасником тяжело. Через пять лет в инфобезе я перестал верить в людей. Через десять — не доверяю даже принтеру. Он знает слишком много.</p><p>Я не параноик, хотя вы можете с этим не согласиться. Ведь у меня дома пароль от Wi‑Fi длиннее, чем некоторые браки. Я всегда читаю пользовательское соглашение до конца. А знаете, как я познакомился с женой? Я пришёл в отдел с плановой проверкой. Активность одной сотрудницы показалась мне подозрительной. Начал расследование. Через год оказался в ЗАГСе, спустя пять лет у нас уже двое детей. Классическая история успешного женского фишинга, я считаю.</p><p>Жена однажды сказала: «С тобой невозможно жить, ты как пожарный, который везде видит опасные горючие материалы». Я ответил: — «Неправда. Но ты хранишь в интернете фото паспорта и СНИЛС, а ещё используешь один пароль на всех сервисах. Знаешь, какие это киберриски?». Она говорит: «Это называется не „киберриски“, это называется „ты душнила, который портит семейную атмосферу“».</p><p>Появление детей у безопасников — это странный процесс. Нормальные люди просто говорят друг другу: «Давай заведём ребёнка». У безопасников даже решение завести ребёнка начинается с оценки рисков нового проекта. Потом нужно согласовать проект со всеми заинтересованными сторонами: жена, оба комплекта родителей и кот — который, как правило, против.</p><p>Через девять месяцев в семейную систему добавляется новый пользователь. К нему не приложено руководство по эксплуатации, зато он постоянно генерирует сигналы тревоги — преимущественно с двух до пяти ночи.</p><p>Первые полгода — максимально тяжёлые: служба поддержки нового пользователя в лице матери едва справляется с нагрузкой. Поэтому крепнет ощущение, что пора готовить план миграции увеличившейся системы на новую инфраструктуру — двухкомнатную, в более престижном районе, простите, дата‑центре.</p><p>Говорят, дети всегда перенимают что‑то от родителей. У врача ребёнок приходит в садик и всем ставит диагнозы. У юриста ребёнок на вопрос «Ты зачем игрушку сломал?» отвечает: «Я отказываюсь давать показания без присутствия законного представителя». Но им далеко до детей безопасников.</p><p>Потому что обычные дети рисуют принцесс, динозавров и радугу, а ребёнок безопасника рисует схему квартиры и указывает на ней уязвимые места. Обычные дети боятся монстра под кроватью, а ребёнок безопасника боится незапароленного Wi‑Fi.</p><p>Обычный ребёнок врёт родителям. Ребёнок безопасника успешно практикует социальную инженерию.</p><h2>О паролях и фишинге</h2><p>Вы уже поняли, что информационная безопасность — сложная наука. Но вся эта наука в итоге ломается о человека по имени Дима с паролем Dimon123.</p><p>Каждый год публикуют список самых популярных паролей. Я смотрю на него и понимаю: «Мы заслужили вымирание». Первое место — «123456». Второе — «password». Третье — «123456789». Ребята… вы хоть немного стараетесь?</p><p>Есть и обратная история — корпоративная политика паролей. Обычно она написана так, словно её составляли в ходе трёхлетней войны с человеческой памятью. Требования такие: не менее 16 символов. Заглавные буквы. Строчные. Цифры. Спецсимволы. Древнее проклятие. Кровь единорога.</p><p>Ещё желательно, чтобы пароль вызывал эмоциональный отклик. Который плюс вайб.</p><p>После создания такого пароля пользователь Дима записывает его на стикере, клеит к монитору и делает вид, что это временно. Потому что его память тоже имеет системные ограничения.</p><p>Люди искренне ненавидят сложные пароли и почему‑то нас. Как будто это МЫ их придумали вам назло. Как будто где‑то в тёмной комнате собрались безопасники и такие: «Господа, есть идея. Давайте заставим пользователей добавлять в пароль по одному символу в верхнем регистре. Это их сломает. Муа‑ха‑ха!».</p><p>А ещё этот знакомый всем цикл: «Забыл пароль» — «Сбросить» — «Создать новый пароль» — «Придумайте более сложный пароль» — «Новый пароль не должен совпадать с тремя предыдущими». На последнем этапе не то что обычный человек, даже безопасник захочет взять нож и пойти убивать.</p><p>Есть особо умные персонажи, которые говорят: люди, используйте менеджер паролей! Это программа, которая решает все проблемы с паролями. Вместо трёхсот паролей у вас будет один мастер‑пароль. Всё бы хорошо, только его нельзя забыть вообще никогда. Если забудете — сочувствую. Это больше не ваши данные.</p><p>О, а есть ещё фишинг. Это когда вам приходит письмо от «Службы безопасности» с требованием срочно перейти по ссылке, иначе «ваш аккаунт будет заблокирован».</p><p>Фишинг раньше был тупой. Прям очень тупой. Письма от наследного принца Нигерии, просьбы срочно перевести деньги с орфографией человека, который даже букварь не осилил. Это было почти честно: мошенник не притворялся, что он умный. На это клевали только бабушки и неопытные бухгалтеры.</p><p>А потом появился ИИ‑фишинг. И теперь письма от фейкового директора понятнее, интереснее и грамотнее, чем от настоящего. Это, кстати, очень тревожный знак для настоящего директора.</p><p>Теперь уже программа присылает голосовые сообщения от лица якобы начальника. «Дима, переведи олимпиард денег на счёт компании „Тёртый сыр“, пока я на встрече. Срочно».</p><p>Что делает уже не раз битый безопасниками Дима? Он пишет: «Иван Иваныч, это точно вы? Мне нужно подтверждение». А фейк отвечает: «Да, это я». И скидывает фото, где он выглядит даже лучше, чем вживую. Натуральнее как‑то. Как тут не повестись?</p><p>Фишинг — это не атака на глупых. Это атака на занятых. На уставших. На людей, у которых было пять созвонов, три письма, одно «срочно» и ноль внутреннего ресурса на проверку, почему письмо о подтверждении платежа пришло с домена otprav‑dengi‑hakeru.ru.</p><p>Представьте, что письмо пришло в пятницу в 17:58. Я настолько задолбался к этому времени, что если в таком письме напишут «Подтвердите передачу квартиры мошенникам», я отвечу: «А можно после выходных?».</p><p>Фишинг работает не потому, что люди доверчивые. Он работает, потому что люди привыкли к корпоративному хаосу. Если письмо выглядит типичным образцом корпоративного безумия, мозг говорит: «А, ну всё как обычно».</p><h2>Уязвимости, разработка и бухгалтерия</h2><p>Есть три фразы, которые я ненавижу: «У меня же работало», «Починим потом» и «Так быстрее».</p><p>Всё плохое в IT когда‑то начиналось со слов: «Так быстрее». А «починим потом» — это фраза, которая для меня звучит как «Мы хотим, чтобы наши базы данных уже завтра оказались на торрентах».</p><p>Возможно, вы знаете, что всем уязвимостям в программах и железе присваивается номер и оценка критичности от 1 до 10. 10 — это когда «всё плохо, чинить немедленно, звать на помощь маму».</p><p>9.8 — это то, что разработчики закрывают через три месяца, потому что «сейчас нет ресурса». К тому времени, как ресурс появится, уязвимость продемонстрируют на двух конференциях и продадут готовый эксплойт в даркнете за сто долларов. А вы ещё удивляетесь, почему я такой нервный.</p><p>Любая проблема в компании проходит одни и те же стадии.</p><p>Сначала: «Этого не может быть».</p><p>Потом: «Этой уязвимости нет в нашем проекте».</p><p>Потом: «Есть, но ничего страшного».</p><p>Потом: «Зачем вообще так делали?»</p><p>И наконец: «Давайте искать виноватого».</p><p>И вот тут выясняется, что проект использует какой-то скрипт, который написал случайный стажёр пять лет назад. Он потом уволился и, судя по всему, покинул этот бренный мир, потому что больше никогда не отвечал в мессенджерах. То есть какой-то случайный человек из прошлого на коленке сложил несущую стену нашего дома из битых кирпичей, скрепил всё это жвачкой — и растворился в тумане. А мы стоим, смотрим на трещины и говорим: «Ну, вроде не особо заметно. Не будем трогать».</p><p>Отдельно люблю legacy-системы. Это системы, написанные на языке, которому 30 лет. Ими управляет один человек, который работает в компании с 1908 года. Его зовут дядя Вася. Дядя Вася знает все пароли, не пишет инструкций и уходит в отпуск именно тогда, когда всё ломается. Увольнение дяди Васи считается событием уровня конца света.</p><p>Люблю ещё эту вечную дискуссию между инфобезом и разработчиками:</p><p>— Надо исправлять.</p><p>— А если сломается?</p><p>— А если не исправлять, то будет плохо.</p><p>— А если плохо будет из‑за исправления?</p><p>Разговор заходит в бесконечный цикл. Я создаю задачу в Jira. Это сервис, куда записывают задачи. Теоретически — чтобы их решать. Практически — чтобы там и похоронить.</p><p>Создаёшь задачу. Назначаешь исполнителя. Через месяц задача передаётся дальше. Через два месяца ещё дальше. Через полгода в задаче больше комментариев, чем под видео у популярного блогера. Но решения нет.</p><p>У меня там одна задача висит уже восемь месяцев. Проблема критичного уровня. Статус — «когда‑нибудь потом». Мне кажется, эта задача переживёт человечество. После ядерной зимы останутся тараканы и Jira. И таракан напишет в задаче: «Починим в следующем квартале».</p><p>Теперь о бухгалтерии. Я уважаю бухгалтеров. Это люди, которые из хаоса делают отчётность, а из отчётности — мою новую срочную задачу. Это огромная сила.</p><p>Но именно бухгалтерия — это то место, где флешка с вирусом становится троянским конём. Потому что если на флешке написано «Расчёт по зарплате окончательный final2», её вставят в компьютер. Не потому что бухгалтеры глупые. Потому что они так и называют свои файлы.</p><p>И в этом проблема. Почему бухгалтеры опасны? У них есть доступ к деньгам, но при этом они пользуются древними программами, принтерами, которые работают на чистой ненависти, и компьютерами, на которых стоит система из эпохи, когда слово «куртизанки» считалось новомодным.</p><p>Я однажды провёл обучение на тему опасности неизвестных носителей данных. А позже раскидал по офису пять флешек, подписав каждую. Где‑то это было «Продажи 1 кв. 2026», где‑то «Дизайн‑макет сайта». Ну такие, очевидные надписи. Четыре из пяти флешек вставили в течение часа.</p><p>Одну Дима унёс домой.</p><p>Поэтому не знаю, как у других коллег, а у меня есть правило: любая найденная бесхозная флешка уничтожается на месте. И я ношу с собой молоток. Для флешек. Хотя иногда и для пользователей. Это часть моего комплекта ведущего специалиста по информационной безопасности.</p><h2>Финальное слово</h2><p>На словах все любят безопасность. Безопасность — как спорт и ЗОЖ. Все за. Просто… не сегодня.</p><p>Представьте, что вас наняли охранять торговый центр. Только ключ от всех дверей лежит под ковриком. Код от сигнализации написан на бумажке рядом с сигнализацией. Запасной вход не закрывали с 2019 года, а охранник регулярно выкладывает план здания в TikTok.</p><p>И вот ты ходишь и говоришь: «Ребята, это проблема». Иногда мне кажется, что в этом и заключается моя работа — ходить и говорить: «Так делать нельзя». А в ответ слышать неизменное: «Но мы всегда так делали».</p><p>Конечно. Именно поэтому я нервничаю! Я всегда предполагаю худшее. И меня бесит, как часто я оказываюсь прав.</p><p>Так что да, я специалист по информационной безопасности. Я не взламываю Пентагоны. Я просто пытаюсь не дать компании загнуться от фишинга, «временного» пароля на стикере и чрезмерно активного Димы. В основном от Димы. Потому что хакеру сначала ещё нужно проникнуть в компанию. А Дима уже внутри.</p><p>А если серьёзно — спасибо, что выслушали. Помните: меняйте пароли, не кликайте на странные ссылки, обновляйте программы, и пожалуйста, ПОЖАЛУЙСТА, не будьте как Дима.</p>]]></content:encoded>
    </item>
    <item>
      <title>WP2Shell: хакеры атакуют критические уязвимости WordPress</title>
      <link>https://tproger.ru/news/wp2shell-hakery-atakuyut-kriticheskie-uyazvimosti-wordpress</link>
      <comments>https://tproger.ru/news/wp2shell-hakery-atakuyut-kriticheskie-uyazvimosti-wordpress?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/wp2shell-hakery-atakuyut-kriticheskie-uyazvimosti-wordpress</guid>
      <description><![CDATA[<p>WordPress выпустил экстренные патчи 6.9.5 и 7.0.2 для цепочки WP2Shell. Уязвимости позволяют получить контроль над сайтом без авторизации. Проверьте версию CMS.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/wp2shell-hakery-atakuyut-kriticheskie-uyazvimosti-wordpress">WP2Shell: хакеры атакуют критические уязвимости WordPress</a>»</p>]]></description>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[WordPress]]></category>
      <category><![CDATA[Хакеры]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[CMS]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 21 Jul 2026 08:38:27 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если ваш сайт работает на WordPress 6.9.x или 7.0.x — проверьте версию прямо сейчас. 17 июля 2026 года WordPress выпустил экстренные обновления 6.9.5, 7.0.2 и 6.8.6, закрывающие критическую цепочку уязвимостей WP2Shell. Уже через несколько дней после релиза патчей компании Patchstack, Hexastrike и WatchTowr зафиксировали реальные атаки: злоумышленники получают полный контроль над сайтами без учётной записи и без установленных плагинов.</p><p>WP2Shell — цепочка CVE-2026-63030 и CVE-2026-60137 в ядре WordPress.</p><p>Под угрозой полного удалённого выполнения кода: WordPress 6.9.0–6.9.4 и 7.0.0–7.0.1.</p><p>Атака работает без авторизации на стоковой установке без плагинов и тем.</p><p>WordPress.org применил редкую меру — принудительные автообновления для уязвимых версий.</p><p>Решение: обновиться до 6.9.5, 7.0.2 или 6.8.6 и проверить журналы доступа.</p><h2>Что такое WP2Shell</h2><p>WP2Shell — это комбинация двух багов в ядре WordPress, а не в стороннем плагине или теме. CVE-2026-63030 связана с путаницей маршрутов в пакетном endpoint REST API /wp-json/batch/v1. CVE-2026-60137 — SQL-инъекция в параметре author__not_in компонента WP_Query. По отдельности они серьёзны, вместе дают удалённое выполнение кода от анонимного пользователя.</p><h2>Какие версии под угрозой</h2><p>Полная цепочка RCE работает на WordPress 6.9.0–6.9.4 и 7.0.0–7.0.1. SQL-инъекция CVE-2026-60137 также присутствует в ветке 6.8.0–6.8.5, но там она не превращается в удалённый шелл, поскольку REST API batch endpoint появился только в 6.9. Исправления — версии 6.9.5, 7.0.2 и 6.8.6.</p><h2>Масштаб угрозы</h2><p>По официальной статистике WordPress, уязвимые версии установлены на более чем 400 миллионах сайтов. Исследователь Дэниэл Кард проанализировал выборку около 3500 площадок и оценил долю уязвимых экземпляров менее чем в 15%. Даже при такой оценке речь идёт о десятках миллионах потенциальных жертв.</p><h2>Что делать</h2><ol><li>Проверить версию WordPress в админ-панели или через WP-CLI.</li><li>Обновиться до 6.9.5, 7.0.2 или 6.8.6 в зависимости от текущей ветки.</li><li>Убедиться, что принудительное автообновление действительно применилось.</li><li>Проверить журналы доступа на обращения к /wp-json/batch/v1.</li><li>Если обновление невозможно срочно — временно заблокировать endpoint /wp-json/batch/v1 на WAF.</li></ol><h2>Выводы</h2><blockquote>Атака не требует предварительных условий и может быть использована анонимным пользователем на стоковой установке WordPress без плагинов.</blockquote><p>WP2Shell — редкий случай, когда уязвимость затрагивает ядро CMS, а не стороннее расширение. WordPress.org пошёл на нехарактерный шаг — принудительную доставку патчей, — что говорит о серьёзности угрозы. Если вы администратор сайта на WordPress, обновление до актуальных версий — приоритетная задача.</p><p>Источник: <a href="https://tech.slashdot.org/story/26/07/20/234246/hackers-are-exploiting-recently-patched-wordpress-bugs-putting-millions-of-websites-at-risk">Slashdot</a> (цитирует TechCrunch).</p>]]></content:encoded>
    </item>
    <item>
      <title>Hugging Face взломан автономным ИИ-агентом: что известно об инциденте</title>
      <link>https://tproger.ru/news/hugging-face-vzloman-avtonomnym-ii-agentom-chto-izvestno-ob-inci</link>
      <comments>https://tproger.ru/news/hugging-face-vzloman-avtonomnym-ii-agentom-chto-izvestno-ob-inci?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/hugging-face-vzloman-avtonomnym-ii-agentom-chto-izvestno-ob-inci</guid>
      <description><![CDATA[<p>Hugging Face сообщила о взломе производственной инфраструктуры автономным ИИ-агентом. Разбираем, как атаковали, что украли и что делать пользователям.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/hugging-face-vzloman-avtonomnym-ii-agentom-chto-izvestno-ob-inci">Hugging Face взломан автономным ИИ-агентом: что известно об инциденте</a>»</p>]]></description>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Взлом]]></category>
      <category><![CDATA[Сделано с помощью ИИ]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Инфраструктура]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 20 Jul 2026 04:43:49 GMT</pubDate>
      <content:encoded><![CDATA[<p><b>Hugging Face</b> — крупнейшая площадка для открытых ИИ-моделей — сообщила об атаке на свою производственную инфраструктуру. Злоумышленник действовал через автономную систему ИИ-агентов, которая без участия человека выполнила тысячи шагов в короткоживущих песочницах.</p><p>Инцидент произошёл в середине июля 2026 года. Первоначальный доступ агент получил через вредоносный датасет: он использовал удалённый загрузчик кода и внедрение шаблонов в конфигурации датасета, чтобы выполнить код на рабочем узле обработки данных. С этого узла агент повысил привилегии до уровня ноды, собрал облачные и кластерные учётные данные и за выходные переместился в несколько внутренних кластеров.</p><p>Автономный ИИ-агент получил доступ к производственной инфраструктуре Hugging Face.</p><p>Точка входа — вредоносный датасет с двумя путями выполнения кода.</p><p>Похищены ограниченный набор внутренних датасетов и несколько сервисных credentials.</p><p>Компания не нашла признаков изменений публичных моделей, датасетов, Spaces и supply chain.</p><p>Пользователям рекомендуется сменить токены и проверить активность аккаунта.</p><p>Для криминалистики Hugging Face использовала китайскую модель Z.ai GLM 5.2 — западные фронтирные модели отказали из-за guardrails.</p><h2>Как проходила атака</h2><p>Атака началась не с уязвимости в модели, а с данных. Злоумышленник загрузил вредоносный датасет, который при обработке запускал код внутри инфраструктуры Hugging Face. Агент использовал два вектора: удалённый загрузчик кода датасета и template injection в конфигурации. После выполнения кода на рабочем узле он повысил привилегии до уровня ноды, собрал облачные и кластерные credentials и за выходные переместился между несколькими внутренними кластерами.</p><p>Компания подчеркнула, что атака велась автономно: агенты выполнили «многие тысячи отдельных действий в рое короткоживущих песочниц», а командный сервер размещался на публичных сервисах и самоперемещался.</p><h2>Что делает инцидент необычным</h2><p>Раньше ИИ в кибератаках чаще помогал злоумышленникам писать код или искать уязвимости. Здесь речь идёт об автономной системе агентов, которая действовала end-to-end: от первичного доступа до сбора credentials и lateral movement. Это один из первых публичных случаев, когда крупная платформа признала именно такой сценарий — «агентичного нападающего».</p><h2>Меры и рекомендации</h2><p>Hugging Face сообщила, что закрыла первопричину — оба пути выполнения кода, через которые проник агент. Кроме того, компания:</p><ul><li>удалила закрепление злоумышленника в скомпрометированных кластерах и пересобрала узлы;</li><li>отозвала и заменила скомпрометированные credentials и токены, а также провела широкую ротацию секретов;</li><li>ввела дополнительные guardrails и строгие admission controls в кластерах;</li><li>улучшила детектирование и оповещения, чтобы реагировать в течение минут круглосуточно.</li></ul><p>Пользователям рекомендуется заменить access tokens и проверить недавнюю активность в аккаунтах.</p><h2>Почему расследование использовало GLM 5.2</h2><p>В ходе расследования команда Hugging Face обратилась к модели Z.ai GLM 5.2 — открытой китайской модели. По словам компании, западные фронтирные модели отказали в запросах, содержащих реальные команды атаки, эксплойты и артефакты C2: их защитные guardrails срабатывали и не позволяли отличить атакующего от легитимного реагирования на инцидент. Hugging Face назвала это «пробелом, на который стоит обращать внимание»: защитникам нужна собственная модель, готовая к работе на своей инфраструктуре, чтобы не терять время и не выводить данные инцидента наружу.</p><h2>Выводы</h2><blockquote>Практический урок для защитников: имейте проверенную модель, которую можно запустить на собственной инфраструктуре, до того как инцидент произойдёт. Это позволяет избежать блокировки guardrails и не выводить данные атакующего за пределы своего окружения.</blockquote><p>Инцидент показывает, что автономные ИИ-агенты становятся не только инструментом защитников, но и оружием атакующих. Пока индустрия обсуждает safety и alignment моделей, злоумышленники уже могут использовать открытые веса без ограничений. Первоисточник: <a href="https://thehackernews.com/2026/07/worlds-largest-ai-model-repository.html">The Hacker News</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Бэкдор в предложении о работе на LinkedIn</title>
      <link>https://tproger.ru/articles/bekdor-v-predlozhenii-o-rabote-na-linkedin</link>
      <comments>https://tproger.ru/articles/bekdor-v-predlozhenii-o-rabote-na-linkedin?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Лесных Анна]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/bekdor-v-predlozhenii-o-rabote-na-linkedin</guid>
      <description><![CDATA[<p>Кейс-предостережение: автор статьи получил невинную просьбу посмотреть код, но в последний момент решил перестраховаться. И не зря: его дожидались глубоко запрятанный вредонос и две подставные личности.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/bekdor-v-predlozhenii-o-rabote-na-linkedin">Бэкдор в предложении о работе на LinkedIn</a>»</p>]]></description>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 13 Jul 2026 11:35:14 GMT</pubDate>
      <content:encoded><![CDATA[<p><i>От переводчика: это перевод статьи Романа Иманкулова <a href="https://roman.pt/posts/linkedin-backdoor/">“A backdoor in a LinkedIn job offer”</a>. Автор рассказывает, как чуть не стал жертвой атаки, о которой до этого знал только понаслышке, и показывает, как ему удалось найти хитро замаскированный бэкдор среди на первый взгляд безобидных тестов. </i></p><p>На прошлой неделе мне в личку на LinkedIn постучалась рекрутер из небольшого криптостартапа. Мы пообщались пару дней; она рассказала о неработающем прототипе, для которого им нужен ведущий разработчик, и прислала ссылку на публичный GitHub-репозиторий для ревью. А именно, попросила «посмотреть проблему с устаревшими модулями Node».</p><p>В просьбе посмотреть существующий код нет ничего странного, но что-то мне не давало покоя, и я решил подстраховаться.</p><p>Вместо клонирования репозитория и локальной установки зависимостей я запустил временный VPS на Hetzner, склонировал проект туда и дал доступ к нему ИИ-ассистенту <a href="https://pi.dev/">Pi</a> в режиме «только чтение», активировав исключительно инструменты для чтения файлов:</p><p>Попросил агента пробежаться по коду и подсветить все подозрительные моменты. Он почти сразу же споткнулся о файл app/test/index.js.</p><h2>Бэкдор</h2><p>Проект выглядел как типичное приложение с фронтендом на React и бэкендом на Node. Западня пряталась в файле app/test/index.js — примерно 250 строк кода, оформленных под тесты. Внутри этого файла URL-адрес собирался по частям:</p><p>В итоге получалась ссылка https://rest-icon-handler.store/icons/77.</p><p>А дальше, прямо посреди кучи закомментированных тестов, лежал загрузчик, который запускал всё, что прилетало обратно от сервера.</p><figure><img src="https://media.tproger.ru/user-uploads/115839/2026-07-09/a5571752-099b-43dd-9a71-40db6c2aff3d.webp" alt="" /><figcaption>Вредоносный код на строке 225, спрятанный у всех на виду среди закомментированных тестов.</figcaption></figure><h2>Механизм запуска</h2><p>Файлу даже не нужно, чтобы вы запускали тесты. В самом app/index.js вызывается const test = require('./test'), который подгружает и выполняет app/test/index.js.</p><p>В package.json запуск app/index.js вшит прямо в инициализацию проекта:</p><figure><img src="https://media.tproger.ru/user-uploads/115839/2026-07-09/8244ebbd-6bba-4bfb-b97f-079ec320f8ef.webp" alt="" /><figcaption>Скрипт prepare вызывает app:pre, который запускает команду node app/index.js.</figcaption></figure><p>Главная деталь здесь — скрипт prepare. npm запускает его автоматически сразу после завершения npm install, так что для активации бэкдора достаточно просто установить зависимости.</p><p>Просьба «разобраться с устаревшими модулями Node» была всего лишь приманкой с целью вынудить меня запустить npm install.</p><p>В принципе, можно было дать вредоносному коду запуститься в песочнице и посмотреть, что сервер пришлёт на втором этапе атаки, но я решил на этом остановиться. Хватило и того факта, что репозиторий выполняет всё, что ему присылает сторонний сервер.</p><h2>Кража личности</h2><p>Коммиты в репозитории были сделаны от имени реального разработчика — фулстек-инженера с обычным профилем в LinkedIn, личным сайтом и давней историей на GitHub. Я написал ему, притворившись, что унаследовал кодовую базу и у меня есть пара вопросов по ней, чтобы посмотреть, как он отреагирует.</p><p>Он сказал, что никогда с этими людьми не работал. Его личность уже использовали на GitHub для создания фейков, из-за чего один из репозиториев заблокировали, и к этой кодовой базе он не имеет никакого отношения. Он также подавал жалобы на эти проекты.</p><figure><img src="https://media.tproger.ru/user-uploads/115839/2026-07-09/473dc71e-bb93-40ce-8e25-14cdb8fa6bb5.webp" alt="" /><figcaption>Вся история изменений из 39 коммитов приписана разработчику, который никогда не работал с этим репозиторием.</figcaption></figure><h2>Вторая украденная личность</h2><p>Профиль рекрутера принадлежал реальной журналистке, довольно известной в области культуры и никак не связанной с технологиями. Когда я схитрил и сообщил, что по какой-то причине у меня не получается установить проект, журналистка моментально превратилась в знатока npm и версий Node. Это выглядело весьма забавно.</p><figure><img src="https://media.tproger.ru/user-uploads/115839/2026-07-09/4b94dc86-69c5-4893-96f7-82cbc308061f.webp" alt="" /><figcaption>Далёкий от ИТ рекрутер вдруг начинает рассуждать о версиях Node и активно уговаривает меня запустить npm install.</figcaption></figure><h2>Это может случиться с каждым</h2><p>Я знал о таких атаках, но она всё равно застала меня врасплох. Какие-то подозрения появились с первых же сообщений, но будь я более уставшим или если бы я куда-то спешил, то запросто мог бы на автомате запустить npm install. Так что если вам пишут в LinkedIn с предложением посмотреть репозиторий, чуточка паранойи и правила цифровой гигиены точно не повредят.</p><p>Ещё один важный урок: проверять код с помощью ИИ-ассистента в режиме «только чтение» оказалось эффективнее, чем разбираться во всём самому. Бэкдор замаскировали под небрежный код начинающего разработчика, но агент обнаружил его за секунды.</p><p>Я отправил жалобы на репозиторий в GitHub и на профиль рекрутера в LinkedIn. Пока ничего не изменилось, код всё ещё висит в открытом доступе.</p>]]></content:encoded>
    </item>
    <item>
      <title>Новый вредонос PamStealer атакует macOS через поддельный Maccy</title>
      <link>https://tproger.ru/news/novyj-vredonos-pamstealer-atakuet-macos-cherez-poddelnyj-maccy</link>
      <comments>https://tproger.ru/news/novyj-vredonos-pamstealer-atakuet-macos-cherez-poddelnyj-maccy?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/novyj-vredonos-pamstealer-atakuet-macos-cherez-poddelnyj-maccy</guid>
      <description><![CDATA[<p>Исследователи Jamf нашли macOS-инфостилер PamStealer, который маскируется под Maccy и проверяет пароль через PAM. Разбираем, как он работает и как защититься.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/novyj-vredonos-pamstealer-atakuet-macos-cherez-poddelnyj-maccy">Новый вредонос PamStealer атакует macOS через поддельный Maccy</a>»</p>]]></description>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[macOS]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 04 Jul 2026 13:20:10 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если вы скачиваете утилиты для macOS не из Mac App Store — проверьте источник перед установкой. Исследователи из компании <a href="https://www.jamf.com/">Jamf</a> обнаружили новый вредонос <b>PamStealer</b>, который распространяется под видом популярного менеджера буфера обмена <a href="https://maccy.app/">Maccy</a> и использует редкую комбинацию приёмов, чтобы остаться незамеченным.</p><p><b>PamStealer</b> — это <b>инфостилер</b> (вредонос, крадущий данные), написанный на языке Rust. Он ориентирован на компьютеры Apple с процессорами Apple Silicon и собирает пароли, данные браузеров и, по данным исследователей, обращается к аккаунтам Ethereum.</p><p>Главная особенность новой угрозы — способ проверки пароля. Вместо запуска вспомогательных утилит вроде dscl или security вредонос использует встроенный в macOS интерфейс <b>PAM</b> (Pluggable Authentication Modules). Это делает проверку тише и оставляет меньше следов для защитных решений.</p><p>PamStealer — новый macOS-инфостилер, замаскированный под менеджер буфера обмена Maccy.</p><p>Первая стадия доставляется как AppleScript внутри образа диска DMG; запуск через Command-R обходит карантин macOS.</p><p>Вторая стадия написана на Rust, маскируется под Finder, шифрует связь с сервером управления и откладывает запрос полного доступа к диску до 40 минут.</p><p>Пароль жертвы проверяется локально через системный интерфейс PAM, без запуска дополнительных процессов.</p><p>Угроза нацелена на компьютеры Apple с процессорами Apple Silicon.</p><h2>Как распространяется</h2><p>Злоумышленники распространяют PamStealer в образе диска DMG, который выглядит как установщик Maccy. Внутри находится файл AppleScript (.scpt). При двойном клике macOS открывает его в Script Editor, а жертве предлагается нажать <b>Command-R</b> — якобы для запуска установки. Эта команда выполняет вредоносный код и снимает атрибут карантина com.apple.quarantine, который обычно предупреждает о запуске файлов из интернета.</p><p>Для загрузки второй стадии AppleScript содержит самодостаточный <b>JXA</b> (JavaScript for Automation) загрузчик. Он использует нативные Objective-C API вместо привычных shell-команд вроде curl или zsh, что ещё больше снижает заметность для защитных решений.</p><h2>Что делает вторая стадия</h2><p>Вторая стадия — компактный бинарник Mach-O для Apple Silicon. Он размещается внутри поддельного приложения, которое выдаёт себя за системный Finder: исследователи видели идентификаторы com.apple.finder.core и com.apple.finder.monitor. Поддельное приложение использует настоящую иконку Finder. Бинарник написан на Rust — для macOS-инфостилеров это относительно редкий выбор: чаще встречаются Swift, Go или Objective-C.</p><p>После запуска PamStealer показывает поддельный системный запрос пароля с текстом «Maccy wants to make changes. Enter your password to allow this». Если пароль неверный, запрос появляется снова. После успешной проверки вредонос выводит сообщение о повреждённом файле, чтобы жертва не заподозрила неладное.</p><p>Чтобы собрать больше данных, PamStealer запрашивает полный доступ к диску, но делает это с задержкой до <b>40 минут</b> после запуска. Так временной разрыв между инфицированием и подозрительным действием затрудняет анализ инцидента.</p><h2>Кто под угрозой</h2><p>Угроза актуальна для пользователей macOS на чипах Apple Silicon, которые скачивают приложения со сторонних сайтов. Подлинный Maccy распространяется через официальный сайт и менеджер пакетов Homebrew; заражённый образ выдаёт себя за него, но получен из неизвестного источника.</p><h2>Как защититься</h2><ul><li>Скачивайте приложения только с официальных сайтов или из Mac App Store.</li><li>Не вводите пароль администратора в запросах от незнакомых приложений.</li><li>Проверяйте кодовую подпись и нотаризацию перед установкой (Системные настройки → Конфиденциальность и безопасность).</li><li>Используйте Endpoint Detection and Response (EDR) для macOS.</li><li>Регулярно обновляйте macOS и приложения.</li></ul><h2>Выводы</h2><blockquote>Вредоносы для macOS продолжают развиваться, переходя на более тихие цепочки выполнения и нативные реализации, которые снижают возможности традиционного обнаружения, оставаясь совместимыми со стандартными функциями системы.</blockquote><p>PamStealer демонстрирует, что macOS-угрозы продолжают эволюционировать: они всё чаще используют нативные API, уходят от shell-команд и затягивают временные интервалы между этапами атаки. Для пользователей главная защита — привычка устанавливать ПО только из проверенных источников и внимательность к системным запросам пароля.</p><p>Подробнее — в материале <a href="https://arstechnica.com/security/2026/07/new-pamstealer-macos-malware-uses-clever-tradecraft-to-remain-stealthy/">Ars Technica</a>.</p><p><b>Проверьте, откуда скачаны ваши приложения для macOS.</b></p>]]></content:encoded>
    </item>
    <item>
      <title>Будущее мошенничества уже здесь: как LLM превращают целевые атаки в массовый продукт</title>
      <link>https://tproger.ru/articles/budushhee-mowennichestva-uzhe-zdes-kak-llm-prevrashhayut-celevye-atak</link>
      <comments>https://tproger.ru/articles/budushhee-mowennichestva-uzhe-zdes-kak-llm-prevrashhayut-celevye-atak?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/budushhee-mowennichestva-uzhe-zdes-kak-llm-prevrashhayut-celevye-atak</guid>
      <description><![CDATA[<p>Точечная атака LLM на ваши аккаунты может начаться с письма рекрутера. Разбираем, почему старые эвристики безопасности больше не работают и что делать.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/budushhee-mowennichestva-uzhe-zdes-kak-llm-prevrashhayut-celevye-atak">Будущее мошенничества уже здесь: как LLM превращают целевые атаки в массовый продукт</a>»</p>]]></description>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 25 Jun 2026 08:15:12 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если вы ищете работу и получили идеально подходящее предложение от рекрутера в LinkedIn — не спешите радоваться. Это может быть не вакансия, а первая сцена массовой пьесы, поставленной LLM специально для вас.</p><p>Сценарий придумал разработчик и исследователь безопасности <b>Manish Goregaokar</b> в материале <a href="https://manishearth.github.io/blog/2026/06/17/the-future-of-the-con-is-already-here/">«The Future of the Con Is Already Here»</a>, опубликованном 17 июня 2026 года. Его герой проходит «собеседование», подписывает NDA через фальшивый SSO, а спустя полгода обнаруживает украденную личность, пустой брокерский счёт и отсутствие доступа к почте. И всё это — работа одной языковой модели.</p><p>Что такое <b>LLM-афера</b>? Это не просто сгенерированное фишинговое письмо. Это целая цепочка действий — исследование жертвы, создание правдоподобного контекста, поддельные интервью, компрометация аккаунтов и извлечение денег — которую модель может поддерживать тысячами копий одновременно.</p><p>LLM заполняют середину между дешёвым спамом и дорогими целевыми атаками: аферы становятся персонализированными и масштабируемыми одновременно.</p><p>Цена персонализированного фишинга уже измеряется центами за письмо, а успешность почти втрое выше обычной рассылки.</p><p>Масштабируемость даёт атакующим терпение, возможность комбинировать схемы и превращать тысячи скомпрометированных аккаунтов в инструмент давления на платформы.</p><p>Привычные проверки реальности — красивый текст, веб-присутствие, голос, видео — перестают быть надёжными.</p><p>Новая защита: многоканальная верификация через инициированный вами контакт, аппаратный 2FA и понимание «швов» в системах.</p><h2>Как выглядит атака: от письма рекрутера до пустого брокерского счёта</h2><h3>Подготовка и вход</h3><p>Атака начинается не со спама, а с <b>разведки</b>. LLM собирает досье из открытых источников: резюме, публикации, соцсети, упоминания конференций. На основе этого она выбирает приманку — скажем, вакансию в компании, о которой вы мечтаете, с зарплатой чуть выше рынка.</p><p>Дальше — письмо от рекрутера, идеально попадающее в ваш опыт; короткий скрининг; и ссылка на подписание NDA в сервисе для юридических документов. Вы входите через Sign in with Google или Apple ID — и видите привычную страницу входа. Но это не настоящий OAuth: атакующий использует ваш пароль и последующий запрос двухфакторной аутентификации, чтобы создать сессию в вашем настоящем аккаунте.</p><h3>Длительная эксплуатация</h3><p>После компрометации модель не действует сразу. Она <b>мониторит</b> почту и календарь, фильтрует предупреждения от банков и облачных сервисов, чтобы жертва не заметила следов. Скачиваются файлы, ищется информация для кражи личности, открываются кредитные карты.</p><p>Чтобы вывести деньги, атакующий может войти в брокерский счёт, который вы не трогаете месяцами, добавить счёт получателя и переводить небольшие суммы, имитируя обычную активность. Перевод запланирован на отпуск — модель знает даты из вашего календаря.</p><h3>Финал</h3><p>Когда риск раскрытия становится высоким, жертва блокируется из собственных аккаунтов. Процесс восстановления занимает месяцы, а часть средств уже не вернуть. Ирония в том, что «отказ» после собеседования был нужен только для того, чтобы вы не задавали лишних вопросов и не меняли пароли.</p><h2>Почему раньше это казалось невозможным</h2><p>Раньше угрозы были примерно бимодальными. С одной стороны — дешёвый <b>спам</b>, который ловит менее внимательных пользователей. С другой — дорогие <b>целевые атаки</b>, которые имеют смысл только против VIP или крупных сумм: классический пример — <a href="https://edition.cnn.com/2024/02/04/asia/hong-kong-deepfake-scam-25-million-intl-hnk/index.html">афера на $25 млн в Гонконге</a> с использованием дипфейков на видеоконференции.</p><blockquote>В принципе, вы либо имеете дело с Моссадом, либо не имеете. Если противник — не Моссад, то вам достаточно хорошего пароля и игнорирования писем от ChEaPestPAiNPi11s@virus-basket.biz.ru.</blockquote><p>Эта шутка отражает старую реальность: возможности атакующих были либо очень дешёвыми и неточными, либо очень дорогими и точными. Целевую атаку на рядового специалиста просто не окупалось: нужна была команда, время, инфраструктура, и это не масштабировалось.</p><p>LLM меняют распределение. Исследование 2024 года показало, что персонализированный <b>spear phishing</b> с помощью языковых моделей <a href="https://arxiv.org/abs/2412.00586">обходится примерно в 4 цента за письмо</a>, а в более позднем эксперименте на 7700 участниках LLM-письма <a href="https://arxiv.org/abs/2412.00586">дали кликабельность 10,0%</a> против 3,9% у обычных рассылок. Модели 2026 года заметно сильнее.</p><h2>Что даёт масштабируемость</h2><p>Когда афера стоит центы, её можно запускать в цикле. Это не метафора: один оператор может вести тысячи сценариев параллельно. Масштаб открывает три новых свойства, которых раньше не было у индивидуальных атак.</p><ul><li><b>Терпение.</b> Человеческая бригада не может ждать месяцами между этапами. LLM-жертв — тысячи, поэтому часть сценариев может «спать» полгода и активироваться в нужный момент.</li><li><b>Композиция.</b> Мелкая афера может найти «финансового мула», который потом поможет вывести крупную сумму. Маленькие разводы складываются в большую машину.</li><li><b>Новые цели.</b> Тысяча скомпрометированных аккаунтов — это не просто украденные деньги, а тысяча аутентифицированных позиций внутри платформ. Их можно использовать одновременно, чтобы эксплуатировать «швы» систем, с которыми банки и сервисы мирились как с приемлемым риском.</li></ul><p>Goregaokar приводит аналогию с фильмом <b>«Афера»</b> (1973): то, что раньше требовало зала, реквизита, костюмов и десятков людей, сегодня может получиться за несколько запросов к модели.</p><h2>Почему наши эвристики ломаются</h2><p>Мы привыкли проверять реальность по косвенным признакам. Хороший русский язык, персональные детали, активный LinkedIn, возможность позвонить или выйти на видео — всё это было признаком настоящего человека и реальной организации, потому что такой уровень работы стоил денег и времени.</p><p>Сегодня эти признаки генерируются за минуты. LLM пишет текст, клонирует голос, создаёт дипфейк-видео в реальном времени, делает поддельный сайт и поддельные профили. <b>Эвристики, построенные на стоимости обмана, перестают работать.</b></p><p>Появляется и обратный эффект — <b>дивиденд лжеца</b>: мы перестаём быть уверены в том, что видим и слышим. Если родственник просит срочно перевести деньги на видеозвонке, вы не можете быть уверены, что это он, и не можете быть уверены, что его аккаунт не взломали. Проверка требует всё больших усилий.</p><p>Проблема касается не только людей, но и институтов. В США потребительская защита <b>Regulation E</b> чётко разделяет несанкционированный перевод (банк обязан вернуть деньги) и ситуацию, когда вас убедили перевести деньги сами. Когда LLM может действовать изнутри вашего аккаунта, эта граница размывается. В Великобритании в 2024 году приняли закон, обязывающий банки возмещать ущерб жертвам так называемого authorized push payment fraud — признание того, что старая логика уже не работает.</p><h2>Что делать</h2><p>Полностью застраховаться от обмана невозможно — <b>оптимальное количество мошенничества не равно нулю</b>. Но можно сделать себя дорогой и неудобной целью.</p><ol><li><b>Ищите скелет аферы.</b> Срочность, секретность, просьба действовать по необычному каналу — классические маркеры. Они остаются даже при идеальной подаче.</li><li><b>Верифицируйте через инициированный вами контакт.</b> Письмо, которое вы сами написали на известный адрес, скорее всего дойдёт до адресата. Звонок, который вы сами сделали на сохранённый номер, скорее всего дойдёт до устройства. Поля From: и Caller ID подделываются.</li><li><b>Договоритесь о устных паролях с близкими.</b> Если родственник звонит с просьбой о деньгах, попросите назвать слово, которое знаете только вы двое.</li><li><b>Используйте аппаратный 2FA.</b> FIDO2/WebAuthn привязывает подпись к домену сайта, поэтому фишинговая страница не сможет просто перебросить подтверждение. SMS и OTP-приложения уязвимы для фишинга в реальном времени.</li><li><b>Снижайте публичное досье.</b> Чем меньше персональных данных связано с вашим email, тем сложнее LLM построить убедительный сценарий.</li></ol><p>Важно понимать, кого защищают системы, которыми вы пользуетесь. Многие «швы» — например, лояльное отношение к спорным переводам или простая смена получателя — существуют не потому, что банки глупы, а потому что удобство стоит дороже редких потерь. Когда такие «швы» начинают эксплуатировать тысячи скомпрометированных аккаунтов одновременно, экономика меняется, и платформам придётся пересматривать правила.</p><h2>Выводы</h2><p>Будущее мошенничества уже здесь, но распределено неравномерно. Все описанные возможности — клонирование голоса, дипфейк-видео, автоматическое исследование жертв, мониторинг скомпрометированных аккаунтов — существуют сегодня и будут только дешеветь.</p><blockquote>Будущее мошенничества уже здесь. Оно просто распределено неравномерно.</blockquote><p>Следующие годы станут гонкой вооружений: платформы и регуляторы будут пересматривать защиту, а атакующие — искать новые «швы». Пока институции адаптируются, единственное, что остаётся лично нам, — обновить эвристики: не доверять входящим каналам, верифицировать через исходящие и делать себя дорогой целью. И помогать разобраться родителям и друзьям, которые о таких вещах могут не знать.</p><h2>Источники</h2><p>— <a href="https://manishearth.github.io/blog/2026/06/17/the-future-of-the-con-is-already-here/">Manish Goregaokar — The Future of the Con Is Already Here, It's Just Not Evenly Distributed</a></p><p>— <a href="https://arxiv.org/abs/2412.00586">Evaluating Large Language Models' Capability to Launch Fully Automated Spear Phishing Campaigns</a></p><p>— <a href="https://www.schneier.com/blog/archives/2015/08/mickens_on_secu.html">Bruce Schneier — Mickens on Security</a></p><p>— <a href="https://edition.cnn.com/2024/02/04/asia/hong-kong-deepfake-scam-25-million-intl-hnk/index.html">CNN — Hong Kong worker loses $25 million in deepfake video call scam</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Операция Endgame отключила 106 серверов SocGholish и очистила почти 15 000 сайтов на WordPress</title>
      <link>https://tproger.ru/news/operaciya-endgame-otklyuchila-106-serverov-socgholish-i-ochistila-po</link>
      <comments>https://tproger.ru/news/operaciya-endgame-otklyuchila-106-serverov-socgholish-i-ochistila-po?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/operaciya-endgame-otklyuchila-106-serverov-socgholish-i-ochistila-po</guid>
      <description><![CDATA[<p>Международная операция Endgame вывела из строя 106 серверов SocGholish и очистила 14 971 заражённый сайт на WordPress. Разбираем угрозу и защиту.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/operaciya-endgame-otklyuchila-106-serverov-socgholish-i-ochistila-po">Операция Endgame отключила 106 серверов SocGholish и очистила почти 15 000 сайтов на WordPress</a>»</p>]]></description>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[WordPress]]></category>
      <category><![CDATA[Хакеры]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 20 Jun 2026 06:45:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Международная операция <b>Endgame</b> вывела из строя 106 серверов малвари <b>SocGholish</b> и очистила 14 971 заражённый сайт на WordPress. За действиями стоят правоохранительные органы Нидерландов, Канады, Германии и США.</p><p>В рамках Operation Endgame отключены 106 серверов SocGholish и очищены 14 971 заражённый сайт на WordPress.</p><p>SocGholish (он же FakeUpdates) — JavaScript-даунлоудер, активен с 2017 года и доставляет шифровальщиков и шпионское ПО.</p><p>Распространяется через скомпрометированные сайты под видом обновлений Chrome, Firefox и популярного софта.</p><p>Связан с группами Evil Corp, LockBit, RansomHub, Dridex и Raspberry Robin.</p><p>Владельцам сайтов рекомендовано обновить CMS, сменить учётные данные и удалить подозрительные аккаунты.</p><p>Операция прошла в рамках инициативы <b>Operation Endgame</b>, запущенной в 2024 году для борьбы с ботнетами и криминальной инфраструктурой. Владельцам очищенных сайтов уже разосланы уведомления: обновить CMS, изменить пароли и удалить подозрительные учётные записи.</p><p><b>SocGholish</b> — один из старейших JavaScript-даунлоудеров. Он заражает компьютеры через взломанные сайты, предлагая посетителям фальшивые обновления браузеров или популярного ПО. После установки малварь открывает начальный доступ к системе, который затем используется для атак шифровальщиками и шпионским ПО.</p><p>За годы активности за SocGholish закрепились множество имён: FakeUpdates, Gold Prelude, TA569 и UNC1543. Инфраструктура малвари тесно связана с группами <b>Evil Corp</b>, <b>LockBit</b>, <b>RansomHub</b>, <b>Dridex</b> и <b>Raspberry Robin</b>.</p><h2>Как защитить свой сайт</h2><ul><li>Регулярно обновляйте WordPress, плагины и темы.</li><li>Используйте сложные уникальные пароли и двухфакторную аутентификацию.</li><li>Проверьте список администраторов и удалите подозрительные аккаунты.</li><li>Мониторьте файлы сайта на наличие внедрённого JavaScript-кода.</li></ul><p>Operation Endgame называет эту операцию началом дальнейших действий против SocGholish. Хотя часть инфраструктуры отключена, экосистема малвари включает аффилиатов и системы распределения трафика, поэтому угроза сохраняется. Подробности — в <a href="https://thehackernews.com/2026/06/operation-endgame-disrupts-socgholish.html">первоисточнике на The Hacker News</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>144 пакета Mastra в npm скомпрометированы через взломанный аккаунт контрибьютора</title>
      <link>https://tproger.ru/news/144-paketa-mastra-v-npm-skomprometirovany-cherez-vzlomannyj-akkau</link>
      <comments>https://tproger.ru/news/144-paketa-mastra-v-npm-skomprometirovany-cherez-vzlomannyj-akkau?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/144-paketa-mastra-v-npm-skomprometirovany-cherez-vzlomannyj-akkau</guid>
      <description><![CDATA[<p>Хакеры взломали аккаунт экс-контрибьютора Mastra и опубликовали 144 вредоносных пакета в npm. Разбираем, как работает атака и что делать разработчикам.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/144-paketa-mastra-v-npm-skomprometirovany-cherez-vzlomannyj-akkau">144 пакета Mastra в npm скомпрометированы через взломанный аккаунт контрибьютора</a>»</p>]]></description>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 17 Jun 2026 12:15:30 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если в вашем проекте есть пакеты @mastra/* — проверьте lock-файлы и логи CI. Утром 17 июня 2026 года злоумышленники опубликовали 144 вредоносные версии в npm-пространстве имён Mastra, добавив в зависимости троянскую библиотеку.</p><ul><li>Скомпрометированы 144 пакета в пространстве имён @mastra/*, включая @mastra/core.</li><li>Атака шла через взломанный аккаунт бывшего контрибьютора ehindero.</li><li>Вредоносная библиотека easy-day-js запускалась через postinstall и устанавливала кроссплатформенный стилер.</li><li>npm уже откатил latest-теги и удалил вредоносные версии у ключевых пакетов.</li></ul><h2>Как прошла атака на пакеты Mastra в npm</h2><p>Mastra — это open-source фреймворк на JavaScript и TypeScript для создания ИИ-приложений и агентов. Только @mastra/core скачивают более 918 тыс. раз в неделю, поэтому инцидент затронул огромное число разработчиков и CI-сред.</p><p>По данным исследователей из JFrog, SafeDep, Socket и StepSecurity, атака длилась 88 минут. Злоумышленники массово публиковали версии с добавленной зависимостью easy-day-js — клоном популярной библиотеки dayjs. Пакет появился у пользователя sergey2016 16 июня в 7:05 UTC как чистая копия, а вредоносный код был внесён 17 июня в 1:01 UTC.</p><p>При установке easy-day-js срабатывал обфусцированный postinstall-хук (скрипт, который npm запускает автоматически после установки пакета): он отключал проверку TLS, загружал вторую стадию с сервера 23.254.164[.]92, запускал её фоновым процессом и самоудалялся. Финальный троян собирал историю браузера, данные свыше 160 браузерных расширений криптовалютных кошельков и передавал их на C2-сервер 23.254.164[.]123 — сервер управления злоумышленников.</p><h2>Что делать разработчикам</h2><ul><li>Проверить lock-файл: grep easy-day-js package-lock.json или npm ls easy-day-js.</li><li>Откатиться к версии, опубликованной до 17 июня 2026 года (~1:01 UTC), и зафиксировать её в зависимостях.</li><li>Сменить токены npm, GitHub, SSH-ключи и переменные окружения на хостах, где стоял подозрительный пакет.</li><li>Проверить логи сети и DNS на обращения к IoC (индикаторам компрометации): IP 23.254.164[.]92 и 23.254.164[.]123.</li><li>Включить проверку подписей пакетов: npm audit signatures, и в CI требовать SLSA-provenance-attestation.</li></ul><p>npm уже удалил вредоносные версии у ключевых пакетов и вернул latest-теги. Но разработчикам стоит проверить свои системы: полезная нагрузка выполняется ещё на этапе установки, до первого импорта пакета. Источник: <a href="https://thehackernews.com/2026/06/144-mastra-npm-packages-compromised-via.html" rel="noopener noreferrer">The Hacker News</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Production-safe агентный цикл: как не дать ИИ сжечь бюджет</title>
      <link>https://tproger.ru/articles/production-safe-agentnyj-cikl-kak-ne-dat-ii-szhech-byudzhet</link>
      <comments>https://tproger.ru/articles/production-safe-agentnyj-cikl-kak-ne-dat-ii-szhech-byudzhet?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/production-safe-agentnyj-cikl-kak-ne-dat-ii-szhech-byudzhet</guid>
      <description><![CDATA[<p>Как построить production-safe агентный цикл на Python, чтобы ИИ не сжигал бюджет в бесконечных итерациях. Разбираем circuit breaker, ledger и human attestation.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/production-safe-agentnyj-cikl-kak-ne-dat-ii-szhech-byudzhet">Production-safe агентный цикл: как не дать ИИ сжечь бюджет</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Фреймворки и библиотеки]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 17 Jun 2026 09:45:21 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если ваш ИИ-агент работает круглосуточно и не может остановиться — это не автономность, а биллинговая авария, которая уже идёт. В июле 2025 года рекурсивный агентный цикл в Claude Code сжёг от 16 000 до 50 000 долларов за пять часов. Агенты не падают и не выдают ошибку: они делают ровно то, что им сказали, — пока кто-то не скажет остановиться.</p><p>Через четыре месяца четырёхагентный пайплайн на LangChain крутился одиннадцать дней и стоил 47 000 долларов. Никто не заметил, пока не пришёл счёт. Тот же паттерн: цикл работал корректно, но у него не было условия выхода.</p><p>Проблема не в моделях, а в отсутствии условия остановки. В этой статье разберём, как собрать минимальный, но production-ready каркас агентного цикла: спецификацию до запуска, предохранитель по токенам и ходам, неизменяемый аудит и поверхность для человеческого согласования. Полный код и 80 тестов с 100% покрытием доступны в <a href="https://github.com/dannwaneri/production-safe-agent-loop">репозитории автора оригинала</a>.</p><p>Агентные циклы сжигают бюджет не из-за плохих моделей, а из-за нечёткого условия остановки.</p><p>Спецификация должна отвечать на три вопроса: что делает, что не делает и что значит «готово» — в одном предложении.</p><p>Circuit breaker режет цикл по жёстким потолкам: число ходов и суммарные токены. Проверка — до вызова модели, а не после.</p><p>Ledger в SQLite фиксирует каждый ход: хеш входа, дельту токенов, время, результат. Это аудит, а не лог для отладки.</p><p>Review surface даёт поверхность для обязательной человеческой аттестации и формирует аудиторскую квитанцию frame_hash, которую вызывающий код может использовать как условие передачи результата в прод.</p><h2>Что такое агентный цикл и почему он уходит в бесконечность</h2><p>Агентный цикл — это конструкция вида while True, внутри которой языковая модель получает задачу, вызывает инструменты, анализирует результат и решает, продолжать или закончить. Такие циклы лежат в основе оркестраторов вроде LangGraph, CrewAI и AutoGen, а также внутри coding-агентов. Если только начинаете разбираться с LLM, полезно сначала понять, <a href="https://tproger.ru/articles/chto-takoe-llm-dlya-nachinayushhih">как устроены большие языковые модели</a>, а для практики — заглянуть в <a href="https://tproger.ru/articles/python-dlya-nachinayushhih">основы Python</a>.</p><p>Цикл уходит в бесконечность не потому, что модель «глупая», а потому, что никто не определил, что значит «готово». Модель видит неоднозначность и пытается быть полезной: перефразирует вызов инструмента, запускает верифицирующего агента, тот находит «проблему», срабатывает корректирующий агент — и так далее. На дашбордах всё выглядит активно: растёт число вызовов инструментов, completion rate держится высоким, а бюджет течёт в пустоту.</p><p><b>Почему дорожает каждая итерация:</b><br />Агент не начинает с чистого листа. Он каждый раз перечитывает всё предыдущее окно контекста — все неудачные попытки, все промежуточные выводы. Итерация 1 стоит 100 токенов, итерация 10 — уже тысячи. Вы платите за каждый провал снова и снова.</p><h2>Почему компании сначала платят за чатбота, а потом за агентный рабочий процесс</h2><p>Gartner фиксирует разрыв в потреблении токенов между пилотными чатботами и production-агентными рабочими процессами в 5–30 раз. А отчёт FinOps Foundation за 2026 год говорит, что 73% компаний превысили изначальный бюджет на ИИ. Цифры взяты из <a href="https://www.freecodecamp.org/news/how-to-build-a-production-safe-agent-loop-from-exit-conditions-to-audit-trails/">оригинального туториала</a>; полные отчёты Gartner и FinOps Foundation доступны по платным подпискам. Причина разрыва — в неправильном масштабировании: команда планировала стоимость чатбота (~0,04 USD за взаимодействие), а в прод ушёл мультиагентный оркестр (~1,20 USD за взаимодействие, до 70x на сложных задачах).</p><blockquote>A loop that runs without an exit condition isn't autonomous. It's a billing event waiting to happen.</blockquote><h2>Пять примитивов, которые ловят большинство отказов</h2><p>Автор оригинального туториала предлагает не монолитный фреймворк, а пять независимых Python-модулей, которые можно встроить в любой проект. Вместе они покрывают три уровня риска: дисциплину до запуска, принудительную остановку во время работы и доказательства после.</p><ol><li><b>Spec writer</b> — заставляет ответить на три вопроса до первого вызова модели.</li><li><b>Circuit breaker</b> — режет цикл, если превышены потолки по ходам или токенам.</li><li><b>Ledger</b> — ведёт append-only журнал каждого хода в SQLite.</li><li><b>Agent loop</b> — связывает три компонента в единый цикл.</li><li><b>Review surface</b> — собирает пятиэлементный фрейм и требует человеческой аттестации перед выдачей результата.</li></ol><h2>Фаза 1. Определить «готово» до первой строчки кода</h2><p>Самая дорогая ошибка в разработке агентов — не выбор модели, а начало кодинга до того, как команда может одним предложением описать условие завершения. «Агент проверит сайт» — не подходит. «Агент обходит целевой URL, извлекает все теги &lt;title&gt; и &lt;meta name="description"&gt;, помечает отсутствующие или слишком длинные и останавливается» — подходит.</p><p>Spec writer интерактивно запрашивает три поля, сохраняет их значения в SQLite и возвращает неизменяемый SpecResult(frozen=True). Полученный session_id связывает спецификацию, строки журнала и итоговый результат в одну трассируемую сессию.</p><p><b>Почему frozen=True:</b><br />Спецификация — это обязательство, а не черновик. frozen=True запрещает переприсваивать поля объекта SpecResult, поэтому код цикла не может «подвинуть» условие завершения посреди запуска.</p><h2>Фаза 2. Принудить «готово» на лету</h2><p>Circuit breaker задаёт два жёстких потолка: turn_limit — максимальное число обращений к модели, и token_limit — суммарное число токенов за всю сессию. Каждый потолок — «строго больше»: если лимит 5 ходов, пятый ещё разрешён, шестой выбросит исключение.</p><p>Ключевое правило: breaker.check() вызывается до запроса к модели, а не после. Постфактум проверка бессмысленна: токены уже сожжены. Исключение, а не код возврата, — чтобы нельзя было промолчать.</p><h3>Как подобрать лимиты для продакшена</h3><p>Демонстрационные значения 5 ходов / 15 000 токенов слишком жёсткие для реальных задач. Для продакшена автор предлагает настроить лимиты под свой бюджет; в туториале приведён пример breaker = CircuitBreaker(turn_limit=10, token_limit=50000). Если одна сессия должна стоить не дороже 1 USD, а средний ход — 0,10 USD, получается порядка 10 ходов. Конкретный token_limit выбирается исходя из прайсинга модели и среднего размера контекста: чем длиннее история диалога, тем раньше сработает потолок.</p><ul><li>Стартуйте с жёсткими лимитами и разрешайте рост только по метрикам, не по интуиции.</li><li>Отдельно лимитируйте retry-политику: каждый повторный запрос увеличивает и turn_count, и объём контекста.</li><li>Не смешивайте лимит токенов с лимитом выходных токенов модели; circuit breaker считает сумму input + output.</li></ul><h2>Фаза 3. Записывать всё, что нельзя подделать</h2><p>Circuit breaker защищает бюджет. Ledger защищает понимание того, что произошло. Это не лог для отладки, а журнал аудита: каждая строка — один ход, append-only, без обновлений и удалений.</p><p>Три решения стоит взять на заметку. Во-первых, вместо исходного текста сохраняется SHA-256 хеш входа: так не утекают персональные данные, а одинаковые входы разных запусков можно сравнивать. Во-вторых, pass_fail хранится как INTEGER (1/0), потому что у SQLite нет булева типа. В-третьих, временная метка — datetime.now(timezone.utc).isoformat(), так как datetime.utcnow() объявлен устаревшим в Python 3.12.</p><h2>Фаза 4. Цикл, который уважает границы</h2><p>Agent loop — единственный компонент, который обращается к языковой модели. Всё остальное работает локально: проверка потолков, запись в журнал, оценка условия выхода.</p><p>Анатомия одного хода простая и строгая: сначала breaker.check(), потом вызов модели, потом ledger.write(), потом проверка stop_reason. Если модель вернула end_turn — возвращаем результат. Если нет — добавляем сообщение continue и идём на следующий круг.</p><p>Этот вариант цикла — минимальный текстовый. Если агент использует инструменты, в Anthropic API stop_reason может быть tool_use: тогда нужно выполнить инструмент, вернуть его результат в messages и только потом решать, продолжать или завершать.</p><p>Системный промпт обязательно включает все три поля спецификации, а не только done_looks_like. Модели нужна негативная область — то, что агент делать не должен (what_it_does_not), — не меньше, чем позитивная: иначе она начнёт «добавлять ценность» за рамками задачи.</p><h2>Фаза 5. Поверхность согласования: цикл бежит к человеку</h2><p>Circuit breaker и ledger решают технические проблемы, но не отвечают на вопрос: «Соответствует ли результат тому, что обещали?» Именно здесь ошибки проходят в прод: вывод выглядит аккуратным, дашборд зелёный, ревьюер ставит галочку.</p><p>Review surface собирает пятиэлементный фрейм из SQLite и требует явной аттестации:</p><ol><li><b>Исходное обещание</b> — три поля спецификации.</li><li><b>Критерий приёмки</b> — поле done_looks_like как явный бенчмарк.</li><li><b>Diff</b> — вход первого хода, выход последнего, число ходов, токены, сработал ли breaker.</li><li><b>Доказательства</b> — все строки ledger за сессию.</li><li><b>Неразрешённые допущения</b> — строки с breach_reason и failed-ходами.</li></ol><p>После согласования ревьюер вызывает attest(). Функция собирает пятиэлементный фрейм в каноническом порядке и считает от него SHA-256 — получается frame_hash. Это аудиторская квитанция: она доказывает, что ревьюер видел именно этот фрейм, а не краткое резюме.</p><h2>Практический пример: SEO-аудит по расписанию</h2><p>Автор приводит пример SEO-аудита. SEO-аудит имеет естественный ритм: обход, выявление проблем, исправление, ожидание переиндексации. Запускать агента 24/7 бессмысленно — он будет сжигать токены в паузах между событиями. Честная архитектура — cron-задача, которая запускает цикл по расписанию.</p><p><b>Пример упрощён:</b><br />В production-варианте стоит проверять URL (допустимые схемы и хосты) и оборачивать requests.get в try/except requests.RequestException, чтобы агент не падал при недоступности сайта.</p><p>Cron-строка выглядит так:</p><p>Агент выполняет работу, записывает ходы в ledger, и если circuit breaker сработал — результат уходит на человеческую проверку, а не в прод.</p><h2>Провайдер-независимость через адаптер</h2><p>Цикл работает с любым клиентом, удовлетворяющим протоколу LLMClient. По умолчанию используется Anthropic, но через адаптер можно подключить OpenAI, Gemini, Ollama, локальные модели или собственный сервер. В репозитории автора показан иллюстративный пример адаптера для OpenAI. Главное — привести ответ к форме, которую ожидает AgentLoop: usage.input_tokens, usage.output_tokens, content[0].text, stop_reason.</p><h2>Выводы: дисциплина дороже модели</h2><p>Большинство аварий с агентными циклами предотвращаются не интеллектом модели, а чёткими границами. Спецификация до запуска, жёсткие потолки ресурсов, неизменяемый аудит и человеческое согласование — это минимальный набор примитивов, который отделяет автономного агента от неконтролируемого биллингового события.</p><p>Для российских команд это означает, что внедрять LLM-агентов без бюджетных предохранителей — всё равно что запускать бесконечный цикл с доступом к корпоративной карте. Начните с пяти модулей, описанных выше, прогоните их на тестовом дубле модели и только после этого открывайте доступ к реальным API.</p><blockquote>Define what done looks like before you start. That's the job, and always has been.</blockquote><p>Полный код и 80 тестов с 100% покрытием доступны в репозитории автора оригинала: <a href="https://github.com/dannwaneri/production-safe-agent-loop">github.com/dannwaneri/production-safe-agent-loop</a>.</p><p><b>Источник:</b> <a href="https://www.freecodecamp.org/news/how-to-build-a-production-safe-agent-loop-from-exit-conditions-to-audit-trails/">How to Build a Production-Safe Agent Loop — From Exit Conditions to Audit Trails</a>, freeCodeCamp.</p>]]></content:encoded>
    </item>
    <item>
      <title>Три CVE в LiteLLM позволяют захватить ИИ-шлюз</title>
      <link>https://tproger.ru/news/tri-cve-v-litellm-pozvolyayut-zahvatit-ai-wlyuz</link>
      <comments>https://tproger.ru/news/tri-cve-v-litellm-pozvolyayut-zahvatit-ai-wlyuz?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/tri-cve-v-litellm-pozvolyayut-zahvatit-ai-wlyuz</guid>
      <description><![CDATA[<p>Три связанные уязвимости LiteLLM оценены в CVSS 9,9. Разбираем, как обычный пользователь становится админом ИИ-шлюза и как защитить свою инфраструктуру.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/tri-cve-v-litellm-pozvolyayut-zahvatit-ai-wlyuz">Три CVE в LiteLLM позволяют захватить ИИ-шлюз</a>»</p>]]></description>
      <category><![CDATA[Open Source]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 16 Jun 2026 13:30:50 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если в вашей сети стоит <a href="https://github.com/BerriAI/litellm">LiteLLM</a> — проверьте версию. Исследователи <b>Obsidian Security</b> обнаружили цепочку из трёх уязвимостей, которая позволяет обычному пользователю с минимальными правами стать администратором прокси и выполнять произвольный код на сервере. Полная цепочка оценена в <b>CVSS 9,9</b> — критический уровень.</p><p>LiteLLM — популярный open-source ИИ-шлюз, который выступает единой точкой доступа к свыше ста провайдерам моделей (OpenAI, Anthropic, Google Gemini, AWS Bedrock, Azure и другим). Через него проходят API-ключи, промпты и ответы, поэтому компрометация шлюза равнозначна компрометации всей ИИ-инфраструктуры.</p><p>Три CVE объединяются в цепочку: CVE-2026-47101 (обход авторизации), CVE-2026-47102 (повышение привилегий) и CVE-2026-40217 (выполнение кода).</p><p>Оценка полной цепочки — CVSS 9,9. Отдельная CVE-2026-47102 получила 8,7 по CVSS 4.0 и 8,8 по CVSS 3.1.</p><p>Исправление вошло в релиз LiteLLM v1.83.14-stable, опубликованный 2 мая 2026 года — это первый релиз с полным набором патчей.</p><p>Компрометация открывает доступ к мастер-ключу LiteLLM, salt-ключу для расшифровки сохранённых учётных данных, URL базы данных и всем провайдер-ключам, а также позволяет подменять ответы модели.</p><p>Это не первый серьёзный инцидент с LiteLLM в 2026 году: в марте злоумышленники скомпрометировали PyPI-релизы проекта, а в апреле критическая SQL-инъекция эксплуатировалась менее чем через сутки после раскрытия. Новая цепочка пока не зафиксирована в реальных атаках, но её потенциальная опасность сопоставима с полным захватом сервера.</p><h2>Как работает цепочка</h2><p>Атака строится на том, что разные уровни проверок доверяют данным, которые присылает пользователь. Роль internal_user — это учётная запись с низкими правами по умолчанию, которую часто выдают обычным сотрудникам.</p><ul><li><b>CVE-2026-47101 — обход авторизации.</b> Обычный internal_user при создании виртуального ключа может указать поле allowed_routes без проверки. Значение ["/*"] даёт доступ ко всем маршрутам, включая административные.</li><li><b>CVE-2026-47102 — повышение привилегий.</b> Эндпоинт /user/update позволяет пользователю редактировать собственную запись и записать user_role: "proxy_admin". После этого атакующий становится полным администратором.</li><li><b>CVE-2026-40217 — выполнение кода.</b> Механизм Custom Code Guardrail (он запускает Python-скрипты для проверки запросов) компилирует код администратора через exec() без фильтрации. Если в глобальном пространстве имён (globals) не убран __builtins__, Python автоматически подкладывает встроенные функции — нужно лишь вызвать os.system для обратного шелла.</li></ul><h2>Чем это опасно</h2><p>Шлюз сидит между агентом и моделью, поэтому взломанный прокси читает и может изменять всё, что через него проходит. Атакующий получает мастер-ключ LiteLLM, salt-ключ для расшифровки сохранённых учётных данных, URL СУБД и все провайдер-ключи. Кроме утечки данных, он может подменять ответы модели: в демонстрации Obsidian встроенный обратный вызов LiteLLM (callback) подменил ответ Claude Code на поддельный вызов инструмента. Пользователь напечатал одно слово hello, а агент выполнил код, открывший реверс-шелл на машине разработчика.</p><h2>Что делать</h2><ul><li>Обновиться до LiteLLM v1.83.14-stable или новее — это первый релиз с полным набором патчей.</li><li>Перепроверить всех пользователей с ролью proxy_admin: в LiteLLM эта роль может запускать произвольный код через Custom Code Guardrail и MCP, то есть фактически даёт root-доступ на хост.</li><li>Проверить обратные вызовы (callbacks) в litellm_settings.callbacks в config.yaml: они не видны в интерфейсе, но исполняются на каждом запросе.</li><li>Провести аудит Custom Code Guardrail и убедиться в целостности развёрнутого кода, а не только конфигурации.</li><li>При подозрении на компрометацию сменить провайдер-ключи, учётные данные БД и MCP-токены.</li></ul><p>Контекст: ранее Tproger уже разбирал <a href="https://tproger.ru/news/kak-paket-dlya-raboty-s-nejrosetyami-stal-stilerom--polnyj-razbor-">supply chain-атаку на LiteLLM</a>, в ходе которой вредоносные версии пакета попали на PyPI.</p><p>Если в вашей сети есть LiteLLM — обновление и аудит прав стоит провести до конца недели. Подробнее — в <a href="https://thehackernews.com/2026/06/litellm-vulnerability-chain-lets-low.html">первоисточнике</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>OpenAI Codex собрал десятилетние DoS-атаки в HTTP/2 Bomb</title>
      <link>https://tproger.ru/news/openai-codex-sobral-desyatiletnie-dos-ataki-v-http-2-bomb</link>
      <comments>https://tproger.ru/news/openai-codex-sobral-desyatiletnie-dos-ataki-v-http-2-bomb?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/openai-codex-sobral-desyatiletnie-dos-ataki-v-http-2-bomb</guid>
      <description><![CDATA[<p>Codex от OpenAI объединил HPACK-бомбу и Slowloris в HTTP/2 Bomb. Один клиент на 100 Мбит/с выводит сервер из строя за секунды. Проверьте защиту.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/openai-codex-sobral-desyatiletnie-dos-ataki-v-http-2-bomb">OpenAI Codex собрал десятилетние DoS-атаки в HTTP/2 Bomb</a>»</p>]]></description>
      <category><![CDATA[Сетевые протоколы]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 05 Jun 2026 11:41:49 GMT</pubDate>
      <content:encoded><![CDATA[<p>Обновите конфигурацию HTTP/2: ИИ-агент <b>Codex</b> помог обнаружить атаку <b>HTTP/2 Bomb</b>, которая выводит популярные веб-серверы из строя за секунды с обычного домашнего компьютера.</p><p><b>HTTP/2 Bomb</b> — это комбинация двух техник отказа в обслуживании, известных свыше десяти лет: HPACK bomb (класс атаки; известный частный случай — <a href="https://nvd.nist.gov/vuln/detail/CVE-2016-6581" rel="noopener">CVE-2016-6581</a> в библиотеке Python HPACK) и удержания соединений в стиле Slowloris в реализации HTTP/2 Apache (<a href="https://nvd.nist.gov/vuln/detail/CVE-2016-8740" rel="noopener">CVE-2016-8740</a>, <a href="https://nvd.nist.gov/vuln/detail/CVE-2016-1546" rel="noopener">CVE-2016-1546</a>). Первая заставляет сервер резервировать память под динамические таблицы сжатых заголовков, вторая не даёт соединениям закрыться.</p><p>Codex от OpenAI объединил HPACK-бомбу и Slowloris в единую атаку HTTP/2 Bomb.</p><p>Уязвимы стандартные конфигурации nginx, Apache httpd, Microsoft IIS, Envoy и Cloudflare Pingora.</p><p>По данным сканирования Shodan, более 880 тысяч сайтов на HTTP/2 могут быть под угрозой.</p><p>nginx исправлен в версии 1.29.8, Apache — в mod_http2 v2.0.41 (CVE-2026-49975), Envoy выпустил исправление.</p><p>Для Microsoft IIS и Cloudflare Pingora официального исправления пока нет; рекомендуется ограничить число заголовков в запросе или отключить HTTP/2.</p><p>Атаку выявила команда <b>Calif</b> во главе с исследователем <b>Quang Luong</b>. Они использовали Codex для анализа исходного кода: агент заметил, что две известные DoS-техники можно объединить, и помог построить рабочий эксплойт. По словам Luong, домашний компьютер на канале 100 Мбит/с способен сделать уязвимый сервер недоступным за несколько секунд. Против Apache httpd и Envoy один клиент тратит 20 секунд, чтобы занять 32 ГБ памяти сервера.</p><h2>Как работает HTTP/2 Bomb</h2><p>HTTP/2 сжимает заголовки алгоритмом HPACK и хранит их в динамических таблицах. Атака отправляет тысячи мелких заголовков, чтобы заставить сервер резервировать память под каждую запись таблицы — даже если сами заголовки почти пустые. Одновременно соединения удерживаются открытыми по принципу Slowloris, и сервер не может освободить выделенную память.</p><h2>Кто уже выпустил исправления от HTTP/2 Bomb</h2><ul><li><b>nginx</b> — версия 1.29.8, директива max_headers из freenginx.</li><li><b>Apache httpd</b> — mod_http2 v2.0.41, <a href="https://nvd.nist.gov/vuln/detail/CVE-2026-49975" rel="noopener">CVE-2026-49975</a>.</li><li><b>Envoy</b> — выпущено исправление, исследователи проверяют его эффективность.</li><li><b>Microsoft IIS</b> и <b>Cloudflare Pingora</b> — исправлений пока нет. Cloudflare <b>оспаривает наличие уязвимости</b> в Pingora, но заявляет, что её архитектура и DDoS-защита справляются с атакой автоматически.</li></ul><h2>Как защититься от HTTP/2 Bomb</h2><p>Пока Microsoft и Cloudflare не выпустили обновления, Calif рекомендует либо отключить HTTP/2, либо ограничить максимальное количество заголовков, которые клиент может отправить в одном запросе.</p><h2>Выводы</h2><blockquote>Обе половины атаки были известны десять лет. Codex проанализировал исходный код, обнаружил, что две техники можно объединить, и построил комбинированную атаку. Комбинация очевидна, когда ты её видишь, но, насколько нам известно, никто из людей не собирал её против этих серверов.</blockquote><p>Технический разбор и PoC-скрипты опубликованы в <a href="https://blog.calif.io/p/codex-discovered-a-hidden-http2-bomb" rel="noopener">блоге Calif</a> и на <a href="https://github.com/califio/publications/tree/main/MADBugs/http2-bomb" rel="noopener">GitHub</a>. Дополнительные детали — в материале <a href="https://www.theregister.com/security/2026/06/04/openais-codex-chains-decade-old-dos-techniques-into-http/2-bomb/5251377" rel="noopener">The Register</a>.</p><p>Если ваш сервер использует HTTP/2 — проверьте защиту от HTTP/2 Bomb: обновите ПО и ограничьте заголовки прямо сейчас.</p>]]></content:encoded>
    </item>
    <item>
      <title>Исследователи придумали, как следить за пользователями через SSD-активность в браузере</title>
      <link>https://tproger.ru/news/issledovateli-pridumali-kak-sledit-za-polzovatelyami-cherez-ssd</link>
      <comments>https://tproger.ru/news/issledovateli-pridumali-kak-sledit-za-polzovatelyami-cherez-ssd?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/issledovateli-pridumali-kak-sledit-za-polzovatelyami-cherez-ssd</guid>
      <description><![CDATA[<p>Исследователи представили технику FROST: сайты отслеживают вкладки через анализ SSD-активности в браузере. Узнайте, как работает атака и как защититься.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/issledovateli-pridumali-kak-sledit-za-polzovatelyami-cherez-ssd">Исследователи придумали, как следить за пользователями через SSD-активность в браузере</a>»</p>]]></description>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Браузеры]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 28 May 2026 09:30:05 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если у вас открыто несколько вкладок, вредоносный сайт может узнать, какие именно, — не через куки и не через JavaScript-переменные, а через ваш SSD. Метод <b>FROST</b> считывает задержки операций чтения накопителя и по их сигнатуре определяет открытые вкладки и приложения.</p><p>Техника описана в <a href="https://arstechnica.com/security/2026/05/websites-have-a-new-way-to-spy-on-visitors-analyzing-their-ssd-activity/">исследовательской статье</a>, которую представят на конференции DIMVA в июле 2026 года. Атака работает исключительно внутри браузера и не требует никаких действий от пользователя.</p><h2>Как работает FROST</h2><p>FROST (Fingerprinting Remotely using OPFS-based SSD Timing) использует <b>побочный канал утечки на основе конкуренции процессов за доступ к общему ресурсу</b>. В данном случае ресурс — SSD-накопитель пользователя.</p><p>Вредоносный сайт создаёт большой файл (от 1 ГБ) в <a href="https://developer.mozilla.org/en-US/docs/Web/API/File_System_API/Origin_private_file_system">Origin Private File System (OPFS)</a> — изолированном хранилище, доступном через JavaScript без запроса разрешений. Затем код выполняет случайные чтения из этого файла и измеряет задержки. Если в это время другая вкладка или приложение обращается к SSD, задержки меняются. Эти изменения анализирует предобученная <b>свёрточная нейросеть (CNN)</b>, которая по сигнатуре нагрузки определяет, что именно работает в системе.</p><p>Исследователи продемонстрировали полноценную атаку на Mac с процессором M2. На Linux подтвердили работу базового примитива — измерение задержек через JavaScript. Windows в тестах не участвовала, но авторы не исключают, что техника применима и там.</p><p>OPFS поддерживается во всех современных браузерах на базе Chromium, а также в Firefox и Safari. Это означает, что потенциально техника применима к большинству пользователей десктопного веба.</p><p>FROST позволяет сайтам отслеживать открытые вкладки и приложения через анализ SSD-активности.</p><p>Атака работает внутри браузера через JavaScript и OPFS, без взаимодействия с пользователем.</p><p>Ключевой инструмент — свёрточная нейросеть, классифицирующая задержки чтения SSD.</p><p>Полная атака продемонстрирована на macOS (M2); на Linux работает базовый примитив.</p><p>Пока не зафиксировано случаев применения FROST в реальных условиях.</p><h2>Ограничения и защита</h2><p>У техники есть важные ограничения. Для атаки файл в OPFS должен занимать не менее 1 ГБ. Это означает, что массовое применение будет заметно: создание гигабайтного хранилища в браузере занимает время и место на диске. Кроме того, OPFS должен находиться на том же SSD, что и отслеживаемые приложения.</p><p>Пока разработчики браузеров не ограничили размер OPFS-файлов, рядовой пользователь может сделать немногое. Полезная привычка — закрывать вкладки сразу после использования: чем меньше одновременных процессов обращаются к диску, тем сложнее выделить сигнатуру. Для усиления приватности можно использовать отдельные профили браузера или приватные окна, хотя это и не полностью блокирует атаку.</p><h2>Итоги</h2><p>Пока FROST остаётся академической демонстрацией: в реальных условиях атака не зафиксирована. Но она показывает, что даже изолированные хранилища внутри браузера могут стать источником утечек, если злоумышленник научится измерять физические характеристики железа. Ждём патчей от производителей браузеров.</p><p>Источник: <a href="https://arstechnica.com/security/2026/05/websites-have-a-new-way-to-spy-on-visitors-analyzing-their-ssd-activity/">Ars Technica</a>. Читайте также о <a href="https://tproger.ru/news/v-firefox-145-pojavilas-novaja-zashhita-ot-cifrovogo-otpechatka-i-trekinga/">новой защите Firefox от цифрового отпечатка</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Подрядчик CISA полгода держал пароли и ключи AWS в публичном репозитории GitHub</title>
      <link>https://tproger.ru/articles/podryadchik-cisa-polgoda-derzhal-paroli-i-klyuchi-aws-v-publichnom-rep</link>
      <comments>https://tproger.ru/articles/podryadchik-cisa-polgoda-derzhal-paroli-i-klyuchi-aws-v-publichnom-rep?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/podryadchik-cisa-polgoda-derzhal-paroli-i-klyuchi-aws-v-publichnom-rep</guid>
      <description><![CDATA[<p>Подрядчик CISA полгода держал в публичном GitHub-репозитории 844 МБ паролей, токенов AWS GovCloud и Kubernetes-конфигов. Разбираем, как защитить свою команду.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/podryadchik-cisa-polgoda-derzhal-paroli-i-klyuchi-aws-v-publichnom-rep">Подрядчик CISA полгода держал пароли и ключи AWS в публичном репозитории GitHub</a>»</p>]]></description>
      <category><![CDATA[DevOps]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Облачные технологии]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Утечка данных]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 20 May 2026 06:45:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Каждый разработчик хотя бы раз ставил git push и через секунду холодел: «А я .env точно вычеркнул из коммита?». Подрядчик американского агентства по кибербезопасности CISA, судя по всему, этот вопрос себе ни разу не задал — и шесть месяцев держал в публичном репозитории GitHub пароли в открытом виде, токены к закрытому облаку <b>AWS GovCloud</b> (изолированный регион Amazon для госструктур США) и сертификаты <b>Microsoft Entra ID</b> (бывший Azure AD, корпоративный сервис единого входа).</p><p>Историю обнародовал журналист Брайан Кребс <a href="https://krebsonsecurity.com/2026/05/cisa-admin-leaked-aws-govcloud-keys-on-github/">в материале от 18 мая</a> по наводке исследователя из <a href="https://www.gitguardian.com">GitGuardian</a>. Репозиторий назывался без лишней скромности — Private-CISA — и был виден любому, кто откроет GitHub.</p><ul><li>Подрядчик CISA с 13 ноября 2025 года вёл публичный репозиторий <b>Private-CISA</b> размером 844 МБ с паролями, ключами AWS GovCloud, сертификатами Entra ID SAML и Kubernetes-манифестами.</li><li>Пароли лежали в открытом виде в <b>CSV-файле</b>, а среди файлов был <b>importantAWStokens</b> с админ-доступом к трём серверам AWS GovCloud.</li><li>Чтобы такое стало возможным, в аккаунте было <b>выключено</b> стандартное правило GitHub, блокирующее коммиты с секретами.</li><li>GitGuardian называет утечку «худшей в карьере» исследователя, но CISA утверждает, что «нет признаков компрометации чувствительных данных».</li><li>Репозиторий закрыли вечером 15 мая 2026 года, спустя около 26 часов после уведомления исследователей — но он был публичным <b>около полугода</b>.</li></ul><h2>Что лежало в Private-CISA</h2><p>GitGuardian, компания, у которой <a href="https://blog.gitguardian.com/how-we-got-a-cisa-github-leak-taken-down-in-26-hours/">сканер постоянно обходит публичные репозитории GitHub</a> в поисках утёкших секретов, наткнулась на репозиторий 14 мая 2026 года. По объёму это 844 МБ — 498 МБ в рабочем дереве, остальное в истории Git. Среди папок и файлов исследователи нашли:</p><ul><li><b>importantAWStokens</b> — административные токены к трём серверам AWS GovCloud (изолированный облачный регион Amazon для госструктур США).</li><li><b>AWS-Workspace-Firefox-Passwords.csv</b> — экспорт сохранённых паролей Firefox с десятками логинов и паролей от внутренних систем CISA в открытом виде.</li><li><b>CAWS GitHub Token.txt</b> — отдельный токен GitHub-организации.</li><li><b>Kube-Config.txt</b> — конфигурации Kubernetes для доступа к кластерам.</li><li>Папку <b>ENTRA ID — SAML Certificates</b> с сертификатами для единого входа через Microsoft Entra ID.</li><li>Папки <b>All Backups</b>, <b>Backup-April-2026</b>, <b>LZ-Artifactory</b>, <b>Kubernetes-Important-Yaml-Files</b> — внутренние бэкапы, манифесты ArgoCD и YAML-файлы с секретами.</li><li>Terraform-код инфраструктуры и GitHub Actions, описывающие, как CISA собирает, тестирует и выкатывает свой софт.</li><li>Резервные копии внутренней документации в форматах OneNote и DOCX, плюс скрипты для GitHub, Kubernetes, ArgoCD.</li></ul><p>Один из попавших в репозиторий хостов назывался LZ-DSO — по словам исследователей это сокращение от <b>Landing Zone DevSecOps</b>, то есть от среды, в которой CISA «безопасно» собирает свой код. Иронично: ключи от пайплайна, который должен защищать всё остальное, лежали публично.</p><blockquote>Это худшая утечка, которую я видел за свою карьеру.</blockquote><p>Сначала команда GitGuardian приняла находку за розыгрыш: слишком уж красноречивые названия папок и файлов. Но личные документы, имена хостов и аккуратная структура повторных бэкапов убедили — это рабочая копия чьего-то ноутбука, которую регулярно «синхронизировали» через git push в открытый репозиторий.</p><h2>Как нашли и сообщили</h2><p>Согласно <a href="https://blog.gitguardian.com/how-we-got-a-cisa-github-leak-taken-down-in-26-hours/">подробному разбору GitGuardian</a>, программа Good Samaritan компании первой обнаружила утечку и автоматически отправила <b>девять писем</b> владельцу коммитов. К утру 15 мая в ответ пришли только автоответчики.</p><p>Тогда исследователи <a href="https://krebsonsecurity.com/2026/05/cisa-admin-leaked-aws-govcloud-keys-on-github/">связались с Брайаном Кребсом</a>, чтобы он передал утечку напрямую своим контактам в CISA. Параллельно подключились партнёры с прямой линией в агентство. Около 16:00 по центральноевропейскому времени удалось дозвониться, а в районе 18:00 по восточному времени США репозиторий стал недоступен. От первого выявленного слива до закрытия прошло чуть больше суток — но создан репозиторий был 13 ноября 2025 года, так что окно для злоумышленника составляло около полугода.</p><h3>Хронология</h3><ul><li><b>13 ноября 2025</b> — создан публичный репозиторий Private-CISA, первые секреты залиты.</li><li><b>13 мая 2026</b> — автоматический сканер GitGuardian Good Samaritan уже успел отправить владельцу репозитория девять писем-предупреждений.</li><li><b>14 мая 2026, 16:14 CET</b> — GitGuardian фиксирует инцидент и подаёт его в CERT/CC (координационный центр по реагированию на киберинциденты), параллельно ища личные контакты в CISA.</li><li><b>15 мая 2026</b> — GitGuardian параллельно выходит на Кребса для эскалации через его контакты и на собственных партнёров с прямой линией в агентство; около 16:00 CET до CISA дозваниваются.</li><li><b>15 мая, около 18:00 EST</b> — репозиторий удалён.</li></ul><h2>Почему secret scanning не сработал</h2><p>GitHub давно предлагает push protection — функцию, которая не даёт залить в публичный репозиторий распознанные секреты вроде токенов AWS, ключей SSH или ключей API. Для бесплатных публичных репозиториев она включена по умолчанию с 2024 года. Но защита от дурака легко выключается одним кликом, и в случае с Private-CISA её действительно отключили — Кребс цитирует исследователей, которые нашли в истории коммитов следы того, что владелец аккаунта вручную убрал блокировку секретов.</p><p>Это распространённый паттерн: разработчик сталкивается с блокировкой пуша, не разбирается, почему сработала защита, и снимает её через настройки. Иногда — в личном репозитории «для удобства», иногда — потому что коммит уже содержит что-то более чувствительное, чем тестовый ключ. Результат предсказуем: репозитории, в которых годами лежат «временные» .env-файлы с продакшен-доступами, и автоматические сканеры вроде GitGuardian, TruffleHog или GitHub Secret Scanning, которые рано или поздно их находят.</p><p>По версии <a href="https://gizmodo.com/the-worst-leak-that-ive-witnessed-u-s-cybersecurity-agency-leaves-its-digital-keys-out-in-public-on-github-2000760330">Gizmodo</a>, сотрудник подрядчика Nightwing использовал GitHub как личную папку «Загрузки»: коммитил файлы с рабочего ноутбука, чтобы открыть их на домашнем компьютере. То же самое многие делают через личную почту, только публичный репозиторий ещё хуже — он проиндексирован поисковиками и сканируется ботами в режиме реального времени.</p><h2>Кто такая CISA и почему это важно</h2><p>Особый цинизм истории — в том, кто оказался виновником. CISA (Cybersecurity and Infrastructure Security Agency) — молодое подразделение Министерства внутренней безопасности США, отвечающее за кибербезопасность всех федеральных гражданских сетей. Это именно та организация, которая публикует руководства про «никогда не храните пароли в спредшитах». При этом, по данным <a href="https://techcrunch.com/2026/05/19/us-cyber-agency-cisa-exposed-reams-of-passwords-and-cloud-keys-to-the-open-web/">TechCrunch</a>, у CISA с 20 января 2025 года нет постоянного директора, агентство потеряло около трети штата после сокращений и отпусков, а ни один временно исполняющий обязанности не был утверждён Сенатом. В таких условиях процессы по контролю подрядчиков и аудиту репозиториев предсказуемо проседают — и тот факт, что утечку у регулятора по кибербезу нашёл частный сканер, а не внутренние инструменты, красноречивее любого внутреннего отчёта.</p><h2>Что делать в своей команде, чтобы не повторить историю CISA</h2><p>История CISA читается как готовый чеклист «как не надо». Перевернём его в «как надо» — для команд от стартапа до крупного бизнеса.</p><ol><li><b>Включите GitHub push protection на уровне организации</b> и запретите её отключать. Owner organization → Security → Secret protection → Push protection: Enabled.</li><li><b>Запретите коммитеры-индивидуумам быть owner репозиториев в проде.</b> Любой публичный репозиторий компании должен принадлежать организации с настроенными правилами.</li><li><b>Сканируйте свою историю</b>, а не только новые коммиты. Один раз пропущенный .env остаётся в Git forever — поможет <a href="https://github.com/trufflesecurity/trufflehog">TruffleHog</a>, <a href="https://gitguardian.com">GitGuardian</a>, GitHub Advanced Security или встроенный git-secrets.</li><li><b>Не используйте Git как файлообменник между домашним и рабочим компьютером.</b> Для этого есть VPN, корпоративный OneDrive, S3-бакет с IAM, в конце концов — scp.</li><li><b>Включите автоматическую ротацию ключей AWS и сервис-токенов</b>. Даже если они утекут, окно использования закроется через сутки-двое.</li><li><b>Настройте мониторинг подозрительных вызовов API в облаке</b>. Для AWS — <a href="https://aws.amazon.com/cloudtrail/">CloudTrail</a> + <a href="https://aws.amazon.com/guardduty/">GuardDuty</a> с алертами на новые регионы, необычные IAM-действия и обращения к AWS API из неизвестных IP. Если ключ всё-таки утёк — вы узнаете об этом по логам, а не из новостей.</li><li><b>Раз в квартал проводите аудит публичных репозиториев</b>: gh repo list ORG --visibility public и быстрая проверка, что там должно лежать публично.</li></ol><p>GitHub в своём блоге называет push protection <a href="https://github.blog/security/application-security/push-protection-is-now-generally-available-and-free/">первой линией защиты</a> и приводит цифру: с момента включения по умолчанию на бесплатных публичных репозиториях функция предотвратила сотни тысяч случайных утечек. Эту настройку выключают именно те, кто потом попадает в новости.</p><h2>Что говорят сами CISA и эксперты</h2><p>Сводный ответ агентства <a href="https://krebsonsecurity.com/2026/05/cisa-admin-leaked-aws-govcloud-keys-on-github/">для Кребса</a> и <a href="https://techcrunch.com/2026/05/19/us-cyber-agency-cisa-exposed-reams-of-passwords-and-cloud-keys-to-the-open-web/">TechCrunch</a> звучит как стандартная PR-формула. TechCrunch уточняет, что комментарий дал пресс-секретарь CISA Марко ДиСандро:</p><blockquote>На данный момент нет признаков того, что в результате инцидента были скомпрометированы чувствительные данные. Мы продолжаем расследование и работаем над дополнительными мерами защиты, чтобы предотвратить повторение подобных случаев в будущем.</blockquote><p>Проблема в формулировке «нет признаков»: при шестимесячном окне публичности любые токены стоит считать скомпрометированными по умолчанию. Стандартный план действий — отозвать всё, выпустить новое, проанализировать логи AWS CloudTrail на предмет обращений с этих токенов и опубликовать честный разбор инцидента. До такого разбора инцидента публично CISA пока не дошла, и в TechCrunch агентство не ответило, отозваны ли ключи.</p><h2>Что в итоге</h2><p>Сюжет «подрядчик слил ключи в публичный git» повторяется в индустрии раз в пару месяцев, но обычно героем оказывается стартап или подрядчик банка. Случай с CISA выделяется тем, что виновником стало именно то агентство, которое выпускает рекомендации по защите от подобных утечек.</p><p>Хорошая новость: исследователи и журналисты сработали быстро, а сама CISA закрыла репозиторий за сутки — большинство компаний реагирует месяцами. Плохая: пока агентство не подтвердило ротацию ключей и не опубликовало детальный отчёт, любые токены из этого репозитория стоит считать публичным достоянием.</p><p>Для разработчиков вывод предельно практичный: <b>включите push protection, проверьте свои публичные репозитории, не подсовывайте секреты в Git ни на минуту</b>. История CISA — это просто очень громкая иллюстрация того, как один человек, перетаскивающий файлы с ноутбука на ноутбук через git, способен поставить под угрозу целое ведомство.</p><p><b>Источники:</b> <a href="https://krebsonsecurity.com/2026/05/cisa-admin-leaked-aws-govcloud-keys-on-github/">Krebs on Security — CISA Admin Leaked AWS GovCloud Keys on Github</a>; <a href="https://blog.gitguardian.com/how-we-got-a-cisa-github-leak-taken-down-in-26-hours/">GitGuardian Blog — How We Got a CISA GitHub Leak Taken Down in Under a Day</a>; <a href="https://techcrunch.com/2026/05/19/us-cyber-agency-cisa-exposed-reams-of-passwords-and-cloud-keys-to-the-open-web/">TechCrunch — US cyber agency CISA exposed reams of passwords and cloud keys to the open web</a>; <a href="https://gizmodo.com/the-worst-leak-that-ive-witnessed-u-s-cybersecurity-agency-leaves-its-digital-keys-out-in-public-on-github-2000760330">Gizmodo — «The Worst Leak That I've Witnessed»</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>317 npm-пакетов скомпрометированы вредоносом Mini Shai-Hulud</title>
      <link>https://tproger.ru/news/317-npm-paketov-skomprometirovany-vredonosom-mini-shai-hulud</link>
      <comments>https://tproger.ru/news/317-npm-paketov-skomprometirovany-vredonosom-mini-shai-hulud?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/317-npm-paketov-skomprometirovany-vredonosom-mini-shai-hulud</guid>
      <description><![CDATA[<p>19 мая взломан npm-аккаунт atool: 637 вредоносных версий 317 пакетов за 22 минуты. Крадут AWS-ключи, GitHub PAT, данные 1Password. Проверьте зависимости.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/317-npm-paketov-skomprometirovany-vredonosom-mini-shai-hulud">317 npm-пакетов скомпрометированы вредоносом Mini Shai-Hulud</a>»</p>]]></description>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 19 May 2026 14:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если вы используете echarts-for-react, size-sensor или пакеты из семейства @antv — проверьте package-lock.json прямо сейчас. 19 мая 2026 года за 22 минуты был взломан npm-аккаунт atool: атакующий опубликовал 637 вредоносных версий 317 пакетов, суммарно набирающих десятки миллионов загрузок в месяц.</p><p>317 npm-пакетов скомпрометированы через взломанный аккаунт atool: под угрозой echarts-for-react (3,8 млн загрузок/мес), size-sensor (4,2 млн) и более 250 пакетов @antv.</p><p>Вредонос — тот же тулкит Mini Shai-Hulud, что три недели назад атаковал SAP: одинаковая архитектура сканера, те же регулярные выражения для поиска учётных данных.</p><p>Payload объёмом 498 КБ крадёт учётные данные AWS (включая EC2 metadata и ECS), GitHub PAT, токены npm, SSH-ключи, данные 1Password и Bitwarden.</p><p>Двойная эксфильтрация: через публичные GitHub-репозитории с зашифрованными Git-объектами и HTTPS-запросы к t.m-kosche[.]com под видом OpenTelemetry-трейсов.</p><p>Вредонос перехватывает AI-агентов: внедряет SessionStart-хуки в Claude Code и Codex, а также задачи runOn:folderOpen в VS Code.</p><h2>Масштаб атаки</h2><p>Аккаунт atool на npm поддерживает 547 пакетов. Атакующий <a href="https://safedep.io/mini-shai-hulud-strikes-again-314-npm-packages-compromised/">опубликовал</a> вредоносные версии двумя волнами: первая — с 01:39 до 01:56 UTC (~317 версий), вторая — с 02:05 до 02:06 UTC (~314 версий). В результате 309 пакетов получили по два заражённых релиза каждый.</p><ul><li><b>size-sensor</b> — 4,2 млн загрузок/мес</li><li><b>echarts-for-react</b> — 3,8 млн загрузок/мес</li><li><b>@antv/scale</b> — 2,2 млн загрузок/мес</li><li><b>timeago.js</b> — 1,15 млн загрузок/мес</li><li><b>@antv/x6</b>, <b>@antv/g</b>, <b>@antv/g6</b> и более 250 других пакетов @antv</li></ul><p>Важно: атакующий не переставил тег latest — но это не защищает. npm выбирает наибольшую версию, удовлетворяющую semver-диапазону, независимо от тега. Проект с "echarts-for-react": "^3.0.6" при следующей чистой установке получит вредоносную 3.2.7.</p><h2>Как работает вредонос</h2><p>498-килобайтный обфусцированный Bun-скрипт запускается через preinstall-хук. Дополнительно 630 из 637 версий добавляют в optionalDependencies ссылку на «сиротские» коммиты в репозитории <b>antvis/G2</b> на GitHub с поддельным авторством. Этот механизм позволяет доставить payload даже при блокировке preinstall-хуков: npm резолвит github:-зависимости по SHA без проверки истории ветки.</p><p>Скрипт собирает учётные данные по всей цепочке AWS: переменные окружения, файлы конфигурации, EC2 Instance Metadata Service (169.254.169.254), ECS container metadata (169.254.170.2), Secrets Manager. Помимо этого — токены Kubernetes, HashiCorp Vault, GitHub PAT, токены npm, SSH-ключи и хранилища паролей: 1Password, Bitwarden, pass, gopass.</p><p>Эксфильтрация идёт двумя параллельными каналами: украденные данные коммитятся как Git-объекты в публичные GitHub-репозитории с названиями в формате Dune-вселенной (<i>sardaukar-sandworm-42</i>, <i>fremen-stillsuit-7</i> и т.п.), а также отправляются RSA+AES-зашифрованными POST-запросами к t.m-kosche[.]com — замаскированными под данные OpenTelemetry.</p><p>Для закрепления в системе вредонос устанавливает systemd-сервис kitty-monitor (или LaunchAgent на macOS), который каждый час опрашивает GitHub Commit Search API в поиске RSA-PSS-подписанных команд по ключевому слову firedalazer. Это классический GitHub dead-drop C2-бэкдор.</p><h2>Связь с атакой на SAP</h2><p>Исследователи SafeDep идентифицировали payload как <b>Mini Shai-Hulud</b> — тот же тулкит, который три недели назад был использован в компрометации SAP. Совпадают архитектура сканера, набор регулярных выражений для поиска учётных данных и паттерны обфускации. Название отсылает к Дюне Фрэнка Герберта: Shai-Hulud — гигантский песчаный червь, пожирающий всё на своём пути.</p><h2>Что делать</h2><ol><li>Проверить package-lock.json или yarn.lock — найти версии из списка скомпрометированных пакетов (полный список в источнике).</li><li>Удалить node_modules и переустановить зависимости после того, как npm отзовёт вредоносные версии.</li><li>Проверить наличие kitty-monitor.service (Linux) или com.user.kitty-monitor.plist (macOS).</li><li>Проверить файл ~/.claude/settings.json — не должно быть SessionStart-хуков, запускающих node .claude/setup.mjs.</li><li>Ротировать все учётные данные: AWS IAM, GitHub PAT, npm-токены, SSH-ключи — если машина устанавливала заражённые пакеты.</li></ol><h2>Индикаторы компрометации</h2><p>Источник: <a href="https://safedep.io/mini-shai-hulud-strikes-again-314-npm-packages-compromised/">SafeDep — Mini Shai-Hulud Strikes Again: 317 npm Packages Compromised</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Apache HTTP/2 CVE-2026-23918: double-free и рабочий RCE-PoC</title>
      <link>https://tproger.ru/news/apache-http-2-cve-2026-23918-double-free-dos-i-rabochij-rce-poc</link>
      <comments>https://tproger.ru/news/apache-http-2-cve-2026-23918-double-free-dos-i-rabochij-rce-poc?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/apache-http-2-cve-2026-23918-double-free-dos-i-rabochij-rce-poc</guid>
      <description><![CDATA[<p>Apache 2.4.66 уязвим: CVE-2026-23918 (CVSS 8.8) — двойное освобождение в mod_http2. Тривиальный DoS, RCE-PoC на x86_64. Что делать сегодня — разбираем.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/apache-http-2-cve-2026-23918-double-free-dos-i-rabochij-rce-poc">Apache HTTP/2 CVE-2026-23918: double-free и рабочий RCE-PoC</a>»</p>]]></description>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 07 May 2026 09:25:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Apache Software Foundation 4 мая 2026 года выпустил Apache HTTP Server 2.4.67 — он закрывает <b>CVE-2026-23918</b> (CVSS 8.8) и ещё несколько уязвимостей. Главная — double-free в mod_http2: даёт гарантированный DoS из коробки и рабочий PoC удалённого выполнения кода на x86_64. Если у вас в проде Apache 2.4.66 с включённым HTTP/2 — обновляйтесь сегодня.</p><p>Уязвимость нашли и сообщили в ASF Bartlomiej Dmitruk (сооснователь Striga.ai) и Stanislaw Strzalkowski (исследователь ISEC.pl). DoS тривиален и работает на любом дефолтном Apache, у которого включён mod_http2 и выбран многопоточный <b>MPM</b> (Multi-Processing Module — модель обработки запросов; в современных продакшенах это обычно worker или event). RCE-путь требует ещё одного условия — APR (Apache Portable Runtime, слой работы с памятью и файлами в Apache) с mmap-аллокатором. Это дефолт на Debian-подобных дистрибутивах и в официальном httpd Docker-образе.</p><ul><li><b>CVE-2026-23918</b>, CVSS 8.8 — double-free в mod_http2, стеком cleanup в h2_mplx.c. Затронут Apache 2.4.66, патч в 2.4.67.</li><li>DoS — тривиален: один TCP, два HTTP/2-фрейма (HEADERS + RST_STREAM с ненулевым error code), без авторизации, без специальных URL — воркер падает.</li><li>RCE — рабочий PoC на x86_64. Подменяется h2_stream, указатель cleanup-функции направляется на system(). В лабораторных условиях, по словам авторов, исполнение приземляется за минуты.</li><li>Затронуты только многопоточные MPM (worker, event); MPM prefork — не уязвим. RCE только при APR с mmap-аллокатором (Debian-семейство, httpd Docker).</li><li>Поверхность атаки большая: mod_http2 идёт в дефолтных сборках, HTTP/2 широко включён в продакшене. Обновляться сразу.</li></ul><h2>Как срабатывает double-free</h2><p>Триггер очень короткий: клиент отправляет HTTP/2-фрейм HEADERS, сразу за ним — RST_STREAM с ненулевым error code на том же stream. Главное условие — мультиплексер ещё не успел зарегистрировать stream.</p><p>В этот момент два колбэка nghttp2 срабатывают подряд: on_frame_recv_cb для RST и затем on_stream_close_cb для close. Оба вызывают цепочку h2_mplx_c1_client_rst, которая запускает m_stream_cleanup, и оба раза один и тот же указатель h2_stream пушится в массив spurge cleanup — то есть в очередь на освобождение.</p><p>Когда позже c1_purge_streams проходит по spurge и для каждого элемента вызывает h2_stream_destroy с последующим apr_pool_destroy, второй вызов уже работает с уже освобождённой памятью. Это и есть double-free: память освобождается дважды, и в её ячейке к этому моменту уже может лежать чьи-то другие данные.</p><h2>DoS: тривиальный, работает на дефолтных сборках</h2><blockquote>Один TCP-коннект, два фрейма, без аутентификации, без специальных заголовков, без определённого URL — и воркер падает. Apache перезапускает его, но каждый запрос на упавший воркер дропается. Атаку можно поддерживать сколько угодно, пока атакующий продолжает слать запросы.</blockquote><h2>RCE: PoC на x86_64</h2><p>Цепочка эксплуатации, по описанию авторов:</p><ol><li>Через mmap-reuse подкладывается поддельный h2_stream по освобождённому виртуальному адресу.</li><li>Указатель cleanup-функции пула направляется на system().</li><li>В качестве стабильного контейнера для fake-структур и команды используется память Apache <b>scoreboard</b>.</li></ol><p>Логика классическая для класса use-after-free: освобождённая ячейка памяти повторно используется системой под другой объект, который контролирует атакующий. Когда Apache позже вызывает функцию очистки по сохранённому в этой ячейке указателю, управление улетает туда, куда атакующий написал. <b>Scoreboard</b> Apache — общая таблица состояния воркеров — сидит по фиксированному адресу на всю жизнь сервера, даже при включённом ASLR (Address Space Layout Randomization, рандомизация адресного пространства). Это и есть то, что делает RCE-путь практичным. Авторы уточняют ограничения: нужен info leak (утечка адреса system() и оффсетов scoreboard) и heap spray (массовое выделение памяти, чтобы поймать конкретный адрес) — в дикой природе это требует терпения. В лабораторных условиях, по словам авторов, успех укладывается в минуты.</p><h2>Кто затронут — и что делать</h2><ul><li><b>Затронут</b>: Apache HTTP Server 2.4.66 с mod_http2 и многопоточным MPM (worker, event).</li><li><b>Не затронут</b>: MPM prefork (он однопроцессный, иной cleanup-путь).</li><li><b>RCE-условие</b>: Apache Portable Runtime (APR) с mmap-аллокатором — дефолт на Debian, Ubuntu и в официальном httpd Docker-image.</li><li><b>Патч</b>: Apache HTTP Server 2.4.67. ASF рекомендует обновляться немедленно.</li></ul><p>Минимальный чек-лист — что сделать сегодня:</p><ol><li>httpd -v — проверить версию. Если 2.4.66 и есть HTTP/2 — затронуты.</li><li>Обновить до 2.4.67 (через пакетный менеджер дистрибутива или пересборкой Docker-образа).</li><li>Если обновить прямо сейчас нельзя — временно отключить mod_http2 или переключиться на MPM prefork (но он медленнее под нагрузкой).</li><li>Проверить логи на следы атаки: HTTP/2 RST_STREAM с error-кодом — не штатный сценарий, и подозрительны массовые падения воркеров. Команда быстрого поиска: grep -E 'child .* exit signal Segmentation' /var/log/apache2/error.log.</li></ol><h2>Выводы</h2><p>CVE-2026-23918 — типичный пример уязвимости класса <b>use-after-free</b> с RCE-путём через предсказуемый адрес scoreboard. Триггер крошечный, фикс простой, но поверхность атаки огромная: каждый сервер с включённым HTTP/2 и multi-threaded MPM открыт хотя бы для DoS.</p><p>Главное практическое правило: <b>обновите Apache до 2.4.67</b>. Если обновить нельзя сию минуту — отключите HTTP/2 как временное обходное решение. Это уязвимость, которую с большой вероятностью начнут эксплуатировать в массовых сканах в ближайшие дни.</p><p>Подробный разбор и комментарии исследователей — на <a href="https://thehackernews.com/2026/05/critical-apache-http2-flaw-cve-2026.html" rel="noopener">The Hacker News</a>. Бюллетень Apache — на <a href="https://httpd.apache.org/security/vulnerabilities_24.html" rel="noopener">httpd.apache.org/security</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Микрофон ноутбука выдаёт пароль: атака восстанавливает набор клавиш с 85% точностью</title>
      <link>https://tproger.ru/news/mikrofon-zoom-vydayot-vaw-parol-ataka-vosstanavlivaet-nabor-kla</link>
      <comments>https://tproger.ru/news/mikrofon-zoom-vydayot-vaw-parol-ataka-vosstanavlivaet-nabor-kla?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/mikrofon-zoom-vydayot-vaw-parol-ataka-vosstanavlivaet-nabor-kla</guid>
      <description><![CDATA[<p>Acoustic keystroke recovery: CNN на 250к параметров восстанавливает текст из аудио микрофона ноутбука, 85% top-1, 97% top-3. Защита в 3 шага.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/mikrofon-zoom-vydayot-vaw-parol-ataka-vosstanavlivaet-nabor-kla">Микрофон ноутбука выдаёт пароль: атака восстанавливает набор клавиш с 85% точностью</a>»</p>]]></description>
      <category><![CDATA[Криптография]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 05 May 2026 08:30:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Микрофон, который вы добровольно держите включённым во время видеозвонков, по 6 часов в день записывает каждое нажатие клавиши на вашей клавиатуре — включая пароль, который вы набрали в alt-tab перед логином в продакшен-БД. На <a href="https://pwn.guide/free/hardware/keystroke-recovery">pwn.guide вышел подробный гайд</a>, как восстановить набираемый текст из аудио ноутбучного микрофона с точностью 82–88% на одной CNN на 250 тыс. параметров, тренируемой на ноутбуке за 5 минут.</p><p>Атака не теоретическая. Первая практическая демонстрация вышла в 2004 году; в 2005 поверх неё надстроили языковые модели. В 2023 исследовательская группа из университетов Surrey, Durham и Royal Holloway <a href="https://arxiv.org/abs/2308.01074">показала 95%+ top-1 точности</a> (то есть угадывания клавиши с первой попытки) на MacBook Pro — по записи со смартфона на расстоянии 17 см. Изменилось одно — теперь обучить такую модель может любой разработчик за полдня на собственном ноутбуке.</p><p><b>Реальная угроза.</b> Не подложенный микрофон в офисе, а Zoom, Teams, Meet, Discord, голосовые сообщения, заражённые браузерные вкладки, ноутбук в кафе. Везде, где вы сами включили микрофон.</p><p><b>Точность.</b> Мини-CNN на 250 тыс. параметров: top-1 82–88%, top-3 95–97% на 35 классах (буквы + знаки) при 3000 семплов на пару пользователь/клавиатура.</p><p><b>Пароли особенно уязвимы.</b> Языковая модель не помогает (пароли не из словаря), зато сужается перебор: top-3 предсказаний на символ → 3⁸ = 6 561 кандидат для 8-символьного пароля. Online brute force против большинства сервисов.</p><p><b>Что работает в защите.</b> Мьют микрофона перед вводом пароля + менеджер паролей (auto-fill полностью убирает акустический сигнал) + аппаратные ключи (FIDO2/YubiKey).</p><p><b>Что НЕ работает.</b> «Печатать тише», случайный ритм набора, программные шумодавы (RNNoise, Krisp). Шумодавы оптимизированы под речь — клик клавиши проходит почти без потерь.</p><h2>Что именно слышит микрофон</h2><p>Когда вы нажимаете клавишу A, микрофон ловит три события: <b>push</b> (механический клик дна хода клавиши, ~5–10 мс, широкий спектр), <b>release</b> (возврат купола вверх, ниже по амплитуде, через 10–30 мс) и — главное — <b>резонанс корпуса</b>. Удар по клавише заставляет шасси ноутбука кратко звенеть на собственных частотах, а разные клавиши находятся на разных расстояниях от резонансных узлов и возбуждают чуть разные моды.</p><p>Эти отличия микроскопические — человек на слух разные клавиши не различит — но они <b>стабильные и повторяемые</b>. Этого достаточно, чтобы маленькая нейросеть научилась их разделять. Плюс поведенческий бонус: каждый человек жмёт клавиши пальцами под чуть разными углами и с разной силой — это добавляет ещё один разделяющий слой.</p><p>Релевантная полоса частот — 400 Гц … 12 кГц. Ниже — комнатный шум и кондиционер; выше — тишина и собственный шум микрофона. Стандартного 44,1 кГц моно более чем достаточно: фирменный микрофон не нужен.</p><h2>Что собирает атакующий</h2><p>Авторы pwn.guide публикуют полный пайплайн на Python — около 200 строк кода, всё через pip-зависимости (numpy, scipy, librosa, soundfile, sounddevice, pynput, torch). Шаги:</p><ol><li><b>Сбор:</b> 3 000 размеченных нажатий (≈15 минут естественного набора). Скрипт collect.py параллельно ведёт лог нажатий через pynput и пишет аудио. Используется time.perf_counter(), чтобы NTP-коррекция не сбила метки.</li><li><b>Нарезка:</b> аудио рубится на 100-мс окна вокруг каждого нажатия. Между событием в ОС и пиком в аудио есть 5–40 мс задержки — её надо выровнять поиском пика по огибающей. Без этого точность падает с 85% до 60%.</li><li><b>Фичи:</b> для каждого окна — log-mel спектрограмма (64 mel-бина, fmin=400, fmax=12 000). Тензор (64 × 35), один клип ≈ 9 КБ.</li><li><b>Модель:</b> компактная CNN на ~250 тыс. параметров — четыре свёрточных блока + AdaptiveAvgPool. На GPU тренируется за 5 минут, на CPU — за 30.</li><li><b>Инференс:</b> предсказание для 100-мс окна занимает доли миллисекунды.</li></ol><h2>Цифры, ради которых это страшно</h2><p>На самостоятельно собранном датасете из ~3 000 нажатий и 35 классов:</p><ul><li><b>Top-1 точность:</b> 82–88%, в зависимости от шума при сборе данных.</li><li><b>Top-3 точность:</b> 95–97% — почти всегда правильная клавиша входит в тройку лучших предсказаний.</li><li><b>Распределение по классам неровное.</b> Space, Enter, Backspace — около 99% (механически отличаются от обычных клавиш). Соседние буквы основного ряда (F/G, J/K) — иногда 60% top-1.</li></ul><p>85% точности на уровне символов звучит не страшно — в предложении будет 2–3 ошибки. Но если прогнать top-5 предсказаний через beam search с словарём частотности слов, восстановление связного текста на естественном языке выходит на 95%+ точности на уровне слов. Это исследовали ещё Zhuang и соавторы в 2005 году; современные char-LM делают этот шаг тривиальным.</p><h2>Почему пароли беззащитнее обычного текста</h2><p>Языковая модель — главное усиление атаки на обычный текст — на паролях не работает: их специально проектируют непохожими на слова. Зато у атакующего другое преимущество: <b>пространство поиска ограничено</b>. Если модель выдаёт top-3 предсказания на символ с 96% точностью, у 8-символьного пароля максимум 3⁸ = 6 561 кандидат для перебора. Это <b>в зоне online brute force</b> против большинства сервисов и тривиально оффлайн против любого слитого хеша.</p><blockquote>В 2026 году аудиозапись того, как вы набираете пароль, эквивалентна передаче пароля.</blockquote><h2>Что реально защищает — и что нет</h2><p>Авторы прямо сортируют защиты по эффективности.</p><p><b>Работает:</b></p><ol><li><b>Мьют микрофона</b> перед вводом любого секрета. Единственная полностью надёжная защита и стоит ноль.</li><li><b>Менеджер паролей с auto-fill.</b> Нет нажатий — нет акустического сигнала. Самая большая практическая мера именно против атаки на пароли.</li><li><b>Аппаратные ключи</b> (FIDO2/WebAuthn, YubiKey). Один тап = один акустический след, восстанавливать нечего.</li><li><b>Внешняя клавиатура подальше от микрофона.</b> Механика не безопаснее — она громче. Но USB-клавиатура на дальнем краю стола, на отдельной поверхности, материально снижает SNR.</li><li><b>Акустическое демпфирование.</b> Толстый коврик или сложенное полотенце под ноутбуком — снижение резонанса корпуса на 3–6 дБ. Помогает, но не панацея.</li></ol><p><b>Не работает (вопреки ожиданиям):</b></p><ul><li><b>«Печатать тише».</b> Амплитуда падает, спектральный отпечаток сохраняется. Минус 5% точности.</li><li><b>Случайный ритм набора.</b> Атака работает по отдельным нажатиям, не учитывает межударные интервалы.</li><li><b>Программные шумодавы</b> (RNNoise, Krisp). Тюнятся под сохранение речи и удаление широкополосного шума. Клавишные транзиенты выглядят как короткие речевые звуки и проходят насквозь — некоторые шумодавы даже «чистят» нажатия от окружающего фона.</li><li><b>Белый шум на фоне.</b> Современные модели учатся с шумовой аугментацией — постоянный фон сдвигает точность на копейки. Прерывистые звуки (музыка с резкими пиками) мешают сильнее, но и для оператора некомфортнее.</li></ul><h2>Чек-лист «что сделать сегодня»</h2><ol><li>Проверить, что у вас стоит password manager с auto-fill (1Password, Bitwarden, KeePassXC, Яндекс.Ключ — что вам ближе) и им активно пользуются для всех проводных логинов.</li><li>Купить или подключить аппаратный ключ для критичных аккаунтов (root в облаках, GitHub, банк-клиент). YubiKey 5 серии или Token2 — общедоступно в РФ.</li><li>Поставить хоткей на «mute mic» в Zoom/Teams/Discord, чтобы рефлекторно нажимать перед вводом любого секрета.</li><li>Если работаете из публичного пространства — внешняя клавиатура подальше от ноутбука, либо bluetooth-наушники с шумодавом + далеко отнесённый телефон вместо встроенного микрофона.</li><li>Команды разработки: добавить «mute при работе с секретами» в общий гайд по безопасности, а аппаратные ключи — в onboarding для новых сотрудников.</li></ol><h2>Выводы</h2><p>Технический барьер атаки за два десятилетия упал до уровня «студент за выходные обучит модель на ноутбуке». Это значит, что угроза перестала быть теоретической — это рабочий инструмент в руках любого, у кого есть доступ к записи вашего созвона. Главная мысль: рассматривать включённый микрофон рядом с клавиатурой как реальный канал утечки секретов, а не как абстрактный риск из академических статей.</p><p>Хорошая новость в том, что защита дёшева и не требует новых технологий — менеджер паролей (про <a href="https://tproger.ru/news/free-open-source-password-manager">бесплатный open-source Bitwarden</a> у нас уже выходил материал) плюс мьют микрофона закрывают практически весь сценарий. Аппаратные ключи (см. <a href="https://tproger.ru/news/yubico-yubikey-5-release">обзор YubiKey 5</a>) закрывают остаток.</p><p>Источник: <a href="https://pwn.guide/free/hardware/keystroke-recovery">Acoustic Keystroke Recovery — Reconstructing Typed Text from a Laptop Microphone (pwn.guide)</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Взлом Bitwarden CLI на npm: 1,5 часа кражи токенов и SSH-ключей</title>
      <link>https://tproger.ru/news/bitwarden-cli-na-npm-podmenili-na-1-5-chasa-versiya-2026-4-0-kra</link>
      <comments>https://tproger.ru/news/bitwarden-cli-na-npm-podmenili-na-1-5-chasa-versiya-2026-4-0-kra?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/bitwarden-cli-na-npm-podmenili-na-1-5-chasa-versiya-2026-4-0-kra</guid>
      <description><![CDATA[<p>Bitwarden CLI 2026.4.0 на npm 22 апреля около 1,5 часа содержал малварь, крадущую GitHub/npm-токены, SSH-ключи и конфиги ИИ-ассистентов. Что делать.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/bitwarden-cli-na-npm-podmenili-na-1-5-chasa-versiya-2026-4-0-kra">Взлом Bitwarden CLI на npm: 1,5 часа кражи токенов и SSH-ключей</a>»</p>]]></description>
      <category><![CDATA[Open Source]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Node.js]]></category>
      <category><![CDATA[Хакеры]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[CI/CD]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 24 Apr 2026 08:30:04 GMT</pubDate>
      <content:encoded><![CDATA[<p>Подменили @bitwarden/cli в npm на 1 час 33 минуты — за это окно <a href="https://www.bleepingcomputer.com/news/security/bitwarden-cli-npm-package-compromised-to-steal-developer-credentials/">успевали воровать</a> GitHub/npm-токены, SSH-ключи и конфиги ИИ-ассистентов Claude, Kiro, Cursor, Codex CLI и Aider у всех, кто зашёл поставить пакет. Окно атаки — с 17:57 до 19:30 по времени Нью-Йорка 22 апреля (с 00:57 до 02:30 МСК 23 апреля). Vault-пароли самого менеджера Bitwarden не трогали — взломали только npm-канал доставки CLI. Если ставили версию 2026.4.0 — считайте ключи с этой машины скомпрометированными и ротируйте их прямо сейчас.</p><ul><li>Скомпрометирована одна npm-версия @bitwarden/cli@2026.4.0. Окно атаки — 1 час 33 минуты 22 апреля 2026 года.</li><li>Vault-данные пользователей Bitwarden не затронуты. Пострадал только npm-канал доставки CLI и те, кто успел поставить эту сборку.</li><li>Вектор — скомпрометированный action checkmarx/ast-github-action, который Bitwarden подтягивал в свой CI. По словам исследователей, это первый зафиксированный взлом пакета через npm trusted publishing.</li><li>Малварь таргетит ИИ-ассистенты Claude, Cursor, Codex CLI, Aider и AWS-based Kiro — отдельный модуль собирает их конфиги и API-ключи.</li><li>Если ставили — ротируйте npm/GitHub-токены, SSH-ключи и облачные креденшлы AWS/Azure/GCP; проверьте CI/CD-пайплайны и публичные репозитории со строкой «Shai-Hulud» в имени.</li></ul><h2>Что случилось с пакетом</h2><p>По <a href="https://thehackernews.com/2026/04/bitwarden-cli-compromised-in-ongoing.html">данным The Hacker News</a>, в ночь с 22 на 23 апреля 2026 года в npm-реестре появилась версия @bitwarden/cli@2026.4.0 с дополнительным файлом bw1.js внутри. Сборка была доступна 1 час 33 минуты — с 17:57 до 19:30 по времени Нью-Йорка, — после чего её сняли с публикации. Первыми на неё обратили внимание исследователи Socket, JFrog и OX Security. JFrog <a href="https://x.com/jfrog/">описал поведение</a> как «кражу GitHub/npm-токенов, содержимого .ssh, .env, истории shell, секретов GitHub Actions и облачных провайдеров с выгрузкой на внешние домены и в виде коммитов в GitHub».</p><p>Bitwarden подтвердил инцидент и уточнил, что «расследование не обнаружило признаков доступа к данным пользовательских хранилищ и компрометации продакшн-систем». По словам компании, доступ нарушителя был отозван, вредоносный релиз помечен как deprecated, по версии 2026.4.0 заводится отдельный CVE. Пострадавшие — только те, кто успел скачать пакет в полуторачасовом окне и выполнил его установку.</p><h2>Как устроен троян</h2><p>Механика по отчёту <a href="https://socket.dev/blog">Socket</a> проста, но многоступенчата. В package.json зловредной версии добавлен preinstall-хук, который запускает скрипт bw_setup.js. Тот проверяет наличие Bun — альтернативного JS-рантайма — и, если его нет, скачивает. Затем Bun-ом запускается обфусцированный загрузчик bw1.js. Bun тащат с собой не случайно: на машине жертвы его, скорее всего, нет, а корпоративный EDR (антивирус нового поколения для рабочих станций и серверов) реагирует на неожиданный бинарник хуже, чем на стандартный npm-скрипт. Preinstall-хук при этом срабатывает ещё до того, как код пакета формально «установлен».</p><ul><li>npm- и GitHub-токены из локальных конфигов и переменных окружения;</li><li>приватные SSH-ключи из ~/.ssh;</li><li>содержимое .env-файлов и историю shell (.bash_history, .zsh_history);</li><li>секреты GitHub Actions из переменных окружения CI;</li><li>креденшлы облачных провайдеров — AWS, Azure, Google Cloud;</li><li>конфиги и API-ключи ИИ-ассистентов Claude, Cursor, Codex CLI, Aider и AWS-based Kiro.</li></ul><p>Собранные данные шифруются AES-256-GCM и выгружаются двумя каналами. Основной — POST на домен audit.checkmarx[.]cx (конкретно путь /v1/telemetry), который притворяется инфраструктурой Checkmarx. Резервный — малварь создаёт публичные GitHub-репозитории в аккаунте жертвы и кладёт туда зашифрованный payload. В названиях репозиториев встречается строка «Shai-Hulud: The Third Coming» — отсылка к прошлогодней одноимённой кампании в npm. OX Security подчёркивает, что такой тайник (по терминологии безопасников — dead-drop) через GitHub опасен отдельно: утёкшие секреты становятся доступны любому, кто ищет по публичным репозиториям, — а системы защиты почти не следят за исходящим трафиком в GitHub.</p><p>Поверх этого в бинарнике есть модуль-червь: с украденным npm-токеном малварь находит все пакеты, которые жертва имеет право публиковать, и вбрасывает в них тот же payload. <a href="https://www.endorlabs.com/blog">Endor Labs называет</a> его «CanisterSprawl» и считает один из самых полных npm supply chain-пейлоадов на сегодняшний день: шесть разных поверхностей для сбора секретов, OIDC- и cloud-кража, самораспространение через npm-публикации и отдельный модуль для ИИ-ассистентов.</p><h2>Отдельный удар по ИИ-ассистентам</h2><p>Отдельный модуль малвари специально ищет артефакты ИИ-кодеров — API-ключи OpenAI и Anthropic из конфигов Claude, Cursor и Codex CLI, токены Aider, настройки AWS-based Kiro. Endor Labs считает, что это один из первых публично задокументированных случаев, когда supply chain-атака отдельной веткой целится на «кошельки разработчиков у ИИ». Ключ к Anthropic или OpenAI — это не только деньги на балансе аккаунта жертвы, но и возможность с его помощью заставить ИИ-ассистента писать закладки в код при следующих авто-запросах.</p><h2>Почему малварь пропускает русскую локаль</h2><p>Малварь завершается без выполнения, если в системе выставлена русская локаль. Socket отмечает три возможных причины: отдельный оператор, использующий общую инфраструктуру, отколовшаяся группа с идеологическими мотивами или эволюция самой кампании. На практике для российских разработчиков это не даёт защиты: большинство dev-машин, серверов и CI-раннеров работают с англоязычной локалью по умолчанию (обычно en_US.UTF-8), поэтому пропуск по локали чаще всего не срабатывает.</p><h2>Что делать, если могли установить 2026.4.0</h2><ul><li>Сначала убедитесь, что пакет действительно попал в ваши машины и раннеры: прогрепайте package-lock.json, pnpm-lock.yaml и yarn.lock на @bitwarden/cli версии 2026.4.0, посмотрите логи npm-установок в ночь на 23 апреля МСК.</li><li>Ротируйте все токены с этих машин: npm-токены, GitHub PAT (включая fine-grained), SSH-ключи, AWS access/secret keys и STS-сессии, Azure SP, GCP service accounts.</li><li>Замените секреты в GitHub Actions и других CI-системах, где пакет мог запускаться, — включая secrets, variables и OIDC-конфигурации.</li><li>Пройдитесь по API-ключам ИИ-ассистентов (Anthropic, OpenAI, Cursor, Aider) и отзовите их в кабинетах провайдеров; сверьте биллинг на предмет аномальных трат.</li><li>Проверьте публичные репозитории в своём GitHub-аккаунте: ищите имена в формате &lt;слово&gt;-&lt;слово&gt;-&lt;3 цифры&gt; (например, fremen-muaddib-042) со строкой «Shai-Hulud» в README и удалите.</li><li>Откатитесь на безопасную версию CLI — 2026.3.x или актуальную стабильную, которую Bitwarden опубликовал после инцидента. Ставьте её через npm i @bitwarden/cli@&lt;версия&gt;, а не через latest или диапазон.</li></ul><h2>Связь с Checkmarx и первый взлом через npm trusted publishing</h2><p>Накануне, 21 апреля, Checkmarx раскрыла собственный инцидент — компрометацию KICS Docker-образов, GitHub-расширений и пакета checkmarx/ast-github-action, который используется во многих CI-пайплайнах. По данным Endor Labs, репозиторий Bitwarden подтягивал именно этот action, и через него злоумышленники получили доступ к npm-каналу. Socket приводит прямые пересечения: тот же домен audit.checkmarx[.]cx, тот же паттерн обфускации __decodeScrambled с seed-значением 0x3039 — технический отпечаток, указывающий на одних и тех же авторов, — плюс тот же приём «украсть → выгрузить в GitHub → распространиться дальше».</p><p>Исследователь <a href="https://x.com/AdnanTheKhan">Аднан Хан утверждает</a>, что это первый зафиксированный случай компрометации пакета, использующего npm trusted publishing — механизм OIDC-публикации, при котором GitHub Actions обменивается на короткоживущий npm-токен без долгоживущих секретов в CI. Его как раз продвигали в ответ на регулярные утечки npm-токенов у мейнтейнеров. На деле trusted publishing оказался не панацеей: если нарушитель получает доступ к GitHub Actions-воркфлоу с правом публиковать пакет, OIDC-токен ему выдаёт сам npm. Атрибуция у исследователей — группа TeamPCP, уже засветившаяся на <a href="https://tproger.ru/news/volna-supply-chain-atak-na-pypi--razbiraem-litellm--telnyx-i-tri">взломах LiteLLM и Trivy</a>. Аккаунт TeamPCP в X на момент выхода материала заблокирован.</p><h2>Выводы для npm-экосистемы и supply chain</h2><p>Случай укладывается в серию ударов по цепочке доставки последних двух недель: <a href="https://tproger.ru/news/volna-supply-chain-atak-na-pypi--razbiraem-litellm--telnyx-i-tri">Trivy и LiteLLM на PyPI</a>, <a href="https://tproger.ru/news/supply-chain-ataki-2026--axios--pypi-i-prompt-injection---chto-pr">Axios и PyPI</a>, теперь Checkmarx и Bitwarden. Характерная деталь — защитный слой не спасает: trusted publishing, OIDC и короткоживущие токены не помогают, если злоумышленник уже получил доступ к CI-воркфлоу. Практический вывод: pin-версии в лок-файлах, отдельный CI-аккаунт с минимальными правами, еженедельная ревизия CI-секретов и мониторинг собственного GitHub на появление незнакомых публичных репозиториев. Инвентаризация секретов, которые ходят через CI/CD, перестала быть теоретическим упражнением.</p>]]></content:encoded>
    </item>
    <item>
      <title>Vercel сообщил об утечке env vars клиентов через скомпрометированный Context.ai</title>
      <link>https://tproger.ru/news/vercel-soobshhil-ob-utechke-env-vars-klientov-cherez-skomprometirova</link>
      <comments>https://tproger.ru/news/vercel-soobshhil-ob-utechke-env-vars-klientov-cherez-skomprometirova?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/vercel-soobshhil-ob-utechke-env-vars-klientov-cherez-skomprometirova</guid>
      <description><![CDATA[<p>Vercel сообщил об утечке env vars через скомпрометированный Context.ai. Разбираем цепочку атаки и даём чеклист ротации секретов — проверьте свои проекты.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/vercel-soobshhil-ob-utechke-env-vars-klientov-cherez-skomprometirova">Vercel сообщил об утечке env vars клиентов через скомпрометированный Context.ai</a>»</p>]]></description>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 21 Apr 2026 10:40:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если у вас есть проекты на Vercel и в них хранятся API-ключи или токены без пометки «sensitive» — ротируйте их прямо сейчас. 19 апреля Vercel опубликовал, что атакующий получил доступ к части клиентских переменных окружения через скомпрометированный ИИ-инструмент <a href="https://context.ai/security-update" rel="nofollow">Context.ai</a>, которым пользовался один из сотрудников Vercel.</p><p>Инцидент формально небольшой — Vercel пишет про «ограниченный subset» клиентов, — но показательный. Злоумышленники всё чаще заходят в большие платформы не через уязвимости в коде, а через сторонние ИИ-интеграции, которым разработчики дают «Allow all» на Google Workspace (то есть соглашаются на все запрошенные OAuth-scopes — чтение почты, диска, календаря). Для российских разработчиков ситуация актуальна в двух сценариях: деплоите ли вы что-то на Vercel напрямую или работаете на зарубежного заказчика, у которого есть Vercel-проекты. Логика рекомендаций — «sensitive env vars + аккуратные OAuth-scopes + 2FA» — применима и к Netlify, Cloudflare Pages и любому другому хостингу с dashboard-ом.</p><p><b>Точка входа:</b> OAuth-токен сотрудника Vercel в Context AI Office Suite. Сотрудник выдал приложению «Allow all» на Google Workspace.</p><p><b>Что утекло:</b> переменные окружения на Vercel, которые <b>не</b> помечены как sensitive — API-ключи, токены, DB-credentials, ключи подписи.</p><p><b>Что защищено:</b> env vars с флагом sensitive, npm-пакеты Vercel (проверено совместно с GitHub, Microsoft, npm и Socket), enterprise-клиенты Context.ai на Context Bedrock — это собственная on-premise enterprise-платформа Context.ai, не AWS Bedrock.</p><p><b>Сколько затронуто:</b> по данным Vercel, «ограниченный subset» клиентов получил персональное уведомление. Если письма не было — вас, скорее всего, не коснулось.</p><p><b>Что делать:</b> ротировать все не-sensitive env vars, включить 2FA, пометить секреты как sensitive, проверить activity log.</p><h2>Что такое «sensitive» env vars на Vercel</h2><p>В Vercel у каждой переменной окружения есть чекбокс «Sensitive». Если он включён, значение переменной хранится так, что его <b>нельзя прочитать обратно</b> — ни в UI, ни через API. Приложение получает значение в рантайме, но никакой интерфейс на стороне Vercel не может его показать даже самому владельцу проекта. Если чекбокс выключен — значение лежит в открытом виде в панели, и разработчик (а значит, и тот, кто получил его учётку) может его увидеть.</p><p>До инцидента новые переменные по умолчанию создавались <b>без</b> флага sensitive — значит, часть секретов в проектах была в открытом виде в панели, даже у аккуратных команд. Польза sensitive-флага простая: даже если атакующий украл учётку разработчика и вошёл в dashboard, прочитать значения этих переменных он уже не может — значения доступны только приложению в рантайме. После инцидента Vercel сделал sensitive-флаг включённым по умолчанию и улучшил team-wide управление переменными.</p><h2>Как атакующий дошёл до env vars Vercel</h2><p>Из двух официальных заявлений восстанавливается такая цепочка:</p><ol><li><b>Июнь 2025.</b> Context.ai запустил Context AI Office Suite — consumer-продукт для работы с ИИ-агентами (документы, слайды, таблицы). У Suite была функция «агенты действуют в вашем Google Workspace»: писать письма, создавать документы.</li><li><b>До апреля 2026.</b> Сотрудник Vercel подключил свой служебный Google Workspace-аккаунт к Context AI Office Suite и выдал OAuth-приложению «Allow all» — разрешил читать и модифицировать всё, что доступно в Workspace: почту, диск, календарь.</li><li><b>Март 2026.</b> Context.ai независимо обнаружил несанкционированный доступ к своему AWS-окружению. Привлекли CrowdStrike для расследования, закрыли AWS и свернули потребительский продукт.</li><li><b>Апрель 2026.</b> По данным от Vercel и внутреннего расследования Context.ai выяснил: во время инцидента были скомпрометированы OAuth-токены пользователей AI Office Suite. Один из них использовался атакующим для входа в Google Workspace сотрудника Vercel — через почту и привязанные магические ссылки атакующий добрался до панели управления Vercel.</li><li><b>19 апреля 2026.</b> Vercel опубликовал первое уведомление об инциденте, затем раскрыл IOC и источник атаки. Context.ai выпустил параллельное заявление.</li></ol><p>Vercel оценивает атакующего как «высокопрофессионального» — исходя из скорости работы и детального понимания внутренних систем платформы. К расследованию привлечены Mandiant и правоохранительные органы.</p><h2>Индикатор компрометации (IOC)</h2><p>Vercel опубликовал ID OAuth-приложения, через которое проходила атака. Администраторам Google Workspace стоит проверить, не авторизован ли этот app у кого-то из сотрудников:</p><p>Проверить можно в консоли Google Admin: <i>Security → API controls → Third-party app access</i>. Если app найден — отозвать все его токены, связаться с сотрудниками, у которых он был подключён, и ротировать их секреты по тому же чеклисту, что и клиентам Vercel.</p><h2>Что делать клиентам Vercel</h2><p>Прямой чеклист из рекомендаций Vercel. Начинать сверху, даже если уведомления от Vercel не получали — «ограниченный subset» определяется по подтверждённым фактам, а расследование ещё идёт.</p><ol><li><b>Ротировать все не-sensitive env vars</b> — API-ключи, токены, строки подключения к БД, ключи подписи. Все значения, которые видны в интерфейсе Vercel в открытом виде, считайте потенциально утёкшими.</li><li><b>Пометить секреты как sensitive.</b> Зайдите в Settings → Environment Variables, откройте каждый секрет, включите чекбокс Sensitive. С этого момента значение нельзя будет прочитать обратно.</li><li><b>Включить 2FA</b> на всех аккаунтах команды. Authenticator-app или passkey — ссылки есть в официальном бюллетене Vercel.</li><li><b>Проверить activity log</b> проекта и команды на подозрительные действия: неожиданные деплои, смена настроек, приглашения новых членов команды. Лог доступен в dashboard и через CLI.</li><li><b>Поставить Deployment Protection</b> как минимум в режим Standard. Если использовали Deployment Protection tokens — ротировать их.</li><li><b>Удалить подозрительные деплои.</b> Если в логе есть деплой, которого вы не помните, — удалить его, даже если не уверены.</li></ol><p>Удалить проект или аккаунт <b>недостаточно</b> — по словам Vercel, скомпрометированные секреты остаются валидными, пока вы их не ротируете. Сначала ротация, потом чистка.</p><h2>Чему учит этот инцидент</h2><p>Это не первая supply-chain атака, но она показательна двумя вещами.</p><p><b>Первое:</b> сторонний ИИ-инструмент с «Allow all» на Google Workspace — это, по сути, полный доступ к почте, диску и календарю компании. Любая его компрометация превращается в компрометацию всего, что висит на SSO вокруг Google Workspace. У Vercel это привело к тому, что одна галочка сотрудника открыла доступ к production env vars целой платформы.</p><p><b>Второе:</b> «encrypted at rest» — это не защита от кражи credentials из рабочей среды. Env vars всегда должны быть декодированы для запуска приложения; поэтому бекенд Vercel умеет их читать, и атакующий, получивший доступ к интерфейсу команды, тоже мог. Флаг sensitive решает именно эту задачу — делает значение нечитаемым для самого интерфейса, не для рантайма.</p><h2>Выводы</h2><blockquote>Когда один OAuth-токен может скомпрометировать dev-tools, CI-pipeline, секреты и деплой одновременно — это сигнал, что где-то в архитектуре доверия пошло не так.</blockquote><p>Полный тред — на <a href="https://news.ycombinator.com/item?id=47824463" rel="nofollow">Hacker News</a>: в обсуждении 858 баллов и почти 500 комментариев разбирают, как архитектура «одна OAuth-связка = доступ ко всему» стала нормой в SaaS.</p><p>После инцидента Vercel выкатил четыре продуктовых изменения, полезных и за пределами этой истории: sensitive-флаг включён по умолчанию для новых переменных, улучшено team-wide управление env vars, activity log стал информативнее и получил deep-linking по фильтрам, обновлены письма-приглашения в команду. Старые проекты это не починит автоматически — идти в Settings и помечать секреты sensitive вручную всё равно придётся.</p><p>Полный текст уведомлений — <a href="https://vercel.com/kb/bulletin/vercel-april-2026-security-incident" rel="nofollow">бюллетень Vercel</a> и <a href="https://context.ai/security-update" rel="nofollow">statement Context.ai</a>. Обе страницы обновляются по мере расследования, стоит подписаться на уведомления или заглянуть через неделю.</p>]]></content:encoded>
    </item>
    <item>
      <title>Агенты в помощь: что Cloud.ru показал на GoCloud 2026</title>
      <link>https://tproger.ru/articles/agenty-v-pomoshh-chto-cloud-ru-pokazal-na-gocloud-2026</link>
      <comments>https://tproger.ru/articles/agenty-v-pomoshh-chto-cloud-ru-pokazal-na-gocloud-2026?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Вика Овсянникова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/agenty-v-pomoshh-chto-cloud-ru-pokazal-na-gocloud-2026</guid>
      <description><![CDATA[<p>Neocloud, EvoClaw, AI Workflows и безопасность LLM. Репортаж с конференции Cloud.ru — о том, почему разработчики становятся тимлидами агентов и сколько стоит арендовать HGX.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/agenty-v-pomoshh-chto-cloud-ru-pokazal-na-gocloud-2026">Агенты в помощь: что Cloud.ru показал на GoCloud 2026</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Конференции]]></category>
      <category><![CDATA[DevOps]]></category>
      <category><![CDATA[Облачные технологии]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Kubernetes]]></category>
      <category><![CDATA[Low-code]]></category>
      <category><![CDATA[GPU]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 17 Apr 2026 10:55:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>9 апреля Cloud.ru провёл конференцию GoCloud, посвященную ИИ и облакам. В этом году главные темы: AI-инфраструктура как отдельный продукт, управляемые агенты и безопасность LLM.</p><p>Рассказываем, что показала компания, о чём говорили спикеры и куда движется индустрия.</p><h2>Сначала цифры: как вырос Cloud.ru</h2><p>На конфренции Cloud.ru впервые публично раскрыла детальную финансовую отчётность. Выручка за 2025 год — 76,5 млрд рублей (+50% год к году). Чистая прибыль — 14,7 млрд(+86%).</p><p>Основной драйвер роста — инфраструктура для ИИ: обучение и инференс моделей дали 54% выручки. При этом классические облачные сервисы тоже выросли на 31%, что быстрее темпов роста рынка России.</p><p>По инфраструктуре Cloud.ru — один из крупнейших облачных провайдеров в стране. В парке находится 43 000+ единиц оборудования, 29 000+ серверов, 9 ЦОДов суммарной мощностью 56 МВт.</p><blockquote>По доле рынка мы уже давно занимаем большую часть, при этом продолжая расти быстрее рынка,</blockquote><p>Важный нюанс: убыточных направлений нет. Разные платформы находятся на разных стадиях развития, но инвестиции отбиваются в плановые сроки.</p><figure><img src="https://media.tproger.ru/user-uploads/111203/2026-04-17/8164f5eb-78a8-48de-917e-722800735174.webp" alt="Михаил Лобоцкий, и. о. гендиректора Cloud.ru на конференции GoCloud" /><figcaption>Рост на 50% и доминирование AI в выручке не случайность. За этими цифрами стоит рыночный сдвиг: компании перестали экспериментировать с ИИ и начали внедрять его в реальные бизнес-процессы.</figcaption></figure><p>АФЛТ-Системс, например, уже в активной фазе перехода к регулярной эксплуатации AI. Павел Павленко, руководитель направления развития GenAI, говорит: <i>«GoCloud для меня в этом году — про то, как индустрия перешла от разговоров про потенциал GenAI к разговору про реальные внедрения, метрики и архитектурные решения. Мы строим внутреннюю AI-платформу, выстраиваем процессы и запускаем первые продукты, в том числе AI-фикацию пайплайна разработки. На таком этапе ценность партнёра измеряется не презентациями, а скоростью реакции и готовностью идти в эксперимент»</i>.</p><h2>Что происходит на рынке: от пилотов к промышленной эксплуатации</h2><p>Последние 2–3 года компании делали пилоты по внедрению генеративного ИИ в основном благодаря визионерской силе лидеров, CEO, директоров. Пилоты часто были точечными и экспериментальными: автоматизировали поддержку и отвечали на частые простые вопросы, генерировали контент.</p><p>Сейчас модели стали лучше, а бизнес опытным путем выяснил, какие функции эффективнее передавать ИИ. Результаты пилотов всё чаще признаются успешными.</p><p>Например, Артём Бондарь, руководитель направления NLP в Центре искусственного интеллекта Т-Банка, выделяет три ключевых направления GenAI-инструментов. Первое — агенты и копайлоты в полном цикле разработки. Второе — инструменты для HQ-профессий: от генеративных моделей для общих задач до вертикальных решений вроде автоматической генерации креативов «почти без касания людей».</p><p>Но прямой финансовый эффект особенно заметен в автоматизации поддержки и операционки. Здесь задействован весь спектр GenAI-подходов:</p><ul><li>пошаговая автоматизация с помощью LLM там, где есть регламентированный процесс,</li><li>агенты, которые ищут решение в сконструированной для них среде,</li><li>и AI-сотрудник Афанасий Иванов (АИ), который работает в компании уже больше года и использует те же интерфейсы, что и люди.</li></ul><p>Становится ясно, что перелом скоро наступит. И это точно не год.</p><p>Последует волнообразный рост спроса на инференс, а не только на обучение. Раньше инфраструктура была перекошена только в ту сторону, хоть и занимаются обучением единицы компаний в стране. Уже за последние полтора года спрос на инференс резко вырос. Скоро пропорция выровняется 50 на 50, а дальнейший переход будет зависеть от того, насколько быстро заработает агентная экономика.</p><p>DevOps-практики тоже перешли в практическую плоскость. В МТТЕХ выстроили модель GitOps, где Git — единый источник истины, а все изменения проходят через ревью и автоматизированный деплой. IaC-подход (Terraform, Ansible) и self-hosted GitLab в облаке позволяют управлять инфраструктурой как кодом.</p><blockquote>Если раньше поднятие инфраструктуры занимало недели и требовало вовлечения нескольких команд, то сегодня мы говорим про минуты и полностью автоматизированные процессы,</blockquote><p>При этом классические облачные нагрузки тоже растут. Цифровизация никуда не делась, а GenAI-трансформация косвенно драйвит и классику: нужны хранилища, CPU для сопутствующих задач, сети.</p><h2>Neocloud: GPU как отдельное направление</h2><p>На этом фоне Cloud.ru выделил AI-инфраструктуру в отдельное бизнес-направление — Neocloud. Это единая управляемая среда для полного цикла работы с моделями: от разработки и обучения до инференса и эксплуатации.</p><figure><img src="https://media.tproger.ru/user-uploads/111203/2026-04-17/40683550-bfd1-4d25-a5fa-8e4c4c057645.webp" alt="Новое бизнес-направление Neocloud" /><figcaption>Фокус 2026 года — Neocloud</figcaption></figure><p>Нагрузки под ИИ сильно отличаются от классических. Для них нужны высокоскоростные соединения между GPU, умный шедулинг (днём — инференс, ночью — дообучение), возможность получить кластер из сотен HGX, а потом отпустить. Но на рынке такого предложения нет. Neocloud как раз решает управление вычислительными ресурсами на масштабе.</p><h3>В Neocloud есть:</h3><ul><li>Доступ к тысячам современных GPU в публичном облаке.</li><li>Поддержка гибридных сценариев (своя инфраструктура + облако).</li><li>Собственная платформа Distributed Train для распределённого обучения с проактивным мониторингом, автоматической заменой отказавших узлов и гибким управлением очередями.</li></ul><h3>Чем Neocloud выгодно разработчикам</h3><p>Решения такого уровня остаются доступными и для пользователей. Арендовать HGX теперь не проблема, они доступны буквально по цене обеда.</p><p>Выгодная стоимость для Cloud.ru остается приоритетом. Компания заявляет, что не планирует повышать цены в этом году.</p><p>Это не единственный аргумент в пользу облака. Как отмечает Артём Сычев, первый заместитель генерального директора РТ-Информационная безопасность, для госсектора и крупных компаний есть ещё одно важное преимущество: <i>«С облаком удобнее проходить закупочные процедуры. Ты сделал рамочный договор, и в любой момент, когда у тебя появился новый госзаказчик, быстро развернул инфраструктуру»</i>.</p><h2>Агенты: EvoClaw, Agent Space и новый способ общения с облаком</h2><p>Другой инструмент, о котором рассказали на конференции, — EvoClaw. Это управляемый облачный сервис для работы с OpenClaw и другими open source агентными фреймворками. ИИ-агент обеспечивает observability, мониторинг, логирование и поддерживает политики безопасности. Cloud.ru одним из первых в России приступил к открытому тестированию OpenClaw ещё в феврале 2026 года.</p><h3>Ключевые особенности EvoClaw:</h3><ul><li>Агент запускается в пару кликов.</li><li>Политики безопасности приведены к Zero Trust, привилегии — по минимальному принципу.</li><li>Агенты изолированы своим рабочим пространством.</li><li>Интеграция с AI Factory (Foundation Models, AI Agents, Managed RAG).</li></ul><p>EvoClaw — это другой способ общения с агентами. Он быстро разворачивается, на лету изучает новые скиллы, подтаскивает все необходимые функции. Он становится своего рода прокси между пользователем и сервисами и превращается в полноценного помощника.</p><blockquote>Это первый шаг к такому типу потребления, когда пользователь или организация перестают общаться напрямую с облаками и начинают общаться с агентами, которые с помощью доверенных им учёток, прав сами разворачивают инфраструктуру, сами её администрируют, дают нагрузку и так далее,</blockquote><p>Да, для облачных провайдеров это может звучать как риск, но на самом деле агенты пока что все так же будут ходить в API облаков и строить инфраструктуру там.</p><p>Ещё одно решение Cloud.ru для работы с агентами — <b>Agent Space</b> — мобильное и десктоп-приложение, которое позволяет чатиться с агентом. Оно работает на протоколе A2A (Agent-to-Agent). А в каталоге представлены уже более 20 бизнес-сценариев, среди которых и «Агент Python-разработчик».</p><h2>AI Workflows: low-code оркестратор</h2><p>Бизнес-процесс редко состоит из одного действия. Обычно это цепочка: проверить данные в 1С, прогнать их через LLM, создать задачу в Jira, отправить уведомление в Telegram.</p><p>Для таких сценариев Cloud.ru запустил AI Workflows — low-code конструктор, который сейчас находится в публичном тестировании.</p><figure><img src="https://media.tproger.ru/user-uploads/111203/2026-04-17/8c3cab72-bcc9-44d7-a503-eabe0401555d.webp" alt="AI Workflows — low-code конструктор" /><figcaption>AI Workflow — low-code конструктор для последовательности действий</figcaption></figure><p>Пользователь собирает цепочку шагов в визуальном интерфейсе (как в n8n, но с ИИ-блоками). На каждом шаге можно подключить готовый коннектор к 1С, Jira, Confluence, PostgreSQL, почтовым клиентам, мессенджерам или внутренним сервисам через API. А между ними — вызовы LLM из Evolution Foundation Models, инференс-моделей или даже готовых агентов.</p><p>На старте AI Workflows ориентирован на готовые коннекторы и предсобранные кубики. Вставлять кастомные скрипты прямо в цепочку пока нельзя. Но в компании понимают, что разработчикам это нужно и планируют дать такую возможность, подчеркивает Анастасия Тафеенко, директор блока разработки платформы Cloud.ru Evolution.</p><p>На пресс-конференции прозвучала интересная мысль: AI Workflows — это тоже промежуточный этап. Через пару лет, когда компании привыкнут делегировать задачи ИИ, и этот уровень оркестрации станет не нужен, всё будет ИИ-фицировано насквозь.</p><h2>Безопасность: Guardrails и Container Security</h2><p>Агенты получают доступ к вашей инфраструктуре. Да, это удобно, но возникает закономерный вопрос: как не допустить, чтобы агент случайно (или специально) не отправил чувствительные данные во внешнюю LLM? Или не поднял контейнер с критической уязвимостью?</p><p>На GoCloud 2026 анонсировали два инструмента, которые закрывают эти риски — на уровне данных и на уровне инфраструктуры.</p><h3>Guardrails Filter: чтобы секреты не утекли</h3><p>Guardrails Filter — это фильтр между агентами и большой языковой моделью. Он сканирует исходящий запрос, находит потенциально чувствительные данные (ПДн, реквизиты, API-ключи, секреты), маскирует их и только потом отправляет в LLM. Когда модель возвращает ответ, фильтр восстанавливает реальные значения на месте.</p><blockquote>Guardrails как раз обеспечивает фильтрацию при обращении к внешним моделям. Наши же модели не дообучаются, данные не используются, не имеют доступа в интернет. Это проверено пен-тестами,</blockquote><h3>Evolution Container Security: чтобы контейнеры не стали дырой</h3><p>На уровне государства вводятся понятия «суверенного искусственного интеллекта», проходят публичные слушания по закону. Граница безопасности активно формируется. Cloud.ru отвечает на этот запрос и даёт широкую линейку сервисов безопасности, чтобы клиент мог выбрать нужный уровень под свой класс информационной системы.</p><p>По оценкам экспертов, порядка 80% запущенных кластеров Kubernetes содержат роли с избыточными привилегиями. И Evolution Container Security обеспечивает безопасность контейнерных сред Kubernetes. Сервис уже доступен в публичном тестировании.</p><figure><img src="https://media.tproger.ru/user-uploads/111203/2026-04-17/5ee3868c-ba8a-41ad-b548-794414f9fefd.webp" alt="Воркшопы конференции GoCloud 2026" /></figure><h4>Возможности Evolution Container Security:</h4><ul><li>Сканирование контейнеров на уязвимости (включая БДУ ФСТЭК).</li><li>Встроенный ИИ-агент для генерации политик безопасности.</li><li>Создание и управление политиками через конфигуратор.</li><li>Проверка конфигураций во время развёртывания.</li></ul><blockquote>Это классическая контейнерная безопасность — он проходит по настройкам кластера через фреймворк. Есть агент, который помогает настройщику сделать это правильно,</blockquote><h4>Что еще волнует безопасников</h4><p>На круглом столе «Облако уже сегодня. Как получить конкурентное преимущество без компромиссов по безопасности» участники честно рассказали о своих страхах. Главный — потеря контроля. <i>«Облако — это чёрный ящик, который необходимо контролировать, обвязывать своими сервисами, чтобы перепроверять подрядчика»</i>, — поделился Артём Сычев, первый заместитель генерального директора РТ-Информационная безопасность.</p><p>На руку работают прозрачность архитектуры и метрики кибербезопасности в личном кабинете. Понимание процессов: как нарезаются доступы, как выдаются ключи, как часто проводятся пентесты. SLA с чёткими временами отклика и возможность выгружать логи гипервизоров для собственного анализа аномалий.</p><p>Облачные провайдеры, включая Cloud.ru, уже отвечают на эти запросы — едиными политиками безопасности, мониторингом и логированием как в публичном облаке, так и в гибридных средах.</p><p>Но есть и другой уровень безопасности — физический. Антон Фомин, CDO Navio, рассказывает, как GenAI помогает спасать жизни: <i>«Как собрать данные о лобовом столкновении, не отправляя водителя на встречную машину? Мы это делаем с помощью нашего фотореалистичного стимулятора. Вот настоящая польза генеративного ИИ: заглянуть за горизонт и научить машины ездить без риска»</i>.</p><h2>Гибридные облака: почему это сложно и как Cloud.ru стали одними из первых в этом поле</h2><p>Гибридное облако — одна из тех тем, о которой много говорят, но мало кто делает хорошо. На конференции Cloud.ru представил исследование, которое показывает: интерес к гибридной модели растёт, но её часто воспринимают как нечто сложное и размытое.</p><p>Что такое гибрид на самом деле? Если отбросить маркетинговые формулировки, гибрид — это частное облако (on-prem) + публичное облако + связь между ними под единой платформой. Из единого личного кабинета можно управлять ресурсами и там, и там, переезжать виртуальными машинами из публичного облака в свой ЦОД и обратно.</p><blockquote>Гибрид для меня — это возможность использования on-prem инфраструктуры, но с биллингом, управлением ресурсами, логированием, личным кабинетом</blockquote><p>Гибрид это всё ещё больно и дорого. Публичное облако можно обновлять постоянно — раз-два в день, а то и чаще. Если в сервисе появилась ошибка, её сразу исправляют. С гибридом так не получится. Релиз, который поедет к клиенту на on-prem инфраструктуру, нужно собирать, тестировать, сертифицировать. И каждый сервис внутри этого релиза должен работать без оглядки на внешние зависимости.</p><p>Плюс требования клиента: пройти ПСИ, подтвердить безопасность, соответствие регуляторным нормам. В публичном облаке за это отвечает провайдер. В гибриде — всё ложится на клиента и интегратора.</p><figure><img src="https://media.tproger.ru/user-uploads/111203/2026-04-17/9e2bc621-fd21-431f-85e8-cdd23aa6a9ac.webp" alt="Конференция GoCloud 2026" /></figure><h3>Почему индустрия всё равно придёт к гибриду</h3><ul><li>Безопасникам проще контролировать конфигурации и видеть всю инфраструктуру.</li><li>Финансистам — смотреть утилизацию оборудования.</li><li>CTO — видеть все виртуальные машины.</li><li>В on-prem сложно инвентаризировать legacy-системы. Гибрид даёт прозрачность.</li></ul><p>Cloud.ru начал строить гибридную платформу ещё на ранней стадии публичного облака. В прошлом году анонсировали Evolution Stack — платформу для создания частных и гибридных облаков. Клиенты уже могут получить единые политики безопасности, мониторинг и логирование для on-prem и публичного облака. Единой консоли управления «из облака» (модель Outpost, как у западных гиперскейлеров) пока нет. Но пилоты с единым центром управления готовы запускать уже сейчас.</p><p>В России почти нет провайдеров, которые могут предложить гибридное облако как отчуждаемый продукт, который можно установить у себя в ЦОДе. Cloud.ru сделал это за счёт того, что публичное облако и гибридная платформа построены на единой кодовой базе. Сервисы идентичны, пользовательский опыт одинаковый. Разработка начинается в публичном облаке, а прод уезжает на on-prem — и это работает, потому что сервисы внутри одни и те же.</p><h2>Что будет с разработкой: не паникуем, но не забываем готовиться</h2><p>Агенты уже пишут код, тестируют, разворачивают инфраструктуру. DevOps-инженер отдаёт помощнику создание виртуальных машин и настройку баз данных. SRE-агент сам поднимает метрики и ищет первопричины инцидентов. Вопрос, который возникает у каждого разработчика: «Меня заменят?»</p><p>В ближайшем будущем роли не отомрут, но изменятся. <i>«Разработчику нужно поднимать уровень, становиться тимлидом — а его тиммейтами будут агенты»</i>, считает Анастасия Тафеенко, директор блока разработки платформы Cloud.ru Evolution.</p><blockquote>Чем больше у разработчика экспертизы, чем лучше он понимает, как на самом деле устроен продукт, что такое репозитории, из каких блоков он состоит, — тем эффективнее он будет с агентами работать,</blockquote><p><b>Новый челлендж — экономика решений.</b> Можно написать агенту одну строчку, а потом 10 тысяч раз переделывать, уточнять, перезапускать. Каждый шаг — это токены. А токены — это деньги. Борьба будет не за то, кто быстрее написал код, а за то, сколько стоило решить задачу.</p><p><b>Новая роль — оркестратор агентов.</b> На круглом столе «DevOps инструменты в облаке» представители МТТЕХ, Familia, Ventra и «Технологии – и точка» сформулировали главный тренд: «Мы движемся к модели, где человек становится оркестратором агентов. Он их направляет, пишет принципы, управляет — как оргструктурой».</p><p>Количество агентов будет расти драматически — от десятков до тысяч. И тот, кто научится управлять этой «армией», останется востребованным.</p><p>Агенты не приходят на пустое место. Основной барьер для внедрения ИИ-агентов не технологический, а организационный. Если в компании данные разрознены, процессы не формализованы, а культура не готова делегировать решения машине — никакой агент не поможет. И наоборот: в компаниях, где данные структурированы и процессы прозрачны, агенты достигают 60–90% автоматизации.</p>]]></content:encoded>
    </item>
    <item>
      <title>Marimo RCE за 9 часов 41 минуту: атакующие собрали эксплойт прямо по advisory</title>
      <link>https://tproger.ru/news/marimo-rce-za-9-chasov-41-minutu-atakuyushhie-sobrali-eksplojt-pryam</link>
      <comments>https://tproger.ru/news/marimo-rce-za-9-chasov-41-minutu-atakuyushhie-sobrali-eksplojt-pryam?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/marimo-rce-za-9-chasov-41-minutu-atakuyushhie-sobrali-eksplojt-pryam</guid>
      <description><![CDATA[<p>Критический pre-auth RCE в Marimo (CVSS 9.3) эксплуатирован за 9 ч 41 мин после раскрытия — без PoC. Обновитесь до 0.23.0 и ротируйте API-ключи.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/marimo-rce-za-9-chasov-41-minutu-atakuyushhie-sobrali-eksplojt-pryam">Marimo RCE за 9 часов 41 минуту: атакующие собрали эксплойт прямо по advisory</a>»</p>]]></description>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 13 Apr 2026 09:30:05 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если у вас в dev- или ML-стеке крутится Marimo — открытая альтернатива Jupyter с реактивными ячейками — откройте marimo --version прямо сейчас. Любая версия до 0.23.0 даёт любому, кто достучится до порта, полноценный root-shell без пароля за одно WebSocket-соединение.</p><p><a href="https://thehackernews.com/2026/04/marimo-rce-flaw-cve-2026-39987.html">CVE-2026-39987</a> (CVSS 9.3) — критическая pre-auth RCE (удалённое выполнение кода до авторизации) в популярном реактивном Python-ноутбуке. По данным <a href="https://sysdig.com/">Sysdig</a>, первая эксплуатация в дикой природе зафиксирована через 9 часов 41 минуту после публикации advisory — без публичного PoC. Кража учётных данных из honeypot заняла меньше трёх минут.</p><ul><li>Marimo до версии 0.20.4 включительно уязвим к CVE-2026-39987 — pre-auth RCE с CVSS 9.3. Патч: обновиться до 0.23.0.</li><li>Корень проблемы — WebSocket-эндпоинт /terminal/ws пропускал вызов validate_auth(), который у соседнего /ws есть. Одного WebSocket-хендшейка достаточно для полного PTY-шелла.</li><li>Attackers поймали тайминг: 9 ч 41 мин от раскрытия до реальной атаки, эксплойт собран по описанию advisory, без готового PoC.</li><li>В Docker-сборках Marimo по умолчанию работает от root, а в .env лежат ключи OpenAI, Anthropic, Google Gemini, cloud-credentials — типичная цель атаки.</li><li>Это третий RCE подряд в AI-тулчейне за несколько месяцев: Langflow CVE-2026-33017 (эксплойт через 20 ч), Flowise CVE-2025-59528. Паттерн устойчив.</li></ul><h2>В чём уязвимость</h2><p>WebSocket — протокол постоянного двустороннего соединения между браузером и сервером; одно соединение висит долго и гоняет по нему сообщения. Сервер Marimo держит несколько таких эндпоинтов: /ws — для обмена состоянием ячеек и UI, /terminal/ws — для встроенного терминала внутри интерфейса ноутбука. Первый корректно вызывает validate_auth() (проверка сессионного токена пользователя) перед принятием соединения. Второй — нет.</p><p>Вместо аутентификации /terminal/ws проверял только две вещи: включён ли терминальный режим и поддерживает ли платформа PTY (псевдотерминал — эмуляция tty-интерфейса, через который обычно общаются командные оболочки). В сетевом деплое обе проверки почти всегда истинны. Итог — любой сетевой соседний или интернет-доступный атакующий открывает WebSocket, получает PTY-шелл с правами процесса Marimo. В дефолтном Docker-образе это root.</p><p>Endor Labs охарактеризовали баг как «root в один запрос»: один WebSocket-хендшейк — и атакующий внутри. Уязвимость зарегистрирована как <a href="https://github.com/marimo-team/marimo/security/advisories/GHSA-2679-6mx9-h9xc">GHSA-2679-6MX9-H9XC</a>, CWE-306 (Missing Authentication for Critical Function). Исправлена в <a href="https://github.com/marimo-team/marimo/pull/9098">PR #9098</a>.</p><h2>Как выглядела эксплуатация</h2><p>Advisory для CVE-2026-39987 опубликовали 8 апреля 2026 года. Sysdig разворачивает honeypot-инфраструктуру с уязвимыми Marimo-инстансами в нескольких облаках — первое срабатывание пришло через 9 часов 41 минуту, без публичного PoC. Описание advisory было достаточно точным, чтобы собрать рабочий эксплойт прямо по нему.</p><p>Дальше атакующий действовал методично. Подключился к /terminal/ws, прошёлся по файловой системе, прочитал .env, поискал SSH-ключи и конфиги. Полный цикл от коннекта до эксфильтрации учётных данных — меньше трёх минут. Через час атакующий вернулся проверить, не пришли ли другие.</p><p>Ни майнеров, ни бэкдоров не поставили. Sysdig интерпретирует это как работу живого оператора, который идёт по списку целей и возвращается за результатом, — а не как массовый автоматизированный скан.</p><h2>Marimo не один: RCE в AI-тулчейне становится паттерном</h2><p>Marimo используют инженерные команды Stanford, Mozilla AI, OpenAI и BlackRock. У проекта около 20 000 звёзд на GitHub, типичные деплои — Docker, Hugging Face Spaces, SkyPilot, CoreWeave. В этих окружениях под рукой обычно всё, что атакующий и ищет: ключи OpenAI, Anthropic и Google Gemini, cloud-credentials, SSH-ключи к training-серверам и бакетам с датасетами.</p><p>Компрометация Marimo-инстанса — это не просто shell на сервере. Это доступ к LLM-аккаунту с биллингом, к batch-инференсу на fine-tuned моделях, к облачному хранилищу с моделями и данными обучения. И это уже третий похожий инцидент за несколько месяцев: Langflow CVE-2026-33017 (эксплойт за 20 часов), Flowise CVE-2025-59528 (CVSS 10.0, активная эксплуатация спустя полгода после патча). Паттерн устойчивый: AI-тулчейн попадает в «серую зону» безопасности — воспринимается как dev-инструмент, а не production, и получает меньше мониторинга и сегментации сети.</p><h2>Что делать прямо сейчас</h2><ol><li>Обновите Marimo до 0.23.0 или выше. Проверка: marimo --version. Для Docker — обновите базовый образ и pinned-зависимости.</li><li>Проверьте, был ли ваш инстанс доступен из сети после 8 апреля 2026 года. Если да — считайте учётные данные скомпрометированными и ротируйте их: ключи LLM-провайдеров (OpenAI, Anthropic, Google), cloud-credentials, SSH-ключи, токены пакетных менеджеров.</li><li>Проверьте биллинг и активность в админках LLM-провайдеров и облаков — есть ли запросы или инстансы, которых вы не запускали.</li><li>Не выставляйте Marimo в интернет напрямую. Минимум — запуск на loopback: marimo edit --host 127.0.0.1. Публичный деплой — только за реверс-прокси с авторизацией (nginx basic-auth / auth_request, Caddy + OAuth2-Proxy), в VPN или в private subnet.</li><li>Разверните Marimo от непривилегированного пользователя, не от root. Стандартный Docker-образ работает как root — поправьте в своей сборке через USER в Dockerfile.</li><li>Подпишитесь на GitHub Security Advisories для репозиториев AI-тулчейна: на странице репо в GitHub — Watch → Custom → Security alerts. Или добавьте в rss-агрегатор фид github.com/owner/repo/security/advisories.atom. Для кросс-платформенного мониторинга — osv.dev и CISA KEV.</li></ol><h2>Индикаторы компрометации</h2><p>Искать в логах веб-сервера или прокси перед Marimo:</p><p>Marimo сам логи WebSocket-соединений не пишет. Если Marimo стоит за reverse-proxy — смотрите access-логи прокси: nginx в /var/log/nginx/access.log, Caddy и Traefik — в stdout контейнера. Без прокси проверить ретроспективно по логам не выйдет — остаётся только ротация секретов по принципу «предположи компрометацию».</p><p>Проверить файлы, к которым типично обращается атакующий после получения шелла:</p><h2>Выводы</h2><p>CVE-2026-39987 — ещё один пример того, как удобная «фича для разработчика» превращается в точку входа для атакующего, если её не прогнали через ту же модель угроз, что и основной API. Встроенный терминал выглядел как локальный инструмент — на деле обслуживал тот же сетевой стек, что и весь остальной интерфейс.</p><blockquote>Предположение, что атакующие охотятся только за массово развёрнутыми платформами, — неверно. Любое интернет-доступное приложение с критическим advisory — цель, независимо от популярности.</blockquote><p>Практический вывод для команд, использующих AI-тулчейн: отнеситесь к Marimo, Langflow, Flowise и прочим notebook-платформам как к production-сервисам, а не как к dev-утилитам. Это значит patch management, сегментация сети, least privilege в контейнерах и мониторинг исходящего трафика. Десять часов от advisory до эксплойта — время реакции, на которое стоит рассчитывать.</p><p>Минимальная проверка за 30 секунд для любого notebook- или AI-сервиса в вашей инфраструктуре: запустите ss -tlnp | grep LISTEN на хосте и найдите порты, на которых сидит Jupyter, Marimo, Flowise, Langflow, Streamlit, Gradio. Если порт слушает на 0.0.0.0, а не на 127.0.0.1 — разберитесь, зачем и как он защищён. Если не знаете зачем — переведите на loopback или за прокси с авторизацией.</p><p>Источники: <a href="https://thehackernews.com/2026/04/marimo-rce-flaw-cve-2026-39987.html">The Hacker News</a>, <a href="https://labs.cloudsecurityalliance.org/research/csa-research-note-marimo-rce-cve-2026-39987-ai-toolchain-202/">Cloud Security Alliance</a>, <a href="https://www.securityweek.com/critical-marimo-flaw-exploited-hours-after-public-disclosure/">SecurityWeek</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>GlassWorm заражает все IDE на машине через фейковый WakaTime на Zig</title>
      <link>https://tproger.ru/news/glassworm-zarazhaet-vse-ide-na-mawine-cherez-fejkovyj-wakatime-na</link>
      <comments>https://tproger.ru/news/glassworm-zarazhaet-vse-ide-na-mawine-cherez-fejkovyj-wakatime-na?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/glassworm-zarazhaet-vse-ide-na-mawine-cherez-fejkovyj-wakatime-na</guid>
      <description><![CDATA[<p>Подделка WakaTime в Open VSX запускает нативный Zig-бинарник и тихо ставит второй дроппер во все VS Code-совместимые IDE на машине. Проверьте расширения.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/glassworm-zarazhaet-vse-ide-na-mawine-cherez-fejkovyj-wakatime-na">GlassWorm заражает все IDE на машине через фейковый WakaTime на Zig</a>»</p>]]></description>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 13 Apr 2026 08:03:04 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если вы используете VS Code, Cursor, Windsurf, VSCodium или Positron — проверьте список установленных расширений прямо сейчас. Новая волна кампании GlassWorm прячет вредонос в поддельном WakaTime и тихо заражает каждый IDE, который найдёт на машине.</p><p>Исследователи <a href="https://www.aikido.dev/blog/glassworm-zig-dropper-infects-every-ide-on-your-machine">Aikido Security</a> обнаружили в реестре Open VSX расширение code-wakatime-activity-tracker — почти полный клон легитимного WakaTime. Отличие одно: в функции activate() расширение подгружает нативный бинарник на Zig, который сканирует систему и устанавливает второй дроппер в каждый редактор на базе VS Code.</p><ul><li>Кампания GlassWorm добавила новую стадию — нативный бинарник на Zig (win.node и mac.node), который запускается вне JavaScript-песочницы Node.js.</li><li>Заражаются все VS Code-совместимые редакторы на машине: VS Code, VS Code Insiders, Cursor, Windsurf, VSCodium, Positron.</li><li>Второй этап — фейк популярного расширения steoates.autoimport (5+ миллионов установок) под именем floktokbok.autoimport.</li><li>Вредонос пропускает машины с русской локалью и использует Solana-блокчейн как C2-инфраструктуру.</li><li>Если у вас стояли расширения specstudio.code-wakatime-activity-tracker или floktokbok.autoimport — считайте машину скомпрометированной и ротируйте секреты.</li></ul><h2>Как устроена атака</h2><h3>Клон WakaTime с одной изменённой функцией</h3><p>Расширение code-wakatime-activity-tracker на Open VSX визуально повторяет оригинальный <a href="https://wakatime.com/">WakaTime</a>: те же команды, те же запросы API-ключа, та же иконка в статус-баре. Разница только в одной функции — activate(), которая запускается при первом открытии расширения:</p><p>До какой-либо логики WakaTime расширение подгружает нативный бинарник из вложенной папки ./bin/ и сразу вызывает install(). На Windows это win.node — PE32+ DLL, на macOS — mac.node, универсальный Mach-O для x86_64 и arm64.</p><h3>Полный обход песочницы</h3><p>Оба бинарника — Node.js native addons: скомпилированные shared-библиотеки, которые Node подгружает через require() как обычные пакеты. Они загружаются прямо в рантайм Node и выполняются за пределами JavaScript-песочницы, с правами уровня операционной системы. Оба написаны на Zig. В macOS-бинарнике остались debug-символы — из них исследователи вытащили путь к проекту автора:</p><h3>Сканирование всех VS Code-совместимых редакторов</h3><p>Дальше бинарник ищет на машине каждый редактор, который понимает формат расширений VS Code. Проверяются стандартные пути установки — как в %LOCALAPPDATA%, так и в %ProgramFiles%:</p><p>На macOS аналогично обходятся /Applications/*.app для VS Code, Cursor, Windsurf, VSCodium и Positron. Если разработчик использует Cursor как основной редактор, но рядом стоит VS Code — оба окажутся скомпрометированы.</p><h3>Подмена autoimport — расширения с 5 млн установок</h3><p>Собрав список редакторов, бинарник скачивает вредоносный .vsix с GitHub Releases-страницы, подконтрольной атакующим. Пакет называется floktokbok.autoimport и подделывается под <a href="https://marketplace.visualstudio.com/items?itemName=steoates.autoimport">steoates.autoimport</a> — популярное расширение с более 5 миллионов установок. Скачанный файл сохраняется во временный путь, а затем «тихо» ставится в каждый найденный IDE через его CLI-установщик:</p><p>После установки функция cleanupVsix удаляет скачанный файл, чтобы скрыть следы.</p><h2>Что делает вторая ступень</h2><p>Установленный autoimport — это тот же дроппер GlassWorm, который <a href="https://www.aikido.dev/blog/glassworm-hits-openvsx-and-vscode-npm">Aikido уже анализировали раньше</a>. Он проверяет локаль системы и пропускает машины с русскими настройками, затем обращается к C2-серверу через Solana-блокчейн. Адрес C2 не зашит в бинарник — дроппер каждый раз читает его из блокчейн-транзакций подконтрольного кошелька, поэтому для блокировки недостаточно добавить один домен в deny-list, а закрыть весь Solana нереально.</p><p>Дальше дроппер выкачивает секреты с машины, ставит persistent-RAT и доставляет вредоносное расширение для Google Chrome — infostealer, который перехватывает сессионные cookies и нажатия клавиш.</p><h2>Контекст: год эволюции GlassWorm</h2><p>Aikido отслеживают GlassWorm больше года: кампания засветилась в марте 2025 с npm-пакетами, прятавшими payload в невидимых Unicode-символах, а с тех пор успела скомпрометировать сотни проектов на GitHub, npm и в VS Code Marketplace. Ключевое отличие нового этапа — переход к нативному коду на Zig: раньше нагрузка выполнялась в JS-рантайме расширения и её было видно в Developer Tools, теперь она уходит на уровень ОС, где статический анализ JavaScript-кода её уже не поймает.</p><h2>Что делать прямо сейчас</h2><ol><li>Проверьте в каждом VS Code-совместимом редакторе список установленных расширений. Искомые имена: specstudio.code-wakatime-activity-tracker и floktokbok.autoimport.</li><li>Если нашли — считайте машину скомпрометированной. Удалите расширения, но этого недостаточно.</li><li>Ротируйте все секреты, к которым у машины был доступ: SSH-ключи, npm/pypi-токены, cloud-CLI, GitHub PAT, облачные credentials в ~/.aws, ~/.config.</li><li>Проверьте Chrome и Chromium-браузеры на неизвестные расширения и удалите их.</li><li>Пересмотрите cookies и активные сессии во всех браузерах, разлогиньтесь везде.</li><li>Для профилактики — перед установкой проверяйте издателя и число установок (autoimport, WakaTime и другие популярные расширения имеют миллионы установок и проверенного автора). Если в команде используется корпоративный endpoint protection — добавьте в его охват папки расширений IDE: это ловит malware в нативных аддонах, которые расширения тянут с собой.</li></ol><h2>Индикаторы компрометации (IoC)</h2><p>Вредоносные расширения:</p><p>Хеши бинарников SHA-256:</p><p>Хеши действительны на момент анализа Aikido. Атакующие могут пересобрать бинарник — в этом случае хеши изменятся, но имена расширений и пути установки остаются корректными индикаторами.</p><p>Сетевые индикаторы:</p><p>Строки в бинарнике:</p><h2>Выводы</h2><p>Главный сдвиг в этом релизе GlassWorm — не сама подделка WakaTime, а то, что группа научилась перекладывать payload на нативный слой. Для защитников это означает две вещи: во-первых, статического анализа JS теперь мало — нужен контроль за любыми нативными аддонами, которые расширения тянут с собой; во-вторых, атакующим доступна не одна экосистема, а весь зонтик VS Code-совместимых редакторов сразу.</p><blockquote>Расширение [...] кладёт рядом с JavaScript-кодом скомпилированный на Zig нативный бинарник. Это не первый раз, когда GlassWorm прибегает к нативному коду в расширениях. Но теперь бинарник работает не как payload напрямую, а как скрытый слой, который незаметно заражает все остальные IDE на машине.</blockquote><p>Если вы разработчик — самый быстрый прикладной вывод: пройдитесь по списку расширений во всех установленных редакторах прямо сейчас, особенно если недавно ставили что-то через Open VSX. И пересмотрите, чьим расширениям вы в принципе доверяете по умолчанию.</p><p>Источники: <a href="https://www.aikido.dev/blog/glassworm-zig-dropper-infects-every-ide-on-your-machine">Aikido Security</a>, <a href="https://thehackernews.com/2026/04/glassworm-campaign-uses-zig-dropper-to.html">The Hacker News</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Flatpak: критическая уязвимость позволяет полный побег из песочницы — обновитесь немедленно</title>
      <link>https://tproger.ru/news/flatpak-kriticheskaya-uyazvimost-pozvolyaet-polnyj-pobeg-iz-pesochn</link>
      <comments>https://tproger.ru/news/flatpak-kriticheskaya-uyazvimost-pozvolyaet-polnyj-pobeg-iz-pesochn?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/flatpak-kriticheskaya-uyazvimost-pozvolyaet-polnyj-pobeg-iz-pesochn</guid>
      <description><![CDATA[<p>Критическая уязвимость в Flatpak позволяет любому приложению выйти из sandbox, читать файлы хоста и выполнять код. Затронуты все версии до 1.16.4. Обновитесь.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/flatpak-kriticheskaya-uyazvimost-pozvolyaet-polnyj-pobeg-iz-pesochn">Flatpak: критическая уязвимость позволяет полный побег из песочницы — обновитесь немедленно</a>»</p>]]></description>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 09 Apr 2026 16:30:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если вы устанавливаете приложения через Flatpak — обновитесь прямо сейчас. В Flatpak <a href="https://github.com/flatpak/flatpak/security/advisories/GHSA-cc2q-qc34-jprg">обнаружена</a> критическая уязвимость CVE-2026-34078: любое Flatpak-приложение может полностью выйти из песочницы, читать и записывать произвольные файлы на хосте и выполнять код в контексте хоста.</p><p><a href="https://flatpak.org">Flatpak</a> — система для установки и запуска десктопных Linux-приложений в изолированной песочнице (sandbox). Используется в Fedora, Ubuntu, Linux Mint и большинстве современных дистрибутивов как безопасная альтернатива прямой установке пакетов.</p><ul><li>CVE-2026-34078 (Critical) — любое Flatpak-приложение может полностью выйти из песочницы</li><li>Механизм: portal принимает символические ссылки, контролируемые приложением, и монтирует произвольные пути хоста в sandbox</li><li>Затронуты все версии до 1.16.4 — обновитесь немедленно</li><li>Дополнительно исправлены ещё 3 уязвимости: удаление файлов хоста, чтение файлов и отмена операций других пользователей</li><li>Обнаружено Codean Labs</li></ul><h2>Как работает уязвимость</h2><p>Flatpak Portal (сервис, через который приложения запрашивают доступ к ресурсам хоста) принимает пути из опции sandbox-expose. Эти пути могут быть символическими ссылками, контролируемыми самим приложением.</p><p>Flatpak разрешает символическую ссылку на хосте и монтирует целевой путь внутрь песочницы. Приложение может создать symlink на / (корень файловой системы) — и получить полный доступ ко всем файлам хоста. Далее это можно использовать для выполнения произвольного кода.</p><h2>Все уязвимости от 7 апреля</h2><ul><li><b>CVE-2026-34078</b> (Critical) — полный побег из песочницы через символические ссылки в sandbox-expose</li><li><b>CVE-2026-34079</b> (Moderate) — удаление произвольных файлов на хост-системе</li><li><b>GHSA-2fxp-43j9-pwvc</b> (Low) — чтение файлов в контексте system-helper</li><li><b>GHSA-89xm-3m96-w3jg</b> (Low) — отмена операции pull другого пользователя</li></ul><h2>Что делать</h2><p>Обновить Flatpak до версии 1.16.4 или выше:</p><p>Если обновление невозможно — временное смягчение через отключение Flatpak Portal:</p><p><b>Внимание:</b> отключение Portal может привести к некорректной работе некоторых Flatpak-приложений, но закроет вектор атаки.</p><p>Подробности и полный анализ: <a href="https://github.com/flatpak/flatpak/security/advisories/GHSA-cc2q-qc34-jprg">GitHub Advisory</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>OpenSSH 10.3 закрывает shell injection и начинает постквантовую миграцию</title>
      <link>https://tproger.ru/news/openssh-10-3-zakryvaet-shell-injection-i-nachinaet-postkvantovuyu</link>
      <comments>https://tproger.ru/news/openssh-10-3-zakryvaet-shell-injection-i-nachinaet-postkvantovuyu?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/openssh-10-3-zakryvaet-shell-injection-i-nachinaet-postkvantovuyu</guid>
      <description><![CDATA[<p>Релиз OpenSSH 10.3 исправляет shell injection через ssh_config, ошибки в сертификатах и ECDSA, начинает постквантовую миграцию. Обновитесь сейчас.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/openssh-10-3-zakryvaet-shell-injection-i-nachinaet-postkvantovuyu">OpenSSH 10.3 закрывает shell injection и начинает постквантовую миграцию</a>»</p>]]></description>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 08 Apr 2026 07:10:34 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если вы администрируете серверы по SSH — обновите OpenSSH до версии 10.3. <a href="https://www.openssh.com/releasenotes.html">Релиз от 2 апреля</a> закрывает несколько уязвимостей, включая shell injection через имена пользователей, и начинает подготовку к постквантовой криптографии.</p><p>Это не рядовое обновление безопасности: OpenSSH 10.3 меняет поведение сертификатов, ужесточает валидацию и <a href="https://lobste.rs/s/openssh-pqc">предупреждает</a> о необходимости перехода на постквантовые алгоритмы обмена ключами.</p><ul><li>OpenSSH 10.3 (релиз 2 апреля 2026) — исправление shell injection в ssh через %-tokens в ssh_config</li><li>Изменено поведение сертификатов: пустая секция principals больше не работает как wildcard</li><li>scp в legacy-режиме больше не сохраняет setuid/setgid при скачивании файлов от root</li><li>Исправлена ошибка в PubkeyAcceptedAlgorithms: ECDSA-алгоритмы больше не взаимозаменяемы</li><li>Начало постквантовой миграции: предупреждения о не-PQC алгоритмах обмена ключами</li></ul><h2>Исправления безопасности</h2><h3>Shell injection через имена пользователей</h3><p>Самый серьёзный фикс: валидация метасимволов оболочки в именах пользователей, переданных через командную строку, выполнялась <b>слишком поздно</b>. В определённых конфигурациях — например, при использовании %u в блоке Match exec — атакующий мог выполнить произвольные shell-команды.</p><p>Обнаружил: <b>Florian Kohnhäuser</b>. Разработчики OpenSSH напоминают: не стоит напрямую передавать пользовательский ввод в командную строку ssh.</p><h3>Ошибка в principals сертификатов</h3><p>До 10.3 сертификат с <b>пустой секцией principals</b> работал как wildcard — позволял аутентификацию от имени любого пользователя, доверяющего CA через authorized_keys. Если CA случайно выпускал такой сертификат — вместо бесполезности он давал максимальный доступ.</p><p>Теперь: пустая секция principals <b>не совпадает ни с одним principal</b>. Также исправлена обработка wildcard-символов в principals сертификатов.</p><h3>setuid/setgid в scp</h3><p>При скачивании файлов через scp -O (legacy mode) от root без флага -p — setuid/setgid биты <b>не очищались</b>. Баг <a href="https://www.openssh.com/releasenotes.html">существовал с оригинальной программы rcp из Berkeley</a>.</p><h3>ECDSA: алгоритмы больше не взаимозаменяемы</h3><p>Если в PubkeyAcceptedAlgorithms указан один ECDSA-алгоритм (например, ecdsa-sha2-nistp384), другие ECDSA-алгоритмы тоже принимались. Теперь каждый алгоритм проверяется строго по списку.</p><h2>Потенциально несовместимые изменения</h2><ul><li><b>Rekeying обязателен.</b> Убрана совместимость с реализациями SSH, которые не поддерживают rekeying. Такие соединения теперь будут разрываться при необходимости обновить ключи сессии</li><li><b>ProxyJump валидирует имена.</b> Параметры -J и ProxyJump из командной строки теперь проверяют имена пользователей и хостов на метасимволы. Это предотвращает shell injection при прямом пробросе пользовательского ввода</li></ul><h2>Постквантовая миграция</h2><p>OpenSSH 10.3 начинает предупреждать о соединениях, использующих <b>не-постквантовые алгоритмы обмена ключами</b>. Это не блокировка — пока только предупреждение в логах — но сигнал индустрии: миграция на PQC-алгоритмы должна начаться уже сейчас.</p><p>Контекст: <a href="https://blog.cloudflare.com/post-quantum-security-2029/">Cloudflare нацелился</a> на полную постквантовую безопасность к 2029 году. <a href="https://words.filippo.io">Filippo Valsorda</a>, ведущий криптограф Go, считает, что риск появления криптографически значимых квантовых компьютеров в ближайшие годы достаточно высок, чтобы действовать.</p><p>Проверить, какие алгоритмы используют ваши соединения:</p><h2>Как обновиться</h2><h2>Выводы</h2><p>OpenSSH 10.3 — важный релиз: не только закрывает реальные уязвимости (shell injection, ошибки сертификатов), но и начинает подготовку экосистемы к постквантовому будущему. Обновитесь и проверьте, какие алгоритмы используют ваши SSH-соединения.</p>]]></content:encoded>
    </item>
    <item>
      <title>Supply chain атаки 2026: Axios, PyPI и КНДР — что произошло и как защититься</title>
      <link>https://tproger.ru/articles/supply-chain-ataki-2026--axios--pypi-i-prompt-injection---chto-pr</link>
      <comments>https://tproger.ru/articles/supply-chain-ataki-2026--axios--pypi-i-prompt-injection---chto-pr?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/supply-chain-ataki-2026--axios--pypi-i-prompt-injection---chto-pr</guid>
      <description><![CDATA[<p>Три supply chain инцидента за неделю: RAT-троян в axios от северокорейской UNC1069, поддельные PyPI-пакеты LiteLLM и Trivy. Разбираем атаки и чеклист защиты.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/supply-chain-ataki-2026--axios--pypi-i-prompt-injection---chto-pr">Supply chain атаки 2026: Axios, PyPI и КНДР — что произошло и как защититься</a>»</p>]]></description>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 03 Apr 2026 11:00:15 GMT</pubDate>
      <content:encoded><![CDATA[<p>За одну неделю марта 2026 года произошло три крупных supply chain инцидента в npm и PyPI. Все три — через скомпрометированные аккаунты мейнтейнеров. Вот что случилось, как это работает и что с этим делать.</p><p>Supply chain атаки на пакетные менеджеры стали системной угрозой. Axios с 100 млн загрузок в неделю <a href="https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan">оказался</a> заражён RAT-трояном через захваченный аккаунт мейнтейнера. Google <a href="https://thehackernews.com/2026/04/google-attributes-axios-npm-supply.html">атрибутировал</a> атаку северокорейской группировке UNC1069. Параллельно обнаружены атаки на PyPI-пакеты LiteLLM и Trivy.</p><ul><li>Axios (npm, 100M+ загрузок/неделю) — RAT-троян через захваченный аккаунт мейнтейнера. Атрибуция: Северная Корея (UNC1069)</li><li>PyPI-пакеты LiteLLM и Trivy — поддельные версии с вредоносным кодом через тайпсквоттинг</li><li>Все атаки — через скомпрометированные учётные записи, а не уязвимости в коде</li><li>OIDC Trusted Publishers снижает риск захвата аккаунта мейнтейнера — классические npm-токены уязвимы</li></ul><h2>Axios: RAT-троян в самом популярном HTTP-клиенте</h2><p>30 марта 2026 года компания StepSecurity <a href="https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan">обнаружила</a> две вредоносные версии axios — 1.14.1 и 0.30.4. Атакующий захватил npm-аккаунт ведущего мейнтейнера jasonsaayman, сменив email на подконтрольный адрес на ProtonMail.</p><p>В самом коде axios не было ни одной вредоносной строки. Вместо этого обе версии добавляли зависимость plain-crypto-js@4.2.1 — пакет, замаскированный под легитимный crypto-js. Его единственная задача — выполнить postinstall-скрипт (дроппер SILKBELL), который разворачивает кроссплатформенный RAT-троян для macOS, Windows и Linux.</p><p>В течение двух секунд после npm install малварь уже связывалась с C2-сервером атакующего — ещё до того, как npm заканчивал резолвинг зависимостей. После выполнения дроппер удалял себя и подменял package.json чистой версией, чтобы скрыть следы.</p><h3>Хронология атаки на axios: от заражения до удаления за 3 часа</h3><ol><li><b>30 марта, 05:57 UTC</b> — публикация «чистой» версии plain-crypto-js@4.2.0 для создания истории пакета</li><li><b>30 марта, 23:59 UTC</b> — публикация вредоносной plain-crypto-js@4.2.1 с postinstall-хуком</li><li><b>31 марта, 00:21 UTC</b> — публикация axios@1.14.1 через захваченный аккаунт</li><li><b>31 марта, 01:00 UTC</b> — публикация axios@0.30.4 (legacy-ветка) — 39 минут спустя</li><li><b>31 марта, ~03:15 UTC</b> — npm удаляет обе версии. axios@1.14.1 был доступен ~2 часа 53 минуты</li></ol><h3>Атрибуция: Северная Корея</h3><p>Google Threat Intelligence Group (GTIG) <a href="https://thehackernews.com/2026/04/google-attributes-axios-npm-supply.html">атрибутировал</a> атаку северокорейской группировке UNC1069. Бэкдор WAVESHAPER.V2 — эволюция ранее известного импланта, используемого для кражи криптовалюты.</p><p>Microsoft подтвердил атрибуцию и связал инцидент с группировкой Sapphire Sleet (ответвление BlueNoroff). CrowdStrike связал атаку со Stardust Chollima через переиспользование кода ZshBucket. Исследователь Giuseppe Massaro <a href="https://thehackernews.com/2026/04/google-attributes-axios-npm-supply.html">обнаружил</a>, что macOS-вариант содержит пути сборки, связывающие его с кампаниями RustBucket и Hidden Risk (2023–2024).</p><h2>PyPI: поддельные пакеты LiteLLM и Trivy</h2><p>Параллельно с атакой на Axios в конце марта <a href="https://tproger.ru/news/volna-supply-chain-atak-na-pypi--razbiraem-litellm--telnyx-i-tri">обнаружены</a> поддельные PyPI-пакеты, маскирующиеся под популярные библиотеки LiteLLM (ИИ-прокси для работы с несколькими LLM) и Trivy (сканер уязвимостей от Aqua Security). Атаки используют тайпсквоттинг — похожие имена пакетов — и нацелены на разработчиков, которые ошибаются при вводе имени зависимости.</p><p>Как <a href="https://thehackernews.com/2026/04/google-attributes-axios-npm-supply.html">отметил</a> Томислав Перичин из ReversingLabs, атаки уже распространяются на PyPI и NuGet. Цель — максимальный охват разработчиков через все основные пакетные менеджеры. Подробный разбор инцидентов с LiteLLM, Telnyx и Trivy — в нашем <a href="https://tproger.ru/news/volna-supply-chain-atak-na-pypi--razbiraem-litellm--telnyx-i-tri">предыдущем материале</a>.</p><h2>Как защититься: чеклист для разработчика</h2><ol><li><b>Аудит зависимостей</b> — проверьте дерево зависимостей на наличие скомпрометированных версий. Для axios: если установлена 1.14.1 или 0.30.4 — считайте систему скомпрометированной</li><li><b>Пиннинг версий</b> — фиксируйте точные версии в package-lock.json / poetry.lock. Но помните: SHA pinning не защищает от захвата аккаунта мейнтейнера</li><li><b>Мониторинг postinstall-скриптов</b> — используйте npm audit, а также инструменты вроде Socket.dev или StepSecurity Harden-Runner для контроля сетевой активности при установке</li><li><b>Блокировка C2-доменов</b> — добавьте в блоклист: sfrclak[.]com, IP 142.11.206[.]73</li><li><b>Ротация секретов</b> — если затронутые пакеты были установлены, ротируйте все ключи API, токены и пароли в проекте</li><li><b>OIDC для публикации</b> — используйте Trusted Publishers (npm OIDC) вместо долгоживущих токенов. Атака на axios стала возможна потому, что мейнтейнер использовал классический npm-токен</li><li><b>Аудит PyPI-зависимостей</b> — проверьте имена пакетов в requirements.txt / pyproject.toml на тайпсквоттинг. Используйте pip-audit для проверки известных уязвимостей</li></ol><h2>Что изменилось в supply chain атаках 2026 года</h2><p>Три инцидента за одну неделю показывают сдвиг в тактике: атакующие больше не ищут уязвимости в коде — они захватывают аккаунты мейнтейнеров и публикуют вредоносные версии от их имени. Ждать исправлений от мейнтейнеров недостаточно — нужен контроль на уровне CI/CD: OIDC для публикации, мониторинг сетевой активности при установке, аудит postinstall-скриптов.</p>]]></content:encoded>
    </item>
    <item>
      <title>Что вы должны запретить в RBAC прямо сейчас, чтобы не потерять кластер</title>
      <link>https://tproger.ru/articles/chto-vy-dolzhny-zapretit-v-rbac-pryamo-sejchas--chtoby-ne-poteryat-k</link>
      <comments>https://tproger.ru/articles/chto-vy-dolzhny-zapretit-v-rbac-pryamo-sejchas--chtoby-ne-poteryat-k?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Лесных Анна]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/chto-vy-dolzhny-zapretit-v-rbac-pryamo-sejchas--chtoby-ne-poteryat-k</guid>
      <description><![CDATA[<p>Вы думаете, что ваш RBAC защищает кластер, но есть пять прав, о которых администраторы обычно забывают. Статья показывает, какие это права и почему они опасны.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/chto-vy-dolzhny-zapretit-v-rbac-pryamo-sejchas--chtoby-ne-poteryat-k">Что вы должны запретить в RBAC прямо сейчас, чтобы не потерять кластер</a>»</p>]]></description>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Kubernetes]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 02 Apr 2026 05:25:02 GMT</pubDate>
      <content:encoded><![CDATA[<p><i>От переводчика: это перевод статьи Рори Маккьюна (Rory McCune) <a href="https://raesene.github.io/blog/2025/09/12/beyond-the-surface/">«Beyond the Surface»</a>. В ней разбирается один конкретный вектор атаки: как создать постоянный доступ к кластеру, минимизировав риск обнаружения, какие встроенные Kubernetes-механизмы для этого использовать и как после этого оставаться в системе. Для Kubernetes-администраторов это руководство по пониманию реальных угроз и слабых мест в RBAC. Дальше слово автору.</i></p><p>Цель статьи — описать один из векторов атаки, который злоумышленники могут использовать для сохранения и расширения своего доступа после первичной компрометации кластера Kubernetes, получив учётные данные администратора. Она не охватывает все возможные способы, но описывает один конкретный сценарий. Надеюсь, она также поможет понять некоторые внутренние механизмы и стандартные настройки, которые злоумышленники могут использовать в своих интересах.</p><p>Общий сценарий таков: злоумышленники получают временный доступ к ноутбуку администратора кластера, который отошёл, чтобы ответить на звонок, и не заблокировал устройство. Их задача — выяснить, как получить и сохранить доступ к кластеру до возвращения администратора.</p><h2>Первоначальный доступ</h2><p>Первое, что, скорее всего, захочет сделать хакер, — получить root-шелл на одном из узлов кластера. Это отличная отправная точка, чтобы поискать другие учётки или подложить свои бинарники. В Kubernetes это делается элементарно, потому что есть встроенная функция kubectl debug.</p><p>Типичная команда выглядит следующим образом (только подставьте имя из вашего кластера):</p><p>Важный момент здесь — флаг --profile, поскольку он определяет уровень доступа к узлу. Профиль sysadmin обеспечивает наивысший уровень доступа, поэтому он наиболее полезен для злоумышленников.</p><h2>Запуск исполняемых файлов</h2><p>Получив доступ к оболочке узла, злоумышленник, скорее всего, попытается загрузить и запустить свои инструменты. Это может оказаться не так просто, поскольку многие дистрибутивы Kubernetes защищают ОС узла, монтируя файловые системы в режиме «только для чтения» или с флагом noexec. Но есть одна вещь, которую умеют выполнять узлы любого Kubernets-кластера, — запуск контейнеров! Так что если атакующий сможет загрузить на узел контейнер и запустить его на нём, то у него будет возможность выполнить любую программу.</p><p>Чтобы понять, как это сделать, давайте рассмотрим некоторые малоизвестные фичи Kubernetes. В кластере все контейнеры запускаются средой исполнения контейнеров (container runtime), обычно это <a href="https://containerd.io/">containerd</a> или <a href="https://cri-o.io/">CRI-O</a>. Находясь на узле, можно взаимодействовать с этими программами напрямую, в обход API Kubernetes.</p><p>В примере ниже я создаю новый неймспейс containerd с помощью утилиты ctr. Это полезно, потому что (по моему опыту):</p><ul><li>ctr всегда идёт в комплекте с containerd, не нужно качать никаких сторонних клиентов;</li><li>контейнер в отдельном неймспейсе сложнее заметить тому, кто мониторит хост.</li></ul><p>Важно: неймспейсы containerd — это не то же самое, что неймспейсы Kubernetes или Linux.</p><p>Назовём его sys_net_mon — это не так бросается в глаза, как что-нибудь вроде «здесь-были-хакеры». Когда неймспейс готов, нужно скачать образ контейнера:</p><p>Самое интересное, что внутри этого образа нет ничего, связанного с systemd или мониторингом сети. С точки зрения безопасности важно помнить: Docker Hub не следит за содержимым неофициальных и непроверенных (unverified) образов. Кроме того, назвать свой образ можно как угодно.</p><p>Теперь воспользуемся ctr, чтобы запустить контейнер:</p><p>Этот контейнер даёт нам полный доступ к файловой системе и сетевым интерфейсам хоста, что очень удобно для дальнейшего развития атаки. Теперь остаётся лишь запустить командную оболочку внутри этого контейнера:</p><h2>Статические манифесты</h2><p>Ещё один способ, которым можно запустить контейнер на узле, — это статические манифесты. На большинстве хостов у kubelet'а есть специальная директория, из которой он автоматически подгружает статические манифесты. Поды, которые описываются такими манифестами, запускаются вообще без участия API-сервера. И тут у атакующих есть классный трюк: прописать свой статический под в несуществующем неймспейсе. Тогда он не зарегистрируется на API-сервере и не будет показываться в kubectl get pods -A или других подобных командах. Подробнее о статических подах и их особенностях в плане безопасности можно почитать <a href="https://blog.iainsmart.co.uk/posts/2024-10-13-mirror-mirror/">в блоге Иэна Смарта</a>.</p><h2>Удалённый доступ</h2><p>Следующая проблема для наших атакующих — сохранить удалённый доступ к системе после возвращения администратора. Существует множество программ для удалённого доступа, но большинство хакерских утилит легко обнаруживаются EDR/XDR-агентами, поэтому в качестве альтернативы можно использовать что-то вроде <a href="https://tailscale.com/">Tailscale</a>.</p><p>У Tailscale есть несколько фич, очень полезных для атакующих (вдобавок к их обычному применению!). Первая — его можно запустить с помощью всего двух статически скомпилированных Go-бинарников, которые легко переименовать. Другими словами, можно выбрать, что будет отображаться в списке процессов на узле. В том же духе, что и с образом контейнера, воспользуемся бинарниками с именами systemd_net_mon_server и systemd_net_mon_client.</p><p>Запуск сервера:</p><p>Запуск клиента:</p><p>Что касается сети, если используется DERP-сеть Tailscale, трафик пойдёт через порт 443/TCP, а такой доступ обычно разрешен в большинстве окружений. К тому же можно использовать Tailscale'овский ACL (Access Control List, список контроля доступа), чтобы запретить «подсадному» контейнеру связываться с другими машинами в сети Tailnet злоумышленника.</p><figure><img src="https://media.tproger.ru/user-uploads/115839/2026-03-30/ef2ffbde-223a-4f06-a381-68a2b2ed1e44.webp" alt="" /></figure><p>Как только эти сервисы поднимутся, можно будет спокойно заходить обратно в контейнер по SSH. У Tailscale свой SSH-сервер в комплекте, так что никакой «левый» sshd не будет светиться в процессах :).</p><h2>Учётные данные — API kubelet'а</h2><p>После получения удалённого доступа злоумышленникам всё ещё необходимы «долгоиграющие» учётные данные. Кроме того, было бы неплохо иметь возможность «прощупывать» кластер в обход API Kubernetes, поскольку такие действия могут засветиться в журналах аудита. Для этого им нужен доступ к учётным данным пользователя, который может напрямую обращаться к API kubelet'а. Этот API работает на каждом узле на порту 10250/TCP и лишён встроенных опций аудита.</p><p><a href="https://www.youtube.com/watch?v=GtrkIuq5T3M&amp;t=11s" rel="nofollow">В своём докладе</a> для этой цели я использую инструмент <a href="https://github.com/raesene/teisteanas/">teisteanas</a>, который через API запросов на подпись сертификатов (Certificiate Signing Request, CSR API) создает учётные данные в kubeconfig-формате. Так можно завести учётку для любого пользователя. Для скрытности злоумышленник, скорее всего, выберет существующего пользователя, которому уже назначены права в системе RBAC, чтобы избежать необходимости создавать новые роли кластера или привязывать роли. Конкретный выбор пользователя зависит от окружения. В своих демках я использую kube-apiserver — пользователя, существующего в кластерах GKE.</p><p>С kubeconfig-файлом и доступом к порту kubelet'а на хосте можно получать списки подов на узле или выполнять команды внутри этих подов. Проще всего это сделать с помощью утилиты <a href="https://github.com/cyberark/kubeletctl">kubeletctl</a>. Таким образом, из нашего контейнера, работающего в сетевом неймспейсе узла, можно выполнить следующую команду:</p><h2>CSR API</h2><p>Стоит также пару слов сказать о CSR API — для атакующих это очень удобная лазейка. Этот API встроен практически во все дистрибутивы Kubernetes. Через него можно создавать учётные данные для доступа к кластеру (кроме EKS, там это не работает). Самое важное: этими учётными данными может воспользоваться любой, у кого есть доступ к API-серверу. А поскольку большинство облачных Kubernetes-решений по умолчанию «выставляет» API-сервер в интернет, атакующий с такими учётными данными сможет подключиться к кластеру откуда угодно.</p><p>CSR API также привлекателен для злоумышленников по ряду других причин:</p><ul><li>Если ведение журналов аудита не включено и не настроено должным образом, не остаётся никаких записей ни об использовании этого API, ни о создании учётных данных.</li><li>Учётные данные, созданные через этот API, не могут быть отозваны без ротации корневого сертификата всего кластера, что чревато. <a href="https://github.com/kubernetes/kubernetes/issues/18982">Соответствующее Issue</a> на GitHub, касающееся отзыва сертификатов, открыто всего лишь с 2015 года, так что в ближайшей перспективе вряд ли что изменится.</li><li>Можно создавать учётные данные для системных аккаунтов. Поэтому даже при включённом аудите бывает сложно отличить вредоносную активность от легитимной.</li><li>Учётные данные, как правило, долгоживущие. Конечно, срок их действия зависит от конкретного дистрибутива, но обычно он варьируется в диапазоне 1–5 лет.</li></ul><p>В примерах для доклада я использую кластер GKE и с помощью CSR API создаю учётку для пользователя system:gke-common-webhooks, у которого довольно много прав.</p><h2>Token Request API</h2><p>Даже если CSR API недоступен, в Kubernetes есть и другой встроенный способ заводить новые учётки — Token Request API. Обычно он используется для создания токенов для сервисных аккаунтов, но администратор с нужными правами может адаптировать его для своих задач. Как и в случае с CSR API, никаких следов не остаётся (кроме логов аудита), и новые учётки сложно отозвать, особенно если использовался сервисный аккаунт системного уровня, ведь единственный способ — удалить сам аккаунт, к которому привязан токен.</p><p>Со сроком жизни токена тоже не всё так плохо для хакера. В зависимости от дистрибутива он может варьироваться от 24 часов до целого года (по крайней мере в тех managed-дистрибутивах, что я видел).</p><p>В докладе я использую утилиту <a href="https://github.com/raesene/tocan/">tocan</a>, чтобы упростить создание kubeconfig-файла из токена сервисного аккаунта.</p><p>Выбранный сервисный аккаунт очень интересен тем, что у него есть право escalate. Это означает, что он всегда может стать cluster-admin'ом, даже если у него изначально нет таких прав. (Я уже писал об escalate <a href="https://raesene.github.io/blog/2020/12/12/Escalating_Away/">ранее</a>.)</p><h2>Обнаружение подобных атак</h2><p>Пора поговорить о том, как обнаруживать и предотвращать такие атаки. Чтобы их выявить, стоит обратить внимание на несколько ключевых моментов:</p><ul><li>Журналы аудита Kubernetes — крайне важный аспект. Необходимо, чтобы журналирование было включено, логи были централизованы и хранились достаточно долго. Это позволит выявить некоторые из описанных техник, особенно злоупотребление CSR API и Token Request API.</li><li>Агенты на узлах — агенты безопасности на узлах кластера помогут обнаружить активность вроде трафика Tailscale (в зависимости от их настроек).</li><li>Журналы узлов — важно обеспечить надлежащую централизацию и хранение журналов с узлов, поскольку злоумышленники могут оставлять в них следы.</li><li>Знай свою систему — звучит просто, но это не так. Если вы знаете, какие процессы в норме работают на ваших узлах, то сможете заметить аномалии вроде systemd_net_mon. Проблема в том, что у каждого дистрибутива свой набор системных сервисов, которые запускает облачный провайдер, так что разобраться в том, что есть норма, — задача непростая.</li></ul><h2>Как защититься</h2><p>Пара советов администраторам, как снизить риски такого сценария:</p><ul><li>Изолируйте свои кластеры от интернета! Публичный доступ к API-серверу означает, что вы находитесь в шаге от серьёзных проблем в случае утери учётных данных. Как правило, managed-дистрибутивы Kubernetes позволяют ограничить доступ, но по умолчанию такое ограничение не настроено.</li><li>Принцип наименьших привилегий — в рассмотренном сценарии скомпрометированный ноутбук имел права уровня cluster-admin, что позволило злоумышленникам легко перемещаться по кластеру. Если бы администратор использовал учётную запись с меньшими привилегиями, атака, скорее всего, провалилась бы. Хотя некоторые из использованных прав, такие как отладка узлов, довольно распространены, другие (вроде доступа к CSR API и Token Request API) вряд ли необходимы для повседневного администрирования и могут быть отключены.</li></ul><h2>Заключение</h2><p>В этой статье рассмотрен лишь один из возможных векторов, который злоумышленники могут использовать для сохранения и расширения доступа к кластеру. Очевидно, существуют и другие возможности. Надеюсь, этот материал прольёт свет на некоторые аспекты работы Kubernetes и поможет понять, как повысить безопасность кластера.</p>]]></content:encoded>
    </item>
    <item>
      <title>Не доверяй — проверяй: создатель curl о безопасности open source</title>
      <link>https://tproger.ru/translations/ne-doveryaj---proveryaj--sozdatel-curl-o-bezopasnosti-open-source</link>
      <comments>https://tproger.ru/translations/ne-doveryaj---proveryaj--sozdatel-curl-o-bezopasnosti-open-source?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Алексей Михайлишин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/ne-doveryaj---proveryaj--sozdatel-curl-o-bezopasnosti-open-source</guid>
      <description><![CDATA[<p>Как curl с десятками миллиардов установок защищается от supply-chain атак — 20+ мер верификации от запрета блобов до фаззинга. Проверьте свои зависимости.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/ne-doveryaj---proveryaj--sozdatel-curl-o-bezopasnosti-open-source">Не доверяй — проверяй: создатель curl о безопасности open source</a>»</p>]]></description>
      <category><![CDATA[Безопасный код]]></category>
      <category><![CDATA[Open Source]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 01 Apr 2026 03:33:52 GMT</pubDate>
      <content:encoded><![CDATA[<p>Вы уверены, что ваши зависимости — это именно то, что вы думаете? Даниэль Стенберг, создатель <a href="https://curl.se/">curl</a> и один из самых авторитетных разработчиков в мире open source, рассказывает, почему слепое доверие к софту — путь к катастрофе, и как curl выстраивает многоуровневую систему верификации, которая позволяет спать спокойно при десятках миллиардов установок.</p><p>curl — одна из самых распространённых программных библиотек в мире. В форме libcurl она работает на десятках миллиардов устройств. При таком масштабе любая компрометация может иметь катастрофические последствия.</p><p>— Каждый коммит и каждый релиз open-source проекта — потенциальная точка атаки: от внедрённого контрибьютора до взломанного CI</p><p>— curl применяет более 20 мер верификации: от запрета бинарных блобов и Unicode в коде до обязательного фаззинга и torture-тестов</p><p>— Внешние пользователи могут и должны верифицировать релизы: проверять подписи, сравнивать содержимое архивов с git-репозиторием</p><p>— Это не паранойя — это инженерная дисциплина, которая позволяет проекту оставаться надёжным уже 30 лет</p><p>— Стенберг призывает требовать такого же уровня верификации от всех зависимостей в вашем стеке</p><h2>Атаки на supply chain: 9 сценариев угроз</h2><p>Supply-chain атака — это компрометация не вашего кода, а кода ваших зависимостей: библиотек, инструментов сборки, CI-систем. С каждым коммитом и каждым релизом софта возникают риски. Даниэль Стенберг перечисляет сценарии, жертвой которых может стать широко используемый проект:</p><ul><li><b>Внедрённый контрибьютор</b> — как в случае с Jia Tan и xz-utils: внешне добросовестный участник команды, который намеренно маскирует вредоносный код под обычные коммиты</li><li><b>Скомпрометированный мейнтейнер</b> — авторизованный разработчик, чья учётная запись или машина взломаны. Его коммиты и релизы теперь содержат заражённый код</li><li><b>«Полезный» баг-фикс от незнакомца</b> — маленький шаг в длинной цепочке крошечных изменений, которые постепенно формируют уязвимость или бэкдор</li><li><b>Шантаж или давление</b> — существующего участника проекта принуждают вносить изменения, которые иначе были бы отклонены</li><li><b>Непреднамеренная ошибка</b> — добросовестный разработчик при добавлении фичи или исправлении бага случайно создаёт уязвимость</li><li><b>Подмена на уровне дистрибуции</b> — сайт, с которого раздаются тарболлы (архивы с исходным кодом для релиза), взломан; вместо оригинальных архивов раздаётся малварь</li><li><b>Компрометация учётных данных</b> — от имени известного участника проекта распространяется дезинформация через email, соцсети, блоги или даже дипфейк-видео</li><li><b>Атака через CI-инфраструктуру</b> — инструмент, используемый в CI и размещённый в облаке, взломан и исполняет вредоносный код</li><li><b>Поддельное зеркало</b> — пока основной git-репозиторий недоступен, кто-то предлагает «временное зеркало» с заражённым кодом</li></ul><p>Любой из этих сценариев может произойти в комбинации с другими и в быстрой последовательности.</p><h2>Верификация релизов: как пользователи могут проверить curl</h2><p>Люди спрашивают Стенберга, как он спит по ночам, учитывая масштаб curl и количество возможных атак.</p><blockquote>Есть только один способ бороться с этим видом бессонницы: делать всё возможное, и делать это открыто и прозрачно. Делать проект чуть лучше на этой неделе, чем на прошлой. Выстраивать инженерные процессы правильно. Предоставлять средства, чтобы каждый мог верифицировать то, что мы делаем и что мы выпускаем. Итерировать, итерировать, итерировать.</blockquote><p>Если хотя бы несколько независимых пользователей проверят, что релиз curl подписан мейнтейнером, а содержимое совпадает с тем, что есть в git-репозитории, — проект в хорошем состоянии. Достаточно нескольких независимых наблюдателей, чтобы любая аномалия была замечена.</p><p>Стенберг подчёркивает: он не знает, кто эти пользователи и существуют ли они вообще. Они <b>должны быть</b> полностью независимы от него и от проекта curl. Но проект предоставляет все инструменты и делает верификацию максимально простой.</p><h2>Безопасность curl изнутри: более 20 мер верификации</h2><p>Внешние наблюдатели могут подтвердить, что релизы соответствуют тому, что есть в git. Но обеспечить, чтобы в git попадал только безопасный и корректный код, — это внутренняя работа команды. Вот полный список мер:</p><h3>Стандарты кода и ограничения</h3><ul><li><b>Единый стиль кода</b> — нарушение стиля вызывает ошибку сборки. Это снижает риск случайных ошибок и упрощает ревью</li><li><b>Запрет «опасных» C-функций</b> — функции, которые легко использовать неправильно, запрещены. Их использование вызывает ошибку</li><li><b>Лимит на сложность функций</b> — если функция слишком сложна, это ошибка сборки. Код должен быть читаемым и понятным</li><li><b>Запрет бинарных блобов в git</b> — никаких способов спрятать зашифрованный вредоносный код. Попытка добавить блоб вызывает ошибку</li><li><b>Избегание base64-кодированных фрагментов</b> — ещё один способ обфускации, который curl активно исключает</li><li><b>Ограничение Unicode в коде и документации</b> — большинство использований Unicode запрещено, чтобы предотвратить homoglyph-атаки (подмену символов визуально похожими из другой кодировки, например кириллической «а» вместо латинской «a»)</li><li><b>Документирование всего</b> — код, API, поведение — всё задокументировано, чтобы не было сюрпризов. Документация тестируется, проверяется спеллчекером и проходит ревью наравне с кодом</li></ul><h3>Тестирование и непрерывная интеграция</h3><ul><li><b>Обязательное ревью каждого PR</b> — и людьми, и ботами. Коммиты ссылаются на исходный PR</li><li><b>Тысячи тестов</b> — для каждой функции. Поиск «белых пятен» в покрытии — приоритетная задача</li><li><b>Более 200 CI-джобов</b> — запускаются для каждого коммита и каждого PR. Без объяснённых провалов тестов мёрж невозможен</li><li><b>Максимально строгие опции компилятора</b> — все предупреждения трактуются как ошибки через -Werror. Ни одно предупреждение не остаётся без внимания</li><li><b>Valgrind и санитайзеры</b> — все тесты прогоняются через valgrind и несколько комбинаций санитайзеров для обнаружения проблем с памятью и неопределённого поведения (undefined behavior)</li><li><b>Torture-тесты</b> — каждый тест перезапускается так, чтобы каждый вызов функции, способной завершиться ошибкой, упал ровно один раз. Это гарантирует: curl не утекает памятью и не падает при любых сбоях</li><li><b>Непрерывный фаззинг</b> — автоматическое тестирование случайными входными данными для поиска крашей и уязвимостей. Работает без остановки в рамках <a href="https://google.github.io/oss-fuzz/">Google OSS-Fuzz</a> и кратко в CI для каждого коммита</li></ul><h3>Защита CI-инфраструктуры от компрометации</h3><ul><li><b>CI-джобы не пишут обратно в репозиторий</b> — доступ только на чтение. Даже при компрометации CI код не может быть заражён</li><li><b>Анализ конфигов CI</b> — инструменты вроде <a href="https://github.com/woodruffw/zizmor">zizmor</a> проверяют скрипты CI на уязвимости</li><li><b>Обязательная двухфакторная аутентификация</b> — для всех коммиттеров на GitHub</li></ul><h3>Политика безопасности и стабильность API</h3><ul><li><b>Уязвимости исправляются в следующем релизе</b> — без исключений. Проблемы безопасности не висят после того, как о них сообщили</li><li><b>Полная документация всех уязвимостей</b> — каждая когда-либо найденная уязвимость curl задокументирована со всеми деталями</li><li><b>Стабильность ABI и API</b> — curl никогда не ломает обратную совместимость (ABI — бинарный интерфейс приложения, API — программный интерфейс). Это позволяет пользователям легко обновляться до версий с исправленными уязвимостями вместо того, чтобы сидеть на устаревших</li><li><b>Независимые аудиты</b> — код curl неоднократно проверяли внешние эксперты по безопасности. Все найденные проблемы были немедленно устранены</li></ul><p>Всё это делается в открытую, с полной прозрачностью и отчётностью. Любой может наблюдать за процессом и проверять, что команда следует своим правилам.</p><h2>Не паранойя, а инженерная дисциплина</h2><p>Стенберг планирует на случай, когда кто-то <b>действительно</b> захочет и попытается навредить проекту и его пользователям. Или когда это произойдёт случайно. Успешная атака на curl теоретически может достичь миллиардов устройств.</p><blockquote>Это не паранойя. Эта система позволяет нам спокойно спать по ночам. Именно поэтому пользователи до сих пор полагаются на curl спустя тридцать лет разработки.</blockquote><p>Недавно Стенберг добавил на сайт curl отдельную страницу верификации, где подробно описано, как проверить целостность релизов.</p><h2>Безопасность зависимостей: что проверить в вашем проекте</h2><p>Стенберг призывает: <b>требуйте такого уровня верификации от всех зависимостей в вашем стеке</b>. Вот конкретные шаги, которые вы можете предпринять уже сейчас:</p><h3>Проверка подписей и целостности пакетов</h3><p>Большинство пакетных менеджеров умеют проверять подписи. Убедитесь, что эта проверка включена:</p><h3>Аудит зависимостей в CI</h3><p>Встройте проверку уязвимостей в ваш CI-пайплайн:</p><p>Базы уязвимостей <a href="https://osv.dev/">OSV</a> и <a href="https://nvd.nist.gov/">NVD</a> — основные источники данных для этих инструментов.</p><h3>Оценка практик ваших зависимостей</h3><p>Прежде чем добавить зависимость, проверьте:</p><ul><li>Есть ли у проекта обязательное ревью PR? Посмотрите историю мёржей</li><li>Есть ли CI с тестами? Проверьте бейджи в README и конфиги в .github/workflows/</li><li>Как быстро закрываются уязвимости? Проверьте security advisories на GitHub</li><li>Сколько активных мейнтейнеров? Один человек — точка отказа</li><li>Используется ли <a href="https://openssf.org/projects/scorecard/">OpenSSF Scorecard</a> — автоматическая оценка безопасности open-source проекта</li></ul><h2>Выводы: доверяйте коду, а не репутации</h2><p>Опыт curl показывает: безопасность open source — это не вопрос доверия, а вопрос <b>верификации</b>. За 30 лет разработки проект выстроил систему из более чем 20 конкретных мер — от запрета бинарных блобов до непрерывного фаззинга — которые вместе создают многоуровневую защиту.</p><p>Если проект с десятками миллиардов установок может работать полностью открыто и предоставлять инструменты верификации для каждого, то и другие проекты обязаны стремиться к тому же стандарту. Начните с малого: npm audit signatures, pip-audit, проверка security advisories ваших зависимостей.</p><p><b>Не доверяйте — проверяйте.</b></p><p><i>Источник: <a href="https://daniel.haxx.se/blog/2026/03/26/dont-trust-verify/">Don't trust, verify</a> — блог Даниэля Стенберга</i></p>]]></content:encoded>
    </item>
    <item>
      <title>Исходный код Claude Code утёк через source map в npm — 512 000 строк и нерелизованные фичи</title>
      <link>https://tproger.ru/news/ishodnyj-kod-claude-code-utyok-cherez-source-map-v-npm---512-000-s</link>
      <comments>https://tproger.ru/news/ishodnyj-kod-claude-code-utyok-cherez-source-map-v-npm---512-000-s?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Алексей Михайлишин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/ishodnyj-kod-claude-code-utyok-cherez-source-map-v-npm---512-000-s</guid>
      <description><![CDATA[<p>В npm-пакете Claude Code нашли source map с полным исходным кодом: 1906 файлов, нерелизованные фичи, режим инкогнито для сотрудников. Разбираем находки.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/ishodnyj-kod-claude-code-utyok-cherez-source-map-v-npm---512-000-s">Исходный код Claude Code утёк через source map в npm — 512 000 строк и нерелизованные фичи</a>»</p>]]></description>
      <category><![CDATA[Open Source]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 31 Mar 2026 11:27:01 GMT</pubDate>
      <content:encoded><![CDATA[<p>31 марта 2026 года в npm-пакете @anthropic-ai/claude-code версии 2.1.88 <a href="https://cybersecuritynews.com/claude-code-source-code-leaked/">обнаружили source map-файл</a>, содержащий полный исходный код Claude Code — CLI-инструмента Anthropic для работы с ИИ прямо из терминала. около 1900 TypeScript-файлов, более 512 000 строк кода.</p><p>Source map (карта исходников) — это отладочный артефакт, который включает оригинальный исходный код до компиляции. Бандлер Bun, который использует Claude Code, генерирует source map по умолчанию — и кто-то забыл исключить его из npm-пакета. Утечка произошла не из-за атаки, а из-за ошибки в конфигурации сборки.</p><p>— В npm-пакете Claude Code v2.1.88 оказался source map с полным исходным кодом</p><p>— ~1900 файлов, 512 000+ строк TypeScript — вся архитектура CLI-клиента</p><p>— Обнаружены нерелизованные фичи: виртуальный питомец BUDDY, фоновый агент KAIROS, облачное планирование ULTRAPLAN</p><p>— Раскрыт «режим инкогнито» для сотрудников Anthropic, коммитящих в open-source</p><p>— Утечка произошла из-за конфигурационной ошибки, не атаки. Anthropic удалил файл</p><p><a href="https://code.anthropic.com/">Claude Code</a> — CLI-инструмент Anthropic, позволяющий использовать Claude для написания кода, работы с файлами и выполнения команд в терминале. Инструмент распространяется через npm и имеет доступ к файловой системе и терминалу разработчика.</p><h2>Как произошла утечка</h2><p>Исследователь <b>Chaofan Shou</b> (сооснователь и CTO Fuzzland) обнаружил в npm-пакете файл cli.js.map. Source map содержал массив sourcesContent с полным исходным кодом каждого из ~1900 файлов проекта. Кроме того, в map-файле была ссылка на публичный Cloudflare R2-бакет с ZIP-архивом всех исходников (57 МБ).</p><p>Причина банальная: бандлер <a href="https://bun.sh/">Bun</a> генерирует source map по умолчанию. Чтобы исключить его из пакета, достаточно было добавить *.map в .npmignore или отключить генерацию в конфигурации. Этого не сделали.</p><p>Ирония: в кодовой базе есть система «Undercover Mode», которая скрывает следы использования Claude Code сотрудниками Anthropic в публичных репозиториях. При этом весь исходный код инструмента был опубликован в открытом виде в npm.</p><h2>Что обнаружили в коде</h2><h3>Архитектура</h3><ul><li><b>1906 файлов</b> TypeScript, рантайм на Bun</li><li>Терминальный UI на <b>React + Ink</b></li><li>~40 инструментов (tools), ~85 слеш-команд</li><li>Мультиагентная оркестрация (координатор + параллельные воркеры)</li><li>OAuth 2.0 аутентификация, JWT-мост к VS Code и JetBrains</li><li>Динамическая сборка системного промпта из 40+ фрагментов</li></ul><h3>Нерелизованные фичи</h3><p>В коде обнаружены фичи за compile-time флагами, не доступные пользователям:</p><ul><li><b>BUDDY</b> — виртуальный питомец в стиле тамагочи, живущий в терминале. 18 видов существ с системой редкости (от Common 60% до Legendary 1%), 5 характеристик (Debugging, Patience, Chaos, Wisdom, Snark), шляпы и «блестящие» варианты. Claude генерирует имя и характер при первом «вылуплении»</li><li><b>KAIROS</b> — постоянно работающий фоновый агент. Ведёт ежедневный лог, получает регулярные «тики», может проактивно действовать. Имеет эксклюзивные инструменты: отправка файлов, push-уведомления, подписка на pull-реквесты</li><li><b>ULTRAPLAN</b> — режим облачного планирования. Выгружает сложные задачи в облачный контейнер с Opus 4.6 на срок до 30 минут. Результат возвращается в локальный терминал</li><li><b>autoDream</b> — фоновая консолидация памяти. Запускается как отдельный подагент с тремя условиями: 24 часа с последнего «сна», 5 сессий, блокировка. Четыре фазы: Orient → Gather → Consolidate → Prune</li></ul><h3>«Режим инкогнито» для сотрудников</h3><p>Файл utils/undercover.ts содержит систему, которая активируется автоматически, когда сотрудник Anthropic использует Claude Code в публичном репозитории. Системный промпт в этом режиме прямо запрещает Claude упоминать внутренние кодовые имена моделей, названия проектов, Slack-каналы и сам факт того, что код пишет ИИ.</p><p>Из кода также следует, что внутренние кодовые имена моделей Anthropic — названия животных. «Tengu» (тэнгу) встречается сотни раз как префикс для фич и аналитических событий — по всей видимости, это внутреннее кодовое имя Claude Code.</p><h3>Телеметрия</h3><p>Код раскрывает систему телеметрии, которая, помимо стандартных метрик сессии, отслеживает:</p><ul><li>Частоту использования нецензурной лексики в обращениях к Claude (метрика «frustration»)</li><li>Частоту набора слова «continue» (когда Claude обрывает ответ на середине)</li><li>Данные маршрутизируются через Datadog. Код пользователя и пути к файлам не передаются — есть явные фильтры. Телеметрию можно отключить через переменные окружения</li></ul><h2>Контекст: вторая утечка за пять дней</h2><p>Это вторая крупная случайная утечка Anthropic за неделю. 26 марта 2026 года ошибка конфигурации CMS раскрыла около 3000 неопубликованных файлов, включая черновик блогпоста о нерелизованной модели <b>«Claude Mythos»</b> (внутреннее кодовое имя «Capybara»). Обе утечки — результат конфигурационных ошибок, не взломов.</p><h2>Реакция Anthropic</h2><p>На момент публикации Anthropic не выпустил официального заявления. Компания молча обновила npm-пакет, удалив source map, и убрала из реестра ранние версии. Однако исходный код уже зеркалирован на GitHub — несколько репозиториев набрали более 1000 звёзд и сотни форков за первые часы.</p><h2>Что это значит для пользователей</h2><p><b>Чего НЕ утекло:</b> веса моделей, обучающие данные, серверная инфраструктура, пользовательские репозитории или промпты. Утечка затрагивает исключительно CLI-клиент — код, который работает на стороне разработчика.</p><p><b>Что утекло:</b> полная система разрешений (какие действия Claude Code может выполнять и при каких условиях), логика сборки системных промптов, OAuth-потоки и механизмы авторизации. Это упрощает поиск уязвимостей в инструменте, который имеет доступ к файловой системе и терминалу.</p><h2>Выводы</h2><p>Утечка исходного кода Claude Code — редкий случай, когда можно заглянуть внутрь коммерческого ИИ-инструмента. Технически это не уязвимость и не взлом, а конфигурационная ошибка — но масштаб раскрытой информации впечатляет: полная архитектура мультиагентной оркестрации, нерелизованные фичи и внутренние процессы компании.</p><p>Для Anthropic это урок о том, что инструменты, которым разработчики доверяют доступ к своему коду, должны проходить особенно тщательный аудит — включая процесс публикации npm-пакетов. Две утечки за пять дней — это системная проблема процессов, а не случайность.</p>]]></content:encoded>
    </item>
    <item>
      <title>Axios взломан на npm — вредоносные версии устанавливают RAT-троянец на все ОС</title>
      <link>https://tproger.ru/news/axios-vzloman-na-npm---vredonosnye-versii-ustanavlivayut-rat-troya</link>
      <comments>https://tproger.ru/news/axios-vzloman-na-npm---vredonosnye-versii-ustanavlivayut-rat-troya?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Алексей Михайлишин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/axios-vzloman-na-npm---vredonosnye-versii-ustanavlivayut-rat-troya</guid>
      <description><![CDATA[<p>Злоумышленники взломали npm-аккаунт мейнтейнера axios и внедрили RAT-троянец в версии 1.14.1 и 0.30.4. Разбираем атаку, IoC и как защититься. Проверьте проект.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/axios-vzloman-na-npm---vredonosnye-versii-ustanavlivayut-rat-troya">Axios взломан на npm — вредоносные версии устанавливают RAT-троянец на все ОС</a>»</p>]]></description>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Node.js]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 31 Mar 2026 04:31:22 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если ваш проект использует <b>axios</b> — проверьте package-lock.json прямо сейчас. 31 марта 2026 года злоумышленники взломали npm-аккаунт основного мейнтейнера библиотеки и опубликовали версии с троянцем удалённого доступа (RAT).</p><p>Скомпрометированы версии <b>axios@1.14.1</b> и <b>axios@0.30.4</b> — обе ветки, актуальная и легаси. Вредоносный код устанавливает кроссплатформенный RAT, который работает на macOS, Windows и Linux. Пакеты были доступны в npm-реестре около <b>3 часов</b>, прежде чем npm их удалил.</p><p>— Скомпрометированы axios@1.14.1 и axios@0.30.4 через взлом npm-аккаунта мейнтейнера</p><p>— Вредоносная зависимость plain-crypto-js устанавливает RAT-троянец на все ОС</p><p>— axios — самый популярный HTTP-клиент в JS-экосистеме: более 100 млн загрузок в неделю</p><p>— Безопасные версии: 1.14.0 (для 1.x) и 0.30.3 (для 0.x)</p><p>— Все секреты на затронутых системах нужно ротировать немедленно</p><p><a href="https://github.com/axios/axios">Axios</a> — HTTP-клиент для Node.js и браузеров с более чем 100 миллионами загрузок в неделю. Атаки на цепочки поставок (supply chain attacks) — это компрометация инфраструктуры распространения ПО: вместо атаки на конечную цель злоумышленник внедряет вредоносный код в доверенный пакет, который жертва сама устанавливает.</p><h2>Как произошла атака</h2><p>Злоумышленники получили доступ к npm-аккаунту <b>jasonsaayman</b> — основного мейнтейнера axios. Email аккаунта был изменён с легитимного адреса на ifstap@proton.me. Предположительно, был украден долгоживущий классический npm access token.</p><p>Легитимные релизы axios публикуются через GitHub Actions с криптографической привязкой <a href="https://docs.npmjs.com/generating-provenance-statements">npm OIDC Trusted Publisher</a> и содержат <b>SLSA-провенанс</b> (Supply chain Levels for Software Artifacts — стандарт подтверждения целостности сборки). Вредоносные версии были опубликованы вручную через npm CLI — без привязки к GitHub, без SLSA-провенанса, без соответствующего тега в репозитории.</p><p>Атака была подготовлена заранее: за 18 часов до компрометации axios в npm был опубликован пакет-приманка plain-crypto-js — клон легитимного crypto-js с тем же описанием и именем автора. Сначала чистая версия 4.2.0, затем вредоносная 4.2.1 с постустановочным скриптом.</p><h2>Хронология атаки</h2><p>Все события — по UTC, 30–31 марта 2026 года:</p><ul><li><b>30 марта, 05:57</b> — атакующий публикует чистый plain-crypto-js@4.2.0 для формирования истории публикаций</li><li><b>30 марта, 23:59</b> — выходит вредоносный plain-crypto-js@4.2.1 с постустановочным скриптом</li><li><b>31 марта, 00:05</b> — <a href="https://socket.dev/blog/axios-npm-package-compromised">Socket</a> детектирует вредоносный пакет — через 6 минут после публикации</li><li><b>31 марта, 00:21</b> — публикуется axios@1.14.1 со скомпрометированного аккаунта</li><li><b>31 марта, 01:00</b> — публикуется axios@0.30.4 — обе ветки поражены за 39 минут</li><li><b>31 марта, ~03:15</b> — npm удаляет обе вредоносные версии, dist-tag latest откатывается к 1.14.0</li><li><b>31 марта, 04:26</b> — npm публикует заглушку безопасности для plain-crypto-js — пакет заблокирован</li></ul><p>Итого: <b>axios@1.14.1</b> был доступен около 2 часов 53 минут, <b>axios@0.30.4</b> — около 2 часов 15 минут.</p><h2>Что делает вредоносный код</h2><p>В исходном коде axios изменений нет — добавлена только зависимость plain-crypto-js@^4.2.1. Сам пакет никогда не импортируется в коде; он существует исключительно для запуска postinstall-хука при npm install.</p><h3>Дроппер setup.js</h3><p>Файл setup.js весит 4209 байт и использует двухслойную обфускацию: сначала reversed Base64-декодирование (с подстановкой символов), затем XOR-шифр с ключом OrDeR_7077. Дроппер определяет ОС и загружает платформенный payload с C2-сервера.</p><h3>Payload по платформам</h3><p><b>macOS:</b> AppleScript-дроппер скачивает бинарный RAT с C2-сервера и сохраняет его как /Library/Caches/com.apple.act.mond — замаскирован под системный демон Apple. Запускается через /bin/zsh.</p><p><b>Windows:</b> PowerShell копируется в %PROGRAMDATA%\wt.exe (маскировка под Windows Terminal). VBScript-дроппер запускает скрытый PowerShell-скрипт с обходом Execution Policy.</p><p><b>Linux:</b> Python-скрипт RAT скачивается в /tmp/ld.py и запускается через nohup в фоновом режиме.</p><h3>Возможности RAT</h3><p>При первом запуске RAT отправляет на C2-сервер «отпечаток» системы: hostname, имя пользователя, версию ОС, архитектуру CPU, часовой пояс, время установки ОС и загрузки, список процессов, а также содержимое директорий /Applications, ~/Library и ~/Application Support. Затем RAT опрашивает C2 каждые <b>60 секунд</b>. Поддерживаемые команды:</p><ul><li><b>runscript</b> — выполнение произвольных shell-команд и Python-кода</li><li><b>peinject</b> — загрузка и запуск дополнительных бинарных payload</li><li><b>rundir</b> — перечисление содержимого директорий</li><li><b>kill</b> — самоуничтожение процесса</li></ul><h3>Антифорензика</h3><p>После выполнения дроппер удаляет себя (setup.js) и подменяет package.json чистой версией без postinstall-секции. При инспекции node_modules после заражения следов вредоносного скрипта не остаётся.</p><p><b>Это означает, что проверка node_modules постфактум бесполезна.</b> Единственный надёжный способ определить компрометацию — проверить package-lock.json на наличие вредоносных версий и IoC-пути на файловой системе (см. ниже).</p><h2>Кто обнаружил</h2><p>Атаку независимо обнаружили несколько компаний: <a href="https://socket.dev/blog/axios-npm-package-compromised">Socket</a> задетектировал вредоносный plain-crypto-js через 6 минут после публикации. <a href="https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan">StepSecurity</a> подтвердил компрометацию через AI Package Analyst и инструментирование GitHub Actions-раннера. Детальный технический разбор также <a href="https://safedep.io/axios-npm-supply-chain-compromise">опубликовала SafeDep</a>.</p><h2>Индикаторы компрометации (IoC)</h2><p><b>Файловая система:</b></p><p><b>Сеть:</b></p><p><b>SHA256 хеши:</b></p><h2>Что делать прямо сейчас</h2><p>Быстрая проверка — есть ли вредоносные версии в вашем lockfile:</p><p>Если команда ничего не вернула — ваш проект не затронут. Если нашлись совпадения:</p><ol><li>Откатить axios: npm install axios@1.14.0 (для 1.x) или npm install axios@0.30.3 (для 0.x) — это автоматически удалит plain-crypto-js</li><li>Проверить IoC-пути на файловой системе для вашей ОС (см. выше)</li><li>Заблокировать C2 на сетевом уровне: sfrclak[.]com / 142.11.206.73</li><li><b>Ротировать все секреты</b> на затронутых системах: npm-токены, SSH-ключи, API-ключи, переменные из .env</li><li>Проверить CI/CD-логи за 30–31 марта — ротировать все secrets из затронутых пайплайнов</li><li>Перейти на npm ci --ignore-scripts в CI/CD как постоянную политику</li></ol><p>Если обнаружены артефакты RAT — <b>считайте систему полностью скомпрометированной</b> и пересоберите из заведомо чистого состояния.</p><h2>Защита от транзитивных зависимостей</h2><p>Если axios используется как транзитивная зависимость (его тянет другой пакет), прямой npm install axios@1.14.0 не поможет — нужно зафиксировать версию через overrides в package.json:</p><p>Поле overrides работает в npm 8+, resolutions — в Yarn.</p><h2>Выводы</h2><p>Инцидент с axios — один из самых масштабных supply chain атак в npm по потенциальному охвату: при 100 миллионах загрузок в неделю даже 3-часовое окно доступности вредоносных версий критично. Для сравнения: компрометация <b>event-stream</b> в 2018 году затронула пакет с 2 миллионами загрузок в неделю.</p><p>Скорость реакции экосистемы впечатляет: Socket обнаружил вредоносный plain-crypto-js через 6 минут, npm отозвал пакеты менее чем за 3 часа. Но сам факт, что атакующему хватило одного украденного токена для публикации от имени доверенного мейнтейнера, ставит вопрос о необходимости обязательного использования OIDC Trusted Publishing для критической инфраструктуры npm.</p><p>Проверьте свои зависимости, ротируйте секреты и убедитесь, что ваш CI/CD-пайплайн защищён от автоматической установки непроверенных версий.</p>]]></content:encoded>
    </item>
    <item>
      <title>Спецификация ECMAScript заставляет V8 раскрывать, запущен ли DevTools — и это нельзя пропатчить</title>
      <link>https://tproger.ru/news/specifikaciya-ecmascript-zastavlyaet-v8-raskryvat--zapushhen-li-dev</link>
      <comments>https://tproger.ru/news/specifikaciya-ecmascript-zastavlyaet-v8-raskryvat--zapushhen-li-dev?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Алексей Михайлишин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/specifikaciya-ecmascript-zastavlyaet-v8-raskryvat--zapushhen-li-dev</guid>
      <description><![CDATA[<p>Исследователь нашёл два способа детектировать Puppeteer/Playwright через CDP. Второй вектор — Proxy в прототипе — нельзя закрыть без изменений в ECMAScript. Разбираем все 4 слоя C++.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/specifikaciya-ecmascript-zastavlyaet-v8-raskryvat--zapushhen-li-dev">Спецификация ECMAScript заставляет V8 раскрывать, запущен ли DevTools — и это нельзя пропатчить</a>»</p>]]></description>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 30 Mar 2026 15:04:10 GMT</pubDate>
      <content:encoded><![CDATA[<p>Вы запустили Puppeteer или Playwright, чтобы автоматизировать браузер. Ваш скрипт аккуратно маскируется: правильный User-Agent, реальные размеры окна, никаких следов headless-режима. Но есть один вектор, который вы не можете закрыть — и именно он сдаёт вас с потрохами.</p><p>Исследователь под ником Sveba <a href="https://svebaa.github.io/personal/blog/cdp-fingerprinting/">опубликовал</a> разбор двух способов детектировать headless-браузеры через Chrome DevTools Protocol (CDP). Оба метода работают в одну строку JavaScript, не требуют никаких разрешений и срабатывают синхронно — без замеров тайминга. Второй способ по состоянию на март 2026 года не закрыт и, по заявлению автора, не может быть закрыт без изменения поведения ECMAScript.</p><p><b>Ключевые выводы:</b><br />— Оба сигнала срабатывают, когда активен CDP Runtime domain — то есть одновременно при открытых DevTools и при работе Puppeteer/Playwright<br />— Сигнал 1 (май 2025): кастомный getter на <b>stack</b> у объекта Error — частично закрыт патчем V8, но обходится через прототипы<br />— Сигнал 2 (март 2026): Proxy в прототипе объекта + console.groupEnd() — не закрыт, корень проблемы в спецификации ECMAScript<br />— Детектирование синхронное, без тайминга, без permissions — один вызов console.*<br />— Runtime.enable одинаково активируется и DevTools UI, и автоматизацией</p><h2>Что такое CDP и почему он нас выдаёт</h2><p>Chrome DevTools Protocol (CDP) — это API, через который DevTools общается с браузером. Когда вы открываете инструменты разработчика, браузер активирует домен Runtime внутри V8. То же самое происходит, когда Puppeteer или Playwright вызывают Runtime.enable — с точки зрения V8 это неотличимо.</p><p>В режиме Runtime.enable инспектор подписывается на все вызовы console.* и начинает сериализовывать аргументы для отображения в панели DevTools. Именно эта сериализация и создаёт side effects, которые становятся детектируемыми.</p><h2>Сигнал 1: кастомный getter на stack (май 2025, частично закрыт)</h2><p>Первый вектор, который широко использовался среди вендоров bot-detection, выглядит так:</p><p>В нормальном браузере console.debug(e) просто логирует объект. Никто не читает .stack, getter не вызывается, detected остаётся false.</p><p>При активном Runtime.enable инспектор перехватывает вызов и прогоняет аргумент через функцию descriptionForError() в v8/src/inspector/value-mirror.cc. Эта функция обращается к свойствам name, stack и message через object-&gt;Get() — а C++ API V8 при обращении к свойству честно вызывает getter, если тот определён. Getter срабатывает. detected становится true.</p><h3>Патч V8 и его неполнота</h3><p>В мае 2025 года в V8 <a href="https://chromium.googlesource.com/v8/v8/">приземлились два коммита</a> (7 и 9 мая), которые ввели обёртку getErrorProperty(). Перед чтением свойства она проверяет ScriptId getter'а: если у него есть реальный ScriptId (то есть getter написан на JavaScript, а не является нативным C++-аксессором) — читать отказывается.</p><p>Проблема в том, что патч срабатывает только если GetOwnPropertyDescriptor на объекте возвращает дескриптор. Если нет — функция идёт по альтернативной ветке и вызывает object-&gt;Get() напрямую, до всякой проверки ScriptId. Getter, определённый не как собственное свойство экземпляра, а через прототип — обходит патч полностью.</p><h2>Сигнал 2: Proxy в прототипе + console.groupEnd (март 2026, не закрыт)</h2><p>Второй вектор аккуратнее и глубже:</p><p>obj — это не Proxy. Это обычный объект, у которого прототипом является Proxy. typeof obj === "object". Именно эта деталь позволяет обойти защиту.</p><h3>Четыре слоя C++, которые приводят к срабатыванию trap</h3><p>Автор прошёлся по всей цепочке выполнения в debug-сборке V8 и задокументировал каждый переход:</p><ul><li><b>Слой A — инспектор генерирует preview безусловно.</b> Функция V8ConsoleMessage::wrapArguments вызывается для каждого аргумента любого console.*-метода с флагом generatePreview = true. console.groupEnd по спецификации не принимает аргументов — но JavaScript позволяет передавать аргументы любой функции, и V8 их исправно обрабатывает.</li><li><b>Слой B — проверка Proxy работает только на поверхности.</b> В buildObjectPreviewInternal есть цикл, который снимает обёртку Proxy через while(value-&gt;IsProxy()). Поскольку obj сам не является Proxy, цикл не выполняется ни разу. Инспектор считает объект «пассивными данными» и передаёт его дальше.</li><li><b>Слой C — DebugPropertyIterator обходит цепочку прототипов заранее.</b> При создании итератора через DebugPropertyIterator::Create() он сразу накапливает ключи — не лениво по запросу, а при конструировании. Итератор проходит по всей цепочке прототипов: объект без свойств → переход к прототипу (нашему Proxy) → запрос ключей.</li><li><b>Слой D — спецификация ECMAScript требует вызова trap.</b> Когда KeyAccumulator::GetKeys наконец добирается до Proxy, выбора нет: спецификация (§10.5.11 [[OwnPropertyKeys]]) прямо требует вызвать ownKeys trap, если он определён. V8 вызывает его через Execution::Call — граница C++/JavaScript пересекается. detected = true.</li></ul><h2>Корень проблемы: три разумных решения создают дыру</h2><p>Автор подчёркивает: ни одна отдельная строка кода не является ошибкой. Уязвимость — это пересечение трёх архитектурных решений:</p><ol><li><b>Безусловная генерация preview.</b> Инспектор сериализует аргументы всех console.*-методов, даже тех, которые по спецификации аргументов не принимают.</li><li><b>Неполное раскрытие Proxy.</b> Проверка IsProxy() в двух местах смотрит только на сам объект, но не на его прототипы. Полная защита потребовала бы обхода всей цепочки прототипов при каждом вызове — дорогая операция для того, что сейчас является однострочной проверкой.</li><li><b>Жадный сбор ключей при создании итератора.</b> DebugPropertyIterator собирает все ключи заранее, включая из прототипов. Ленивый подход позволил бы вообще не трогать прототипы, если их ключи в итоге не нужны.</li></ol><blockquote>Паттерн — достичь управляемого пользователем trap через код инспектора, который защищает только непосредственный аргумент — вряд ли уникален для этих двух поверхностей.</blockquote><h2>Что это значит для автоматизации браузеров</h2><p>Оба сигнала срабатывают в любой среде, где активен Runtime.enable: при открытых DevTools, при использовании <a href="https://pptr.dev/">Puppeteer</a>, <a href="https://playwright.dev/">Playwright</a> или любого другого инструмента, работающего через CDP. Среды без Runtime.enable — не детектируются.</p><p>Детектирование синхронное — никаких таймингов, никаких разрешений, никаких browser extensions. Один вызов console.groupEnd() с правильно подготовленным объектом даёт однозначный ответ.</p><p>Закрыть второй сигнал на стороне V8 сложно: любое решение либо потребует дорогого обхода цепочки прототипов, либо изменит поведение инспектора при работе с Proxy. Спецификация ECMAScript не оставляет пространства для манёвра — trap должен вызываться.</p><h2>Частые вопросы</h2><h3>Что такое CDP Runtime domain и зачем его активируют?</h3><p>Chrome DevTools Protocol (CDP) — это API для взаимодействия с внутренностями браузера. Домен Runtime отвечает за исполнение JavaScript и отображение объектов. DevTools активирует его, чтобы показывать переменные в консоли. Puppeteer и Playwright активируют его автоматически для управления страницей и выполнения скриптов.</p><h3>Можно ли заблокировать детектирование на стороне Puppeteer/Playwright?</h3><p>Для первого сигнала есть частичные обходы (не определять getter как собственное свойство Error, использовать прототипы). Для второго сигнала — нет. Вызов ownKeys trap при обращении к ключам Proxy является требованием спецификации ECMAScript и не может быть пропущен движком без нарушения совместимости.</p><h3>Это касается только headless Chrome?</h3><p>Нет. Сигналы срабатывают всякий раз, когда активен Runtime.enable — то есть в том числе при открытых DevTools в обычном браузере. Разница в том, что bot-detection интересует именно автоматизация, а не пользователи с открытой консолью.</p><h3>Был ли сигнал 2 раскрыт вендорам bot-detection?</h3><p>Статья опубликована в личном блоге исследователя. Отдельного responsible disclosure в Chromium не упоминается. Автор ссылается на пост <a href="https://castle.io/blog/why-a-classic-cdp-bot-detection-signal-suddenly-stopped-working/">castle.io</a>, который задокументировал первый сигнал и майский патч 2025 года — именно он послужил вдохновением для этого исследования.</p><h2>Выводы</h2><p>Исследование наглядно показывает, как три независимых, разумно выглядящих инженерных решения образуют детектируемый side effect. V8 закрыл первый вектор патчем в мае 2025 года — но неполно. Второй вектор остаётся открытым и, по мнению автора, не может быть устранён без изменений либо в архитектуре инспектора, либо в поведении ECMAScript.</p><p>Если вы занимаетесь разработкой инструментов автоматизации или browser fingerprinting — <a href="https://svebaa.github.io/personal/blog/cdp-fingerprinting/">полный разбор с исходниками V8</a> стоит прочитать целиком. Обсуждение развернулось в <a href="https://www.reddit.com/r/ReverseEngineering/">r/ReverseEngineering</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Фейковые алерты VS Code в GitHub заражают разработчиков — как защититься</title>
      <link>https://tproger.ru/news/fejkovye-alerty-bezopasnosti-vs-code-v-github-discussions-raspro</link>
      <comments>https://tproger.ru/news/fejkovye-alerty-bezopasnosti-vs-code-v-github-discussions-raspro?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Алексей Михайлишин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/fejkovye-alerty-bezopasnosti-vs-code-v-github-discussions-raspro</guid>
      <description><![CDATA[<p>Тысячи фейковых security advisories в GitHub Discussions заражают разработчиков через вредоносные расширения VS Code. Узнайте, как распознать такую атаку.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/fejkovye-alerty-bezopasnosti-vs-code-v-github-discussions-raspro">Фейковые алерты VS Code в GitHub заражают разработчиков — как защититься</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 29 Mar 2026 05:26:42 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если вам пришло email-уведомление от GitHub с заголовком «Severe Vulnerability — Immediate Update Required» и ссылкой на Google Drive — <b>не переходите по ней</b>. Исследователи из компании <a href="https://socket.dev/blog/fake-vscode-alerts-github-discussions">Socket</a> обнаружили масштабную кампанию по распространению вредоносного ПО через GitHub Discussions. Злоумышленники публикуют тысячи фейковых предупреждений о безопасности, маскируясь под мейнтейнеров популярных проектов, и направляют разработчиков на загрузку заражённых расширений для VS Code.</p><p>Атака затрагивает пользователей множества репозиториев на GitHub — уведомления о «критических уязвимостях» приходят прямо на почту всем подписчикам и участникам проектов.</p><p>- Тысячи фейковых security-алертов публикуются в GitHub Discussions по множеству репозиториев
- Злоумышленники выдают себя за мейнтейнеров и используют поддельные CVE ID
- Ссылки ведут на вредоносные расширения VS Code, размещённые на Google Drive
- За фасадом — Traffic Distribution System с JS-разведкой и фильтрацией исследователей
- GitHub Discussions автоматически рассылает email-уведомления всем подписчикам репозиториев</p><h2>Как работает атака</h2><p>Кампания построена на злоупотреблении функцией <b>GitHub Discussions</b> — раздела для обсуждений внутри репозиториев. Атакующие создают новые аккаунты или используют малоактивные учётные записи и за считаные минуты публикуют <b>тысячи постов</b> с одинаковым шаблоном.</p><p>Каждый пост оформлен как срочное предупреждение о безопасности с заголовком вида Severe Vulnerability — Immediate Update Required. В тексте указаны поддельные CVE-идентификаторы (CVE — Common Vulnerabilities and Exposures, стандартная система нумерации известных уязвимостей) и ссылка на «пропатченную» версию расширения. Злоумышленники тщательно имитируют стиль настоящих security advisories и подписываются именами реальных мейнтейнеров или исследователей безопасности.</p><p>Ключевой рычаг атаки — механизм уведомлений GitHub. Все пользователи, которые подписаны на репозиторий (watchers) или участвовали в обсуждениях (participants), автоматически получают email с содержимым фейкового алерта. Таким образом, одна публикация в Discussions может охватить сотни и тысячи разработчиков.</p><h2>Цепочка заражения</h2><p>Ссылка из фейкового алерта ведёт на Google Drive, где размещён файл, замаскированный под обновлённое расширение VS Code. Далее запускается многоступенчатая цепочка:</p><ol><li>Жертва переходит по ссылке на Google Drive и скачивает файл</li><li>Файл инициирует цепочку cookie-driven редиректов, которая приводит на домен drnatashachinn[.]com</li><li>На этом домене выполняется JavaScript-скрипт разведки — он собирает данные о системе: часовой пояс, локаль, user agent, операционную систему и индикаторы автоматизации</li><li>Собранные данные отправляются на C2-сервер (Command and Control — управляющий сервер атакующих) через POST-запрос</li><li>Сервер работает как <b>Traffic Distribution System</b> (TDS) — фильтрует ботов и ИБ-исследователей, пропуская к следующему этапу только реальных пользователей</li></ol><p>Исследователям из Socket не удалось перехватить финальную полезную нагрузку (payload — вредоносный код второго этапа) — TDS-система определяла их как аналитиков и блокировала доставку. Важно: сам JS-скрипт разведки <b>не крадёт пароли и не перехватывает учётные данные</b> — он только собирает информацию о системе для фильтрации. Что именно получают прошедшие фильтрацию жертвы — пока неизвестно.</p><h2>Как распознать фейковый алерт</h2><p>Разработчикам стоит проявлять бдительность при получении уведомлений о безопасности из GitHub Discussions. Вот чеклист для проверки:</p><ol><li>Проверьте автора поста — кликните на профиль. Новый аккаунт без активности или с минимальной историей — красный флаг</li><li>Настоящие security advisories публикуются во вкладке Security репозитория, а не в Discussions</li><li>Проверьте CVE ID через официальную базу <a href="https://cve.mitre.org">cve.mitre.org</a> или <a href="https://nvd.nist.gov">nvd.nist.gov</a> — фейковые идентификаторы там не найдутся</li><li>Не скачивайте расширения VS Code из Google Drive или любых внешних источников — используйте только официальный VS Code Marketplace</li><li>Обращайте внимание на язык поста: паникёрские формулировки вроде «Immediate Update Required» нехарактерны для реальных мейнтейнеров</li><li>Если получили email-уведомление — перейдите в репозиторий и проверьте обсуждение в контексте, а не переходите по ссылкам из письма</li></ol><h2>Прецеденты: атаки через GitHub в 2024–2025</h2><p>Это не первый случай использования инфраструктуры GitHub для распространения вредоносного ПО:</p><ul><li><b>Март 2025</b> — масштабная кампания затронула более 12 000 репозиториев. Злоумышленники публиковали фейковые security alerts и через них направляли разработчиков на авторизацию вредоносного OAuth-приложения, получая доступ к их аккаунтам</li><li><b>Июнь 2024</b> — атакующие использовали спам-комментарии и pull requests для запуска email-уведомлений GitHub, перенаправляя разработчиков на фишинговые страницы</li></ul><p>Общий тренд очевиден: злоумышленники всё активнее эксплуатируют доверие разработчиков к платформе GitHub и её встроенные механизмы уведомлений для доставки вредоносного контента.</p><h2>Как защититься прямо сейчас</h2><p>Вот конкретные шаги, которые стоит предпринять уже сегодня:</p><ol><li>Отключите email-уведомления для Discussions: Settings → Notifications → Watching → Custom → снимите галочку с Discussions</li><li>Включите двухфакторную аутентификацию на GitHub: Settings → Password and authentication → Enable two-factor authentication</li><li>Проверьте список установленных расширений VS Code: откройте Extensions (Ctrl+Shift+X) → убедитесь, что все расширения установлены из официального <a href="https://marketplace.visualstudio.com">VS Code Marketplace</a></li><li>Не переходите по ссылкам из email-уведомлений GitHub — открывайте репозиторий напрямую в браузере</li><li>Сообщайте о подозрительных постах через кнопку Report в GitHub Discussions — это помогает платформе быстрее блокировать вредоносный контент</li></ol><h2>Выводы</h2><p>Атака через GitHub Discussions показывает, что даже доверенные платформы могут стать каналом доставки вредоносного ПО. Злоумышленники комбинируют социальную инженерию (срочность, имитация авторитетных фигур), легитимную инфраструктуру (Google Drive, email-уведомления GitHub) и техническую изощрённость (TDS-фильтрация, JS-разведка). Подробности — в <a href="https://www.bleepingcomputer.com/news/security/fake-vs-code-alerts-on-github-spread-malware-to-developers/">отчёте BleepingComputer</a>.</p><p>Главное правило остаётся прежним: не устанавливайте ПО из непроверенных источников, даже если предупреждение выглядит правдоподобно. Настоящие обновления безопасности для расширений VS Code всегда доступны через официальный <a href="https://marketplace.visualstudio.com">VS Code Marketplace</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Разработчик декомпилировал приложение Белого дома — нашёл обход пейволлов, GPS-трекинг и JS с чужого GitHub</title>
      <link>https://tproger.ru/news/razrabotchik-dekompiliroval-prilozhenie-belogo-doma---nawyol-obhod-</link>
      <comments>https://tproger.ru/news/razrabotchik-dekompiliroval-prilozhenie-belogo-doma---nawyol-obhod-?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Алексей Михайлишин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/razrabotchik-dekompiliroval-prilozhenie-belogo-doma---nawyol-obhod-</guid>
      <description><![CDATA[<p>Разработчик декомпилировал приложение Белого дома: GPS-трекинг, обход GDPR-баннеров и пейволлов, загрузка JS с GitHub Pages. Полный технический разбор находок.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/razrabotchik-dekompiliroval-prilozhenie-belogo-doma---nawyol-obhod-">Разработчик декомпилировал приложение Белого дома — нашёл обход пейволлов, GPS-трекинг и JS с чужого GitHub</a>»</p>]]></description>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Мобильная разработка]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[Персональные данные]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 29 Mar 2026 04:30:18 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если вы думаете, что официальное приложение правительства США — это образец безопасности и приватности, у разработчика <a href="https://blog.thereallo.dev/blog/decompiling-the-white-house-app">thereallo.dev</a> есть для вас неприятные новости. Он декомпилировал Android-приложение Белого дома и нашёл инжектор обхода пейволлов, GPS-трекинг каждые 4,5 минуты и загрузку JavaScript с чьего-то персонального GitHub Pages.</p><p>Приложение <b>White House</b> (gov.whitehouse.app, версия 47.0.1) — официальный Android-клиент Белого дома, доступный в <a href="https://play.google.com/store/apps/details?id=gov.whitehouse.app">Google Play</a>. Под капотом — React Native на Expo SDK 54 с движком Hermes. Бэкенд — WordPress, который отдаёт контент через REST API на whitehouse.gov.</p><p>— Приложение содержит JavaScript-инжектор, который скрывает cookie-баннеры, GDPR-диалоги, пейволлы и логин-стены на любых сайтах, открытых через встроенный браузер</p><p>— В коде заложена инфраструктура GPS-трекинга через OneSignal: опрос координат каждые 4,5 минуты при активном использовании и каждые 9,5 минут в фоне</p><p>— YouTube-плеер загружает HTML-страницу с GitHub Pages мейнтейнера сторонней библиотеки — компрометация аккаунта позволит выполнить произвольный код</p><p>— В продакшен-сборке остались артефакты разработки: URL localhost, IP разработчика и экспортированная Activity</p><h2>Что из себя представляет приложение</h2><p>Приложение Белого дома — по сути, обёртка над WordPress. Весь контент загружается через REST API с эндпоинтами вида /wp-json/whitehouse/v1/*. Вот основные разделы:</p><ul><li>/home — главный экран</li><li>/news/articles — новости</li><li>/wire — лента «The Wire»</li><li>/live — прямые трансляции</li><li>/galleries — фотогалереи</li><li>/issues и /priorities — политические приоритеты</li><li>/achievements — «достижения»</li><li>/media-bias — раздел «предвзятость СМИ»</li><li>/social/x — прокси ленты X/Twitter</li></ul><p>Среди контента — разделы «THE TRUMP EFFECT», «Greatest President Ever!», «Text President Trump» (с номером 45470) и ссылки на TrumpRx.gov, TrumpAccounts.gov, а также форма доноса ICE. Конфиг Expo указывает владельца forty-five-press — судя по всему, это медиа-команда, а не государственное агентство.</p><h2>Инжектор обхода cookie-баннеров и пейволлов</h2><p>Самая неожиданная находка — JavaScript-код, который <b>инжектируется в каждый сайт</b>, открытый через встроенный WebView приложения. Пейволл (paywall) — это платная стена, блокирующая доступ к контенту для неподписчиков. Скрипт использует механизм injectedJavaScript в React Native WebView.</p><p>Что именно скрывает инжектор:</p><ul><li>Cookie-баннеры (по CSS-селекторам *cookie*, *Cookie*)</li><li>GDPR-диалоги согласия (*consent*, *gdpr*, *GDPR*)</li><li>Баннеры OneTrust (*onetrust*)</li><li>Баннеры приватности (*privacy-banner*)</li><li>Логин-стены (*login-wall*, *loginWall*)</li><li>Стены регистрации (*signup-wall*, *signupWall*)</li><li>Апсейл-блоки (*upsell*, *Upsell*)</li><li>CMP-боксы (.cmpboxBtnYes, .cmpbox)</li><li>Любые элементы с aria-label, содержащим «cookie» или «consent»</li></ul><p>Скрипт работает в два этапа. Сначала создаёт CSS-правило display: none !important для всех элементов, соответствующих селекторам. Затем устанавливает MutationObserver, который отслеживает любые изменения DOM и скрывает новые элементы с соответствующими классами. Дополнительно принудительно снимает блокировку прокрутки: body { overflow: auto !important }.</p><p>По сути, приложение Белого дома <b>обходит GDPR-требования и пейволлы</b> на сторонних сайтах. Для государственного приложения это, мягко говоря, неожиданно.</p><h2>Инфраструктура GPS-трекинга</h2><p>В конфиге Expo есть плагин withNoLocation, который, казалось бы, отключает геолокацию. Однако в скомпилированном коде присутствует полноценная инфраструктура трекинга через <b>OneSignal SDK</b>.</p><h3>Константы опроса координат</h3><p>В классе LocationConstants жёстко заданы интервалы опроса:</p><ul><li>FOREGROUND_UPDATE_TIME_MS = 270000 — <b>4,5 минуты</b> при активном использовании</li><li>BACKGROUND_UPDATE_TIME_MS = 570000 — <b>9,5 минут</b> в фоне</li><li>TIME_FOREGROUND_SEC = 300 — 5-минутный порог для переднего плана</li><li>TIME_BACKGROUND_SEC = 600 — 10-минутный порог для фона</li></ul><h3>Как работает трекинг</h3><p>Класс GmsLocationController использует Google Fused Location API. При каждом опросе запрашивает координаты с приоритетом PRIORITY_BALANCED_POWER_ACCURACY (код 102) и устанавливает maxWaitTime в полтора раза больше интервала.</p><p>Перехваченные координаты обрабатывает LocationCapturer: широта, долгота, точность, временная метка, флаг фоновой работы и тип (грубый/точный). Всё сохраняется в PropertiesModel и отправляется на серверы OneSignal (api.onesignal.com).</p><p>Есть и фоновый сервис LocationBackgroundService, который продолжает собирать координаты даже когда приложение свёрнуто.</p><h3>Защита — есть, но условная</h3><p>Формально GPS-трекинг защищён гейтом: флаг _isShared по умолчанию false. Трекинг активируется только после вызова setLocationShared(true). Плагин withNoLocation по идее не должен его включать. Но вся инфраструктура скомпилирована в приложение. Поскольку трекинг реализован в нативном коде (Java), простое OTA-обновление JavaScript-бандла его не активирует. Однако если в приложении есть bridge-вызов к setLocationShared из JS — достаточно серверного конфига для включения без обновления через Google Play.</p><h2>Риски цепочки поставок</h2><h3>JavaScript с чужого GitHub Pages</h3><p>Для YouTube-плеера используется библиотека react-native-youtube-iframe, которая загружает HTML-страницу с GitHub Pages пользователя <b>lonelycpp</b> — мейнтейнера этой библиотеки:</p><p>Если аккаунт lonelycpp на GitHub будет скомпрометирован, злоумышленник сможет подменить эту страницу и <b>выполнить произвольный JavaScript</b> в WebView приложения Белого дома. Это классическая supply-chain атака (атака через цепочку поставок — компрометация стороннего компонента для проникновения в целевую систему). Хостинг ресурсов на GitHub Pages вместо CDN с <a href="https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity">Subresource Integrity</a> — плохая практика для любого приложения, тем более государственного.</p><h3>Виджеты Elfsight</h3><p>Приложение загружает JavaScript-платформу Elfsight с CDN:</p><p>Elfsight — это виджет-платформа для социальных сетей. Никакой песочницы — скрипт исполняется в том же контексте, что и основное приложение.</p><h3>Сторонние сервисы вместо госинфраструктуры</h3><p>Ни один из сторонних сервисов не является государственной инфраструктурой:</p><ul><li><b>Mailchimp</b> (whitehouse.us10.list-manage.com) — обработка email-подписок. Адреса пользователей уходят на серверы Mailchimp</li><li><b>Uploadcare</b> (ucarecdn.com) — хостинг контентных изображений через 6 захардкоженных UUID</li><li><b>Truth Social</b> — захардкоженный embed с профилем Трампа, аватаркой со static-assets-1.truthsocial.com и кнопкой «Follow»</li><li><b>Facebook</b> — плагин страницы через iframe facebook.com/plugins/page.php</li></ul><h2>Профилирование пользователей через OneSignal</h2><p><a href="https://documentation.onesignal.com/docs">OneSignal</a> SDK в приложении — это не просто пуш-уведомления. Платформа предоставляет широкие возможности для профилирования пользователей:</p><ul><li>addTag — тегирование пользователей для сегментации</li><li>addSms — привязка номеров телефонов к профилям</li><li>addAliases — кросс-девайсная идентификация пользователей</li><li>addOutcomeWithValue / addUniqueOutcome — отслеживание действий и конверсий</li><li>Полный цикл in-app сообщений: WillDisplay, DidDisplay, WillDismiss, DidDismiss, inAppMessageClicked</li><li>Отслеживание изменений состояния: подписки, разрешения, пользовательский профиль</li></ul><p>Локальная SQLite-база хранит таблицы notification (с полями notification_id, opened, dismissed, title, message, full_data) и in_app_message (с отслеживанием показов и кликов).</p><h2>Артефакты разработки в продакшен-сборке</h2><p>В релизной версии приложения остались следы, которых там быть не должно:</p><ul><li>URL http://localhost:8081/wp-json/whitehouse/v1/galleries?page= — захардкоженный адрес локального дев-сервера</li><li>IP-адрес разработчика 10.4.4.109 — прописан в strings.xml как react_native_dev_server_ip</li><li>Пакеты expo-dev-client, expo-devlauncher, expo-devmenu — средства разработки Expo</li><li>Иконка дев-меню dev_menu_fab_icon.png</li><li>Экспортированная PreviewActivity из Compose UI Tooling — <b>доступна другим приложениям</b> через android:exported="true"</li></ul><p>Экспортированная Activity — это потенциальный вектор атаки. Любое приложение на устройстве может запустить PreviewActivity через Intent.</p><h2>Отсутствие certificate pinning</h2><p>Certificate pinning (закрепление сертификата) — это метод защиты от атак «человек посередине» (MITM), при котором приложение принимает только заранее известные сертификаты сервера. Приложение Белого дома использует стандартный Android Trust Manager <b>без закрепления сертификатов</b>. Это означает, что при использовании скомпрометированного Wi-Fi или корпоративного прокси трафик между приложением и серверами whitehouse.gov может быть перехвачен и прочитан.</p><h2>Разрешения и файловый доступ</h2><p>Манифест запрашивает следующие разрешения:</p><ul><li>INTERNET — доступ к сети</li><li>VIBRATE — вибрация</li><li>ACCESS_NETWORK_STATE — состояние сети</li><li>POST_NOTIFICATIONS — отправка уведомлений</li><li>WAKE_LOCK — предотвращение засыпания</li><li>RECEIVE_BOOT_COMPLETED — автозапуск при загрузке</li><li>C2DM.RECEIVE — облачные пуш-уведомления</li><li>CHECK_LICENSE — проверка лицензии Google Play</li></ul><p>Конфигурация FileProvider описывает путь external-path name="shared" path="." — приложение может <b>предоставлять любые файлы из внешнего хранилища</b> другим приложениям через FileProvider. Это не означает чтение чужих данных, но расширяет поверхность атаки при взаимодействии между приложениями.</p><h2>Полный стек зависимостей</h2><p>Список SDK внутри приложения впечатляет:</p><ul><li><b>Фреймворк:</b> React Native, Expo SDK 54, Hermes JS engine</li><li><b>Пуш/вовлечение:</b> OneSignal, Firebase Cloud Messaging, Firebase Installations</li><li><b>Аналитика:</b> Firebase Analytics, Google Data Transport, OpenTelemetry</li><li><b>Сеть:</b> OkHttp 3, Apollo GraphQL, Okio</li><li><b>Изображения:</b> Fresco, Glide, Coil 3, Uploadcare CDN</li><li><b>Видео:</b> ExoPlayer (Media3), Expo Video</li><li><b>ML:</b> Google ML Kit Vision (сканирование штрих-кодов), модель Barhopper</li><li><b>Криптография:</b> Bouncy Castle</li><li><b>Хранилище:</b> Expo Secure Store, React Native Async Storage</li><li><b>WebView:</b> React Native WebView (с инжектором)</li><li><b>DI:</b> Koin</li><li><b>Сериализация:</b> GSON, Wire (Protocol Buffers)</li><li><b>Лицензия:</b> PairIP license check (Google Play Verification)</li></ul><h2>Что делать пользователям</h2><ol><li>Не открывать ссылки через встроенный браузер приложения — копировать URL и открывать в Chrome/Firefox, где cookie-баннеры отображаются корректно</li><li>Проверить разрешения приложения в настройках Android: Настройки → Приложения → White House → Разрешения — убедиться, что геолокация отключена</li><li>Учитывать, что RECEIVE_BOOT_COMPLETED запускает сервисы приложения при каждой загрузке устройства — даже если вы не открывали приложение</li><li>Для параноиков: использовать отдельный рабочий профиль Android (Настройки → Система → Несколько пользователей) для изоляции</li></ol><h2>Чеклист для разработчиков: что не должно попадать в прод</h2><p>Этот случай — хороший повод проверить собственные приложения. Вот что стоит убрать перед релизом:</p><ol><li>URL localhost и IP-адреса разработчиков — искать в strings.xml, конфигах и коде</li><li>Дев-пакеты (expo-dev-client, devmenu) — исключать из релизных сборок через build flavors</li><li>Экспортированные Activity для отладки — убирать android:exported="true" у дев-компонентов</li><li>Внешние JS-зависимости без SRI — хостить критичные ресурсы на собственном CDN</li><li>Избыточные SDK-модули — если не используете геолокацию, исключить модуль из сборки, а не просто «отключить» флагом</li><li>Широкие пути в FileProvider — ограничивать до конкретных директорий вместо path="."</li><li>Certificate pinning — добавить для всех критичных эндпоинтов через network_security_config.xml</li></ol><h2>Выводы</h2><blockquote>Приложение Белого дома — это React Native обёртка над WordPress с инжектором обхода cookie и пейволлов, инфраструктурой GPS-трекинга через OneSignal и JavaScript-зависимостями с GitHub Pages стороннего разработчика. Без certificate pinning.</blockquote><p>Этот разбор показывает, что даже государственные приложения могут содержать сомнительные практики: от обхода GDPR-баннеров до supply-chain зависимостей от случайных разработчиков. Полная инфраструктура GPS-трекинга, встроенная в код, но формально «отключённая» — это бомба замедленного действия, которая может быть активирована без обновления приложения.</p><p>Оригинальный анализ доступен в <a href="https://blog.thereallo.dev/blog/decompiling-the-white-house-app">блоге thereallo.dev</a>.</p><p>А вы проверяли, какие разрешения у государственных приложений на вашем телефоне?</p>]]></content:encoded>
    </item>
    <item>
      <title>Взломан PyPI-пакет telnyx: вредонос прячется в WAV-файлах и крадёт учётные данные</title>
      <link>https://tproger.ru/news/vzloman-pypi-paket-telnyx--vredonos-pryachetsya-v-wav-fajlah-i-krad</link>
      <comments>https://tproger.ru/news/vzloman-pypi-paket-telnyx--vredonos-pryachetsya-v-wav-fajlah-i-krad?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Алексей Михайлишин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/vzloman-pypi-paket-telnyx--vredonos-pryachetsya-v-wav-fajlah-i-krad</guid>
      <description><![CDATA[<p>Версии telnyx 4.87.1 и 4.87.2 на PyPI содержат вредоносный код (CVE-2026-33634). Вредонос использует стеганографию в WAV-файлах для кражи учётных данных. Проверьте свои проекты.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/vzloman-pypi-paket-telnyx--vredonos-pryachetsya-v-wav-fajlah-i-krad">Взломан PyPI-пакет telnyx: вредонос прячется в WAV-файлах и крадёт учётные данные</a>»</p>]]></description>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 27 Mar 2026 16:28:05 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если вы используете Python-пакет <b>telnyx</b> для работы с телефонией и мессенджингом — проверьте версию прямо сейчас. Две версии официального SDK оказались заражены вредоносным кодом, который ворует учётные данные и устанавливает бэкдор.</p><p><a href="https://telnyx.com/">Telnyx</a> — платформа для программируемой телефонии, SMS и сетевых сервисов. Её Python SDK (<a href="https://pypi.org/project/telnyx/">telnyx на PyPI</a>) скачивают более <b>1 миллиона раз в месяц</b> (~30 000 загрузок в день). 27 марта 2026 года исследователи из <a href="https://safedep.io/">SafeDep</a> обнаружили, что версии <b>4.87.1</b> и <b>4.87.2</b> содержат вредоносный код, которого нет в исходном репозитории на GitHub. Инциденту присвоен <b><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-33634">CVE-2026-33634</a></b> (CVSS 9.4). Обе заражённые версии уже карантинированы PyPI.</p><p><b>Главное:</b> Версии telnyx 4.87.1 и 4.87.2 на PyPI содержат вредоносный код — 74 строки, внедрённые в файл _client.py. Пакет скачивают более 1 млн раз в месяц. Вредонос использует стеганографию в WAV-файлах для доставки полезной нагрузки. На Windows устанавливается бэкдор, на Linux/macOS — крадутся учётные данные. Безопасная версия — 4.87.0. Атака связана с группировкой TeamPCP — это уже третье звено в цепочке после компрометации Trivy, Checkmarx и litellm.</p><p>Supply chain attack (атака на цепочку поставок) — тип атаки, при которой злоумышленник компрометирует не конечную цель, а один из компонентов, от которого она зависит: библиотеку, SDK или инструмент сборки. Разберём, как именно сработала атака и что делать, если вы используете telnyx.</p><h2>Как произошла компрометация</h2><p>Последняя чистая версия пакета — <b>4.87.0</b> — была опубликована 26 марта через штатный CI/CD-пайплайн (GitHub Actions + Rye). У неё есть соответствующий тег v4.87.0 в репозитории.</p><p>Версии 4.87.1 и 4.87.2 не имеют ни тегов, ни релизов на GitHub. Workflow публикации не запускался после v4.87.0. Метаданные PyPI показывают, что заражённые версии были загружены через twine/6.2.0, тогда как легитимный пайплайн использует rye publish.</p><p>Вывод: атакующий получил украденный PyPI API-токен и загрузил троянизированные версии напрямую, минуя CI/CD. У проекта не был настроен <a href="https://docs.pypi.org/trusted-publishers/">PyPI Trusted Publisher (OIDC)</a>, который привязывает загрузку к конкретному репозиторию и воркфлоу, делая украденные токены бесполезными.</p><h2>Как работает вредоносный код</h2><p>В файл telnyx/_client.py было внедрено ровно <b>74 строки</b> кода в трёх местах: импорты в начале файла, base64-закодированная переменная с полезной нагрузкой и функции атаки после легитимных классов. Код выполняется автоматически при import telnyx — никакого взаимодействия с пользователем не требуется.</p><h3>WAV-стеганография</h3><p>Ключевая особенность атаки — использование стеганографии. Вредонос скачивает с C2-сервера файлы, замаскированные под WAV-аудио (ringtone.wav для Linux/macOS, hangup.wav для Windows). Исполняемый код спрятан в аудиофреймах и извлекается через XOR-деобфускацию. Импорт модуля wave в SDK для телефонии — единственный «красный флаг», который мог выдать атаку при code review.</p><h3>Windows: бэкдор через автозагрузку</h3><p>Функция setup() проверяет os.name == 'nt', затем скачивает бинарник из WAV-файла и сохраняет его как msbuild.exe в папку автозагрузки Windows. Имя файла имитирует легитимный инструмент Microsoft Build Engine. Бэкдор запускается при каждом входе в систему с кулдауном повторной установки 12 часов.</p><h3>Linux/macOS: кража учётных данных</h3><p>Функция FetchAudio() запускает второй этап из base64-закодированной переменной (4 436 символов). Скрипт собирает учётные данные, API-ключи, SSH-ключи и секреты, шифрует их связкой <b>AES-256-CBC + RSA-4096</b> с хардкодированным публичным ключом и отправляет на C2-сервер через HTTP POST.</p><h3>Баг атакующего</h3><p>Любопытная деталь: в версии 4.87.1 атака на Windows <b>не работала</b>. Атакующий вызвал Setup() с заглавной буквы, тогда как функция определена как setup() со строчной. Это вызывало NameError, прерывавший выполнение модуля до запуска FetchAudio(). Версия 4.87.2 — по сути патч-релиз атакующего, исправляющий эту опечатку.</p><h2>Связь с TeamPCP: цепочка атак</h2><p>RSA-4096 публичный ключ, зашитый в вредоносный код, <b>побайтово совпадает</b> с ключом из <a href="https://safedep.io/blog/litellm-supply-chain-compromise/">компрометации пакета litellm</a>. Это позволяет с высокой уверенностью атрибутировать атаку группировке <b>TeamPCP</b>. Группировка использует инфраструктуру <b>CanisterWorm</b>, размещённую на блокчейне Internet Computer Protocol (ICP) — без единой точки отказа.</p><p>Компрометация telnyx — <b>третье крупное звено</b> в каскадной атаке TeamPCP:</p><ul><li><b>27 февраля</b> — атака на репозиторий Trivy (сканер уязвимостей от Aqua Security) через вредоносный PR</li><li><b>19–20 марта</b> — заражённый Trivy v0.69.4 опубликован, CanisterWorm распространился на 46+ npm-пакетов</li><li><b>23 марта</b> — скомпрометированы Checkmarx GitHub Actions</li><li><b>24 марта</b> — заражены версии litellm 1.82.7 и 1.82.8 на PyPI (~97 млн загрузок/мес)</li><li><b>27 марта</b> — заражены версии telnyx 4.87.1 и 4.87.2 на PyPI</li></ul><h2>Что делать</h2><ol><li>Проверьте версию telnyx в ваших проектах</li><li>Если установлена 4.87.1 или 4.87.2 — <b>немедленно откатитесь</b> на 4.87.0</li><li>Проверьте наличие файла msbuild.exe в папке автозагрузки Windows</li><li>Проверьте сетевые соединения с IP 83.142.209.203</li><li>Если обнаружены IoC — считайте <b>все</b> учётные данные, API-ключи и SSH-ключи скомпрометированными</li><li>Проверьте CI/CD на использование других скомпрометированных пакетов TeamPCP: Trivy, Checkmarx Actions, litellm</li><li>Включите <a href="https://docs.pypi.org/trusted-publishers/">Trusted Publishers</a> для всех ваших PyPI-пакетов</li></ol><h2>Индикаторы компрометации (IoC)</h2><p><b><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-33634">CVE-2026-33634</a></b> (CVSS 9.4) — <a href="https://github.com/team-telnyx/telnyx-python/issues/235">GitHub issue #235</a></p><h2>FAQ</h2><h3>Какие версии telnyx заражены?</h3><p>Вредоносный код содержится в версиях 4.87.1 и 4.87.2. Обе уже карантинированы PyPI. Последняя безопасная версия — 4.87.0. При этом в 4.87.1 из-за опечатки атакующего ни один из векторов атаки фактически не срабатывал.</p><h3>Как атакующие получили доступ к PyPI?</h3><p>Через украденный PyPI API-токен. GitHub-репозиторий telnyx не был скомпрометирован — атакующие загрузили пакеты напрямую на PyPI через twine, минуя CI/CD. У проекта не был настроен Trusted Publisher (OIDC), который предотвратил бы такую атаку.</p><h3>Кто стоит за атакой?</h3><p>Атака атрибутирована группировке TeamPCP. Это та же группа, которая ранее скомпрометировала сканер уязвимостей Trivy, GitHub Actions Checkmarx и PyPI-пакет litellm. RSA-ключ в вредоносном коде побайтово совпадает с ключом из предыдущих атак. Инфраструктура CanisterWorm размещена на блокчейне ICP, что делает её устойчивой к блокировке.</p><h3>Что делать, если я уже установил заражённую версию?</h3><p>Немедленно откатитесь на версию 4.87.0. Проверьте систему на наличие IoC. Если обнаружены признаки компрометации — считайте все учётные данные, API-ключи и SSH-ключи на этой машине скомпрометированными и выполните их ротацию. Также проверьте CI/CD на использование Trivy, Checkmarx Actions и litellm.</p><h2>Выводы</h2><blockquote>Атака на telnyx — не изолированный инцидент. Это часть каскадной кампании TeamPCP, которая за месяц скомпрометировала Trivy, Checkmarx, litellm и теперь telnyx. Единственная надёжная защита — PyPI Trusted Publishers (OIDC), привязывающий загрузку к конкретному GitHub-репозиторию.</blockquote><p>Этот инцидент в очередной раз показывает: доверять пакетам из PyPI «на слово» нельзя, даже если это официальный SDK крупной платформы. Настройте <a href="https://docs.pypi.org/trusted-publishers/">Trusted Publishers</a>, пиньте версии зависимостей, проверяйте хеши при установке. Проверьте свои проекты прямо сейчас.</p><p>Источники: <a href="https://safedep.io/malicious-telnyx-pypi-compromise/">SafeDep</a>, <a href="https://www.aikido.dev/blog/telnyx-pypi-compromised-teampcp-canisterworm">Aikido</a>, <a href="https://thehackernews.com/2026/03/teampcp-pushes-malicious-telnyx.html">The Hacker News</a>, <a href="https://research.jfrog.com/post/team-pcp-strikes-again-telnyx-popular-library-hit/">JFrog Security Research</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Как пакет для работы с нейросетями стал стилером: полный разбор атаки на LiteLLM</title>
      <link>https://tproger.ru/news/kak-paket-dlya-raboty-s-nejrosetyami-stal-stilerom--polnyj-razbor-</link>
      <comments>https://tproger.ru/news/kak-paket-dlya-raboty-s-nejrosetyami-stal-stilerom--polnyj-razbor-?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Картофельный Повелитель]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/kak-paket-dlya-raboty-s-nejrosetyami-stal-stilerom--polnyj-razbor-</guid>
      <description><![CDATA[<p>Версии LiteLLM 1.82.7 и 1.82.8 содержали стилер. Разбор атаки TeamPCP: хронология, технический анализ, IoC и чек-лист действий. Проверьте свои системы.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/kak-paket-dlya-raboty-s-nejrosetyami-stal-stilerom--polnyj-razbor-">Как пакет для работы с нейросетями стал стилером: полный разбор атаки на LiteLLM</a>»</p>]]></description>
      <category><![CDATA[Open Source]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[Kubernetes]]></category>
      <category><![CDATA[CI/CD]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 27 Mar 2026 04:44:10 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если между 24 и 25 марта 2026 года вы обновляли LiteLLM — проверьте версию прямо сейчас. Ваши API-ключи от OpenAI, Anthropic и облачных провайдеров могли утечь.</p><p><a href="https://github.com/BerriAI/litellm">LiteLLM</a> — это open-source прокси для работы с API различных LLM-провайдеров: OpenAI, Anthropic, Azure, Bedrock и ещё сотней других. Библиотека позволяет переключаться между моделями через единый интерфейс с автоматическими фоллбэками, ретраями и трекингом расходов. При <b>97 миллионах загрузок в месяц</b> (около 3,4 млн в день) это один из самых популярных инструментов в AI-инфраструктуре.</p><p>В скомпрометированных версиях 1.82.7 и 1.82.8, опубликованных на PyPI, обнаружили встроенный стилер учётных данных. Он крал SSH-ключи, токены облачных сервисов, API-ключи и пароли, а затем расползался по Kubernetes-кластерам.</p><p><b>Ключевое:</b> Версии LiteLLM 1.82.7 и 1.82.8 на PyPI содержали стилер, крадущий SSH-ключи, облачные токены и API-ключи. Версия 1.82.8 запускала вредоносный код при каждом старте Python — даже без импорта библиотеки. Если вы устанавливали LiteLLM 24 марта 2026 года — <a href="https://tproger.ru/#remediation">проверьте свои системы</a>. Последняя чистая версия — 1.82.6.</p><p>Но эта атака — не изолированный инцидент. Это финал пятидневной <b>supply chain атаки</b> (атаки через цепочку поставок — внедрение вредоносного кода в легитимный пакет через компрометацию его инфраструктуры). За ней стоит группировка <b>TeamPCP</b> — ранее неизвестная группа, которая за последнюю неделю марта целенаправленно атаковала инструменты безопасности и разработки. Кампания началась с компрометации сканера уязвимостей Trivy и через цепочку украденных CI/CD-креденшалов дотянулась до LiteLLM.</p><p>Разбираем всю цепочку атаки от начала до конца — подробнее, чем где-либо ещё.</p><h2>Хронология: пять дней, три вендора, пять экосистем</h2><p>Чтобы понять, как LiteLLM оказался скомпрометирован, нужно отмотать на пять дней назад. Атакующие не ломали LiteLLM напрямую — они добрались до него через цепочку компрометаций, каждая из которых давала доступ к следующей цели.</p><h3>19 марта: Trivy — точка входа</h3><p>Всё началось с <a href="https://github.com/aquasecurity/trivy">Trivy</a> — open-source сканера уязвимостей от Aqua Security, которым пользуются тысячи компаний для проверки контейнеров и кода.</p><p>Атакующие использовали скомпрометированные учётные данные мейнтейнера, чтобы:</p><ul><li>Опубликовать вредоносный релиз <b>Trivy v0.69.4</b>, который прошёл через стандартную release-машинерию и попал в GHCR, ECR Public, Docker Hub, deb/rpm-пакеты</li><li>Подменить <b>76 из 77 тегов</b> aquasecurity/trivy-action на вредоносные коммиты</li><li>Заменить все 7 тегов aquasecurity/setup-trivy</li></ul><p>Вредоносный код в GitHub Actions сканировал память процесса Runner.Worker, собирал креденшалы, шифровал данные AES+RSA и отправлял на подставной домен scan.aquasecurtiy[.]org — обратите внимание на опечатку в слове «security». Если прямая эксфильтрация не удавалась, малварь создавала публичный репозиторий tpcp-docs через GitHub-токен жертвы и сливала данные туда.</p><h3>20–22 марта: npm-червь и дефейс</h3><p>Уже на следующий день украденные токены пошли в дело. Атакующие запустили <b>самораспространяющегося npm-червя</b>: 28 пакетов в @EmilGroup, 16 в @opengov, плюс отдельные пакеты в других скоупах. Червь крал npm-токены из скомпрометированных окружений, проверял, к каким пакетам они дают доступ, поднимал patch-версию, подставлял оригинальный README для маскировки и переиздавал пакет с вредоносной начинкой.</p><p>К 22 марта та же инфраструктура начала обслуживать Kubernetes-скрипт с <b>разделением жертв по геолокации</b>. На иранских системах деплоился DaemonSet с контейнером kamikaze, который удалял файловую систему хоста и перезагружал ноду. На остальных — устанавливал персистентный бэкдор.</p><p>В тот же день атакующие дефейснули <b>44 репозитория внутренней GitHub-организации Aqua Security</b> (aquasec-com), переименовав их с префиксом tpcp-docs- и описанием «TeamPCP Owns Aqua Security».</p><h3>23 марта: Checkmarx</h3><p>Кампания добралась до <b>Checkmarx</b> — ещё одного крупного вендора в сфере безопасности приложений. Были скомпрометированы:</p><ul><li>Checkmarx/kics-github-action — сканер инфраструктурного кода</li><li>Checkmarx/ast-github-action — GitHub Action для платформы Checkmarx</li><li>Расширения VS Code в реестре Open VSX: ast-results v2.53.0 (около 36 000 загрузок) и cx-dev-assist v1.7.0 (около 500 загрузок)</li></ul><p>Паттерн тот же: стилер креденшалов, привязанный к домену checkmarx[.]zone, с фоллбэком на публичный репозиторий docs-tpcp для эксфильтрации.</p><h3>24 марта: LiteLLM</h3><p>В <b>10:52 UTC</b> на PyPI появилась версия LiteLLM 1.82.8. Соответствующий тег или релиз на GitHub отсутствовал — пакет был загружен напрямую, в обход стандартного процесса. По <a href="https://www.reversinglabs.com/blog/teampcp-supply-chain-attack-spreads">данным ReversingLabs</a>, был скомпрометирован GitHub-аккаунт сооснователя и CEO LiteLLM Криша Дхолакии — предположительно, через CI/CD-пайплайн, где Trivy использовался <b>без пиннинга версии</b>.</p><p>Через три часа команда безопасности PyPI поставила проект на карантин. Скомпрометированные версии были удалены. Последняя чистая версия — <b>1.82.6</b>. Но при 3,4 миллионах загрузок в день даже три часа — это огромное окно.</p><p>Мейнтейнеры LiteLLM <a href="https://docs.litellm.ai/blog/security-update-march-2026">опубликовали security-апдейт</a>, подтвердив компрометацию и рекомендовав всем пользователям обновиться до версии 1.82.6 или выше (после снятия карантина). Issue #24512 на GitHub, описывающий уязвимость, был закрыт — предположительно, самим атакующим через скомпрометированный аккаунт.</p><h2>Как работает вредоносный код</h2><p>Теперь разберём, что именно попадало на машины жертв. LiteLLM оказался скомпрометирован в двух версиях, и они существенно различаются по механизму запуска.</p><h3>Версия 1.82.7: инъекция в proxy_server.py</h3><p>В версии 1.82.7 вредоносный код был внедрён в файл litellm/proxy/proxy_server.py. Малварь запускалась только при реальном использовании LiteLLM Proxy в приложении. Если пакет был установлен, но прокси-сервер не запускался, код мог не сработать.</p><h3>Версия 1.82.8: .pth-файл — запуск без импорта</h3><p>Версия 1.82.8 принципиально опаснее. В wheel-пакет был добавлен файл litellm_init.pth размером 34 628 байт, содержащий <b>дважды закодированный</b> в base64 вредоносный код.</p><p>.pth-файлы — малоизвестная особенность Python. Согласно <a href="https://docs.python.org/3/library/site.html">документации модуля site</a>, исполняемые строки в .pth-файлах выполняются автоматически при каждом запуске интерпретатора. Не при импорте библиотеки, а при запуске <b>любого</b> Python-процесса в окружении, где установлен пакет.</p><p>Это означает: достаточно было выполнить pip install litellm==1.82.8, и <b>каждый последующий запуск Python</b> на этой машине активировал стилер. Не нужно писать import litellm — даже python -c "print('hello')" запускал вредоносный код.</p><h3>Три стадии: сбор, шифрование, эксфильтрация</h3><p><b>Стадия 1 — сбор.</b> Скрипт прочёсывает машину и собирает:</p><ul><li>SSH-ключи и конфигурации (~/.ssh/)</li><li>.env-файлы с секретами</li><li>Креденшалы AWS (Access Key, Secret Key), GCP (ADC), Azure</li><li>Конфигурации Kubernetes (~/.kube/config)</li><li>Docker-конфиги (~/.docker/config.json)</li><li>Пароли баз данных</li><li>Историю шелла (bash_history, zsh_history)</li><li>Файлы криптокошельков</li><li>Все переменные окружения</li><li>Данные с облачных metadata-эндпоинтов (IMDS)</li></ul><p><b>Стадия 2 — шифрование.</b> Собранные данные упаковываются в tar-архив и шифруются гибридной схемой: случайный сессионный ключ <b>AES-256-CBC</b> для данных, зашифрованный захардкоженным <b>4096-битным RSA</b>-публичным ключом.</p><p><b>Стадия 3 — эксфильтрация.</b> Зашифрованный архив отправляется POST-запросом на models.litellm[.]cloud (домен не имеет отношения к настоящему litellm.ai) с заголовком X-Filename: tpcp.tar.gz.</p><h3>Горизонтальное распространение в Kubernetes</h3><p>Если на машине обнаружен токен сервисного аккаунта Kubernetes, малварь переходит в режим горизонтального распространения (lateral movement):</p><ol><li>Читает <b>все секреты кластера</b> во всех неймспейсах</li><li>Создаёт привилегированный pod на <b>каждой ноде</b> в kube-system на основе образа alpine:latest</li><li>Каждый pod монтирует <b>корневую файловую систему хоста</b></li><li>Устанавливает персистентный бэкдор в /root/.config/sysmon/sysmon.py</li><li>Регистрирует systemd user service для автозапуска</li></ol><p>Таким образом, компрометация одного pip-пакета превращается в <b>полную компрометацию всего Kubernetes-кластера</b>.</p><h3>Персистентность и бэкдор</h3><p>На локальной машине малварь создаёт:</p><ul><li>~/.config/sysmon/sysmon.py — скрипт-бэкдор</li><li>~/.config/systemd/user/sysmon.service — systemd unit для автозапуска</li></ul><p>После установки бэкдор периодически обращается к https://checkmarx[.]zone/raw, скачивает файл в /tmp/pglog и выполняет его содержимое. Это даёт атакующим возможность удалённо выполнять произвольный код на скомпрометированных машинах в любой момент.</p><h2>Как обнаружили: баг в малвари устроил fork-бомбу</h2><p>Ирония истории в том, что атаку обнаружили благодаря <b>ошибке самих хакеров</b>.</p><p>Команда <a href="https://futuresearch.ai/blog/litellm-pypi-supply-chain-attack/">FutureSearch</a> столкнулась с проблемой случайно: MCP-плагин в IDE Cursor подтянул LiteLLM как транзитивную зависимость. Вредоносный .pth-файл запускал дочерний Python-процесс через subprocess.Popen. Но поскольку .pth-файлы срабатывают при каждом запуске интерпретатора, дочерний процесс тоже запускал малварь, та порождала ещё один процесс — и так далее.</p><p>Результат — <b>экспоненциальная fork-бомба</b>, которая мгновенно съедала всю оперативную память и вешала систему. Без этого бага стилер мог бы работать незамеченным значительно дольше.</p><blockquote>Мы были взломаны… тысячи людей, вероятно, прямо сейчас под атакой</blockquote><h2>Что делать, если вы затронуты</h2><p>Если в ваших проектах, CI/CD-пайплайнах или на рабочих машинах устанавливался LiteLLM 24 марта или позже — проверьте версию:</p><p>Если обнаружена версия 1.82.7 или 1.82.8:</p><ol><li><b>Удалите пакет и очистите кэши:</b> pip cache purge, rm -rf ~/.cache/uv</li><li><b>Проверьте наличие бэкдора:</b> файлы ~/.config/sysmon/sysmon.py и ~/.config/systemd/user/sysmon.service</li><li><b>В Kubernetes:</b> аудит kube-system на наличие подов node-setup-*, проверка секретов на несанкционированный доступ</li><li><b>Ротация всех креденшалов:</b> SSH-ключи, облачные токены (AWS, GCP, Azure), API-ключи, пароли БД, .env-файлы</li><li><b>Сетевые логи:</b> проверьте обращения к models.litellm[.]cloud, checkmarx[.]zone, scan.aquasecurtiy[.]org</li><li><b>Восстановление:</b> не ограничивайтесь удалением пакета — пересобирайте системы из известных чистых образов с закреплёнными (pinned) зависимостями</li></ol><p>На момент публикации публичных подтверждений массовой эксплуатации украденных ключей не зафиксировано, однако учитывая трёхчасовое окно и объём загрузок, число затронутых окружений может исчисляться тысячами.</p><h2>Индикаторы компрометации (IoC)</h2><p><b>Вредоносные домены:</b></p><ul><li>models.litellm[.]cloud — C2 для LiteLLM</li><li>checkmarx[.]zone — C2, используемый для персистентности и Checkmarx-атаки</li><li>scan.aquasecurtiy[.]org — C2 для Trivy-атаки</li></ul><p><b>Файлы на диске:</b></p><ul><li>litellm_init.pth в site-packages/</li><li>~/.config/sysmon/sysmon.py</li><li>~/.config/systemd/user/sysmon.service</li><li>/tmp/pglog</li><li>/tmp/.pg_state</li></ul><p><b>Kubernetes-артефакты:</b></p><ul><li>Поды с именами node-setup-* в kube-system</li><li>Контейнеры с именами kamikaze или provisioner</li></ul><p>Инциденту присвоен идентификатор <b>CVE-2026-33634</b>. Полный список IoC в формате CSV доступен в <a href="https://github.com/DataDog/security-labs-pocs">репозитории Datadog Security Labs</a>.</p><h2>Частые вопросы</h2><h3>Что такое LiteLLM и зачем его используют?</h3><p>LiteLLM — это open-source Python-библиотека и прокси-сервер, который предоставляет единый интерфейс для работы с более чем 100 LLM-провайдерами (OpenAI, Anthropic, Azure, AWS Bedrock и другие). Библиотека позволяет переключаться между моделями без изменения кода, автоматически обрабатывает фоллбэки и ретраи, отслеживает расходы. По данным PyPI, пакет загружается около 3,4 миллионов раз в день.</p><h3>Какие версии LiteLLM скомпрометированы?</h3><p>Скомпрометированы версии <b>1.82.7</b> и <b>1.82.8</b>, опубликованные на PyPI 24 марта 2026 года. Обе версии удалены. Последняя безопасная версия — <b>1.82.6</b>. Версия 1.82.8 опаснее: она запускает вредоносный код при каждом старте Python через механизм .pth-файлов, тогда как 1.82.7 активируется только при использовании прокси-сервера.</p><h3>Как проверить, затронут ли я?</h3><p>Выполните pip show litellm для проверки версии и find ~/.cache/uv -name "litellm_init.pth" для поиска вредоносного файла в кэше. Также проверьте наличие бэкдора: файлы ~/.config/sysmon/sysmon.py и ~/.config/systemd/user/sysmon.service. В Kubernetes ищите поды node-setup-* в namespace kube-system.</p><h3>Кто стоит за атакой?</h3><p>Атака приписывается группировке <b>TeamPCP</b>, которая за последнюю неделю марта 2026 года провела серию supply chain атак на инструменты разработки и безопасности: сканер уязвимостей Trivy (Aqua Security), GitHub Actions и расширения VS Code от Checkmarx, npm-пакеты, и в финале — LiteLLM. Инциденту присвоен идентификатор CVE-2026-33634.</p><h3>Что такое .pth-файл и почему он опасен?</h3><p>Файлы с расширением .pth, размещённые в директории site-packages, автоматически обрабатываются модулем site Python при каждом запуске интерпретатора. Исполняемые строки в таких файлах выполняются без явного импорта библиотеки. В случае LiteLLM 1.82.8 файл litellm_init.pth содержал дважды закодированный в base64 вредоносный скрипт, который запускался при каждом вызове python в скомпрометированном окружении.</p><h2>Выводы</h2><p>Ирония инцидента — в том, что LiteLLM по определению хранит API-ключи ко всем LLM-провайдерам организации. Атакующие выбрали пакет, который гарантированно имеет доступ к самым ценным секретам.</p><blockquote>Одна зависимость. Одна цепная реакция. Пять экосистем supply chain скомпрометированы менее чем за месяц</blockquote><p>TeamPCP целенаправленно атаковали инструменты безопасности — сканер уязвимостей, анализатор инфраструктурного кода, прокси для LLM. Эти инструменты по своей природе имеют широкий доступ, и компрометация одного из них даёт атакующим доступ ко всем секретам, которые этот инструмент должен был защищать.</p><p>Устанавливать пакеты из публичного реестра без проверки хешей и без lock-файлов — значит фактически отдать root-доступ любому, кто сможет скомпрометировать аккаунт мейнтейнера. Как ёмко выразилась Ноэлль Мурата, старший инженер по безопасности в Xcape: «Это цифровой эквивалент того, чтобы съесть бутерброд, найденный в метро, и удивиться пищевому отравлению».</p><p>Подробный технический анализ от Datadog Security Labs доступен <a href="https://securitylabs.datadoghq.com/articles/litellm-compromised-pypi-teampcp-supply-chain-campaign/">здесь</a>. Оригинальный отчёт FutureSearch — <a href="https://futuresearch.ai/blog/litellm-pypi-supply-chain-attack/">здесь</a>. Официальный security-апдейт LiteLLM — <a href="https://docs.litellm.ai/blog/security-update-march-2026">здесь</a>.</p><p><b>Проверьте свои зависимости сегодня.</b> Команды для аудита — <a href="https://tproger.ru/#remediation">в разделе выше</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как энергетика собирает ядро под требования КИИ</title>
      <link>https://tproger.ru/articles/kak-energetika-sobiraet-korporativnoe-yadro-pod-trebovaniya-kii-2</link>
      <comments>https://tproger.ru/articles/kak-energetika-sobiraet-korporativnoe-yadro-pod-trebovaniya-kii-2?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Виталий Попов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-energetika-sobiraet-korporativnoe-yadro-pod-trebovaniya-kii-2</guid>
      <description><![CDATA[<p>Как в энергетике строят корпоративное ИТ-ядро под требования КИИ: от сегментации и домена до dual-OS, fallback-сценариев и ОПЭ.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-energetika-sobiraet-korporativnoe-yadro-pod-trebovaniya-kii-2">Как энергетика собирает ядро под требования КИИ</a>»</p>]]></description>
      <category><![CDATA[Архитектура ПО]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[LDAP]]></category>
      <category><![CDATA[Инфраструктура]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 24 Mar 2026 08:35:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>В энергетике ИТ-ландшафт проектируется от ограничений, а не от продуктов. Сначала – сегментация, изоляция, модель угроз. Потом – все остальное. Архитектура рождается из этих рамок. Отсюда ключевой вопрос: каким должно быть корпоративное ядро в компаниях с КИИ, где требования безопасности задают рамки всей архитектуры? Формальные инструкции здесь не работают – зато работает набор практик, который стабильно выдерживает пилоты и ОПЭ.</p><h2>Корпоративное ядро: как оно устроено</h2><p>Сразу важно оговориться: корпоративное ядро и КИИ-контуры – это разные среды с разными задачами. В технологических сегментах КИИ требования строже, а фокус смещен в сторону изоляции и максимального импортозамещения. Корпоративная среда, о которой мы и говорим, проще по функционалу и ориентирована на поддержку пользователей и управленческих процессов.</p><p>В зависимости от зрелости архитектуры и глубины легаси корпоративный сегмент может быть как жестко отделен от КИИ-контуров, так и существовать с ними в управляемой гибридной модели. В обоих случаях именно требования КИИ задают архитектурные рамки, в которых проектируется корпоративная среда</p><p>В корпоративном сегменте энергетики ядро состоит из набора базовых сервисов: каталог, почта, коммуникации, документооборот, файловый слой, рабочие места и защита. Его фундамент – доменная структура, часто на Alt Domain или RedADM (службы на базе Samba DC): эти решения без сюрпризов проходят проверки совместимости и корректно работают с Kerberos и LDAP.</p><p>В реальных проектах переход к новому домену почти всегда начинается с гибридного режима. Старый Active Directory продолжает хранить SID и привязки приложений – без trust-связей массовую миграцию просто не запустить. Так домен становится точкой опоры для всех остальных компонентов. Почта – один из первых сервисов в корпоративном сегменте, который начинает жить по доменной модели: учетные записи, группы, права. И чаще всего именно она на прикладном уровне первой замечает любые отклонения в каталоге.</p><p>Остальные коммуникации строятся по той же схеме: централизованная авторизация, согласованные журналы и стабильные узлы связи. От этой части инфраструктуры не ждут чего-то сверхестественного, только спокойной, предсказуемой работы под нагрузкой.</p><p>Документооборот и файловый сервис – отдельный слой. Для пользователя это привычные папки с доступом к документам, но под капотом здесь ролевая модель, оргструктура и строгие ACL. Когда включается централизованная модель прав, самодельные сетевые диски исчезают из контура, а файловый слой превращается в управляемую систему доступа.</p><p>На уровне ниже находится невидимый пласт сервисов, на которых держится все ядро: DNS/DHCP домена, репликация, политики и настройки безопасности. Ошибки в любом из них могут спровоцировать каскад проблем – от задержек авторизации до потери доступа у части пользователей. На такие сценарии и заточены внутренние ППИ/ПМИ каждого компонента. Сценарии отрабатывают вручную, фиксируют протоколы, закрывают замечания – и только после этого переходят к пилоту.</p><p>Все это – «серверная» часть ядра. Но самый сложный участок начинается там, где архитектура сталкивается с пользователями – на АРМ (рабочих станциях). Здесь требуется подключение к каталогу, перенос профилей, миграция данных, проверка приложений, контроль целостности и унификация конфигураций.</p><p>В корпоративном сегменте на практике применяются переходные схемы – гибридный режим домена и поэтапная миграция пользовательских сервисов. В КИИ-контуре такие компромиссы возможны далеко не всегда</p><p>Если каждый компьютер конфигурировать по-своему, стабильного поведения сотен рабочих мест не добиться. Поэтому рабочие станции собирают из стандартизированных образов – виртуальных или аппаратных.</p><p>В рамках такой стандартизации на пользовательском уровне и появляется частичный dual-OS: критичные приложения остаются в Windows, а пользовательская среда переезжает в Linux. Это самый безопасный способ пройти миграцию без остановки процессов.</p><p>Во всех компонентах ядра действует единое правило: никакой архитектурной импровизации. Инфраструктура должна быть предсказуемой. Иначе она не выдержит эксплуатацию в среде, где архитектура определяется требованиями КИИ</p><h2>Как выглядит внедрение на практике</h2><p>На проектах внедрение почти всегда проходит в три этапа.</p><ol><li>Прототипирование – создание в миниатюре будущей инфраструктуры и выявление несовместимостей.</li><li>Настройка паттернов – сборка образов, настройка групп, OU, профилей, fallback-логики.</li><li>Переходный период – введение dual-OS, выравнивание политик и подготовка к ОПЭ.</li></ol><p>Прототипирование занимает от трех до шести месяцев. На этом этапе всплывает все, что невозможно увидеть на этапе проектирования. Где-то рабочие станции не загружаются на новых образах без обновления BIOS. Где-то плоттеры, сканеры и терминалы требуют ручной настройки. Профили Windows при переносе в Linux теряют ярлыки, MIME-ассоциации и политики. Если корпоративный домен в гибридном режиме, любое расхождение по времени, сбой Kerberos или конфликт GPO могут вывести из строя авторизацию на половине контура.</p><p>После пилота начинается настройка паттернов – определяем, какие драйверы исключать из образа, как собирать профили, какие группы синхронизировать, какие параметры ядра уменьшают количество сбоев, как организовать корректный fallback.</p><p>Но часть задач паттернами не решить – слишком много рабочих мест держится на Windows-приложениях. Поэтому dual-OS закрепляется как рабочая норма в корпоративном контуре: пользовательский профиль — в Linux, технологические приложения — в Windows, а архитектура постепенно приводится к единому набору политик, профилей и прав.</p><p>Откат в этом контуре обязателен. Пользователь должен иметь возможность вернуться в привычную среду в любой момент. На практике команда стремится уложиться в 10–15 минут – иначе миграционный участок становится неуправляемым</p><p>Даже после перехода в ОПЭ двухслойная конфигурация сохраняется. Часть сервисов – на новой платформе, часть – на старой. Пока среды существуют параллельно, они должны быть синхронны. Расхождение в правах, политиках или репликации моментально ломает согласованность контуров – и превращается в локальный инцидент.</p><h2>Информационная безопасность как каркас архитектуры</h2><p>Эта архитектура не может существовать без четкой рамки ИБ. Причем ИБ здесь – не надстройка, а несущая конструкция. Она определяет, что допустимо в контуре, а что нет, и где проходят реальные границы риска.</p><p>Виртуализацию разрешают только там, где можно контролировать изоляцию гостевых систем. Каналы управления – только внутри защищенных сегментов. Требования к виртуализации опираются на ГОСТ 56938: разделение зон исполнения, защита потоков управления, никаких «черных ящиков» в обновлениях.</p><p>Внешние сетевые зависимости исключаются, если они не описаны в проекте и не находятся под контролем заказчика. Неконтролируемые каналы передачи данных запрещены. Поэтому к Kerberos, репликации и маршрутам авторизации относятся как к минному полю: любая двусмысленность – это уже риск.</p><p>Сегментация подчиняется тому же принципу. Рабочие станции, серверы и хранилища данных разделены так, чтобы сбой в одном контуре не влиял на другие. Отсюда и значительные затраты времени на проверку, отладку подсетей и синхронизацию политик.</p><p>С данными та же история – они требуют отдельного контура контроля. Кто имеет доступ, где лежат журналы, что мы считаем инцидентом – эти вопросы нельзя решать по остаточному принципу. Ответы на них должны быть зашиты в архитектуру подсистем с самого начала.</p><p>И все это не имело бы смысла без гарантированного восстановления: система должна уметь возвращать себя в рабочее состояние через резервные копии, откат и проверенные сценарии. Например, компания в финсекторе после отказа всей инфраструктуры, потери ЦОД должна заработать через 2 часа.</p><h2>Стандартизация через эксплуатацию</h2><p>Когда среду удается стабилизировать на первой площадке, возникает главный вопрос: можно ли повторить тот же результат без пересборки с нуля? В энергетике – можно.</p><p>Конечно же, у компаний в разных регионах – своя история, парк оборудования или глубина легаси. Но архитектурные требования одинаковые везде. Они и формируют единый «слепок» корпоративного ядра при сохранении изоляции КИИ-контуров: правила для каталога, почты, коммуникаций и подготовки рабочих мест.</p><p>Если система стабильно прошла ОПЭ на одной площадке, она, как правило, так же ведет себя и на других</p><p>В этот момент внедрение перестает быть разовым проектом и превращается в последовательный сценарий. Архитектуру не приходится пересобирать – запускается отлаженная цепочка шагов с заранее понятными точками риска и стабильности. А полевые практики – унифицированные образы, dual-OS, fallback-механизмы – закрепляются как формальные требования.</p><h2>Импортонезависимое ядро – основа цифровой устойчивости</h2><p>В корпоративном сегменте энергетики импортонезависимое ядро давно перестало быть вопросом выбора платформ или брендов. Оно формируется как совокупность эксплуатационных ограничений, в которых заранее определены допустимые сценарии работы, отказов и восстановления.</p><p>Ключевым критерием здесь становится не функциональная насыщенность и не гибкость, а управляемость среды. Архитектура считается состоятельной тогда, когда ее поведение предсказуемо при изменениях конфигурации, обновлениях и инцидентах — и не требует ручной донастройки на каждом участке.</p><p>Поэтому внедрение импортонезависимого ядра — это не проект по замене ИТ-ландшафта, а переход к фиксированной эксплуатационной модели. В ней требования информационной безопасности заложены в архитектуру изначально, а корпоративная среда рассматривается как управляемый контур, рассчитанный на долгую и стабильную работу, а не на постоянную реконфигурацию.</p>]]></content:encoded>
    </item>
    <item>
      <title>Trivy: полный чек-лист по защите CI/CD и разбор инцидента</title>
      <link>https://tproger.ru/articles/ataki-na-trivy--kak-skaner-uyazvimostej-stal-vektorom-ataki-i-chto</link>
      <comments>https://tproger.ru/articles/ataki-na-trivy--kak-skaner-uyazvimostej-stal-vektorom-ataki-i-chto?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Свидетель пятничного деплоя]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/ataki-na-trivy--kak-skaner-uyazvimostej-stal-vektorom-ataki-i-chto</guid>
      <description><![CDATA[<p>Разбор двух атак на Trivy в феврале-марте 2026: CVE-2026-28353, ретроактивное отравление тегов GitHub Actions, CanisterWorm. Как проверить проект и защитить CI/CD.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/ataki-na-trivy--kak-skaner-uyazvimostej-stal-vektorom-ataki-i-chto">Trivy: полный чек-лист по защите CI/CD и разбор инцидента</a>»</p>]]></description>
      <category><![CDATA[Open Source]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[DevOps]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[CI/CD]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 22 Mar 2026 08:48:29 GMT</pubDate>
      <content:encoded><![CDATA[<h2>Что произошло: компрометация Trivy в 2026 году</h2><p>В марте 2026 <b>Trivy</b> — один из наиболее популярных open-source сканеров уязвимостей — был скомпрометирован дважды за три недели. Пострадали тысячи CI/CD-пайплайнов по всему миру. Если ваш проект использует Trivy или связанные с ним GitHub Actions, эта информация критически важна для защиты вашей инфраструктуры.</p><h2>Хронология инцидентов: две атаки за три недели</h2><h3>Первая атака: CVE-2026-28353 и hackerbot-claw</h3><p>Даты: 21–28 февраля 2026</p><p>Злоумышленники эксплуатировали критическую уязвимость в GitHub Actions-воркфлоу через механизм <b>pull_request_target</b>. Автономный бот <b>hackerbot-claw</b> автоматически создал Pull Request #10252, что позволило выполнить произвольный код в контексте с доступом к секретам репозитория. Через эту атаку было скомпрометировано VSCode-расширение Trivy, а вредоносная версия v1.8.12 попала в Open VSIX Registry.</p><p>Инцидент получил идентификатор <b>CVE-2026-28353</b> с максимальной оценкой критичности <b>CVSS 10.0</b>. Это означает полную компрометацию конфиденциальности, целостности и доступности системы. Причём исходный disclosure discussion (#10265) был удалён во время второго инцидента, что вызвало критику сообщества за недостаточную прозрачность в обработке уязвимостей.</p><h3>Вторая атака: TeamPCP и ретроактивное отравление тегов</h3><p>Дата: 19 марта 2026</p><p>Группа <b>TeamPCP</b> использовала учётные данные, украденные в первом инциденте, и опубликовала вредоносный релиз <b>v0.69.4</b>. Однако главная особенность этой атаки — <b>ретроактивное отравление тегов</b>: атакующие переместили (force-push) 76 из 77 существующих тегов релизов так, чтобы они указывали на вредоносный код.</p><p>Это означает, что даже если вы использовали «старую стабильную версию», вы также могли получить малварь. Команды, которые зафиксировали версии через теги, оказались под ударом, поскольку теги были изменены задним числом. Полезная нагрузка обеих атак была направлена на кражу секретов CI/CD: GitHub-токенов, npm-токенов, API-ключей и других данных из GitHub Secrets.</p><h3>Каскадный эффект: CanisterWorm</h3><p>Ситуация усугубилась каскадным эффектом: украденные npm-токены запустили <b>CanisterWorm</b> — самораспространяющегося червя, который заразил от 28 до 47 пакетов в npm-реестре.</p><h2>Как проверить свой проект на компрометацию: инструкция</h2><p>Если вы использовали Trivy или связанные GitHub Actions в период с февраля по март 2026 года, по умолчанию считайте, что ваш пайплайн скомпрометирован. Выполните следующие проверки в указанном порядке.</p><h3>1. Проверьте версии Trivy и GitHub Actions</h3><p>Откройте ваши workflow-файлы (.github/workflows/*.yml) и найдите использования trivy-action и setup-trivy. Обратите особое внимание на версии.</p><p><b>Статус версий на момент публикации (22.03.2026, 14:30 GMT+3):</b></p><figure><img src="https://media.tproger.ru/user-uploads/134134/2026-03-22/aa57f0fb-e90f-4282-9da5-d17718ce7cbe.webp" alt="Статус версий Trivy и связанных расширений на момент публикации" /><figcaption><br /></figcaption></figure><h3>2. Проанализируйте логи CI/CD на подозрительную активность</h3><p>Вредоносный код выполнял запросы к внешним серверам для эксфильтрации данных. При анализе логов workflow-запусков обращайте внимание на следующие индикаторы компрометации:</p><ul><li>Необъяснимые HTTP-запросы к неизвестным доменам или IP-адресам.</li><li>Запросы к canister-контейнерам на блокчейне Internet Computer (ICP), это характерный признак CanisterWorm.</li><li>Странное поведение переменных окружения, особенно GITHUB_TOKEN и NPM_TOKEN.</li><li>Подозрительные base64-кодированные строки в выводе, которые могут маскировать полезную нагрузку.</li></ul><h3>3. Проверьте npm-пакеты на заражение CanisterWorm</h3><p>Если ваши npm-токены были скомпрометированы, злоумышленники могли опубликовать через них вредоносные версии ваших пакетов. CanisterWorm самораспространяется: каждый заражённый пакет пытается заразить другие пакеты, к которым имеет доступ.</p><p>Используйте инструменты для сканирования ваших npm-пакетов на наличие вредоносного кода, зарубежные кибербез-издания рекомендуют <b>Socket.dev</b> или <b>Snyk</b>.</p><p>Особое внимание стоит уделить пакетам, опубликованным или обновлённым в период <b>с 19 по 22 марта 2026 года</b> — именно в это время происходила первичная волна распространения CanisterWorm.</p><h3>4. Проведите аудит учётных данных и токенов</h3><p>Надо определить, какие секреты были доступны скомпрометированным workflow. Проверьте следующие категории токенов:</p><p><b>GITHUB_TOKEN</b> — автоматически предоставляется workflow → доступ к репозиторию и коду<br /><b>NPM_TOKEN</b> — публикация npm-пакетов → публикация вредоносных версий<br /><b>DOCKER_USERNAME/PASSWORD</b> — публикация контейнеров → компрометация образов<br /><b>AWS_ACCESS_KEY_ID/SECRET</b> — доступ к облаку → несанкционированный доступ к инфраструктуре</p><h2>Как защитить CI/CD пайплайн: практическое руководство</h2><h3>1. Немедленно ротируйте все секреты</h3><p>Делать надо при наличии хотя бы минимальной вероятности компрометации. Не ждите подтверждения: к тому моменту злоумышленники уже могут использовать ваши токены для дальнейших атак.</p><p><b>Последовательность действий:</b><b></b></p><ol><li>Сгенерируйте новые токены для всех сервисов (GitHub, npm, Docker Hub, AWS и других).</li><li>Обновите секреты в настройках репозитория</li><li>Проверьте, что новые токены работают корректно (запустите тестовый workflow).</li><li>Отзовите старые токены.</li></ol><h3>2. Закрепляйте версии GitHub Actions через SHA-хеши</h3><p>Вместо тегов используйте <b>неизменяемые ссылки по SHA-хешу</b>. Это один из наиболее эффективных методов защиты от атак на зависимости.</p><p>Для получения SHA-хеша конкретной версии перейдите на страницу релиза или используйте команду git ls-remote для получения хеша конкретного тега.</p><h3>3. Реализуйте принцип минимальных привилегий для GITHUB_TOKEN</h3><p>По умолчанию GITHUB_TOKEN имеет достаточно широкие права доступа. Ограничьте их до минимально необходимых для каждого конкретного workflow:</p><ul><li>Отключите запись, если workflow только читает данные</li><li>Используйте блок permissions в каждом workflow для явного указания требуемых прав</li><li>Не передавайте токен в шаги, которым он не нужен</li></ul><h3>4. Защитите pull_request_target</h3><p>Этот тип триггера особенно опасен: workflow выполняется в контексте базовой ветки с доступом к секретам. Если вам необходим pull_request_target, применяйте следующие меры защиты:</p><p><b>Никогда не выполняйте код из PR</b> в контексте с секретами — сначала проверяйте источник. <br /><br /><b>Используйте явные проверки</b> на доверенные источники перед выполнением кода. <br /><br /><b>Рассмотрите альтернативные паттерны</b> запуска workflow, например pull_request вместо pull_request_target. <br /><br /><b>Изолируйте привилегированные операции</b> в отдельные workflow с ограниченным доступом.</p><h3>5. Настройте мониторинг и оповещения</h3><p>Настройте мониторинг на все критичные точки входа в ваш CI/CD процесс:</p><ul><li>Уведомления о необычных workflow-запусках — особенно в нерабочее время или из незнакомых источников.</li><li>Алерты на подозрительные исходящие запросы из CI/CD (особенно на неизвестные домены и IP).</li><li>Контроль публикаций пакетов — отслеживайте, кто, когда и откуда публикует пакеты в ваши реестры.</li></ul><p>А ещё чистите зубы, мойте руки с мылом и надевайте шапку.</p><h2>Технические детали для юных детективов: как сработали атаки на Trivy</h2><h3>Бот hackerbot-claw</h3><p>Инцидент начался 27 февраля 2026 года, когда автономный бот hackerbot-claw создал Pull Request #10252 в репозитории Trivy. Бот эксплуатировал workflow с использованием pull_request_target, который позволял выполнить произвольный код в контексте с доступом к секретам репозитория.</p><p>Результат атаки — скомпрометированное VSCode-расширение Trivy. Версия 1.8.12, попавшая в Open VSIX Registry, содержала вредоносный код, который выполнял следующие действия:</p><ol><li>Собирал конфиденциальные данные из среды разработки пользователя.</li><li>Эксфильтрировал украденные данные на командный сервер злоумышленников.</li><li>Создавал персистентный бэкдор для повторного доступа.</li></ol><p>NVD зарегистрировала инцидент как <b>CVE-2026-28353</b> с оценкой CVSS 10.0 — максимально возможной оценкой, указывающей на полную компрометацию информационной безопасности.</p><h3>Ретроактивное отравление тегов</h3><p>Группа TeamPCP получила write-доступ к репозиторию Trivy через скомпрометированные учётные данные, украденные в первом инциденте.</p><p>Ключевая инновация атаки — ретроактивное отравление тегов. Атакующие не просто опубликовали новую вредоносную версию — они переместили 76 из 77 существующих тегов так, чтобы те указывали на вредоносный код. Это означает, что под удар попадает любой пользователь, который:</p><ul><li>Использовал trivy-action@latest</li><li>Использовал конкретную версию через тег</li><li>Фиксировал зависимости через теги</li></ul><h3>CanisterWorm: блокчейн как командный сервер</h3><p>Отдельного внимания заслуживает CanisterWorm — малварь, распространившаяся через скомпрометированные npm-токены.</p><p><b>Ключевые особенности CanisterWorm:</b></p><ol><li>Использование блокчейна Internet Computer (ICP) как C2-сервера — децентрализованная инфраструктура, устойчивая к традиционным методам блокировки доменов и IP-адресов.</li><li>Автоматическое распространение — каждый заражённый пакет пытается заразить другие пакеты в экосистеме.</li><li>Кража токенов из среды разработчиков и CI/CD окружения для расширения сферы влияния.</li><li>Персистентный бэкдор для повторного несанкционированного доступа.</li></ol><h2>FAQ / TLDR</h2><h3>Как проверить, использовал ли я скомпрометированную версию Trivy?</h3><p>Проверьте ваши workflow-файлы в .github/workflows/*.yml на наличие версий v0.69.4 для Trivy или любых версий для trivy-action от 19 марта 2026 года. Также проверьте логи CI/CD на подозрительную активность: исходящие запросы к неизвестным доменам, особенно к canister-контейнерам на ICP.</p><h3>Что делать, если я обнаружил компрометацию?</h3><p>Немедленно ротируйте все секреты, которые передавались в workflow, отдельное внимание уделите GITHUB_TOKEN и NPM_TOKEN. Проверьте npm-пакеты на заражение CanisterWorm с помощью Socket.dev или Snyk. Проведите аудит всех публикаций в реестры за период с февраля по март 2026 года.</p><h3>Почему атака на сканер уязвимостей особенно опасна?</h3><p>Инструменты безопасности работают с максимальными привилегиями в инфраструктуре. Они имеют доступ к коду, секретам и конфиденциальным данным. Компрометация инструмента безопасности даёт злоумышленнику всё то, что этот инструмент защищает — секреты CI/CD, код и доступ к инфраструктуре.</p><h3>Как защититься от атак на зависимости в будущем?</h3><p>Используйте SHA-хеши вместо тегов для закрепления версий зависимостей. <br /><br />Применяйте принцип минимальных привилегий для всех токенов в CI/CD.<br /><br />Настройте регулярную ротацию секретов. <br /><br />Мониторьте исходящий трафик из CI/CD на предмет аномалий. <br /><br />Проводите регулярный аудит зависимостей и их источников.</p><p>Материал подготовлен по открытым данным.</p><p><b>Основные источники:</b> CrowdStrike, StepSecurity, Socket.dev, Ars Technica, Apache Foundation, Aikido Security, The Hacker News, NVD (CVE-2026-28353), GitHub Discussion #10265, Chainguard.</p>]]></content:encoded>
    </item>
    <item>
      <title>36 языков, 3 модуля в едином интерфейсе, встроенные цифровые сотрудники и безопасный код для вашего продукта</title>
      <link>https://tproger.ru/articles/36-yazykov--3-modulya-v-edinom-interfejse--vstroennye-cifrovye-sot</link>
      <comments>https://tproger.ru/articles/36-yazykov--3-modulya-v-edinom-interfejse--vstroennye-cifrovye-sot?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Екатерина Соколова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/36-yazykov--3-modulya-v-edinom-interfejse--vstroennye-cifrovye-sot</guid>
      <description><![CDATA[<p>Безопасность разработки под контролем: команда Solar создала продукт, который объединяет статический, динамический анализ, анализ состава и цепочки поставок ПО. </p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/36-yazykov--3-modulya-v-edinom-interfejse--vstroennye-cifrovye-sot">36 языков, 3 модуля в едином интерфейсе, встроенные цифровые сотрудники и безопасный код для вашего продукта</a>»</p>]]></description>
      <category><![CDATA[Безопасный код]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 09 Feb 2026 09:28:32 GMT</pubDate>
      <content:encoded><![CDATA[<p>⭐ <b>Участник Продуктовой Премии Tproger 2025 — проголосовать за кейс <a href="https://tprg.ru/pW1T">можно по ссылке</a></b></p><p><i>Solar appScreener разработан для повышения уровня кибербезопасности программного обеспечения путём комплексного анализа на каждом этапе жизненного цикла разработки. Согласно данным отчёта Solar 4RAYS за 2024 год, около 54% инцидентов связаны с уязвимостями веб-приложений. </i></p><p>Межсайтовый скриптинг, SQL-инъекция, неограниченная загрузка файла опасного типа, внедрение команды ОС, обход авторизации — всё это можно найти и исправить заранее. <a href="https://tprg.ru/Qu0F" rel="nofollow">Solar appScreener</a> объединяет статический анализ SAST, динамическое тестирование DAST и проверку сторонних библиотек OSA.</p><p>Главная инновация — AI-модули или Цифровые сотрудники, которые работают даже без доступа в Интернет, обучаемые на протяжении семи лет. Они не просто помогают обрабатывать найденные  уязвимости, но и сами генерируют исправленный код. Большинство предложенных исправлений  разработчики принимают без доработок.</p><h2>Параметры проекта</h2><p>История: продукт начал свою историю 10 лет назад внутри российского стартапа. Сегодня поддерживает 36 языков программирования — ABAP, Apex, ASP.NET, COBOL, С#, C/C++, Objective-C, Dart, Delphi, Go, Groovy, HTML5, Java, Java for Android, JavaScript, JSP, Kotlin, LotusScript, Pascal, Perl, PHP, PL/SQL, T/SQL, Python, Ruby, Rust, Scala, Solidity, Swift, TypeScript, VBA, VB.NET, VBScript, Visual Basic 6.0, Vyper, 1C</p><p>Анализ бинарных файлов 10 форматов — JAR, WAR, EAR, AAR, DLL, EXE, APK, AAB, IPA, APP</p><p>Обучение ИИ: семь лет на тренировку модулей DerTriage AI и DerCodeFix AI</p><h2>Задача: найти уязвимости в ПО до того, как их найдут хакеры</h2><p>Какие проблемы можно решить с помощью анализа кода?</p><ol><li>Избежать финансовые потери: Большинство инцидентов, связанных с кибератаками связано с недостаточной защитой веб-приложений и программного обеспечения, что ведет к значительным финансовым убыткам у компаний. Даже одна уязвимость – может стать причиной, по которой хакеры проникнут в контур компании, где вы работаете.</li><li>Потеря доверия клиентов: Атаки хакеров негативно влияют на репутацию бренда и доверие потребителей.</li><li>Несоблюдение нормативных требований: Компании сталкиваются с необходимостью соответствовать строгим требованиям регуляторов, игнорирование которых влечет серьезные последствия.</li><li>Повышенная нагрузка на команду: Недостаточная автоматизация процессов выявления уязвимостей увеличивает нагрузку на разработчиков, DevSecOps-инженеров и сотрудников информационной безопасности.</li></ol><p>Российский рынок характеризуется особыми рисками, такими как целенаправленные атаки на отечественные информационные системы. Использование open-source-библиотек несет дополнительные опасности. Например, деструктивные действия со стороны отдельных представителей open source сообщества. Отсутствие регулярных проверок повышает вероятность появления закладок или слабых мест, что подчеркивает необходимость внедрения специализированных инструментов вроде Solar appScreener.</p><h2>Архитектура решения</h2><p>В архитектуре три главных инструмента:</p><ol><li>OSA (Open Source Analysis): анализ стороннего кода выявляет известные зависимости, проверяет лицензии open-source-библиотек и выявляет риски использования компонент на основании поведения авторов, обеспечивая безопасность поставок и юридическую чистоту проекта.</li><li>SAST (Static Application Security Testing): Статический анализ обнаруживает уязвимости в исходном коде с первых этапов разработки. Цифровые сотрудники — компоненты, помогающие обрабатывать результаты сканирования основанные на технологии машинного обучения.</li><li>DAST (Dynamic Application Security Testing): Динамическое тестирование анализирует веб-приложения и ПО, отправляя заведомо неверные данные и проверяя реакцию приложения на них.</li></ol><p>Каждый метод дополняет друг друга, создавая комплексную систему анализа. Дополнительно платформа интегрируется с CI/CD-конвейерами, что позволяет минимизировать ручную работу и повысить скорость развертывания обновленных версий.</p><h2>Ключевые инновации и технические решения номинированного продукт</h2><p>Solar appScreener кардинально меняет правила игры в обеспечении анализа кода программных продуктов, предлагая идеальный баланс между быстротой разработки и высочайшими стандартами безопасности.</p><p><b>Почему AppScreener выигрывает:</b></p><ul><li>Избавление от ложных срабатываний</li></ul><p>Проблема ложных срабатываний в инструментах SAST стала камнем преткновения для многих команд. Однако интеллектуальные Цифровые сотрудники решают её окончательно. За счёт семилетнего обучения эти модули мгновенно фильтруют лишние предупреждения, оставляя лишь критически важные уязвимости, нуждающиеся в исправлении. А также предлагают исправленные участки кода для найденной уязвимости. При этом большинство предложенных исправлений принимается без доработок от разработчиков и AppSec-команд.</p><ul><li>Увеличение скорости разработки</li></ul><p>Производительность вашей команды растет экспоненциально. Вместо недель ожидания отчётов и кучи задач - теперь отчёт доступен буквально за считанные минуты. Исправления уязвимостей занимают секунды, а не дни. Все это способствует значительному снижению сроков вывода продуктов на рынок (time-to-market) и одновременно сохранению высокого уровня безопасности.</p><ul><li>Интеграция с современной средой разработки</li></ul><p>AppScreener идеально встраивается в существующие CI/CD конвейеры и рабочие среды, обеспечивая максимальную совместимость и комфорт для разработчиков. Инструмент легко адаптируется к любым условиям, будь то небольшой стартап или крупная корпорация.</p><ul><li>Уникальная инфраструктура и надежность</li></ul><p>Наш продукт разработан в России и прошел самую жесткую сертификацию. Мы предлагаем поддержку широкого спектра популярных языков программирования, в том числе написанных на “устаревших” языках. Это делает AppScreener незаменимым инструментом для компаний любого масштаба.</p><p>Основные преимущества AppScreener заключаются в интеграции передовых методов анализа и автоматизации процесса устранения уязвимостей.</p><h2>Путь от стартапа до стандарта рынка</h2><p>Продукт начал свою историю внутри российского стартапа, занимающейся консультированием по вопросам безопасности. Команда начала развивать идею продукта в сегменте application security. Процесс включал  исследования и разработки, которые в итоге завершились созданием эффективного инструмента для анализа программного обеспечения и приложений. Ряд сотрудников Солар, благодаря своей работе получили научные степени.</p><h2>Результаты: скорость и экономия</h2><p>Устранение уязвимостей  на поздних стадиях развития ПО или прям перед его выпуском в продакшн обходится существенно дороже, чем ранняя проверка кода на безопасность. appScreener помогает сократить издержки и оптимизировать бюджет.</p><ol><li>Экономия ресурсов: Раннее выявление и быстрое исправление уязвимостей экономит средства, необходимые для ликвидации последствий серьезных инцидентов.</li><li>Оптимизация бюджета: Сокращение количества ложных срабатываний за счет новых разработок снижает расходы на обработку данных и привлечение квалифицированных специалистов.</li><li>Увеличение скорости вывода продукта на рынок: благодаря автоматизированному исправлению ошибок, новые версии продуктов выходят быстрее, сохраняя высокое качество.</li></ol><p>Эти показатели подтверждают эффективность инструмента и способствуют повышению конкурентоспособности бизнеса.</p><h2>Отзывы клиентов</h2><p>Клиенты отмечают высокую точность обнаружения уязвимостей и удобство использования инструмента. Особенно ценится возможность быстро интегрироваться в существующие процессы разработки и эффективно снижать риски. Использование AppScreener положительно влияет на конкурентоспособность российских продуктов. Открытые кейсы внедрений доступны на сайте от лица людей, которые их давали.</p><h2>Планы развития</h2><p>Команда продолжает развивать <a href="https://tprg.ru/Qu0F" rel="nofollow">Solar appScreener</a>, проводя совместные исследования, интересные рынку. Запущена первая в России премия по безопасной разработке совместно с Ассоциацией ФинТех и сообществом FinDevSecOps. В планах — дальнейшее обучение ИИ-моделей.</p><p><i>Реклама. АО «Солар Секьюрити», ИНН 9714069290, erid: 2W5zFJQwYmo</i></p>]]></content:encoded>
    </item>
    <item>
      <title>Обучение кибербезопасности и этичному хакерству: изучаем командную строку и базовые команды. Часть 1</title>
      <link>https://tproger.ru/articles/obuchenie-kiberbezopasnosti-i-etichnomu-hakerstvu--izuchaem-komandnuyu-stroku-i-bazovye-komandy--chast-1</link>
      <comments>https://tproger.ru/articles/obuchenie-kiberbezopasnosti-i-etichnomu-hakerstvu--izuchaem-komandnuyu-stroku-i-bazovye-komandy--chast-1?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Иван Глинкин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/obuchenie-kiberbezopasnosti-i-etichnomu-hakerstvu--izuchaem-komandnuyu-stroku-i-bazovye-komandy--chast-1</guid>
      <description><![CDATA[<p>Разбор ряда функций командной строки Linux.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/obuchenie-kiberbezopasnosti-i-etichnomu-hakerstvu--izuchaem-komandnuyu-stroku-i-bazovye-komandy--chast-1">Обучение кибербезопасности и этичному хакерству: изучаем командную строку и базовые команды. Часть 1</a>»</p>]]></description>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Хакеры]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 15 Jan 2026 12:10:02 GMT</pubDate>
      <content:encoded><![CDATA[<p><a></a><b>Обучение
кибербезопасности и этичному хакерству: изучаем командную строку и базовые
команды. Часть 1</b></p><p>Я, Иван Глинкин, руководитель группы аппаратных
исследований в Бастионе, автор канала <a href="https://t.me/EASM_HydrAttack">HydrAttack</a>,
продолжаю обучающий цикл
для начинающих «белых» хакеров. Мы уже выбрали
дистрибутив Линукса для хакинга и успешно установили его — пора начать с ним работать.
Сегодня мы научимся пользоваться
командной строкой,
ведь именно так раскрывается вся сила Линя (Linux). Командная строка в Linux
позволяет управлять всей операционной системой: выполнять скрипты, запускать
команды, управлять папками и файлами, настраивать систему и пр. Если вы не
знаете базовые команды — вы не знаете Linux.</p><h2>man</h2><p>Вы
наверняка слышали выражение из компьютерной и геймерской культуры «курить
маны». Оно используется в шутливом контексте среди сисадминов и программистов в
тех случаях, когда кто-то пытается разобраться с трудными техническими
аспектами с помощью мануалов. Это своего рода «хакерский» сленг, который
обозначает процесс самообучения через официальные документы и инструкции. В
Unix-подобных ОС такая документация называется man-страницами.</p><p>Программа
<b><i>man</i></b>
(от англ. "manual ", руководство) — это утилита,
которая предоставляет доступ к справочной документации по различным командам,
программам, системным вызовам и конфигурациям системы. Она предназначена для
того, чтобы пользователи могли быстро получить информацию о функциональности и
параметрах программ прямо из командной строки.</p><p>При
вызове программы <b><i>man</i></b> пользователь указывает имя команды, по которой он хочет
получить справочную информацию, например,
<b><i>man ls</i></b>:<b><i></i></b></p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/ff48216e-d50a-49e8-87fa-ab1c2ed93c02.jpg" alt="" /></figure><p>Если
вы не уверены в точном названии команды, можно использовать ключ <b><i>-k</i></b>
или утилиту <b><i>apropos</i></b>, чтобы найти все команды, связанные с определенным ключевым
словом: <b><i>man -k network</i></b>:<b></b></p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/e0ca06b9-3ada-4f4b-ba54-6fc0bff74755.jpg" alt="" /></figure><p>Программа
<b><i>man</i></b>
— мощный инструмент для быстрого поиска справочной информации, он помогает
пользователям и администраторам эффективно задействовать системы на базе Linux
или других Unix-подобных ОС.</p><h2>cat</h2><p>Программа
<b><i>cat</i></b>
(от "concatenate", конкатенация, т.е. сцепление) — это одна из
наиболее часто используемых утилит в Linux. Ее основная задача — считывать
содержимое одного или нескольких файлов и выводить его в терминал. Имеет также несколько
дополнительных функций, которые делают ее полезной в разных сценариях.</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/492463b2-de06-4eee-b939-6b4a48327c90.jpg" alt="" /></figure><p><b><i>cat</i></b> может соединять несколько
файлов в один, что отражает ее название "concatenate":</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/289f8052-ca46-4d3f-a0f4-9c5840894921.jpg" alt="" /></figure><p><b><i>cat</i></b> может отображать
содержимое файла с нумерацией строк при помощи флага:</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/9addf136-329c-45ce-9164-c1f9fe623ca1.jpg" alt="" /></figure><p><b>Дополнительные опции:</b></p><p>●     
<b><i>-n</i></b> — выводит нумерацию строк;</p><p>●     
<b><i>-s</i></b> — подавляет вывод пустых
строк;</p><p>●     
<b><i>-b</i></b> — нумерует только непустые
строки;</p><p>●     
<b><i>-T</i></b> — отображает табуляции в
виде символов <b><i>^I</i></b>;</p><p>●     
<b><i>-v</i></b> — отображает непечатаемые
символы.</p><h2>ls</h2><p>Команда
<b><i>ls</i></b>
(от "listing", список) — одна из самых часто используемых команд в
Linux. Она предназначена для вывода списка содержимого директории, то есть
файлов и подкаталогов. Команда <b><i>ls</i></b> очень гибкая, она поддерживает
множество опций для изменения формата вывода и сортировки данных.</p><p>Если
не указывать каталог, то по умолчанию<b> <i>ls</i></b> покажет содержимое текущего
рабочего каталога:</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/63bc376a-30e6-4b85-9200-44c58d65303f.jpg" alt="" /></figure><p>Опция
<b><i>-l</i></b>
(long format) выводит информацию о каждом файле или каталоге в более подробном
виде, включая права доступа, владельца, группу, размер и время последней
модификации:</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/5b9d49da-7bb8-4f90-b958-b4ae2c1ceafe.jpg" alt="" /></figure><p>Файлы
и директории, имена которых начинаются с точки (<b><i>.</i></b>), считаются скрытыми.
Опция <b><i>-a</i></b> покажет также и скрытые файлы:</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/692d8f52-5398-454a-9251-d7ac12053302.jpg" alt="" /></figure><p>При
использовании флага <b><i>-h</i></b> с <b><i>-l</i></b> размер файлов будет отображаться
в более привычном формате (кБ, МБ и т.д.):</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/5c673e57-5688-449e-af74-e5720f13284b.jpg" alt="" /></figure><p>Флаг
<b><i>-R</i></b>
позволяет рекурсивно просматривать содержимое подкаталогов:</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/77c4bc67-35ea-4831-b613-0674a1620dad.jpg" alt="" /></figure><h2>pwd</h2><p>Команда
<b><i>pwd</i></b>
(от "print working directory", вывести рабочий каталог) — это
утилита, которая выводит полный путь к текущему рабочему каталогу. Она особенно
полезна для определения местоположения в файловой системе, когда выполняется
работа в командной строке.</p><p>Когда
вы используете команду <b><i>pwd</i></b>, она возвращает полный
абсолютный путь к директории, в которой вы находитесь в данный момент.</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/979f1eb7-f187-49f9-aeb1-e2bc70642f6a.jpg" alt="" /></figure><p>Команда
всегда выводит полный путь, начиная с корневого каталога. Это помогает точно
определить текущее местоположение в файловой системе.<b> </b></p><h2>cd</h2><p>Команда
<b><i>cd</i></b>
(от "change directory", смена каталога) — одна из базовых команд,
которая используется для перемещения между директориями в файловой системе.</p><p>Чтобы
перейти в определенный каталог, необходимо указать его путь:</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/810bfd8b-ed5e-4a6b-a223-654ef42dfd30.jpg" alt="" /></figure><p>Домашний
каталог пользователя — это каталог, в котором пользователь находится при первом
входе в систему. Чтобы вернуться в него, достаточно просто ввести команду <b><i>cd</i></b>
без аргументов или <b><i>cd ~</i></b></p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/5ac67a7e-81de-4725-a62c-9fc795c36862.jpg" alt="" /></figure><p>Чтобы
вернуться на один уровень выше в иерархии каталогов, применяется команда <b><i>cd ..</i></b></p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/bc6309f9-bdd7-4c8d-a99c-7a85ffeb7aeb.jpg" alt="" /></figure><h2>mkdir</h2><p>Команда
<b><i>mkdir</i></b>
(от "make directory", создание каталога) — это утилита для создания
новых директорий в файловой системе.</p><p>Основная
задача команды — создать новый каталог по указанному пути. Например:</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/4b591262-8e49-496d-81d7-5e56cf538189.jpg" alt="" /></figure><p>Можно
создать сразу несколько каталогов, передав их имена через пробел:</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/b6a18055-962a-4c75-84a9-c26325185715.jpg" alt="" /></figure><p>Если
нужно создать вложенную структуру директорий, а родительские каталоги еще не
существуют, флаг <b><i>-p</i></b> создаст их автоматически:</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/0b2c1e46-a646-4919-b94b-63992abc4850.jpg" alt="" /></figure><h2>rm</h2><p>Команда
<b><i>rm</i></b>
(от "remove", удалить) — это утилита, которая используется для
удаления файлов и директорий. Команда представляет собой мощный инструмент, при
неосторожном использовании которого можно случайно уничтожить важные файлы без
возможности восстановления.</p><p>Для
удаления файла просто укажите его имя:</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/81ccd1fa-f169-4740-85fd-83156030a98e.jpg" alt="" /></figure><p>Вы
можете удалить несколько файлов сразу, передав их имена через пробел. Для
удаления пустого каталога используют флаг <b><i>-d</i></b> или отдельную утилиту <b><i>rmdir</i></b>:</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/7609c74f-e9e4-4fbc-af59-14623c1dc03b.jpg" alt="" /></figure><p>Для
удаления директории с ее содержимым (файлы и подкаталоги) необходимо
использовать флаг <b><i>-r</i></b> (рекурсивное удаление).</p><p>Флаг
<b><i>-f</i></b>
(force) позволяет удалять файлы и директории без запроса на подтверждение, даже
если у них установлены ограничения доступа:<b></b></p><p><b><i>rm</i></b><b><i> -</i></b><b><i>rf</i></b><b><i> </i></b><b><i>directory</i></b><b><i>_</i></b><b><i>name</i></b><b><i></i></b></p><p><i>Использовать
эту команду надо крайне осторожно, так как она удаляет все файлы и каталоги без
предупреждений.</i></p><p>Если
вы хотите, чтобы система запрашивала подтверждение перед удалением каждого
файла, используйте флаг <b><i>-i</i></b>:</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/34c15808-4f61-4391-a41e-6700e4c8f381.jpg" alt="" /></figure><h2>which</h2><p>Команда
<b><i>which</i></b>
(от англ. который, чей) используется для поиска
местоположения исполняемых файлов команд. Она выводит путь к файлу, который
будет выполнен. Это полезно для выяснения того, где находятся программы или
скрипты и какой из нескольких возможных вариантов будет запущен.</p><p>Команда
<b><i>which</i></b>
ищет исполняемый файл команды в каталогах, перечисленных в переменной окружения
PATH (о ней — позже). Например:</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/9b9d831f-5095-477e-a4bd-fc00f38027e3.jpg" alt="" /></figure><p>Если
одна и та же команда существует в нескольких местах, можно использовать опцию <b><i>-a</i></b>,
чтобы отобразить все ее
возможные местоположения:</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/fe5b0fcb-304a-4b86-b6ef-6c06cd0c0ff6.jpg" alt="" /></figure><p>Команда
<b><i>which</i></b>
показывает только те команды, которые находятся в каталогах, указанных в
переменной окружения PATH. Если команда существует в другом каталоге, который
не указан в PATH, <b><i>which</i></b> ее не найдет.</p><h2>whoami, id</h2><p>Команда
<b><i>whoami</i></b>
(от англ. "who am i" — кто я) выводит имя пользователя, под которым в
данный момент выполняется сессия. Это полезно, чтобы узнать, под каким
пользователем запущена текущая сессия, особенно, если были выполнены команды
для смены пользователя.</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/f520cb33-7c8c-4385-adbb-8c138a64abf2.png" alt="" /></figure><p>Команда
<b><i>id</i></b>
используется для отображения информации о пользователе, включая идентификатор
пользователя (UID), идентификатор группы (GID), а также список всех групп, к
которым принадлежит пользователь.</p><p>При
выполнении команды <b><i>id</i></b> без опций выводится информация о текущем пользователе.</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/43014e93-b9e2-4bd0-93db-c887914756b3.jpg" alt="" /></figure><p>Можно
передать имя пользователя как аргумент, чтобы получить информацию о другом
пользователе:</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/aff7f30f-488f-47b6-8ad2-5677afcf910a.jpg" alt="" /></figure><h2>locate</h2><p>Команда
<b><i>locate</i></b>
(локация) используется для быстрого поиска файлов и каталогов в файловой
системе. Она работает на основе предварительно созданной базы данных, которая
содержит информацию о расположении файлов на диске.</p><p>Команда
имеет простой синтаксис:</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/f4255544-febe-4ceb-9707-358804b0161c.jpg" alt="" /></figure><p>Поиск
не зависит от регистра, т.е. команда <b><i>locate myfile</i></b> найдет файлы как с
именем myfile, так и с именами MyFile, MYFILE и т.д.</p><p>Можно
использовать опции для фильтрации результатов. Например, <b><i>-i</i></b> для игнорирования
регистра или <b><i>-r</i></b> для регулярных выражений.</p><p>Для
обновления базы данных используется команда <b><i>updatedb</i></b>, которая обычно
выполняется по расписанию с помощью <b><i>cron</i></b>, однако вы можете запустить ее
вручную, если хотите получить свежие данные.</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/b80d151f-0c32-4a6a-987c-292a360d4820.jpg" alt="" /></figure><h2>find</h2><p>Команда
<b><i>find</i></b>
(найти) используется для поиска файлов и каталогов в файловой системе с учетом
различных критериев. Она более мощная и гибкая, чем <b><i>locate</i></b>, но может работать
медленнее, так как выполняет поиск в реальном времени.</p><p><b><i>find</i></b> позволяет использовать
различные критерии для поиска, такие как имя файла, тип, размер, дата
модификации и права доступа.</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/306959f6-3b53-40bb-9247-725cf1af9cb9.jpg" alt="" /></figure><p>Также
можно искать файлы, каталоги, символьные ссылки и т.д. с помощью опции <b><i>-type</i></b>:</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/f9b658b7-ce92-4f1c-bf74-443c687af256.jpg" alt="" /></figure><p><b>Примеры использования:</b></p><p>●      поиск файла по имени:<i> <b>find
/path/to/search -name "filename"</b></i>;</p><p>●     
поиск
всех текстовых файлов: <b><i>find . -type f -name "*.txt"</i></b>;</p><p>●     
поиск
файлов, измененных за последние семь
дней: <b><i>find /path/to/search -mtime -7</i></b>.</p><h2>grep</h2><p>Команда
<b><i>grep</i></b>
(от "Global regular expression print" — вывод глобальных
регулярных выражений) в Linux используется для поиска текстовых строк,
соответствующих заданному шаблону, в файлах или входных данных. Это один из
самых мощных инструментов для обработки текста и анализа данных.</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/8afb5925-367a-4861-bf49-d0b716f05ecd.jpg" alt="" /></figure><p>С
помощью опции <b><i>-i</i></b> можно игнорировать регистр при поиске:</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/6e181712-5cfe-44eb-b174-8e84a693c486.jpg" alt="" /></figure><p>Опция
<b><i>-n</i></b>
выводит номера строк, в которых найден шаблон:</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/0c463384-f3e3-430d-ad5b-e4cea4e0958b.jpg" alt="" /></figure><p>Опция
<b><i>-r</i></b>
позволяет искать в подкаталогах.</p><p><b>grep</b> поддерживает регулярные выражения,
что позволяет создавать сложные шаблоны. Например, <b><i>grep "^abc"</i></b>
ищет строки, начинающиеся с "abc".</p><h2>sudo</h2><p>Команда
<b><i>sudo</i></b>
(от англ. "substitute user and do" — подменить пользователя и
выполнить) в Linux используется для выполнения команд с привилегиями
суперпользователя (root) или других пользователей, заданных в конфигурационном
файле<i> <b>/etc/sudoers</b></i>. Это позволяет пользователям выполнять
административные задачи, не входя в систему как root.</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/65031521-748b-4abd-8f39-98df40c7b7be.jpg" alt="" /></figure><p>При
первом использовании <b><i>sudo</i></b> в сессии пользователю будет
предложено ввести свой пароль для подтверждения прав.</p><p>Конфигурация
доступа для пользователей и групп определяется в файле <b><i>/etc/sudoers</i></b><i>.</i> Можно задать, какие команды может
выполнять конкретный пользователь или группа. <b><i>sudo</i></b> записывает все
выполненные команды и их результаты в системные журналы, что помогает
отслеживать действия пользователей с повышенными правами.</p><p><b>Опции:</b></p><p>●     
<b><i>-u</i></b> — позволяет указать, от
имени какого пользователя выполнять команду;</p><p>●     
<b><i>-i</i></b> — запускает командную
оболочку с правами root, аналогично входу в качестве root;</p><p>●     
<b><i>-s</i></b> — запускает командную
оболочку с сохранением текущих переменных окружения.</p><h2>su</h2><p>Команда
<b><i>su
</i></b>(от англ. "substitute user" — подменить пользователя)
предназначена для смены пользователя в командной строке. Обычно она
используется для входа в систему в качестве суперпользователя (root) или для
перехода на другого пользователя без выхода из текущей сессии. При
использовании <b><i>su</i></b> для переключения на другого пользователя (особенно на root)
потребуется ввести пароль этого пользователя.</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/97349b34-9be6-4d1c-b6fe-046f7b3a5d7f.jpg" alt="" /></figure><p>Можно
использовать <b><i>su</i></b> для выполнения одной команды от имени другого пользователя,
добавив параметр -c.</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/f79404b4-ee8c-4128-85c6-95c10643eee2.jpg" alt="" /></figure><h2>sed</h2><p>Команда
<b><i>sed</i></b>
(от "stream editor", редактор потоков) в Linux используется для
обработки и трансформации текстовых данных в потоковом режиме. Она особенно
полезна для выполнения автоматических замен, редактирования и фильтрации
текстовых файлов.</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/a01c9fa2-53f0-4c94-a5b4-97fff5e9a67a.jpg" alt="" /></figure><p>Можно
использовать несколько команд, разделяя их точкой с запятой:</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/43f96462-904f-4dbd-88c0-9d06bbf7d2cf.jpg" alt="" /></figure><p>Можно
выполнять действия только на определенных строках, используя адресацию.
Например, чтобы заменить текст только на строке 2:</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/b4dad7c2-1954-45ff-a2fa-ae228c1169d6.jpg" alt="" /></figure><p><b>Примеры использования</b></p><p>●      замена текста в файле:
<b><i>sed
's/apple/orange/g' fruits.txt</i></b>;</p><p>●     
замена
текста только в первых 10 строках: <b><i>sed '1,10s/old/new/g' filename.txt</i></b>;</p><p>●     
удаление
пустых строк: <b><i>sed '/^$/d' filename.txt</i></b>.</p><h2>cut</h2><p>Команда
<b><i>cut</i></b>
(вырезать) используется для извлечения определенных частей текста из строк
файла или стандартного ввода. Она полезна для работы с табличными данными, где
информация структурирована в виде строк и столбцов.</p><p><b>Опции</b></p><p>●     
<b><i>-d</i></b><b>
</b>— задает
разделитель (по умолчанию — символ табуляции). Например, для запятой: <b><i>-d</i></b>
“ <b><i>,</i></b>”;</p><p>●     
<b><i>-f</i></b> — указывает, какие поля
извлекать. Можно указать одно поле, несколько полей или диапазон, например: <b><i>-f 2</i></b>;</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/9d581843-f4c1-4150-a80f-6a54f25030f4.jpg" alt="" /></figure><p>В
данном случае наш разделитель «пробел», и мы извлекаем данные <b><i>2</i></b>
между первым и вторым пробелами.</p><p>●     
<b><i>-c</i></b> — извлечение символов по
позициям. Например, для извлечения первых пяти
символов: <b><i>-c 1-5</i></b>.</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/bf254233-2fca-49b0-8d12-b4b7a4874a67.jpg" alt="" /></figure><h2>awk</h2><p><b><i>awk</i></b> (первые буквы фамилий
разработчиков языка: Aho, Weinberger, Kerninghan) — это утилита в Linux,
используемая для обработки текстовых данных и автоматизации задач, связанных с
анализом и формированием текстов. <b><i>awk</i></b> часто применяется для работы с
табличными данными, где информация представлена в виде строк и столбцов.</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/e6f03580-2890-4411-aec0-6795b5bd32de.jpg" alt="" /></figure><p><b><i>awk</i></b> поддерживает регулярные
выражения, что позволяет отфильтровать строки по шаблону. Имеет несколько
встроенных переменных, таких как NR (номер текущей строки) и NF (количество
полей в текущей строке).</p><p>С
помощью функции <b><i>printf</i></b> можно форматировать вывод так же, как в языке C.</p><p>Вывод
первого и третьего полей каждой строки: <b><i>awk '{print $1, $3}' filename.txt</i></b></p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/7a9f3b97-47d8-4076-83bf-2e5e65500a07.jpg" alt="" /></figure><p><b><i>awk '{printf "Field1: %s, Field2: %s\n", $1, $2}' filename.txt</i></b></p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/c54e5db7-c24a-430a-8a49-f47d4fbced18.jpg" alt="" /></figure><p><b><i>awk</i></b> — мощный инструмент для
текстовой обработки в Linux, позволяющий выполнять сложные операции с данными,
анализировать текстовые файлы и генерировать отчеты.</p><h2>comm</h2><p>Команда
<b><i>comm</i></b>
(от англ. "comparison" — сравнение) в Linux используется для
сравнения двух отсортированных файлов построчно. Она показывает строки, которые
уникальны для каждого из файлов, а также строки, которые присутствуют в обоих
файлах. Это полезно для анализа различий и сходств между двумя текстовыми
файлами.</p><p><b><i>comm</i></b> принимает два
отсортированных файла и выводит три колонки:</p><ol><li>строки, уникальные для первого
     файла;</li><li>строки, уникальные для второго
     файла;</li><li>строки, общие для обоих
     файлов.</li></ol><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/6367be73-c704-4300-bf79-b7d65238a3f9.jpg" alt="" /></figure><p><b>Опции:</b></p><p>●     
<b><i>-1</i></b> — не выводить первую
колонку (уникальные строки первого файла);</p><p>●     
<b><i>-2</i></b> — не выводить вторую
колонку (уникальные строки второго файла);</p><p>●     
<b><i>-3</i></b> — не выводить третью
колонку (общие строки);</p><p>●     
<b><i>-i</i></b> — игнорировать регистр при
сравнении строк.</p><p>Вывод
только уникальных строк первого и второго файлов:</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/dfdf7bf0-2498-40c4-96ba-6a277051c83a.jpg" alt="" /></figure><h2>diff</h2><p>Команда
<b><i>diff</i></b>
(от англ. "difference" — разница) используется для сравнения файлов и
отображения различий между ними. Она может сравнивать как текстовые файлы, так
и каталоги. Предоставляет информацию о том, какие строки были добавлены,
удалены или изменены.</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/b6037071-0dba-40f1-98d2-833410e1fcfc.jpg" alt="" /></figure><p>Для
сравнения с контекстом используется ключ <b><i>-c</i></b>:</p><figure><img src="https://media.tproger.ru/user-uploads/115164/2025-12-29/47957c3f-2ee2-43c2-80cf-91dd1a371948.jpg" alt="" /></figure><p>Мы изучили
только половину
команд, широко применяемых в Linux. Остальные мы рассмотрим
следующей части раздела про командную строку, там же будет и домашнее задание
по теме. Следите за следующими публикациями и задавайте вопросы в
комментариях.</p>]]></content:encoded>
    </item>
    <item>
      <title>Война с False Positive: как мы заставили антивирус извиниться перед нашим стартапом</title>
      <link>https://tproger.ru/articles/vojna-s-false-positive--kak-my-zastavili-antivirus-izvinitsya-pered-nawim-startapom</link>
      <comments>https://tproger.ru/articles/vojna-s-false-positive--kak-my-zastavili-antivirus-izvinitsya-pered-nawim-startapom?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Регион 3D]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/vojna-s-false-positive--kak-my-zastavili-antivirus-izvinitsya-pered-nawim-startapom</guid>
      <description><![CDATA[<p>Выпустили приложение, а его объявили вирусом? История сибирского стартапа GPSki о том, как оспорить ложное срабатывание антивируса с RuStore и APK на руках. Чек-лист внутри.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/vojna-s-false-positive--kak-my-zastavili-antivirus-izvinitsya-pered-nawim-startapom">Война с False Positive: как мы заставили антивирус извиниться перед нашим стартапом</a>»</p>]]></description>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Стартапы]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 18 Dec 2025 14:10:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Выпустили соцпроект для безопасности в офлайне, а через две недели его объявили вирусом в приложении на миллионах устройств. Рассказываем, почему мы не стали ругаться в соцсетях и как за пару дней добились официального «ой, сорян».</p><p>Мы из Красноярска (да, из Сибири). Пару месяцев назад по просьбе спасателей сделали GPSki  — приложение, чтобы обмениваться геокоординатами через SMS там, где нет  интернета. P2P, никаких серверов для слежки, всё честно. Запустились в  RuStore, получили первые позитивные отзывы и… тут началось.</p><h2>Блок 1: Атака ложноположительных</h2><p>В один день пользователи завалили нас скриншотами. Встроенный сканер «СберБанк Онлайн» с дикой серьёзностью писал, что наше безобидное приложение — это…</p><p>… и его срочно нужно удалить.</p><p>Наступила классическая пятиминутка паники:</p><ul><li>Репутация проекта, который мы выстраивали, пошла крахом.</li><li>Пользователи в ужасе удаляли приложение.</li><li>Поддержка захлебнулась.</li></ul><p>Первым делом связались со Сбером. Их поддержка вежливо сообщила, что используют базы «Лаборатории Касперского». Стало ясно: ругаться с банком бессмысленно, надо идти к источнику сигнала.</p><h2>Блок 2: Тактика: не скандалить, а забросать фактами</h2><p>Да,  можно было громко трясти статьёй 152 ГК РФ о защите репутации. Но мы  решили, что быстрее и эффективнее будет поговорить с инженерами на их  языке.</p><p>Мы собрали не письмо с эмоциями, а полное техническое досье:</p><ol><li>APK-файлы текущей и новой версий.</li><li>Видеозапись экрана, где чётко видно ложное срабатывание — железобетонный proof.</li><li>Подробное описание логики работы: зачем нужны разрешения на SMS, как мы обеспечиваем приватность (читаем только сообщения с особой меткой).</li><li>Ссылка на RuStore как главный аргумент легитимности.</li></ol><p>Отправили этот пакет через форму поддержки Касперского с запросом на проверку False Positive.</p><h2>Блок 3: Развязка и чек-лист для таких же как мы</h2><p>Через несколько дней пришёл ответ. Короткий и ясный:</p><blockquote>Это было ошибочное срабатывание. Оно будет исправлено.</blockquote><p>Вот и всё. С этим ответом мы вернулись к диалогу со Сбером.</p><p>Итоговый чек-лист, который сэкономит вам нервы:</p><h2>Итог</h2><p>Этот  опыт не сломал нас, а закалил. Он показал, что можно отстоять свой  проект, даже будучи маленькой командой, если действовать не на эмоциях, а  с холодной головой и полным паком документов.</p><p>P.S.  Респект аналитикам «Лаборатории Касперского» за оперативный и честный  разбор. И огромное спасибо нашим пользователям, которые не стали молча  удалять приложение, а написали нам.</p>]]></content:encoded>
    </item>
    <item>
      <title>Исследование: 90% кода, написанного с вайб-кодингом, содержит уязвимости</title>
      <link>https://tproger.ru/news/issledovanie--90--rewenij-s-ispolzovaniem-vajb-kodinga-soderzhat-uyazvimosti</link>
      <comments>https://tproger.ru/news/issledovanie--90--rewenij-s-ispolzovaniem-vajb-kodinga-soderzhat-uyazvimosti?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/issledovanie--90--rewenij-s-ispolzovaniem-vajb-kodinga-soderzhat-uyazvimosti</guid>
      <description><![CDATA[<p>Исследование показало, что 90% кода, созданного через вайб-кодинг, содержит уязвимости. Даже если функции проходят тесты</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/issledovanie--90--rewenij-s-ispolzovaniem-vajb-kodinga-soderzhat-uyazvimosti">Исследование: 90% кода, написанного с вайб-кодингом, содержит уязвимости</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Безопасный код]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 09 Dec 2025 06:18:16 GMT</pubDate>
      <content:encoded><![CDATA[<p>По данным недавнего опроса, 75% разработчиков так или иначе используют вайб-кодинг. А многие компании — включая Anthropic — открыто говорят, что применяют его «в проде».</p><p>Но вместе с ростом популярности подхода, возник и главный вопрос: <b>насколько безопасен код, который генерирует ИИ-агент</b>?</p><h2>Исследование показало: функционально — да, безопасно — нет</h2><p>Ученые из <i>Carnegie Mellon</i>, <i>Columbia</i> и <i>Johns Hopkins</i> <a href="https://arxiv.org/pdf/2512.03262">выпустили</a> первое крупное исследование безопасности вайб-кодинга.</p><p>Они создали собственный бенчмарк <b>SUSVIBES</b>, состоящий из <b>200 настоящих задач с GitHub-проектов</b>, где ранее были реальные уязвимости (77 видов CWE).</p><p>Каждая задача требует внедрения фичи в живой репозиторий размером в сотни тысяч строк. Это максимально приближено к реальной работе.</p><p>Далее они протестировали популярных агентов: <b>SWE-Agent</b>, <b>OpenHands</b> и <b>Claude Code</b>. Все они использовали самые свежие ИИ-модели вроде <b>Claude 4 Sonnet</b>, <b>Gemini 2.5 Pro </b>и <b>Kimi K2</b>.</p><p>Результаты оказались тревожными:</p><ul><li><b>61%</b> решений от лучшей связки (SWE-Agent + Claude 4 Sonnet) — функционально корректны.</li><li>Но только <b>10,5%</b> — безопасны.</li><li>Иными словами: около <b>90%</b> рабочего кода, который агент считает «готовым», содержит уязвимости.</li></ul><p>Аналогичная картина у всех других агентов и моделей: большинство результатов проходят функциональные тесты, но сыпятся на тестах безопасности.</p><h2>Какие уязвимости генерируют ИИ-агенты</h2><p>Исследователи обнаружили весь спектр проблем:</p><ul><li>утечки данных и неправильная обработка паролей;</li><li>XSS и небезопасные URL-редиректы;</li><li>ошибки верификации сессий;</li><li>тайминг-атаки;</li><li>отсутствие проверки входных данных.</li></ul><p>Что характерно, в реальных задачах агенты часто пишут код, который выглядит вполне логично. Но они все же упускают один-два критичных условия, создавая легко эксплуатируемые уязвимости.</p><p>На визуальных примерах в исследовании видно, что даже маленькие фрагменты вроде verify_password или URL-редиректа превращаются в брешь безопасности, если агент пропускает один шаг — например, нормализацию данных или сравнение времени выполнения.</p><h2>Вывод</h2><p>Исследователи подчеркивают: вайб-кодинг полезен для увеличения продуктивности, но <b>категорически непригоден без ручного ревью безопасности</b>.</p><p>Особенно это касается тех проектов, которые работают с данными пользователей, авторизацией, сессиями, API или любыми критичными процессами.</p><p>ИИ-агент может написать фичу, пройти тесты и выглядеть уверенно. Но с вероятностью около 80–90% там останется дыра, которая в реальной среде превратится в эксплойт.</p>]]></content:encoded>
    </item>
    <item>
      <title>За бугром: Что с приватностью данных в США?</title>
      <link>https://tproger.ru/articles/chto-dalwe-s-nawej-privatnostyu-</link>
      <comments>https://tproger.ru/articles/chto-dalwe-s-nawej-privatnostyu-?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Валерия Турчак]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/chto-dalwe-s-nawej-privatnostyu-</guid>
      <description><![CDATA[<p>Как государство, корпорации и нейросети соревнуются за наши данные — и какие решения могут всё изменить в 2025 году.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/chto-dalwe-s-nawej-privatnostyu-">За бугром: Что с приватностью данных в США?</a>»</p>]]></description>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Утечка данных]]></category>
      <category><![CDATA[Илон Маск]]></category>
      <category><![CDATA[Персональные данные]]></category>
      <category><![CDATA[Мемы]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 03 Nov 2025 14:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Перевод и адаптация материала <a href="https://www.technologyreview.com/2025/01/07/1109301/privacy-protection-data-brokers-personal-information/">MIT Technology Review</a> специально для Тпрогер.</p><p>США до сих пор живут без единого федерального закона о защите персональных данных. Но в 2024–2025 годах появились первые реальные шаги: регуляторы начали штрафовать брокеров, торгующих локацией пользователей, а штаты принимают собственные законы.</p><p>Разбираем, что происходит с приватностью, кто на самом деле зарабатывает на наших данных — и почему новая волна ИИ делает вопрос личной информации критическим.</p><h2>Начнем с того, что есть сейчас</h2><p>Каждый день нас отслеживают сотни, а то и тысячи раз — буквально на каждом шагу в цифровом мире.</p><p>Куки и трекеры фиксируют каждое нажатие ссылки, каждое перемещение мыши на сайте. В смартфонах — встроенные модули аналитики: <b>они передают разработчикам и рекламным сетям наши координаты, перемещения, время посещения мест.</b> В итоге — данные о нашем поведении и локации объединяются с другими источниками: госреестрами, программами лояльности, утечками из коммунальных сервисов и т.п.</p><p>Всё это превращается в детальные досье — персонализированные профили, которые можно покупать и продавать. И чаще всего — без нашего участия и согласия.</p><h2>Почему это важно</h2><p>В США растёт консенсус: людям нужны реальные механизмы защиты персональных данных. И единственный способ это обеспечить — <b>принять единый федеральный закон о приватности.</b></p><p>На бумаге такой закон уже существует — <b>American Privacy Rights Act of 2024</b><i>.</i> Он должен был стать первым крупным прорывом в этой сфере, но… по мере согласований документ настолько упростили, что в итоге он потерял поддержку и республиканцев, и демократов — так и не дойдя до голосования в Конгрессе.</p><p>Если бы Россия шла тем же путём, это было бы примерно как принять аналог GDPR, но потом прописать столько исключений, что его можно не соблюдать вовсе. Так и случилось с американским законом: пока обсуждают, кто должен отвечать за защиту данных — компании, пользователи или государство — данные продолжают утекать и продаваться.</p><h2>Кто торгует нашими данными — и почему это всё ещё законно</h2><p>За последние месяцы в США появились первые подвижки — пусть и локальные. <b>Государственные регуляторы начали ограничивать возможности дата-брокеров</b> — третьих компаний, которые собирают и перепродают личные данные: от истории покупок до геолокации.</p><p>Например, в декабре Федеральная торговая комиссия (FTC) заключила соглашения с двумя такими брокерами — Mobilewalla и Gravy Analytics (включая дочернюю Venntel). Проверка показала, что эти <b>компании продавали информацию о местоположении пользователей, включая координаты больниц, церквей и даже военных баз, — без какого-либо согласия</b>. Теперь им запретили перепродавать подобные данные, за редким исключением.</p><p>Это стало продолжением целой серии дел: в 2024 году FTC уже несколько раз штрафовала брокеров за торговлю геоданными, а Минюст предложил запретить продажу «оптом» таких данных иностранным компаниям.</p><p>В тот же день, когда FTC объявила о сделках, другое ведомство — Бюро финансовой защиты потребителей (CFPB) — <b>предложило приравнять дата-брокеров к статусу кредитных бюро.</b> Если эта норма вступит в силу, брокеры будут обязаны раскрывать источники и цели сбора данных, а также соблюдать те же стандарты отчётности и защиты, что и банки.</p><p>То есть им запретят собирать или передавать чувствительную информацию — например, зарплаты или номера соцстрахования — без законных оснований.</p><p>Правда, документу ещё предстоит пройти 90-дневное общественное обсуждение, а судьба его неясна — <b>новая администрация Трампа может заблокировать процесс.</b> Если же норму всё же утвердят, это способно серьёзно ограничить всю индустрию торговли данными.</p><h2>Сколько вообще таких компаний?</h2><p>Никто не знает точно. <b>Эксперты оценивают, что в мире работает от 4 до 5 тысяч дата брокеров</b> — причём названия и структуры этих компаний постоянно меняются.</p><p>В одной только Калифорнии официальный реестр 2024 года насчитывает 527 зарегистрированных брокеров, из которых около 90 признались, что собирают геолокационные данные.</p><p><b>И все эти данные можно купить.</b></p><p>Рекламодатели — для таргетинга, банки и страховщики — для оценки рисков и поиска мошенников, правоохранительные органы — для отслеживания людей без судебных ордеров.</p><p>Даже иностранные структуры спокойно покупают сведения о военных или госслужащих США.</p><p>А на сайтах по поиску людей можно заплатить и получить контакты и подробности практически о любом.</p><h2>Анонимизация, которой никто не верит</h2><p>Брокеры и их клиенты утверждают, что всё безопасно: мол, данные анонимизируются. Но с геолокацией это почти невозможно — по совокупности точек на карте можно легко понять, где человек живет и где работает. <b>Любая обезличенная информация становится узнаваемой, если её сопоставить с другими базами.</b></p><p>Вспомните продажу баз автономеров или данных из Delivery Club. Формально все обезличены, но на практике всегда можно восстановить личность по нескольким косвенным признакам. Американская проблема — та же, только в масштабе континента.</p><h2>Как государство пытается изменить индустрию данных</h2><p>Защитники цифровых прав уже много лет бьют тревогу — индустрия торговли данными остаётся почти неконтролируемой. Особенно остро <b>это бьёт по уязвимым группам: мигрантам, женщинам, людям с ограниченными возможностями.</b> Но недовольство сбором данных объединяет и левых, и правых: теперь тревожатся даже те, кто раньше считал приватность либеральной игрушкой.</p><p>Например, конгрессвумен-республиканка <b>Кэти Макморрис Роджерс,</b> глава комитета по энергетике и торговле, возмущалась тем, что Центры по контролю заболеваний (CDC) покупали данные о передвижениях граждан, чтобы анализировать эффективность локдаунов во время пандемии.</p><h2>Суд, который перевернул разговор о приватности</h2><p>Но настоящая встряска для Вашингтона произошла после решения Верховного суда по делу <b>Dobbs v. Jackson Women's Health Organization (2022)</b>, которое отменило конституционное право на аборт.</p><p><b>Эта история стала точкой перегиба: </b>данные о посещении клиники, о поездках в другой штат или даже просто маршруты по городу — вдруг превратились в улики. Прокуратуры начали использовать такую информацию, чтобы расследовать дела, связанные с абортами, особенно в тех штатах, где они запрещены.</p><p><b>Реакция последовала быстро. </b>Президент Джо Байден подписал исполнительный указ о защите доступа к репродуктивной медицине.</p><p>Документ поручил Федеральной торговой комиссии (FTC) разработать меры, которые не позволили бы компаниям передавать данные о посещениях медицинских учреждений и аборт-клиник в руки правоохранительных органов или прокуроров.</p><h2>Новая администрация и угроза отката регулирования</h2><p>С января 2025 года в Белом доме снова Дональд Трамп, а обе палаты Конгресса переходят под контроль республиканцев.</p><p>Это значит, что судьба всех инициатив по защите данных — под вопросом. В частности, CFPB (Бюро финансовой защиты потребителей), которое предложило приравнять дата брокеров к кредитным бюро, может просто перестать существовать.</p><h3>Республиканцы давно недолюбливают CFPB</h3><p>Среди тех, кто призывает удалить бюро, — люди из проекта <b>Project 2025, а также Илон Маск</b>, назначенный Трампом главой нового консультативного органа с ироничным названием — Department of Government Efficiency (Департамент эффективности правительства).</p><p>Формально для ликвидации CFPB потребуется закон Конгресса, что вряд ли произойдёт быстро. Но есть и другой путь — Трамп, скорее всего, уволит нынешнего директора и поставит лояльного республиканца, который сможет отменять существующие правила и блокировать новые инициативы.</p><h3>FTC — беззубый регулятор?</h3><p>То же самое может коснуться и Федеральной торговой комиссии (FTC). Как объясняет Бен Уинтерс, бывший сотрудник Минюста и директор направления ИИ и приватности в Consumer Federation of America, решения FTC сами по себе не создают прецедента, как судебные.</p><p>Чтобы индустрия реально испугалась, нужны постоянные и последовательные проверки — иначе компании быстро поймут, что можно проскочить.</p><p>Кроме того, нынешние дела FTC касаются в основном геолокационных данных — а ведь это только малая часть всего, что собирают и перепродают брокеры.</p><h3>Что будет после ухода Лины Хан</h3><p>Ключевая фигура последних лет — <b>Лина Хан, нынешняя глава FTC</b>, — уже подтвердила, что покидает пост. Она стала символом нового курса в защите приватности: именно при ней комиссия начала впервые бить по брокерам, а не по мелким сайтам.</p><p>Её сменит <b>Эндрю Фергюсон</b>, выбранный Трампом новый председатель FTC.</p><p>Фергюсон известен тем, что критиковал дата-брокеров, называя торговлю геолокацией «вторжением в личную жизнь в самой прямой форме». Но у него есть оговорка: Фергюсон против того, чтобы FTC заменяла собой Конгресс. То есть он не хочет, чтобы ведомство издавало квази-законы вместо законодателей.</p><p>А значит — если Конгресс не примет федеральный закон о приватности (а пока всё к этому идёт) — реальных изменений может не быть.</p><p>Американская регуляторика устроена сложно: без закона от Конгресса даже самые жёсткие действия FTC легко отменяются следующей администрацией. Если регулятор не закреплён на уровне закона, он просто исчезает при смене политического ветра. Сейчас именно это происходит с CFPB и, возможно, с FTC.</p><h2>Когда федеральный закон не работает — штаты берут всё в свои руки</h2><p>Пока Конгресс буксует с федеральным законом о приватности, отдельные штаты начали выстраивать собственные правила игры.</p><p>И этот процесс уже стал массовым.<b> В 2025 году в силу вступают восемь новых законов о защите данных</b> — и общее их количество по стране достигнет 25.</p><p>Ещё несколько штатов, включая Вермонт и Массачусетс, готовят свои варианты на следующий год.</p><blockquote>Пока все законы примерно похожи — их можно соблюдать без катастрофических затрат. Но если хотя бы один штат примет достаточно отличающуюся норму, бизнес просто не выдержит — и тогда федеральный закон станет неизбежным способом упростить жизнь компаниям</blockquote><h3>Регистрация дата-брокеров и первые реальные проверки</h3><p>Некоторые штаты уже пошли дальше общих принципов и приняли специальные законы о брокерах данных.</p><p>Так, <b>Калифорния, Техас, Вермонт и Орегон</b> требуют, чтобы все компании, торгующие личной информацией, <b>регистрировались в государственном реестре.</b></p><p>Это позволяет хотя бы понять масштаб индустрии и формально ограничить продажу самых чувствительных категорий данных.</p><h2>Сбор данных под предлогом безопасности</h2><p>Тема приватности в США давно перестала быть чисто либеральной. Теперь о ней говорят и республиканцы — но с другой стороны: их больше волнует не слежка за гражданами, а утечки данных военнослужащих и чиновников, которые могут использовать иностранные разведки.</p><h3>Когда государство покупает данные у бизнеса</h3><p>Многие брокеры, включая Venntel (дочку Gravy Analytics, которую недавно наказала FTC), уже <b>продавали геолокационные данные иммиграционным и пограничным службам</b> — ICE и CBP.</p><p>Эти данные <b>использовались для отслеживания и депортации людей</b>, минуя местные законы, запрещающие полиции сотрудничать с федеральными иммиграционными агентствами.</p><p>Фактически, власти <b>просто покупают данные, которые им нельзя было бы получить по ордеру</b>, — и таким образом обходят конституционные гарантии.</p><h2>Закон, который может всё изменить</h2><p>ACLU и другие правозащитные организации уже несколько лет продвигают законопроект под названием The Fourth Amendment Is Not For Sale Act — в переводе "Четвёртая поправка не продаётся".</p><p>Он закрывает движение для дата-брокеров, которое позволяет <b>силовикам покупать личные данные у частных компаний без судебного ордера</b>.</p><p>Если закон примут, государство больше не сможет обходить требования Конституции, просто оплачивая доступ к базам.</p><p>В апреле 2024 года этот законопроект прошёл Палату представителей — его поддержали 123 республиканца и 93 демократа — но он застрял в Сенате. ACLU надеятся, что новый Конгресс всё же доведёт дело до конца, но многие эксперты настроены пессимистично.</p><h2>Продавать свои данные ИИ?</h2><p>Пока юристы спорят о законах и полномочиях, технологии не ждут.</p><p>Компании, создающие модели искусственного интеллекта, продолжают собирать тонны данных — в том числе персональных — чтобы обучать нейросети. И вот парадокс: данные заканчиваются.</p><p>В идеальном мире пользователи начнут зарабатывать на своих данных — ведь если модели ИИ обучаются на нашем контенте, тексте, поведении, почему бы не получить долю?</p><p>Но на практике компании уже начали искать способы обойти законы.</p><p>Пример — сделка Reddit и Google: $60 миллионов в год за право использовать пользовательский контент Reddit для обучения моделей ИИ. То есть теперь ваши посты, комментарии и даже мемы — это сырьё для машинного обучения.</p><h3>Регуляторы пытаются реагировать</h3><p>В 2024 году FTC выпустила предупреждение для компаний: любые скрытые изменения в политике конфиденциальности, которые позволяют использовать пользовательские данные для обучения ИИ, могут быть признаны «нечестной и обманной практикой».</p><p>Но, как отмечают эксперты, всё снова упирается в людей, которые стоят у руля. Если в новом составе FTC не будет кого-то вроде Лины Хан, то даже самые жёсткие заявления останутся просто словами на сайте регулятора.</p><h2>Что ждёт приватность в 2025 году</h2><p>Ноябрь 2025-го. У них — новая администрация, новые технологии, но старая проблема: персональные данные американцев (а значит, и всех нас, чьи данные проходят через американские сервисы) по-прежнему легко купить.</p><p>Недавние решения FTC против брокеров вроде Mobilewalla и проект постановления CFPB — важные шаги вперёд. Но пока они касаются лишь узкого сегмента — геолокационных данных.</p><p>Остальная часть индустрии, от маркетинговых трекеров до ИИ-платформ, продолжает работать по принципу<b> «собирай всё, что можно».</b></p><h3>Что могут делать обычные пользователи</h3><p>В этом смысле 2025 год может стать переломным: либо мы примем, что утечка данных — нормальное состояние мира, либо начнём относиться к личной информации так же серьёзно, как к собственности.</p><p>Как минимум —</p><ul><li>проверять настройки приватности в аккаунтах и приложениях,</li><li>выключать историю геолокации,</li><li>использовать шифрованные мессенджеры (Signal, Threema, Session — альтернатива WhatsApp и Telegram для тех, кому важна анонимность),</li><li>и не соглашаться по умолчанию на сбор телеметрии или улучшение качества сервиса.</li></ul><p>Это не решит проблему системно, но даёт хоть минимальный контроль над тем, что о нас собирают.<br /></p>]]></content:encoded>
    </item>
    <item>
      <title>Как изменилась защита от DDoS-атак в 2025 году</title>
      <link>https://tproger.ru/articles/kak-izmenilas-zashhita-ot-ddos-atak-v-2025-godu</link>
      <comments>https://tproger.ru/articles/kak-izmenilas-zashhita-ot-ddos-atak-v-2025-godu?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Alex Smirnov]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-izmenilas-zashhita-ot-ddos-atak-v-2025-godu</guid>
      <description><![CDATA[<p>Узнайте, как в 2025 году изменились DDoS-атаки, почему старые методы больше не работают и какие технологии помогают защитить сайты от угроз.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-izmenilas-zashhita-ot-ddos-atak-v-2025-godu">Как изменилась защита от DDoS-атак в 2025 году</a>»</p>]]></description>
      <category><![CDATA[Безопасный код]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Информационная безопасность: веб-пентест]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 26 Oct 2025 10:00:04 GMT</pubDate>
      <content:encoded><![CDATA[<h2>Новая среда DDoS-угроз</h2><p>За последние годы атаки типа DDoS (Distributed Denial of Service) стали не просто вопросом «когда», а практически неизбежностью для многих компаний. Специалисты отмечают: «для организаций с высокой видимостью уже не вопрос если, а когда вас атакуют».</p><p><b> Главные изменения:</b></p><ul><li>Доступность инструментария «DDoS-as-a-Service» делает возможными атаки даже с небольшими знаниями.</li><li>Атаки становятся быстрее, изощреннее, и все чаще выполняются автоматически. Например, могут запустить миллионы запросов за несколько минут – и даже прежде чем мониторинг сработает.</li><li>Атакующие все чаще обходят простые фильтры: меняют URL, заголовки, куки, используют бот-сети с огромным географическим разбросом.</li><li>Рост объемов: по данным Cloudflare, крупные атаки выросли экспоненциально за последние десять лет. Например, битрейт (Gbps) вырос с сотен Gbps до 5.6 Tbps к 2025 году.</li></ul><p>Эти изменения обуславливают, почему устаревшие методы защиты уже не работают или работают слабо.</p><h2>Почему традиционные решения уступают</h2><p>Если раньше меры ограничивались фаерволами, CDN и простыми лимитами, то сегодня этого недостаточно. CDN или фаервол часто настроены по-умолчанию и дают лишь частичную защиту.</p><p>Атаки перешли с сетевого уровня на уровень приложений (Layer 7) – где они влияют на веб-сервисы и API, которые генерируют ключевой доход</p><p>Ключевые уязвимости:</p><ul><li>Блокировка по IP/ГЕО становится бессильной, когда источники атак меняются динамически.</li><li>Статические правила (лимиты, капчи) не успевают реагировать на автоматизированные, быстрые атаки.</li><li>Отслеживание только трафика без анализа поведения – позволяет атакам «проскальзывать» через кэши и защитные механизмы.</li></ul><h2>Современные подходы к защите в 2025 году</h2><p>Как должна выглядеть эффективная <a href="https://stormwall.pro/resources/blog/ddos-ataka-kak-zashchititsya">защита от DDoS</a> сегодня? Вот основные принципы:</p><ol><li><b>Многоуровневая стратегия: </b>защита должна быть на уровне edge (CDN), приложения и поведения. Например, скрытие исходного сервера, лимиты не только на динамические запросы, но и на кэш-контент; специальные правила против «cache-busting».</li><li><b>Анализ поведения и автоматизация:</b> атаки идут очень быстро (в 2023 году 50 % атак длились менее 52 секунд). Поэтому вручную реагировать уже нельзя – требуется автоматизированная система, которая распознает паттерны: заголовки, время запросов, структура.</li><li><b>Инфраструктурные меры и глобальное распределение.</b> Важно подчеркнуть значение глобальных anycast-сетей, автоматизированной фильтрации и подхода без лимитов на трафик («unmetered DDoS mitigation»).</li><li><b>Проактивный партнер и мониторинг:</b> все домены через CDN, лимиты на кэш/некэш-трафик, мониторинг скрытых сигналов (например, странные запросы), наличие плана инцидентов.</li></ol><h2>Что это значит на практике. Рекомендации:</h2><ul><li>Убедитесь, что ваша инфраструктура направляется через надежный CDN и исходные сервера не видны напрямую.</li><li>Настройте лимиты и кэширование не только для типичного контента, но и для потенциально «обратных» точек: поиск, ошибки 404, динамика.</li><li>Выбирайте решения с автоматическим анализом поведения, а не только статическими правилами.</li><li>Проверяйте партнеров: способны ли они эффективно действовать без вашего ручного вмешательства и с минимальным влиянием на законный трафик.</li><li>Рассмотрите услуги по защите от DDoS через специализированных провайдеров – на сайте <a href="https://stormwall.pro">https://stormwall.pro</a> вы найдете соответствующие предложения, например защита для сайта <a href="https://stormwall.pro/products/website-ddos-protection">https://stormwall.pro/products/website-ddos-protection</a>.</li><li>Не забывайте: защита – это не покупка и установка, а постоянная адаптация. Атаки эволюционируют и защита должна меняться вместе с ними.</li></ul><h2>Заключение</h2><p>В 2025 году защита от DDoS-атак перестала быть опцией -это необходимость. Атаки стали массовыми, автоматизированными, мощными и адаптивными. Традиционные меры уже часто не справляются. Поэтому требуется переход к многоуровневой, автоматизированной, поведенческой защите с глобальной инфраструктурой и проактивным партнером.</p><p>Если вы до сих пор полагаетесь лишь на базовый фаервол или CDN по-умолчанию, сейчас отличный момент пересмотреть подход и усилить защиту своих онлайн-сервисов.</p>]]></content:encoded>
    </item>
    <item>
      <title>Настоящая цена кибератак — и слабые места бизнеса, которые позволяют им случаться</title>
      <link>https://tproger.ru/articles/nastoyashhaya-cena-kiberatak---i-slabye-mesta-biznesa--kotorye-pozvolyayut-im-sluchatsya</link>
      <comments>https://tproger.ru/articles/nastoyashhaya-cena-kiberatak---i-slabye-mesta-biznesa--kotorye-pozvolyayut-im-sluchatsya?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Валерия Турчак]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/nastoyashhaya-cena-kiberatak---i-slabye-mesta-biznesa--kotorye-pozvolyayut-im-sluchatsya</guid>
      <description><![CDATA[<p>Статья на примере недавних атак в Англии показывает, как хакеры наносят убытки крупному бизнесу, парализуя его работу и цепочки поставок</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/nastoyashhaya-cena-kiberatak---i-slabye-mesta-biznesa--kotorye-pozvolyayut-im-sluchatsya">Настоящая цена кибератак — и слабые места бизнеса, которые позволяют им случаться</a>»</p>]]></description>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Хакеры]]></category>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Инфраструктура]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 25 Oct 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p><i>Этот текст — перевод материала BBC, подготовленный специально для Tproger и адаптированный для русскоязычной IT-аудитории. В тексте также присутствуют другие реалии британского бизнеса и логистики — они поясняются по ходу перевода.</i></p><p>Автор: Тео Леггетт, международный бизнес-корреспондент,<b> </b><a href="https://www.bbc.com/news/articles/c5ye8zj5l4jo">The true cost of cyber attacks - and the business weak spots that allow them to happen</a></p><p>Первый день сентября должен был открыть один из самых активных периодов года для Jaguar Land Rover.</p><p>Это был понедельник, и запуск новых номерных знаков серии 75 (в Великобритании номерные серии выходят дважды в год и являются важным фактором спроса, поскольку покупатели хотят машину со свежим номером) предполагал всплеск покупательской активности.</p><p>На заводах в Солихалле и Хейлвуде, а также на моторном предприятии в Вулверхэмптоне персонал ожидал работы «в полный оборот».</p><p>Однако, когда утренняя смена прибыла на место, её отправили домой. Производственные линии с тех пор остаются остановленными.</p><p>Хотя в ближайшие дни заводы, как ожидается, начнут работу, запуск будет происходить медленно и под строгим контролем. Восстановление нормального объёма выпуска может занять ещё месяц. Настолько серьёзным оказался эффект от крупной кибератаки, которая поразила JLR в конце августа.</p><p>Компания сотрудничает с разными экспертами по кибербезопасности и полицией для проведения расследования, но финансовый ущерб уже нанесён. Потери мировой выработки за более чем месяц стали фактом.</p><p>Аналитики оценивают убытки в 50 млн фунтов стерлингов в неделю.</p><p>Для компании, которая получила прибыль в размере 2,5 млрд фунтов стерлингов в прошлом финансовом году и принадлежит индийскому гиганту Tata Group, эти потери, вероятно, будут болезненными, но не смертельными.</p><p>Однако JLR — не единственный случай.</p><p>С начала этого года произошла целая волна кибератак, нацеленных на крупный бизнес, включая таких розничных ритейлеров, как Marks &amp; Spencer и Co-op, а также поставщика ключевых систем для аэропортов.</p><p>Среди других громких жертв оказалась сеть детских садов Kido, а в прошлом году инциденты, связанные с Southern Water и компанией, предоставлявшей услуги по анализу крови для NHS (государственная система здравоохранения Великобритании), вызвали серьёзные опасения по поводу уязвимости критически важной инфраструктуры и услуг (в Великобритании NHS считается «сердцем» госуслуг, поэтому атака на поставщика лабораторных данных воспринимается как угроза национальному масштабу).</p><p>В целом, по оценкам государственного опроса о кибернарушениях, 612 000 предприятий и 61 000 благотворительных организаций по всей Великобритании стали целями атак.</p><p>Так сколько же стоят такие атаки для бизнеса и экономики?</p><p>И может ли быть так, что, как выразился один эксперт, крупные атаки этого года стали результатом накопительного эффекта своеобразного бездействия в области кибербезопасности со стороны государства и бизнеса, который теперь начинает приносить болезненные последствия?</p><h2>Пирамида затронутых поставщиков</h2><p>Особенность атаки такого масштаба, как та, что поразила JLR, заключается в том, насколько широко могут распространиться её последствия.</p><p>Компания находится на вершине пирамиды поставщиков, в которой — тысячи организаций. Они варьируются от крупных международных корпораций, таких как Bosch, до маленьких фирм с несколькими сотрудниками (в британской автомобильной индустрии множество узкопрофильных производителей деталей работают почти исключительно на одного заказчика), включая компании, полностью зависящие от JLR.</p><p>Для многих из этих фирм остановка производств представляла очень реальную угрозу их существованию.</p><p>В письме канцлеру от 25 сентября Комитет по бизнесу и торговле предупредил, что у небольших компаний <b>«может остаться в лучшем случае неделя денежного потока для поддержки своей деятельности»</b>, тогда как более крупные <b>«могут начать серьёзно испытывать трудности в течение двух недель»</b>.</p><p>Отраслевые аналитики выразили обеспокоенность тем, что если компании начнут банкротиться, небольшие сбои могут быстро перерасти в массовую волну — потенциально нанеся постоянный ущерб высокотехнологичной инженерной индустрии страны (имеется в виду риск цепной реакции, когда падение одного поставщика срывает производство других, и всё рушится каскадно).</p><p>Возобновление производства само по себе не означает, что кризис завершён.</p><blockquote>Слишком поздно. Все наши компании прожили шесть недель с нулевыми продажами, но при этом с сохранением всех расходов. Сектор по-прежнему отчаянно нуждается в денежных средствах.</blockquote><h2>Российские киберпреступники или западные подростки</h2><p>Недавний отчёт IBM, изучивший утечки данных примерно у 600 организаций по всему миру, показал, что средняя стоимость инцидента составляла 4,4 млн долларов (или 3,3 млн фунтов стерлингов).</p><p>Однако JLR далеко не единственный случай крупномасштабных кибератак. Атаки на Marks &amp; Spencer и сеть супермаркетов Co-op в этом году оцениваются в 300 млн и 120 млн фунтов соответственно.</p><p>В апреле 2025 года злоумышленникам удалось получить доступ к IT-системам Marks &amp; Spencer через стороннего подрядчика, вынудив компанию отключить некоторые сети (в Великобритании использование subcontractors широко распространено, и цепочка доверия часто становится уязвимостью).</p><p>Хакеры заразили сети компании программой-вымогателем (ransomware), которая зашифровала или перемешала (scrambled) данные.</p><p>Поначалу казалось, что нарушения будут незначительными — перестали работать системы бесконтактной оплаты, а также клиенты не могли воспользоваться услугой «click and collect» (это популярный формат покупки в британском ритейле: заказ онлайн — получение в офлайн-точке).</p><p>Однако спустя несколько дней пришлось остановить всю онлайн-торговлю — а она в обычное время составляет около трети бизнеса компании.</p><p>Эта ситуация была описана как «почти как отрубить себе конечность», по выражению Найны МакИнтош, бывшего члена исполнительного комитета Marks &amp; Spencer и основательницы сети Hope Fashion.</p><p>Перед компанией встала распространённая на сегодняшний день дилемма: восстановить все компьютерные системы с нуля или заплатить хакерам миллионы фунтов стерлингов выкупа за антидот.</p><p><b>Marks &amp; Spencer отказалась сообщать, выплатила ли она преступникам деньги.</b></p><p>Ущерб был не только финансовый. Позднее ритейлер признал, что в результате атаки были украдены данные клиентов.</p><p>Возможно, это включало телефонные номера, домашние адреса и даты рождения, хотя, по словам компании, платёжные реквизиты или данные карт похищены не были (обычно в отчётах такого рода отдельно подчёркивают, что PCI-данные не утекли — чтобы успокоить клиентов и регуляторов).</p><p>К дополнительному позору в СМИ Marks &amp; Spencer, хакеры заявили, что отправили требование выкупа напрямую генеральному директору, используя учётную запись одного из сотрудников.</p><p>Когда была атакована сеть супермаркетов Co-op, ответственность взяла на себя та же группа хакеров.</p><p>Как они утверждали, это была попытка вымогательства: заражение сетей компании вредоносным ПО, чтобы вынудить её заплатить за восстановление.</p><p>Однако IT-сети были отключены достаточно быстро, чтобы избежать значительных повреждений.</p><p>По словам преступников, которые с раздражением описали это в разговоре с BBC, «они сами выдернули свой шнур — обрушив продажи, они сожгли логистику и подорвали стоимость акций» (здесь видно злорадство — хакеры подчеркивают, что даже без их действий компания бы пострадала, пытаясь защититься).</p><p>По словам Джейми МакКолла, эксперта по кибербезопасности из исследовательской группы Королевского института объединённых служб (RUSI), нет ничего удивительного в том, что крупные бизнесы становятся мишенью.</p><p>Он объясняет, что хакерам стало очень легко получить доступ к программам-вымогателям (ransomware), которые могут блокировать или шифровать сети жертвы до тех пор, пока не будет выплачен выкуп.</p><h2>Слабые места крупного бизнеса</h2><p>Уязвимость таких компаний, как Jaguar Land Rover и Marks &amp; Spencer, во многом объясняется тем, как работают их цепочки поставок.</p><p>Автопроизводители давно используют так называемую систему «just-in-time delivery» (поставки точно в срок), при которой запчасти не хранятся на складе, а поступают от поставщиков ровно в тот момент, когда они нужны на производственной линии.</p><p>Это снижает затраты на хранение и минимизирует потери, но требует точной координации всех аспектов цепочки поставок. Если компьютерные системы выходят из строя, последствия оказываются крайне разрушительными (поскольку весь поток связан, каждый простой мгновенно «замикается» в производственную остановку).</p><p>Аналогично, такой ритейлер, как Marks &amp; Spencer, опирается на тщательно скоординированную цепочку поставок, чтобы гарантировать наличие нужного количества свежих продуктов в нужных магазинах — что делает систему столь же уязвимой (к примеру, если прогнозируемые объёмы поставок «замораживаются» из-за недоступности IT-систем, логистика теряет способность перераспределять товар вовремя).</p><p><i>(Прим. перевода: в британской торговле отказ IT-систем часто приводит не только к отсутствию товара на полках, но и мгновенным финансовым потерям из-за штрафов логистическим партнёрам.)</i></p><blockquote>Другие отрасли также применяют эту модель: электроника и высокие технологии, поскольку хранение продукции в запасе дорого и рискованно из-за её быстрого устаревания. То же самое касается других промышленных компаний, таких как аэрокосмические. Поэтому они в некоторой степени более уязвимы к сбоям в цепочке поставок, вызванным кибератаками.</blockquote><p>Однако она отмечает, что это не характерно, например, для фармацевтической отрасли, где регуляторы требуют от компаний поддерживать минимальный уровень запасов (поэтому такие компании менее чувствительны к краткосрочным сбоям).</p><h2>Накопительный эффект бездействия</h2><p>В конце сентября атака с использованием программы-вымогателя на американскую компанию Collins Aerospace, занимающуюся авиационными технологиями, вызвала серьёзные проблемы в ряде европейских аэропортов, включая лондонский Heathrow, после того как были выведены из строя системы регистрации пассажиров и обработки багажа.</p><p>Проблему удалось решить относительно быстро, но до этого значительное количество рейсов пришлось отменить.</p><p>Отраслевые источники предупреждают, что воздушное пространство Европы и ключевые аэропорты настолько перегружены, что нарушение в одной зоне может быстро распространиться на другие — и затраты при этом накапливаются стремительно (например, задержки рейсов в одном аэропорту приводят к сбоям в расписании множества авиалиний).</p><p>Но эта ситуация указывает на более серьёзный вопрос: что произойдёт, если кибератака на критическую инфраструктуру парализует финансовые системы, транспорт или энергетические сети, потенциально приведя к огромным экономическим убыткам — или даже к более тяжёлым последствиям?</p><blockquote>Я думаю, худший сценарий, вероятно, связан с чем-то, что затрагивает финансовые услуги или энергоснабжение, из-за потенциального каскадного эффекта в одной из этих двух сфер. Хорошая новость заключается в том, что финансовый сектор является наиболее регулируемой отраслью в Великобритании с точки зрения кибербезопасности. И, как мне кажется, показательно, что практически не было очень серьёзных кибератак на западный банк.</blockquote><p>Какой будет результат атаки на энергетическую отрасль, не совсем ясно.</p><p>Исследование, проведённое Lloyds Bank в 2015 году под названием «Business Blackout», моделировало последствия гипотетической атаки на энергосистему США и пришло к выводу, что <b>экономические потери могут превысить 1 трлн долларов (742 млрд фунтов стерлингов).</b></p><p>Тем не менее МакКолл считает, что в Великобритании, вероятно, есть достаточный запас мощности в энергосистеме для того, чтобы справиться с киберинцидентом (речь идёт о наличии резервных ресурсов, которые можно включить при частичной потере управления системой).</p><h2>Реакция правительства, угрозы ИИ и скрытые точки отказа</h2><p>Джейми Макколл считает, что за последние 15 лет в Великобритании наблюдался «довольно попустительский подход (laissez-faire) к кибербезопасности», и сменявшие друг друга правительства уделяли этому вопросу мало внимания. Он полагает, что крупные атаки этого года могут быть «накопительным эффектом бездействия в сфере кибербезопасности как со стороны правительства, так и со стороны бизнеса, и теперь это начинает по-настоящему сказываться».</p><p>В мае Национальный центр кибербезопасности (NCSC), входящий в состав GCHQ (Центра правительственной связи Великобритании), опубликовал отчет, в котором предупредил о растущем влиянии киберугроз со стороны хакеров, использующих инструменты на основе искусственного интеллекта.</p><p>Однако больше всего Джейми Макколла беспокоят те виды атак, от которых мы еще не придумали, как защититься.</p><blockquote>Меня бы больше беспокоила компания, которая является единственным поставщиком определенной услуги, но о которой мы мало что знаем, и которая не регулируется как критическая национальная инфраструктура. Атака на одну из этих менее гламурных, но ключевых для экономики точек может иметь огромные последствия для всей экономики. Вот что не дает мне спать по ночам. Единственная точка отказа, о которой мы пока не подозреваем.</blockquote><p>Если вам был интересен этот перевод и тема кибератак в бизнесе зацепила — расскажите, что думаете об ответственности компаний за безопасность. Обсудим в комментариях.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как бизнесу защитить информацию: главное о бэкапах</title>
      <link>https://tproger.ru/articles/kak-biznesu-zashhitit-informaciyu--glavnoe-o-bekapah</link>
      <comments>https://tproger.ru/articles/kak-biznesu-zashhitit-informaciyu--glavnoe-o-bekapah?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Oksana Karelina]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-biznesu-zashhitit-informaciyu--glavnoe-o-bekapah</guid>
      <description><![CDATA[<p>Зачем нужны бэкапы и как их правильно организовать в вашей компании, чтобы защитить данные пользователей. </p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-biznesu-zashhitit-informaciyu--glavnoe-o-bekapah">Как бизнесу защитить информацию: главное о бэкапах</a>»</p>]]></description>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Форматы хранения данных]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Утечка данных]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 21 Oct 2025 16:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Вопрос кибербезопасности с каждым годом становится всё острее. Ущерб от DDoS-атак неуклонно <a href="https://www.vikingcloud.com/blog/cybersecurity-statistics">растёт</a>, а запрашиваемая злоумышленниками сумма выкупа за доступ к украденным данным увеличивается в геометрической прогрессии — с 2023 по 2024 год она выросла на <a href="https://www.sophos.com/en-us/press/press-releases/2024/04/ransomware-payments-increase-500-last-year-finds-sophos-state">500%</a>, достигнув в среднем 2 миллионов долларов.</p><p>При этом потеря информации возможна не только из-за хакерских атак, но и обычных человеческих ошибок. Бывает, что слишком положившись на интеллект и автономию технологий, мы забываем, что устройства тоже могут выходить из строя, в интернете бывают сбои, да и мы сами можем забыть сохранить, сделать копию или перенести данные в архив или облако.</p><p>В этой статье мы расскажем, как защитить важную информацию — вашу или ваших пользователей — с помощью бэкапов. Вы узнаете, как организовать резервное копирование быстро и без лишних усилий.</p><h2>Что такое бэкапы</h2><p>Итак, бэкап сайта (с англ. backup — запасной) — это резервное копирование файлов, папок, данных проекта на отдельный сервер. Таким образом можно избежать потери информации в случае атаки, сбоев в работе сервера или базы данных, плановых работ или даже неудачных изменений на сайте.</p><p>Главная идея резервного копирования — возможность в любой момент откатить версию проекта до более старой.</p><p>Бэкапы делятся на несколько видов. Разберём их в зависимости от механизма копирования:</p><ul><li>Полный</li></ul><p>Такая резервная копия сохраняет все данные. Она требует больше всего памяти и времени для создания.</p><ul><li>Инкрементальный</li></ul><p>Сохраняет только те данные, которые изменились с момента последнего бэкапа.</p><ul><li>Дифференциальный</li></ul><p>Включает только те файлы, которые изменились относительно последнего полного бэкапа.</p><ul><li>Обратное инкрементальное копирование</li></ul><p>Система берёт последний бэкап, сравнивает с последними изменениями и правит с учетом этих изменений. А старые версии данных хранятся в виде отдельных бэкапов, которые в любой момент можно просмотреть и вернуть.</p><ul><li>Синтетическое копирование</li></ul><p>За основу берётся последний полный бэкап, на который «наслаиваются» инкрементные копии — пока система не соберёт актуальную версию. Когда эта версия устаревает, цикл повторяется: создаётся новый синтетический бэкап поверх предыдущего полного.</p><p>Бэкапы также могут храниться на разных носителях, вот основные из них:</p><p><b>Сетевое хранилище (NAS)</b></p><p>Локальный сервер, где можно централизованно хранить бэкапы разных устройств и/или пользователей, объединяя их в одну сеть. Работает через LAN (локальное соединение) или интернет.</p><p><b>Другой компьютер</b></p><p>Если резервных копий немного, их можно хранить на обычном ПК. Но у такого способа есть большой минус — любое пользовательское устройство подвержено сбоям, поломкам, вирусам и т. д.</p><p><b>Внешний (жёсткий) диск</b></p><p>Компактный внешний диск удобно брать с собой, быстро получать доступ к данным, загружать и восстанавливать их. Однако из-за малого объема памяти он не подойдёт для сложных задач.</p><p><b>Облачное хранилище</b></p><p>Облачное хранилище доступно с любого устройства и из любой точки мира, данные здесь хранятся удалённо.</p><p>В последнее время бизнес <a href="https://electroiq.com/stats/backup-statistics">всё чаще</a> выбирает хранить бэкапы именно в облаке, делегируя эту задачу <a href="https://beget.com/ru/cloud">облачному хостинг-провайдеру</a>. Такой способ удобен для распределенных команд, а гибкая тарификация позволяет управлять расходами.</p><p>Так или иначе, у каждого способа хранения есть свои плюсы, позволяющие системе бэкапов работать как единый механизм. При этом многие до сих пор отказываются делать резервное копирование — рассмотрим подробнее, почему так происходит.</p><h2>Почему люди не делают бэкапы</h2><p>В России лишь <a href="https://rg.ru/2025/04/03/issledovanie-tolko-13-rabotaiushchih-rossiian-reguliarno-delaiut-rezervnye-kopii.html">13%</a> работающих россиян выполняют бэкапы регулярно, тогда как, например, в Европе <a href="https://www.expressvpn.com/blog/backup-data/?srsltid=AfmBOopY4TeUEPGqLM_kGexaXM478_xtdScmn8jQ4atIjidpfIDfwDWi">37%</a> пользователей делают резервные копии еженедельно.</p><ul><li>Недооценка рисков — например, из-за чрезмерной веры в надёжность техники или убеждения, что угрозы атак и потери данных преувеличены. Преуменьшение объёма или важности данных, которые нужно сохранить.</li></ul><ul><li>Халатность или недостаток технической грамотности. Многие думают, что резервное копирование не требует особых настроек и работает фоново. <a href="https://expertinsights.com/backup-and-recovery/cloud-backup-stats">43%</a> IT-руководителей и вовсе уверены, что бэкап данных на сервере — полностью ответственность провайдера.</li></ul><p>Теперь рассмотрим, как предупредить ошибки при организации резервного копирования и поставить этот процесс на поток.</p><h2>Ошибки при организации резервного копирования</h2><p>Еще в 2021 году разработчик программного обеспечения Veeam выяснил, что <a href="https://www.securitymagazine.com/articles/94832-of-data-backups-are-failing-creating-data-protection-challenges?utm_source=chatgpt.com">58%</a> бэкапов проваливаются, не выполнив своей основной функции. Разберём несколько возможных причин, почему так происходит.</p><ul><li>Нерегулярность</li></ul><p><a href="https://rg.ru/2025/04/03/issledovanie-tolko-13-rabotaiushchih-rossiian-reguliarno-delaiut-rezervnye-kopii.html">62%</a> пользователей в РФ копируют и сохраняют рабочие данные, но большинство делают это нерегулярно.</p><ul><li>Хранение всех копий в одном месте</li></ul><p>Основная идея создания бэкапов сервера – скопировать данные на другой носитель. Однако многие игнорируют это правило и хранят бэкапы на том же компьютере или внешнем диске, что гипотетически может привести к полной потере данных.</p><ul><li>Хранение только одной копии</li></ul><p>Иметь одну резервную копию рискованно – если она повредится или вы случайно сохраните неверную версию, данные пропадут безвозвратно. Поэтому существует правило «3-2-1»: лучше иметь не менее трех копий данных, хранить их на двух и более физических носителях и не менее одной копии – удалённо.</p><ul><li>Отсутствие тестирования восстановления</li></ul><p>По статистике, лишь <a href="https://www.catalogicsoftware.com/blog/7-backup-mistakes-companies-still-making-in-2025">30%</a> компаний проводят комплексное тестирование резервного копирования.</p><ul><li>Незащищенность бэкапов</li></ul><p>Хотя бэкапы не требуются ежедневно, защищать их очень важно: <a href="https://invenioit.com/continuity/disaster-recovery-statistics/">96%</a> всех атак программ-вымогателей направлены на заражение резервных копий.</p><h2>Когда бэкапы пригодились: кейсы компаний</h2><p>Часто понимание важности бэкапов приходит только после неудач. Рассмотрим, когда бэкапы оказались в центре проблемы безопасности и как компании выходили из этих ситуаций.</p><p><b>Google Cloud</b></p><p>В 2024 году пенсионный фонд UniSuper <a href="https://www.theguardian.com/australia-news/article/2024/may/09/unisuper-google-cloud-issue-account-access">обнаружил</a>, что его учетная запись в Google Cloud удалена. Из-за сбоя пострадали около 620 000 пенсионеров — доступ к их счетам оказался заблокирован на неделю.</p><p>Решить проблему помог другой партнер UniSuper — хостинг-провайдер, которому фонд отдал свои резервные копии на хранение. Они помогли компании восстановить данные и доступ к аккаунтам.</p><p><b>Hycu</b></p><p>Одна медицинская компания и клиент Hycu <a href="https://www.hycu.com/blog/an-anatomy-of-responding-to-and-surviving-a-ransomware-attack">уделяла</a> кибербезопасности огромное внимание, но в её инфраструктуре всё равно нашлось слабое место. Через электронное письмо систему поразила программа-вымогатель, а когда проблему заметили, заражены уже были все файлы.</p><p>В ходе расследования сотрудники обнаружили один незашифрованный файл, созданный, чтобы в случае атаки восстановить сервер из бэкапа. Он стал основой для разблокировки данных и спас компанию от выплаты миллионного выкупа.</p><p><b>Samsung</b></p><p>Когда в 2014 году в дата-центре Samsung <a href="https://uk.pcmag.com/electronics/9618/fire-at-samsung-backup-data-center-takes-services-offline">произошёл</a> крупный пожар, большая часть данных пропала безвозвратно из-за отсутствия удалённых бэкапов.</p><p>Как показывают эти и другие подобные кейсы, создание резервных копий сервера — один из главных инструментов защиты данных.</p><h2>Кто обычно отвечает за бэкапы</h2><p>В теории резервное копирование — это ответственность пользователя. Он принимает решение о создании бэкапов, выбирает поставщика и делегирует ему хранение копий. Однако сегодня интернет — это конкурентная среда, поэтому ответственные провайдеры часто сами заботятся о бэкапах, выстраивая процессы автоматического резервного копирования.</p><p>Мы в Beget тоже придерживаемся такой практики и внедрили для пользователей как автоматическое резервное копирование, так и бэкапы по требованию. Автоматический бэкап сайта на хостинге создается в среднем раз в 3 дня, на VPS – раз в 2–5 дней. Полный бэкап сервера VPS хранится в среднем 10 суток, после чего заменяется более свежей версией. Точного срока хранения бэкапов на виртуальном хостинге нет: на каждом аккаунте может храниться единовременно только 10 бэкапов, а когда место заканчивается, более старые копии удаляются.</p><h2>Заключение</h2><p>Утечка данных — проблема, которая почти всегда приходит без предупреждения. Пожалуй, именно поэтому, несмотря на все затраченные на системы безопасности средства, данные теряются постоянно: например, в 2023 году более <a href="https://bdaily.co.uk/articles/2023/09/05/almost-two-in-three-uk-companies-have-lost-data-due-to-failed-backups">90%</a> компаний оказались в ситуации, когда им пришлось обратиться к бэкапам, и при этом только <a href="https://bdaily.co.uk/articles/2023/09/05/almost-two-in-three-uk-companies-have-lost-data-due-to-failed-backups">27%</a> компаний смогли восстановить все данные, так как резервное копирование было организовано неправильно.</p>]]></content:encoded>
    </item>
    <item>
      <title>«Сапожник без сапог»: хакеры взломали разработчика ИБ-решений F5 и украли исходники BIG-IP</title>
      <link>https://tproger.ru/news/-sapozhnik-bez-sapog---hakery-vzlomali-razrabotchika-ib-rewenij-f5-i-ukrali-ishodniki-big-ip</link>
      <comments>https://tproger.ru/news/-sapozhnik-bez-sapog---hakery-vzlomali-razrabotchika-ib-rewenij-f5-i-ukrali-ishodniki-big-ip?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/-sapozhnik-bez-sapog---hakery-vzlomali-razrabotchika-ib-rewenij-f5-i-ukrali-ishodniki-big-ip</guid>
      <description><![CDATA[<p>Хакеры взломали F5 и похитили исходники BIG-IP с данными об уязвимостях. Компания выпустила патчи и уверяет, что цепочка поставок цела</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/-sapozhnik-bez-sapog---hakery-vzlomali-razrabotchika-ib-rewenij-f5-i-ukrali-ishodniki-big-ip">«Сапожник без сапог»: хакеры взломали разработчика ИБ-решений F5 и украли исходники BIG-IP</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Хакеры]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Взлом]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Kubernetes]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 16 Oct 2025 09:17:50 GMT</pubDate>
      <content:encoded><![CDATA[<p>Компания F5, известная своими решениями для сетевой безопасности и балансировки нагрузки, сообщила <b>о взломе своих внутренних систем</b>.</p><p>По <a href="https://www.bleepingcomputer.com/news/security/hackers-breach-f5-to-steal-undisclosed-big-ip-flaws-source-code/">данным</a>, поданным в Комиссию по ценным бумагам и биржам США (SEC), злоумышленникам удалось похитить <b>исходный код</b> флагманской платформы <b>BIG-IP</b> и документы с описанием <b>нераскрытых уязвимостей</b>.</p><p>Атака была обнаружена <b>9 августа 2025 года</b>, однако властям США позволили компании временно не разглашать детали, чтобы не помешать расследованию.</p><h2>Что известно о взломе</h2><p>По данным F5, киберпреступники, предположительно связанные с «государственными структурами», длительное время сохраняли доступ к сегменту сети, связанному с разработкой и распространением обновлений BIG-IP.</p><p>Эти устройства используются <b>48 из 50 крупнейших корпораций мира</b> для управления интернет-трафиком и защиты приложений.</p><p>Известно, что хакеры похитили часть файлов, включая:</p><ul><li>исходные коды отдельных модулей BIG-IP;</li><li>данные о частных, еще не исправленных уязвимостях;</li><li>конфигурации и сведения о внедрении решений у «небольшого процента клиентов».</li></ul><p>F5 утверждает, что <b>нет доказательств вмешательства в цепочку поставок ПО</b> — исходники и сборочные конвейеры остались нетронутыми, а продукты <b>NGINX</b>, <b>Silverline</b> и <b>F5 Distributed Cloud</b> не пострадали.</p><h2>Реакция компании</h2><p>После инцидента F5 выпустила <b>пакет патчей для 44 уязвимостей</b>, часть которых фигурировала среди украденных данных, и настоятельно рекомендовала клиентам <b>обновить все системы</b>.</p><p>Обновления уже доступны для BIG-IP, F5OS, BIG-IP Next для Kubernetes, BIG-IQ и APM-клиентов.</p><p>Компания также опубликовала <b>руководство по защите инфраструктуры</b>, включая рекомендации:</p><ul><li>включить потоковую передачу событий BIG-IP в SIEM;</li><li>настроить удаленные syslog-сервера;</li><li>отслеживать неудачные входы и изменения привилегий.</li></ul><h2>Что говорят эксперты</h2><p>Инцидент стал ударом по репутации F5, поставщика решений для защиты корпоративных сетей.</p><p>Однако эксперты отмечают: компания <b>действует прозрачно</b> и уже устранила последствия, не обнаружив признаков активной эксплуатации утечек.</p>]]></content:encoded>
    </item>
    <item>
      <title>Apple будет платить до $5 миллионов за найденные уязвимости и обход Lockdown Mode</title>
      <link>https://tproger.ru/news/apple-budet-platit-do--5-millionov-za-najdennye-uyazvimosti-i-obhod-lockdown-mode</link>
      <comments>https://tproger.ru/news/apple-budet-platit-do--5-millionov-za-najdennye-uyazvimosti-i-obhod-lockdown-mode?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Даровская Маша]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/apple-budet-platit-do--5-millionov-za-najdennye-uyazvimosti-i-obhod-lockdown-mode</guid>
      <description><![CDATA[<p>Apple обновила программу вознаграждений за баги и обходы Lockdown Mode. Теперь исследователи могут получить до $5 млн за критические уязвимости в iOS, macOS и бета-версиях. Рассказываем, какие баги ценятся выше всего и как Apple защищает пользователей.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/apple-budet-platit-do--5-millionov-za-najdennye-uyazvimosti-i-obhod-lockdown-mode">Apple будет платить до $5 миллионов за найденные уязвимости и обход Lockdown Mode</a>»</p>]]></description>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <category><![CDATA[Хакеры]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 13 Oct 2025 06:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Компания Apple радикально обновила свою программу вознаграждений за уязвимости — Apple Security Bounty, сделав её одной из самых щедрых в индустрии кибербезопасности. Теперь исследователи могут получить до $5 миллионов за обнаружение критических багов, обходов режима Lockdown и уязвимостей в бета-версиях программного обеспечения.</p><h2>🔐 Что изменилось в Apple Security Bounty</h2><p>Программа действует с 2020 года и за это время выплатила исследователям уже $35 миллионов, в среднем — по $43 750 каждому из более чем 800 специалистов. Теперь Apple значительно увеличила размеры выплат и расширила список категорий уязвимостей:</p><figure><img src="https://media.tproger.ru/user-uploads/116654/2025-10-13/66ada1fb-25f9-4981-b746-900ea38ef520.png" alt="" /></figure><p>Apple отмечает, что программа теперь охватывает более широкий спектр угроз, включая уязвимости в WebKit, механизмы защиты macOS и бета-версии iOS и iPadOS.</p><h2>🧠 Почему это важно</h2><p>Обновлённая программа помогает Apple защищать пользователей от атак высшего уровня — таких, что используются в дорогостоящем наёмном шпионском ПО.</p><p>За последние годы компания:</p><ul><li>внедрила Lockdown Mode, блокирующий большинство векторов атак;</li><li>переработала систему защиты Safari;</li><li>добавила Memory Integrity Enforcement в чипах серии A19, которая предотвращает уязвимости, связанные с повреждением памяти.</li></ul><p>По словам Apple, сегодня лишь единичные iOS-атаки происходят на уровне системы, и они стоят миллионы долларов в разработке.</p><p>С ростом числа киберугроз и шпионских атак Apple активно позиционирует себя как лидера в области приватности и защиты данных. Повышенные награды отражают стратегию компании — поощрять белых хакеров и опережать киберпреступников на шаг.</p>]]></content:encoded>
    </item>
    <item>
      <title>Хакеры заявили о краже данных 5,5 миллиона пользователей Discord: компания отказывается платить выкуп</title>
      <link>https://tproger.ru/news/hakery-zayavili-o-krazhe-dannyh-5-5-milliona-polzovatelej-discord--kompaniya-otkazyvaetsya-platit-vykup</link>
      <comments>https://tproger.ru/news/hakery-zayavili-o-krazhe-dannyh-5-5-milliona-polzovatelej-discord--kompaniya-otkazyvaetsya-platit-vykup?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Даровская Маша]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/hakery-zayavili-o-krazhe-dannyh-5-5-milliona-polzovatelej-discord--kompaniya-otkazyvaetsya-platit-vykup</guid>
      <description><![CDATA[<p>Хакеры заявили о взломе Zendesk-сервиса Discord и краже данных 5,5 млн пользователей. Компания опровергает масштаб инцидента и отказывается платить выкуп.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/hakery-zayavili-o-krazhe-dannyh-5-5-milliona-polzovatelej-discord--kompaniya-otkazyvaetsya-platit-vykup">Хакеры заявили о краже данных 5,5 миллиона пользователей Discord: компания отказывается платить выкуп</a>»</p>]]></description>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <category><![CDATA[Хакеры]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Взлом]]></category>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[Discord]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 09 Oct 2025 16:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Платформа Discord оказалась в центре громкого скандала: группа хакеров утверждает, что получила доступ к данным 5,5 миллиона пользователей, включая фотографии удостоверений личности и частичную платёжную информацию. Однако компания опровергает эти заявления, называя утечку инцидентом у стороннего поставщика, а не взломом самой платформы.</p><h2>Что произошло</h2><p>По данным, опубликованным <a href="https://www.bleepingcomputer.com/news/security/hackers-claim-discord-breach-exposed-data-of-55-million-users/">BleepingComputer</a>, злоумышленники утверждают, что взломали Zendesk-инстанс, который Discord использует для поддержки клиентов.</p><p>Они заявляют, что получили 1,6 ТБ данных — это около 8,4 миллиона тикетов поддержки, затрагивающих 5,5 миллиона уникальных пользователей.</p><p>Discord в ответ пояснил, что речь идёт не о взломе платформы, а о компрометации стороннего сервиса, связанного с техподдержкой:</p><p>«Это не взлом Discord, а инцидент с участием стороннего поставщика, который помогает нам обрабатывать запросы пользователей», — говорится в официальном заявлении компании.</p><h2>Что могли украсть</h2><p>Хакеры утверждают, что получили доступ к внутреннему инструменту Zenbar, позволявшему:</p><ul><li>просматривать e-mail и номера телефонов пользователей;</li><li>отключать двухфакторную аутентификацию (MFA);</li><li>просматривать внутренние тикеты и обращения.</li></ul><p>По их словам, среди украденных данных есть:</p><ul><li>адреса электронной почты и Discord ID;</li><li>номера телефонов;</li><li>частичная платёжная информация;</li><li>даты рождения;</li><li>данные MFA и статусы активности;</li><li>переписки с техподдержкой.</li></ul><p>Особенно тревожная часть — это фотографии удостоверений личности, которые пользователи отправляли для проверки возраста. Discord признаёт, что утечка затронула около 70 000 пользователей, а не 2,1 миллиона, как утверждают хакеры.</p><h2>Что говорит Discord</h2><p>Компания заявила, что не будет выплачивать выкуп, назвав цифры злоумышленников «преувеличенными» и частью попытки вымогательства.</p><p>«Мы не собираемся вознаграждать тех, кто нарушает закон.</p><p>Количество затронутых пользователей сильно завышено», — подчеркнули представители Discord.</p><h2>Как произошёл взлом</h2><p>Хакеры утверждают, что получили доступ через аккаунт сотрудника аутсорсинговой компании (BPO), которая занимается поддержкой пользователей Discord.</p><p>Доступ сохранялся в течение 58 часов — с 20 по 22 сентября 2025 года.</p><p>Такие компании нередко становятся уязвимым звеном: атакующие получают доступ не напрямую к IT-инфраструктуре бренда, а через подрядчиков.</p><h2>Попытка вымогательства</h2><p>По данным BleepingComputer, злоумышленники потребовали $5 миллионов, позднее снизив сумму до $3,5 млн. Переговоры шли до 2 октября, но после официального отказа Discord платить, группа заявила о намерении слить данные в открытый доступ.</p><p>Пока достоверность образцов данных, предоставленных хакерами, не подтверждена.</p><h2>Что делать пользователям</h2><p>Эксперты советуют:</p><ul><li>обновить пароль Discord и включить двухфакторную аутентификацию;</li><li>не переходить по подозрительным ссылкам, даже если они приходят от знакомых аккаунтов;</li><li>при совпадении e-mail с утекшими адресами — проверить их через <a href="https://haveibeenpwned.com/">Have I Been Pwned</a>;</li><li>следить за сообщениями от поддержки Discord о возможных уведомлениях безопасности.</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Redis предупреждает о критической уязвимости RediShell: под угрозой сотни тысяч серверов по всему миру</title>
      <link>https://tproger.ru/news/redis-preduprezhdaet-o-kriticheskoj-uyazvimosti-redishell--pod-ugrozoj-sotni-tysyach-serverov-po-vsemu-miru</link>
      <comments>https://tproger.ru/news/redis-preduprezhdaet-o-kriticheskoj-uyazvimosti-redishell--pod-ugrozoj-sotni-tysyach-serverov-po-vsemu-miru?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Даровская Маша]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/redis-preduprezhdaet-o-kriticheskoj-uyazvimosti-redishell--pod-ugrozoj-sotni-tysyach-serverov-po-vsemu-miru</guid>
      <description><![CDATA[<p>Redis выпустил экстренные исправления для уязвимости CVE-2025-49844, которая позволяет удалённое выполнение кода и ставит под угрозу сотни тысяч серверов.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/redis-preduprezhdaet-o-kriticheskoj-uyazvimosti-redishell--pod-ugrozoj-sotni-tysyach-serverov-po-vsemu-miru">Redis предупреждает о критической уязвимости RediShell: под угрозой сотни тысяч серверов по всему миру</a>»</p>]]></description>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Redis]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 08 Oct 2025 12:09:49 GMT</pubDate>
      <content:encoded><![CDATA[<p>6 октября 2025 года команда безопасности Redis выпустила экстренные обновления для устранения уязвимости максимальной степени опасности — CVE-2025-49844, получившей оценку CVSS 10.0. Ошибка позволяет злоумышленникам выполнять произвольный код на серверах Redis и получать полный контроль над системой.</p><h2>Что произошло</h2><p>Redis — это высокопроизводительное хранилище данных с открытым исходным кодом, применяемое как кэш, брокер сообщений и база данных. Оно используется примерно в 75% облачных инфраструктур по всему миру.</p><p>Новая уязвимость, прозванная исследователями RediShell, <a href="https://cwe.mitre.org/data/definitions/416.html">связана</a> с 13-летней ошибкой типа use-after-free в интерпретаторе Lua. При успешной эксплуатации она позволяет аутентифицированному злоумышленнику выйти за пределы «песочницы» Lua, установить обратное соединение и добиться удалённого выполнения кода (RCE) на хосте Redis.</p><h2>Потенциальные последствия</h2><p>После компрометации сервера атакующий может:</p><ul><li>похищать учётные данные и конфиденциальные данные из памяти Redis;</li><li>внедрять вредоносное ПО и криптомайнеры;</li><li>перемещаться по внутренней сети жертвы;</li><li>использовать полученные токены доступа для атак на другие облачные сервисы.</li></ul><p>Исследователи из Wiz, впервые представившие уязвимость на конференции Pwn2Own Berlin 2025, <a href="https://www.bleepingcomputer.com/news/security/hackers-exploit-vmware-esxi-microsoft-sharepoint-zero-days-at-pwn2own/">отметили</a>, что она «предоставляет злоумышленнику полный доступ к хостовой системе, включая возможность стирания, шифрования и перехвата данных».</p><h2>Масштаб угрозы</h2><p>По данным Wiz, в сети обнаружено около 330 000 экземпляров Redis, из которых не менее 60 000 не требуют аутентификации, что делает их уязвимыми к немедленной атаке.</p><p>Уязвимость затрагивает все версии Redis, включая OSS/CE и Stack-редакции. Исправления уже доступны в версиях:</p><ul><li>7.22.2-12 и выше,</li><li>7.8.6-207 и выше,</li><li>7.4.6-272 и выше,</li><li>7.2.4-138 и выше,</li><li>6.4.2-131 и выше,<br />а также в OSS/CE релизах 8.2.2+, 8.0.4+, 7.4.6+, 7.2.11+ и Stack-релизах 7.4.0-v7+ и 7.2.0-v19+.</li></ul><h2>Рекомендации для администраторов</h2><p>Redis и Wiz настоятельно советуют:</p><ul><li>немедленно обновить все экземпляры Redis;</li><li>включить аутентификацию и ограничить доступ доверенным сетям;</li><li>отключить выполнение Lua-скриптов, если оно не требуется;</li><li>запускать Redis без прав root;</li><li>включить журналирование и мониторинг активности;</li><li>использовать сетевые фильтры, VPN и брандмауэры для защиты.</li></ul><p>Исследователи представили <a href="https://youtu.be/yOBt8irvao0">видео об уязвимости</a>, где можно посмотреть подробности о возможных угрозах и мерах безопасности.</p><h2>Исторический контекст</h2><p>Redis уже не раз становился целью атак. В 2024 году ботнет P2PInfect использовал уязвимые экземпляры для майнинга Monero, а ранее вредоносные программы Redigo, HeadCrab и Migo внедряли криптомайнеры и отключали защиту на серверах Redis.</p><p>По словам Wiz, сочетание широкого распространения Redis, небезопасных конфигураций по умолчанию и критичности уязвимости создаёт «острую необходимость в немедленном обновлении».</p>]]></content:encoded>
    </item>
  </channel>
</rss>