COMMENTS (0)
댓글은 익명으로 작성되며, 삭제 비밀번호를 설정하면 본인만 삭제할 수 있습니다. 비밀번호를 설정하지 않은 댓글은 누구나 삭제할 수 있습니다.
USB 1개로 에어갭을 넘었다. 북한 APT37이 Ruby 런타임과 6종 악성코드로 격리 네트워크를 침투한 Ruby Jumper 캠페인.
댓글은 익명으로 작성되며, 삭제 비밀번호를 설정하면 본인만 삭제할 수 있습니다. 비밀번호를 설정하지 않은 댓글은 누구나 삭제할 수 있습니다.
2025년 12월, Zscaler ThreatLabz의 위협 연구원 Seongsu Park이 하나의 LNK 파일을 분석하기 시작했다. 파일에는 아랍어로 번역된 북한 신문의 팔레스타인-이스라엘 분쟁 기사가 미끼로 들어 있었다. 그런데 이 파일 뒤에는 에어갭 네트워크까지 침투하도록 설계된 6종의 신형 악성코드가 숨어 있었다.
2026년 2월 공개된 Zscaler 보고서는 이 캠페인을 Ruby Jumper라고 명명했다. 북한 정찰총국 산하 APT37(ScarCruft)이 Ruby 프로그래밍 언어 런타임을 통째로 USB에 심어, 인터넷이 차단된 에어갭 시스템까지 명령을 전달하고 데이터를 빼내는 양방향 공격 체계를 구축한 것이다.
에어갭 네트워크는 물리적으로 인터넷과 분리된 환경이다. 군사 기밀, 핵 시설, 주요 산업 제어 시스템이 이 방식으로 보호된다. 일반적인 원격 해킹이 불가능하기 때문에 공격자는 물리적 매개체가 필요하다.
APT37은 이 문제를 USB 드라이브로 해결했다. 단순히 악성 파일을 USB에 담는 수준이 아니다. USB 자체를 양방향 통신 채널로 만들어, 인터넷 연결 PC와 에어갭 PC 사이에서 명령-실행-결과를 중계하는 구조를 설계했다.
Ruby Jumper가 독특한 이유는 각 악성코드가 명확한 역할을 분담한다는 점이다.
최초 LNK 파일 실행 후 메모리에 로드되는 임플란트다. Zoho WorkDrive를 C2 서버로 악용한다. 하드코딩된 OAuth 토큰으로 Zoho API에 인증하고, 지정된 폴더에서 셸코드를 다운로드한 뒤, "lion [타임스탬프]" 패턴으로 비콘 파일을 업로드해 생존 신호를 보낸다.
APT37은 기존에 Dropbox, pCloud, OneDrive를 C2로 사용해왔다. Zoho WorkDrive는 이번 캠페인에서 처음 관측된 서비스로, 기존 탐지 룰을 우회하기 위한 다각화 전략이다.
RESTLEAF가 확보한 발판 위에서 실행되는 드로퍼다. Ruby 3.3.0 전체 런타임을 시스템에 설치하고, rubyw.exe를 usbspeed.exe로 이름을 바꿔 USB 속도 측정 유틸리티로 위장한다.
핵심은 RubyGems의 operating_system.rb를 악성 코드로 교체하는 것이다. 이 파일은 Ruby가 실행될 때 자동으로 로드되기 때문에, 이후 Ruby 기반 악성코드가 별도 실행 없이 자동 활성화된다. 5분마다 실행되는 스케줄 작업으로 지속성을 확보한다.
에어갭 공격의 핵심 컴포넌트다. ascii.rb라는 이름으로 Ruby 라이브러리를 가장하며, USB의 $RECYCLE.BIN 숨김 폴더를 통신 채널로 사용한다.
| 단계 | 동작 |
|---|---|
| 인터넷 PC → USB | C2에서 명령을 받아 USB의 CMD 폴더에 저장 |
| USB → 에어갭 PC | 사용자가 USB를 에어갭 PC에 연결 |
| 에어갭 PC 실행 | CMD 폴더에서 명령을 읽고 실행, 결과를 RST 폴더에 저장 |
| USB → 인터넷 PC | 사용자가 USB를 다시 인터넷 PC에 연결 |
| 인터넷 PC → C2 | RST 폴더에서 결과를 읽어 C2로 전송 |
모든 데이터는 XOR 0x83으로 암호화된다. 사용자는 USB를 평소처럼 사용하지만, 숨김 폴더 안에서 공격자의 명령이 오가고 있다.
USB 웜 역할을 하는 컴포넌트다. USB에 숨김 폴더를 생성하고 Ruby 인터프리터와 악성 스크립트를 복사한다. 그 뒤 원본 파일을 숨김 처리하고, 동일한 파일명의 LNK 바로가기로 교체한다.
피해자가 에어갭 PC에서 USB의 파일을 열면 — 실제로는 LNK가 실행되면서 Ruby 인터프리터가 악성 operating_system.rb를 로드하고, THUMBSBD가 활성화된다. USB 여유 공간이 2GB 이상일 때만 동작하여 용량 부족으로 의심받는 상황을 피한다.
FOOTWINE은 TCP 기반 감시 백도어다. 키로깅, 스크린샷, 오디오 캡처, 비디오 캡처 기능을 갖추고 있으며, 32바이트 랜덤 세션 키와 가변 패딩으로 트래픽을 암호화한다.
BLUELIGHT는 2021년 Daily NK 공격에서도 사용된 기존 백도어로, Google Drive, OneDrive, pCloud, BackBlaze를 C2로 활용한다. 클라우드 스토리지를 통해 탈취한 데이터를 외부로 빼낸다.
이번 캠페인의 미끼 문서는 아랍어로 번역된 북한 신문의 팔레스타인-이스라엘 분쟁 기사다. 북한 정권 내러티브에 관심 있는 중동 지역의 연구자, 외교관, 언론인이 표적일 가능성을 시사한다.
APT37은 2012년부터 활동을 시작해 주로 한국 정부, 국방, 미디어 분야를 타깃으로 삼아왔다. MITRE ATT&CK에 31개 기법이 등록된 이 그룹은 2017년 이후 일본, 베트남, 중동으로 활동 범위를 확장했다. 에어갭 환경을 노린다는 점에서 군사 기밀이나 산업 제어 시스템을 운영하는 조직이 특히 주의해야 한다.
| 탐지 대상 | 확인 방법 |
|---|---|
| %PROGRAMDATA%\usbspeed\ 경로에 Ruby 런타임 | 파일시스템 모니터링 |
| rubyupdatecheck 스케줄 작업 | schtasks /query |
| USB 루트의 $RECYCLE.BIN.USER 폴더 | USB 포렌식 |
| Zoho WorkDrive API 비정상 OAuth 트래픽 | 네트워크 모니터링 |
| philion[.]store, homeatedke[.]store | DNS/프록시 로그 |
| 144.172.106.66:8080 | 방화벽 로그 |
| HKCU\SOFTWARE\Microsoft\TnGtp 레지스트리 | 레지스트리 모니터링 |
AI 활용 안내 이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 인용된 통계와 사례는 참고 자료에 명시된 출처에 근거하며, 설명을 위한 일부 표현은 각색되었습니다.
면책 조항 본 글은 보안 인식 제고를 위한 교육 목적으로 작성되었습니다. 언급된 공격 기법을 실제로 시도하는 행위는 「정보통신망법」, 「형법」 등에 따라 처벌받을 수 있으며, 본 블로그는 이에 대한 법적 책임을 지지 않습니다.