시크릿 스캐닝
시크릿 스캐닝 (Secrets Scanning)
시크릿(환경 변수)을 올바르게 관리하는 것은 중요해요. 사람들이 시크릿을 외부에 노출하는 가장 흔한 방식은 코드 파일에 시크릿을 직접 하드코딩하는 것인데, 그러면 악의적인 사용자가 여러분의 시크릿과 그 시크릿이 접근할 수 있는 서비스를 이용할 수 있게 됩니다.
출처: 문서
본문
시크릿(환경 변수)을 제대로 관리하는 것이 중요합니다. 사람들이 시크릿을 외부로 노출하는 가장 흔한 방식은 코드 파일에 직접 하드코딩하는 것이에요. 그러면 악의적인 사용자가 여러분의 시크릿과 시크릿이 접근할 수 있는 서비스를 악용할 수 있습니다.
예를 들어, 유출된 app.py 파일은 이렇게 생겼을 수 있어요:
import numpy as np
import scipy as sp
api_key = "sw-xyz1234567891213"
def call_inference(prompt: str) -> str:
result = call_api(prompt, api_key)
return result
이 문제를 막기 위해 우리는 여러분이 push할 때마다 TruffleHog를 실행합니다. TruffleHog는 하드코딩된 시크릿을 스캔하며, 감지되면 이메일을 보내드려요.
검증된 시크릿(해당 제공자에 대한 인증이 확인된 시크릿)에 대해서만 이메일을 받게 됩니다. 다만 검증되지 않은 시크릿이 반드시 무해하거나 유효하지 않은 것은 아닙니다. 네트워크 오류 같은 기술적 이유로 검증이 실패할 수 있기 때문이죠.
TruffleHog는 여러 서비스에서 동작하는 시크릿을 검증할 수 있으며, Hugging Face 토큰에만 국한되지 않습니다.
이메일 알림은 설정에서 옵트아웃할 수 있어요.
유출된 시크릿이 Hugging Face access token이라면 바로 무효화할 수 있습니다 — 본인 소유가 아니어도요. Revoking a leaked token을 참고하세요.
더 알아보기 (Learn more)
시크릿은 코드에 하드코딩하지 말고 반드시 Secrets/환경 변수로 관리하세요. Hub는 모든 push를 TruffleHog로 스캔해 유출 시 이메일로 알리고, 검증된 token은 즉시 폐기할 수 있습니다. 보안 토큰 관리와 Spaces 시크릿 설정 문서를 함께 참고하세요.