Integrations
Supports environment variable configuration through .env files, allowing users to securely store LLM API keys and other configuration parameters
Integrates with GitHub Copilot to enable AI-assisted web testing automation, allowing Copilot to record test flows, execute regression tests, and discover potential test steps through natural language prompts
Leverages Python for web testing automation, with support for Playwright browser control and LLM integration for test recording, execution, and discovery
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
)
インストール
- リポジトリをクローンします。Copy
- 仮想環境を作成します (推奨):Copy
- 依存関係をインストールします:Copy
- Playwright ブラウザをインストールします。Copy
構成
- プロジェクトのルート ディレクトリにある .env.example ファイルの名前を .env ファイルに変更します。
- LLM API キーとその他の必要な詳細を追加します。Copy
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」というテキストが表示されていることを確認します。」
- (エージェントはこれらのアクションを自動的に実行し、
test_....json
ファイルをoutput/
に保存します)
- (エージェントはこれらのアクションを自動的に実行し、
- テストを実行する:
「回帰テスト
output/test_practice_test_login_20231105_103000.json
を実行します」- (エージェントは指定されたファイル内のステップを実行し、エラーと詳細とともに PASS/FAIL ステータスを報告します。)
- テスト手順の検出:
「 https://practicetestautomation.com/practice/から潜在的なテスト手順を見つけてください」
- (エージェントはサイトをクロールし、ページを分析し、それぞれのテスト手順の提案を返します。)
- 記録されたテストの一覧:
「利用可能な記録済み Web テストを一覧表示します。」
- (エージェントは
output/
ディレクトリにある.json
ファイルのリストを返します。)
- (エージェントは
出力:
- セキュリティ レポート: 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
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
AI を活用したエージェントは、開発者が AI コーディング アシスタントで自然言語プロンプトを使用してテストを記録、実行、検出できるようにすることで、Web テストのワークフローを合理化します。
Related MCP Servers
- -securityAlicense-qualityA Message Control Protocol server that runs PHP tests and static analysis tools automatically for developers, providing results directly to AI assistants in Cursor editor.Last updated -1TypeScriptMIT License
- -securityAlicense-qualityEmpowers AI agents to perform web browsing, automation, and scraping tasks with minimal supervision using natural language instructions and Selenium.Last updated -1PythonApache 2.0
- -securityAlicense-qualityAllows AI agents to control web browser sessions via Selenium WebDriver, enabling web automation tasks like scraping, testing, and form filling through the Model Context Protocol.Last updated -TypeScriptMIT License
- -securityFlicense-qualityAn open-source self-hosted browser agent that provides a dockerized browser environment for AI automation, allowing other AI apps and agents to perform human-like web browsing tasks through natural language instructions.Last updated -9339TypeScript