시스템 보안 · 취약점 › C. Linux 정보 노출 및 수집 · 2/50편 (전체 102/450)
학습 단계: 시스템·OS 정보 수집
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
커널 버전은 공격자에게 "어떤 커널 취약점이 통할지" 를 알려주는 핵심 정보입니다. 그래서 정찰 초기에 거의 항상 커널 버전을 확인합니다.
커널 정보 조회 경로
uname -r / -a → 커널 릴리스·전체 정보
/proc/version → 컴파일러·빌드 정보
/proc/sys/kernel/* → 커널 파라미터(osrelease 등)
/etc/*-release 와 조합 → OS + 커널으로 정확한 환경 특정
관리자도 패치·호환성 확인 때 커널 버전을 보지만, 공격자는 OS·배포판·커널을 묶어 연속 조회해 공격 대상 버전을 특정하려 합니다(C01편의 연속성 원칙).
/proc/version 직접 읽기는 uname보다 덜 흔해, 스크립트성 정찰의 단서가 됩니다.| 조회 | 남는 흔적 | 비고 |
|---|---|---|
uname -a/-r | execve(comm=uname) | 가장 흔함 |
cat /proc/version | /proc/version 읽기 | 스크립트성 |
/proc/sys/kernel/osrelease | 파일 읽기 | 우회적 조회 |
hostnamectl | execve, 커널+OS 함께 | 통합 조회 |
# 커널 정보 조회 감사 (실습 예시, 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
$ sudo ausearch -k recon_cmd -i --start today | grep uname | tail -1
14:02:11 auid=admin1 ses=8 comm="uname" (패치 점검 중 단발)
관리자가 패치 작업·호환성 확인 중 단발로 커널 버전을 보는 것은 정상입니다(변경관리·업무 시간과 일치).
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 직접 읽기까지 포함 → 스크립트·자동화 정찰 가능성커널 조회가 환경 특정으로 이어지는 흐름입니다(가상의 예시 로그).
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 | 로그인 직후 정찰 세션 |
/proc/version 직접 읽기는 사람의 단발 조회보다 스크립트성 정찰을 시사합니다.<!-- 실습 예시 룰: 적용 전 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)과 결합해 정찰로 격상합니다.
| 조회 | 흔적 / 특징 |
|---|---|
| uname -a/-r | execve, 가장 흔함 |
| /proc/version | 파일 읽기, 스크립트성 |
| hostnamectl | 커널+OS 통합 조회 |
| 구분 | 단발(정상) vs OS·호스트와 연속(정찰) |
| 면접 포인트 | "커널 버전 확인은 커널 취약점 선별의 선행 정찰" |
다음 편 103. Linux 정보 수집 — hostname·시스템 식별 정보 조회 탐지 에서는 시스템을 식별하는 hostname·시스템 식별 정보 조회 탐지를 다룹니다.
이전 편: 101. Linux 정보 수집 — Linux OS 정보 수집 흔적 식별
📚 시리즈 전체 보기: 시스템 보안 · 취약점