오픈 소스 모니터링 툴로 유명한 Prometheus를 사용하고 계신가요? 🖥️
많은 기업에서 애플리케이션 성능과 클라우드 인프라를 모니터링하기 위해 Prometheus를 사용하고 있는데요,
최근 연구 결과 이 툴이 비밀번호, 토큰, 내부 API 주소까지 인터넷에 그대로 노출시킬 수 있는 위험성을 가지고 있다는
사실이 밝혀졌습니다! 😱
Prometheus를 더 잘 이해하고, 위험을 방지하기 위한 방법을 알아보는 시간을 가져볼까요? 😊
Prometheus, 어떻게 위험할 수 있나? 🤔
Prometheus는 기본적으로 수집된 데이터를 HTTP 엔드포인트를 통해 공개하는 방식으로 설계되었습니다. 공식 문서에서도 "신뢰할 수 없는 사용자가 이 데이터를 볼 수 있다고 가정"하라고 명시되어 있을 정도인데요.
문제는 많은 사용자가 이 설정의 위험성을 간과하거나, 노출되는 데이터의 중요성을 제대로 인지하지 못한다는 점입니다. 🛑 Aqua Nautilus의 연구진은 Shodan이라는 검색 도구를 통해 4만 개 이상의 Prometheus 서버와 약 30만 개의 익스포터가 인터넷에 노출된 상태임을 확인했습니다.
Prometheus가 노출하는 정보는? 🧾
처음에는 "CPU 사용량, 메모리, 디스크 사용량" 같은 시스템 성능 데이터를 수집하는 것뿐이라
별로 위험하지 않아 보일 수 있어요. 그런데…
공격자의 관점에서 보면 이 데이터가 공격의 시작점이 될 수도 있습니다.
1️⃣ 평문 비밀번호와 토큰
어떤 서버에서는 비밀번호와 토큰이 암호화되지 않은 상태로 드러났습니다. 🛠️
이 정보는 해커에게 내부 시스템에 접근할 수 있는 열쇠를 제공하죠.
2️⃣ 내부 API 주소와 도메인 정보
예를 들어, Skoda Auto의 노출된 서버에서는 Docker 레지스트리와 이미지, 하위 도메인 정보까지 확인되었어요.
이 정보는 해커가 회사의 내부 시스템 구조를 파악하는 데 사용할 수 있습니다.
실제 공격 사례 🚨
1️⃣ Skoda Auto의 Prometheus 노출 사례
- 노출된 데이터:
체코 자동차 제조업체 Skoda Auto의 Prometheus 인스턴스가 인증 없이 인터넷에 공개된 상태였습니다.- 일부 회사 하위 도메인(subdomains)
- Docker 레지스트리 및 이미지
- API 주소 등 민감한 내부 정보가 노출됨.
- 문제점:
- 하위 도메인 정보는 공격자에게 내부 네트워크 맵핑에 필요한 정보를 제공합니다.
- Docker 레지스트리와 이미지 정보는 공격자가 악성 컨테이너를 삽입하거나, 기존 이미지를 복제해 악용할 가능성을 열어줍니다.
2️⃣ DoS 공격 사례
- 문제 엔드포인트: /debug/pprof
- 이 엔드포인트는 Prometheus가 원격 호스트를 프로파일링하는 데 사용됩니다.
- 기본 설정으로 활성화되어 있으며, 접근 제한이 없으면 누구든지 이를 악용할 수 있습니다.
- 연구진 실험 결과:
연구진이 AWS EC2 인스턴스와 Kubernetes 포드에서 DoS 공격 실험을 수행했습니다.- 이 엔드포인트에 과부하 요청을 보냈을 때, 가상 머신(VM)이 중단되거나 서비스가 완전히 중단되는 결과가 발생.
- 연구진은 "스크립트를 실행할 때마다 VM을 멈출 수 있었다"고 보고.
- 위험성 강조:
Morag는 Kubernetes 클러스터가 다양한 산업에 활용되고 있다며, 전투기와 같은 중요 시스템에서도 Kubernetes를 사용하는 경우 이러한 노출이 심각한 위험을 초래할 수 있다고 언급.
3️⃣ Repojacking 취약점
- Repojacking이란?
- 개발자가 GitHub 계정을 삭제하거나 이름을 변경하면서 네임스페이스를 폐기하지 않은 경우 발생.
- 공격자가 해당 네임스페이스를 다시 등록해 악성 코드를 삽입.
- 기존 프로젝트에서 이 네임스페이스를 참조할 경우, 업데이트되지 않은 프로젝트는 악성 코드를 받아오게 됨.
- Prometheus 익스포터의 취약점:
- Prometheus 공식 문서에 언급된 일부 익스포터가 취약.
- 이들 익스포터의 GitHub 네임스페이스가 자유롭게 주장할 수 있는 상태로 발견됨.
- 공격자가 이를 악용해 **원격 코드 실행(Remote Code Execution, RCE)**을 수행할 가능성이 있었음.
- 조치:
Aqua Nautilus는 이 문제를 Prometheus 팀에 보고했으며, 이후 해당 취약점이 해결되었음.
DoS 공격의 위험도 🚨
Prometheus 서버는 서비스 거부(DoS) 공격에도 취약한 것으로 나타났습니다.
특히 '/debug/pprof' 엔드포인트는 원격 호스트를 프로파일링하는 데 사용되며 기본적으로 활성화되어 있는데요,
이 엔드포인트를 악용하면 시스템을 과부하시켜 서버를 중단시킬 수 있습니다.
연구진이 AWS EC2 인스턴스와 Kubernetes 포드를 대상으로 실험했을 때,
스크립트를 실행할 때마다 가상 머신이 멈췄다고 합니다. 😨
만약 이런 일이 실시간 서비스에 발생한다면 큰 혼란을 초래할 수 있겠죠?
Repojacking 공격이란? 😈
Repojacking은 오픈 소스 프로젝트에서 자주 발생하는 공격인데요,
이는 개발자가 GitHub 계정을 변경하거나 삭제하면서 네임스페이스를 폐기하지 않을 때 일어납니다.
- 공격자가 이전 사용자 이름을 등록합니다.
- 동일한 이름으로 악성 코드를 업로드합니다.
- 이를 참조하는 기존 프로젝트가 업데이트되지 않은 경우, 악성 코드가 그대로 사용됩니다.
Prometheus의 일부 익스포터도 이런 위험에 노출되었으나, Aqua Nautilus의 보고 후 수정되었다고 합니다. 🔧
하지만, 이는 Prometheus만의 문제가 아니며, 모든 오픈 소스 프로젝트에서 발생할 수 있는 위험이라는 점을 기억해야 합니다.
위험을 예방하려면? 🛡️
Prometheus와 같은 툴을 안전하게 사용하려면 아래 방법을 참고해보세요.
✅ 서버와 익스포터를 오프라인 상태로 설정
혹은 최소한 인증 계층을 추가해 외부 접근을 제한하세요.
✅ DoS 위험 완화 도구 사용
도구를 활용해 엔드포인트를 보호할 수 있습니다.
✅ 오픈 소스 프로젝트 모니터링
자신이 의존하는 프로젝트가 안전한지 확인하고, 자동화된 스캐닝 도구를 사용하는 것이 좋습니다.
마무리: 보안은 선택이 아닌 필수! 🔒
Prometheus는 뛰어난 오픈 소스 모니터링 툴이지만,
이를 사용하는 환경에서 기본 보안 설정을 무시하면 큰 위험에 노출될 수 있습니다.
특히, 노출된 데이터가 공격의 시작점이 될 수 있음을 명심해야 합니다.
Prometheus를 사용 중이라면 지금 바로 설정을 점검해보세요! 😊
"보안을 강화하는 것만으로도 당신의 시스템은 한층 더 안전해질 수 있습니다." 💪
'knowledge🧠📚💡 > Security🔐⚙️🆔' 카테고리의 다른 글
🌐 심층 방어 체계(Defense in Depth): 성공 사례와 실현 방안 (5) | 2024.12.14 |
---|---|
🌐 Over-the-Air (OTA) Attack: 최신 기법과 방어 방법 (3) | 2024.12.14 |
🌐 정보통신망, 인터넷망, 내부망 – 쉽게 이해하기! (3) | 2024.12.13 |
📌 CPO와 CISO, 겸직은 가능할까? 아니면 불가능할까? (0) | 2024.12.11 |
Venom Spider의 새로운 악성코드: 우리는 준비되어 있을까? (0) | 2024.12.04 |