101. Linux 정보 수집 — Linux OS 정보 수집 흔적 식별

changseop lee·5일 전

시스템 보안 · 취약점

목록 보기
101/150

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

선행 학습

1. 개념

B영역이 "어떻게 들어왔나(인증)"였다면, C영역은 "들어와서 무엇을 살펴보는가(정찰)" 입니다. 공격자는 로그인 직후 "여기가 어떤 시스템인가"를 파악하려 OS·커널·호스트 정보를 수집합니다. 이 글들은 명령어 사용법이 아니라, 그 수집 행위가 남기는 흔적을 탐지하는 데 초점을 둡니다.

로그인(B영역)
    ↓
시스템 정보 수집 ← C영역 (정찰, reconnaissance)
    ↓
권한 변경·지속성·확산 (D~I영역)

정찰의 특징
 - 여러 정보를 "짧은 시간에 연속으로" 조회
 - 결과를 보기만 하고 변경은 적음(읽기 위주)
 - 정상 관리와 명령은 같지만 맥락(시점·빈도·주체)이 다름

핵심 난제: 정찰에 쓰는 명령(uname, cat /etc/os-release 등)은 관리자도 매일 쓰는 정상 명령입니다. 그래서 C영역은 "명령 자체"가 아니라 "연속성·시점·주체" 로 정상과 정찰을 구분합니다.

2. 왜 중요한가

  • 정찰은 공격의 초기 단계라, 여기서 탐지하면 권한 상승·확산 이전에 대응할 수 있습니다(조기 탐지).
  • 개별 명령은 정상이라 단건으로는 못 잡습니다. 여러 조회의 연속 패턴을 봐야 합니다.
  • 기존 linsec는 "명령 사용법"을 다뤘으므로, 여기서는 그 명령이 로그·auditd·히스토리에 남기는 흔적과 탐지만 다룹니다(중복 회피).

3. 핵심 명령어 / 설정

수집 대상대표 조회 방법흔적이 남는 곳
OS 배포판/etc/os-release, /etc/*-release 읽기auditd 파일 접근, shell history
커널uname -a, /proc/versionexecve, 파일 접근
호스트hostname, /etc/hostnameexecve, 파일 접근
전반여러 조회의 연속세션 단위 명령 흐름

정찰 탐지의 전제: execve 감사(명령 실행)와 파일 접근 감사(민감 파일 읽기), 그리고 세션(ses) 단위 묶기(B영역 038편)가 필요합니다.

4. 실습 (실습 예시)

# 정찰 탐지를 위한 기반 감사 규칙 (실습 예시 — /etc/audit/rules.d/50-recon.rules)
# 시스템 식별 파일 읽기 감시
-w /etc/os-release -p r -k recon_sysinfo
-w /etc/hostname   -p r -k recon_sysinfo
-w /proc/version   -p r -k recon_sysinfo
# 정찰에 자주 쓰는 명령 실행 감시 (execve, 사람 세션 한정)
-a always,exit -F arch=b64 -S execve -F path=/usr/bin/uname -F auid>=1000 -F auid!=unset -k recon_cmd
-a always,exit -F arch=b64 -S execve -F path=/usr/bin/hostnamectl -F auid>=1000 -F auid!=unset -k recon_cmd

# 적용 후 한 세션의 정찰성 조회 흐름 확인 (분석 방법)
sudo ausearch -k recon_sysinfo,recon_cmd -i --start recent | grep -E 'type=SYSCALL' | tail

-p r(읽기 감시)는 이벤트가 많이 발생할 수 있어, 운영에서는 사람 세션(auid) 과 빈도 조건으로 좁힙니다(146·147편).

5. 정상 상태

$ sudo ausearch -k recon_sysinfo,recon_cmd -i --start today | grep SYSCALL | tail -3
type=SYSCALL ... auid=admin1 ses=8 comm="uname" exe="/usr/bin/uname" key="recon_cmd"

관리자가 업무 중 단발성으로 uname을 한 번 실행하는 정도는 정상입니다. 정찰과의 차이는 "여러 종류를 짧은 시간에 연속" 하는지입니다.

6. 이상 상태

$ sudo ausearch -k recon_sysinfo,recon_cmd -i --start recent | grep -E 'comm=' | tail
02:11:40 auid=devops ses=12 comm="uname"        (커널)
02:11:42 auid=devops ses=12 comm="cat" name="/etc/os-release"  (OS)
02:11:45 auid=devops ses=12 comm="hostnamectl"  (호스트)
02:11:48 auid=devops ses=12 comm="cat" name="/etc/hostname"
  • 한 세션(ses=12)에서 8초 내 서로 다른 시스템 정보 4종 연속 조회 → 정찰 패턴
  • 같은 명령이라도 관리자의 단발 사용과 달리, 연속·집중·새벽이 결합
  • ses=12는 B영역 탈취 세션(devops) → 로그인 직후 정찰로 이어진 흐름

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

정찰은 세션 단위로 묶어야 흐름이 보입니다(가상의 예시 로그).

type=EXECVE msg=audit(...): argc=2 a0="uname" a1="-a"
type=SYSCALL ... auid=devops uid=devops ses=12 comm="uname" key="recon_cmd"
type=PATH ... name="/etc/os-release" nametype=NORMAL
type=SYSCALL ... auid=devops ses=12 comm="cat" key="recon_sysinfo"
필드분석 포인트
ses=12같은 세션으로 조회를 묶는 기준
auid=devops실제 행위자(B영역 탈취 계정)
comm/name무엇을 조회했나
시간 간격수 초 간격 연속 = 자동화·스크립트 가능성

shell history(~/.bash_history)도 보조 자료지만 조작·비활성화될 수 있어, auditd를 1차 근거로 삼습니다.

8. SOC 관제 포인트

  • 정찰 탐지는 명령 단건이 아니라 세션 내 연속 조회를 봅니다.
  • OS·커널·호스트 조회가 로그인 직후 집중되면 정찰로 의심합니다.
  • 기준선(관리자의 평소 조회 패턴, 102·110편)과 비교해 정상/정찰을 구분합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_c,recon,">
  <!-- 한 세션에서 정찰성 조회가 짧은 시간에 반복 -->
  <rule id="102000" level="9" frequency="5" timeframe="60">
    <if_group>audit</if_group>
    <field name="audit.key">recon_sysinfo|recon_cmd</field>
    <description>단시간 내 시스템 정보 수집 반복(정찰 의심)</description>
    <mitre><id>T1082</id></mitre>
  </rule>
</group>

C영역 Wazuh 커스텀 룰은 102000번대를 씁니다. T1082(System Information Discovery)에 매핑됩니다. 빈도·세션 묶음 조건은 wazuh-logtest로 검증 후 조정합니다.

10. 대응 방법

  1. 초기 확인 — 정찰 세션의 조회 대상·시각·주체(auid·ses)를 확인합니다.
  2. 범위 확인 — 정찰 직후 이어진 행위(네트워크 조회 C111~, 권한 조회 C121~)를 확인합니다.
  3. 증거 확보 — 세션 단위 ausearch 결과와 관련 인증 로그를 보존합니다.
  4. 차단/조치 — 탈취 의심 세션이면 B영역 대응(세션 종료·계정 조치)과 연계합니다.
  5. 재발 방지 — 정찰 기준선과 세션 단위 연속 조회 탐지 룰을 운영합니다.

11. 핵심 정리

구분핵심 내용
C영역 초점명령 사용법이 아니라 정찰 흔적 탐지
정찰 특징짧은 시간 연속 조회, 읽기 위주, 로그인 직후
구분 기준명령이 아니라 연속성·시점·주체
기반execve·파일 접근 감사 + 세션(ses) 묶기
면접 포인트"정찰 명령은 정상 명령과 같다 — 맥락(연속·시점·주체)으로 구분"

12. 다음 편 예고

다음 편 102. Linux 정보 수집 — 커널 정보 확인 흔적 분석 에서는 가장 흔한 정찰 중 하나인 커널 정보 확인 흔적 분석을 다룹니다.


이전 편: 100. 계정 · 인증 보안 — 인증 이상 징후 종합 분석
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글