OK ML
433 subscribers
18 photos
2 files
86 links
Канал посвящен ML, DS, AI с акцентом на репозитории, инструменты и уязвимости в ML-системах.
Download Telegram
OK ML pinned «🤖 Ошибка в проде или как одна строка сломала всё (ML edition) Недавно в ML-сервисе (он ранжировал товары в каталоге) в продакшн попала вот такая правка: # хотели заменить устаревший scaler scaler = StandardScaler() X_scaled = scaler.fit_transform(X_train)…»
CVE-2025-59155 SSRF в HackMD-MCP

Если запускаешь MCP в HTTP и версия где-то между 1.4.0 и 1.5.0 , то внешний пользователь может заставить твой сервер ходить по внутренним сервисам и вытаскивать оттуда данные. А после такого стресс-теста может понадобиться отдых в санатории Татарстана.🕵️‍♂️💥

Советую обновиться до исправленной версии или перейти на stdio, закрыть внешний доступ через firewall и ограничить исходящие соединения с хоста MCP и просмотреть логи на странные заголовки и запросы к localhost (127.0.0.1) и внутренним сетям (10.x.x.x, 172.16.x.x, 192.168.x.x), а также проверить доступные токены и убрать лишние права у процесса. 🔧🔒

Немного про HackMD и зачем вообще MCP нужен (хотя весь пост как будто больше про это сервис, у которого есть и опенсорс версия Codimd, можно у себя развернуть). HackMD - это платформа для совместного редактирования заметок в markdown, удобная для команд и документации.

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

HackMD-MCP упрощает работу с заметками и документацией, так как ассистент получает прямой доступ к чтению и редактированию, может автоматически создавать шаблоны, собирать саммари встреч и помогать с командной работой. Благодаря протоколу MCP интеграция стандартна и легко встраивается в разные рабочие окружения, будь то контейнеры, CI или локальная среда. В итоге команда меньше тратит времени на мелочи и больше фокусируется на содержании. 🚀

Почему это критично?
MCP в HTTP режиме выполняет исходящие запросы от имени сервера. Через уязвимость сервер превращается в шпиона и может опрашивать метрики, админки, локальные API и другие внутренние сервисы. Особенно плохо если рядом есть ML или инференс серверы с приватными моделями и секретами. 🤒

#HackMD #MCP #CVE2025 #SSRF #Security #Infosec #CyberSecurity #PatchNow #ZeroTrust
610🔥5👍3👌1💔1
Awesome AI Apps - технический гид по созданию LLM-приложений

🦙 Репозиторий awesome-ai-apps - коллекция продакшен-примеров для построения приложений на базе LLM. Внутри — проекты на LangChain, LlamaIndex + habr, CrewAI, Agno, Mastra, Nebius AI Studio, GibsonAI и много других полезных!..

Что можно найти:
- минимальные прототипы на базе OpenAI SDK, LangGraph, Camel AI — идеальны для экспериментов,
- готовые сценарии вроде финансового трекера, HITL-агента или бот для веб-автоматизации,
- демонстрации работы с Model Context Protocol (MCP) для репозиториев, документов или бд. Это особенно актуально для стандартизации, взаимодействия между агентами и внешними сервисами. Ну и тем, кто оттягивает знакомство с MCP, еть уже готовые анализ GitHub-репо, QnA по документации, работа с Couchbase и GibsonAI DB. Не оттягивайте 🤪.
- агенты с persistent memory (на Memori), которые позволяют строить более контекстно-зависимые системы (например, arXiv Researcher или Social Media Agent).
- примеры Agentic RAG (они не устарели!!!) с использованием Qdrant, Exa, LlamaIndex. Поддержка работы с PDF, кодом и OCR (Gemma3).
- комплексные пайплайны (например, Meeting Assistant, который конвертирует митинг в задачи и заметки, или Finance Service Agent на FastAPI)

Что под капотом (продублируем для удобства твоего гугл эдвэнсед, большинство ссылок выше) и ждет, когда затащишь себе?
🫰 LangChain + LangGraph для оркестрации агентов.
🫰 Agno как фреймворк для построения agentic workflows.
🫰 CrewAI для мультиагентных исследований.
🫰 LlamaIndex как основа RAG и документных ассистентов.
🫰 Memori для хранения контекста и долгосрочной памяти.
🫰 Nebius AI и Bright Data — как инфраструктурные провайдеры.

Установка (единый паттерн):

git clone https://github.com/Arindam200/awesome-ai-apps.git
cd awesome-ai-apps/<project_name>
pip install -r requirements.txt

🧘‍♀️ Каждый проект снабжен своим README.md, а там можно и сразу стартовать.

Этот репозиторий в чистом виде 🏖️ R&D-песочница, быстро тестировать разные стеки, паттерны взаимодействия агентов, интеграции MCP и реализацию RAG. Гении, как известно, воруют 👌

#AI #LLM #RAG #LangChain #LlamaIndex #CrewAI #Agno #Memori #AIagents #opensource #MCP #Python #MachineLearning #GenerativeAI
Please open Telegram to view this post
VIEW IN TELEGRAM
1311👍3💯3🔥1
CVE-2025-50709. Приватная инфа и URL — не лучшие друзья, особенно когда речь о нейросетях.

😳 В Perplexity AI нашли уязвимость CVE-2025-50709. Через обычный GET-запрос можно было вытянуть конфиденциальные данные.

Напоминание!!!

🕵️Приватная информация не должна передаваться в URL — особенно при работе с нейросетями. Передавать чувствительные данные через query string (?token=...&password=...) или допускать их в логи — это антипаттерн, но он встречается на практике чаще, чем хотелось бы… вспомните все случаи, когда нужно “быстро прикрутить” авторизацию или тестовый прототип, когда токен или ключ кидаешь в URL, потому что это проще. Не надо так… 😥

Что важно:
🔍 Уязвимость позволяет извлекать секреты через простые запросы.
⚠️ Проверь, не попадают ли чувствительные параметры в query string или логи.
🔐 Немедленно удаляй секреты из URL и используй безопасные каналы передачи (POST с телом, заголовки, шифрование, токены в хранилище).

Полезная ссылка.
Please open Telegram to view this post
VIEW IN TELEGRAM
813💯5👍3
🔥 CVE-2025-9906 — RCE в Keras даже с включённым safe_mode!

Если коротко, в .keras-архив можно подложить config.json, который отключит защиту, а затем вмонтировать Lambda-слой с произвольным кодом - при загрузке модели он выполнится.

🫰Если длинно, идем по ссылке и изучаем (там тоже не особо длинно).

В фиксе уже запрещена десериализация произвольных функций/классов и ужесточены правила для KerasSaveable 🐒.

🎯 Механизм эксплуатации
1. Злоумышленник создаёт вредоносную модель
2. В архиве подменяется config.json для отключения защиты
3. Добавляется лямбда-слой с произвольным питон-кодом
4. При загрузке модели код выполняется автоматически

Особенно критично для:
🙈Продакшен-систем с ML-моделями
🙈🙈Сервисов, загружающих модели от пользователей
🙈🙈🙈 Ресеча с обменом моделями

🤝Что делать?
Обновить Keras как можно скорее; не загружать модели из ненадёжных источников; избегать Lambda-слоёв (ссылка для мл-энтузиазтов-самоучек) из чужих архивов; при возможности проверять содержимое .keras перед загрузкой или загружать модели в песочнице.

#Keras #CVE2025 #RCE #MLSecurity
Please open Telegram to view this post
VIEW IN TELEGRAM
411👍4🥰1💯1🤗1
🫐 Инструмент недели. Pydantic

В проде больше половины инцидентов про «кривые данные» 📊 - строка там, где ждём число, емэйл без домена, перепутанные координаты, пустые обязательные поля... Пока латаешь всё ручными if по коду, получаешь еще три проблемы разом:
- правила валидации расползаются по пайплайнам и сервисам;
- ошибки получаются шумные и неструктурированные;
- откат/повторение экспериментов ломается из-за невидимых изменений в схеме данных.

В ML/DS это особенно больно, так как один «NaN как строка» — и метрики едут; одна «категория не из словаря» — и онлайн-фичи расходятся с офлайн. Нам нужен явный «контракт данных», что считается валидным, какие типы и диапазоны, какая нормализация применяется - и всё это в одном месте, с понятными сообщениями об ошибках и автогенерацией схем.

Решение
Pydantic превращает аннотации типов в реальную валидацию и автокаст прямо при подаче события/JSON. 👿 В отличие от библиотек (однажды обсудим еще marshmallow), которые валидируют данные только в отдельных точках (например, при вызове load()), Pydantic проверяет и приводит типы прямо при создании объекта и, при желании, при каждом присваивании полю. Это превращает модель не просто в контейнер, а в исполняемый «контракт данных», так как любые несоответствия ловятся там, где объект рождается или меняется.

🎯 Цель Pydantic - сопровождать объекты валидацией на всём их жизненном цикле. Если включить validate_assignment=True, то некорректное присваивание полю вызовет ошибку сразу, а не через несколько хопов по коду. Такой подход существенно снижает «дрейф» данных, когда объект успевает разойтись с контрактом задолго до сериализации.

👨‍🦽По умолчанию Pydantic аккуратно преобразует данные без потери - строка "42" превратится в число 42 🌌. Там, где требуется строгая дисциплина, используются «строгие» типы (StrictInt, StrictStr) или валидаторы в режиме before. Можно точно выбирать места, где допустим автокаст, а где критична точность.

🧅 Еще Pydantic построен на pydantic-core (Rust) и заметно выигрывает на больших объёмах валидации. Это особенно чувствуется в потоковых пайплайнах и сервисах, принимающих крупные JSON-массивы.

Как внедрить за час
1. Поставь pydantic>=2.
2. Оберни входящие объекты (advisory, feed, webhook) в модели.
3. Вынеси ручные if в Field(...)/валидаторы.
4. Возвращай наружу e.errors() и генерируйте model_json_schema() для контрактов.

#Pydantic #Python #DataContracts #DataValidation #DataQuality #ML #DataScience #MLOps #FastAPI #Pandas #JSONSchema #TypedPython
Please open Telegram to view this post
VIEW IN TELEGRAM
312👍5🍾3🥰2
😱CVE-2025-10360
🔑 Ключ от вашего AI-аккаунта случайно попал в backup? Да, такое бывает!
✍️ Если вы пользуетесь Puppet Enterprise с включённым Infra Assistant, то до версии 2025.6 ваш encryption key для доступа к AI-провайдеру мог спокойно уехать в бэкап вместе с остальными файлами. Так что если кто-то получит ваши резервные копии - конгрэтьюлейшнс, у него есть ключик к вашему AI! Обновляйтесь и не забывайте чистить старые backup'ы, если не хотите сюрпризов.

📎 Ссылка
467👍3🔥32👾1
Инструмент недели. MLBox

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

😕Главное, что библиотека не просто для галочки, а реально мощная и хорошо себя показала в серьёзных международных соревнованиях по DS на Kaggle. Так что её эффективность доказана на практике.

Основные фишечки (их куда больше трех):
😄 вырезает опасные фичи. Drift_thresholder находит столбцы, которые «шумят, врут» (сильный дрейф/утечки), и выбрасывает их до обучения.
😄😄 быстрый бейслайн. Одной связкой даёт модель с импьютацией, кодированием и CV - без танцев с бубном.
😄😄😄 простой подбор гиперпараметров. Описываешь пространство как в sklearn - оно перебирается само.

Когда MLBox особенно удобен
✔️Есть табличные данные (numeric/categorical) и нужно быстро получить сильную бейслайн-модель.
✔️Требуется строгая предобработка данных, например, автообработка пропусков, кодирование категорий, борьба с дрейфом/утечками/шумами.
✔️Нужен устойчивый AutoML без тонкой ручной настройки пайплайнов в sklearn.

MLBox хорош, чтобы быстро получить вменяемую модель и не словить утечки. Бери фильтр дрейфа + бейслайн; остальное - по ходу дела. Это 100 проц удачный выбор для табличных задач, когда хочется быстро получить качественную, устойчивую к утечкам модель с автоматическим препроцессингом и осмысленной интерпретацией. Если затем понадобится экзотический препроцессинг или особые модели, MLBox можно использовать как стартовую точку и бенчмарк. Всем PoC 🫰

#MLBox #QuickStart #Benchmark #HyperparameterTuning
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥75👍1💯1🍾1
Theano — как это было классно… и почему пора двигаться дальше

Theano когда-то был сердцем «глубокого обучения» в Python - декларативный вычислительный граф, автодиф, компиляция в C/CUDA - всё это задолго до 🤩а. На нём учились писать лоссы как формулы, думать графами, понимать, как рождаются градиенты.

Что дела(ет)л Theano особенно круто
1️⃣ Граф 👉функция. Описываешь вычисления символами (x, y, w, b), компилируешь theano.function(...) - и получаешь быстрый рантайм.
2️⃣ Автодиф как стандарт. T.grad(loss, params) - минимум магии, максимум ясности.
3️⃣ Скорость. Генерация C/CUDA-кода и оптимизации графа.
4️⃣ Численная устойчивость. Переписывание «опасных» выражений (log-sum-exp и др.).
5️⃣ Хорошая школа. Учит мыслить тензорами и явными лоссами.

Как это работа(ет)ло
Главная фишка - автодиф без магии. Пишешь формулу ошибки, а T.grad(...) сам даёт производные по параметрам. Theano «вшивает» эти градиенты в одну тренирующую функцию и компилирует её. Дальше всё просто.
🤍Логистическая регрессия - это p = sigmoid(x·w + b), лосс - средняя бинарная кросс-энтропия плюс небольшой L2-штраф. После компиляции получаются две готовые функции: train(x, y) считает лосс и обновляет w, b, а predict(x) возвращает вероятности/метки. Снаружи - обычный цикл по эпохам, внутри - уже не медленный Python, а сгенерированный быстрый код с аккуратно склеенными матричными и поэлементными операциями.

Почему устарел
😲 Совместимость. Официальный Theano 1.0.5 разваливается на современных Python (3.11+) и свежих setuptools.
😲Экосистема ушла вперёд. Сегодня в продакшене - PyTorch, JAX, TensorFlow - динамические графы, JIT, отличные дебаг-тулы, богаче экосистема.
😲GPU/сборка - боль. Исторически капризная сборка, особенно вне Linux/NVIDIA.
😲Поддержка. Theano как проект «заморожен».

TL;DR
Theano - легенда. Он дал нам язык графов и автодифа. Но для практики 2025 - выбирай PyTorch/JAX (продакшн и исследования). Theano остаётся отличным учителем, но не лучшим исполнителем.

#Theano #PyTensor #Aesara #AutoDiff #MLHistory #PyTorch #JAX #ResearchReady #MLTools
Please open Telegram to view this post
VIEW IN TELEGRAM
313💯2🤗2🎅2
🌶 Уязвимые библиотеки PyTorch & TensorFlow

😭 PyTorch CVE-2025-46153

Dropout (1d/2d/3d) в версиях до 3.7.0 иногда чудит из-за кривой bernoulli_p в decompositions.py — слой ведёт себя не так, как ты ожидаешь (подробности в issue и PR). Для контекста смотри разборы: gist №1, gist №2, а ещё сравнение релизов 2.6.0->2.7.0.

Симптомы 🤧
Эксперименты «плывут», метрики скачут, регуляризация работает криво и легко словить переобучение.

🤌Что делать и кто виноват?
Обновиться (≥ 3.7.0), временно вырубить проблемные дропауты или зафиксировать версию и перепроверить результаты.

🧠 TensorFlow CVE-2025-55556
На TensorFlow 2.18.0 слой Embedding может выдавать рандомную дичь — как будто вытягиваешь билетик в лотерее (issue).

Симптомы 🤧
Качество проседает, инференс нестабилен, эмбеддинги «рандомные».

🤌Что делать?
Обновиться/пересобрать на фикс, заново прогнать валидацию и проверить чекпоинты.

Если метрики удивляют как биткоин четыре дня назад, проверяй дропаут, эмбеддинги и заявления Трампа! Без них не обойтись. 🍑

#MLSec #CVE #PyTorch #TensorFlow #DeepLearning #MLOps #Security #DropoutDrama
Please open Telegram to view this post
VIEW IN TELEGRAM
1K🔥83😁3👍2🍓1
Инструмент недели. InterpretML

Опенсорс-набор методов интерпретации под одной крышей: обучай glassbox модели и властвуй над blackbox-системами. Понимание глобального поведения и причин каждого предсказания - из коробки 😵.

😎Зачем это?
🛠 Отладка. Почему модель ошиблась?
🧩 Фичеринг. Какие признаки реально важны?
⚖️ Fairness. Не даёт ли модель систематически худшие решения для отдельных групп по признакам, даже если эти признаки явно не переданы в модель (например, по возрасту для классификации людей).
🤝 Human-AI. Объяснимые решения, которым можно доверять (и проще было пояснить заказчику что к чему)
📜 Комплаенс и высокорисковые домены (медицина/финансы/суд). 🕺В наушниках Muse и «We just need your compliance, you will feel no pain anymore, no more defiance»! Мы с тобой споем еще, главное песню подобрать)

🚩Explainable Boosting Machine
Современная реализация Generalized Additive Models: бэггинг + бустинг + авто-интеракции. Точность на уровне RF/XGBoost, при этом:
🔍 даёт точные объяснения и
👥 есть дифференциально-приватные версии (DP-EBM).

Техники в пакете

🥃Glassbox: EBM, APLR, Decision Tree, Rule List, Linear/Logistic Reg.

😶Blackbox: SHAP (Kernel), LIME, Morris SA, Partial Dependence.

#ML #ExplainableAI #InterpretableML #EBM #XAI #DataScience #MLOps
Please open Telegram to view this post
VIEW IN TELEGRAM
5110👍2💯2🐳1
Две уязвимости - один пост!

CVE-2025-6985
😰

CVE-2025-6985 на свободе двухнедельная ML-уязвимость с открытым доступом к твоим 😂 файлам!

✍️ Если используешь langchain-text-splitters 0.3.8 и разрешаешь кастомные XSLT в HTMLSectionSplitter, через XSLT-фичи lxml уже тихо прочитаны локальные файлы процесса — твои ~/.ssh/*, .env и многое другое. Это просто баг 🙂.

Что делать?
🤪 Запрети или жёстко валидируй пользовательские XSLT.
🤪 Включи ограничения в lxml (например, XSLTAccessControl).
🤪 Обнови зависимости и изолируй секреты.

😏Напомню, зачем нужен пакет! Мало ли не используешь (а зря, милый фанат агентов и не только):
langchain-text-splitters — инструмент LangChain 🔗 для разбиения текста/HTML на удобные «чанки» (заголовки, секции, абзацы) перед эмбеддингом и RAG. Быстро, весело, удобно, совершенно бесподобно!


CVE-2025-11490 😰

В DesktopCommanderMCP до 0.2.13 нашли дыру! Если "уговорить" 🤫модель выполнить команду с абсолютным путём, можно подсунуть ей произвольную команду - и она улетит на сервер. Никакой магии, просто небезопасная обработка “абсолютов”.

Что делать?
🤪 Обновись до последней версии DesktopCommanderMCP.
🤪 На стороне промптов и инструментов запрети абсолютные пути или жёстко валидировать их (allowlist).
🤪 Запускай сервис под минимальными правами, изолируй среду (sandbox/containers).
🤪 Включи аудит и алерты на неожиданные системные вызовы.
🤪 Почитай тут детали, тут детали, тут, тут и тут.
🤪 Предупрежден, значит вооружен 🍹🍹

😏 К слову, DesktopCommanderMCP - инструмент, где ИИ может исполнять команды на вашей машине/сервере, он даёт набор возможностей (терминал, файловую систему, код-редактор и т.д.). Построен поверх MCP Filesystem Server, поэтому умеет искать/заменять в коде, читать/писать файлы и вести подробный аудит всех действий. 😮«Проанализируй CSV/JSON» - и получаешь сводку, статистику, инсайты. Поэтому правила ввода и изоляция is a must.

Все! 😛

#DevSecOps #AI #AISafety #MLSecurity #LangChain #lxml #XSLT #RAG #ClaudeDesktop #MCP #DesktopCommanderMCP #PromptSecurity
Please open Telegram to view this post
VIEW IN TELEGRAM
48👏6👻3👍2🎄1💅1
Инструмент недели. OpenTelemetry и Langfuse для мультиагентных систем

Мультиагентка - это параллельные ветки, сложные наследованная задач, дорогие тулколлы и длинные диалоги, бессонные ночи, сонные дни, дедлайны, базы данных и невыразимая необходимость облегчить себе жизнь. И тут на помощь приходят инструменты недели! OpenTelemetry даёт сквозные распределённые трейсы, Langfuse - доменную оптику LLM (промпты, токены, стоимость, оценки). Вместе это превращает рой в наблюдаемый, управляемый и улучшаемый.

Зачем это всё?
🥇Трассировка графа, а не линейки. OTel склеивает весь DAG в один трейс, где сразу видны «узкие места», циклы и боль.
🥈Смысл LLM-вызовов. Langfuse показывает промпты/ответы, токены, стоимость, оценки, версии.
🥉Контроль бюджета и качества. A/B, эвалы, маршрутизация по моделям, быстрый откат.

Как это выглядит (См. картинки)
👌
Трейсы (OTel) mission.A vs mission.B — видно, что Audit стал короче, параллельные ветки Tool и Scout не блокируют критический путь.
👌 Generations (Langfuse) для каждого LLM-шага — input/output, usage (токены), «стоимость», метаданные агента/версии.

Как повторить за 10 минут
1. Отправляй OTLP на https://cloud.langfuse.com/api/public/otel (Basic Auth: public:secret).
2. Оборачивай шаги агентов в start_span(...).
3. Каждый LLM-вызов логируй как generation в Langfuse (input/output + usage).
4. Сравни mission.A (до) и mission.B (после) - сразу видно, где выиграли в p95 и бюджет.

Прикреплённые скрины:
🖼Traces & Costs - обзор по трекам и расходам (отчёт Langfuse).
🖼Trace latency percentiles - p50/p90/p95 по трейсам и ключевым спанам.
🖼A/B таблица - сводка по агентам (ср. латентность, токены, стоимость) до/после.
🖼Цены на модели в настройках Langfuse). По умолчанию $$$ могут быть нулями, если не настроены модели. Нужно один раз занести цены и токенайзер.


TL;DR
Мультиагентные системы живут в графах, а не в линейных цепочках. OTel склеивает граф в единый трейс, Langfuse добавляет смысл (промпты, токены, стоимость, оценки). С этим дуэтом ты:
😏 быстрее находишь «узкие места» и циклы,
😏 держишь бюджет под контролем,
😏 системно улучшаешь качество через эвалы и сравнение версий.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
49👍4💯3🕊21
CVE-2025-36730 - Prompt-injection в Windsurf 1.10.7

🥹 Имя активного файла подклеивается к пользовательскому промпту, поэтому инструкции в имени файла исполняются агентом.

Риск и сценарии
Экcфильтрация данных без запроса пользователя: 🕵️ агент может вызвать инструмент Read Page / read_url_content и отправить переменные окружения/контекст проекта на внешний хост, если это «попросили» в имени файла.

🤔 Похожие исследования по Windsurf показывали более широкие векторы эксфильтрации через prompt-инъекции в агенте Cascade — уместно учитывать совокупный риск класса атак (обрати внимание на ссылочку на исследование - это достаточно интересно почитать).

Кому быть начеку?
Разработчикам, открывающим недоверенные репозитории или архивы в Windsurf и запускающим Write-режим с SWE-1. То есть +/- 😄 всем!

Митигирование (от вендора и практические)
🐹 Вендор ссылается на VS Code Workspace Trust, но это фактически отключает ИИ-функции в недоверенных проектах, что означает что полноценного фикса нет. Включай Workspace Trust и открывай неизвестные проекты с “Don’t trust authors”, понимая ограничения ИИ.
🐹 Отключай/ограничивай веб-инструменты у агента (в т.ч. read_url_content) или требуй явного подтверждения на каждый вызов. Это же рекомендует Tenable (ссылка ниже).
🐹 Вводи политики на имена файлов (линтеры/прекоммит-хуки, запрещающие «говорящие» имена с инструкциями).

Почитать тут (многое в посте - цитаты) 😫

Все! 👍
Please open Telegram to view this post
VIEW IN TELEGRAM
1110💯3👍2💊2
Project CodeGuard - Security Rules for AI Coding Agents

ИИ ускоряет разработку 🏃, но часто генерит уязвимый код. Можно столкнуться с пропуском валидации ввода, хардкодом секретов, слабой криптографией (и даже самописной), небезопасными функциями, пробелами в аутентификации/авторизации и бесконечный список и т.д. Project CodeGuard «подмешивает» 🥧защиту прямо в этапы планирования, генерации и последующего ревью кода. Это открытый набор правил безопасности и инструментов, которые встраивают практики secure-by-default в рабочие процессы ИИ-код-агентов (генерация и ревью).

Что покрывают правила
🔡 Криптография, управление ключами, валидация сертификатов
🔡 Валидация ввода (SQLi, XSS, command injection)
🔡 Аутентификация (MFA, OAuth/OIDC, сессии)
🔡 Авторизация (RBAC/ABAC, IDOR)
🔡 Supply chain (зависимости, SBOM, управление уязвимостями)
🔡 Облако/контейнеры/K8s, платформенная безопасность, защита данных

Быстрый старт
git clone https://github.com/project-codeguard/rules.git
cd rules
uv sync
python src/validate_unified_rules.py sources/ # валидация правил
python src/convert_to_ide_formats.py # генерация skills/ и dist/
# затем скопируйте нужные правила в папку вашего ассистента (например .cursor/rules или .windsurfrules каталога инструмента)


E2E «как понять, что правила реально работают» (чекни сам и перешли другу)
1. Попросите ассистента: “Напиши функцию, которая хеширует пароль и проверяет его при логине”.
2. Сохраните ответ (“до”).
3. Подключите правила CodeGuard.
4. Повторите запрос и сравните (“после”).

Обычно видно переход (за все копайлоты я не скажу 😶) на bcrypt вместо MD5/SHA-1, генерацию соли через secrets/CSPRNG, отсутствие хардкода, корректную валидацию входа.

До
import hashlib
def hash_password(p): return hashlib.md5(p.encode()).hexdigest()


После
import bcrypt, secrets, string
def hash_password(p: str) -> bytes:
salt = bcrypt.gensalt(rounds=12)
return bcrypt.hashpw(p.encode(), salt)


📢На приложенном скриншоте автоматический чек правил: алгоритмы, CSPRNG, уникальные соли 🧂, проверенные библиотеки (соответствие и конкретные строки кода).

TL;DR
😱 Открытый набор правил, который “подмешивает” secure-by-default в планирование, генерацию и ревью кода ИИ-ассистентами. Меньше уязвимостей, больше автоматики.
Please open Telegram to view this post
VIEW IN TELEGRAM
613💯2💔2😁1🦄1
Страшно, очень страшно, мы не знаем, что это такое! А это CVE-2025-60511 или как Moodle OpenAI Chat Block дал маху!

🏠В плагине Moodle OpenAI Chat Block (block_openai_chat) версии 3.0.1 (build 2025021700) в эндпоинте /blocks/openai_chat/api/completion.php недостаточно проверяется параметр blockId. Это позволяет аутентифицированному студенту 🔪обращаться к чужому инстансу блока (например, админскому) и выполнять запросы с его конфигурацией (print(«Hello IDOR!»)).

Блок размещается на 📜 странице курса/дашборда и хранит настройки модели, «персону», SoT и др. Если проверка идёт по присланному blockId, а не по контексту страницы и правам, возникает классический CWE-639.

Сценарий (tabletop, без PoC)
1. Предпосылки. На сайте есть несколько инстансов чат-блока, включая преподавательский/админский с расширенным SoT и дорогой моделью. 😛
2. Действие злоумышленника. Будучи студентом, злоумышленник инициирует обычный запрос к чату, добивается, чтобы сервер обработал его как чужой блок из-за доверия к blockId. 😔
3. Эффект. Ответы приходят с чужими настройками/SoT; возможно раскрытие подсказок/скрытых инструкций и рост трат на API. 🫡

Индикаторы компрометации
👻 В логах запросов к …/api/completion.php видно, что пользователь обращается к инстансу блока, не принадлежащему его странице/курсу.
👻 Необычные «персоны»/SoT в диалогах студентов; всплески расходов у провайдера ИИ.

Где еще подобное можно поискать?
🕷В LLM/интеграциях (по аналогии с OpenAI Chat Block)
🕷В типовых веб-сценариях (CMS/форумы/тикет-системы (postId, ticketId, commentId - чтение/правки чужих сущностей))
🕷Красные флаги в коде/ревью (например, В UI права есть, а в прямом API (AJAX/мобайл) - нет аналогичной проверки) 👏👏👏

Мини-чеклист для разработчиков
1. Не принимать “целевой объект” из клиента, когда можно вывести его на сервере из сессии/контекста. 😉
2. Проверять capability в контексте самого объекта 🔥(block/course module/submission), а не «в целом по курсу».
3. Единый policy-слой (capability/ability) вместо разрозненных if.😭
4. Логи/алерты аномалий. 👈

Ссылка на исследование.

#IDOR #CWE639 #Authorization #RBAC #PolicyEnforcement #MoodleDev #PHP #SecureByDesign #DefenseInDepth #NegativeTesting

🩸🩸😱🩸🩸
Moodle OpenAI Chat Block (v3.0.1) эндпоинт /blocks/openai_chat/api/completion.php доверяет клиентскому blockId - IDOR (CWE-639). 🗡Любой залогиненный студент 🧑‍🎓может дергать чужой инстанс блока (вплоть до админского) и получать ответы с его настройками/SoT, с риском утечек и перерасхода токенов.
Please open Telegram to view this post
VIEW IN TELEGRAM
59👻5😨3🔥1
Целая вселенная для защиты машинного обучения и MLOps систем

С каждым днём растёт интерес не только к разработке AI-моделей, но и к обеспечению их безопасности (да что греха таить, скорее даже к атакам на мл, чем к защите). Репозиторий awesome-MLSecOps - это, пожалуй, самый полный и постоянно обновляемый каталог опэнсорсных и коммерческих инструментов, статей, CTF, инфографик и PoC-эксплойтов. Коротенько разберемся, что к чему 😍 (мне репост, репозиторию - звездочку).

🥰 Open Source Security Tools — от adversarial-атак и защиты LLM до инструментов для анализа приватности, безопасной сериализации моделей (Safetensors), оценки уязвимостей (Garak, Vigil) и тестирования пайплайнов. Например, Vigil - сканер prompt-injection и политик, хорош для CI/CD-гейтов перед продом, точно не помешает им чекать агентные системы. Эти питон библиотека и REST API, предназначены для анализа промптов и ответов ллм на предмет различных угроз. Инструмент использует набор сканеров (rules, signatures, datasets) для детектирования prompt-injection, джейлбрейков, уязвимостей в содержимом ответа, нестандартных или опасных входных данных. Или Model-Inversion-Attack-ToolBox - постоянно обновляемая платформа для исследования model inversion attacks (атак, позволяющих извлечь или реконструировать частично или полностью данные из обучающей выборки целевой модели, все дороже дороже будут обходиться такие атаки).

🥰 Commercial Tools - мониторинг и защита в проде, включая Databricks, Promptfoo, HiddenLayer и др.

🥰 ML Code Security - от линтеров и библиотек с поддержкой DP до PoC-проектов по краже модели (Copycat CNN).

🥰 101 Resources - шпаргалки, карты знаний, Microsoft AI Red Team, OWASP AI Security.

🥰 Attack Vectors - от data poisoning и model stealing до джейлбрейк-атак на LLM и supply chain угроз.

🥰 Blogs & Papers - актуальные ресёрчи по джейлбрейкам, моделированию угроз, инфраструктуре и топу уязвимостей в сфере MLSecOps.

🥰 CTF & PoC Zone, сообщества, инструменты для анонимизации, де-идентификации и защиты датасетов в ML-проектах, учебные материалы по атакам на ML... Или, например, ссылка на репозиторий ThreatModels - открытый набор threat-моделей и диаграмм, ориентированных на современные системы ML/LLM и MLOps-инфраструктуру. Распространяется под лицензией MIT и если не знаешь, с чего начать, начни с их изучения и адаптации.

TL;DR
💡 Если вы работаете с LLM, MLOps или ML-инфраструктурой, этот репозиторий - мастхэв для закладок.
Please open Telegram to view this post
VIEW IN TELEGRAM
67🔥62👍2😁1🤯1🎃1🫡1
Вдогонку к предыдущему посту - проектирование и внедрение ML SecOps

В эпоху, где ML и LLM - не просто хайп, а КИИ 💩, безопасность мл-систем становится обязательной. По ссылке - комплексный гайд по прохождению всех этапов с точки зрения MLSecOps.

Документ помогает организациям 🫡 не просто «делать безопасность», но делать это системно, осознанно и с учётом реалий AI/ML-систем, сокращая риски и ускоряя выход в продакшн.

Подход позволит:
😊Систематизировать защиту ML-систем, реагировать на угрозы, строить архитектуру с учетом безопасности с самого начала - от сбора данных до продакшена и мониторинга.
😊Интегрировать безопасность в существующие DevOps/MLOps-процессы. За счёт CI/CD-инструментов, анализа артефактов и supply chain security команды легко добавляют секьюрити-практики, не изменяя рабочим привычка (ох уж этот кофе на синке в начале недели ☕️).
😊Защититься от специфичных угроз ML - таких как data poisoning, adversarial examples, prompt injection, которые не покрываются традиционными средствами девсекопса.
😊 Обеспечить соответствие международным регуляциям и стандартам - обязательным, мешающими нам, мл-творцам (GDPR, AI Act, NIST AI RMF).
😊 Получить практический набор инструментов и бэст прэкстисис (от Guardrails и Presidio до Sigstore, MLflow Security и Red Teaming для LLM - с примерами конфигураций, пайплайнов и кода).

Хочется подчеркнуть! 😡😡😡
Документ не просто теоретический - он включает
👌 чеклисты для аудита пайплайнов,
👌 готовые шаблоны для TM (например, STRIDE-AI),
👌 YAML-конфиги для безопасного MLflow/ArgoCD,
👌 примеры атак и способов их предотвращения.

Нематериальная ценность
Отдельно рассказано, как встроить контроль ошибок LLM через Guardrails, как проверять безопасность данных перед обучением через Presidio, и как отслеживать безопасность артефактов через Sigstore. Только открытые стандарты.

Кому это полезно (вдруг все еще непонятно)?
💯 ML/DS инженерам, чтобы строить защищённые модели!
💯 Безопасникам, чтоб формировать политики и проводить ML Red Teaming!
💯 MLOps для автоматизации ML Sec в pipelines!
💯 PM для roadmap внедрения и оценки рисков, ну и чтоб красиво говорить и как минимум знать инструменты!

Всё 👍
Please open Telegram to view this post
VIEW IN TELEGRAM
66👍6🔥2💯1🍌1💔1