Security Overview — Bookyou株式会社 (jpcite)

jpcite (運営: Bookyou株式会社、適格請求書発行事業者番号 T8010001213708) の情報セキュリティ posture を外部公開向けに集約しました。 6 層 defense / 暗号化 / アクセス制御 / 副処理者 5 社 / DR / dependency audit / 脆弱性開示プロセス / SOC 2 alternative の自己宣言を含みます。 詳細な脆弱性開示は /security/policy.html + /.well-known/security.txt (RFC 9116) を参照してください。

1. Defense layers (6 層)

jpcite は外側の Cloudflare WAF から内側の Stripe metered billing まで、6 層の独立した防御層を持ちます。 上位層が突破されても下位層で被害を限定する設計です。

  1. Cloudflare WAF Custom Rules — 国別 / IP / User-Agent / path pattern による block + Cloudflare Managed Ruleset (OWASP CRS 派生)
  2. Cloudflare Rate Limiting — zone-wide の絶対上限。 異常 traffic を edge で吸収
  3. App middleware: RateLimitMiddleware — per-key 10 req/s、anonymous 1 req/s
  4. Anonymous IP limit — 匿名は 1 IP あたり 1 日 3 req (JST 翌日 00:00 リセット)
  5. Customer cap middleware — 顧客自身が monthly_cap_yen で支出上限を設定
  6. Stripe metered billing — 4xx / 5xx は課金しない。 不正課金リスクを edge から遮断

2. 暗号化 (Encryption)

カテゴリ仕様
In transitTLS 1.2+ (Cloudflare → Fly.io / Stripe → Bookyou / Postmark / Sentry の全 leg)。 HSTS 適用、HTTP は 301 で HTTPS に redirect
At rest (DB)Fly.io volume AES-256 (LUKS 派生)、SQLite WAL モード
At rest (backup)Cloudflare R2 への weekly backup は server-side encryption (AES-256) + Fly.io snapshot は volume 暗号化を継承
PII redactionquery log は INV-21 invariant により T-number / email / 電話番号 を mask してから永続化
API key 保管顧客 API key は raw を保管せず api_keys.key_hash (SHA-256 + pepper) のみ
決済情報Bookyou 側に保管せず Stripe (PCI-DSS Level 1) 経由で token 化

3. アクセス制御 (Access control)

4. 副処理者 (Sub-processors) 5 社

委託先業務所在第三者認証個人情報
Stripe Japan K.K.決済 / 適格請求書発行日本 (US 親会社)PCI-DSS Level 1 / SOC 1 Type II / SOC 2 Type IIemail、決済 token、住所 (請求書発行用)
Fly.io, Inc.API hosting (NRT region = 東京)米国 (運用 region は東京)SOC 2 Type II無し (volume 内のみ)
Cloudflare, Inc.CDN / WAF / DNS米国 (世界 PoP)SOC 2 Type II / ISO 27001 / PCI-DSSedge アクセスログ (90 日 rolling)
Postmark (ActiveCampaign LLC)Transactional email 送信米国SOC 2 Type II / GDPR-DPA送信先 email、件名・本文
Sentry (Functional Software, Inc.)サーバ error tracking米国SOC 2 Type II / ISO 27001無し (PII を送信しない設定)

本一覧は /privacy.html §7 と一致します。 副処理者の追加・変更は /audit-log.rss で 30 日前通知します。

5. Backup & DR (RPO 24h / RTO 4h)

6. 脆弱性開示 (Vulnerability disclosure)

7. Dependency audit

8. インシデント対応 (Incident response)

  1. Detect — Sentry alert + Cloudflare anomaly + cron monitoring
  2. Contain — 該当 endpoint を Cloudflare で block / API key を強制 rotate
  3. Communicate — 確認後 24 時間以内に影響顧客へ email 通知 + /status.html 更新
  4. Patch — 14 日以内 (server-side) / 次 release (client-side)
  5. Postmortem — 7 日以内に root cause + 再発防止を /security/ に redacted 公開

9. SOC 2 / ISO27001 取得なし — 代替自己宣言

jpcite は Solo zero-touch ops のため SOC 2 Type II / ISO 27001 / Pマーク は取得しません。 代替として以下の自己宣言・第三者検証可能な指標を提示します。

代替表明状態検証 URL (取得後)
OpenSSF Best Practices Badge (passing → silver → gold)申請予定https://www.bestpractices.dev/projects/<id> (取得後追記)
OWASP ASVS Level 1 self-assessment作業中/security/asvs.html (公開後)
CSA STAR CAIQ (self-assessment Level 1)作業中/security/caiq.html (公開後)
Cloudflare Trust Hub (CF 側 control)参照可cloudflare.com/trust-hub/ →
RFC 9116 security.txt公開済/.well-known/security.txt
HTTPS / TLS observatory (Mozilla / SSL Labs)A+ 目標外部評価サービスで第三者検証可能

10. 連絡先

本 page は外部公開向けの security overview です。 詳細な運用手順や具体的な secret 管理手順は公開範囲から外しています。 関連 page: 法人購買 1-screen · 脆弱性開示ポリシー · security.txt (RFC 9116) · trust.json (machine-readable) · 法令フェンス