컨텐츠 바로가기

04.26 (금)

네트워크 접속 기기 노리는 악성코드, 침투 및 지속성 높다…이클립시움

댓글 첫 댓글을 작성해보세요
주소복사가 완료되었습니다
해커는 지난 수 년 동안 기업 네트워크에 침투하기 위해 라우터, VPN 집중기, 로드 밸런서와 같은 공용 네트워크에 접하는 디바이스를 공격 표적으로 삼아왔다. 이와 같은 디바이스에서 원격 코드 실행 취약점이 발견되는 것은 드물지 않은 일이지만, 공격자가 재시작 도는 펌웨어 업그레이드 이후에도 살아남는 악성코드를 침투시킨 사례는 그동안 드물었고 일반적으로 그 배후에는 고급 실력을 갖춘 APT 그룹이 있었다.
ITWorld

ⓒ Getty Images Bank

<이미지를 클릭하시면 크게 보실 수 있습니다>



임베디드 네트워크 디바이스는 장시간 동안 많은 쓰기 작업에 노출될 경우 열화되는 플래시 메모리를 사용하므로 보통 읽기 전용 파일 시스템에 펌웨어를 저장하고 재시작될 때마다 그 내용을 RAM으로 로드한다. 즉, 디바이스의 정상 작동 중에 실행되는 다양한 서비스에 의해 생성되는 모든 파일과 변경 사항은 일시적이다. RAM에서만 일어나고 파일 시스템에 저장되지는 않으므로 디바이스가 재시작 또는 재부팅되면 초기 상태로 돌아가기 때문이다.

예외는 디바이스 관리 인터페이스를 통해 생성되고 NVRAM(비휘발성 RAM)이라는 스토리지의 제한된 영역에 저장되는 구성 파일과 스크립트다. 공격자 관점에서는 이 제약으로 인해 네트워킹 디바이스를 지속적으로 침해하기가 훨씬 더 어려워진다. 이러한 이유로 예를 들어 홈 라우터를 표적으로 한 대량 공격에서는 재시작된 라우터를 주기적으로 재스캔, 재감염시키는 자동화된 봇넷이 사용된다.

그러나 엔터프라이즈 네트워크를 대상으로 한 표적 공격 시나리오에서는 공격자는 은밀함을 유지해야 하므로 동일한 디바이스를 여러 번 반복 공격하는 수법은 적합하지 않다. 취약점이 공개된 후에는 탐지될 수 있기 때문이다. 또한 공격자라면 장기적으로 디바이스에 액세스하면서 이를 내부 네트워크로 들어가는 다리로 사용하거나 횡적 이동을 통해 다른 비공개 디바이스로 액세스를 확대하기 위한 중심점으로 사용하는 편을 선호할 것이다.

시트릭스, F5 로드 밸런서에서의 공격자 지속성

시트릭스와 F5 로드 밸런서에서는 2019년부터 지금까지 3가지 치명적인 취약점이 발견됐다(CVE-2019-19781, CVE-2020-5902, CVE-2022-1388). 이 취약점은 공개적으로 알려지고 실제로 사용되면서 미국 사이버보안 및 인프라 보안국(CISA)을 비롯한 여러 조직에서 경고를 발령하기도 했다. 펌웨어 보안 업체 이클립시움(Eclypsium) 연구원은 최근 이러한 디바이스에서 공격자의 지속성에 대해 조사했다. 조사 결과는 지난 수요일 보고서로 발표됐다.

2022년 5월, 보안 업체 맨디언트(Mandiant)는 한 사이버 첩보 위협 행위자(처음에는 UNC3524라는 이름으로 식별됐지만 러시아 정부가 운영하는 APT29(코지 베어)와 관련된 것으로 파악됨)가 엔터프라이즈 네트워크에 침입해서 엔드포인트 탐지 및 대응(EDR)과 같은 탐지 툴 실행을 지원하지 않고 오래된 버전의 센트OS(CentOS) 및 BSD를 실행하는 로드 밸런스를 포함한 네트워크 어플라이언스에 백도어를 심어 장기간 동안 발각되지 않은 채 활동했다고 보고했다. 맨디언트는 해당 어플라이언스나 제조업체를 언급하지 않았지만 이클립시움 연구원은 문제의 디바이스가 F5 및 시트릭스 어플라이언스인 것으로 보고 있다. F5 로드 밸런서는 센트OS를, 시트릭스(전 넷스케일러)는 프리BSD(FreeBSD)를 각각 실행하기 때문이다.

이클립시움 연구진은 보고서에서 “UNC3524의 두드러진 특징은 TTP가 불안정하다는 것이다. 이들은 수정된 오픈소스 소프트웨어를 사용해 백도어를 설정하며, 시스템에 대한 이해도는 가장 기본적인 목표를 달성할 수 있는 수준에 그친다”라면서 “임플란트가 워낙 불안정해서 임플란트가 죽으면 재시작하는 용도로만 따로 웹 셸을 설치했다. 이것이 이번 연구의 기폭제가 된 특징이다. ‘기성품 C2 프레임워크를 로드 밸런서에 사용할 수 있는가? 악성코드가 재부팅, 심지어 업그레이드 이후에도 유지될 만큼 높은 탄력성을 가질 수 있는가? 완전히 지우고 다시 설치하는 것으로도 부족할 만큼 깊숙이 디바이스를 감염시키는 것이 가능한가?’에 대한 답을 찾고자 했다”라고 말했다.

많은 공격 그룹은 코발트 스트라이크(Cobalt Strike)나 브루트 라텔(Brute Ratel) 같은 상용 공격 프레임워크의 크랙 버전을 사용하지만, 이클립시움 연구원은 오픈소스이면서 숙련도가 낮은 공격자가 접근하기도 쉬운 것을 원했고 그래서 오픈소스 적대성 에뮬레이션 프레임워크인 실버(Silver)를 테스트 임플란트용으로 선택했다. 실버는 고 언어로 만들어졌으므로 크로스 플랫폼이며 피벗팅 및 터널링 기능을 제공한다.

F5 로드 밸런서가 여러 번의 재부팅과 펌웨어 업그레이드 중에도 유지하는 파일을 조사하기 위해 연구원이 살펴본 부분은 구성 백업 기능이다. 이 기능은 나중에 신규 설치 시 배포할 수 있는 모든 구성 및 설정이 포함된 아카이브를 생성하는 데 사용되는 관리 인터페이스에서 제공된다. 수백 개의 파일이 포함된 아카이브 내에서 연구원은 3개의 실행 가능한 스크립트와 특정 이벤트 발생 시 스크립트를 실행할 수 있는 구성 파일에 초점을 맞췄다.

연구원은 “조사 중 예상치 못하게 업체발 문서를 발견했다. 이 문서는 알려지지 않은 기능과 몇 년에 걸쳐 디바이스에 추가된 기능에 대한 풍부한 정보를 제공했다. 이 문서가 없었다면 조사가 훨씬 더 어려웠을 것이다. 디바이스가 이러한 구성 파일을 어떻게 다루는지 이해하는 것이 중요하다”라고 말했다.

악성 스크립트를 저장하고 시작하는 방법 3가지

팀은 이 문서와 구성 파일을 살펴보면서 스크립트를 저장하고 재부팅 후에 시작하고 구성 백업에 넣어 재설치 이후에도 살아남을 수 있는 3가지 방법을 찾아냈다. 12MB의 임플란트를 백업 아카이브 내에 직접 저장할 경우 눈에 띌 수 있으므로 연구진은 나중에 인터넷에서 임플란트를 다운로드하고 기존 버전을 제거하고 새로 배포하는 스크립트를 저장했다.

연구진은 “임플란트를 다운로드하는 방식은 디바이스가 인터넷에 연결될 수 있다는 것을 전제로 한다. 인터넷 연결은 없지만 네트워크의 다른 시스템에 발판을 마련해둔 상태라면 공격자는 관리자의 시선을 끌지 않으면서 구성 디렉터리 구조 내에 더 작은 임플란트를 저장할 수 있다. 이 임플란트가 공격자의 통제 하에 있는 ‘점프 박스’ 시스템으로 연결된다”라고 설명했다.

연구진은 은밀성을 더 높이기 위해 F5 박스의 runsv 리눅스 서비스가 한 서비스를 실행하도록 구성됐음을 발견했는데, 이 서비스의 구성은 시스템에 존재하지 않는 restjavad라는 바이너리 파일을 가리켰다. 연구진은 임플란트에 이 파일 이름을 사용해서 프로세스 목록에서 의심스럽지 않게 보이도록 했다. 관리자가 프로세스를 발견해 이름을 검색한다 해도 정상적인 restjavad 서비스에 대한 F5 문서를 발견하도록 유도하기 위해서다.

시트릭스 시스템은 문서 내용이 F5만큼 세부적이지 않아 조금 더 어려웠다. 그러나 연구진은 사용자 설명서 내에서 네트워크 시간 프로토콜(NTP) 동기화 설정에 대한 노트를 발견했다. 이 지침에는 /nsconfig 디렉터리 내에 백업 중 저장되는 rc.netscaler라는 파일을 생성한 다음 /bin/sh /etc/ntpd_ctl full_start 라인을 추가하는 내용이 있다. 그러나 /etc/ 디렉터리의 스크립트는 실행 파일로 설정되지 않았고 이를 변경할 방법도 없었다. 이 과정에서 연구진은 시스템이 시스템 프로세스를 시작, 중지하고 상태를 모니터링하기 위해 Monit이라는 패키지를 사용하며 Monti는 /nsconfig에 구성을 저장한다는 사실을 알아냈다.

연구진은 “결국 서비스처럼 실행되도록 임플란트를 위한 래퍼를 만들어서 F5 로더와 동일한 로직을 재사용하는 방법을 택했다. 파일을 배치하고 monit 파일을 수정해 /nsconfig에 넣고 임플란트가 부팅 시 시작되는지, 래퍼가 백업 파일에 포함되는지를 확인했다”라고 설명했다. Monit 사용에 따른 또 다른 부수적 효과는 임플란트의 지속성이 더욱 높아졌다는 점이다. 서비스가 수동으로 종료된 경우 Monit이 몇 초마다 자동으로 서비스를 재시작하기 때문이다.

연구진은 공격자가 침해된 디바이스를 프록시로 사용해서 정상적으로는 인터넷에 접속되지 않는, 네트워크 내의 다른 디바이스에 액세스할 수 있게 해주는 피벗팅 기능도 테스트했다. F5 시스템에서는 디바이스 IP 중 하나의 포트에 임플란트를 바인딩한 다음 ACL을 사용해 이 포트에 대한 액세스를 허용할 수 있었다.

연구진은 “고수준 공격자의 진입 장벽은 점점 더 낮아지고 서버, 워크스테이션과 같이 보호되는 시스템을 공격할 때 드는 비용이 높아지면서 공격자는 새로운 시스템 침투 방법을 택하고 있다. 라우터와 스위치에 자체 제작한 전용 펌웨어가 사용되던 시대는 갔고, 그 자리를 완전한 운영체제 형태의 펌웨어가 대체했다. 이로 인해 과거에는 최상급의 기술을 갖춘 공격자를 제외하면 도달 범위 밖에 있던 디바이스에 이제 일반 서버 수준의 위험성이 발생하고 있다”라고 결론을 내렸다.
editor@itworld.co.kr

Lucian Constantin editor@itworld.co.kr
저작권자 한국IDG & ITWorld, 무단 전재 및 재배포 금지
기사가 속한 카테고리는 언론사가 분류합니다.
언론사는 한 기사를 두 개 이상의 카테고리로 분류할 수 있습니다.