🇰🇷 한글 설명
Kruize Autotune의 REST API에는 인증 계층이 없으며, 데이터소스 설정을 반환하는 GET /datasources 및 데이터소스 메타데이터 엔드포인트가 기본 Gson 설정으로 객체를 직렬화하여 필드 제외 전략이 없습니다. 이로 인해 basic-auth 비밀번호, 베어러 토큰, API 키, OAuth2 클라이언트 시크릿 등 모니터링 데이터소스의 인증 정보가 서비스에 접근 가능한 모든 클라이언트에게 평문으로 노출됩니다. 공격자는 이 자격 증명을 수집해 백엔드 모니터링 스택에 인증하는 데 재사용할 수 있습니다.
💡 쉬운 설명
Kruize Autotune이라는 도구는 로그인 확인 없이 모니터링 시스템 연결 정보를 누구에게나 보여줍니다. 이 정보에는 비밀번호와 접근 키가 그대로 포함되어 있어 악의적인 사람이 이를 가져다 모니터링 시스템에 침입할 수 있습니다.
🇺🇸 원문 (English)
A flaw was found in Kruize Autotune. Its REST API ships without an authentication layer, and the endpoints that return datasource configuration — the list-datasources endpoint (GET /datasources) and the datasource-metadata endpoint — serialized datasource objects using a default Gson configuration with no field-exclusion strategy. As a result, the authentication secrets stored for each configured monitoring datasource (basic-auth passwords, bearer tokens, API keys, and OAuth2 client secrets) were returned in cleartext to any client able to reach the service. An attacker with network access to Autotune could harvest these credentials and reuse them to authenticate to the backing monitoring stack.
📍 영향받는 시스템
Kruize Autotune (인증 계층 및 필드 제외 설정이 없는 모든 버전, 정확한 영향 버전은 벤더 권고 확인 필요)
⚔️ 공격 벡터
네트워크로 Autotune 서비스에 접근하여 GET /datasources 등 엔드포인트를 호출해 평문 자격 증명을 탈취한 뒤 백엔드 모니터링 시스템에 재사용
🛡️ 대응 방법
Autotune을 최신 패치 버전으로 업그레이드하고, 인증 기능을 활성화하며, 노출된 데이터소스 자격 증명을 즉시 교체하고 엔드포인트 접근을 네트워크 수준에서 제한
🔧 검증 코드
응답 코드가 200이면 인증 없이 접근 가능하여 취약할 가능성이 높고, 401 또는 403이면 인증이 적용된 것으로 판단하며, 응답 본문에 password나 token 등의 필드가 보이면 자격 증명이 노출된 것입니다.
curl -s -o /dev/null -w '%{http_code}' http://localhost:8080/datasources