MITRE ATT&CK: T1036.011 (Overwrite Process Arguments) | 전술: Defense Evasion | 플랫폼: Linux
도입: 왜 이 공격이 중요한가
리눅스 서버에서 ps 명령을 쳤을 때 /sbin/udevd -d나 dbus-daemon --system 같은 프로세스가 보이면 당연히 정상이라고 생각하죠? 근데 사실 이게 악성코드일 수도 있습니다.
T1036.011 기법은 공격자가 실행 중인 악성 프로세스의 명령줄 인수를 메모리에서 덮어써서, 마치 정상적인 시스템 데몬처럼 보이게 만드는 기법입니다. 관리자가 프로세스 목록을 확인해도 의심스러운 점을 전혀 발견할 수 없거든요.
💡 쉬운 비유: 가면을 쓰고 있는 것과 비슷해요. 겉으로는 정상 프로세스 같아 보이지만, 실제로는 완전히 다른 악성 프로그램이 실행되고 있는 거죠.
1. 공격자 관점
왜 이 기법을 사용하는가
- 완벽한 은신:
ps,top,htop같은 기본 모니터링 도구로는 전혀 의심스럽지 않게 보임 - 권한 불필요: 루트 권한 없이도 자신의 프로세스 인수를 수정할 수 있음
- 지속성: 프로세스가 실행되는 동안 계속해서 정상 데몬으로 위장 가능
동작 흐름
리눅스에서 프로세스가 시작되면 명령줄 인수들이 메모리의 스택 영역에 저장됩니다. 이 정보는 /proc/<PID>/cmdline 파일을 통해 접근할 수 있고, ps 명령어가 바로 이 정보를 읽어서 보여주거든요.
| 단계 | 설명 |
|---|---|
| 1. 프로세스 시작 | 악성코드가 실제 파일명으로 실행됨 (예: /tmp/malware) |
| 2. 메모리 조작 | argv[0] 영역의 기존 문자열을 null 바이트로 지움 |
| 3. 위장 문자열 삽입 | 정상 데몬 이름을 해당 메모리 영역에 덮어씀 (예: /sbin/udevd -d) |
| 4. 완벽한 위장 | /proc/<PID>/cmdline과 ps 출력이 정상 프로세스로 표시됨 |
💡 쉬운 비유: 신분증의 이름 부분만 지우고 다른 이름을 써넣는 것과 같아요. 겉으로는 완전히 다른 사람 같아 보이죠.
2. 실제 공격 사례
📌 BPFDoor - 중국 Red Menshen 위협 그룹 (2022년)
배경: 중국 연계 위협 그룹이 전 세계 리눅스 서버를 대상으로 장기간 운영한 백도어입니다. 수년간 탐지되지 않고 전 세계에 수천 개의 인스턴스가 배포되었을 것으로 추정됩니다.
공격 과정:
- 초기 침투: 취약한 리눅스 서버에 BPFDoor 백도어 설치
- 프로세스 위장:
argv[0]값을 10개의 하드코딩된 정상 데몬 이름 중 하나로 덮어씀/sbin/udevd -d(장치 관리 데몬)dbus-daemon --system(시스템 메시지 버스)avahi-daemon: chroot helper(네트워크 서비스 발견)/sbin/auditd -n(감사 로그 데몬)/usr/lib/systemd/systemd-journald(저널링 데몬)
- 지속적 은신: BPF 패킷 스니퍼를 통해 특수 패킷을 기다리면서 정상 데몬으로 위장
피해 규모: 전 세계 수천 개의 리눅스 서버가 감염되었을 것으로 추정되며, 수년간 탐지되지 않고 운영됨
출처: BPFDoor - An Evasive Linux Backdoor Technical Analysis
3. 왜 탐지가 어려운가?
공식 탐지 방법
- [DET0164] Detection Strategy for Overwritten Process Arguments Masquerading - AN0466: 실행 중인 프로세스의 명령줄 인수가 메모리에서 덮어써져 프로세스 이름을 스푸핑하는 공격자 행동을 탐지합니다.
/proc/<pid>/cmdline의 예상치 못한 null 바이트 시퀀스, 프로세스 계층구조와의 불일치, 프로세스 시작 직후의 의심스러운 메모리 쓰기를 상관분석합니다.
공격자가 이 기법을 선호하는 이유
완벽한 정상 프로세스 흉내: 관리자가 ps aux 명령을 실행해도 /sbin/udevd -d 같은 익숙한 시스템 데몬만 보이니까 전혀 의심하지 않습니다. 실제 udevd 프로세스와 구별이 안 되거든요.
기본 모니터링 도구 우회: 대부분의 시스템 관리자가 사용하는 ps, top, htop 같은 도구들은 모두 /proc/cmdline을 읽어서 정보를 표시합니다. 이 파일이 조작되면 모든 도구가 속게 되는 거죠.
권한 에스컬레이션 불필요: 자신의 프로세스 메모리는 일반 사용자 권한으로도 수정할 수 있어서, 루트 권한을 획득하기 전에도 은신할 수 있습니다.
탐지의 현실적 한계
높은 false positive: 정상적인 프로세스들도 가끔 명령줄 인수를 동적으로 변경하는 경우가 있어서, 모든 메모리 쓰기를 의심하면 너무 많은 오탐이 발생합니다.
실시간 메모리 모니터링 부담: 모든 프로세스의 메모리 변경을 실시간으로 감시하려면 시스템 성능에 상당한 영향을 줄 수밖에 없어요. 특히 서버 환경에서는 현실적으로 어렵죠.
프로세스 계층구조 분석의 한계: 공격자가 정상적인 부모 프로세스에서 fork해서 악성코드를 실행하면, 프로세스 트리만 봐서는 의심스러운 점을 찾기 어렵습니다.
4. 나도 위험할까? 자가 진단
이 공격이 나와 관련 있는지 확인해보세요.
이런 환경이라면 주의가 필요합니다
- 인터넷에 노출된 리눅스 서버를 운영하고 있다 (웹서버, DB서버, 개발서버 등)
- SSH 접근이 가능한 서버에 여러 사용자 계정이 있다
- 프로세스 모니터링을 기본 ps/top 명령어에만 의존하고 있다
- 서버에 의심스러운 네트워크 트래픽이 간헐적으로 발생한다
공식 대응 방안
현재 MITRE ATT&CK에서 이 기법에 대한 구체적인 완화 방안은 제시되지 않았습니다. 이는 이 기법이 리눅스 시스템의 정상적인 메모리 관리 기능을 악용하기 때문입니다.
당장 할 수 있는 것
- 프로세스 실행 파일 경로 확인:
ls -la /proc/<PID>/exe로 실제 실행 파일 위치를 확인하세요 (이건 조작할 수 없어요) - 네트워크 연결 상태 점검:
netstat -tulpn으로 의심스러운 네트워크 연결이 있는지 주기적으로 확인하세요 - 🏢 보안 담당자: auditd나 sysdig 같은 고급 모니터링 도구로 프로세스 execve 시스템 콜과 메모리 변경을 추적하세요
5. 관련 기술
| 기법 | 설명 | 링크 |
|---|---|---|
| T1036.005 Match Legitimate Name or Location | 프로세스 이름 자체를 정상 프로세스와 동일하게 만드는 기법으로, T1036.011과 함께 사용하면 더욱 완벽한 위장이 가능 | 정상 프로세스 위장: svchost.exe 이름을 도용하는 공격 원리 |
| T1036.004 Masquerade Task or Service | 윈도우 환경에서 작업 스케줄러나 서비스로 위장하는 기법으로, 리눅스의 프로세스 인수 조작과 유사한 목적 | 가짜 작업·서비스: 공격자가 윈도우 시스템에 숨는 방법 |
| T1562.003 Impair Command History Logging | 공격 흔적을 지우는 기법으로, 프로세스 위장과 함께 사용하여 포렌식 분석을 더욱 어렵게 만듦 | 명령 히스토리 삭제: 공격자가 흔적을 지우는 방법 |
참고 자료
- [MITRE ATT&CK - T1036.011](https://attack.mitre.org/techniques/T1036/011/)
관련 글 더 보기
- 프로세스 트리 조작: 공격자가 부모 프로세스 추적을 차단하는 원리 | T1036.009
- Linux auditd 무력화로 흔적 남기지 않는 해킹 기법 | T1562.012
- 위장 공격(Masquerading) T1036: 12가지 파일 위장 기법과 탐지 방법
- Linux /proc 메모리 덤프: 프로세스에서 비밀번호를 추출하는 원리 | T1003.007
- 계정명 위장 공격: 공격자가 admin, backup 이름으로 탐지를 우회하는 원리 | T1036.010
- 소프트웨어 공급망 침해: 한 번 감염으로 수백만 피해자를 만드는 원리 | T1195.002
- 브라우저 핑거프린트 위조: 공격자가 네트워크 탐지를 우회하는 원리 | T1036.012
- Kerberos 티켓 탈취·위조: 도메인 인증을 우회하는 5가지 기법 | T1558
- Golden Ticket 공격: 도메인 전체를 영구 지배하는 Kerberos 위조 원리 | T1558.001
안내 및 법적 고지
AI 활용 안내 이 글은 AI(Claude)의 도움을 받아 작성되었으며, MITRE ATT&CK (최신 버전) 기준 정보를 포함합니다. 기술적 내용은 MITRE ATT&CK 공식 데이터를 기반으로 하며, 보안 교육 목적으로 제공됩니다.
면책 조항 본 글은 보안 인식 제고를 위한 교육 목적으로 작성되었습니다. 언급된 공격 기법을 실제로 시도하는 행위는 「정보통신망법」, 「형법」 등에 따라 처벌받을 수 있으며, 본 블로그는 이에 대한 법적 책임을 지지 않습니다.
COMMENTS (0)
댓글은 익명으로 작성되며, 삭제 비밀번호를 설정하면 본인만 삭제할 수 있습니다. 비밀번호를 설정하지 않은 댓글은 누구나 삭제할 수 있습니다.