이 글의 목차
유출 대상이 구독 링크, 설정 본문, 컨트롤러 키 중 무엇인지 먼저 확인하세요
구독 링크는 일반 다운로드 주소가 아닙니다. URL의 token만으로 전체 노드 설정을 반복해서 받을 수 있는 경우가 많습니다. 공개 단체 대화방, 캡처 이미지, 지원 요청 또는 온라인 변환 사이트에 게시했다면 트래픽 이상이 생길 때까지 기다리지 말고 자격 증명 유출로 처리하세요.
노출 범위도 확인해야 합니다. 구독 URL만 유출되었다면 링크를 재설정해 이후 다운로드를 차단할 수 있습니다. 전체 YAML이 공개되었다면 서버 주소, UUID, 비밀번호 또는 개인 키가 이미 포함되었을 수 있으므로 구독 token만 바꿔도 이 기존 설정은 무효화되지 않습니다. Dashboard의 secret과 서비스 웹사이트 계정 비밀번호는 별도의 자격 증명이므로 각각 교체해야 합니다.
노출된 내용과 대응 범위
| 노출된 내용 | 다른 사람이 얻을 수 있는 정보 | 필수 조치 |
|---|---|---|
| 전체 구독 URL | 설정을 계속 다운로드하거나 업데이트할 수 있음 | 구독 링크 재설정/폐기 후 모든 클라이언트 업데이트 |
| 원본 YAML 또는 QR 코드 | 파일에 들어 있는 기존 노드 자격 증명 | 제공자에게 문의해 노드 자격 증명 교체가 필요한지 확인 |
| 서비스 웹사이트 계정 | 요금제, 기기, 결제 또는 구독 관리 권한 | 비밀번호 변경, 세션 종료, 사용 가능한 추가 인증 활성화 |
| external-controller secret | 포트에 접근할 수 있을 때 Mihomo 제어 | secret을 교체하고 수신 대기 범위와 방화벽을 강화 |
기존 자격 증명을 먼저 무효화한 뒤 게시물과 캡처 이미지를 삭제하세요
유출을 발견하면 먼저 구독 서비스의 자체 패널로 이동해 "구독 재설정", "구독 주소 갱신", "링크 폐기"와 비슷한 기능을 찾으세요. 패널에 해당 메뉴가 없다면 즉시 제공자에게 연락해 기존 URL을 무효화해 달라고 요청합니다. 공개 메시지만 삭제해서는 충분하지 않습니다. 봇, 브라우저 캐시 또는 다른 사람이 이미 링크를 저장했을 수 있습니다.
재설정한 새 링크는 먼저 비밀번호 관리자에 저장하고 모든 기기에 곧바로 전달하지 마세요. 클라이언트 하나에서 새 주소로 업데이트할 수 있는지 확인한 뒤 서비스 패널이나 통제된 로컬 환경에서 기존 주소를 검사합니다. 기존 주소는 401, 403, 404, 만료 안내를 반환하거나 원래 설정을 더 이상 반환하지 않아야 합니다. 전체 내용을 계속 다운로드할 수 있다면 폐기가 끝나지 않은 것입니다. 터미널 명령, 캡처 이미지, 브라우저 주소 표시줄에 완전한 token 사본을 또 남기지 마세요.
긴급 대응 순서
최소한의 증거 보관
유출 시각, 위치, 노출 유형을 기록하고 전체 링크를 다시 전달하지 않습니다.
기존 URL 폐기
서비스 패널에서 재설정하고 자체 처리 메뉴가 없다면 제공자에게 문의합니다.
기존 URL 무효화 확인
상태와 설정 반환 여부만 확인하고 응답 본문을 공개 로그에 기록하지 않습니다.
기기 한 대 업데이트
새 링크가 정상임을 확인한 뒤 다른 클라이언트를 교체합니다.
공개 사본 삭제
게시물, 지원 요청 첨부 파일, 캡처 이미지, 코드 조각을 철회해 추가 확산을 줄입니다.
복사 경로를 따라 모두 찾아보세요. 원본 링크가 한 곳에만 남아 있는 경우는 드뭅니다
문제를 해결한 경로를 되짚어 보세요. curl 명령이 포함된 터미널 화면을 캡처했는지, URL을 Git 저장소, 대화 기록, 클라우드 노트, 브라우저 북마크, CI 변수 또는 온라인 YAML 검사기에 넣었는지 확인합니다. token이 포함된 쿼리 매개변수는 Web 서버 접근 로그와 Shell 기록에도 남을 수 있습니다.
이 사본을 정리하는 목적은 기존 token을 다시 안전하게 만드는 것이 아니라 새 구성원이 계속 잘못 사용하거나 검색 엔진과 협업 도구에 민감한 정보가 장기간 노출되는 일을 막는 것입니다. Git에 이미 커밋했다면 최신 파일만 수정해서는 안 되며 저장소 절차에 따라 기록을 정리하고 자격 증명을 교체해야 합니다. 어떤 기록 재작성도 폐기를 대신할 수 없습니다.
자주 빠뜨리는 위치
- 단체 대화방, 포럼, 고객 지원 요청 첨부 파일
- 캡처 이미지의 주소 표시줄, QR 코드, 터미널 명령
- Git commit, Issue, CI 로그 및 환경 변수
- Shell 기록, 클립보드 동기화, 클라우드 노트
- 온라인 구독 변환, YAML 검증 또는 속도 측정 웹페이지
- 구형 휴대전화, 구형 컴퓨터, 제거한 클라이언트의 백업
전체 설정이 유출되었다면 노드 자격 증명을 따로 사용할 수 있는지도 판단해야 합니다
구독 token은 "설정을 받을 수 있는지"를 제어하고 노드의 UUID, 비밀번호, 개인 키 또는 기타 인증 필드는 "서버에 연결할 수 있는지"를 제어합니다. 공개된 내용에 후자가 포함되었다면 공격자는 새 구독을 받지 못해도 서비스 제공자가 노드 자격 증명을 바꾸거나 무효화할 때까지 기존 노드를 계속 사용할 수 있습니다.
사용자가 서버 측 노드 자격 증명을 직접 교체할 수 없는 경우가 많습니다. 유출 시각과 설정 유형을 제공자에게 알리고 기존 노드가 교체되는지, 비정상 기기나 트래픽을 확인할 수 있는지 문의하세요. 문제를 입증하려고 원본 YAML을 다시 보내지 말고 가린 노드 이름, 프로토콜 유형, 필요한 시각만 제공하세요.
클라이언트마다 차례로 교체하고 기존 설정이 계속 자동 업데이트되지 않는지 확인하세요
기존 링크의 무효화를 확인한 다음 기기를 처리하세요. 주 기기에서 기존 구독 기록을 삭제하고 새 주소를 추가해 직접 업데이트합니다. 새로운 업데이트 시각, 정책 그룹, 노드 목록을 확인한 뒤 현재 설정으로 지정하세요. 다른 컴퓨터, 휴대전화, 라우터, WebDAV 동기화 사본도 기기별로 교체해야 합니다. 한 대만 업데이트하면 다른 기기의 예약 작업이 기존 token에 계속 접근할 수 있습니다.
라우터의 OpenClash, 서버 cron 또는 컨테이너 환경은 빠뜨리기 쉽습니다. 구독 예약 업데이트 로그를 확인해 기존 URL의 401/403이 계속 나타나지 않는지 보세요. 기존 링크는 무효화되었는데도 기기가 매시간 요청한다면 아직 정리하지 않은 설정 사본이 있다는 뜻입니다.
교체 완료 증거
- 사용 중인 모든 기기가 새 링크로 업데이트 가능
- 기존 링크가 원래 설정을 더 이상 반환하지 않음
- 서비스 패널에 알 수 없는 기기나 비정상 트래픽이 없음
- 예약 작업 로그가 기존 token을 더 이상 요청하지 않음
- 동기화 및 백업이 기존 주소를 다시 덮어쓰지 않음
원본 구독 링크를 모르는 변환 사이트에 전달하지 마세요
변환 웹사이트는 다른 형식으로 출력하기 위해 구독 URL을 읽고 대개 전체 설정도 다운로드해야 합니다. 따라서 운영자가 token, 노드 주소, 노드 자격 증명을 볼 수 있습니다. 페이지의 HTTPS는 전송 과정만 보호하며 사이트가 이 내용을 기록, 캐시 또는 재사용하지 않는다는 보장은 아닙니다.
클라이언트에서 직접 가져올 수 있다면 미리 변환할 필요가 없습니다. 형식 차이가 실제로 있다면 구독 서비스 제공자의 공식 변환 메뉴를 먼저 사용하거나 본인이 제어하는 기기에서 검토 가능한 로컬 도구를 실행하세요. 그래도 출력 링크를 쉽게 추측할 수 있는지, 서비스가 기록을 보관하는지, 기존 token을 언제든 재설정할 수 있는지 확인해야 합니다.
변환이 필요할 때 선택 기준
| 방식 | 위험 평가 | 권장 사항 |
|---|---|---|
| 클라이언트에서 직접 가져오기 | 원본 URL을 본인이 사용하는 클라이언트에만 제공 | 우선 선택 |
| 서비스 제공자의 공식 변환 | 제공자가 이미 구독을 관리하지만 출력 링크와 보관 규칙은 확인해야 함 | 안내 확인 후 사용 |
| 직접 배포한 변환 도구 | 데이터가 본인이 제어하는 환경에 남지만 업데이트와 접근 제어를 직접 관리해야 함 | 서비스를 유지 관리할 수 있는 사용자에게 적합 |
| 검색으로 찾은 무료 변환 웹페이지 | 운영자, 로그, 보관 기간이 모두 불분명함 | 원본 링크를 제출하지 마세요 |
로그와 캡처 이미지를 공개하기 전에 문제 해결에 실제로 필요한 정보만 남기세요
구독 업데이트에 실패할 때는 보통 클라이언트와 커널 버전, HTTP 상태 코드, Content-Type, 오류 원문, 발생 시각만 제공하면 됩니다. URL에서는 도메인과 경로 유형을 남길 수 있지만 token, query 매개변수, 사용자 이름, 비밀번호, 노드 주소는 가려야 합니다. YAML 오류는 인접 구조만 잘라 내고 실제 값은 example.com과 REDACTED로 바꾸세요.
로그에는 Authorization, UUID, Dashboard secret, 내부망 주소도 나타날 수 있습니다. 민감 정보를 제거한 뒤 다시 처음부터 읽어 보세요. 브라우저 주소 표시줄만 가리면 안 되며 QR 코드와 터미널 기록에서도 같은 링크가 다시 노출될 수 있습니다.
客户端:Clash Verge Rev x.y.z
内核:Mihomo x.y.z
订阅域名:example.com
token:REDACTED
HTTP 状态:403
错误:subscription update failed at 10:32구독을 비밀번호처럼 관리하면 다음에는 기억에 의존해 사후 수습하지 않아도 됩니다
- 저장
- 원본 링크는 비밀번호 관리자에 저장하고 설정 백업을 암호화하며 token을 파일 이름에 넣지 마세요.
- 동기화
- WebDAV, 클라우드 저장소, CI에는 별도의 자격 증명과 최소 권한을 사용하고 공유 범위를 확인하세요.
- 캡처 이미지
- 주소 표시줄, QR 코드, 설정 세부 내용을 먼저 잘라 낸 뒤 지원 요청에 업로드하세요.
- 로그
- URL 민감 정보 제거 기능을 켜세요. 공개하기 전에 token=, Authorization, password, uuid 같은 필드를 검색합니다.
- 퇴사 또는 기기 교체
- 기존 기기 승인을 해제하고 로컬 설정을 정리하며 사본의 행방을 확인할 수 없다면 구독을 재설정하세요.
사고가 실제로 종료되었다고 볼 수 있는 기준은 기존 구독을 사용할 수 없고, 필요한 노드 자격 증명이 교체되었으며, 모든 정상 기기가 새 링크를 사용하고, 공개 위치와 자동 작업에 기존 값이 더 이상 나타나지 않는 것입니다. 단순히 "게시물을 삭제함"만으로는 완료되지 않습니다.
