セキュリティ
typress のセキュリティモデルは「単一の admin パスワード漏洩でサイトが落ちないこと」を最低限のラインとして設計されています。WordPress と違い、admin セッションを盗まれても破壊的な操作には毎回再認証が要求されます。
再認証 (reauth)
次の操作はすべて、リクエスト時に再度パスワード(と TOTP、登録済みなら)を要求します:
- TOTP の登録 / 確認 / 無効化
- プラグインの有効化 / 削除 / インストール
- テーマのインストール / 削除
- 信頼済みキーの追加 / 削除
- サイト設定の更新
- ユーザーの作成 / ロール変更 / 削除 / パスワード変更
Cookie だけ盗まれた状態では、攻撃者は管理画面を眺めることはできても、これらのいずれも実行できません。試行は audit log に成否どちらでも記録されます。
TOTP の有効化
管理画面の「概要」タブから登録できます。秘密はサーバ側で AES-256-GCM (master-key 由来 HKDF) で暗号化され、DB ダンプを盗まれても TOTP は復元されません (ADR-005)。デバイス紛失時は CLI の typress admin totp-disable から強制解除できます。
監査ログ
ログイン成功・失敗・破壊的操作・プラグイン起動・テーマインストール、すべて audit_events に append-only で記録されます。管理画面では admin ロールのみが閲覧でき、subscriber ユーザーから情報が漏れることはありません。
プラグインのサンドボックス境界
プラグインは別プロセスで動き、host とは Cap'n Web RPC ブリッジでだけ通信します。manifest で宣言した capability に対応するメソッドだけがブリッジに乗り、それ以外(DB、ファイルシステム、ネットワーク)への直接アクセスは構造的にできません。OS レベルの追加封じ込めは systemd unit のハードニングが担当します。
全体像のレポート
v1.0 リリース前に、独立した 15 ラウンドの adversarial audit を通しています。レポートは /tmp/typress-audit/REPORT.md に残しているほか、main ブランチの commit ログ (closes C1 / closes H3 など) で各 finding の修正コミットを追跡できます。デバイス紛失時の TOTP 強制解除など障害復旧の手順はCLIを参照。