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

선행 학습

1. 개념

서비스 목록 조회는 공격자가 "어떤 서비스가 돌고, 어디에 기생·등록할 수 있는가" 를 파악하는 정찰입니다. 프로세스(C31)가 "지금 돌고 있는 것"이라면, 서비스 목록은 등록된 구성·자동 시작까지 보여줍니다.

서비스 조회
 systemctl list-units --type=service   → 실행 중 서비스
 systemctl list-unit-files             → 자동 시작 포함 전체(A영역 13편)
 systemctl status 서비스               → 특정 서비스 상세
 service --status-all                  → (구형) 서비스 상태

목적: 공격 표면(DB·웹), 보안 서비스(wazuh·auditd), 지속성 등록 대상(systemd, C35) 파악

A영역 13편이 "불필요한 서비스 식별"(방어)이라면, 여기서는 공격자가 서비스 구성을 조회하는 정찰입니다.

2. 왜 중요한가

  • 서비스 목록으로 공격자는 공격 표면(DB·웹)과 보안 서비스를 함께 파악합니다(C31 프로세스 정찰 보완).
  • systemd 서비스 구조를 알면, 악성 서비스 등록(C35·F영역 지속성)의 위장 대상을 고릅니다.
  • 보안 서비스(wazuh·auditd) 상태 조회는 C31과 함께 탐지 회피 준비 신호입니다.

3. 핵심 명령어 / 설정

조회정보
systemctl list-units --type=service실행 중 서비스
systemctl list-unit-files자동 시작 포함 전체
systemctl status 서비스특정 서비스
service --status-all(구형) 상태

4. 실습 (실습 예시)

# 서비스 조회 감사 (실습 예시)
-a always,exit -F arch=b64 -S execve -F path=/usr/bin/systemctl -F auid>=1000 -F auid!=unset -k recon_svc

# 세션에서 서비스 조회 흐름 (분석 방법) — 보안 서비스 조회 포함 여부
sudo ausearch -k recon_svc -i --start recent | grep -E 'systemctl|list-unit' | tail
sudo ausearch --session 12 -i 2>/dev/null | grep -iE 'systemctl.*(status|list)|wazuh|auditd' | tail

5. 정상 상태

$ sudo ausearch -k recon_svc -i --start today | grep systemctl | tail -1
10:00:02 auid=admin1 ses=8 comm="systemctl" (status httpd)  (서비스 점검)

관리자가 서비스 상태를 점검·관리하는 systemctl status/list는 매우 흔하고 정상입니다. 차이는 전수 조회·보안 서비스 조준입니다.

6. 이상 상태

02:15:40 auid=devops ses=12 comm="systemctl" (list-unit-files)
02:15:43 auid=devops ses=12 comm="systemctl" (status wazuh-agent)
02:15:45 auid=devops ses=12 comm="systemctl" (status auditd)
  • 전체 서비스(list-unit-files) + 보안 서비스(wazuh·auditd) 상태 조회 → 공격 표면·보안 서비스 파악
  • 보안 서비스 조회(C31 프로세스 정찰과 중복 확인) → 탐지 회피 준비
  • 이후 systemd 서비스 정보(C35)·악성 서비스 등록(F영역)으로 이어질 수 있음

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

서비스 정찰 흐름입니다(가상의 예시 로그).

type=EXECVE ... a0="systemctl" a1="list-unit-files"
type=SYSCALL ... auid=devops ses=12 comm="systemctl" key="recon_svc"
type=EXECVE ... a0="systemctl" a1="status" a2="wazuh-agent"
관찰해석
list-unit-files전체 서비스·자동 시작
status wazuh/auditd보안 서비스 조준
전수+보안 조회공격 표면+회피 준비
ses=12서비스 정찰

보안 서비스 조회 직후 중지(A영역 39편)·악성 서비스 등록(F영역)이 이어지는지 연계합니다.

8. SOC 관제 포인트

  • 서비스 목록 조회 중 보안 서비스 조준은 C31과 함께 회피 준비로 봅니다.
  • 전체 서비스 전수 조회는 공격 표면·지속성 등록 대상 파악 정찰입니다.
  • 서비스 정찰 뒤 systemd 정보(C35)·악성 등록(F영역)을 연계 감시합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_c,recon,">
  <rule id="102330" level="7">
    <if_group>audit</if_group>
    <field name="audit.key">recon_svc</field>
    <regex type="pcre2">list-unit|status.*(wazuh|auditd|falco)</regex>
    <description>서비스 구성·보안 서비스 조회</description>
    <mitre><id>T1518.001</id></mitre>
  </rule>
</group>

보안 서비스 조회는 C31(프로세스)과 함께 회피 탐지 상관에, 전체 조회는 프로세스 정찰 세트(140편)에 포함합니다.

10. 대응 방법

  1. 초기 확인 — 서비스 조회의 범위(전수/특정)·보안 서비스 포함 여부·주체를 확인합니다.
  2. 범위 확인 — 보안 서비스 조회 뒤 중지(A영역 39편)·악성 등록(F영역)이 이어졌는지 확인합니다.
  3. 증거 확보 — 세션 조회 흐름을 보존합니다.
  4. 차단/조치 — 탈취 세션이면 B영역 대응과 서비스·보안 솔루션 점검을 진행합니다.
  5. 재발 방지 — 서비스 정찰을 회피·프로세스 정찰 상관에 포함합니다.

11. 핵심 정리

조회정보
list-unit-files전체·자동 시작
status 보안서비스회피 준비
service --status-all(구형) 상태
구분서비스 관리(정상) vs 전수·보안 서비스 조회(정찰)
면접 포인트"서비스 전수 조회는 공격 표면+지속성 등록 대상 파악"

12. 다음 편 예고

다음 편 135. Linux 정보 수집 — systemd 서비스 정보 수집 에서는 systemd 구조 정찰인 systemd 서비스 정보 수집을 다룹니다.


이전 편: 133. Linux 정보 수집 — 실행 파일 경로 확인
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글