한화 보안 카메라, 로그인 페이지에 GitHub 관리자 토큰 노출
한화테크윈의 보안 카메라 로그인 페이지에서 GitHub 관리자 토큰이 유출되는 심각한 보안 취약점이 발견되었다. 이는 개발 과정의 부주의와 보안 검증 부족이 낳은 결과로 보인다.
diff --summary
- 한화테크윈의 보안 카메라 로그인 페이지에서 GitHub 관리자 토큰이 하드코딩된 채 노출되었다.
- 해당 토큰은 모든 GitHub 조직의 저장소에 접근 가능한 관리자 권한을 가지고 있었다.
- 이는 개발 과정에서 민감 정보가 부주의하게 포함되었고, 보안 검증이 미흡했음을 보여준다.
- 토큰이 악용될 경우 심각한 데이터 유출 및 시스템 통제권 상실로 이어질 수 있는 중대한 취약점이다.
- 보안 카메라와 같은 IoT 기기의 소프트웨어 공급망 보안에 대한 경각심을 일깨우는 사건이다.
한화테크윈의 보안 카메라에서 황당하면서도 심각한 보안 취약점이 발견됐다. 로그인 페이지의 소스 코드 안에 GitHub 관리자 토큰이 하드코딩된 채 노출된 것이다. 이 토큰은 모든 GitHub 조직의 저장소에 접근 가능한 관리자 권한을 가지고 있었다고 한다. 말 그대로 ‘만능 키’가 잠금장치 바로 옆에 매달려 있었던 셈이다.
어쩌다 이런 일이?
이 사건은 한 보안 연구가가 자신의 한화테크윈 보안 카메라를 분석하다 발견했다. 카메라의 웹 로그인 페이지 소스 코드를 열어보니, GH_TOKEN이라는 환경 변수에 GitHub 토큰이 그대로 노출되어 있었다는 것이다. 그것도 단순히 특정 저장소에 대한 접근 권한이 아니라, 해당 토큰이 속한 GitHub 조직의 모든 저장소에 관리자 권한으로 접근할 수 있는 광범위한 권한이었다.
이는 개발 과정에서 민감한 정보가 부주의하게 코드에 포함되었고, 제품 출시 전에 적절한 보안 검토나 코드 리팩토링이 이루어지지 않았다는 것을 의미한다. 개발자가 테스트나 임시 목적으로 사용했던 토큰을 그대로 배포했을 가능성이 크다. ‘설마 누가 이걸 보겠어?’ 하는 안일한 생각이나, 바쁜 일정 속에서 놓친 실수일 수도 있다. 하지만 그 결과는 기업 전체의 보안을 위협할 수 있는 심각한 문제로 이어진다.
그저 개발자의 실수일까?
이런 종류의 실수는 생각보다 흔하게 발생하곤 한다. 특히 개발자들이 빠르게 기능을 구현해야 하는 압박 속에서, 보안 베스트 프랙티스를 놓치기 쉽다. 환경 변수나 설정 파일에 민감 정보를 직접 넣는 대신, 보안 저장소(예: Vault)를 사용하거나, 빌드/배포 파이프라인에서 동적으로 주입하는 방식이 권장되는 이유다.
더 큰 문제는 이런 실수가 외부로 노출되기까지 아무도 인지하지 못했다는 점이다. 코드 리뷰, 정적/동적 분석, 침투 테스트 등 기본적인 보안 검증 절차들이 제대로 작동했다면 충분히 막을 수 있었던 사고다. 특히 보안 카메라와 같은 IoT 기기는 물리적 보안과 직접 연결되기 때문에 더욱 엄격한 보안 기준이 적용되어야 한다. 이번 사건은 IoT 기기 제조사들이 소프트웨어 공급망 보안에 대해 다시 한번 경각심을 가져야 할 필요성을 일깨워준다.
다행히 해당 토큰은 이미 무효화된 상태라고 한다. 하지만 이번 사례는 개발 과정의 작은 실수가 얼마나 큰 파급력을 가질 수 있는지, 그리고 보안은 개발의 모든 단계에서 최우선으로 고려되어야 한다는 사실을 다시 한번 상기시킨다.