psyray/oasis
Ollama Automated Security Intelligence Scanner
OASIS – Open Automated Security Intelligence Scanner
何であるか – OASIS は、ローカルで実行される大規模言語モデル(LLM)を使用して、ソースコードのセキュリティ問題を監査する Python ベースのコマンドラインツールです。Ollama モデルや OpenAI 互換サーバー(vLLM、LM Studio、LocalAI など)と連携でき、機械可読性の高い JSON レポートに加えて、オプションで HTML、PDF、Markdown 形式のレポートを生成します。
動作方法 – このツールは LangGraph で制御されたパイプラインに従います:
- 発見 – 指定されたファイル/ディレクトリを走査し、コードをファイル単位または実験的に関数単位でチャンク化します。
- 高速スキャン – 軽量モデル(
--scan-modelで設定可能)を実行して、潜在的な問題をマークします。 - 詳細分析 – マークされたスニペットを 1 つ以上の大きなモデル(
--models)に送信し、詳細な脆弱性の説明、深刻度、利用可能性の評価、およびオプションの PoC ヒントを提供します。 - 検出の検証 – スキャン中にコード駆動の決定論的検証器が実行され、各検出結果に信頼度付きの評価を付与します。
- レポート生成 – 各検出結果は標準的な JSON オブジェクトとして出力され、HTML ダッシュボード、PDF/Markdown 概要、CI 統合用の SARIF ファイルも生成されます。
主な機能
- マルチモデル対応 – 速い「スキャン」モデルと強力な「詳細分析」モデルを組み合わせたり、複数の詳細モデルを並列で実行し、出力を統合(
--report-model)できます。 - ローカルのみの動作 – すべての LLM 呼び出しは、ローカルホストの Ollama インスタンスまたは自己ホストの OpenAI 互換サーバーに対して行われるため、コードとデータのプライバシーが保たれます。
- インタラクティブな Web UI –
oasis --webでパスワード保護されたダッシュボードを起動でき、検出結果を探索したり、特定の問題について再調査を依頼したり、RAG 拡張された説明を閲覧できます。 - キャッシュ機能 – エンベッディングと分析結果はディスクにキャッシュされ、
--clear-cache-embeddingsや--cache-daysでクリアまたは期限切れにできます。 - CI/CD 向け – 重大度の閾値で終了コードを強制(
--fail-on)でき、GitHub Actions の例も提供されています。 - 抑制と差分比較 – 抑制されたフィンガープリントの JSON レジストリを維持でき、新しい実行をベースラインと比較(
--diff-against)できます。 - 拡張可能なプロンプト – LLM プロンプトにカスタム指示テキストを追加可能(
--custom-instructions)。
一般的なワークフロー
# pipx でインストール(編集可能)
pipx install -e .
# 小さなモデルと大きなモデルを使ってプロジェクトを二段階スキャン
oasis -i my_project/ -sm gemma3:4b -m llama3:latest
# 結果をローカルで閲覧可能に起動
oasis -i my_project/ -sm gemma3:4b -m llama3:latest --web
レポートは security_reports/<project-slug>/ に生成され、ブラウザで直接開くか、他のツールで利用できます。
対象ユーザー – 企業の機密コードを外部サービスに送信せずに、AI支援の静的解析をコードレビュー パイプラインに組み込みたい開発者、セキュリティエンジニア、DevSecOps チーム。
TL;DR – OASIS はオープンソースでローカル実行可能な AI セキュリティスキャナーであり、複数の LLM をオーケストレーションして、コードの脆弱性を検出・検証・レポートし、Web ダッシュボードと CI 統合を提供します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト