검증 가능한 주장.
이것은 '우리는 안전합니다'라는 식의 마케팅 페이지가 아니라, 검증 가능한 주장(SR-N)의 모음이며, 각 주장은 당사 버그 바운티 프로그램에서 보상을 걸고 반박할 수 있습니다.
귀하의 서버 접근
SR-1root 비밀번호는 한 번만 사용되며 당사 측에 저장되지 않습니다.검증됨+
비밀번호는 첫 SSH 연결을 열고 서비스 사용자를 설치하는 데에만 필요합니다. 이 비밀번호는 스크립트 인자나 환경 변수가 아니라, 당사 연결을 위한 SSH 인증으로 전달됩니다. 당사 데이터베이스에는 이를 위한 필드가 없으며, 스크립트 실행 환경으로 들어가지 않고, 로그에도 기록되지 않습니다(연결 오류에는 주소와 포트만 포함되고 비밀번호는 절대 포함되지 않습니다). 메모리에서는 사용 후 (최선의 노력으로) 지워집니다 — 이는 보증이 아니라 심층 방어입니다. Go는 가비지 컬렉션 전까지 힙에 값의 사본을 남겨 둘 수 있습니다.
솔직한 단서: 이 비밀번호는 여전히 귀하 서버의 root 비밀번호입니다. 설치 후 당사는 SSH를 통한 비밀번호 및 root 로그인을 비활성화하지만, 비밀번호 자체는 변경하지 않습니다 — 원하시면 직접 변경하세요. '당사는 저장하지 않는다'는 사실이지만, '더 이상 비밀이 아니게 되었다'는 사실이 아닙니다.
SR-2설치 후 비밀번호 및 root SSH 로그인이 비활성화됩니다.검증됨+
PasswordAuthentication no, PermitRootLogin no, SSH는 비표준 포트(기본값 12011)로 이동, fail2ban 활성화(5회 실패 시 1시간 차단), 키를 통한 로그인만 허용됩니다. 공개 키는 사용 전에 엄격하게 검증됩니다. 개행 문자(authorized_keys에 추가 키를 몰래 끼워 넣는 것에 대한 방어)와 문법적으로 유효하지 않은 키는 거부됩니다.
잠금 방지: 커널이 (ss를 통해) 새 SSH 포트가 실제로 수신 대기 중임을 확인하기 전까지는 포트 22를 닫지 않습니다. 설정은 sshd -t로, sudo 규칙은 visudo -cf로 검사하며, 오류 발생 시 둘 다 롤백됩니다.
SR-3관리 키는 암호화된 형태로만 저장됩니다.검증됨+
패널은 귀하의 비밀번호가 아니라 스스로 생성하는 별도의 키(ed25519)로 동작합니다. 개인 키 부분은 데이터베이스에 AES-256-GCM으로 암호화되어 보관됩니다. 암호화 키(KEK)는 데이터베이스와 분리되어 — 서버 환경 변수에 — 저장되며, 프로덕션에서는 필수입니다(안전하지 않은 기본값이 없습니다. KEK가 없으면 암호화 서브시스템은 아예 시작되지 않습니다). 동일한 암호화가 데이터베이스의 중요한 비밀들 — Marzban 관리자 비밀번호/토큰/JWT, Reality 키, 결제 제공업체 키, 프록시 자격 증명 캐시, 백업 설정 — 을 보호합니다.
암호화는 데이터를 숨길 뿐 아니라 인증합니다(GCM 인증 태그). 암호화된 필드를 변조하면 복호화 시 감지되어 거부됩니다. 모든 필드는 매번 새로운 무작위 nonce로 암호화되며, KEK 값은 로그에 절대 남지 않고 짧은 id만 남습니다.
권한 토큰에 대하여: /sub 구독 토큰은 bearer 비밀입니다. 조회용으로는 SHA-256만 저장하고, 이미 발급된 링크를 다시 표시하는 데 필요한 사본은 AES-GCM 암호문으로 보관합니다. 이전의 평문 레코드는 HTTP 서버가 시작되기 전에 fail-closed 방식으로 새 형식으로 마이그레이션됩니다. 결제 webhook URL 식별자는 평문으로 저장되지만 그 자체로 이벤트를 인증하지는 않습니다. 진위 여부는 HMAC 서명으로 별도로 검증됩니다.
파트너 API 키의 비밀은 되돌릴 수 없는 형태로 저장됩니다. 전체 키는 발급 시 한 번만 표시되며, 데이터베이스에는 그 비밀 부분의 SHA-256이 남습니다. 연결된 AI의 액세스 토큰과 리프레시 토큰도 평문으로 저장되지 않습니다. 연결은 선택한 접근 수준으로 제한되며, 계정 소유자가 해제할 수 있습니다.
SR-4개인 키는 일반 응답에 포함되지 않으며, 명시적으로 내보낼 때만 제공됩니다.검증됨+
키는 서버에서 메모리 안에서만 복호화되며, 일반 API는 이를 절대 반환하지 않습니다. 키를 얻는 유일한 방법은 의도적인 내보내기 기능('내 키 가져가기')이며, 이는 로그인과 일회용 이메일 코드로 보호됩니다(코드는 HMAC 해시로만 저장되고, 상수 시간으로 비교되며, TTL 10분, 시도 5회). 따라서 키는 의도적으로 가져올 수는 있지만, 일반 요청을 통해 '유출'될 수는 없습니다.
SR-5서버가 삭제될 때, 키는 해당 레코드에서 동기적으로 삭제됩니다.검증됨+
서버 상태가 변경되기 전, 그리고 어떤 백그라운드 네트워크 작업이 일어나기 전에, 관리 키를 담고 있는 필드가 동기적으로 0으로 지워집니다. 데이터베이스가 삭제를 확인하지 않으면, 작업은 오류를 반환하며 재시도할 수 있습니다. 삭제는 여전히 '소프트' 방식입니다. 행(row)과 비밀이 아닌 서비스 데이터는 보존됩니다. 이것이 이미 생성된 백업의 물리적 삭제를 의미하지는 않습니다 — 백업의 수명 주기는 백업 보존 정책이 관리합니다.
SR-16감사된 파트너 API는 접근을 리소스 소유자로 범위 한정합니다.검증됨+
패널 경로에서는 partner_id를 서명된 세션에서 도출하고, 파트너 API에서는 검증된 API 키 또는 AI의 OAuth 연결에서 도출합니다. 소유자 식별자는 경로, 쿼리 매개변수, 요청 본문에서 가져오지 않습니다. API 키는 추가로 권한 범위(scope), 유효 기간, 요금제에 의해 제한되며, 연결된 AI의 권한 집합은 요청마다 소유자가 선택한 수준에 따라 계산됩니다.
무엇을 반환하거나 변경하기 전에, 시스템은 서버, 클러스터, 인바운드, 경로, VPN 사용자 또는 결제가 이 계정에 속하는지 다시 확인합니다. 데이터베이스 쿼리는 partner_id로 범위가 한정되며, 복합 고유 키와 복합 외래 키가 유효하지 않은 파트너 간 연결을 거부합니다. 테스트의 인가 매트릭스는 리소스 식별자를 받는 모든 엔드포인트에 대해 명시적인 IDOR 시나리오를 요구합니다.
솔직한 단서: 이는 공개 침투 테스트가 아니라 요청 경로 전반에 대한 코드 감사로 검증되었습니다 — 따라서 SR-16도 나머지와 마찬가지로 버그 바운티에서 반박에 열려 있습니다.
패널의 접근 권한에 대해 솔직하게 — 이는 '제한된' 것이 아니라 완전한 관리자 권한입니다.솔직한 참고+
모든 것을 자동으로 구성하기 위해(Xray+Reality 설치, 설정 적용, 지표 읽기) 패널은 서버에서 완전한 관리자 권한을 보유합니다(비밀번호 없는 sudo 권한을 가진 서비스 사용자를 통한 root 동등 권한). 이는 관리에 필요하며, 당사는 이를 '제한적'이라고 부르지 않습니다.
위험을 줄이는 요소: 비밀은 명령 인자가 아니라 프로세스의 stdin을 통해서만 서버에 전달되므로(프로세스 목록에 보이지 않습니다), 초기 설치 후 모든 관리 연결은 서버의 고정된(pinned) 호스트 키를 검증합니다 — '중간에서의' 서버 교체는 거부됩니다. 귀하가 통제하는 것: 접근 권한은 귀하가 언제든지 취소할 수 있는 키에 달려 있습니다 — 서버를 삭제하거나(키가 0으로 지워집니다) 호스트에서 VPS를 그냥 삭제하면(그러면 모든 것이 사라집니다) 됩니다.
귀하의 데이터와 프라이버시
SR-6VPN 사용자는 귀하의 서버에 존재하며, 당사는 최소한의 서비스 메타데이터만 보유합니다.검증됨+
VPN 계정 자체(VLESS/Reality)는 귀하의 마스터 서버의 Marzban에서 생성되고 존재합니다. 당사가 중앙에서 저장하는 것은 구독 링크를 발급하는 데 필요한 것뿐입니다. 즉, 무작위 구독 토큰과 프록시 자격 증명의 암호화된 스냅샷(캐시이며, 진실의 원천은 귀하의 Marzban입니다)입니다. 당사에는 트래픽, IP, 또는 사용자 방문 기록이 없습니다.
최종 사용자의 이메일 주소는 당사에 저장되지 않습니다. 계정 이름은 되돌릴 수 없게 파생되며 주소를 담고 있지 않습니다. 로그인 코드 메일은 당사가 보내므로 주소는 발송 대기열을 거치며 발송 직후 거기서 삭제됩니다. 다시 찾아온 사용자를 알아보기 위해 남는 것은 되돌릴 수 없는 지문뿐이며, 이로부터 주소를 복원할 수 없습니다. 주소가 그래도 남는 유일한 경우는 그대로 밝힙니다. 결제 시 결제 웹훅으로 도착해 보관 기간이 제한된 결제 기록에 들어가는 경우입니다.
이 서비스 데이터는 필요한 기간 동안만 보관하고 자동으로 삭제합니다: 이메일은 발송 직후 발송 대기열에서 제거되고, 결제 이벤트 본문은 처리 후에, 재시도를 기다리는 이벤트는 90일 기간 내에 삭제됩니다. 계정과 모든 데이터는 “고급 설정”에서 이메일로 받은 코드로 확인하여 직접 삭제하실 수 있습니다(자세한 내용은 위험 7 참조). 저희는 이를 모호한 표현 뒤에 숨기지 않고 솔직하게 공개합니다.
SR-7당사는 귀하의 트래픽이나 방문 로그를 수집하지 않으며, 서버는 방문 기록을 보관하지 않습니다.검증됨+
CreateYourVPN 플랫폼은 귀하나 귀하의 사용자가 어떤 사이트를 방문하는지에 대한 정보를 수신하거나 저장하지 않습니다. 지표 수집 스키마는 닫혀 있습니다. 물리적으로 IP, 도메인, 방문에 대한 필드가 없으며, 집계값(고유 온라인 수, 총 바이트, CPU/RAM/부하)만 있습니다. 각 노드는 자신의 id에 연결된 HMAC 토큰으로 인증하며, 자기 자신에 대한 지표만 기록할 수 있습니다. 노드 상의 밸런서(HAProxy)는 SNI 기반 TCP 라우터로 동작하며 트래픽을 복호화하지 않습니다. 서버 자체에서 시스템 저널은 약 1시간 이내로만 보관되며 syslog로 전달되지 않습니다.
플랫폼 수준을 넘어, 서버 또한 방문 기록을 보관하지 않습니다: Xray 접근 로깅은 모든 설정 푸시마다 강제로 비활성화되며(플랫폼이 log.access를 none으로 설정), 따라서 엣지 프록시는 사용자가 접속하는 주소를 기록하지 않습니다. 이것은 코드로 강제되며 플릿 전체에 배포되었습니다.
SR-8웹 분석은 Google Analytics이며, 다른 추적기는 없습니다.검증됨+
사이트와 패널이 어떻게 사용되는지 이해하기 위해 당사는 Google Analytics를 사용합니다(쿠키 배너가 쿠키 및 통계 수집에 대해 안내하며, 자세한 내용은 개인정보 처리방침에 있습니다). OAuth 동의 페이지에서는 분석 도구의 로드가 강제로 차단됩니다. URL에 AI 연결 요청의 수명이 짧은 식별자가 포함되어 있으며, 이 식별자는 제3자에게 전달해서는 안 되기 때문입니다. 다른 제3자 추적기는 없습니다. Sentry, PostHog, Mixpanel, 광고 픽셀 모두 없습니다. 백엔드에는 제3자 텔레메트리가 없으며, 최종 사용자 스토어프론트는 분석 대상이 아닙니다.
단서: GA는 (Google 측에서) 귀하의 IP와 조회된 패널 페이지의 주소를 수신합니다. 패널 URL에는 이메일이 아니라 클러스터 식별자만 포함됩니다.
SR-9결제는 외부에서 처리됩니다 — 당사는 전체 카드 번호를 수신하지 않습니다.검증됨+
결제와 모든 카드 데이터는 연결된 제공업체 측(lava.top)에서 처리됩니다. 당사는 검증된 webhook 이벤트만 수신합니다. 이벤트의 진위는 잔액이나 접근 권한이 변경되기 전에 해당 제공업체가 지원하는 방식으로 확인됩니다. 당사는 전체 카드 번호(PAN)나 CVV를 수신하지 않습니다. 동일한 이벤트가 다시 전달되어도 이중 지급은 발생하지 않습니다. 이벤트는 중복 제거됩니다.
단서: 제공업체는 webhook 본문에 카드 메타데이터(브랜드와 마지막 4자리)와 결제자의 이름 및 이메일을 포함할 수 있습니다. 원본 본문은 처리가 완료될 때까지 워커에 필요하며, 성공적으로 처리된 후에는 이메일 힌트와 함께 삭제됩니다. 재시도 또는 수동 검토를 기다리는 이벤트는 보존 기간(무활동 90일)이 끝날 때까지만 원본 본문을 보관하며, 그 이후에는 카드 메타데이터와 결제자의 이메일이 자동으로 삭제됩니다. '전체 카드 번호는 없다'는 사실이지만, 이는 제공업체의 특성입니다(당사가 직접 본문을 필터링하지는 않습니다). '카드에 대해 아무것도 볼 수 없다'는 사실이 아닙니다.
당사가 (파트너인) 귀하에 대해 저장하는 것, 솔직하게.솔직한 참고+
계정에 대해서는 이메일, 마지막 로그인 시간, 인터페이스 모드와 설정을 저장합니다. 결제에 대해서는 잔액과, 충전용으로 지정된 경우 Telegram을 저장합니다. 계정 보호를 위해 활성 세션에는 생성 시각과 마지막 활동 시각, IP 주소, user-agent가 포함됩니다. 성공 및 실패한 로그인 시도 기록은 동일한 기술 정보와 함께 90일간 보관됩니다.
패널 전반의 클릭 기록은 없습니다. 이와 별도로 목적별 로그가 있습니다. 파트너 API 요청은 최근 500건 이하, 약 25시간 이내로 보관되고, 인프라 이벤트와 진단 결과는 최대 7일간, 연결된 AI의 작업은 계정과 함께 보관됩니다. AI 작업을 기록하기 전에 비밀번호, 토큰, 키, 구독 링크는 삭제되고 사용자 이메일은 마스킹 처리됩니다.
서버 강화
SR-10방화벽은 필요한 것을 제외한 모든 것을 차단합니다.검증됨+
방화벽은 기본적으로 들어오는 연결을 차단합니다. 외부로 열린 것: 443(VPN, Xray+Reality), 비표준 포트의 SSH(기본값 12011), 그리고 — 마스터 서버에서 — Marzban 관리자 패널 포트로, 컨트롤 플레인 IP에 대해서만 열립니다. 포트 80은 HTTP-01을 위한 Let's Encrypt 모드에서만 별도로 열립니다. 포트 22는 SSH가 이동된 후 닫힙니다.
노드의 관리 포트는 외부가 아니라 마스터 서버의 IP에만 열립니다(이 바인딩이 실패하면 설치가 중단됩니다). 방화벽이 활성화되지 않으면 설치가 실패합니다. ICMP echo는 IPv4에 대해서만 제한됩니다. 당사는 서버가 '보이지 않는다'고 약속하지 않으며, IPv6가 올바르게 동작하도록 IPv6 ICMP는 유지됩니다.
SR-11자동 보안 업데이트.검증됨+
무인 업그레이드(unattended upgrades)가 보안 패키지 업데이트를 자동으로 설치합니다. 단서: 자동 재부팅은 의도적으로 비활성화되어 있습니다(검증되지 않은 커널이 스스로 재부팅하지 않도록) — 이는 재부팅이 필요한 수정 사항(커널, 때로는 OpenSSH)이 수동 또는 예약된 재부팅 후에만 적용됨을 의미합니다. '자동 패치'는 유저랜드에는 해당하지만, 재부팅이 필요한 것에는 해당하지 않습니다.
'보이지 않음'에 대해 솔직하게 — 당사는 그렇게 주장하지 않습니다.솔직한 참고+
당사는 서버가 '보이지 않는다'거나 '스캔할 수 없다'고 주장하지 않습니다. 포트 443은 열려 있으며, 여느 웹 서버처럼 TCP 연결에 응답합니다. '잘못된 연결에서는 관련 없는 평범한 웹사이트처럼 보인다'는 특성은 Xray 내부의 Reality 프로토콜이 제공합니다 — 이는 당사가 절대적 표현으로 만들지 않는 별도의 구성 요소입니다.
플랫폼(관리 패널)
SR-12비밀번호 없이 CreateYourVPN 계정에 로그인.검증됨+
파트너 로그인은 이메일로 전송되는 일회용 6자리 코드로 이루어집니다. 계정 비밀번호는 없습니다. 이는 생성된 서버 관리자 비밀번호와 같은 관리 대상 구성 요소의 내부 자격 증명에는 적용되지 않습니다. 코드는 암호학적 생성기로 생성되며, HMAC 해시만 저장되고, 비교는 상수 시간으로 이루어집니다. 코드는 성공 시 즉시 삭제되며, 5회 잘못 시도하면 조기에 무효화됩니다. 발급 속도 제한은 전체 주소 기준과 실제 메일함 기준으로 모두 계산됩니다. IP 변경, Gmail 주소의 점, 플러스 태그로는 별도의 한도를 얻을 수 없습니다.
SR-13세션을 확인하고 즉시 폐기할 수 있습니다.검증됨+
세션 토큰은 HttpOnly 및 Secure 쿠키에 담기며(JS는 이를 읽을 수 없습니다), 엣지에서만이 아니라 백엔드에서 검증됩니다. 유휴 타임아웃과 비활성 시 자동 로그아웃은 서버가 아니라 클라이언트에서 구현됩니다. 토큰은 HS256으로 서명되며, 검증 시 다른 모든 알고리즘('none' 포함)을 엄격히 거부합니다 — 고전적인 알고리즘 교체 공격은 통하지 않습니다. 스토어프론트 토큰과 파트너 패널 토큰은 audience로 분리됩니다. 최종 사용자 토큰은 기술적으로 파트너 API에 도달할 수 없습니다(그 반대도 마찬가지). 삭제된 파트너는 유효한 토큰으로도 거부됩니다.
각 파트너 세션에는 토큰을 갱신해도 유지되는 안정적인 서버 측 식별자가 있습니다. 일반 로그아웃은 토큰 발급분 하나만이 아니라 현재 세션 전체를 폐기합니다. “계정 세션” 섹션에서는 기기, IP 주소, 로그인 시간, 마지막 활동을 확인할 수 있으며, 어떤 세션이든 개별적으로 종료할 수 있습니다. “모든 기기에서 로그아웃”을 실행하면 모든 세션이 종료되고 연결된 AI의 연결도 해제됩니다.
로그인 기록은 90일간 보관되며 성공한 로그인, 잘못된 코드와 만료된 코드, 시도 횟수 초과를 보여 줍니다. 이미 교환된 토큰 발급분이 다시 사용된 징후가 있으면, 시스템은 세션이 복제된 것으로 간주하여 모든 세션과 AI 연결을 종료하고 소유자에게 알림을 보냅니다.
SR-14세션 토큰과 내부 비밀은 클라이언트 JavaScript에서 접근할 수 없습니다.검증됨+
브라우저 로컬 스토리지에는 세션 토큰이 없으며, 인터페이스 설정만 있습니다. 토큰을 HttpOnly 쿠키에 넣는 것은 Next.js의 서버 계층입니다. 브라우저는 백엔드의 내부 주소를 받지 않으며 Server Actions를 통해 백엔드에 접근합니다. CORS는 다른 오리진이 인가된 데이터가 담긴 API 응답을 읽는 것을 허용하지 않습니다.
소유자가 직접 관리하는 의도적인 예외가 있습니다. 이메일로 받은 코드를 입력한 뒤 수행하는 SSH 개인 키 내보내기(SR-4)와, 생성 시 전체 비밀이 브라우저에 한 번만 표시되는 새 파트너 API 키입니다. 그 이후에는 데이터베이스에서 이를 복원할 수 없습니다. 데이터베이스에는 해시만 남습니다. 공개 API 도메인은 설계상 인터넷에서 접근할 수 있지만, 유효한 세션, API 키 또는 OAuth 토큰이 없으면 보호된 데이터를 반환하지 않습니다.
SR-15플랫폼의 공개 도메인은 엄격한 보안 헤더와 함께 HTTPS를 사용합니다.검증됨+
CreateYourVPN의 공개 호스트는 HSTS(max-age 2년, includeSubDomains)와 함께 HTTPS로 제공됩니다. 저희가 호스팅하는 모든 웹 프런트엔드 — 플랫폼 사이트, 파트너 패널, 그리고 저희 서브도메인이든 파트너 자체 도메인이든 파트너 스토어프런트 — 와 API 도메인은 동일한 보안 헤더 세트를 전송합니다: Content-Security-Policy(API에서는 default-src 'none', 프런트엔드에서는 iframe 삽입을 금지하고 base-uri와 form-action을 고정), X-Content-Type-Options: nosniff, X-Frame-Options, 그리고 엄격한 Referrer-Policy(API에서는 no-referrer, 프런트엔드에서는 strict-origin-when-cross-origin이며 제한적인 Permissions-Policy도 함께 전송).
이는 해당 호스트 전부에서 프로덕션으로 동작하며 독립적으로 확인할 수 있습니다 — 임의의 HTTP 헤더 검사 도구나 SSL Labs 같은 서비스로 확인하면 됩니다.
AI 연결은 계정 세션을 넘겨주는 것이 아니라, 별도로 해제할 수 있는 접근 권한입니다.솔직한 참고+
AI 앱은 OAuth를 통해 연결되며 귀하의 패널 쿠키를 받지 않습니다. 동의 페이지에서는 보기만, 보기 및 설정, 삭제 및 접속 권한 부여의 세 가지 수준 중 하나를 선택합니다. 권한은 호출할 때마다 서버에서 확인됩니다. 중요한 삭제 작업에는 이메일로 받은 일회용 코드가 추가로 필요하며, 연결 전체는 “연결된 AI” 섹션에서 해제할 수 있습니다.
모든 도구 호출은 결과 및 인자의 안전한 사본과 함께 소유자가 볼 수 있는 로그에 기록됩니다. 비밀번호, 토큰, API 키, 개인 키, 구독 링크는 기록 전에 제거되며, 사용자 이메일은 마스킹 처리됩니다. 다만 선택한 AI 앱은 여전히 제3자 서비스입니다. 귀하가 의도적으로 읽거나 변경하도록 맡긴 데이터는 해당 제공업체의 규칙에 따라서도 처리됩니다.
위험에 대해 솔직하게(당사가 약속하지 않는 것)
다음은 현재 아키텍처에 남아 있으며 보안을 평가할 때 고려해야 하는 제약 사항입니다.
관리 패널은 서버 전체에 대한 암호화된 접근 키를 저장합니다. 이는 당연히 시스템에서 가장 민감한 구성 요소이며, 저희는 그에 걸맞게 보호합니다.
무엇이 이를 보호하는가: 무거운 비밀 값은 데이터베이스에 오직 암호문 형태로만 존재하고, 암호화 키(KEK)는 데이터베이스와 분리되어 보관되며, 관리 키는 브라우저로 가는 일반 응답에 포함되지 않고 서버를 삭제할 때 0으로 지워집니다. 구독 토큰에는 추가 계층이 있습니다 — 해시 조회(hash lookup)에 AES-GCM을 더한 방식 — 따라서 KEK 없이 데이터베이스 덤프만으로는 작동하는 /sub 링크가 하나도 담기지 않습니다.
솔직한 한계: 암호화는 데이터베이스 자체의 도난 — 백업, 복제본, 덤프 — 에 대해서는 확실하게 보호합니다. 하지만 프로세스가 KEK와 데이터베이스 모두에 접근할 수 있는 애플리케이션 호스트가 완전히 침해될 위험을 없애 주지는 못합니다. 전용 KMS/HSM은 현재 사용하지 않습니다. 그래서 저희 방어의 주된 초점은 호스트 격리, 자동 업데이트, 그리고 최소한의 공개 표면입니다.
VPS를 처음 추가할 때 플랫폼은 아직 해당 서버의 SSH 호스트 키를 알지 못하며, 독립적인 신뢰 채널을 통해 지문을 받지도 않습니다. 따라서 입력된 root 비밀번호로 이루어지는 첫 연결은 trust on first use 모델을 사용합니다. 이 시점에 네트워크 경로상에 있는 능동적인 공격자는 이론적으로 서버를 사칭할 수 있습니다. 저희는 이 위험을 제로라고 부르지 않습니다.
설치가 성공하면 지문이 고정되며, 이후의 모든 관리 연결은 이 지문과 일치해야 합니다. 비밀번호는 어디에도 저장되지 않으며 다시 사용되지 않습니다. 비밀번호 로그인과 root 로그인은 비활성화되고, 관리는 별도의 키로 전환됩니다.
이 한계를 완전히 해소하는 유일한 방법은 첫 지문을 독립적으로 검증하는 것입니다. 예를 들어 VPS 제공업체의 API를 통하거나 소유자의 확인을 받는 방식입니다. 현재 그러한 검증은 없으므로, 이 항목은 해결되지 않은 위험으로 남아 있습니다.
이는 우리 것만이 아니라 임대한 모든 서버가 가진 성질입니다: 스냅샷, 복구(rescue) 모드 등은 제공업체가 사용할 수 있으며, 어떤 소프트웨어도 이를 막지 못합니다. 반면, 신뢰할 수 있는 제공업체를 고르는 일은 귀하의 손에 달려 있고, 서버는 온전히 귀하의 것입니다 — 언제든 호스트를 바꾸거나 머신을 삭제할 수 있습니다.
완벽한 보호를 약속할 수 있는 사람은 없습니다 — 새로운 취약점은 모든 소프트웨어에서 나타납니다. 저희가 하는 일: 보안 업데이트는 자동으로 설치되며, 재부팅이 필요한 수정(커널, 때로는 OpenSSH)은 수동이든 예약이든 재부팅 후에 적용됩니다(SR-11 참조).
귀하의 주소는 로그인에 필요하며 계정이 있는 동안 보관됩니다. 최종 사용자의 주소는 프로필 데이터로 보관하지 않습니다. 예외는 처리되지 않았거나 검토를 기다리는 결제 이벤트에 포함된 결제자의 주소이며, SR-6과 SR-9에 설명되어 있습니다. AI 작업 로그에는 사용자 이메일이 마스킹된 형태로만 저장됩니다.
로그인이 이메일로 오는 일회용 코드에 의존하므로, 사실상 귀하의 메일함이 계정의 열쇠입니다 — 잘 보호할 만한 가치가 있습니다. 두 번째 요소는 아직 없습니다. 현 단계에서는 합리적이지만 알아 둘 만합니다.
최종 사용자의 이메일은 메시지가 전송된 후 대기열에서 제거되며, 성공한 결제 이벤트의 원본 본문은 처리된 후 삭제됩니다. 파트너 API 로그는 최근 500줄, 약 25시간으로 제한되며, 인프라 이벤트와 진단 결과는 최대 7일간 보관됩니다.
파트너 계정의 로그인 기록은 90일간 보관됩니다. 재시도나 수동 검토를 기다리는 결제 이벤트의 본문에도 활동이 없는 상태로 90일이라는 동일한 최대 기간이 적용되며, 그 이후 개인 데이터는 지워집니다.
별도의 예외는 연결된 AI의 작업 로그입니다. 이 로그는 소유자를 대신해 수행된 작업을 검토하는 데 필요하며 계정과 함께 보관됩니다. 기록 전에 비밀 정보는 제거되고 이메일은 마스킹되지만, 현재 이 로그에는 별도의 짧은 TTL이 없습니다.
계정은 “고급 설정”에서 직접 삭제하실 수 있습니다. 삭제는 즉시, 한 번에 전부 이루어지며, AI 작업 로그를 포함해 위에서 설명한 모든 로그도 함께 삭제됩니다. 삭제된 데이터는 데이터베이스 백업이 덮어써질 때까지 백업에 남아 있으며, 그 기간은 최대 30일입니다. 지원팀과 주고받은 서신은 계정과 별도로 보관되며, 요청 시 삭제됩니다.
Google Drive 또는 S3로의 백업 내보내기를 활성화하면, 사용자 데이터가 귀하의 서버를 벗어나며, 그 보호는 이후 귀하의 클라우드에 달려 있습니다 — 본 보고서는 이를 별도로 다루지 않습니다. 이는 귀하의 의도적인 선택입니다: 이 기능은 귀하가 직접 켜는 것입니다.
이것을 확인하는 방법.
위의 모든 주장은 공개적인 내기입니다. 당사가 틀렸거나 부풀린 부분을 찾아 주시길 바랍니다:
트랙 A — 전형적인 취약점(RCE, 인가 우회, IDOR, 정보 유출 등).
트랙 B — 이 리포트 반박하기: 어떤 SR-N이든 거짓임을 증명하면 보상을 받고, 당사는 정정 내용을 공개적으로 게시합니다.
무언가 찾으셨나요?
재현 가능한 개념 증명(PoC)을 담아 알려 주세요. 72시간 이내에 응답하며, 분류(triage)는 내부에서 처리합니다.