<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=939333007162424&amp;ev=PageView&amp;noscript=1">

Genian EDR을 활용한 리눅스 위협 분석
(Persistence#1)

1. Persistence

  • 공격자는 피해자의 시스템에 침투한 이후, 지속성(Persistence)을 확보하기 위한 과정을 거치게 됩니다. 지속성을 유지하지 못한다면, 침투에 성공해도 시스템 재시작, 계정 변경 등의 이유로 액세스를 유지하지 못해 정보 유출, 파일 암호화 등의 최종적인 목표를 이룰 수 없기 때문입니다.

  • 따라서 공격자들은 지속성을 유지하는 기술을 연구하며, 발전시키고 있습니다. MITRE ATT&CK에서도 이를 하나의 공격 전술(Tactic)로 분류해 지속성에 사용되는 기술(Technique)을 업데이트 하고 있습니다.

MITRE ATT&CK Linux Matrix

[그림 1] MITRE ATT&CK Linux Matrix


  • 이번 보고서는 이슈가 됐던 악성코드 사례를 통해 공격자들이 리눅스 환경에서 어떠한 기술을 통해 지속성을 확보하는지 분석하고, Genian EDR을 활용해 탐지하는 내용을 다루고 있습니다.


2. Persistence Techniques

2.1. T1053.003 - Scheduled Task/Job: Cron

  • Cron은 유닉스 계열 컴퓨터 운영체제의 시간 기반의 작업 스케줄러로 설정된 시간, 날짜, 간격에  따라 주기적으로 작업을 실행하도록 설정하는 도구입니다.

  • 이처럼 Cron은 자동화된 예약 작업을 사용하는데 사용되지만 공격자들은 지속성을 유지하기 Cron을 지속적으로 악용하고 있습니다. Cron을 악용한 지속성 기법을 탐지하기 위해 확인해야 할 주요 경로는 아래와 같습니다.

경로 설명
/etc/crontab 예약된 작업 목록이 저장됩니다.
/etc/cron.d/ 시스템의 예약 작업이 저장됩니다.
/etc/cron.[hourly, daily, weekly, monthly]/ 매 시간, 매일, 매주, 매달 주기의 예약 작업이 저장됩니다.
/var/spool/cron/crontab/[사용자 이름] 각 사용자의 예약 작업 정보가 저장됩니다.

[표 1] Cron 주요 경로


2.1.1. Gomir #1

  • Gomir는 올해 상반기 Symantec에 의해 발견된 리눅스 악성코드로 Kimsuky가 유포한 것으로 알려진 Go 언어 기반 리눅스 백도어입니다.

  • Gomir 악성코드에 매개변수로 “install”문자열을 넣어 실행할 경우, 지속성을 유지하기 위한 과정을 수행합니다. 먼저, GID(Group Identifer)를 확인하고 0(Super User)이 아니라면 Crontab을 사용해 지속성을 유지합니다.

  • 지속성을 확보하기 위해 예약 작업 정보가 저장된 cron.txt 파일을 자신의 경로에 드롭하고 Crontab을 사용해 예약 작업을 등록합니다. 작업이 완료되면 cron.txt 파일을 삭제합니다.

Gomir 악성코드의 Crontab 명령 실행

[그림 2] Gomir 악성코드의 Crontab 명령 실행


  • cron.txt 파일의 내용은 아래와 같으며, 이를 통해 Gomir 악성코드는 재부팅할 때마다 실행되게 됩니다

@reboot [자기 자신 경로]

[표 2] cron.txt 파일 내용

Gomir 악성코드에 의해 crontab에 생성된 예약 작업

[그림 3] Gomir 악성코드에 의해 crontab에 생성된 예약 작업


  • 이후, Gomir 악성코드는 공격자의 C2서버에서 명령을 받아 네트워크 및 시스템 정보를 수집하고 Shell 명령 실행 등의 악성 행위를 수행합니다.

  • Genian EDR에서는 어떤 프로세스가 Crontab을 사용해 의심스러운 예약 작업을 등록했는지 확인할 수 있으며, 해당 행위와 관련된 MITRE ATT&CK Technique 정보를 제공하고 있습니다.

Gomir 악성코드 MITRE ATT&CK 탐지 화면 1

[그림 4] Gomir 악성코드 MITRE ATT&CK 탐지 화면 1


2.1.2. Chaos

  • Chaos 악성코드는 Go 언어로 개발된 악성코드로 Cron, Systemd, init.d 등을 악용해 지속성을 유지합니다. 그 중 Cron을 사용해 지속성을 확보하는 방법은 다음과 같습니다.

  • 먼저, Chaos 악성코드 자기 자신을 /usr/lib/libdlrpcld.so 로 자가 복제합니다. 이후, 복제된 파일을 실행하는 스크립트 파일인  .img 파일을 Crontab에 등록합니다.

Chaos 악성코드에 의해 Crontab에 생성된 예약 작업

[그림 5] Chaos 악성코드에 의해 Crontab에 생성된 예약 작업


  • 위 과정을 거쳐서 Crontab에 등록된 Chaos 악성코드는 1분마다 실행되며, 지속성을 확보하게 됩니다.

  • Genian EDR을 통해 해당 행위를 수행한 프로세스를 확인할 수 있으며, 전후 행위를 파악해 악성 여부를 판단할 수 있도록 도와줍니다.

Chaos 악성코드 MITRE ATT&CK 탐지 화면

[그림 6] Chaos 악성코드 MITRE ATT&CK 탐지 화면


2.2. T1543.002 - Create or Modify System Process: Systemd Service

  • Systemd는 Linux 운영체제용 시스템 및 서비스 관리자입니다. Linux 시스템에서 실행되는 모든 서비스와 데몬을 관리하고 시스템 이벤트에 대한 로그 관리, 전원 관리, 네트워크 관리 등 시스템의 전반적인 운영을 담당합니다.

  • Systemd는 서비스를 관리하기 위해 서비스 파일(.service)을 사용하는데, 이 파일은 Systemd가 서비스의 실행과 중지 및 재시작 등을 제어할 수 있도록 서비스에 대한 정보를 가지고 있는 설정 파일입니다.

  • 공격자들은 이 서비스 파일을 통해 재부팅 후에도 악성코드가 실행되도록 악용할 수 있으며, 다양한 Linux 악성코드에서 해당 기법을 이용한 사례가 지속적으로 발견되고 있습니다. 이러한 공격 기법을 탐지하기 위해 확인해야 할 주요 경로는 아래와 같습니다.

경로
/etc/systemd/system
/lib/systemd/system
/usr/local/lib/systemd/system

[표 3] Systemd 주요 경로


2.2.1. Gomir #2

  • Gomir악성코드가 Super User 권한으로 실행될 경우, 먼저 /var/log/경로에 syslogd이름으로  자신을 복제해 정상 파일로 위장합니다.

  • 이후, 자가 복제한 syslogd(Gomir) 를 실행하는 syslogd.service 파일을 /etc/systemd/system 경로에 생성합니다.

Gomir 악성코드에 의해 생성된 systemd.service 파일

[그림 7] Gomir 악성코드에 의해 생성된 systemd.service 파일


  • 다음으로, 생성한 syslogd.service 를 활성화 하고 실행하기 위해 Systemctl 명령을 실행합니다.

Gomir 악성코드에 의해 실행된 Systemctl 명령어

[그림 8] Gomir 악성코드에 의해 실행된 Systemctl 명령어


  • 위 과정을 통해 Gomir 악성코드는 시스템이 부팅될 때마다 실행되며, 지속성을 유지하게 됩니다.

활성화된 Syslogd(Gomir) 서비스

[그림 9] 활성화된 Syslogd(Gomir) 서비스


  • Genian EDR에서 해당 행위를 MITRE ATT&CK으로 탐지하고 있으며, 지속성 유지에 사용된 명령어와 Tactic 및 Technique을 확인할 수 있습니다.

Gomir 악성코드 MITRE ATT&CK 탐지 화면 2

[그림 10] Gomir 악성코드 MITRE ATT&CK 탐지 화면 2


2.2.2. DinodasRAT

  • DinodasRAT 악성코드는 2024년 초에 발견된 리눅스 악성코드입니다. 리눅스 환경에 따라 지속성을 유지하는 방법이 각각 다르며, Ubuntu 환경에서는 .service 파일을 통해 지속성을 유지합니다.

  • DinodasRAT 악성코드가 실행될 경우, /lib/systemd/system/rc.local.service 파일의 존재를 확인하고 /etc/rc.local 를 실행하는 내용이 포함된 문자열을 rc.local.service 에 작성합니다.

DinodasRAT 악성코드에 의해 생성된 rc.local.service 파일

[그림 11] DinodasRAT 악성코드에 의해 생성된 rc.local.service 파일


  • 이후, 아래 명령어를 사용해 생성한 .service 파일과 연결되는 심볼릭 링크를 /etc/systemd/system/ 에 생성합니다.

[그림 12] DinodasRAT 악성코드에 의해 생성된 심볼릭 링크

[그림 12] DinodasRAT 악성코드에 의해 생성된 심볼릭 링크


  • 최종적으로 시스템이 부팅 될 때마다 /etc/systemd/system/rc.local.service 파일을 통해 DinodasRAT가 실행됩니다.

  • Genian EDR에서 해당 행위를 Create or Modify System Process: Systemd Service으로 탐지하고 있으며, 지속성 확보를 위해 ln 명령어로 /etc/systemd/system 경로에 심볼릭 링크를 생성한 행위를 확인할 수 있습니다.

DinodasRAT 악성코드 MITRE ATT&CK 탐지 화면

[그림 13] DinodasRAT 악성코드 MITRE ATT&CK 탐지 화면


3. Conclusion

  • Genian EDR은 MITRE ATT&CK을 기반으로 다양한 사이버 공격 전술 및 기술을 탐지하고 차단할 수 있습니다.  리눅스 환경에서 공격자들이 Cron 또는 Systemd Service를 악용해 지속성을 유지하는 행위를 탐지할 수 있으며, 이를 통해 보안 담당자는 위협을 파악하고 신속히 대응할 수 있도록 도와줍니다.

Genian EDR 이벤트 조사 화면

[그림 14] Genian EDR 이벤트 조사 화면

Genian EDR 위협 관리 화면

[그림 15] Genian EDR 위협 관리 화면


  • Genian EDR은 의심스러운 활동을 실시간으로 탐지하고 분석할 수 있습니다. 이를 통해 악성 행위를 신속하게 파악하고 효과적으로 차단할 수 있으며, 기업의 보안을 강화하고 지속적인 위협으로부터 시스템을 보호할 수 있습니다.

  • 또한, Genian EDR의 대시보드 기능을 사용해 보안 담당자는 원하는 데이터를 다양한 그래프로 커스텀 하고 중요한 로그에 대한 가시성을 확보할 수 있습니다. 따라서 모든 로그를 확인할 필요 없이 실시간으로 전체적인 현황을 빠르게 파악하고 위협에 대응할 수 있습니다.

Genian EDR MITRE ATTACK 대시보드 1

[그림 16] Genian EDR MITRE ATTACK 대시보드 1

[그림 17] Genian EDR MITRE ATTACK 대시보드 2

[그림 17] Genian EDR MITRE ATTACK 대시보드 2


4. Reference

 


 

글쓴이. 송관용

지니언스 GSC(Genians Security Center)에서 위협 분석을 담당하고 있습니다.