Vaultwarden 1.36.0: アップグレードガイド

セルフホスティングを行うということは、あなた自身がセキュリティチームになることを意味します。

クラウドサービスでは、企業がユーザーが気づく前に脆弱性を修正します。Vaultwardenの場合、リスクは自己責任となります。アップデートを怠ると、既知の脆弱性にさらされることになります。

Vaultwarden 1.36.0では、2つの重要な領域が修正されています: • 管理パネルの認証。 • セッション・トークンの取り扱い。

管理パネルは一般的な攻撃対象です。多くのユーザーが公開サブドメイン上で運用しています。プロキシレベルで /admin パスをブロックしていない場合、リスクが生じます。

1.36.0における主な改善点:

• サーバーサイドのレート制限:アプリが内部でレート制限を処理するようになりました。これにより、NginxやCaddyの設定のみに依存する必要がなくなります。攻撃者が偽のIPヘッダーを使用して制限を回避することを防ぎます。

• セッション・セキュリティの向上:サーバーがすべてのAPIコールにおいてトークンの有効期限をチェックするようになりました。これにより、盗まれたトークンが本来の期限を超えて使用されるのを防ぎます。

• 依存関係の更新:OpenSSLおよびtower-httpの修正により、DoS(サービス拒否)攻撃のリスクが軽減されます。

データを失わずにアップグレードする方法:

  1. データベースを適切にバックアップする。 単にファイルをコピーするだけでは不十分です。破損を避けるため、コンテナ内のSQLiteバックアップコマンドを使用してください。 実行:docker exec vaultwarden sqlite3 /data/db.sqlite3 '.backup /data/db_backup.sqlite3'

  2. バックアップを検証する。 新しいファイルに対して整合性チェックを実行してください。「ok」と表示されない場合は、作業を続行しないでください。

  3. アトミックなアップグレード手法を使用する。 最初にコンテナを停止しないでください。停止するとダウンタイムが発生します。代わりに、古いイメージが動作している間に新しいイメージをプルし、それからサービスを再作成します。 実行: docker compose pull vaultwarden docker compose up -d vaultwarden

  4. IPヘッダーを設定する。 レート制限を確実に機能させるために、プロキシが使用しているヘッダーをVaultwardenに伝えます。環境変数に以下を追加してください: IP_HEADER=X-Forwarded-For

セットアップのセキュリティ強化:

• 平文の ADMIN_TOKEN の使用を停止してください。代わりに argon2 ハッシュを使用してください。 • リバースプロキシを介して、/admin パスをローカルネットワークのみに制限してください。 • 利用者が自分だけの場合は、SIGNUPS_ALLOWED を false に設定してください。

アップグレード自体は5分で終わりますが、適切な準備には10分かかります。バックアップを省略しないでください。

出典: https://dev.to/ericwoooo_kr/vaultwarden-1360-what-changed-what-to-patch-and-how-to-upgrade-without-losing-your-vault-3gd2