Linux 로그 경로 정리 · 26/50 · Part 3. Ubuntu / Debian 로그 경로

선행 학습 → 22. /var/log/auth.log 분석 · 기초 30. Linux 명령어를 활용한 보안 점검
이번 글 → apt와 dpkg 로그 분석
이어서 → 27. Ubuntu 로그 경로 종합 정리

1. 들어가며

권한을 얻은 공격자는 종종 도구를 설치합니다 — nmap 으로 내부 스캔, socat/netcat 으로 터널, masscan, proxychains, 컴파일을 위한 gcc. 패키지 로그는 이런 행위를 누가(Requested-By), 언제, 무엇을 설치했는지 명확히 남기는 좋은 증거입니다.

핵심 요약

  • /var/log/apt/history.log : apt 명령 단위 (Commandline, Requested-By, Install/Remove)
  • /var/log/apt/term.log : 설치 중 터미널 출력
  • /var/log/dpkg.log : 패키지 상태 변화 (apt 외 dpkg -i 설치도 기록)
  • RHEL 대응: /var/log/dnf.log, dnf.rpm.log, dnf history

2. 핵심 개념

로그기록 단위강점약점
apt/history.logapt 트랜잭션명령줄·요청자(sudo 사용자)dpkg -i 직접 설치는 없음
apt/term.log트랜잭션 출력설치 스크립트 메시지양이 많음
dpkg.log패키지 상태모든 설치 경로 포함요청자 정보 없음

3. 로그 생성 구조

패키지 설치 흔적의 두 로그

sudo apt install nmap ──▶ apt ──▶ history.log (Start-Date, Commandline, Requested-By, Install)
                           │   └─▶ term.log
                           └─▶ dpkg ──▶ dpkg.log (install / status half-installed / installed)
dpkg -i ./tool.deb ─────────────▶ dpkg ──▶ dpkg.log only  (history.log 없음 → 우회 설치 탐지 포인트)
make install / pip / 바이너리 복사 ─▶ 패키지 로그 없음 → audit EXECVE, 파일 시각으로 확인

4. 실제 로그 경로

/var/log/apt/history.log[.N.gz]
/var/log/apt/term.log[.N.gz]
/var/log/dpkg.log[.N.gz]
/var/lib/dpkg/info/<pkg>.list      패키지가 설치한 파일 목록
(RHEL) /var/log/dnf.log, /var/log/dnf.rpm.log, dnf history

5. 명령어 실습

H=/var/log/apt/history.log; D=/var/log/dpkg.log

# 1) 누가 무엇을 설치했나 (순환 포함)
zgrep -hE '^(Start-Date|Commandline|Requested-By|Install|Remove):' $H* | head -40

# 2) 요청자별 트랜잭션 수
zgrep -h '^Requested-By:' $H* | sort | uniq -c | sort -rn

# 3) dpkg 에만 있고 apt history 에 없는 설치 (dpkg -i 직접 설치 후보)
zgrep -h ' install ' $D* | awk '{print $4}' | cut -d: -f1 | sort -u > /tmp/dpkg_inst.txt
zgrep -h '^Install:' $H* | tr ',' '\n' | grep -oE '[a-z0-9.+-]+:' | tr -d ':' | sort -u > /tmp/apt_inst.txt
comm -23 /tmp/dpkg_inst.txt /tmp/apt_inst.txt

# 4) 공격 도구 키워드
zgrep -hE ' install .*(nmap|masscan|netcat|ncat|socat|proxychains|hydra|john|tcpdump|gcc)' $D*

# (RHEL) 동등 확인
# dnf history list | head ; dnf history info <ID> ; grep -E 'Installed|Erased' /var/log/dnf.rpm.log

6. 로그 예시

실제 실행 결과 — Ubuntu 24.04 · root@ubuntu-lab — 패키지 설치 흔적

위 이미지는 Ubuntu 24.04 실습 환경에서 패키지 설치 흔적을 실제로 조회한 결과입니다.

아래는 판단 설명용 예시 로그입니다.

[예시 로그: /var/log/apt/history.log]
Start-Date: 2026-09-20  02:18:02
Commandline: apt-get install -y nmap socat
Requested-By: deploy (1001)
Install: nmap:amd64 (7.94+git20230807.3be01efb1+dfsg-3build2), socat:amd64 (1.8.0.0-4build3)
End-Date: 2026-09-20  02:18:09

[예시 로그: /var/log/dpkg.log]
2026-09-20 02:18:05 install socat:amd64 <none> 1.8.0.0-4build3
2026-09-20 02:18:05 status installed socat:amd64 1.8.0.0-4build3

7. 로그 필드 분석

필드값해석
Start-Date02:18:02침해 세션 시간대
Commandlineapt-get install -y nmap socat-y 비대화형 → 스크립트/빠른 설치
Requested-Bydeploy (1001)sudo를 실행한 원래 사용자
Install패키지·버전스캐너 + 터널링 도구 조합

8. 보안관점

정상의심
정기 unattended-upgrades (Requested-By 없음)원격 세션 중 수동 설치
운영 도구 설치 (변경관리)스캐너·터널·크래킹 도구
apt 경유 설치dpkg -i 로만 설치된 패키지(출처 불명 .deb)
설치 후 사용 기록설치 직후 삭제(Remove/Purge) — 흔적 제거 시도

9. SOC 관점

  • Detection: Wazuh 기본 룰에 dpkg 설치/제거 이벤트 룰이 있으며(/var/log/dpkg.log 수집 시), 도구 키워드 기반 커스텀 룰을 추가할 수 있다.
  • Triage: 설치 Alert → Requested-By 계정의 로그인 출발지 확인(auth.log).
  • IOC: 설치된 패키지명·버전, 비패키지 바이너리 경로.
  • Response: 제거 전 dpkg -L <pkg> 로 설치 파일 목록 보존.

10. 실습 체크리스트

[ ] history.log / term.log / dpkg.log 역할 구분
[ ] Requested-By 로 설치 주체 확인
[ ] 순환 파일 포함 검색 (zgrep)
[ ] dpkg -i 직접 설치 후보 추출
[ ] 공격 도구 키워드 검색
[ ] RHEL dnf history 대응 방법 설명

11. 핵심 정리

  • apt history는 명령줄과 요청자를, dpkg.log는 모든 설치 경로를 기록한다.
  • Requested-By 는 sudo 이전의 실제 사용자를 알려준다.
  • dpkg에만 있는 설치는 출처 불명 패키지 설치 후보다.
  • 패키지 매니저를 거치지 않은 설치는 audit과 파일 시각으로 확인한다.
  • RHEL에서는 dnf history 와 dnf.rpm.log 가 같은 역할을 한다.

12. 다음 편 연결

구분글
◀ 이전 글25. /var/log/daemon.log 분석
▶ 다음 글27. Ubuntu 로그 경로 종합 정리
시리즈Linux 로그 경로 정리 전체 보기
선행 시리즈리눅스 시스템 기초 · 파일 · 권한 · 사용자 관리 · 서비스 · 프로세스 관리 · Linux 시스템 보안 기초
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글