1. Defense Evasion
-
공격자는 피해자의 시스템에 침투한 후, 보안 자산에 의한 탐지 및 차단을 피하고 악성 행위를 수행하기 위해 AppArmor, SELinux 등의 기능 비활성화 및 방화벽 규칙 생성 및 삭제 등의 방어 회피(Defense Evasion) 전술을 수행합니다.
-
공격자가 목표 시스템에 침투하더라도 방어 회피에 성공하지 못한다면, 백신이나 EDR 등의 보안 솔루션으로 인해 공격이 탐지 및 차단되어 정보 탈취, 데이터 훼손, 서비스 중단 등의 최종 목표를 이룰 수 없기 때문입니다.
-
따라서 공격자들은 방어를 회피하는 기술을 지속적으로 연구하며, 발전시키고 있습니다. MITRE ATT&CK에서도 이를 하나의 공격 전술(Tactic)로 분류해 방어 회피에 사용되는 기술(Technique)을 업데이트 하고 있습니다.
[그림 01] MITRE ATT&CK Linux Matrix
- 이번 보고서는 이슈가 됐던 악성코드 사례를 통해 공격자들이 리눅스 환경에서 어떠한 기술을 통해 방어 회피 전략을 구사하는지 분석하고, Genian EDR을 활용해 탐지하는 내용을 다루고 있습니다.
2. Defense Evasion Techniques
2.1. T1562.001 - Impair Defenses: Disable or Modify Tools
-
리눅스 운영체제에서는 SELinux(Security-Enhanced Linux)와 AppArmor 같은 보안 기능이 기본적으로 제공되며, 이들은 MAC(Mandatory Access Control)을 적용해 프로세스, 파일 등의 상호작용을 정책에 따라 접근을 제어합니다.
-
특히 실행 파일의 경로, 권한, 시스템 콜 등을 제어함으로써 백도어나 루트킷, 커널 익스플로잇의 실행을 차단하거나 권한 상승을 방지할 수 있습니다.
-
따라서 공격자는 보안 기능에 의해 악성코드가 차단되거나 동작하지 않는 상황을 방지하기 위해 SELinux와 AppArmor를 중지 또는 비활성화하는 방법으로, Defense Evasion 기법을 수행합니다.
이름 | AppArmor | SELinux |
운영체제 | Debian, Ubuntu 계열 | Red Hat 계열 (RHEL, CentOS, Fedora 등) |
기능 |
- 경로 기반(파일 경로)에 따라 접근 제어 - 개별 애플리케이션 단위로 프로파일 적용 - 학습 모드(complain) 및 강제 모드(enforce) 지원 |
- 보안 컨텍스트 기반(라벨 기반) 접근 제어 - 커널 수준의 강력한 MAC 정책 - 사용자/프로세스/오브젝트 간 모든 상호작용에 정책 적용 |
중지 및 비활성화 명령 |
systemctl disable apparmor |
setenforce 0 setenforce Permissive |
설정 및 정책 파일 | /etc/apparmor.d/ | /etc/selinux/config |
[표 01] AppArmor, SELinux 특징
2.1.1. WolfsBane
-
WolfsBane은 리눅스 기반 백도어로, 2024년 11월 ESET에 의해 발견되었으며, 코드 유사성을 근거로 중국 APT 그룹인 Gelsemium이 사용하는 것으로 추정되고 있습니다. 해당 악성코드는 여러 단계에 걸쳐 실행되며, 초기 단계에서는 지속성 확보 및 보안 기능 우회 등의 행위를 통해 공격 기반을 마련합니다.
-
WolfsBane가 root 권한으로 실행될 경우, .X11 이름의 숨겨진 폴더를 생성하고 3개의 추가 악성코드를 드롭합니다. 이후, 드롭한 악성코드를 실행하는 /lib/systemd/system/display-managerd.service 파일을 생성해 지속성을 확보합니다.
-
다음으로는 /etc/selinux/config 파일의 존재 여부를 확인한 뒤, 해당 파일에서 enforcing 설정 값을 disabled로 변경하여 SELinux 보안 모듈을 비활성화합니다.
[그림 02] WolfsBane 악성코드에 의해 비활성화된 SELinux
- GenianEDR에서는 SELinux 비활성화 행위를 T1562.001 - Impair Defenses: Disable or Modify Tools로 탐지하고 있으며, 어떤 프로세스에 의해 SELinux 비활성화 행위가 수행됐는지 파악할 수 있습니다.
[그림 03] WolfsBane 악성코드 MITRE ATT&CK 탐지 화면
2.1.2. Kinsing #1
-
Kinsing은 Go언어로 개발된 가상자산 채굴(Coin Miner) 악성코드로, 주로 외부에 노출된 클라우드 환경의 컨테이너 및 서버 취약점을 통해 유포되고 있습니다.
-
해당 악성코드는 초기 단계에서 실행되는 악성 스크립트를 통해 보안 기능을 비활성화하고, 다른 코인 마이너를 제거하며, 지속성을 확보하는 등의 행위를 통해 안정적인 채굴 환경을 구성합니다.
-
Kinsing 악성코드는 보안 기능을 우회하고 악성 행위를 제한 없이 수행하기 위해서 service apparmor와 systemctl disable apparmor 명령을 사용해 AppArmor를 비활성화 합니다.
[그림 04] Kinsing 악성코드에 의해 비활성화된 AppArmor
- Genian EDR에서는 AppArmor 중지 및 비활성화 이벤트를 아래 그림과 같이 확인할 수 있으며, 공격 스토리라인 보기를 통해 각 프로세스의 행위를 시각적으로 추적할 수 있습니다.
[그림 05] Kinsing 악성코드에 의한 AppArmor 비활성화 이벤트 화면
- 아래 그림처럼 공격 스토리라인을 통해 공격자가 어떤 방식으로 보안 기능을 우회했는지를 한눈에 파악할 수 있도록 도와줍니다.
[그림 06] Kinsing 악성코드 MITRE ATT&CK 탐지 화면 1
[그림 07] Kinsing 악성코드 MITRE ATT&CK 탐지 화면 2
2.2. T1480 - Execution Guardrails
-
해당 Technique은 악성코드가 특정 조건에서만 실행되도록 제한하는 기법으로, 분석 환경을 우회하거나 특정 타깃에서만 작동하도록 하는 데 사용됩니다. 예를 들어, hostname이나 whoami, 환경 변수, IP 등을 검사해 공격자가 의도한 조건과 일치하지 않으면 실행을 중단하거나 악성 행위 없이 대기 상태를 유지하도록 합니다.
-
또한, 악성코드의 중복 실행을 방지하기 위한 수단으로도 Execution Guardrails 기법이 사용됩니다. Windows 환경에서는 공격자들이 뮤텍스(Mutex, 상호배제 객체)를 활용해 악성코드가 다중 실행되지 않도록 제어하기도 하며, 이는 시스템 리소스의 중복 사용을 방지하고 탐지 가능성을 줄이기 위한 방법으로 사용됩니다.
[그림 08] Genians - APT43 배후의 다단계 드롭박스 명령과 TutorialRAT 보고서 일부
2.2.1. BPFDoor #1
-
BPFDoor는 BPF(Berkeley Packet Filter)를 악용하는 리눅스 백도어 악성코드로 2021년 5월 PwC Threat Intelligence 보고서를 통해 알려졌습니다.
-
해당 악성코드는 일반적인 백도어처럼 오픈된 포트를 통해 공격자의 명령을 수신하지 않고, BPF를 사용해 커널 공간(Kernel Space)에서 공격자의 매직 패킷만을 필터링합니다.
-
매직 패킷은 공격자가 의도적으로 특정 시그니처를 추가한 네트워크 패킷으로, BPFDoor는 매직 패킷을 수신했을 경우에만 동작을 활성화합니다. 이러한 이유로 인해 BPFDoor는 일반적인 보안 솔루션으로는 식별이 어렵다는 특징을 가지고 있습니다.
[그림 09] BPFDoor의 작동 원리
출처 : Flare.Baek - Analysis of BPFDoor malware targeting Korean telecom companies!
- BPFDoor는 초기 실행 시/var/run/hp-health.pid 파일의 존재 여부를 확인합니다.
.
.pid 파일은 일반적으로 실행 중인 프로세스의 PID(Process ID)를 저장하는 데 사용되며, 시스템에서는 이를 통해 특정 프로세스의 실행 여부를 판단합니다.
- 그러나 BPFDoor는 임의로 /var/run 경로에 0바이트 크기의 hp-health.pid 피일을 생성하고, 해당 파일이 이미 존재할 경우에는 실행을 중단하는 용도로 활용합니다. (BPFDoor 변종에 따라 경로 및 파일명은 달라질 수 있습니다.)
[그림 10] BPFDoor에 의해 생성된 hp-health.pid 파일
- Genian EDR에서는 해당 행위를 MITRE ATT&CK으로 탐지하고 있으며, T1480 - Execution Guardrails로 분류하고 있습니다.
[그림 11] BPFDoor MITRE ATT&CK 탐지 화면 1
2.3. T1562.004 - Impair Defenses: Disable or Modify System Firewall
-
방화벽(Firewall)은 외부로부터의 불필요한 네트워크 접근을 차단하고 시스템을 보호하기 위한 보안 기능으로, 리눅스에서는 iptables, firewalld, ufw 등의 도구를 통해 인바운드 및 아웃바운드 트래픽을 제어할 수 있습니다.
-
그러나 공격자는 iptables -F 명령어를 사용해 모든 방화벽 규칙을 초기화하거나 systemctl stop firewalld 명령어로 방화벽 서비스를 중지해 방화벽의 차단 없이 C2와의 연결을 수행합니다.
-
또한, Iptables 규칙을 수정하거나 악의적인 규칙을 추가해 C2와의 통신을 허용하는 방식으로 악용하기도 합니다.
2.3.1. BPFDoor #2
- 침투에 성공한 BPFDoor는 Magic Packet 수신 후, 조건에 따라 Reverse Shell과 Bind Shell을 사용하여 공격자와 연결을 수행합니다. 그 중 Bind Shell은 42391 ~ 43390 중 하나를 Port로 선택해 공격자와 통신하기 위한 Iptables 규칙을 추가합니다.
[그림 12] BPFDoor에 의해 생성된 Iptables 규칙
-
최종적으로 공격자는 Bind Shell을 통해 대상 시스템에 직접 접속할 수 있는 통로를 확보하며, 이를 통해 쉘 명령 실행, 시스템 정보 수집, 파일 다운로드 및 업로드, 계정 탈취 등 다양한 악성 행위를 수행할 수 있습니다.
-
Genian EDR을 통해 Iptables 규칙을 생성한 프로세스와 행위를 확인할 수 있으며, Iptables 규칙 추가에 사용된 명령어를 통해 어떤 Port 및 IP가 규칙에 추가됐는지 파악할 수 있습니다.
[그림 13] BPFDoor 악성코드 MITRE ATT&CK 탐지 화면 2
2.3.2. Kinsing #2
- Kinsing 악성코드는 ufw disable, iptables -F 명령어를 실행해 T1562.004 - Impair Defenses: Disable or Modify System Firewall 기법을 수행하며, 이를 통해 시스템의 방화벽 설정을 무력화하고 추가적인 악성 행위 수행 및 C2 통신을 원활하게 합니다.
[그림 14] Kinsing 악성코드에 의해 비활성화된 UFW와 초기화된 Iptables 목록
-
초기 실행되는 악성 스크립트를 통해 환경 구성을 마친 Kinsing 악성코드는 최종적으로 C2에서 코인 마이너 파일을 다운로드해 가상자산 채굴을 수행합니다.
-
GenianEDR를 통해 ufw 비활성화와 Iptables -F 명령을 통해 설정된 모든 Iptable 규칙을 삭제하는 행위를 확인할 수 있으며, 어떤 프로세스가 해당 행위를 실행했는지 파악해 대응할 수 있습니다.
[그림 15] Kinsing 악성코드 MITRE ATT&CK 탐지 화면 3
[그림 16] Kinsing 악성코드 MITRE ATT&CK 탐지 화면 4
3. Conclusion
-
Genian EDR은 MITRE ATT&CK을 기반으로 다양한 사이버 공격 전술 및 기술을 탐지하고 차단할 수 있습니다. 리눅스 환경에서 공격자들이 보안 도구 비활성화 또는 Iptables를 악용해 방어를 회피하는 행위를 탐지할 수 있으며, 이를 통해 보안 담당자는 위협을 파악하고 신속히 대응할 수 있도록 도와줍니다.
-
또한., MITRE ATT&CK VIew 기능을 사용해 원하는 프로세스의 행위를 Technique기준으로 한눈에 확인할 수 있으며, 해당 Technique를 클릭해 어떤 행위를 수행했는지 구체적으로 확인할 수 있습니다.
- GenianEDR은 의심스러운 활동을 실시간으로 탐지하고 분석할 수 있습니다. 이를 통해 악성 행위를 신속하게 파악하고 효과적으로 차단할 수 있으며, 기업의 보안을 강화하고 지속적인 위협으로부터 시스템을 보호할 수 있습니다.
4. Reference
- https://attack.mitre.org/matrices/enterprise/linux/
- https://www.genians.co.kr/blog/threat_intelligence/bpfdoor
- https://www.welivesecurity.com/en/eset-research/unveiling-wolfsbane-gelsemiums-linux-counterpart-to-gelsevirine/
글쓴이.송관용
지니언스 GSC(Genians Security Center)에서 위협 분석을 담당하고 있습니다.