시스템 보안 · 취약점 › C. Linux 정보 노출 및 수집 · 35/50편 (전체 135/450)
학습 단계: 프로세스·서비스·파일 정보 수집
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

서비스 목록(C34)보다 깊게, systemd 유닛 파일의 구조·경로를 조회하는 정찰입니다. 공격자는 유닛 파일이 어디에 있고(/etc/systemd/system), 어떻게 작성되는지 파악해 악성 유닛 등록(지속성, F영역) 위치를 물색합니다.

systemd 구조 조회
 systemctl cat 서비스        → 유닛 파일 내용(작성 예시 학습)
 ls /etc/systemd/system/     → 유닛 파일 위치
 systemctl list-unit-files   → 유닛 파일 목록
 ~/.config/systemd/user/     → 사용자 유닛(B영역 40편)

목적: 악성 유닛을 어디에·어떻게 등록할지 파악 (지속성 준비)

A영역 27편(systemd 보안 옵션)·linsec 30편(악성 systemd 탐지)이 방어라면, 여기서는 공격자가 등록 위치·방법을 조회하는 정찰입니다.

2. 왜 중요한가

  • systemd 유닛 등록은 대표적 지속성 수단(F영역)입니다. 공격자는 기존 유닛을 참고해 정상처럼 보이는 악성 유닛을 만듭니다.
  • 사용자 유닛(~/.config/systemd/user)·linger(B영역 40편) 경로 조회는 일반 권한 지속성 준비입니다.
  • systemd 구조 정찰 뒤 유닛 파일 생성(F영역)이 이어지면 지속성 확보로 판정합니다.

3. 핵심 명령어 / 설정

조회정보
systemctl cat 서비스유닛 내용(작성 학습)
ls /etc/systemd/system/유닛 위치
systemctl list-unit-files유닛 목록
~/.config/systemd/user/사용자 유닛(B영역 40편)

4. 실습 (실습 예시)

# systemd 구조 조회 감사 (실습 예시)
-w /etc/systemd/system -p r -k recon_svc
-a always,exit -F arch=b64 -S execve -F path=/usr/bin/systemctl -F a1="cat" -k recon_svc

# 세션에서 유닛 구조 조회 (분석 방법)
sudo ausearch -k recon_svc -i --start recent | grep -E 'systemd/system|a1="cat"' | tail

5. 정상 상태

$ sudo ausearch -k recon_svc -i --start today | grep 'systemd/system' | tail -1
10:10:02 auid=admin1 ses=8 comm="systemctl" a1="cat"  (유닛 점검)

관리자가 서비스 유닛을 점검·수정하며 systemctl cat을 보는 것은 정상입니다(A영역 27편 점검 포함).

6. 이상 상태

02:15:50 auid=devops ses=12 comm="systemctl" a1="cat" a2="httpd"
02:15:52 auid=devops ses=12 comm="ls" (대상 /etc/systemd/system/)
  • 정상 유닛(systemctl cat httpd) 내용 확인 + 유닛 디렉터리 조회 → 악성 유닛 작성 준비
  • 기존 유닛을 참고해 정상처럼 위장한 유닛 생성(A영역 13·27편·F영역) 가능성
  • 서비스 목록(C34)에 이어 등록 위치·방법 정찰 → 지속성 준비

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

systemd 구조 정찰 → 지속성 준비 흐름입니다(가상의 예시 로그).

type=EXECVE ... a0="systemctl" a1="cat" a2="httpd"
type=SYSCALL ... auid=devops ses=12 comm="systemctl" key="recon_svc"
type=PATH ... name="/etc/systemd/system/" nametype=NORMAL
[이후 가능] /etc/systemd/system/<악성>.service 생성 (A영역 13편 100200, F영역)
관찰해석
systemctl cat유닛 작성 학습
ls /etc/systemd/system등록 위치
이후 유닛 생성지속성(F영역)
ses=12지속성 정찰

유닛 조회 직후 유닛 파일 생성(A영역 13편 100200)이 나타나면 지속성 확보로 연계 탐지합니다.

8. SOC 관제 포인트

  • systemd 구조 조회는 악성 유닛 등록 위치·방법 물색 관점으로 봅니다.
  • 유닛 조회 직후 유닛 파일 생성(A영역 13편·F영역)이 이어지는지 연계합니다.
  • 사용자 유닛·linger(B영역 40편) 경로 조회는 일반 권한 지속성 준비로 봅니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_c,recon,">
  <rule id="102340" level="7">
    <if_group>audit</if_group>
    <field name="audit.key">recon_svc</field>
    <regex type="pcre2">a1="cat"|/etc/systemd/system</regex>
    <description>systemd 유닛 구조 조회(지속성 등록 정찰)</description>
    <mitre><id>T1543.002</id></mitre>
  </rule>
</group>

T1543.002(Systemd Service)에 매핑됩니다. 유닛 조회 + 생성(A영역 13편 100200)을 상관하면 지속성 준비→확보를 포착합니다.

10. 대응 방법

  1. 초기 확인 — systemd 구조 조회의 대상·주체와 이후 유닛 생성 여부를 확인합니다.
  2. 범위 확인 — 유닛 조회 직후 악성 유닛 등록(A영역 13편·F영역)이 이어졌는지 확인합니다.
  3. 증거 확보 — 세션 조회 흐름과 유닛 디렉터리 상태를 보존합니다.
  4. 차단/조치 — 탈취 세션이면 B영역 대응과 유닛 디렉터리 FIM 점검을 진행합니다.
  5. 재발 방지 — systemd 정찰을 지속성 상관에 포함합니다.

11. 핵심 정리

조회정보
systemctl cat유닛 작성 학습
ls /etc/systemd/system등록 위치
사용자 유닛 경로일반 권한 지속성
구분유닛 점검(정상) vs 등록 위치·방법 물색(정찰)
면접 포인트"기존 유닛 조회는 정상처럼 위장한 악성 유닛 작성의 준비"

12. 다음 편 예고

다음 편 136. Linux 정보 수집 — cron 관련 정보 수집 에서는 예약 작업 지속성 정찰인 cron 관련 정보 수집을 다룹니다.


이전 편: 134. Linux 정보 수집 — 서비스 목록 조회
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글