😱CVE-2025-10360
🔑 Ключ от вашего AI-аккаунта случайно попал в backup? Да, такое бывает!
✍️ Если вы пользуетесь Puppet Enterprise с включённым Infra Assistant, то до версии 2025.6 ваш encryption key для доступа к AI-провайдеру мог спокойно уехать в бэкап вместе с остальными файлами. Так что если кто-то получит ваши резервные копии - конгрэтьюлейшнс, у него есть ключик к вашему AI! Обновляйтесь и не забывайте чистить старые backup'ы, если не хотите сюрпризов.
📎 Ссылка
🔑 Ключ от вашего AI-аккаунта случайно попал в backup? Да, такое бывает!
✍️ Если вы пользуетесь Puppet Enterprise с включённым Infra Assistant, то до версии 2025.6 ваш encryption key для доступа к AI-провайдеру мог спокойно уехать в бэкап вместе с остальными файлами. Так что если кто-то получит ваши резервные копии - конгрэтьюлейшнс, у него есть ключик к вашему AI! Обновляйтесь и не забывайте чистить старые backup'ы, если не хотите сюрпризов.
📎 Ссылка
46❤7👍3🔥3⚡2👾1
Инструмент недели. MLBox
MLBox - это универсальный инструмент для машинного обучения. Представь, что у тебя есть куча сырых данных - эта библиотека берёт и делает с ними почти всё автоматически: чистит, подбирает нужные фичи, настраивает модель и в итоге выдает готовое решение.
😕 Главное, что библиотека не просто для галочки, а реально мощная и хорошо себя показала в серьёзных международных соревнованиях по DS на Kaggle. Так что её эффективность доказана на практике.
Основные фишечки (их куда больше трех):
😄 вырезает опасные фичи. Drift_thresholder находит столбцы, которые «шумят, врут» (сильный дрейф/утечки), и выбрасывает их до обучения.
😄 😄 быстрый бейслайн. Одной связкой даёт модель с импьютацией, кодированием и CV - без танцев с бубном.
😄 😄 😄 простой подбор гиперпараметров. Описываешь пространство как в sklearn - оно перебирается само.
Когда MLBox особенно удобен
✔️ Есть табличные данные (numeric/categorical) и нужно быстро получить сильную бейслайн-модель.
✔️ Требуется строгая предобработка данных, например, автообработка пропусков, кодирование категорий, борьба с дрейфом/утечками/шумами.
✔️ Нужен устойчивый AutoML без тонкой ручной настройки пайплайнов в sklearn.
MLBox хорош, чтобы быстро получить вменяемую модель и не словить утечки. Бери фильтр дрейфа + бейслайн; остальное - по ходу дела. Это 100 проц удачный выбор для табличных задач, когда хочется быстро получить качественную, устойчивую к утечкам модель с автоматическим препроцессингом и осмысленной интерпретацией. Если затем понадобится экзотический препроцессинг или особые модели, MLBox можно использовать как стартовую точку и бенчмарк. Всем PoC 🫰
#MLBox #QuickStart #Benchmark #HyperparameterTuning
MLBox - это универсальный инструмент для машинного обучения. Представь, что у тебя есть куча сырых данных - эта библиотека берёт и делает с ними почти всё автоматически: чистит, подбирает нужные фичи, настраивает модель и в итоге выдает готовое решение.
Основные фишечки (их куда больше трех):
Когда MLBox особенно удобен
MLBox хорош, чтобы быстро получить вменяемую модель и не словить утечки. Бери фильтр дрейфа + бейслайн; остальное - по ходу дела. Это 100 проц удачный выбор для табличных задач, когда хочется быстро получить качественную, устойчивую к утечкам модель с автоматическим препроцессингом и осмысленной интерпретацией. Если затем понадобится экзотический препроцессинг или особые модели, MLBox можно использовать как стартовую точку и бенчмарк. Всем PoC 🫰
#MLBox #QuickStart #Benchmark #HyperparameterTuning
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥7❤5👍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
Theano когда-то был сердцем «глубокого обучения» в Python - декларативный вычислительный граф, автодиф, компиляция в C/CUDA - всё это задолго до
Что дела
1️⃣ Граф
2️⃣ Автодиф как стандарт. T.grad(loss, params) - минимум магии, максимум ясности.
3️⃣ Скорость. Генерация C/CUDA-кода и оптимизации графа.
4️⃣ Численная устойчивость. Переписывание «опасных» выражений (log-sum-exp и др.).
5️⃣ Хорошая школа. Учит мыслить тензорами и явными лоссами.
Как это работа
Главная фишка - автодиф без магии. Пишешь формулу ошибки, а T.grad(...) сам даёт производные по параметрам. 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
3❤13💯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
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🔥8❤3😁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
Опенсорс-набор методов интерпретации под одной крышей: обучай glassbox модели и властвуй над blackbox-системами. Понимание глобального поведения и причин каждого предсказания - из коробки
🛠 Отладка. Почему модель ошиблась?
🧩 Фичеринг. Какие признаки реально важны?
⚖️ Fairness. Не даёт ли модель систематически худшие решения для отдельных групп по признакам, даже если эти признаки явно не переданы в модель (например, по возрасту для классификации людей).
🤝 Human-AI. Объяснимые решения, которым можно доверять (и проще было пояснить заказчику что к чему)
📜 Комплаенс и высокорисковые домены (медицина/финансы/суд).
Современная реализация Generalized Additive Models: бэггинг + бустинг + авто-интеракции. Точность на уровне RF/XGBoost, при этом:
🔍 даёт точные объяснения и
👥 есть дифференциально-приватные версии (DP-EBM).
Техники в пакете
#ML #ExplainableAI #InterpretableML #EBM #XAI #DataScience #MLOps
Please open Telegram to view this post
VIEW IN TELEGRAM
51❤10👍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
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
CVE-2025-11490 😰
В DesktopCommanderMCP до 0.2.13 нашли дыру! Если "уговорить"
Что делать?
🤪 Обновись до последней версии DesktopCommanderMCP.
🤪 На стороне промптов и инструментов запрети абсолютные пути или жёстко валидировать их (allowlist).
🤪 Запускай сервис под минимальными правами, изолируй среду (sandbox/containers).
🤪 Включи аудит и алерты на неожиданные системные вызовы.
🤪 Почитай тут детали, тут детали, тут, тут и тут.
🤪 Предупрежден, значит вооружен
😏 К слову, DesktopCommanderMCP - инструмент, где ИИ может исполнять команды на вашей машине/сервере, он даёт набор возможностей (терминал, файловую систему, код-редактор и т.д.). Построен поверх MCP Filesystem Server, поэтому умеет искать/заменять в коде, читать/писать файлы и вести подробный аудит всех действий.
Все!
#DevSecOps #AI #AISafety #MLSecurity #LangChain #lxml #XSLT #RAG #ClaudeDesktop #MCP #DesktopCommanderMCP #PromptSecurity
Please open Telegram to view this post
VIEW IN TELEGRAM
4❤8👏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 добавляет смысл (промпты, токены, стоимость, оценки). С этим дуэтом ты:
😏 быстрее находишь «узкие места» и циклы,
😏 держишь бюджет под контролем,
😏 системно улучшаешь качество через эвалы и сравнение версий.
Мультиагентка - это параллельные ветки, сложные наследованная задач, дорогие тулколлы и длинные диалоги, бессонные ночи, сонные дни, дедлайны, базы данных и невыразимая необходимость облегчить себе жизнь. И тут на помощь приходят инструменты недели! OpenTelemetry даёт сквозные распределённые трейсы, Langfuse - доменную оптику LLM (промпты, токены, стоимость, оценки). Вместе это превращает рой в наблюдаемый, управляемый и улучшаемый.
Зачем это всё?
Как это выглядит (См. картинки)
👌 Трейсы (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 и бюджет.
Прикреплённые скрины:
TL;DR
Мультиагентные системы живут в графах, а не в линейных цепочках. OTel склеивает граф в единый трейс, Langfuse добавляет смысл (промпты, токены, стоимость, оценки). С этим дуэтом ты:
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
4❤9👍4💯3🕊2✍1
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 (ссылка ниже).
🐹 Вводи политики на имена файлов (линтеры/прекоммит-хуки, запрещающие «говорящие» имена с инструкциями).
Почитать тут (многое в посте - цитаты)😫
Все!👍
Риск и сценарии
Экcфильтрация данных без запроса пользователя: 🕵️ агент может вызвать инструмент Read Page / read_url_content и отправить переменные окружения/контекст проекта на внешний хост, если это «попросили» в имени файла.
Кому быть начеку?
Разработчикам, открывающим недоверенные репозитории или архивы в Windsurf и запускающим Write-режим с SWE-1. То есть +/-
Митигирование (от вендора и практические)
Почитать тут (многое в посте - цитаты)
Все!
Please open Telegram to view this post
VIEW IN TELEGRAM
11❤10💯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, платформенная безопасность, защита данных
Быстрый старт
E2E «как понять, что правила реально работают» (чекни сам и перешли другу)
1. Попросите ассистента: “Напиши функцию, которая хеширует пароль и проверяет его при логине”.
2. Сохраните ответ (“до”).
3. Подключите правила CodeGuard.
4. Повторите запрос и сравните (“после”).
Обычно видно переход (за все копайлоты я не скажу😶 ) на bcrypt вместо MD5/SHA-1, генерацию соли через secrets/CSPRNG, отсутствие хардкода, корректную валидацию входа.
До
После
📢 На приложенном скриншоте автоматический чек правил: алгоритмы, CSPRNG, уникальные соли 🧂 , проверенные библиотеки (соответствие и конкретные строки кода).
TL;DR
😱 Открытый набор правил, который “подмешивает” secure-by-default в планирование, генерацию и ревью кода ИИ-ассистентами. Меньше уязвимостей, больше автоматики.
ИИ ускоряет разработку
Что покрывают правила
Быстрый старт
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. Повторите запрос и сравните (“после”).
Обычно видно переход (за все копайлоты я не скажу
До
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)
TL;DR
Please open Telegram to view this post
VIEW IN TELEGRAM
6❤13💯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, с риском утечек и перерасхода токенов.
Блок размещается на 📜 странице курса/дашборда и хранит настройки модели, «персону», SoT и др. Если проверка идёт по присланному blockId, а не по контексту страницы и правам, возникает классический CWE-639.
Сценарий (tabletop, без PoC)
1. Предпосылки. На сайте есть несколько инстансов чат-блока, включая преподавательский/админский с расширенным SoT и дорогой моделью.
2. Действие злоумышленника. Будучи студентом, злоумышленник инициирует обычный запрос к чату, добивается, чтобы сервер обработал его как чужой блок из-за доверия к blockId.
3. Эффект. Ответы приходят с чужими настройками/SoT; возможно раскрытие подсказок/скрытых инструкций и рост трат на API.
Индикаторы компрометации
Где еще подобное можно поискать?
Мини-чеклист для разработчиков
1. Не принимать “целевой объект” из клиента, когда можно вывести его на сервере из сессии/контекста.
2. Проверять capability в контексте самого объекта
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).
Please open Telegram to view this post
VIEW IN TELEGRAM
5❤9👻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-инфраструктурой, этот репозиторий - мастхэв для закладок.
TL;DR
💡 Если вы работаете с LLM, MLOps или ML-инфраструктурой, этот репозиторий - мастхэв для закладок.
Please open Telegram to view this post
VIEW IN TELEGRAM
6❤7🔥6✍2👍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 внедрения и оценки рисков, ну и чтоб красиво говорить и как минимум знать инструменты!
Всё👍
В эпоху, где ML и LLM - не просто хайп, а КИИ
Документ помогает организациям
Подход позволит:
Хочется подчеркнуть!
Документ не просто теоретический - он включает
Нематериальная ценность
Отдельно рассказано, как встроить контроль ошибок LLM через Guardrails, как проверять безопасность данных перед обучением через Presidio, и как отслеживать безопасность артефактов через Sigstore. Только открытые стандарты.
Кому это полезно (вдруг все еще непонятно)?
Всё
Please open Telegram to view this post
VIEW IN TELEGRAM
6❤6👍6🔥2💯1🍌1💔1
CVE-2025-8709 🗺
В langgraph-checkpoint-sqlite версии 2.0.10 операторы $eq, $ne, $gt, $lt, $gte, $lte использовались для построения SQL-запросов через обычную конкатенацию строк и как результат - привет, классическая SQL-инъекция, позволяющая злоумышленнику выполнять произвольные SQL-команды и вытаскивать из базы конфиденциальные данные (пароли, API-ключи и т.д.). Значения в целом экранируются, но ключи JSON-path (части вида $.<key> ) подставляются в SQL без какой-либо санитации. Это позволяет создать специально сконструированный ключ, который «вырвется» из JSON-path и добавит логические/OR-условия в SQL и как результат - обход фильтров и чтение всех записей.
🧩 Кейс (коротко)
Разработчик/внешний исследователь отправляет в API фильтр с специально сформированным значением (например, в поле фильтра $gt или $eq) - строка подставляется в SQL без параметризации, итоговый SQL становится управляемым извне. Это даёт доступ к любым строкам/таблицам SQLite, обходу контроля доступа и утечке секретов. Подробности и отчёт - на Huntr и в публичных базах уязвимостей.
Root cause. Конкатенация ключа в SQL.
Значение экранируется, ключ -👎 .
Идея🧠
Вместо нормального ключа access подставить строку, которая разрывает JSON-path и добавляет OR '1'='1':
Это приведёт к тому, что итоговое условие в WHERE станет эквивалентно ... OR '1'='1', и база вернёт все документы (включая приватные).
Быстрые проверки
1️⃣ Найти упоминание модуля
2️⃣ Найти JSON-extract/конкатенации
3️⃣ Логировать подозрительные фильтры (длинные ключи, неалфавитные символы) и искать аномальные SELECT в логах.
❓ Что такое langgraph-checkpoint-sqlite и для чего он нужен
langgraph-checkpoint-sqlite - реализация «checkpoint saver» для LangGraph, которая сохраняет состояния/документы/чекпоинты в SQLite (синхронно и асинхронно через aiosqlite). Проще говоря, это компонент, который отвечает за локальное хранение данных (контента, метаданных и даже эмбеддингов/индексов чекпоинтов) в приложениях, использующих LangGraph/LangChain. Именно поэтому уязвимость в этом модуле ставит под угрозу данные приложений, которые полагаются на локальное SQLite-хранилище.
Всё!😐
В langgraph-checkpoint-sqlite версии 2.0.10 операторы $eq, $ne, $gt, $lt, $gte, $lte использовались для построения SQL-запросов через обычную конкатенацию строк и как результат - привет, классическая SQL-инъекция, позволяющая злоумышленнику выполнять произвольные SQL-команды и вытаскивать из базы конфиденциальные данные (пароли, API-ключи и т.д.). Значения в целом экранируются, но ключи JSON-path (
Разработчик/внешний исследователь отправляет в API фильтр с специально сформированным значением (например, в поле фильтра $gt или $eq) - строка подставляется в SQL без параметризации, итоговый SQL становится управляемым извне. Это даёт доступ к любым строкам/таблицам SQLite, обходу контроля доступа и утечке секретов. Подробности и отчёт - на Huntr и в публичных базах уязвимостей.
Root cause. Конкатенация ключа в SQL.
"json_extract(value, '$." + key + "') = '" + value.replace("'", "''") + "'"Значение экранируется, ключ -
Идея
Вместо нормального ключа access подставить строку, которая разрывает JSON-path и добавляет OR '1'='1':
malicious_key = "access') = 'public' OR '1'='1' OR json_extract(value, '$."
# затем: store.search(("docs",), filter={malicious_key: "dummy"})
Это приведёт к тому, что итоговое условие в WHERE станет эквивалентно ... OR '1'='1', и база вернёт все документы (включая приватные).
Быстрые проверки
grep -R "langgraph-checkpoint-sqlite" -n .
rg "langgraph.*checkpoint|SqliteStore" || true
rg "json_extract\(value" -n .
rg "json_extract\(.*\+ key" -n .
❓ Что такое langgraph-checkpoint-sqlite и для чего он нужен
langgraph-checkpoint-sqlite - реализация «checkpoint saver» для LangGraph, которая сохраняет состояния/документы/чекпоинты в SQLite (синхронно и асинхронно через aiosqlite). Проще говоря, это компонент, который отвечает за локальное хранение данных (контента, метаданных и даже эмбеддингов/индексов чекпоинтов) в приложениях, использующих LangGraph/LangChain. Именно поэтому уязвимость в этом модуле ставит под угрозу данные приложений, которые полагаются на локальное SQLite-хранилище.
Всё!
Please open Telegram to view this post
VIEW IN TELEGRAM
5❤10🆒5😁3👍2🔥1
MetaGPT + AFLOW - автоматизация разработки приложений с LLM
Сегодня в общих чертах🏋️♀️ о двух мощных проектах из экосистемы FoundationAgents, которые меняют подход к созданию приложений с помощью ЛЛМ, MetaGPT и AFLOW, опубликованная на ICLR 2025.
Суть MetaGPT - от одной строки на естественном языке переходим к сгенерированному репозиторию с кодом и документацией🕺 .
🔹 MetaGPT моделирует работу целой софтверной компании, где у каждого агента своя роль (продукт-менеджер, системный архитектор, разработчик, тестировщик, безопасник (хаха, попались,безопасника нет, по крайней мере не нашлось явного встроенного агента-“безопасника”🛡 или охранной роли, которая бы отвечала исключительно за безопасность 😨 (security & guardrail) в смысле аудита кода, проверки уязвимостей, защиты от вредоносных либо небезопасных действий) и т. д. 🤔
🔹 Роли координируются между собой, сначала пишутся требования, потом генерируются структуры/классы, API, тесты, README, и даже создаётся Git-репозиторий.
🐹 Всё это, конечно, с помощью LLM, включая GPT-4/Claude/DeepSeek
В свою очередь AFLOW - автоматический генератор агентных воркфлоу.😺 Чтобы LLM-система уверенно справлялась с реальными задачами (код, математика, аналитика), часто всё упирается в сложный и ручной дизайн воркфлоу (себя проверить, себя подправить, собрать несколько ответов, выбрать лучший). А еще AFLOW использует поиск Monte Carlo Tree Search, чтобы автоматически находить лучшие структуры в виде программного кода!
Результаты:
😎 +5.7% к качеству по сравнению с вручную написанными пайплайнами
😎 Меньшие модели типа GPT-4o-mini с workflow от AFLOW обгоняют GPT-4 в задачах QA/Math/Code — при 4.5% стоимости 🤯
😎 Работает на наборах вроде GSM8K, HumanEval, DROP
Сочетание MetaGPT + AFLOW
Если MetaGPT по сути пишет код, то AFLOW - это «инженер, придумывающий лучший способ заставить LLM думать». Это крутой тандем, когда одним промптом генерируется проект, а AFLOW автоматически находит для него оптимальные агентные цепочки.
Всё!🤩
Сегодня в общих чертах
Суть MetaGPT - от одной строки на естественном языке переходим к сгенерированному репозиторию с кодом и документацией
🔹 MetaGPT моделирует работу целой софтверной компании, где у каждого агента своя роль (продукт-менеджер, системный архитектор, разработчик, тестировщик, безопасник (хаха, попались,безопасника нет, по крайней мере не нашлось явного встроенного агента-“безопасника”
🔹 Роли координируются между собой, сначала пишутся требования, потом генерируются структуры/классы, API, тесты, README, и даже создаётся Git-репозиторий.
В свою очередь AFLOW - автоматический генератор агентных воркфлоу.
Результаты:
Сочетание MetaGPT + AFLOW
Если MetaGPT по сути пишет код, то AFLOW - это «инженер, придумывающий лучший способ заставить LLM думать». Это крутой тандем, когда одним промптом генерируется проект, а AFLOW автоматически находит для него оптимальные агентные цепочки.
Всё!
Please open Telegram to view this post
VIEW IN TELEGRAM
8❤9👍4💯3😁1💘1
CVE-2025-12060 - Keras и тар-архивы
Если используешь keras.utils.get_file(..., extract=True) для tar-архивов - не используй.
👩 🎬 Keras (функция keras.utils.get_file с extract=True) раньше распаковывала tar-архивы через tarfile.extractall() без безопасного фильтра. Злоумышленник может подготовить тар с «хитрыми» симлинками и относительными путями - при извлечении файлы попадут за пределы целевой папки и будут записаны в произвольные места файловой системы 🤢 .
📣 Важно, что уязвимость связана с багом в tarfile (CVE-2025-4517), это классическая path traversal-атака. Если вы скачиваете датасеты или веса через get_file с extract=True, то старые версии Keras (< 3.12) распаковывают архивы напрямую через tarfile.extractall() без фильтра безопасности. Малишс tar-архив с симлинками типа ../../etc/passwd может вылезти из каталога назначения и перезаписать любые файлы на системе.
☝️ Обновление только Python до версий 3.12-3.13 не является достаточной мерой, так как безопасный фильтр (filter="data") должен быть явно указан в коде Keras. Keras 3.12+ делает это правильно. На Python 3.14+ фильтр включен по умолчанию, но для кросс-версионной совместимости и безопасности все равно требуется обновлять Keras 🤯 .
🩹 Что сделали разработчики в PR #21760
1️⃣ включили использование filter="data" в TarFile.extractall() для Python 3.12–3.13 (в 3.14 этот фильтр уже включён по умолчанию);
2️⃣ добавили аналогичную проверку при извлечении ZIP-архивов;
3️⃣ объединили всю логику распаковки в одну функцию extract_open_archive, чтобы не плодить небезопасные вызовы по коду.
Что делать сейчас?
😕 Обнови Keras до 3.12+ или временно не используй extract=True для непроверенных архивов.
😕 Распаковывай только после проверки контрольных сумм и в изолированной среде.
Безопасность ML-пайплайнов начинается с контроля зависимостей. Не пренебрегай обновлениями!
#Security #MachineLearning #Keras #CVE #Vulnerability
Всё!
😐
🩹 Что сделали разработчики в PR #21760
Что делать сейчас?
Безопасность ML-пайплайнов начинается с контроля зависимостей. Не пренебрегай обновлениями!
#Security #MachineLearning #Keras #CVE #Vulnerability
Всё!
Please open Telegram to view this post
VIEW IN TELEGRAM
6❤6💯6👍3🔥2👻2❤🔥1
Инструмент недели Hound 😠
Погоняли Hound - AI-аудитор кода, который строит адаптивные графы знаний и сам планирует анализ.😳 В основе решения - динамические, агент-управляемые графы, которые адаптируются к специфике кодовой базы, эффективное разделение на "scout" (легкие модели для исследования) и "strategist" (тяжелые модели для глубокого анализа), эволюционирующие гипотезы с оценкой уверенности и накоплением доказательств и мультипровайдерная поддержка LLM (OpenAI, Anthropic, Google Gemini, xAI с унифицированным интерфейсом). 🤣 Делюсь тест-результатами с контрактом на Solidity. Тестировали на упрощённом токене ERC-20 (SimpleToken).
Что делает Hound
Строит графы знаний по коду и рассуждает поверх них. В отличие от статических AST или CFG, эти графы создаются и управляются AI-агентами в зависимости от специфики проекта.
Работает в двух ролях, быстрого обзора и гипотез - Scout (у нас гпт-4 мини), и глубокого анализа/мышления - Strategist (гпт-4). Экономия🤑 .
И в двух режимах, широким охватом - sweep, прицельно - intuition.
Типы графов📊
1. SystemArchitecture (базовый граф). Автоматически создается первым для общей архитектуры системы, где узлы - модули, контракты, классы, функции, а ребра - зависимости, наследование, композиция.🆒
2. Специализированные графы📈 (создаются по необходимости):
Примеры специализированных графов:
- CallGraph - граф вызовов функций
- StateMutation - мутации состояния и переменных
- AuthorizationMap - роли и права доступа
- AssetFlow - потоки активов (mint/burn/transfer)
- PermissionChecks - проверки доступа
- ExternalDeps - внешние зависимости
Что он построил
Графы (узлы/рёбра):
SystemArchitecture — 30 / 34
AuthorizationMap — 25 / 32
PermissionChecks — 20 / 22
AssetFlow — 22 / 28
ReentrancyMap — 24 / 30
Что нашёл (из коробки, без рук, только магия ллм)
✅ Reentrancy в withdraw - внешний вызов до обновления состояния.
✅ Слабый доступ в emergencyWithdraw - отсутствуют строгие проверки.
✅ Нет проверки нулевого адреса при передаче прав/transfer.
✅ Mint без лимита - неограниченная эмиссия.
⚠️ Логическая уязвимость в deposit - поверхностная проверка, риск некорректного учёта.
Как это выглядит😠
На скринах - ReentrancyMap (функции/ивенты/переменные как узлы, рёбра - вызовы/чтения/модификации) и отчет (без подтвержденных уязвимостей, тк не хватало ручного чека).
Зачем это нужно😳
Hound хорош там, где важна структурная картина, это мощный приоритизатор, который быстро строит карту риска и подсказывает, куда тратить человеко-часы.
Потенциальные проблемы
😖 Качество зависит от модели! Результаты сильно зависят от качества используемых LLM
😖 Детерминизм (конечно) - может приводить к непредсказуемым результатам между запусками
😖 Ложные срабатывания, так как система гипотез может генерировать ложные позитивы, требующие ручной проверки
😖 Масштабируемость для крупных проектов, зависимость от внешних LLM и потенциально высокие операционные затраты. Запуск GPT-4 на крупной кодовой базе для построения сложных графов может стать финансово неподъемным. Да и хватит ли контекста? 🚬
#web3 #security #smartcontracts #audit #AI #Hound
Все!
☝️
Погоняли Hound - AI-аудитор кода, который строит адаптивные графы знаний и сам планирует анализ.
Что делает Hound
Строит графы знаний по коду и рассуждает поверх них. В отличие от статических AST или CFG, эти графы создаются и управляются AI-агентами в зависимости от специфики проекта.
Работает в двух ролях, быстрого обзора и гипотез - Scout (у нас гпт-4 мини), и глубокого анализа/мышления - Strategist (гпт-4). Экономия
И в двух режимах, широким охватом - sweep, прицельно - intuition.
Типы графов
1. SystemArchitecture (базовый граф). Автоматически создается первым для общей архитектуры системы, где узлы - модули, контракты, классы, функции, а ребра - зависимости, наследование, композиция.
2. Специализированные графы
Примеры специализированных графов:
- CallGraph - граф вызовов функций
- StateMutation - мутации состояния и переменных
- AuthorizationMap - роли и права доступа
- AssetFlow - потоки активов (mint/burn/transfer)
- PermissionChecks - проверки доступа
- ExternalDeps - внешние зависимости
Что он построил
Графы (узлы/рёбра):
SystemArchitecture — 30 / 34
AuthorizationMap — 25 / 32
PermissionChecks — 20 / 22
AssetFlow — 22 / 28
ReentrancyMap — 24 / 30
Что нашёл (из коробки, без рук, только магия ллм)
✅ Reentrancy в withdraw - внешний вызов до обновления состояния.
✅ Слабый доступ в emergencyWithdraw - отсутствуют строгие проверки.
✅ Нет проверки нулевого адреса при передаче прав/transfer.
✅ Mint без лимита - неограниченная эмиссия.
⚠️ Логическая уязвимость в deposit - поверхностная проверка, риск некорректного учёта.
Как это выглядит
На скринах - ReentrancyMap (функции/ивенты/переменные как узлы, рёбра - вызовы/чтения/модификации) и отчет (без подтвержденных уязвимостей, тк не хватало ручного чека).
Зачем это нужно
Hound хорош там, где важна структурная картина, это мощный приоритизатор, который быстро строит карту риска и подсказывает, куда тратить человеко-часы.
Потенциальные проблемы
#web3 #security #smartcontracts #audit #AI #Hound
Все!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
51❤9💯4🔥3👍2🥰1
Эволюция языковых моделей и развитие архитектуры трансформер
😔 На вложенной диаграмме показано «генеалогическое древо» современных LLM, начиная от оригинального Transformer и заканчивая новыми поколениями моделей вроде Llama 3 и Mistral.
☝️ Трансформер (какой раз видишь ссылку на классическую работу про механизм внимания? Vaswani et al., 2017, Attention is All You Need)- фундаментальная архитектура, представившая механизмы внимания и позиционные эмбеддинги. Была введена в 2017 году и принципиально сместила фокус с рекуррентных сетей на self-attention, что породило два направления - Encoder-based модели (BERT, RoBERTa) и Decoder-based модели (GPT-линия).
☝️ GPT-семейство (Radford et al., 2018 - Improving Language Understanding by Generative Pre-Training)- последовательная линия моделей от GPT-1, 2, 3, которые задали направление обучения больших авторегрессионных моделей на больших корпусах данных. Вышедшая в 2018 году, GPT-1 стала примером чисто decoder-only трансформера. Следующая модель ввела ключевую идею - качество растёт предсказуемо при «scaling laws». Дальше - GPT-3 и few-shot / zero-shot prompting.
☝️ GPT-Neo / GPT-J / GPT-NeoX (GPT-J / GPT-Neo / NeoX)- открытые аналоги GPT-3, развиваемые сообществом, вдохновлённые исходной архитектурой. Ввели понятия Rotary Position Embeddings (RoPE), Parallel attention, LayerNorm в начале (pre-norm). В GPT-NeoX уже 20В параметров, оптимизация параллелизма (model parallelisme, pipeline parallelism, ZeRO optimizer)! По качеству, конечно, уступают закрытым моделям, но открывают новые технологии, что позволяет идти им в ногу со временем.
☝️ PaLM - мощная модель Google, значительно продвинувшая масштабирование и качество. Появившаяся в 2022 году, ввела новые понятия:
1️⃣ Multi-query attention (MQA)
2️⃣ Parallel attention/FFN
❗️ И внимание! Масштаб дошел уже до 540B параметров (неплохой прогресс за пару лет).
☝️ LLaMA 1–3 - серия моделей Meta, которые сделали революцию в open-source-LLM, обеспечив высокую эффективность и доступность для разработчиков. Здесь вообще прорыв от Меты, где инженеры взяли ключевые элементы MQA, RoPE, SwiGLU в FNN, Massive finetuning + RLHF, и как итог опенсорс стал индустриальным стандартом.
☝️Mistral - современная линейка компактных, быстрых и высокоточных моделей, показывающих state-of-the-art результаты при меньших размерах.
Эта схема помогает увидеть, как идеи и архитектурные решения передавались между поколениями моделей, формируя сегодняшнюю экосистему больших языковых моделей. Единственное, что пугает🙏 , пока ты это читаешь - схема может стать неактуальной!
Всё!
😡
☝️ Трансформер (какой раз видишь ссылку на классическую работу про механизм внимания? Vaswani et al., 2017, Attention is All You Need)- фундаментальная архитектура, представившая механизмы внимания и позиционные эмбеддинги. Была введена в 2017 году и принципиально сместила фокус с рекуррентных сетей на self-attention, что породило два направления - Encoder-based модели (BERT, RoBERTa) и Decoder-based модели (GPT-линия).
☝️ GPT-семейство (Radford et al., 2018 - Improving Language Understanding by Generative Pre-Training)- последовательная линия моделей от GPT-1, 2, 3, которые задали направление обучения больших авторегрессионных моделей на больших корпусах данных. Вышедшая в 2018 году, GPT-1 стала примером чисто decoder-only трансформера. Следующая модель ввела ключевую идею - качество растёт предсказуемо при «scaling laws». Дальше - GPT-3 и few-shot / zero-shot prompting.
☝️ GPT-Neo / GPT-J / GPT-NeoX (GPT-J / GPT-Neo / NeoX)- открытые аналоги GPT-3, развиваемые сообществом, вдохновлённые исходной архитектурой. Ввели понятия Rotary Position Embeddings (RoPE), Parallel attention, LayerNorm в начале (pre-norm). В GPT-NeoX уже 20В параметров, оптимизация параллелизма (model parallelisme, pipeline parallelism, ZeRO optimizer)! По качеству, конечно, уступают закрытым моделям, но открывают новые технологии, что позволяет идти им в ногу со временем.
☝️ PaLM - мощная модель Google, значительно продвинувшая масштабирование и качество. Появившаяся в 2022 году, ввела новые понятия:
1️⃣ Multi-query attention (MQA)
2️⃣ Parallel attention/FFN
☝️ LLaMA 1–3 - серия моделей Meta, которые сделали революцию в open-source-LLM, обеспечив высокую эффективность и доступность для разработчиков. Здесь вообще прорыв от Меты, где инженеры взяли ключевые элементы MQA, RoPE, SwiGLU в FNN, Massive finetuning + RLHF, и как итог опенсорс стал индустриальным стандартом.
☝️Mistral - современная линейка компактных, быстрых и высокоточных моделей, показывающих state-of-the-art результаты при меньших размерах.
Эта схема помогает увидеть, как идеи и архитектурные решения передавались между поколениями моделей, формируя сегодняшнюю экосистему больших языковых моделей. Единственное, что пугает
Всё!
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍8❤6💯3🔥1🥰1