102. Linux 정보 수집 — 커널 정보 확인 흔적 분석

changseop lee·5일 전

시스템 보안 · 취약점

목록 보기
102/150

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

선행 학습

1. 개념

커널 버전은 공격자에게 "어떤 커널 취약점이 통할지" 를 알려주는 핵심 정보입니다. 그래서 정찰 초기에 거의 항상 커널 버전을 확인합니다.

커널 정보 조회 경로
 uname -r / -a        → 커널 릴리스·전체 정보
 /proc/version        → 컴파일러·빌드 정보
 /proc/sys/kernel/*   → 커널 파라미터(osrelease 등)
 /etc/*-release 와 조합 → OS + 커널으로 정확한 환경 특정

관리자도 패치·호환성 확인 때 커널 버전을 보지만, 공격자는 OS·배포판·커널을 묶어 연속 조회해 공격 대상 버전을 특정하려 합니다(C01편의 연속성 원칙).

2. 왜 중요한가

  • 커널 버전 확인 자체는 무해하지만, 그 뒤에 "그 버전에 맞는 권한 상승 시도"가 이어질 수 있어, 정찰 → 상승(D영역)의 선행 신호가 됩니다.
  • 패치가 밀린 서버(A영역 024편)일수록 커널 정보 노출의 위험이 큽니다. 자산의 커널 버전·패치 상태를 알면 Alert 우선순위를 정할 수 있습니다.
  • /proc/version 직접 읽기는 uname보다 덜 흔해, 스크립트성 정찰의 단서가 됩니다.

3. 핵심 명령어 / 설정

조회남는 흔적비고
uname -a/-rexecve(comm=uname)가장 흔함
cat /proc/version/proc/version 읽기스크립트성
/proc/sys/kernel/osrelease파일 읽기우회적 조회
hostnamectlexecve, 커널+OS 함께통합 조회

4. 실습 (실습 예시)

# 커널 정보 조회 감사 (실습 예시, C01의 recon 규칙에 포함)
-w /proc/version -p r -k recon_sysinfo
-a always,exit -F arch=b64 -S execve -F path=/usr/bin/uname -F auid>=1000 -F auid!=unset -k recon_cmd

# 세션별 커널 조회 흐름 확인 (분석 방법)
sudo ausearch -k recon_sysinfo,recon_cmd -i --start recent | grep -E 'uname|/proc/version' | tail
# OS 조회와 연속됐는지 교차
sudo ausearch --session 12 -i 2>/dev/null | grep -E 'os-release|uname|version' | tail

5. 정상 상태

$ sudo ausearch -k recon_cmd -i --start today | grep uname | tail -1
14:02:11 auid=admin1 ses=8 comm="uname"   (패치 점검 중 단발)

관리자가 패치 작업·호환성 확인 중 단발로 커널 버전을 보는 것은 정상입니다(변경관리·업무 시간과 일치).

6. 이상 상태

02:11:40 auid=devops ses=12 comm="uname" a1="-a"
02:11:43 auid=devops ses=12 comm="cat" name="/proc/version"
02:11:44 auid=devops ses=12 comm="cat" name="/etc/os-release"
  • 커널(uname -a) + 빌드(/proc/version) + OS(/etc/os-release)를 3초 내 연속 조회 → 환경 특정 정찰
  • /proc/version 직접 읽기까지 포함 → 스크립트·자동화 정찰 가능성
  • 새벽·탈취 세션 → C01편의 OS 정찰과 같은 흐름

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

커널 조회가 환경 특정으로 이어지는 흐름입니다(가상의 예시 로그).

type=SYSCALL ... auid=devops ses=12 comm="uname" exe="/usr/bin/uname" key="recon_cmd"
type=EXECVE ... a0="uname" a1="-a"
type=PATH ... name="/proc/version" nametype=NORMAL
type=SYSCALL ... auid=devops ses=12 comm="cat" key="recon_sysinfo"
관찰해석
uname -a커널 릴리스·아키텍처
/proc/version 읽기빌드·컴파일러(스크립트성)
OS-release와 연속정확한 환경 특정
ses=12로그인 직후 정찰 세션

8. SOC 관제 포인트

  • 커널 조회는 OS·호스트 조회와의 연속성으로 정찰 여부를 판단합니다.
  • /proc/version 직접 읽기는 사람의 단발 조회보다 스크립트성 정찰을 시사합니다.
  • 커널 정찰 뒤 권한 상승(D영역) 시도가 이어지는지 세션으로 추적합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_c,recon,">
  <rule id="102010" level="7">
    <if_group>audit</if_group>
    <field name="audit.key">recon_sysinfo</field>
    <match>/proc/version</match>
    <description>커널 빌드 정보(/proc/version) 직접 조회</description>
    <mitre><id>T1082</id></mitre>
  </rule>
</group>

단건은 낮은 레벨로 두고, C01의 연속 조회 상관 룰(102000)과 결합해 정찰로 격상합니다.

10. 대응 방법

  1. 초기 확인 — 커널 조회의 방법(uname vs /proc)·연속성·주체를 확인합니다.
  2. 범위 확인 — 커널 정찰 뒤 권한 상승 시도(D영역)로 이어졌는지 세션으로 확인합니다.
  3. 증거 확보 — 세션 ausearch 결과와 조회 흔적을 보존합니다.
  4. 차단/조치 — 탈취 세션이면 B영역 대응과 연계하고 커널 패치 상태를 점검합니다.
  5. 재발 방지 — 커널 조회를 시스템 정보 정찰 상관에 포함해 운영합니다.

11. 핵심 정리

조회흔적 / 특징
uname -a/-rexecve, 가장 흔함
/proc/version파일 읽기, 스크립트성
hostnamectl커널+OS 통합 조회
구분단발(정상) vs OS·호스트와 연속(정찰)
면접 포인트"커널 버전 확인은 커널 취약점 선별의 선행 정찰"

12. 다음 편 예고

다음 편 103. Linux 정보 수집 — hostname·시스템 식별 정보 조회 탐지 에서는 시스템을 식별하는 hostname·시스템 식별 정보 조회 탐지를 다룹니다.


이전 편: 101. Linux 정보 수집 — Linux OS 정보 수집 흔적 식별
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글