2025년 들어 한국의 IT 환경에서 리눅스 서버가 사이버 공격의 핵심 표적이 되고 있습니다. 웹 호스팅, 전자상거래 플랫폼, 통신사 백엔드까지 수많은 핵심 서비스가 리눅스 위에서 돌아가고 있기 때문입니다. 공격자들은 이 보편성과 보안 공백을 동시에 노리며 웹쉘, 암호화폐 채굴 악성코드, 공급망 공격, 커널 모듈 루트킷, 파일리스 악성코드, SSH 세션 탈취, PAM (Pluggable Authentication Module) 변조, 권한 상승 취약점 악용 등 다양한 기법을 동원하고 있습니다.
금전적 이득을 노리는 범죄 조직뿐만 아니라, 장기적 침투를 노리는 국가 기반 위협 그룹까지 리눅스 서버를 주요 목표로 삼고 있습니다. 이번 글에서는 2025년 현재 한국 내에서 발견된 대표적인 공격 유형을 시나리오로 만들어 Genian EDR을 통해 분석해 보겠습니다.
2025년에도 여전히 자주 발견되는 공격 수단 중 하나는 웹쉘(web shell)입니다. 웹 애플리케이션의 취약점을 이용해 서버에 악성 스크립트를 업로드하고, 이를 통해 원격 명령을 실행하는 방식입니다.
국내 한 온라인 결제 플랫폼에서는 오래된 Oracle WebLogic 취약점(CVE-2017-10271)을 악용해 웹쉘을 설치하려는 시도가 탐지되기도 했습니다. 또 다른 사례로, 한 대형 통신사의 내부 리눅스 서버에서는 3년 넘게 은폐된 웹쉘이 발견되어 충격을 주었습니다. 이 웹쉘은 공격자가 장기간 서버를 은밀히 제어하며 내부 네트워크로 확산하는 데 사용되었습니다.
웹쉘은 기술적으로 오래된 공격 방식이지만 여전히 효과적입니다. 취약한 파일 업로드 기능, 미흡한 보안 점검, 기본적인 웹 방화벽 부재 등으로 인해 많은 중소기업 웹 서비스가 손쉽게 뚫리고 있습니다.
2025년 가장 우려되는 공격 유형 중 하나는 지속적이고 은밀한 침투를 가능케 하는 백도어와 루트킷입니다. 대표적으로 BPFDoor라는 리눅스 백도어는 네트워크 포트 없이도 “특정 패킷”을 통해 은밀히 작동하며 수년간 탐지되지 않을 수 있습니다. 실제로 국내 한 통신사 서버에서 27종 이상의 BPFDoor 변종이 발견되어 국가 차원 경보가 발령된 사례가 있었습니다.
리눅스 서버는 웹 서비스, DB, 이메일, 클라우드 플랫폼 등 기업 핵심 인프라를 담당합니다. 따라서 공격자가 단 한 대만 침투해도 대규모 개인정보, 금융 데이터, 기업 기밀을 손에 넣을 수 있습니다. 공격자 입장에서 “리눅스 서버 = 고수익, 고가치 자산”이 되는 이유입니다.
전 세계 클라우드 워크로드 절반 이상이 리눅스 기반에서 실행되고 있으며, 한국 역시 클라우드 전환이 가속화되면서 공격 표면이 급격히 늘어나고 있습니다.
기업들은 종종 레거시 애플리케이션의 의존성 문제 때문에 최신 버전으로 업그레이드하지 못하고 오래된 리눅스 배포판을 그대로 사용합니다. 이로 인해 이미 알려진 취약점이 패치 되지 않은 상태로 남아 공격자에게 손쉬운 표적이 됩니다.
앞에서 리눅스 공격 유형을 살펴보았다면, 이제 실제로 현장에서 자주 발생하는 리눅스 서버 침투 시나리오를 예시로 구현해 보겠습니다. 공격자는 단계별로 치밀하게 접근하며, 한 번의 초기 진입으로 끝나지 않고 지속적인 통제와 데이터 유출까지 이어갑니다.
공격자는 먼저 인터넷에 노출된 웹 서버의 취약점을 탐색합니다. 오래된 CMS, 취약한 파일 업로드 기능, SQL 인젝션 같은 고전적인 방식이 주로 활용됩니다. 취약점을 발견하면 공격자는 웹쉘을 업로드하여 서버 내부에서 명령을 실행할 수 있는 발판을 마련합니다. 이 단계는 흔히 “초기 침투”라고 불리며, 이후 모든 공격의 출발점이 됩니다.
웹쉘을 확보한 공격자는 서버에 BPFDoor와 같은 은밀한 백도어를 설치합니다. BPFDoor는 네트워크 포트를 열어두지 않고도 특정 패킷을 통해 원격 제어가 가능한 스텔스형 악성코드입니다.
일시적인 제어에 그치지 않고, 공격자는 crontab 작업 예약을 등록해 BPFDoor가 주기적으로 실행되도록 설정합니다. 이로써 서버가 재부팅되더라도 백도어가 자동으로 살아나며, 공격자는 장기간 서버에 머물 수 있게 됩니다. 즉, 시스템 관리자가 눈치채지 못하는 사이 공격자는 안정적인 발판을 확보하는 것입니다.
지속성이 보장된 이후 공격자는 본격적으로 정보 수집 단계에 돌입합니다. 서버 내의 주요 데이터베이스, 설정 파일, 계정 정보, 로그 파일 등을 탐색하고 외부로 유출합니다. 이 과정에서 수집된 데이터는 금전적 이득(판매, 협박), 추가 공격 준비(내부망 침투), 또는 국가 기반 사이버 작전에 활용될 수 있습니다.
공격자는 표적 사이트에 대하여 취약점을 식별합니다. 취약점이 확보되면 공격자는 웹쉘을 업로드하여 최초 접근을 확보합니다.
웹쉘은 웹 서버상에서 동작하는 간단한 원격 제어 스크립트로 정의되며, 공격자는 이를 통해 웹 서버에서 임의 명령을 실행하고 추가 도구를 내려받아 공격 범위를 확장할 수 있습니다.
공격자는 웹쉘을 통해 BPFDoor 실행파일을 다운로드해 실행합니다.
BPFDoor에 대한 간단한 설명을 드리면 BPFDoor는 BPF(Berkeley Packet Filter)와 Backdoor의 합성어입니다. 여기서 BPF란 단말로 들어오는 수많은 패킷 중에서 커널에서 필터를 걸어, 내가 보고 싶은 패킷만 선택적으로 볼 수 있게 해 주는 일종의 필터링 메커니즘이라고 생각하시면 됩니다.
일반적으로 공격자 서버는 특정 포트를 리스닝(listening) 상태로 열어두고 있으며, 피해자 서버에 서 실행 중인 악성코드(멀웨어)가 공격자 서버로 연결을 시도합니다. 이 연결이 성공하면 양방향 통신이 이루어지며, 공격자는 피해자 서버에 명령어를 전달하고 그 결괏값을 받아보는 방식으로 원격 제어를 수행합니다.
BPFDoor 악성코드는 BPF를 이용해 특정 프로토콜의 특정 오프셋 위치에 특정 값이 있는지를 확 인합니다. 해당 값을 매직 패킷이라고 부릅니다. 이 매직 패킷 값이 일치할 경우, 앞서 설명한 리버스 쉘(backdoor)과 동일한 방식으로 동작하여 공격자 와 연결을 맺고 명령어 실행 및 결과 전달을 수행합니다.
- 단계 3: 지속성 확보 – Crontab 활용
BPFDoor 악성코드 설치를 완료한 공격자는 정상 프로세스가 종료되거나 네트워크 연결이 끊길 경우를 대비해 “다시 실행되도록 예약”하는 방법을 사용해 지속성을 확보하려고 합니다.
리눅스의 예약(스케줄) 기능 중 하나인 crontab은 시스템 부팅 시나 주기적으로 작업을 실행하도록 설정할 수 있기 때문에 공격자가 이 경로를 악용하는 대표적인 방법입니다.
공격자는 웹 쉘을 통해 BPFDoor를 주기적으로 실행할 수 있는 스케줄을 등록합니다.
공격자는 감염과 지속성 확보(기본적인 세팅)가 끝나면 최종적으로 금전적 이득(데이터 판매·협박)을 목적으로 서버에 저장된 핵심 정보를 탈취합니다.
BPFDoor를 통해 추가 수집 도구를 내려받아 실행하면, 공격자는 데이터베이스 덤프(고객 정보)·설정 파일·로그·자격증명(패스워드·API 키 등)을 찾아내고 이를 작은 조각으로 쪼개거나 압축해 외부로 전송합니다.
전송 방식은 은밀하게 반복·분할 전송하는 형태가 많아 트래픽 상 이상 징후가 한눈에 들어오지 않을 수 있습니다.
“2.2 공격 시나리오 수행”에서 수행했던 공격들을 Genian EDR을 활용하여 간단하게 분석해 보겠습니다.
Genian EDR은 저장된 로그의 패턴을 분석하여 이상 행위를 실시간으로 식별하고 빠르게 대응할 수 있도록 지원합니다.
데이터 유출 과정에서 중요 파일의 비정상적 복사 행위와 파일을 쪼개어(분할) 하는 행위를 탐지합니다.
Genian EDR 분석 결과, 다수의 이상행위(XBA)가 탐지되었습니다. 공격자는 중요 파일을 다른 파일 형식으로 위장하고 데이터를 여러 조각으로 분할하는 수법을 사용하였으며, 이렇게 분할된 데이터가 특정 외부 서버로 전송되어 유출되는 정황까지 확인되었습니다.
정상적이지 않은 프로세스가 크론탭(/etc/crontab, /etc/cron.d/, /var/spool/cron/ 등) 또는 시스템 예약 작업을 등록·변경하는 행위를 식별해 경보를 발생시킵니다.
Genian EDR를 통해 분석을 수행하면 Bash 프로세스의 하위로 실행된 crontab 프로세스에서, crontab 등록을 통해 부팅 시 1회 실행 및 매시간 정각마다 bpf 명령어가 실행되도록 설정된 스케줄을 탐지하였습니다.
크론탭에서 지속적으로 실행시키는 bpf 파일을 분석하겠습니다. 해당 파일은 BPFDoor 악성코드로 커널에 로드된 bpf 필터를 모니터링하고 그 bpf와 연관된 프로세스(또는 그 하위 프로세스)가 셸을 생성하는 BPFDoor 행위를 패턴으로 식별해 이상행위로 탐지합니다.
BPFDoor는 BPF의 기본 실행 조건을 만족하는 경우, 악의적인 행위를 수행하기 위한 자식 프로세스를 생성하며 이를 통해 외부의 공격자 서버(C2)와 원격 연결(Reverse Connection)을 수행합니다.
Genian EDR은 인가되지 않은 원격 연결을 통한 네트워크 연결과 공격자의 추가적인 명령으로 실행되는 프로세스들을 확인 가능합니다.
추가적으로 BPF 프로세스에 의해 수행되는 행위들에 대한 Tag 기능을 추가하여 BPF 프로세스에 의해 발생한 이벤트들에 대한 신속한 식별할 수 있습니다.
BPFDoor를 생성한 프로세스를 추적하면, 최상단에는 웹 서비스 관련 프로세스가 위치하는 것이 확인됩니다.
Genian EDR은 apache2/httpd, nginx + php-fpm, tomcat, node, uwsgi 등 웹 서비스 계열 프로세스의 하위에서 /bin/sh, /bin/bash 같은 셸 실행이나 셸 명령 호출이 발생하는 패턴을 웹셸 행위로 규정하여 이상행위로 탐지합니다.
결과적으로 웹 서버 계열 프로세스에서 시작된 실행 흐름을 통해 BPFDoor가 생성된 사실이 확인되었으며, 이를 통해 근본 원인인 웹쉘 침해를 식별할 수 있습니다.
이번 글에서는 Genian EDR을 활용하여 BPFDoor 침해 시나리오를 탐지하고 분석하는 과정을 다루었습니다.
데이터 유출 시도의 탐지, 크론탭을 통한 지속성 확보, BPFDoor 백도어 실행, 그리고 웹쉘을 통한 최초 침투까지의 전체 흐름을 추적함으로써 공격의 근본 원인과 공격자 행위를 식별할 수 있었습니다.
Genian EDR을 활용한 분석의 장점은 다음과 같습니다.
BPFDoor와 같은 고도화된 백도어는 장기간 은밀하게 활동할 수 있는 만큼, EDR을 전 과정을 추적하고 대응하는 것이 매우 중요합니다.
감사합니다.
지니언스 컨설팅부에서 고객사에서 발생되는 악성코드/위협 분석을 담당하고 있습니다.