도커 API 독차지 하려는 움직임, 진짜 의도는 아직 미스터리
- 도커 API에 침투 후 다른 공격자 접근 차단
- 연결된 서버 통해 감염 확산 시도
- 결국 봇넷 만들려는 것...그 이유는 아직 몰라
공개되어 있는 도커 API(Docker API)를 겨냥한 사이버 공격 행위가 발견됐다. 이전에도 존재했던 수법이긴 하지만, 공격의 목적이 달라졌다고 보안 업체 아카마이(Akamai)는 지적했다. “이전에는 잘못 구성된 도커 서비스를 통해 암호화폐를 채굴하는 것이 공격자들의 목적이었습니다. 지금은 오히려 피해자 시스템을 제어하기 위한 도구들을 설치합니다. 그 과정에서 자신들이 먼저 차지한 도커 API를 독점하려 하기도 합니다.”
즉 이렇게 정리된다.
1) 이전 : 도커 API를 통해 암호화폐를 채굴하여 이득을 챙김
2) 지금 : 도커 API를 침해한 후 독차지 하고, 시스템 제어 권한을 챙김
“공격자들이 암호화폐 채굴보다 더 큰 뭔가를 노리고 있다는 것을 시사합니다.” 아카마이 측의 설명이다.
공격의 목적
아카마이는 자신들이 설치한 허니팟들을 통해 이러한 공격의 변화를 알아챘다고 자사 블로그에 밝혔다. “이전이나 지금이나 공격자들은 여전히 노출된 도커 API를 통해 피해자 환경 내부로 침투합니다. 하지만 접근 후의 행동에 차이가 있습니다. 이전에는 채굴 코드를 설치했고, 지금은 호스트 파일 시스템에 접근해 베이스64(Base64)로 암호화 된 스크립트를 실행한 후, 공격 지속성을 확보하면서 포트 2375번을 차단합니다. 다른 공격자들이 같은 도커 API에 접근하지 못하게 하는 겁니다.”
도커 API를 단독으로 확보한 공격자는 그 다음에 어떤 공격을 이어갈까? “전 단계에서 실행된 스크립트가 또 다른 드로퍼 멀웨어를 다운로드 받습니다. 이 드로퍼는 고(Go) 언어로 작성됐습니다. 재미있는 건, 이 드로퍼 코드에 이모티콘들이 군데 군데 포함돼 있다는 겁니다. 이는 공격자들이 대형 언어 모델(LLM)을 활용해 악성 코드를 마련했다는 걸 보여줍니다.”
챗GPT 등 대형 언어 모델 서비스를 이용하면, 인공지능이 답을 제공할 때 이모티콘을 적잖이 섞는다는 걸 알 수 있다. 단어 선택과 문장 배열 등으로만 나타낼 수 없는 뉘앙스를 더하기 위해, 주요 쟁점이나 핵심을 보다 가시적으로 표현하기 위해, 캐주얼한 대화 분위기를 형성하기 위해 인공지능은 이모티콘을 사용하려는 경향을 보인다.
이 드로퍼는 매스스캔(Masscan)이라는 도구를 사용해 도커 API를 스캔함으로써 해당 API와 연결된 다른 서버들을 찾아낸다. 그런 후 위의 공격 절차들을 반복한다. 즉 감염을 스스로 확산하는 기능을 가진 것으로, 아카마이는 이것을 두고 “공격자들의 진정한 목표는 봇넷을 생성하는 것으로 보인다”고 블로그를 통해 예상했다. 봇넷 생성이 목적이라면 도커 API 독점 시도 역시 쉽게 이해할 수 있다. 자신이 거느리는 공격 인프라인 봇넷에 다른 공격자가 개입하는 것이 반가울 리 없기 때문이다.
미완성?
아카마이의 분석가들은 공격자들의 악성코드에서 또 다른 공격 기능을 발견했다고 밝혔다. “텔넷과 크롬의 원격 디버깅 포트를 겨냥한 공격 루틴도 코드에 포함돼 있었습니다. 다만 아직 미완성 단계로 보였습니다. 활성화 되어 있지도 않았고요. 공격자들이 다음 단계 공격도 기획하고 있다는 걸 알 수 있습니다. 차기 버전에서는 이 공격이 실행될지도 모르겠습니다.”
도커 API를 독점하기 위해서, 앞서 말한 것처럼 특정 포트를 차단하기도 하지만, 주기적으로 도커 API를 점검하여 우분투(Ubuntu) 컨테이너 유무를 확인해 제거하기도 한다. 우분투 컨테이너는 공격자들 사이에서 암호화폐 채굴 멀웨어 호스팅에 사용되는 기술이다. 즉 이번 공격자가, API를 노리는 공격자들의 행태를 잘 이해하고 있다는 걸 알 수 있다. “이런 활동에 집중하고 있다는 건, 공격자들이 지금 당장 돈을 노리는 게 아니라는 걸 보여줍니다. 오히려 더 큰 뭔가를 위해 사전 준비를 꼼꼼하게 하고 있다고 봐야 합니다.”
도커 API 사용자, 어떻게 방어하나?
전체 공개된 도커 API는 이전부터 공격자들의 먹잇감이었다. 그렇다고 모든 도커 사용자들이 API를 비공개로 전환할 수도 없다. 특정 목적을 달성하기 위해서는 도커 API의 전체 공개 설정이 불가피하기 때문이다. “이를 잘 알고 있는 공격자들이 도커 API 활용법을 마음껏 바꾸고 있습니다. 그게 이번 발견이 주는 가장 큰 시사점입니다. 도커 API가 공격자들의 차기 무대가 되고 있다는 것 말입니다.” 아카마이의 설명이다.
아카마이는 “원칙적으로 도커 API는 인터넷으로부터 분리시켜 사용하는 게 맞다”고 강조한다. “원격 연결이 반드시 필요한 상황이라면 도커 엔진(Docker Engine)을 설정해 ‘신뢰할 수 있는 클라이언트만 연결할 수 있도록’ 조치를 취해야 합니다. 인터넷에 공개되더라도 제한을 둬야 한다는 겁니다. 또한 방화벽과 VPN 등을 활용해 연결하는 것도 중요합니다.”
도커 API의 활용 상태를 꾸준히 모니터링하는 것도 중요하다고 아카마이는 설명을 잇는다. “컨테이너가 시작되는 맥락이 정상적인지 아닌지 지속적으로 확인해야 합니다. 또 CPU 활용도가 비정상적으로 높지는 않은지도 확인 대상입니다. 평소와 다른 네트워크 연결 시도가 있는지도 검토해야 합니다.”
Related Materials
- Docker API 포트 노출: ‘데로(Dero)' 암호화폐 채굴 악성코드 경고 - Criminal IP Blog , 2024년
- 외부 노출 Docker API 서버 표적 Gafgyt 악성코드 봇넷 공격 사례 - SECUI 위협 동향 보고서 , 2024년
- Gafgyt Malware Targeting Docker Remote API Servers - Trend Micro 리서치 , 2024년
- 컨테이너 기반 가상화에 대한 Artifact 조사 및 분석 : Linux 환경 Docker 중심 - DBpia 논문 , 2024년