Skip to main content
Glama

VibeShift: инженер по безопасности для Vibe Coders

VibeShift — это интеллектуальный агент безопасности, разработанный для бесшовной интеграции с помощниками по кодированию ИИ (такими как Cursor, GitHub Copilot, Claude Code и т. д.). Он действует как ваш автоматизированный инженер по безопасности, анализируя код, сгенерированный ИИ, выявляя уязвимости и облегчая исправление с помощью ИИ до того, как небезопасный код попадет в вашу кодовую базу. Он использует MCP (Model Context Protocol) для плавного взаимодействия в вашей существующей среде кодирования ИИ.

Подписаться на Твиттер Подписаться на Твиттер

Проблема: помощники по кодированию на основе ИИ значительно ускоряют разработку, но они также могут генерировать код с едва заметными или явными уязвимостями безопасности. Ручная проверка всего кода, сгенерированного ИИ, на наличие уязвимостей безопасности — медленный процесс, подверженный ошибкам и не масштабируемый со скоростью разработки ИИ. Такая «разработка, основанная на вибрации» может оставить приложения уязвимыми.

Решение: VibeShift от GroundNG устраняет этот критический пробел в безопасности, позволяя вашему помощнику по программированию на основе искусственного интеллекта:

  1. Автоматический анализ кода, сгенерированного ИИ: когда код генерируется или изменяется помощником на базе ИИ, VibeShift может быть запущен для выполнения анализа безопасности с использованием набора инструментов (компоненты SAST, DAST) и проверок, управляемых ИИ.

  2. Выявление уязвимостей безопасности: выявление распространенных и сложных уязвимостей (например, XSS, SQLi, небезопасных конфигураций, логических ошибок) в фрагментах кода, сгенерированных ИИ, или в более крупных блоках кода.

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

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

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

Демонстрация (Нажмите, чтобы воспроизвести эти видео)

Демо Нажмите, чтобы воспроизвести

Функции

  • Интеграция MCP: бесшовная интеграция с Cursor/Windsurf/Github Copilot/Roo Code

  • Автоматическое сканирование безопасности: запускает генерацию/модификацию кода ИИ для выполнения следующих действий:

    • Статический анализ кода (SAST): интегрирует такие инструменты, как Semgrep, для поиска уязвимостей в исходном коде.

    • Динамический анализ (примитивы DAST): может вызывать такие инструменты, как Nuclei или ZAP, для проверки работающих компонентов (где применимо).

  • Запись тестов с помощью искусственного интеллекта: создание сценариев тестов на основе драматурга на основе описаний на естественном языке (в автоматическом режиме).

  • Детерминированное выполнение теста: надежное выполнение записанных тестовых файлов JSON с помощью Playwright.

  • Тестовое обнаружение на основе ИИ: сканируйте веб-сайты и используйте любой LLM (в формате, совместимом с OpenAI), чтобы предлагать шаги тестирования для обнаруженных страниц.

  • Регрессионное тестирование: легко запускайте существующие тестовые наборы для выявления регрессий.

  • Автоматизированный цикл обратной связи: результаты выполнения (включая сбои, снимки экрана, журналы консоли) возвращаются, обеспечивая прямую обратную связь для помощника на основе искусственного интеллекта.

  • Самовосстановление: существующие тесты самовосстанавливаются в случае изменения кода. Нет необходимости обновлять вручную.

  • Тесты пользовательского интерфейса: Тесты пользовательского интерфейса, которые не поддерживаются playwright напрямую, также поддерживаются. Например, Check if the text is overflowing in the div

  • Визуальное регрессионное тестирование : с использованием традиционного подхода сопоставления пикселей и визуального LLM.

Related MCP server: Deep Research MCP Server

Как это работает

+-------------+ +-----------------+ +---------------------+ +-----------------+ +-------------+ | User | ----> | AI Coding Agent | ----> | MCP Server | ----> | Scan, test, exec| ----> | Browser | | (Developer) | | (e.g., Copilot) | | (mcp_server.py) | | (SAST, Record) | | (Playwright)| +-------------+ +-----------------+ +---------------------+ +-----------------+ +-------------+ ^ | | | |--------------------------------------------------+----------------------------+---------------------+ [Test Results / Feedback]
  1. Пользователь: дает подсказки своему помощнику по кодированию на основе ИИ (например, «Проверить этот репозиторий на наличие уязвимостей безопасности», «Записать тест для процесса входа в систему», «Запустить регрессионный тест 'test_login.json'»).

  2. Агент кодирования ИИ: распознает намерение и использует MCP для вызова соответствующего инструмента, предоставленного MCP Server .

  3. Сервер MCP: направляет запрос в соответствующую функцию ( get_security_scan , record_test_flow , run_regression_test , discover_test_flows , list_recorded_tests ).

  4. Агент VibeShift:

    • Традиционное сканирование безопасности: вызывает инструменты статического анализа (например, Semgrep) кода.

    • Запись: WebAgent (в автоматическом режиме) взаимодействует с LLM для планирования шагов, управляет браузером через BrowserController (Playwright), обрабатывает HTML/Vision и сохраняет полученные тестовые шаги в файле JSON в каталоге output/ .

    • Выполнение: TestExecutor загружает указанный тестовый файл JSON, использует BrowserController для взаимодействия с браузером в соответствии с записанными шагами и фиксирует результаты, снимки экрана и журналы консоли.

    • Обнаружение: CrawlerAgent использует BrowserController и LLMClient для сканирования страниц и предложения тестовых шагов.

  5. Браузер: Драматург управляет фактическим взаимодействием браузера.

  6. Цикл обратной связи:

    • Подробный отчет по безопасности (уязвимости, местоположения, предложения) возвращается через сервер MCP в AI Coding Agent .

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

    • Цель — быстрый цикл генерации кода -> сканирования безопасности -> исправления с помощью ИИ -> повторное сканирование (необязательно).

Начиная

Предпосылки

  • Питон 3.10+

  • Доступ к любой степени магистра права (по моим тестам, лучше всего работает бесплатная версия Gemini 2.0 Flash)

  • MCP установлен ( pip install mcp[cli] )

  • Браузеры Playwright установлены ( patchright install )

Установка

  1. Клонируйте репозиторий:

    git clone https://github.com/GroundNG/VibeShift cd VibeShift
  2. Создать виртуальную среду (рекомендуется):

    python -m venv venv source venv/bin/activate # Linux/macOS # venv\Scripts\activate # Windows
  3. Установить зависимости:

    pip install -r requirements.txt
  4. Установить браузеры Playwright:

    patchright install --with-deps # Installs browsers and OS dependencies

Конфигурация

  1. Переименуйте файл .env.example в .env в корневом каталоге проекта.

  2. Добавьте свой ключ LLM API и другие необходимые данные:

    # .env LLM_API_KEY="YOUR_LLM_API_KEY"
    • Замените YOUR_LLM_API_KEY на ваш фактический ключ.

Добавление MCP-сервера

Добавьте это в вашу конфигурацию mcp:

{ "mcpServers": { "VibeShift":{ "command": "uv", "args": ["--directory","path/to/cloned_repo", "run", "mcp_server.py"] } } }

Поддерживайте работу этого сервера, пока вы взаимодействуете с вашим помощником по программированию на основе искусственного интеллекта.

Использование

Взаимодействуйте с агентом с помощью помощника по кодированию на основе искусственного интеллекта с поддержкой MCP, используя естественный язык.

Примеры:

  • Анализ безопасности:

    • Автоматически (предпочтительно): VibeShift автоматически анализирует фрагменты кода, сгенерированные или значительно измененные помощником на основе искусственного интеллекта.

    • Явные команды:

      «VibeShift, проанализируй эту функцию на предмет уязвимостей безопасности». «Попроси VibeShift проверить код Python, который Copilot только что написал, на предмет SQL-инъекций». «Защити сгенерированный код с помощью VibeShift перед фиксацией».

  • Запишите тест:

    «Запишите тест: перейдите по ссылке https://practicetestautomation.com/practice-test-login/ , введите «student» в поле имени пользователя, введите «Password123» в поле пароля, нажмите кнопку «Отправить» и убедитесь, что текст «Поздравляем, студент» виден».

    • (Агент выполнит эти действия автоматически и сохранит файл

  • Выполнить тест:

    "Запустить регрессионный тест output/test_practice_test_login_20231105_103000.json "

    • (Агент выполнит шаги в указанном файле и сообщит о статусе PASS/FAIL с ошибками и подробностями.)

  • Откройте для себя этапы тестирования:

    «Откройте для себя возможные этапы тестирования, начиная с https://practicetestautomation.com/practice/ »

    • (Агент будет сканировать сайт, анализировать страницы и возвращать рекомендуемые шаги тестирования для каждой из них.)

  • Список зарегистрированных тестов:

    «Перечислите доступные записанные веб-тесты».

    • (Агент вернет список файлов

Выход:

  • Отчеты по безопасности: возвращены помощнику по кодированию ИИ, содержат подробную информацию:

    • Тип уязвимости (например, CWE, категория OWASP)

    • Расположение в коде

    • Серьёзность

    • Доказательства/Объяснения

    • Предлагаемые исправления (часто для действий ИИ)

  • Записанные тесты: сохраняются в виде файлов JSON в каталоге output/ (формат см. в test_schema.md ).

  • Результаты выполнения: возвращаются как объект JSON, обобщающий выполнение (статус, ошибки, пути доказательств). Полные результаты также сохраняются в output/execution_result_....json .

  • Результаты обнаружения: Возвращаются как объект JSON с обнаруженными URL и предлагаемыми шагами. Полные результаты сохраняются в output/discovery_results_....json .

Вдохновение

  • Использование браузера : Генерация контекстного дерева dom во многом вдохновлена ими и модифицирована для размещения статических/динамических/визуальных элементов. Особая благодарность им за их вклад в открытый исходный код.

  • Semgrep : мощный инструмент статического анализа с открытым исходным кодом, который мы используем.

  • Ядра : для возможностей динамического сканирования на основе шаблонов.

Внося вклад

Мы приветствуем вклады! Пожалуйста, посетите CONTRIBUTING.md для получения подробной информации о том, как начать, сообщать о проблемах и отправлять запросы на включение. Мы особенно заинтересованы в:

  • Новые интеграции анализатора безопасности.

Лицензия

Данный проект распространяется под лицензией APACHE-2.0 .

-
security - not tested
-
license - not tested
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/GroundNG/VibeShift'

If you have feedback or need assistance with the MCP directory API, please join our Discord server