Doki의 습격: 치명적인 새로운 Docker 취약점과 대응 방안

일본어 의성어인 "도키도키(doki-doki)"는 심장이 두근거리는 소리를 의미합니다. Docker 서버가 악성 코드 주입 등을 위한 백도어를 제공하는 새로운 취약점인 '도키(Doki)'에 감염된다면 보안 팀원들이 바로 이런 심정일 것입니다. 이름만큼이나 적절한 비유가 아닐 수 없습니다.
클라우드 인프라에 대한 의존도가 높아짐에 따라 보안 모범 사례를 정밀하고 확장성 있게 적용하는 것이 무엇보다 중요해졌습니다. 이는 단순히 애플리케이션 배포를 위한 최소한의 보안 조치를 넘어, 컨테이너 보안을 위한 맞춤형 대책을 수립하고 SDLC 전반에 걸쳐 이를 배포하는 수준까지 확장되어야 합니다.
사이버 공격은 날로 빈번해지고 있으며, 특히 클라우드에 저장된 민감한 데이터를 탈취하려는 목적으로 리눅스 기반 인프라를 노리는 위협이 더욱 거세지고 있습니다. Doki는 바로 이러한 목적을 위해 설계되었으며, 여러 기술을 결합하여 탐지를 피하면서도 강력하고 효과적으로 작동한다는 점에서 기존의 Docker 관련 보안 문제들과는 차원이 다른 위협을 보여줍니다.
Doki란 무엇이며 어떻게 작동할까요?
많은 침해 사고에서 공통적으로 나타나듯, 보안 설정 오류는 소프트웨어 침해 과정에서 매우 큰 비중을 차지합니다. 특히 Docker의 경우, Docker Engine API 설정 오류가 공격자들에게 좋은 먹잇감이 되어 왔습니다. Ngrok 봇넷 암호화폐 채굴 봇은 2018년부터 보안이 취약한 Docker 서버를 찾아다니며 자체 컨테이너를 실행하고 피해자의 인프라에 악성 코드를 심어왔습니다.
Doki는 이러한 악성 코드의 더욱 교활하고 악의적인 버전으로, 동일한 봇넷을 통해 동일한 공격 경로인 API 설정 오류를 악용하여 성공을 거두고 있습니다. 이 설정 오류는 코드 배포나 서버가 외부에 노출되기 훨씬 전에 해결되었어야 할 문제입니다. Doki는 모두에게 잘 알려진 풍자적 암호화폐인 도지코인(Dogecoin) 블록체인을 활용하여 사실상 탐지가 불가능한 백도어 역할을 수행합니다. 현재까지 이 악성 코드는 지난 1월부터 거의 흔적을 남기지 않고 활동해 왔습니다.
이 악성 코드는 기본적으로 블록체인 지갑을 악용하여 명령 제어(C2) 도메인 이름을 생성합니다. 이는 새로운 방식은 아니지만, Doki는 감염된 서버에서 원격 코드 실행 기능을 지속적으로 제공하여 랜섬웨어 및 DDoS와 같은 다양한 파괴적인 악성 코드 공격의 발판을 마련합니다. 말 그대로 "뼈다귀를 문 도지"처럼 끈질기게 달라붙습니다. Intezer의 전문가들이 이 위협과 그 광범위한 페이로드에 대한 전체 분석 보고서를 제공하고 있습니다.
코드에서 Doki 경로 찾아내기.
Doki는 탈중앙화된 블록체인 네트워크에서 작동하는 백도어이며, 흔적을 지우고 호스트의 더 많은 영역에 접근하여 감염을 확산시키기 위해 교묘하고 빠른 컨테이너 탈출 기법을 사용합니다. 이러한 점 때문에 개발자와 보안 팀 모두에게 악몽과도 같은 존재입니다.
그럼에도 불구하고, Doki는 보안 API 포트를 사용하는 Docker 서버는 감염시킬 수 없습니다. 운영 환경에서 API 설정을 잘못하는 것은 돌이킬 수 없는 결과를 초래하는 실수이지만, 클라우드 개발자를 대상으로 보안 인식 교육과 실무적인 보안 코딩 기술을 교육하는 것은 이처럼 복잡하고 강력한 악성 코드에 대응하는 비교적 "간단한" 해결책이 될 수 있습니다.
Doki가 침투하여 확산될 수 있는 보안이 취약한 Docker API의 예를 살펴보겠습니다.
dockerd -H tcp://0.0.0.0:2375
설정 오류를 찾으셨나요? 보안이 적용된 버전은 다음과 같습니다:
dockerd -H tcp://0.0.0.0:2376 --tlsverify --tlscacert=/etc/ssl/certs/ca.pem --tlscert=/etc/ssl/certs/server-cert.pem --tlskey=/etc/ssl/private/server-key.pem
취약한 예시에서 Docker Engine API는 TCP 2375 포트에서 대기 중이며, 모든 연결 요청을 수락하므로 Docker 서버에 접근할 수 있는 누구에게나 열려 있습니다.
보안이 적용된 예시에서 Docker Engine API는 TLS 인증서 검증을 사용하도록 설정되어 있으며, CA가 신뢰하는 인증서를 제공하는 클라이언트의 연결만 수락합니다.
개발자들이 Doki 감염의 근본 원인을 파악하고 해결할 수 있도록 돕는 새로운 게임형 챌린지를 준비했습니다. 여기에서 바로 플레이해 보세요:
안전한 클라우드 인프라는 팀워크의 산물입니다.
클라우드 설정 오류로 인해 2018년부터 2019년까지 전 세계 기업들은 무려 5조 달러에 달하는 막대한 손실을 입었으며, 수십억 건의 데이터 유출과 회복 불가능한 평판 하락을 겪었습니다. 충분히 예방 가능한 공격 경로라는 점을 고려하면 매우 충격적인 수치입니다. 배포 전 포트 노출 점검 및 수정, 알 수 없는 컨테이너 확인, 과도한 서버 부하 모니터링과 같은 조치만으로도 Doki와 같은 위협의 확산을 막을 수 있다는 사실을 생각하면, 이는 마음의 평화를 얻기 위한 아주 작은 투자일 뿐입니다.
전사적인 보안 인식은 매우 중요하며, SDLC에 참여하는 모든 구성원에게 보안 모범 사례 준수는 선택이 아닌 필수입니다. 우수한 기업들은 보안 책임을 공유하는 탄탄한 DevSecOps 프로세스를 구축하고 있습니다. 이를 통해 개발자와 앱 보안 전문가 모두가 일반적인 취약점이 소프트웨어와 핵심 인프라에 유입되지 않도록 차단하는 지식과 도구를 갖추게 됩니다.
보안 의식을 갖춘 강력한 클라우드 엔지니어가 되고 싶으신가요? 지금 바로 실력을 테스트해보세요.
배포 전 AI 기반 개발 거버넌스 확보
AI 기반 위험을 측정하고, 커밋 시점에 보안 코딩 정책을 적용하며, SDLC 전반에 걸쳐 안전한 소프트웨어 제공 속도를 높이세요.
더 많은 블로그 살펴보기
보안 코딩, AI 거버넌스, 소프트웨어 리스크 관리에 관한 전문가 콘텐츠를 확인해 보세요.
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed
배포 전 AI 기반 개발 보안 확보
소프트웨어 개발 수명 주기 전반에서 개발자 리스크를 파악하고, 정책을 시행하며, 취약점을 예방하세요.



.avif)