Vaultwarden 1.36.0: 업그레이드 가이드

셀프 호스팅은 여러분이 직접 보안 팀이 된다는 것을 의미합니다.

클라우드 환경에서는 기업이 사용자가 인지하기도 전에 취약점을 패치합니다. 하지만 Vaultwarden의 경우, 리스크는 여러분의 책임입니다. 업데이트를 건너뛰면 알려진 취약점에 노출될 수 있습니다.

Vaultwarden 1.36.0은 두 가지 중요한 영역을 수정합니다: • 관리자 패널 인증. • 세션 토큰 처리.

관리자 패널은 흔한 공격 대상입니다. 많은 사용자가 이를 공개 서브도메인에서 실행합니다. 프록시 레벨에서 /admin 경로를 차단하지 않으면 위험에 처할 수 있습니다.

1.36.0의 주요 개선 사항:

• 서버 측 속도 제한(Rate limiting): 이제 앱이 내부적으로 속도 제한을 처리합니다. 더 이상 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. 원자적(Atomic) 업그레이드 방식을 사용하세요. 컨테이너를 먼저 중지하지 마세요. 이는 다운타임을 유발합니다. 대신 기존 컨테이너가 실행 중인 동안 새 이미지를 가져온(pull) 다음, 서비스를 재생성하세요. 실행: docker compose pull vaultwarden docker compose up -d vaultwarden

  4. IP 헤더를 설정하세요. 속도 제한이 제대로 작동하도록 프록시에서 사용하는 헤더를 Vaultwarden에 알려주어야 합니다. 환경 변수에 다음을 추가하세요: IP_HEADER=X-Forwarded-For

설정 강화하기:

• 평문 ADMIN_TOKEN 사용을 중단하세요. 대신 argon2 해시를 사용하세요. • 리버스 프록시를 통해 /admin 경로를 로컬 네트워크로 제한하세요. • 혼자 사용하는 경우 SIGNUPS_ALLOWEDfalse로 설정하세요.

업그레이드에는 5분이 걸리지만, 제대로 된 준비에는 10분이 걸립니다. 백업을 건너뛰지 마세요.

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