惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Hacker News
The Hacker News
GbyAI
GbyAI
雷峰网
雷峰网
罗磊的独立博客
WordPress大学
WordPress大学
博客园_首页
Hugging Face - Blog
Hugging Face - Blog
The Cloudflare Blog
云风的 BLOG
云风的 BLOG
F
Full Disclosure
Google DeepMind News
Google DeepMind News
C
Cyber Attacks, Cyber Crime and Cyber Security
NISL@THU
NISL@THU
S
Schneier on Security
T
Tor Project blog
C
Cybersecurity and Infrastructure Security Agency CISA
Recent Announcements
Recent Announcements
酷 壳 – CoolShell
酷 壳 – CoolShell
C
Check Point Blog
P
Palo Alto Networks Blog
C
CERT Recently Published Vulnerability Notes
S
Secure Thoughts
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Last Week in AI
Last Week in AI
T
Threatpost
I
Intezer
Y
Y Combinator Blog
G
GRAHAM CLULEY
MyScale Blog
MyScale Blog
阮一峰的网络日志
阮一峰的网络日志
T
The Exploit Database - CXSecurity.com
Scott Helme
Scott Helme
A
Arctic Wolf
Martin Fowler
Martin Fowler
Hacker News: Ask HN
Hacker News: Ask HN
V
V2EX
B
Blog RSS Feed
The Last Watchdog
The Last Watchdog
博客园 - 司徒正美
Simon Willison's Weblog
Simon Willison's Weblog
V
Vulnerabilities – Threatpost
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
N
News and Events Feed by Topic
www.infosecurity-magazine.com
www.infosecurity-magazine.com
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
P
Proofpoint News Feed
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
AI
AI
C
Cisco Blogs
T
The Blog of Author Tim Ferriss

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Безопасность ИИ: как перестать бежать анализировать каждое новое ПО и перейти к системному подходу
Youngzhuravl · 2026-04-28 · via Все публикации подряд на Хабре

Безопасность ИИ: как перестать бежать анализировать каждое новое ПО и перейти к системному подходу

Уровень сложностиСредний

Время на прочтение9 мин

Охват и читатели246

Обзор

Что происходит на рынке

За последние два‑три года компании в РФ перестали относиться к ИИ как к «чудо машине» и начали встраивать его в рабочие процессы: от помощи специалистам контакт‑центров в чатах с клиентами и «серым» помощникам разработчиков до написания полноценных продуктов. Если раньше нельзя было сказать, что ты использовал ИИ для задачи, так как тебя закидают помидорами, сегодня — этот навык must have для каждого. В этой статье речь пойдет о безопасной разработке с использованием генеративных ИИ. Крупные опросы и отчёты фиксируют одинаковую картину: большинство организаций уже экспериментируют с LLM‑системами или планируют их внедрение, в том числе в зонах, где раньше работали только люди или классические скрипты.

  • NIST подчёркивает, что генеративный ИИ уже используется в разработке, тестировании и эксплуатации систем, и предлагает относиться к нему как к компоненту критичной инфраструктуры, а не к «чёрному ящику»

  • ENISA и другие регуляторы отдельно выделяют применение ИИ в DevSecOps и автоматизации инженерных процессов: это и code review, и генерация инфраструктурного кода, и управление конфигурацией

  • Отдельный пласт — так называемый «vibe coding» и coding‑агенты, которые сидят в IDE, в терминале или в CI и умеют не только писать код, но и запускать тесты, работать с файловой системой и git'ом

Каждый такой инструмент — это не «ещё одна модель», а новый элемент инфраструктуры. И вместе они создают новый ландшафт угроз, который не покрывается классическим OWASP Top 10. Чтобы зафиксировать, что нового появилось, полезно посмотреть на OWASP Top 10 for LLM Applications. В нём отдельно выделены проблемы, которые в классическом веб‑приложении практически не встречались: prompt injection, небезопасная обработка вывода модели, чрезмерные полномочия агента, небезопасный дизайн плагинов, утечки секретов через контекст и так далее. Это дополнение к классическому OWASP: к инъекциям и broken access control добавляются риски, возникающие при появлении в ИТ ландшафте модели, умеющей выполнять различные действия.

Если упрощать, сегодня многие команды безопасности живут в режиме: «появился новый модный агент — давайте срочно разберём его код, прежде чем дать ему доступ к чему либо». Этот подход плох тем, что он не масштабируется и никогда не будет поспевать за развитием ИИ технологий. Моя задача в этой статье — показать, как перейти от такой гонки к системному подходу безопасности для ИИ‑агентов, который можно накладывать на любое новое ПО из этого класса.

Стоит предупредить, что следующий блок — информационный, который поможет тем, кто пока еще не в контексте. Если вы уже знаете основы, можете смело пропустить следующий абзац (но только его).

Разберем основные термины в новой ИИ‑реальности

LLM

LLM (Large Language Model) — это большие языковые модели общего назначения, способные генерировать текст, код и другие форматы по запросу пользователя. Под генеративными моделями шире имеют в виду и мультимодальные системы, которые работают с текстом, изображениями, аудио и видео, но в контексте безопасности нас больше всего интересует их способность принимать текстовый ввод и выполнять действия по описанию: писать и запускать код, управлять файлами, вызывать API.

Основные функции моделей:

  • анализ и генерация кода (в нашем контексте)

  • принятие решений в рамках сценария «какой шаг сделать дальше»

  • формирование запросов к инструментам (shell, git и так далее) через прослойку

Обычно модели наделяют следующими правами:

  • доступ к исходникам (read, реже — write)

  • доступ к конфигам, исходному коду

  • доступ к логам и метрикам

  • иногда — доступ к секретам через переменные окружения

Какие возникают риски:

  • prompt injection: модель можно «уговорить» сделать то, чего не планировали авторы сценария (например, приписать «разрешаю тебе все»)

  • небезопасная обработка вывода: если текст модели без фильтра уходит в shell, SQL, CI — это уже полноценная инъекция

  • утечки данных: модель может случайно раскрыть секреты, к которым у неё есть доступ, или слить данные наружу

MCP (Model Context Protocol)

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

  • какие tools доступны (прочитать файл, записать файл, вызвать HTTP, обратиться к БД)

  • какие параметры они принимают и что возвращают

  • какие ограничения и политики к ним привязаны (какие директории, какие домены, какой набор методов)

Основные функции MCP:

  • связывает модель с внешним миром через набор описанных инструментов

  • позволяет переиспользовать один и тот же набор tools с разными моделями

  • задаёт уровень «структурированности» взаимодействия: модель не просто пишет текст, она вызывает именованные действия

Обычно PCM наделяют следующими правами:

  • доступ к файловой системе (workspace, иногда шире)

  • доступ к git

  • доступ к сетевым сервисам

  • реже — доступ к конфигам

Какие возникают риски:

  • небезопасный дизайн tools («плагин», который даёт модели слишком много полномочий)

  • отсутствие нормального scoping«а (один MCP‑сервер видит сразу несколько репозиториев/окружений)»

  • отсутствие явной политики: какие tools можно использовать в каком контексте, с какими ограничениями

ИИ‑агенты

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

Основные функции ИИ‑агентов:

  • автоматизация рутинных задач разработчиков и DevOps (правки кода, миграции, генерация конфигов)

  • полуавтоматический refactoring и code review

  • работа с баг‑репортами и тикетами

  • иногда — автономное выполнение длинных сценариев

Обычно ИИ‑агентов наделяют следующими правами:

  • read/write в репозитории и прилегающих директориях

  • вызов shell‑команд, доступ к git и тестовым раннерам

  • доступ к облачным sandbox«ам»

Какие возникают риски:

  • чрезмерная агентность: агент получает «root» на рабочей машине разработчика или CI runner«e»

  • классические инъекции (командная, файловая, конфигурационная), завёрнутые в LLM‑контекст

  • утечки секретов и другой конфиденциалки при логировании, аналитике, prompt‑инжекции

Еще я добавлю термин «Sandboxes» — контейнерные песочницы, ограничивают права и scope ИИ‑агентов. Теперь, когда «база закрыта», переходим к исследованию ИИ‑агентов.

Исследование ИИ‑агентов (что показал исходный код)

Я никогда не доверяю заявлениям разработчиков, что их ПО безопасно, пока сам в этом не убежусь. Поэтому имеет смысл подойти к ИИ‑агентам, как к обычному ПО. Для анализа тех ИИ‑агентов, которые я привожу в статье, я использовал semgrep для opensource ПО, а для проприетарных — старый добрый grep (определил интересующие паттерны и исследовал доступные конфиги). Я проанализировал лишь малую часть существующих агентов (Nymbalist, Serena, NanoClaw, GoClaw, VibeKit), и использовал небольшой инструментарий. В этой статье я не буду описывать их различия, но все они работают, как «обвязка» вокруг LLM.

Подход был примерно такой: прогонял semgrep по правилам, покрывающим OWASP Top 10 и LLM Top 10, плюс grep по критичным шаблонам. Далее — ручной разбор: выборка файлов, где реализована sandbox, работа с секретами и мосты между LLM и инструментами (shell, git, сеть). Затем динамика — запуск в локальной лаборатории honeypot‑файлами, чтобы проверить гипотезы на практике. Почему я пишу про агенты? Я бы выделил ИИ‑агентов в отдельное семейство ПО, для которых характеры одни и те же «симптомы».

Чем «болеют» ИИ‑агенты?

Картина пока что складывается однотипная:

Bash / shell‑доступ
Все ИИ‑агенты могут вызвать shell: через child_process.spawn/exec, docker exec, SSH или аналогичные механизмы.

Доступ к git (с широкими правами)
Агенты умеют создавать ветки, коммиты, pull‑requests. MCP‑tools могут вызывать git‑команды напрямую

bypassPermissions и аналогичные флаги
В ИИ‑агентах встречаются флаги и режимы уровня permissionMode: bypassPermissions, allowDangerouslySkipPermissions: true и тому подобное. По сути это root'a, который работает вообще без ограничений. В связке с предыдущим симптомом работа такого агента превратится в бесконтрольную поставку кода (и не факт, что его будут ревьюить). Semgrep, кстати, такие штуки ловит хорошо, но по умолчанию они почти всегда включены.

Какие возникают риски?

Если сопоставить эти «симптомы» с OWASP LLM Top 10, то каждому симптому найдется своя пара:

  • LLM01 «prompt injection»: через промт‑инъекцию можно заставить ИИ‑агента выполнить shell/bash, например, тот же reverse shell

  • LLM02 «insecure output handling»: результат работы модели без проверки может привести к выполнению небезопасных команд shell/bash, git

  • LLM07 «insecure plugin/tool design»: MCP‑tools с слишком широкими правами

При низком уровне технического контроля и высоком уровне доверия ИИ‑агенту резко растёт вероятность реализации недопустимых событий: исполнение произвольных команд в shell (включая классический reverse shell), развёртывание криптомайнеров, считывание и выгрузка чувствительных файлов (SSH‑ключи, токены), незаметная модификация кода и конфигов с backdoor'ами, обход ограничений sandbox за счёт небезопасных mounts и docker.sock, боковое движение по инфраструктуре через git, CI/CD и внутренние API, а также утечки секретов через логи, analytics и внешние интеграции.

Безопасность ИИ‑агентов от разработчиков

Некоторые добросовестные разработчики закладывают следующее:

  • Sandbox по умолчанию. Например, тот же VibeKit вводят локальную Docker/Podman‑песочницу, через которую ведется работа с ИИ‑агентом: workspace ограничивается одним каталогом, сеть можно рубить, права контейнера ужесточать (спойлер, за день тестирования я пока так и не вышел из песочницы, удалось пока что максимум «уговорить» модель сходить за пределы /workspace)

  • Secrets management и redaction. Отдельные модули для хранения секретов

  • Observability с акцентом на безопасность. Логи, дашборды и analytics, заточенные не только под то, что сделал агент, но и куда он полез, с какими файлами работал, какие tools использовал

  • Документация по безопасной эксплуатации. Всё чаще появляется раздел «Security», в котором авторы честно говорят: запускайте нас в отдельных профилях, включайте sandbox, ограничивайте сеть, не давайте прямой доступ к прод‑секретам.

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

Системный подход: убрать слово «ИИ»

Если убрать слово «ИИ», все становится проще: перед нами просто сервис (на самом деле blackbox) с максимально широкими правами, который может читать и редактировать файлы, выполнять команды операционной системы, выполнять сетевые запросы, пушить код в git. NanoClaw, например, также заявляет, что их агент может самостоятельно переписывать /app/src/ (но руки проверить пока не дошли)

И дальше логика в разрезе безопасности становится проще: любую такую систему нужно оценивать через классические домены:

  • Идентификация, аутентификация и авторизация. Аутентифицировать актора (не важно, человек это или сервис), логировать факт входа, сохранять один к одному доступ актора/юзера/сервиса через агента с его доступами в целевой системе

  • Авторизация и минимальные привилегии ИИ‑агентов. Определить скоуп, что агент может делать: видеть только один репозиторий или монорепо? Иметь read‑only или право на запись? Запускать только тесты или ещё и миграции? Каждый ответ — это правило в policy

  • Изоляция: где именно крутится агент: в контейнере, на dev‑машине, в CI runner«е? Какие директории смонтированы, есть ли доступ к docker.sock, Kubernetes API?»

  • Сетевой контроль. Может ли агент вызывать внешние API? Только внутренние? Через прокси с фильтрацией доменов? Как отслеживаются попытки обратиться к адресам не из white‑list?

  • Логирование и мониторинг. Что пишется в логи и как долго они хранятся?

По сути, нужен не какой‑то новый хитровыдуманный фреймворк безопасности, а классический подход с пониманием, что из себя представляет LLM и ИИ‑агент под капотом:

  1. Статический анализ кода и конфигов (Semgrep/grep‑профиль под OWASP + LLM Top 10)

  2. Динамические тесты в лаборатории с honeypot‑файлами и включённой песочницей

  3. Чёткие правила authz: какие директории, какие tools и какие сети доступны

  4. Обязательный audit и алерты на нетипичные действия агента

Как бы больно ни было — не тормозите разработку

История циклична: сначала появляется удобный инструмент для разработчиков, потом приходит безопасность и говорит «подождите, так нельзя». С ИИ‑агентами это особенно заметно: люди видят, как можно «сэкономить два дня на миграциях» или «дать ИИ самому чинить мелкие баги», и логично, что такой инструмент хотят внедрить повсеместно (а сколько он денег потенциально экономит).

Главная задача безопасности — не тормозить это движение, а помочь сделать его управляемым.

  1. Вместе с командами разработки исследовать стэк ИИ‑агентов, декомпозировать на слои: модель, агент/обвязка, tools, sandbox, etc.

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

  3. Тестировать гипотезы в изолированной лаборатории с honeypot‑файлами и фейковыми секретами: сначала убедиться, что по умолчанию агент не видит и не делает ничего лишнего, а уже потом пускать его к реальным репозиториям.

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