한화비전 카메라 펌웨어에서 발견된 GitHub 관리자 토큰, 남 일이 아니다
보안 연구자가 한화비전 보안카메라 펌웨어를 분석하다가 회사 GitHub 조직 전체에 접근 가능한 관리자 토큰을 발견했습니다. 원인은 빌드 과정에서 CI 환경변수가 그대로 파일에 기록된 것. 작은 팀일수록 흔히 저지르는 실수입니다.
무엇인가요
한 보안 연구자가 한화비전(옛 삼성테크윈) 보안카메라의 공개된 펌웨어 파일을 분석하다가, 로그인 페이지 빌드 결과물 안에 GitHub 관리자 토큰이 그대로 포함된 것을 발견했습니다. 이 토큰은 회사 GitHub 조직의 저장소 수백 개에 접근할 수 있는 권한을 가지고 있었습니다.
원인은 Vite 빌드 과정에서 CI 환경변수 전체가 빌드 시점에 파일로 그대로 기록된 것이었습니다. 연구자가 trufflehog로 스캔한 결과 동일한 토큰이 약 30개 파일에서 발견됐습니다. 한화비전은 보안 보고를 받은 지 12시간 만에 해당 토큰을 무효화하며 빠르게 대응했다고 알려졌습니다.
왜 주목할까요
- 원인이 특별히 이례적이지 않습니다. 빌드 도구가 CI 환경변수를 통째로 번들에 넣는 실수는 작은 팀에서도 자주 일어납니다.
- 발견 경위가 간단합니다. 공개된 빌드 파일과 오픈소스 스캔 도구(trufflehog)만으로 찾아냈다는 점에서, 반대로 누구나 내 프로젝트도 같은 방식으로 점검해볼 수 있다는 뜻이기도 합니다.
- 기업 규모와 무관한 문제라는 점이 시사점입니다. 대기업도 겪는 실수라면, 지금 배포 중인 사이드프로젝트나 초기 스타트업 제품도 예외가 아닙니다.
국내 관점 코멘트
1인 개발자나 초기 스타트업은 CI/CD 파이프라인을 빠르게 구축하는 데 집중하다 보니 환경변수 스코프를 세심하게 관리하지 못하는 경우가 많습니다. 특히 Vite·Next.js처럼 프런트엔드 빌드에서 import.meta.env나 process.env를 통째로 노출하는 설정을 그대로 두면, 배포된 JS 파일을 열어보는 것만으로 키가 드러날 수 있습니다. 이번 사례처럼 대응이 12시간 안에 이루어진 건 평판 관리 측면에서도 참고할 만합니다. 오늘 배포한 빌드 파일을 브라우저 개발자도구로 한 번만 열어봐도 이런 실수를 미리 잡을 수 있습니다.
이 아이디어를 활용하려면
- 적합한 사람
- 개발자 · 1인 창업자
- 예상 난이도
- 가볍게
- 필요 예산
- 무료
- 검증 기간
- 1시간
- 내 프로젝트 빌드 산출물(JS 번들)에 API 키·토큰이 그대로 노출되는지 확인
- trufflehog 등 시크릿 스캐너로 저장소·빌드 로그 점검
- CI 환경변수 중 빌드 시점에 불필요하게 노출되는 값 정리
난이도·예산·기간은 편집장이 글을 근거로 추정한 값입니다.
이 글은 편집 담당이 원문을 직접 확인해 요약하고, 하루아이디어의 국내 관점 분석을 더한 재가공 콘텐츠입니다. 편집 기준과 수정·삭제 요청은 편집 원칙에서 확인하실 수 있습니다.