NEWS

HOME

SECURITY NEWS

[보안뉴스] 국내 리눅스 시스템 공격에 사용되고 있는 리쿠베 백도어 분석해보니
  • 관리자
  • |
  • 409
  • |
  • 2023-07-10 12:25:46

업데이트 되지 않았거나 부적절하게 서비스 중인 리눅스 서버가 공격 대상 추정

오픈소스 기반으로 다운로드, 업로드, 명령 실행 등 3가지 공격 기능이 전부

[보안뉴스 김영명 기자] 리쿠베(Rekoobe)는 중국의 APT31 해킹그룹이 사용하고 있는 것으로 알려진 백도어 악성코드다. 우리나라에서는 수년 전부터 국내 고객사들로부터 리쿠베 악성코드가 꾸준하게 접수되고 있는 것으로 알려졌다.

▲Tiny SHell과 Rekoobe 비교[자료=안랩 ASEC 분석팀]


안랩 ASEC 분석팀에 따르면, 리쿠베는 리눅스 환경 대상의 백도어 악성코드다. 2015년에 최초로 확인됐으며, 2018년에는 업데이트 버전이 공격에 사용됐다. ELF 포맷의 리쿠베는 아키텍처가 x86, x64, SPARC인 것을 보아 리눅스 서버를 공격 대상으로 하는 것으로 추정된다.

깃허브에 공개돼 있는 오픈소스인 Tiny SHell의 소스코드를 기반으로 제작된 것으로 알려진 리쿠베는 Tiny라는 이름처럼 기본적인 기능을 지원한다. 프로세스 이름 변경과 같은 보조적인 기능을 제외하면 명령제어(C&C) 서버의 명령을 받아 수행하는 ‘다운로드’, ‘업로드’, ‘명령 실행’ 등 3가지 기능이 전부다.

공격자가 어떤 방식으로 리눅스 시스템에 리쿠베를 설치하는지, 어떤 대상을 공격하는지 정보는 많지 않지만, 리쿠베는 중국의 공격그룹인 APT31이 사용하는 악성코드로 알려졌다. 일반적으로 리눅스 서버를 대상으로 하는 악성코드들은 부적절하게 관리되는 서버나 최신 버전으로 업데이트하지 않은 취약한 서버를 대상으로 한다. 그러나 아직까지 리쿠베의 공격자가 다수의 리눅스 서버를 대상으로 스캐닝 및 브루트 포싱 공격을 통해 공격한 사례는 확인되고 있지 않다.

이에 따라 취약한 계정 정보를 사용하는 시스템들보다도 주로 최신 업데이트를 수행하지 않거나 부적절하게 서비스 중인 리눅스 서버가 공격 대상으로 추정된다. 물론 워드프레스 플러그인 공격자가 감염 시스템을 제어하기 위해 리쿠베를 설치하는 공급망 공격 사례도 확인된다.

국내에서 접수된 리쿠베 악성코드들 중 하나를 대상으로 분석했다. 리쿠베는 실행 시 프로세스 이름을 정상 프로세스와 동일한 ‘/bin/bash’로 변경해 사용자가 인지하기 어렵게 한다. 이는 strcpy() 함수를 이용해 프로그램 실행 시 전달받는 인자를 변경하는 방식으로 구현됐다.

▲Tiny SHell의 실행 인자[자료=안랩 ASEC 분석팀]


Tiny SHell과의 또 다른 차이는 C&C 서버의 주소나 비밀번호를 전달받는 커맨드 라인 옵션이 존재하지 않는다는 점이다. 해당 옵션이 없어 C&C 서버의 주소는 하드코딩된 주소가 사용된다. Tiny SHell 또는 라쿠베는 HMAC SHA1 알고리즘을 이용해 AES-128 키를 생성하며, 해당 키로 C&C 서버와의 통신 데이터를 암호화한다.

먼저, C&C 서버에서 클라이언트로 HMAC SHA1을 생성한다. 먼저 C&C 서버로부터 0x28 사이즈의 데이터를 전달받는다. 이것은 2개의 0x14 바이트로 나뉘어 HMAC SHA1 컨텍스트 초기화 시 IV로 사용된다. 생성된 HMAC SHA1 값들은 AES-128 키로 각각 C&C 서버로 데이터를 전달할 때 암호화와 C&C 서버로부터 전달받은 데이터를 복호화하는데 사용된다.

두 번째로, C&C 서버로부터 0x10 바이트의 무결성 검증을 위한 데이터를 전달받는다. 리쿠베는 전달받은 데이터를 위에서 설정한 AES-128 키로 디코딩하며 추가로 Xor 과정을 거치면 이후 전달받을 데이터의 사이즈를 얻을 수 있다. 전달받을 데이터는 무결성 검증에 사용되는데, 0x10 바이트다. 참고로 해당 값은 Tiny SHell의 소스코드에서 지정한 값과 동일하다.

세 번째로, 무결성 검증 과정이 끝나면 반대로 C&C 서버에 0x10 바이트의 동일한 무결성 데이터를 전송한다. 데이터를 보낼 때도 위에서 생성한 HMAC SHA1 값으로 생성한 AES128 키로 암호화해 전송한다. 그리고 네 번째로, C&C에서 리쿠베로 C&C 명령을 전송한다.

▲C&C 서버와의 연결 및 명령 수행 루틴[자료=안랩 ASEC 분석팀]


다섯 번째로, 여기까지의 과정이 끝나면 C&C 서버로부터 1바이트의 명령을 전달받는다. 1바이트의 값에 따라 파일 업로드, 파일 다운로드, 리버스 쉘 3개의 명령을 수행할 수 있다. 명령 수도 3개밖에 되지 않지만, 각각의 명령들 자체도 단순한 형태다. 예를 들어 파일 다운로드 명령 즉, 0x02를 전달받은 경우 다음으로 전달받는 패킷은 다운로드한 파일을 쓸 경로로, 해당 경로에 파일을 생성하고 파일의 실제 데이터를 쓰는 행위가 전부다. 리버스 쉘 명령도 표준 입출력을 C&C 서버 소켓으로 리다이렉트 시키고 /bin/sh을 실행하는 간단한 형태다.

리쿠베는 최근까지도 다수의 샘플들이 확인되고 있다. 최근 수집된 리쿠베 샘플들의 공통점과 차이점, 특징을 살펴보면, HMAC SHA1을 기반으로 한 AES128 암호화 알고리즘이 C&C 서버와의 통신에 사용되는 점이나 파일 다운로드·업로드, 리버스 쉘 기능을 지원하는 점 등 기본 형태는 같다. 다만, 대표적인 차이점으로는 C&C 서버와의 통신 방식이다.

▲바인드 쉘 형태의 C&C 통신[자료=안랩 ASEC 분석팀]

리쿠베는 빌더가 따로 존재하는 것으로 추정된다. 위에서는 랜덤한 형태의 비밀번호 문자열이 사용됐지만 디폴트 문자열로 보이는 ‘replace with your password’를 사용하는 악성코드들이 자주 보이는 것이 그 이유 중 하나다. 즉, 각 악성코드들은 공격자가 공격 시마다 비밀번호를 지정해 빌더로 생성한 것으로 추정된다. 매번 다른 문자열이 사용되는 비밀번호와 달리 무결성 검증에 사용되는 데이터는 반대로 대부분 소스코드와 동일한 ‘58 90 AE 86 F1 B9 1C F6 29 83 95 71 1D DE 58 0D’이 사용된다는 점이 특징이다.

국내 시스템 대상 공격에 사용된 리쿠베 악성코드를 보면, 모두 x64 아키텍처인 것은 리눅스 서버가 공격 대상이기 때문으로 추정되며 리버스쉘(Reverse Shell) 형태다. mails와 service는 유사한 시기에 수집됐고 비밀번호가 비슷해 같은 공격자가 사용한 것으로 추정된다.

리쿠베는 C&C 서버로부터 명령을 받아 악성 파일 다운로드, 시스템 내부 파일 탈취, 리버스 쉘과 같은 기능을 수행할 수 있는 백도어 악성코드다. 간단한 형태이지만 네트워크 패킷 탐지를 우회하기 위해 암호화를 사용하며 공격자의 명령을 받아 다양한 악성 행위를 수행할 수 있다.

안랩 ASEC 분석팀 측은 “오픈소스 기반의 리쿠베는 이미 알려진 중국 해킹그룹 APT31 외에도 또 다른 다수의 공격자들에 의해 사용될 수도 있다”며 “최근까지도 리눅스 서버를 대상으로 하는 공격에 사용되고 있으며, 특히 국내 시스템 대상 공격 사례도 지속해서 확인된다”고 말했다.

이어 “해당 악성코드에 따른 보안 위협을 방지하기 위해서는 취약한 환경 설정이나 인증 정보를 검사하고, 관련 시스템들을 항상 업데이트해 보호해야 한다”며 “V3 등 백신을 최신 버전으로 업데이트해 악성코드의 감염을 사전에 차단할 수 있도록 신경 써야 한다”고 덧붙였다.
[김영명 기자(boan@boannews.com)]

 

[출처 : 보안뉴스(https://www.boannews.com/media/view.asp?idx=119977&page=1&mkind=1&kind=1)]

이전글 [보안뉴스] SSH 악용하여 암호화폐 채굴하는 새로운 공격 기법 프록시재킹 주의보
다음글 [보안뉴스] 복잡한 클라우드 환경 유지에 혼란... 잘못된 보안 시스템 구축할 가능성 높아
비밀번호 입력
비밀번호
확인
비밀번호 입력
비밀번호
확인
TOP