endai-system / 2026-03-04作成
必須5分
Dependabotのアラートとセキュリティ自動更新を有効にします。.github/dependabot.yml はコードとしてpush済みですが、GitHub側の設定も必要です。
https://github.com/(ユーザー名)/endai-system
mainブランチへのマージ前にセキュリティチェック通過を必須にする場合:
main
npm auditSecurity LintSecret Detection必須10分
現在16件のテストがskipされています。テスト用の認証情報を設定すると全テストが有効になります。
Supabaseに以下の2種類のテストユーザーが必要です:
profiles テーブルの role を admin に設定
author でOK)
.env.local を開く(なければ作成)
# セキュリティE2Eテスト用(adminロール)
TEST_ADMIN_EMAIL=admin-test@example.com
TEST_ADMIN_PASSWORD=ここにパスワード
# セキュリティE2Eテスト用(authorロール)
E2E_AUTHOR_EMAIL=author-test@example.com
E2E_AUTHOR_PASSWORD=ここにパスワード
npm run dev -- -p 3001
# 別ターミナルで:
npm run test:security
skippedが0になれば成功。
CIでもセキュリティE2Eを実行する場合:
| Name | Value |
|---|---|
TEST_ADMIN_EMAIL | adminユーザーのメール |
TEST_ADMIN_PASSWORD | adminユーザーのパスワード |
E2E_AUTHOR_EMAIL | authorユーザーのメール |
E2E_AUTHOR_PASSWORD | authorユーザーのパスワード |
必須15分
OWASP ZAP のベースラインスキャン(パッシブのみ)を手動で初回実行し、レポートを確認します。
cd C:/Users/kawag/work/endai-system
git add .github/workflows/zap-scan.yml \
.github/zap-rules.tsv \
.github/dependabot.yml \
.github/workflows/security-audit.yml \
.gitleaks.toml \
eslint.config.mjs \
package.json \
e2e/helpers/auth.ts \
e2e/security-*.spec.ts \
SECURITY-AUTOMATION.md
git commit -m "feat: セキュリティ自動診断4層実装"
git push
https://endai-system.vercel.app
Run workflow をクリック
report_html.html をブラウザで開く
false positiveが多い場合、.github/zap-rules.tsv を編集:
# 形式: ルールID[TAB]アクション[TAB](説明)
# アクション: IGNORE=無視, WARN=警告のみ, FAIL=CIを失敗させる
10010 IGNORE (Cookie No HttpOnly Flag - Supabase管理)
10017 IGNORE (Cross-Domain JS - Stripe CDN)
https://endai-system-xxx.vercel.app)を target_url に指定すれば、デプロイ前のスキャンも可能です。
必須メール1通
自前の自動診断実施済みであることを伝え、手動診断のみの見積もりを依頼します。
件名: 脆弱性診断のお見積もり依頼(手動診断のみ)
株式会社ポルト 御中
お世話になっております。
DXPO大阪にて脆弱性診断サービスの資料をいただきました。
弊社で運用中のWebアプリケーション(学会演題管理システム)について、脆弱性診断を検討しております。
システム概要:
ご相談事項:
自社での自動診断結果レポートもご提出可能です。
ご検討のほど、よろしくお願いいたします。
| 確認事項 | 背景 |
|---|---|
| 手動のみプランの可否 | 価格表にはLight/Advanced/High-endの3プランしかなく、手動のみのカスタムプランが存在するか未確認 |
| Supabase対応 | Firebase診断メニュー(20万円/人日)がSupabaseに適用可能かどうか。RLSポリシーの検証、認証フローの脆弱性チェックが必要 |
| 自動診断レポート提出 | 自前診断の結果を提出することで手動診断の範囲・工数を絞れるか確認 |
| 再診断 | 修正後の再診断は初回無料(価格表記載)。2回目以降は10万円 |
| 項目 | 想定金額 |
|---|---|
| 手動診断(200 req) | 200〜300万円(要見積) |
| Supabase/Auth診断(2人日) | 40万円 |
| OAuth診断(5 req) | 15万円 |
| 報告書 | 10万円 |
| 合計(税抜) | 265〜365万円 |
任意各30分〜
今すぐ必須ではないが、セキュリティ態勢をさらに強化できる改善項目です。
| 項目 | 何をするか | 優先度 |
|---|---|---|
| eslint-plugin-no-unsanitized | DOM操作(innerHTML等)のサニタイズ漏れを検出するESLintプラグイン。現在flat config(ESLint 9)非対応のため保留中。対応されたら eslint.config.mjs に追加する |
中 |
| Semgrep | より高度なSASTツール(OSS無料)。OWASP Top 10ルールセット付属。GitHub Actionsにsemgrep/semgrep-actionを追加するだけ |
中 |
| Snyk | 商用SCAツール。無料枠(月200テスト)あり。npm auditより検出精度が高い。snyk.ioでサインアップ → GitHubリポジトリ連携 | 低 |
| Upstash Redis | レート制限をインメモリからRedisに移行。現在はVercelのサーバーレスインスタンス間でレート制限が共有されない。upstash.comの無料枠で対応可能 | 中 |
| テストユーザー自動作成 | CIでE2Eテスト実行前にSupabase Admin APIでテストユーザーを自動作成・削除するsetup/teardownスクリプトを作成 | 低 |
.env.local に TEST_ADMIN_EMAIL / TEST_ADMIN_PASSWORD 追加.env.local に E2E_AUTHOR_EMAIL / E2E_AUTHOR_PASSWORD 追加npm run test:security で skipped が 0 になることを確認endai-system セキュリティ自動診断ガイド — 2026-03-04作成