소프트웨어가 설치본, 시청자, 데이터를 보호하기 위해 현재 구현한 내용입니다. 이는 기능에 대한 설명이며 인증이나 보증이 아닙니다. 소프트웨어가 실행되는 서버의 보안은 운영자가 책임집니다.
설계상 셀프 호스팅
패널, 구독자 API, 워커, 오리진, 노드 등 모든 구성 요소는 운영자가 통제하는 서버에서 실행됩니다. 배포자는 운영자가 켠 것 외에는 설치본으로부터 아무것도 받지 않습니다(업데이트 확인은 버전만 보내고, TMDB 조회는 검색한 제목을 보냅니다).
계정과 패널 액세스
패널 계정에는 역할과 권한 그룹이 있습니다. 비밀번호는 bcrypt 해시로 저장되며, 시간 기반 일회용 비밀번호(TOTP)를 사용할 수 있고 관리자에게 필수로 지정할 수 있습니다. 로그인은 무차별 대입 공격으로부터 보호되고, 로그인 페이지에는 reCAPTCHA 또는 Turnstile을 선택적으로 적용할 수 있습니다. 모든 변경은 실행자와 주소와 함께 감사 로그에 기록됩니다.
비밀 값과 저장 데이터
서버의 SSH 자격 증명, 제3자 API 키 등의 비밀 값은 저장 전에 설치본의 비밀 값에서 파생한 키로 봉인됩니다. Admin API 키는 해시로 저장되며 한 번만 표시됩니다. 라인(시청자)의 비밀번호는 플레이어 앱에 알려 주어야 하므로 평문으로 저장됩니다. 데이터베이스 보호는 운영자의 책임입니다.
재생 보호
재생 링크는 HMAC-SHA256으로 서명되며 만료되고, 시청자의 주소에 묶을 수 있습니다. 각 라인에는 연결 제한이 있으며, 국가, ISP, 주소별 규칙으로 시청자를 차단하거나 허용할 수 있습니다. 반복된 로그인 실패는 자동으로 차단됩니다. DRM은 없습니다.
백업과 복원력
운영자가 보관하는 암호문으로 암호화되는 예약된 데이터베이스 덤프, 모든 덤프에 대한 복원 검사, S3 호환 스토리지로의 선택적 오프사이트 복사, 유지보수 모드를 제공합니다. 노드는 오리진으로 폴백하고 작업은 리스와 데드라인으로 실행됩니다.
가시성
API, 패널, 워커의 Prometheus 메트릭과 상태 확인 엔드포인트, 연결 및 트래픽 보기, 이메일·Telegram·서명된 웹훅 알림, 서버에 대한 모든 변경을 기록하는 클러스터 로그가 있습니다.
취약점 신고
제목을 "Security"로 하여 [email protected]로 문제를 재현할 수 있는 설명과 함께 보내 주세요. 세부 사항을 공개하기 전에 수정할 시간을 주시기 바랍니다. 배포자는 버그 바운티 프로그램을 운영하지 않습니다.