VibeShift: Vibe Coders のセキュリティ エンジニア
VibeShiftは、AIコーディングアシスタント(Cursor、GitHub Copilot、Claude Codeなど)とシームレスに統合するように設計されたインテリジェントなセキュリティエージェントです。自動化されたセキュリティエンジニアとして機能し、AIによって生成されたコードを分析し、脆弱性を特定し、安全でないコードがコードベースに侵入する前にAI主導の修復を促進します。MCP **(モデルコンテキストプロトコル)**を活用することで、既存のAIコーディング環境とのスムーズな連携を実現します。
問題: AIコーディングアシスタントは開発を劇的に加速させますが、同時に、微妙な、あるいは明白なセキュリティ脆弱性を持つコードを生成する可能性があります。AIが生成したすべてのコードに対してセキュリティ上の欠陥がないか手動でレビューするのは、時間がかかり、エラーが発生しやすく、AI開発のスピードに追いつきません。このような「雰囲気重視の開発」は、アプリケーションを無防備な状態にする可能性があります。
解決策: GroundNG の VibeShift は、 AI コーディング アシスタントで次のことを実行できるようにすることで、この重大なセキュリティ ギャップを埋めます。
AI 生成コードを自動的に分析: AI アシスタントによってコードが生成または変更されると、VibeShift がトリガーされ、一連のツール (SAST、DAST コンポーネント) と AI 駆動型チェックを使用してセキュリティ分析を実行できます。
セキュリティの脆弱性を特定: AI によって生成されたスニペットまたは大きなコード ブロック内の一般的な脆弱性と複雑な脆弱性 (XSS、SQLi、安全でない構成、論理上の欠陥など) を正確に特定します。
**AI 主導の修復を促進:**詳細なフィードバックと脆弱性情報を AI コーディング アシスタントに直接提供し、修正を提案したり、自動的に適用したりできるようにします。
**セキュリティ フィードバック ループの作成:**開発者と AI アシスタントが潜在的なセキュリティ リスクをすぐに認識し、迅速な修正と学習を可能にします。
これにより、AI 支援コーディングの「シフトレフト」セキュリティ パラダイムが作成され、開発ワークフローにセキュリティが直接組み込まれ、より安全なコードをより早く出荷できるようになります。
デモ(クリックするとビデオが再生されます)

特徴
MCP 統合: Cursor/Windsurf/Github Copilot/Roo Code とシームレスに統合
自動セキュリティスキャン: AI コード生成/変更をトリガーして以下を実行します:
静的コード分析 (SAST): Semgrep などのツールを統合して、ソース コードの脆弱性を検出します。
**動的解析 (DAST プリミティブ):**実行中のコンポーネントをチェックするために Nuclei や ZAP などのツールを呼び出すことができます (該当する場合)。
**AI 支援テスト記録:**自然言語の説明から Playwright ベースのテスト スクリプトを生成します (自動モード)。
決定論的なテスト実行: Playwright を使用して、記録された JSON テスト ファイルを確実に実行します。
AI を活用したテスト検出: Web サイトをクロールし、任意の LLM (OpenAI 準拠形式) を活用して、検出されたページのテスト手順を提案します。
**回帰テスト:**既存のテスト スイートを簡単に実行して、回帰を検出します。
**自動フィードバック ループ:**実行結果 (失敗、スクリーンショット、コンソール ログを含む) が返され、AI アシスタントに直接フィードバックが提供されます。
**自己修復:**コード変更があった場合、既存のテストは自動的に修復されます。手動で更新する必要はありません。
UIテスト: Playwrightで直接サポートされていないUIテストもサポートされています。例えば、
Check if the text is overflowing in the div。ビジュアル回帰テスト: 従来のピクセルマッチとビジョン LLM アプローチを使用します。
仕組み
ユーザー: AI コーディング アシスタントに指示を出します (例: 「このリポジトリのセキュリティ脆弱性をテストする」、「ログイン フローのテストを記録する」、「回帰テスト 'test_login.json' を実行する」)。
**AI コーディング エージェント:**意図を認識し、MCP を使用して
MCP Serverが提供する適切なツールを呼び出します。**MCP サーバー:**リクエストを対応する関数 (
get_security_scan、record_test_flow、run_regression_test、discover_test_flows、list_recorded_tests) にルーティングします。VibeShiftエージェント:
従来のセキュリティ スキャン:(Semgrep など) を呼び出します。
記録:
WebAgent(自動モード) は LLM と対話してステップを計画し、BrowserController(Playwright) を介してブラウザを制御し、HTML/Vision を処理して、結果のテスト ステップをoutput/ディレクトリ内の JSON ファイルに保存します。実行:
TestExecutor指定された JSON テスト ファイルを読み込み、記録された手順に従ってBrowserControllerを使用してブラウザーと対話し、結果、スクリーンショット、コンソール ログをキャプチャします。検出:
CrawlerAgent``BrowserControllerとLLMClientを使用してページをクロールし、テスト手順を提案します。
ブラウザ: Playwright は実際のブラウザ操作を駆動します。
フィードバックループ:
包括的なセキュリティ レポート (脆弱性、場所、提案) は、MCP サーバーを通じてAI コーディング エージェントに返されます。
AI コーディング エージェントはこれを開発者に提示し、その情報を使用して修正を提案したり適用したりできます。
目標は、コード生成 -> セキュリティ スキャン -> AI 駆動型修正 -> 再スキャン (オプション) という迅速なサイクルです。
はじめる
前提条件
Python 3.10以上
あらゆる LLM へのアクセス (私のテストでは、Gemini 2.0 Flash が無料で最適に動作します)
MCPがインストールされました(
pip install mcp[cli])Playwrightブラウザがインストールされている(
patchright install)
インストール
リポジトリをクローンします。
git clone https://github.com/GroundNG/VibeShift cd VibeShift仮想環境を作成します (推奨):
python -m venv venv source venv/bin/activate # Linux/macOS # venv\Scripts\activate # Windows依存関係をインストールします:
pip install -r requirements.txtPlaywright ブラウザをインストールします。
patchright install --with-deps # Installs browsers and OS dependencies
構成
プロジェクトのルート ディレクトリにある .env.example ファイルの名前を .env ファイルに変更します。
LLM API キーとその他の必要な詳細を追加します。
# .env LLM_API_KEY="YOUR_LLM_API_KEY"YOUR_LLM_API_KEYを実際のキーに置き換えます。
MCPサーバーの追加
これを mcp 構成に追加します:
AI コーディング アシスタントと対話している間は、このサーバーを実行したままにしておきます。
使用法
自然言語を使用して、MCP 対応の AI コーディング アシスタントを通じてエージェントと対話します。
例:
セキュリティ分析:
自動 (推奨): VibeShift は、AI アシスタントによって生成または大幅に変更されたコード スニペットを自動的に分析します。
明示的なコマンド:
「VibeShift、この関数のセキュリティ脆弱性を分析してください。」 「VibeShiftに、Copilotが書き込んだPythonコードにSQLインジェクションがないかチェックしてもらってください。」 「生成されたコードをコミットする前に、VibeShiftでセキュリティを確保してください。」
テストを記録する:
「テストを記録するには、 https://practicetestautomation.com/practice-test-login/にアクセスし、ユーザー名フィールドに「student」と入力し、パスワードフィールドに「Password123」と入力して、送信ボタンをクリックし、「Congratulations student」というテキストが表示されていることを確認します。」
(エージェントはこれらのアクションを自動的に実行し、
テストを実行する:
「回帰テスト
output/test_practice_test_login_20231105_103000.jsonを実行します」(エージェントは指定されたファイル内のステップを実行し、エラーと詳細とともに PASS/FAIL ステータスを報告します。)
テスト手順の検出:
「 https://practicetestautomation.com/practice/から潜在的なテスト手順を見つけてください」
(エージェントはサイトをクロールし、ページを分析し、それぞれのテスト手順の提案を返します。)
記録されたテストの一覧:
「利用可能な記録済み Web テストを一覧表示します。」
(エージェントは
出力:
セキュリティ レポート: AI コーディング アシスタントに返され、詳細が次のように記載されています。
脆弱性の種類(例:CWE、OWASP カテゴリ)
コード内の場所
重大度
証拠/説明
提案された修復策(多くの場合、AI が実行します)
記録されたテスト:
output/ディレクトリに JSON ファイルとして保存されます (形式についてはtest_schema.md参照)。**実行結果:**実行の概要(ステータス、エラー、エビデンスパス)を示すJSONオブジェクトとして返されます。完全な結果は
output/execution_result_....jsonにも保存されます。**検出結果:**検出されたURLと推奨手順を含むJSONオブジェクトとして返されます。完全な結果は
output/discovery_results_....jsonに保存されます。
インスピレーション
ブラウザでの使用:DOMコンテキストツリーの生成は、これらのフレームワークから多大な影響を受けており、静的/動的/視覚的な要素に対応できるように修正されています。オープンソースへの貢献に対し、特に感謝申し上げます。
Semgrep : 私たちが活用する強力なオープンソースの静的解析ツール。
Nuclei : テンプレートベースの動的スキャン機能。
貢献
コントリビューションを歓迎します!開始方法、問題の報告、プルリクエストの送信方法の詳細については、 CONTRIBUTING.mdご覧ください。特に以下の点にご興味をお持ちいただけましたら幸いです。
新しいセキュリティ アナライザーの統合。
ライセンス
このプロジェクトはAPACHE-2.0ライセンスのもとでライセンスされています。
This server cannot be installed
Related Resources
Related MCP Servers
- -securityAlicense-qualityAn MCP server that automatically generates documentation, test plans, and code reviews for code repositories by analyzing directory structures and code files using AI models via OpenRouter API.Last updated -5Creative Commons Zero v1.0 Universal
- -securityAlicense-qualityAn AI-powered MCP server that automates web testing workflows by enabling recording, execution, and discovery of tests through natural language prompts.Last updated -62Apache 2.0
- -security-license-qualityAI-powered agent that streamlines web testing workflows by allowing developers to record, execute, and discover tests using natural language prompts in their AI coding assistants.Last updated -62Apache 2.0
- AsecurityAlicenseAqualityA MCP server that enables human-in-the-loop workflow in AI-assisted development tools by allowing users to run commands, view their output, and provide textual feedback directly to the AI assistant.Last updated -11,625MIT License