AhnLab EDR을 활용한 리눅스 SSH 서비스 대상 공격 탐지

AhnLab EDR을 활용한 리눅스 SSH 서비스 대상 공격 탐지

Secure SHell (SSH)은 보안 터미널 연결을 위한 표준 프로토콜로서 일반적으로 원격에 위치한 리눅스 시스템을 제어하기 위한 목적으로 사용된다. 개인 사용자들이 데스크톱 목적으로 사용하는 윈도우 운영체제와 달리 리눅스 시스템은 주로 웹이나 데이터베이스, FTP, DNS 등의 서비스를 제공하는 서버로서의 역할을 담당한다. 물론 윈도우 또한 데스크톱만 지원하는 것이 아니라 이러한 서비스를 제공하는 서버로서의 기능을 제공하기도 한다.

윈도우나 리눅스 모두 서버로서 동작할 경우 원격에서 이를 제어하기 위한 도구가 필요하다. 윈도우에서는 이를 위해 Remote Desktop Service (RDP)를 지원하며 관리자는 이를 통해 원격에서 윈도우 시스템을 제어할 수 있다. RDP와 같은 서비스는 사용자가 접근할 수 있어야 하기 때문에 외부에 노출되어 있으며 이에 따라 외부 공격자의 주요 타겟이 된다. 만약 사용자가 적절한 접근 제어 정책을 사용하지 않고 단순한 형태의 비밀번호를 사용할 경우 무차별 대입 공격이나 사전 공격을 통해 제어를 탈취당할 수 있다.

이는 리눅스 환경 또한 마찬가지이다. 공격자는 RDP와 유사하게 외부에 노출된 SSH 서비스 즉 22번 포트를 스캐닝한 이후 무차별 대입 공격이나 사전 공격을 통해 로그인을 시도한다. 만약 로그인에 성공할 경우 해당 시스템에 대한 제어를 탈취하여 랜섬웨어 및 코인 마이너와 같은 악성코드를 설치하거나 정보를 탈취할 수 있다. SSH 서비스는 이러한 초기 침투 과정 외에도 측면 이동 공격 과정에서도 활용될 수 있다.

AhnLab SEcurity intelligence Center(ASEC)에서는 부적절하게 관리되고 있는 리눅스 서버를 대상으로 하는 공격을 모니터링하고 있으며 ShellBot [1], Tsunami [2], ChinaZ [3]와 같은 DDoS Bot이나 코인 마이너 [4] [5] 악성코드 등 확인된 공격 사례를 분석하여 공개한 바 있다.

AhnLab EDR (Endpoint Detection and Response)은 국내 유일의 행위 기반 분석 엔진을 기반으로 엔드포인트 영역에 대해 강력한 위협 모니터링과 분석, 대응 역량을 제공하는 차세대 엔드포인트 위협 탐지 및 대응 솔루션이다. AhnLab EDR은 의심스러운 행위에 관한 유형별 정보를 상시 수집해 탐지 및 분석, 대응 관점에서 사용자가 위협을 정확하게 인식할 수 있는 기능을 제공하며 이를 통해 종합적인 분석을 통해 원인 파악과 적절한 대응, 재발 방지 프로세스를 수립할 수 있다.

여기에서는 리눅스 SSH 서비스를 대상으로 하는 공격들에 대해 관리자가 이를 사전에 인지하고 원인 파악과 적절한 대응을 진행할 수 있도록 AhnLab EDR을 활용해 탐지할 수 있는 사례들을 다룬다.

1. 무차별 대입 공격 / 사전 공격

일반적으로 공격자들은 랜덤한 또는 특정 대역의 IP 주소들을 스캐닝하여 SSH 서비스가 동작하는 시스템 즉 22번 포트가 오픈되어 있는 시스템을 찾는다. 과거 사례에서 공격자는 사전 공격을 통해 리눅스 시스템에 로그인한 이후 스캐너 악성코드들을 설치하여 추가적인 피해 시스템들을 확보하였다. [6] 공격자는 먼저 포트 스캐너를 이용해 특정 IP 대역에 대해 22번 포트를 스캐닝하였으며 확인된 SSH 서버에 대해 배너 그래버로 SSH 서비스가 실행 중인지를 검증하였다. 여기까지의 과정이 끝나면 SSH 사전 공격 도구를 이용해 ID / PW 목록이 저장된 설정 데이터를 읽어와 해당 시스템들에 로그인을 시도하였으며 성공한 경우 시스템의 기본적인 정보들을 결과 파일에 저장하였다.

AhnLab EDR은 무차별 대입 공격이나 사전 공격을 통해 다수의 로그인 실패 이벤트가 발생할 경우 관리자가 원인 파악과 적절한 대응을 진행할 수 있도록 다음과 같이 위협으로 탐지한다.

2. SSH 서비스를 공격하여 악성코드 설치 과정

위 사례에서 공격자는 스캐닝 및 사전 공격을 수행하는 악성코드들을 설치하여 더 많은 취약한 시스템들을 확보하려고 하였다. 이 경우 공격자는 획득한 공격 대상 IP 및 자격 증명 정보를 다크 웹에 판매할 수 있을 것이다.

하지만 대부분의 경우 공격자 및 전파 기능이 포함된 악성코드들은 SSH 서버에 로그인이 성공한 이후 추가적인 악성코드를 설치한다. 예를 들어 다음은 클라우드 환경의 리눅스 플랫폼을 대상으로 하는 코인 마이너 악성코드인 Kinsing이 원격 시스템에 로그인한 이후 자신을 전파하는 과정에서 사용하는 명령이다. [7]

AhnLab EDR은 SSH 서비스를 통해 의심스러운 명령이 실행될 경우 이를 위협으로 탐지하여 관리자가 이를 사전에 인지할 수 있도록 도와준다.

3. SSH 서비스를 활용한 측면 이동 공격

리눅스 서버에 SSH를 이용해 로그인할 시 비밀번호를 입력할 수도 있지만 SSH 키를 이용하면 비밀번호 입력 없이도 로그인이 가능하다. 이를 위해 SSH 키 쌍 즉 공개키 / 개인키를 생성하고 로그인할 리눅스 서버에 SSH 공개키를 설치하는 과정이 필요하다. 리눅스 서버에 공개키가 설치되었다면 이후 생성한 개인키를 이용해 클라이언트에서 서버로 비밀번호 입력 없이 로그인이 가능해진다.

Kinsing 악성코드는 이를 악용하여 측면 이동 공격에 사용한다. Kinsing의 전파 모듈인 “spre.sh” 스크립트는 감염 시스템에 저장되어 있는 SSH 접속 로그 및 키 파일을 기반으로 전파하는 기능을 담당한다. 다음과 같은 파일들에서 호스트, 접속 포트, 유저, 키 파일들을 수집한 후 반복문을 이용해 접속을 시도한다. 접속에 성공한 경우에는 curl 및 wget를 이용해 위에서 언급한 다운로더 스크립트를 다운로드 및 실행시키는 명령을 전달한다.

수집 정보 수집 대상
Host List “*/.ssh/config”, “*/.bash_history”, “/etc/hosts”, “*/.ssh/known_hosts”, “22 번 포트를 사용하는 프로세스“
SSH Port “*/.bash_history”
User List “*/.ssh/id_rsa”, “*/.bash_history”
Keys “*/id_rsa”, “*/.ssh/config”, “*/.bash_history”, “*/*.pem”

Table 1. SSH 전파를 위한 정보 수집 대상

AhnLab EDR은 시스템의 로그 파일과 SSH 키 파일을 읽어 또 다른 시스템에 자신을 전파하는 행위가 발생할 경우 관리자가 원인 파악과 적절한 대응을 진행할 수 있도록 다음과 같이 위협으로 탐지한다.

4. 결론

부적절하게 관리되고 있는 리눅스 SSH 서버를 대상으로 하는 공격은 과거부터 꾸준히 진행되고 있다. 공격자들은 무차별 대입 공격 및 사전 공격을 통해 시스템에 대한 제어를 탈취하여 랜섬웨어 및 코인 마이너와 같은 악성코드를 설치하거나 정보를 탈취할 수 있다.

이에 따라 관리자들은 계정의 비밀번호를 추측하기 어려운 형태로 사용하고 주기적으로 변경하여 무차별 대입 공격과 사전 공격으로부터 리눅스 서버를 보호해야 하며, 최신 버전으로 패치하여 취약점 공격을 방지해야 한다. 또한 외부에 공개되어 접근 가능한 서버에 대해 방화벽과 같은 보안 제품을 이용해 공격자로부터의 접근을 통제해야 한다.

AhnLab EDR은 무차별 대입 공격 및 사전 공격과 같은 초기 침투 단계부터 SSH 서비스를 통해 의심스러운 명령을 실행하는 행위 그리고 측면 이동 과정에서 SSH 서비스를 악용하는 행위를 위협으로 탐지한다. 관리자는 이를 통해 원인 파악과 적절한 대응을 진행할 수 있으며 공격에 노출된 이후에도 공격 대상이 된 시스템에서 공격자의 증적 자료로서 침해 사고 조사에 필요한 데이터를 확인할 수 있다.

행위 진단
– CredentialAccess/EDR.BruteForce.M11571
– InitialAccess/EDR.Event.M11567
– Infostealer/EDR.Shell.M11231

AhnLab EDR의 행위 기반 탐지 및 대응 기능에 대해 더 알고 싶으시면, 아래 배너를 클릭하여 확인해 보세요.