Secure
Secure — 継続監視とは?

Gitリポジトリを登録すると、コードの変更を検知して自動で脆弱性スキャンを実行します。年1回の診断では見逃す「リリース直後の脆弱性」を、常時監視でキャッチします。

オンプレミス対応

GitHub.comだけでなく、オンプレミスのGitLab / GitHub Enterpriseにも対応しています。社内ネットワーク内のリポジトリをそのまま連携可能です。

診断エンジン自体もお客様環境内にデプロイ可能。ソースコードを外部に出さずにセキュリティ診断を実現します。

GitHub.com GitHub Enterprise GitLab CE/EE オンプレGitLab
従来の診断との違い

従来: 年1〜2回 → 診断レポート受領 → 修正 → 再診断依頼 → 数週間〜数ヶ月
S³: コード変更のたびに自動診断 → 即座に結果確認 → 修正 → 次のpushで再確認

複数ベンダーへの発注・調整が不要になり、セキュリティ運用コストを大幅に削減できます。

CVE / NVD 自動照合

NVD(National Vulnerability Database)やGitHub Advisoryなど5つの脆弱性フィードを定期同期し、ベクトルDBに蓄積。スキャン時にコードの文脈と照合して、既知の脆弱性パターンとの関連性を検出します。

NVD (CVE) GitHub Advisory OSV CWE Semgrep Rules
Git Provider 抽象化レイヤー

GitProvider 抽象基底クラスにより、GitHub / GitLab を同一インターフェースで操作。URL正規表現で自動判定し、未知のホストは GitLabとして扱う(self-hosted GitLab対応)。

対応URL形式:
https://github.com/owner/repo
git@gitlab.example.com:owner/repo.git
https://your-server.internal/owner/repo

ファイルフィルタリング

リポジトリ全ファイルを再帰取得後、20種の拡張子でコードファイルを判定し、15パターンのディレクトリを自動除外。

対象: .php .js .ts .jsx .tsx .py .java .go .rb .c .cpp .h .cs .swift .kt .rs .vue .sh .sql
除外: node_modules/ vendor/ __pycache__/ .git/ dist/ build/ .next/ .nuxt/ coverage/ .venv/ venv/ target/ bin/ obj/ .idea/

MVP制限: 最大50ファイル / 1ファイル100KB上限

スキャンパイプライン

各ファイルを 200行チャンクに分割し、チャンクごとに以下を実行:

1 SmartContextBuilder で5段階ベクトル検索
2 関連ナレッジをコンテキストとしてプロンプトに注入
3 LLM にレビュー依頼(JSON mode, temperature=0.2)
4 結果をパースし SQLite に永続化
5 使用量ログ記録(トークン数・コスト・レイテンシ)
PAT暗号化

リポジトリのPersonal Access Tokenは Fernet暗号化(AES-128-CBC + HMAC-SHA256)でSQLiteに保存。平文が一切DBに残りません。

暗号化キーは環境変数 ENCRYPTION_KEY から取得。復号はAPI呼び出し時のみ実行し、レスポンスには含めません。

SQLite スキーマ

スキャンデータは 3テーブル構成で管理:

repositories: id, name, provider, url, pat_encrypted, default_branch
scans: id, repository_id(FK), commit_sha, status, started_at, completed_at, total_files, total_lines
vulnerabilities: id, scan_id(FK), file_path, line_start, line_end, severity, vuln_type, vulnerable_code, description, recommendation, cwe_id, owasp_category, attack_vector, advisory_sources_json

脆弱性は CRITICAL → HIGH → MEDIUM → LOW の順にソートして返却。advisory_sourcesはJSON文字列として格納し、取得時にパースしてリストに復元。

オンプレデプロイ構成

本番環境の構成:

Web: nginx (reverse proxy, location ^~ /s3/)
App: gunicorn (workers=2, threads=4, timeout=300s)
Process: systemd (s3-app.service, on-failure restart)
Static: nginx direct serve (alias /var/www/s3/static/)
Deploy: rsync over SSH → systemctl restart
SSL: Let's Encrypt (certbot auto-renew)

この構成をそのままお客様のオンプレ環境に再現可能。外部クラウドへの依存はLLM APIのみ(Ollama使用時は完全オフライン)。

0
リポジトリ
0
スキャン回数
0
脆弱性

リポジトリを追加

GitHub または GitLab のリポジトリURLを入力
プライベートリポジトリの場合は必須。PATは暗号化して保存されます

登録済みリポジトリ

リポジトリをスキャン中...