리눅스 업데이트를 통한 신종 ‘SambaCry (삼바크라이)’ 대비 권장

게시일: 2017-07-20 l 작성자: Trend Micro

Windows 에서 파일 및 프린터 공유를 하기 위해 사용되는 SMB 프로토콜의 오픈 소스 구현인 Samba (이하 삼바) 의 7년 된 취약점이 지난 5월에서야 패치가 나왔지만 아직까지도 계속 악용이 되고 있습니다. 삼바에서 발표한 보안 권고에 따르면 이 취약점은 공격자는 공유 라이브러리를 쓰기 가능한 공유 영역에 업로드하여 서버가 이를 실행하도록 만듭니다. 앞 단계가 성공적으로 이뤄진다면 공격자는 취약한 장치에서 명령 셸을 열고 제어할 수 있습니다. 이러한 공격 유형은 3.5.0 이후 모든 버전의 삼바에서 일어 날 수 있습니다.

이 취약점 (CVE-2017-7494) 은 WannaCry (이하 워너크라이) SMB 취약점 공격을 한 것과 유사하여 SambaCry (이하 삼바크라이) 로 명명되었습니다. 처음 탐지가 된 것은 올해 6월로 ‘cryptocurrency miner EternalMiner / CPUMiner’ 가 리눅스 컴퓨터를 공격하고 Monero (모네로) 를 사용했을 때입니다. 이전 샘플에서는 삼바크라이가 지정된 대상으로만 공격을 하며 페이로드는 단순한 가상화폐 채굴 멀웨어였습니다. 그러나 최근 데이터에 따르면, 공격자들은 현재 삼바크라이를 다른 목적으로 이용하는 것으로 드러났습니다.

이 최신 멀웨어는 ELF_SHELLBIND.A 로 탐지되어 지난 7월 3일에 발견되었으며 이전 버전의 삼바크라이와 마찬가지로 대상 시스템에 명령 셸을 엽니다. 그러나 ELF_SHELLBIND.A 는 이전 버전의 삼바크라이와 확연한 차이점들을 드러냅니다. 하나, IoT (사물 인터넷) 장치, 특히나 중소기업이 선호하는 NAS (Network Attached Storage) 장치를 대상으로 합니다. 두번째로, ELF_SHELLBIND 는 MIPS, ARM 및 PowerPC 등과 같은 다른 아키텍처를 타겟으로 삼습니다. 이는 처음으로 목격된 가상화폐 채굴기가 페이로드 없이 삼바크라이를 악용하는 방식입니다.

멀웨어 분석

Shodan 에서 삼바를 사용하는 장치를 찾는 것은 매우 쉽습니다. ‘samba’ 문자열로 포트 445를 검색하면 실행 가능한 IP 목록이 나타납니다. 그런 다음 공격자는 악성 파일을 목록에 있는 모든 IP 주소에 자동으로 쓸 수 있는 도구를 만들면 됩니다. 공용 폴더에 파일을 작성하면 삼바크라이 취약점이 있는 장치가 ELF_SHELLBIND.A 의 피해자가 될 수 있습니다.

아래 그림 1에서 볼 수 있듯이 ELF_SHELLBIND.A 는 일반적으로 이전의 채굴 멀웨어가 삼바크라이 취약점을 악용하는 루틴과 유사한 방법으로 악성 공유 개체 (.SO) 파일로 공용 폴더에 도달하는 방식을 사용합니다. 또한 삼바가 삼바 서버를 자동으로 로드 하는 방법인 내보내기 기능 ‘samba_init_module” 을 통해 호출되기 때문에 삼바크라이를 악용하기 위한 시도를 한다는 것을 알 수 있습니다.

.SO 파일을 삼바 공용 공유 폴더에 업로드 한 후 공격자는 로컬 파일 이름을 추측하고 IPC 요청을 보내 서버를 속여서 로컬에 저장된 프로그램 파일을 로드 하고 실행해야 합니다.


그림 1. 공용 공유 폴더에 있는 멀웨어 파일 샘플들

일단 내보내기 기능을 통해 멀웨어가 로드되면 루트 또는 현재 사용자의 EUID 로 실행하기 위해 삼바 데몬 (Samba Daemon. SMBv2 에만 해당) 에서 필요로 하는 change_to_root_user 함수를 호출하여 시작합니다. 그런 다음 악성 프로그램은 실행 중인 상위 프로세스 (삼바 서버 프로세스) 에서 분리되어 detact_from_parent 함수를 통해 해당 프로세스를 데몬화 합니다. 데몬으로 실행된 후 동아프리카(East Africa)에 위치한 C&C 서버(“169.239.128.123” TCP port 80)로 노크 메시지를 보냅니다. 노크 메시지는 아래와 같이 구성되어 있습니다. 노크 메시지는 아래와 같이 구성되어 있습니다.

HEAD / HTTP/1.0

C&C 서버는 노크 메시지를 확인하고 추가로 다른 행위는 발견되지 않았습니다. 이 단계에서 공격자는 이미 시스템의 IP 주소를 손에 넣었습니다.

그런 다음 멀웨어는 TCP / 61422 를 통해 허용된 모든 통신과 일치하는 체인 규칙을 iptable 에서 삭제하고 다시 추가하여 방화벽이 해당 포트를 통한 모든 TCP 통신을 허용하도록 합니다. 그 후 멀웨어는 포트 61422를 통해 수신 대기모드에서 TCP 소켓을 열어 공격자와의 연결을 수락합니다. 공격자가 이 소켓에 연결되면 멀웨어는 다음과 같은 메시지를 보냅니다.

Welc0me to shell
Enter password:

멀웨어는 공격자가 암호를 입력할 것으로 예상합니다.

Q8pGZFS7N1MObJHf

공격자가 암호로 응답하면 멀웨어는 다음과 같은 메시지를 보냅니다.

Access granted

이때 공격자의 암호는 정확해야 합니다.

일단 성공적으로 연결이 되고 인증이 끝나면 공격자는 감염된 시스템에 명령 셸을 열어 여러 개의 시스템 명령을 실행할 수 있으며 본질적으로 장치를 제어할 수 있습니다. 멀웨어는 /bin/ sh 에 있는 시스템의 셸을 사용하여 이 소켓 (stdin, stdout, stderr 이 모두 소켓으로 리디렉션 됨) 을 통해 수신한 모든 것을 실행합니다.

결론 및 해결책

이 취약점은 OS 패치가 이미 발표되었으므로 피해가 크지 않을 것으로 예상됩니다. 또한 공격자는 페이로드를 전달하기 위해 대상 시스템의 공유 위치에 쓰기 권한이 있어야 하는데 이러한 점 또한 감염률을 낮추는데 일조한다고 볼 수 있습니다.

이 취약점은 5월에 패치 되었으므로 정기적으로 업데이트를 하는 사용자에게는 큰 문제가 되지 않습니다. 그러나 유닉스 또는 리눅스 기반 장치 (대부분의 IoT 장치로 구성) 는 보호하기가 어렵습니다. 삼바가 활성화되어 있고 제조업체가 패치를 보내지 않은 경우 장치는 그대로 위험에 노출되고 맙니다. 그러므로 사용자는 미리 업데이트를 하거나 제조업체에 상담을 요청해야 합니다.

Trend Micro™ Deep Security™ 및 가상 패치는 파일리스 감염 및 패치 되지 않은 취약성을 악용하는 위협으로부터 엔드포인트를 보호합니다. 사용자 시스템은 다음 DPI 규칙을 통해 삼바크라이 취약점을 타겟으로 하는 위협으로부터 보호됩니다.

  • 1008420-Samba 공유 라이브러리 원격 코드 실행 취약점 (CVE-2017-7494)

Trend Micro™ Deep Discovery™ 는 특수 엔진, 커스텀 샌드박스 및 전체 공격 익스플로잇의 상관관계 분석을 통해 악용 및 기타 유사한 위협을 사용하여 공격에 대한 탐지, 심층 분석 및 사전 대응을 제공하므로 어떤 엔진이나 패턴 업데이트 없이도 이러한 종류의 공격을 탐지할 수 있습니다. Deep Discovery inspector는 이 DDI 규칙을 통해 고객을 위협으로부터 보호합니다.

  • 3733 SHELLBIND – TCP (Request)

티핑포인트 고객은 아래의 필터로 보호됩니다.

  • 29058: TCP: SambaShell Checkin

SHA256 for ELF_SHELLBIND.A:
c27594b1a1ecee6a62adbaee5b00bad8e3540fe98ff3bac17fef03e0ebd62914
516bafdede5e7a019a71028a7125f98190ee7ab71d03bc3041c9943324a78df5
11f47c90393082e7fdc4213d3b888ef8b7c121a86658077465b03bb7857bc540


[원문: Linux Users Urged to Update as a new Threat Exploits SambaCry]