386. 방어 회피·흔적 삭제 — 컨테이너·네임스페이스 은닉 탐지

changseop lee·2026년 10월 8일

시스템 보안 · 취약점

목록 보기
386/450

시스템 보안 · 취약점 › H. 방어 회피 · 흔적 삭제 징후 · 36/50편 (전체 386/450)
학습 단계: 위장·난독화·흔적 분석
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

공격자는 Linux 네임스페이스·컨테이너를 이용해 활동을 호스트의 일반 관점에서 숨깁니다. 별도 PID·마운트·네트워크 네임스페이스 안에서 실행하면 호스트의 ps·일반 도구에 다르게 보이거나 격리되어 보입니다.

컨테이너·네임스페이스 은닉
 PID 네임스페이스: 별도 PID 공간(격리)
 마운트 은닉: 네임스페이스 내 마운트(호스트 미표시)
 네트워크 NS: 격리된 네트워크 스택
 unshare/nsenter: 네임스페이스 생성·진입
 특징: 호스트 일반 도구로는 부분 가시성

탐지: unshare·nsenter·비정상 컨테이너, /proc 네임스페이스 비교

핵심은 "격리를 은닉에 악용한다"는 점입니다. unshare·nsenter 호출, 비정상 컨테이너 생성, /proc의 네임스페이스 비교가 탐지 포인트입니다.

2. 왜 중요한가

  • 네임스페이스·컨테이너는 격리 기능이지만 활동 은닉에 악용될 수 있습니다.
  • 별도 네임스페이스 내 프로세스·마운트·연결은 호스트 일반 도구에 부분만 보입니다.
  • unshare·nsenter 호출과 /proc 네임스페이스 비교로 은닉을 포착합니다.

3. 핵심 명령어 / 설정

은닉방식탐지
PID NS별도 PID 공간/proc/*/ns
마운트 NS격리 마운트ns 비교
네트워크 NS격리 스택ip netns
unshare/nsenterNS 생성·진입명령 감사
정상 컨테이너관리 도구오케스트레이터

4. 실습 (실습 예시)

# 컨테이너·네임스페이스 은닉 탐지 (분석 방법)
# unshare·nsenter 호출(수동 네임스페이스 조작)
sudo ausearch -k proc_exec -i --start recent 2>/dev/null | grep -E 'unshare|nsenter' | tail
# 프로세스별 네임스페이스 비교(호스트와 다른 NS)
for p in /proc/[0-9]*; do ns=$(readlink $p/ns/pid 2>/dev/null); echo "$ns"; done 2>/dev/null | sort | uniq -c | sort -rn | head
# 정식 오케스트레이터 외 컨테이너 런타임 호출
sudo ausearch -k proc_exec -i --start recent 2>/dev/null | grep -E 'runc|containerd-shim|docker run' | tail

5. 정상 상태

$ (unshare/nsenter) (없음 또는 관리 목적)
$ (네임스페이스) 정상 컨테이너 NS만
$ (런타임) 오케스트레이터 관리발

unshare·nsenter가 관리 목적으로만 쓰이고, 네임스페이스가 정식 컨테이너의 것뿐이며, 런타임이 오케스트레이터로만 호출되는 상태가 정상입니다.

6. 이상 상태

$ (unshare/nsenter)
unshare -m -p -f /tmp/.x (수동 네임스페이스로 은닉 실행)
nsenter -t 1 -m -p (호스트 네임스페이스 진입 — 탈출)
$ (네임스페이스)
PID의 ns/pid가 알 수 없는 네임스페이스(오케스트레이터 외)
  • unshare로 격리 실행 → 호스트 ps에서 가시성 저하
  • nsenter -t 1 → 호스트 네임스페이스 진입(컨테이너 탈출 연계)
  • 수동 네임스페이스 조작·비정상 NS → 컨테이너 은닉 → 정탐

7. 로그 분석 (분석 방법)

컨테이너·네임스페이스 은닉 분석입니다(가상의 예시).

[공격자]
 unshare -p -m -f 로 별도 네임스페이스 실행
 → 호스트 ps에서 프로세스·마운트 숨김
 또는 nsenter로 호스트/다른 컨테이너 진입
      ↕ (탐지)
[분석가]
 unshare/nsenter 명령 자체 감사 포착
 /proc/*/ns 비교 → 비정상 네임스페이스 발견
 오케스트레이터 외 런타임 호출 → 수동 조작
   ↓
= 격리를 은닉에 써도 조작 명령·NS 메타는 남음 → 정탐
관점은닉탐지
프로세스별도 PID NSns 비교
조작unshare/nsenter명령 감사
런타임비정상 호출계보

네임스페이스 조작 감사 + /proc NS 비교가 핵심입니다.

8. SOC 관제 포인트

  • 컨테이너·네임스페이스 은닉(T1610·T1611)은 격리 기능을 악용해 활동을 숨깁니다.
  • 별도 네임스페이스 내 프로세스·마운트·연결은 호스트 일반 도구에 부분만 보입니다.
  • unshare·nsenter 감사와 /proc 네임스페이스 비교, 비정상 런타임 호출로 탐지합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_h,defense_evasion,">
  <rule id="107350" level="13">
    <if_sid>107000</if_sid>
    <field name="audit.proctitle" type="pcre2">\bunshare\b.*(-p|-m|-f)|\bnsenter\b.*-t\s*1</field>
    <description>수동 네임스페이스 조작(unshare/nsenter, 컨테이너 은닉·탈출)</description>
    <mitre><id>T1610</id><id>T1611</id></mitre>
  </rule>
</group>

정식 오케스트레이터가 생성하는 네임스페이스를 기준선화하고, 수동 unshare·nsenter·비정상 런타임 호출을 탐지합니다. 컨테이너 런타임 로그와 교차합니다.

10. 대응 방법

  1. 초기 확인 — unshare·nsenter 호출과 비정상 네임스페이스·런타임을 확인합니다.
  2. 범위 확인 — 수동 격리 실행·호스트 네임스페이스 진입(탈출)을 확인합니다.
  3. 증거 확보 — 네임스페이스 조작 명령·NS 메타·런타임 계보를 보존합니다.
  4. 차단/조치 — 컨테이너 은닉 정탐이면 네임스페이스 내 활동 분석·탈출 여부 조사를 진행합니다.
  5. 재발 방지 — 컨테이너·네임스페이스 은닉 탐지를 운영합니다.

11. 핵심 정리

은닉방식
PID NS별도 PID 공간
마운트 NS격리 마운트
네트워크 NS격리 스택
unshare/nsenterNS 생성·진입
면접 포인트"격리를 은닉에 악용 — unshare/nsenter 감사+/proc NS 비교로 탐지"

12. 다음 편 예고

다음 편 387. 방어 회피·흔적 삭제 — 시간 기반 회피(지연·간헐 실행) 탐지 에서는 시간 기반 회피를 다루는 시간 기반 회피(지연·간헐 실행) 탐지를 다룹니다.


이전 편: 385. 방어 회피·흔적 삭제 — 서명·신뢰 관계 악용 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글