2020.04.10

빠르게 진화하면서 다양한 장치를 공격하는 신종 IoT 봇넷, "다크 넥서스"

Lucian Constantin | CSO
한 보안 연구진이 지난 몇 개월 사이 빠르게 발전한 신종 봇넷을 추적하고 있다. 이 봇넷은 임베디드 장치를 공격 대상으로 하며 12가지 CPU 아키텍처에 따라 크로스 컴파일되는 바이너리를 사용한다.
 
ⓒ Getty Images Bank 

보안업체 비트디펜더(Bitdefender)가 발행한 새 보고서에 따르면, 다크 넥서스(Dark Nexus) 봇넷은 Q봇(Qbot), 미라이(Mirai)와 같은 과거에 악명을 떨친 IoT 위협 요소에서 일부 아이디어와 기능을 차용했지만 대체로 한 악성코드 개발자가 새로 만든 봇넷으로 분류된다. 이 개발자는 유튜브를 비롯한 기타 소셜 미디어 웹사이트에서 분산 서비스 거부(DDoS) 서비스를 광고하는 것으로 유명하다.

다크 넥서스는 12가지 CPU 아키텍처에 따라 크로스 컴파일된다. 즉, 공유기, 디지털 비디오 레코더(DVR), 감시 카메라를 포함한 광범위한 장치를 감염시킬 수 있다. 최근 버전은 감염된 시스템에 SOCKSv5 프록시까지 배포해 해커가 DDoS 공격에 시스템을 악용하는 것 외에 악성 트래픽도 터널링할 수 있도록 한다.


빠르게 진화하는 다크 넥서스

비트디펜더는 지난해 12월부터 다크 넥서스 봇을 추적하기 시작했는데, 그 시점에 이미 버전 4였다. 이후 3개월 동안 다크 넥서스는 30회 이상 업데이트됐으며 최신 버전은 8.6이다. 개발자는 이 기간 동안 맞춤설정이 가능한 DDoS 공격 기법, 개선된 스캔 및 감염 루틴과 지속 메커니즘 등 계속해서 기존 기능을 개선하고 새로운 기능을 추가했다.

다크 넥서스 봇넷은 현재 규모가 작은 편으로 전 세계에 분산된 약 1,400개의 장치로 구성되지만 개발 속도가 워낙 빠르고 제작자의 경험도 풍부한 만큼(연구진은 이 개발자가 예전의 Q봇 기반 봇넷인 호호(hoho)를 개발한 것으로 추정함) 향후 심각한 위협이 될 수 있다.

비트디펜더의 위협 연구 및 보고 책임자인 보그단 보테자투는 “여전히 유지 관리될 뿐만 아니라 새로운 장치로 활발하게 확산되는 중”이라면서, “현재 사용되는 IoT 장치의 수가 200억 개 이상으로 추정되는 만큼 IoT 봇넷의 확산 여지는 매우 크다. 이 봇넷의 소유자에 대한 비트디펜더의 추정이 맞다면 다크 넥서스는 빠른 시일 내에 임대형 DDoS 시장에서 주요 봇넷으로 부상할 것”이라고 말했다. 


무차별 대입 공격을 통한 전파

다크 넥서스 봇의 최신 버전은 기본 자격 증명을 사용한 무차별 대입 텔넷 연결을 통해 확산된다. 그러나 이전 버전에서는 알려진 취약점에 대한 익스플로잇도 사용했다. 예를 들어 넷기어(Netgear) DGN1000의 원격 코드 실행(RCE) 결함, DVR 및 기타 장치에 사용되는 JAWS 웹 서버의 RCE 문제, 리니어 이머지(Linear eMerge) E3시리즈 출입문 제어 장치(CVE-2019-7256)의 명령어 주입 등이 그 예다. 최신 버전에서 이와 같은 익스플로잇 사용이 중단된 이유는 확실치 않지만 어쨌든 다크 넥서스 개발자가 이후에 발견될 수 있는 결함을 얼마든지 공격 대상으로 삼을 수 있음을 암시한다.

텔넷 무차별 대입 공격은 2가지 모듈이 수행한다. 하나는 동기 스캔을, 다른 하나는 C&C 서버에서 전달하는 비동기 IP 주소 스캔을 담당한다. 동기 모듈은 성공적인 인증 후 피해 장치에 페이로드를 전송한다는 점에서는 웜과 비슷하다. 비동기 모듈은 차후 감염을 위해 유효한 자격 증명과 피해 시스템의 IP 주소를 서버로 보고한다.

봇에 의해 테스트된 기본 자격 증명 목록은 장기간에 걸쳐 축적되어 최신 8.6 버전에서 대폭 업데이트됐다. 목록에 ipcam, zhone(공유기 제조업체), 텔레콤(telecom), 삼성(Samsung), 드림박스(dreambox, 위성 셋탑박스)와 같은 비밀번호가 포함된 것을 보면 다양한 장치를 공격 목표로 노리는 것으로 추정된다.


다크 넥서스의 지속성

다크 넥서스는 장치를 감염시키면 스스로를 /bin/busybox로 위장한다. busybox는 임베디드 시스템에 널리 사용되는 userspace 소프트웨어 패키지로, 가장 보편적인 유닉스 명령줄 유틸리티의 경량화된 버전을 제공한다. 임베디드 시스템에서 busybox의 존재는 눈에 띄지 않는다.

다크 넥서스는 커널 와치독을 비활성화해 오류가 발생할 때 시스템이 자동으로 재부팅되지 않도록 한다. 그런 다음 다양한 속성과 특성을 분석하고 의심 점수를 부여하는 방식으로 기존 프로세스의 화이트리스트를 작성하고 의심 점수가 100을 초과하는 프로세스는 강제 종료된다. 감염된 장치에 대한 통제력을 다크 넥서스가 단독으로 갖도록 하기 위해 자체 악성코드 탐지 엔진을 만든 셈이다.

발전 기간 동안 봇은 여러 지속 메커니즘을 사용했다. 이전 버전에서는 리눅스 시스템에서 예약된 작업을 처리하는 크론(cron) 서비스를 중지하고 장치 재부팅에 사용 가능한 다양한 유틸리티의 권한을 변경하는 단순한 방법으로 장치의 재부팅을 차단했다.

최근 버전은 초기화 중에 사용되는 /etc/init.d/rcS 파일에 명령을 복사한다. 또는 /home/start.sh 파일이 존재하는 경우에는 이 파일에 명령을 복사한다. 또한 iptables 규칙을 삭제해 C&C 서버와의 통신과 실행하는 공격이 내부 방화벽에 의해 차단되지 않도록 한다.

일부 임베디드 장치, 특히 공유기의 경우 지속성을 확보하기가 어렵다. 런타임 중에 수행된 수정이 RAM에만 저장되고 파일 시스템은 재부팅 시 리셋되기 때문이다. 그래서 다크 넥서스는 최대한 장시간 장치 재부팅을 지연하려고 시도하며 여러 지속성 기법을 사용한다. 이런 기법은 전부는 아니더라도 적어도 일부 장치에서 작동한다는 사실을 제작자가 직접 확인했을 것으로 추정된다.

이전 버전에서는 다양한 아키텍처용으로 컴파일된 바이너리를 새로 감염된 장치에 전송하는 데 사용된 역방향 프록시 모듈이 포함됐다. 이런 바이너리는 피해 장치에 로컬로 호스팅되면서 최신 상태로 유지됐는데, 효율성이 떨어졌는지 최근 버전에서는 이 모듈이 사라졌다. 대신 제작자는 장치를 통해 트래픽을 라우팅하는 데 사용 가능한 새로운 SOCKS5 프록시 모듈을 추가했다.

비트디펜더 연구진은 보고서에서 “다크 넥서스가 이 기능을 최초로 도입한 봇넷은 아니다. 이전의 더문(TheMoon), Gwmndy, Omg 봇넷과 특정 미라이 변형에도 socks5 프록시 기능이 있었다. 이 기능을 넣은 이유는 지하 포럼에서 이러한 프록시에 대한 액세스 권한을 판매하기 위해서일 것으로 짐작된다. 다만 아직 이를 뒷받침하는 증거는 없다”고 전했다.

DDoS 모듈은 연구진이 매우 복잡하고 폭넓은 구성이 가능한 것으로 파악한 ‘browser_http_req’을 포함한 여러 공격 기법을 사용할 수 있다. 이 기법은 악성 HTTP 요청이 실제 브라우저의 요청인 것처럼 위장한다. 공격자는 HTTP 헤더에 다양한 값을 구성해 트래픽 패턴을 기반으로 하는 필터링 규칙을 높은 확률로 우회할 수 있다.


다크 넥서스 대처 방법

IoT 악성코드에 대한 최선의 방어는 장치에 기본적으로 제공되는 관리 자격 증명을 변경하고 펌웨어를 항상 최신 상태로 유지하는 것이다. 대부분의 장치는 인터넷에 직접 노출되면 안 된다. 공유기의 경우 직접 노출이 불가피하지만 공유기의 관리자 인터페이스는 LAN으로 제한할 수 있다. 예를 들어 IP 카메라와 DVR은 인터넷에 직접 연결될 필요가 없으며 VPN을 통해 안전하게 모니터링할 수 있다.

보테자투는 “기업은 내부 네트워크를 감사해 연결된 IoT 장치를 파악하고 취약점 평가를 실시해 패치되지 않거나 잘못 구성된 장치를 공격자보다 먼저 찾아내야 한다”고 말했다. editor@itworld.co.kr


2020.04.10

빠르게 진화하면서 다양한 장치를 공격하는 신종 IoT 봇넷, "다크 넥서스"

Lucian Constantin | CSO
한 보안 연구진이 지난 몇 개월 사이 빠르게 발전한 신종 봇넷을 추적하고 있다. 이 봇넷은 임베디드 장치를 공격 대상으로 하며 12가지 CPU 아키텍처에 따라 크로스 컴파일되는 바이너리를 사용한다.
 
ⓒ Getty Images Bank 

보안업체 비트디펜더(Bitdefender)가 발행한 새 보고서에 따르면, 다크 넥서스(Dark Nexus) 봇넷은 Q봇(Qbot), 미라이(Mirai)와 같은 과거에 악명을 떨친 IoT 위협 요소에서 일부 아이디어와 기능을 차용했지만 대체로 한 악성코드 개발자가 새로 만든 봇넷으로 분류된다. 이 개발자는 유튜브를 비롯한 기타 소셜 미디어 웹사이트에서 분산 서비스 거부(DDoS) 서비스를 광고하는 것으로 유명하다.

다크 넥서스는 12가지 CPU 아키텍처에 따라 크로스 컴파일된다. 즉, 공유기, 디지털 비디오 레코더(DVR), 감시 카메라를 포함한 광범위한 장치를 감염시킬 수 있다. 최근 버전은 감염된 시스템에 SOCKSv5 프록시까지 배포해 해커가 DDoS 공격에 시스템을 악용하는 것 외에 악성 트래픽도 터널링할 수 있도록 한다.


빠르게 진화하는 다크 넥서스

비트디펜더는 지난해 12월부터 다크 넥서스 봇을 추적하기 시작했는데, 그 시점에 이미 버전 4였다. 이후 3개월 동안 다크 넥서스는 30회 이상 업데이트됐으며 최신 버전은 8.6이다. 개발자는 이 기간 동안 맞춤설정이 가능한 DDoS 공격 기법, 개선된 스캔 및 감염 루틴과 지속 메커니즘 등 계속해서 기존 기능을 개선하고 새로운 기능을 추가했다.

다크 넥서스 봇넷은 현재 규모가 작은 편으로 전 세계에 분산된 약 1,400개의 장치로 구성되지만 개발 속도가 워낙 빠르고 제작자의 경험도 풍부한 만큼(연구진은 이 개발자가 예전의 Q봇 기반 봇넷인 호호(hoho)를 개발한 것으로 추정함) 향후 심각한 위협이 될 수 있다.

비트디펜더의 위협 연구 및 보고 책임자인 보그단 보테자투는 “여전히 유지 관리될 뿐만 아니라 새로운 장치로 활발하게 확산되는 중”이라면서, “현재 사용되는 IoT 장치의 수가 200억 개 이상으로 추정되는 만큼 IoT 봇넷의 확산 여지는 매우 크다. 이 봇넷의 소유자에 대한 비트디펜더의 추정이 맞다면 다크 넥서스는 빠른 시일 내에 임대형 DDoS 시장에서 주요 봇넷으로 부상할 것”이라고 말했다. 


무차별 대입 공격을 통한 전파

다크 넥서스 봇의 최신 버전은 기본 자격 증명을 사용한 무차별 대입 텔넷 연결을 통해 확산된다. 그러나 이전 버전에서는 알려진 취약점에 대한 익스플로잇도 사용했다. 예를 들어 넷기어(Netgear) DGN1000의 원격 코드 실행(RCE) 결함, DVR 및 기타 장치에 사용되는 JAWS 웹 서버의 RCE 문제, 리니어 이머지(Linear eMerge) E3시리즈 출입문 제어 장치(CVE-2019-7256)의 명령어 주입 등이 그 예다. 최신 버전에서 이와 같은 익스플로잇 사용이 중단된 이유는 확실치 않지만 어쨌든 다크 넥서스 개발자가 이후에 발견될 수 있는 결함을 얼마든지 공격 대상으로 삼을 수 있음을 암시한다.

텔넷 무차별 대입 공격은 2가지 모듈이 수행한다. 하나는 동기 스캔을, 다른 하나는 C&C 서버에서 전달하는 비동기 IP 주소 스캔을 담당한다. 동기 모듈은 성공적인 인증 후 피해 장치에 페이로드를 전송한다는 점에서는 웜과 비슷하다. 비동기 모듈은 차후 감염을 위해 유효한 자격 증명과 피해 시스템의 IP 주소를 서버로 보고한다.

봇에 의해 테스트된 기본 자격 증명 목록은 장기간에 걸쳐 축적되어 최신 8.6 버전에서 대폭 업데이트됐다. 목록에 ipcam, zhone(공유기 제조업체), 텔레콤(telecom), 삼성(Samsung), 드림박스(dreambox, 위성 셋탑박스)와 같은 비밀번호가 포함된 것을 보면 다양한 장치를 공격 목표로 노리는 것으로 추정된다.


다크 넥서스의 지속성

다크 넥서스는 장치를 감염시키면 스스로를 /bin/busybox로 위장한다. busybox는 임베디드 시스템에 널리 사용되는 userspace 소프트웨어 패키지로, 가장 보편적인 유닉스 명령줄 유틸리티의 경량화된 버전을 제공한다. 임베디드 시스템에서 busybox의 존재는 눈에 띄지 않는다.

다크 넥서스는 커널 와치독을 비활성화해 오류가 발생할 때 시스템이 자동으로 재부팅되지 않도록 한다. 그런 다음 다양한 속성과 특성을 분석하고 의심 점수를 부여하는 방식으로 기존 프로세스의 화이트리스트를 작성하고 의심 점수가 100을 초과하는 프로세스는 강제 종료된다. 감염된 장치에 대한 통제력을 다크 넥서스가 단독으로 갖도록 하기 위해 자체 악성코드 탐지 엔진을 만든 셈이다.

발전 기간 동안 봇은 여러 지속 메커니즘을 사용했다. 이전 버전에서는 리눅스 시스템에서 예약된 작업을 처리하는 크론(cron) 서비스를 중지하고 장치 재부팅에 사용 가능한 다양한 유틸리티의 권한을 변경하는 단순한 방법으로 장치의 재부팅을 차단했다.

최근 버전은 초기화 중에 사용되는 /etc/init.d/rcS 파일에 명령을 복사한다. 또는 /home/start.sh 파일이 존재하는 경우에는 이 파일에 명령을 복사한다. 또한 iptables 규칙을 삭제해 C&C 서버와의 통신과 실행하는 공격이 내부 방화벽에 의해 차단되지 않도록 한다.

일부 임베디드 장치, 특히 공유기의 경우 지속성을 확보하기가 어렵다. 런타임 중에 수행된 수정이 RAM에만 저장되고 파일 시스템은 재부팅 시 리셋되기 때문이다. 그래서 다크 넥서스는 최대한 장시간 장치 재부팅을 지연하려고 시도하며 여러 지속성 기법을 사용한다. 이런 기법은 전부는 아니더라도 적어도 일부 장치에서 작동한다는 사실을 제작자가 직접 확인했을 것으로 추정된다.

이전 버전에서는 다양한 아키텍처용으로 컴파일된 바이너리를 새로 감염된 장치에 전송하는 데 사용된 역방향 프록시 모듈이 포함됐다. 이런 바이너리는 피해 장치에 로컬로 호스팅되면서 최신 상태로 유지됐는데, 효율성이 떨어졌는지 최근 버전에서는 이 모듈이 사라졌다. 대신 제작자는 장치를 통해 트래픽을 라우팅하는 데 사용 가능한 새로운 SOCKS5 프록시 모듈을 추가했다.

비트디펜더 연구진은 보고서에서 “다크 넥서스가 이 기능을 최초로 도입한 봇넷은 아니다. 이전의 더문(TheMoon), Gwmndy, Omg 봇넷과 특정 미라이 변형에도 socks5 프록시 기능이 있었다. 이 기능을 넣은 이유는 지하 포럼에서 이러한 프록시에 대한 액세스 권한을 판매하기 위해서일 것으로 짐작된다. 다만 아직 이를 뒷받침하는 증거는 없다”고 전했다.

DDoS 모듈은 연구진이 매우 복잡하고 폭넓은 구성이 가능한 것으로 파악한 ‘browser_http_req’을 포함한 여러 공격 기법을 사용할 수 있다. 이 기법은 악성 HTTP 요청이 실제 브라우저의 요청인 것처럼 위장한다. 공격자는 HTTP 헤더에 다양한 값을 구성해 트래픽 패턴을 기반으로 하는 필터링 규칙을 높은 확률로 우회할 수 있다.


다크 넥서스 대처 방법

IoT 악성코드에 대한 최선의 방어는 장치에 기본적으로 제공되는 관리 자격 증명을 변경하고 펌웨어를 항상 최신 상태로 유지하는 것이다. 대부분의 장치는 인터넷에 직접 노출되면 안 된다. 공유기의 경우 직접 노출이 불가피하지만 공유기의 관리자 인터페이스는 LAN으로 제한할 수 있다. 예를 들어 IP 카메라와 DVR은 인터넷에 직접 연결될 필요가 없으며 VPN을 통해 안전하게 모니터링할 수 있다.

보테자투는 “기업은 내부 네트워크를 감사해 연결된 IoT 장치를 파악하고 취약점 평가를 실시해 패치되지 않거나 잘못 구성된 장치를 공격자보다 먼저 찾아내야 한다”고 말했다. editor@itworld.co.kr


X