144. Linux 정보 수집 — 애플리케이션 로그 접근

changseop lee·5일 전

시스템 보안 · 취약점

목록 보기
144/150

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

선행 학습

1. 개념

애플리케이션 로그(웹 access/error, DB, 앱 로그)는 시스템 로그보다 민감한 운영 데이터를 담기도 합니다: URL에 담긴 토큰·세션ID, 사용자 활동, 쿼리, 오류 스택(경로·버전). 공격자는 여기서 추가 자격증명·공격 표면을 수집합니다.

앱 로그 접근
 cat /var/log/httpd/access_log  → 요청 URL(토큰·파라미터)
 cat /var/log/httpd/error_log   → 오류(경로·스택·버전)
 cat /var/log/mysql/*.log       → DB 로그(쿼리·연결)
 앱 자체 로그(/var/www/.../logs) → 앱 활동·세션

위험: access_log의 URL 토큰·세션ID, error_log의 경로·버전 노출

C39(설정 파일)가 "설정의 자격증명"이라면, 여기서는 "로그에 흘러든 민감 데이터"입니다. 웹 보안 영역(기존 웹 300편)과도 연결됩니다.

2. 왜 중요한가

  • access_log의 URL에 토큰·세션ID·API 키가 GET 파라미터로 남으면(앱 취약점), 공격자가 그대로 탈취합니다.
  • error_log의 스택 트레이스는 내부 경로·프레임워크 버전·DB 구조를 드러내 추가 공격 표면이 됩니다.
  • 앱 로그 접근은 서비스 계정(apache)·침입 계정이 하며, 자기 웹 공격 흔적 확인에도 쓰입니다.

3. 핵심 명령어 / 설정

조회민감 정보
access_logURL 토큰·세션·파라미터
error_log경로·스택·버전
DB 로그쿼리·연결
앱 로그세션·활동

4. 실습 (실습 예시)

# 앱 로그 접근 감사 (실습 예시)
-w /var/log/httpd -p r -k recon_log
-w /var/log/nginx -p r -k recon_log
-w /var/log/mysql -p r -k recon_log

# 앱 로그 접근 패턴 (분석 방법)
sudo ausearch -k recon_log -i --start recent | grep -E 'access_log|error_log|mysql|httpd|nginx' | tail

5. 정상 상태

$ sudo ausearch -k recon_log -i --start today | grep access_log | tail -1
10:50:02 auid=admin1 ses=8 comm="tail" name="/var/log/httpd/access_log"  (트래픽 점검)

관리자가 웹 트래픽·오류를 점검하는 것은 정상입니다. 공격자는 토큰·세션 검색, 서비스 계정의 로그 열람이 특징입니다.

6. 이상 상태

02:17:30 auid=devops ses=12 comm="grep" (token /var/log/httpd/access_log)
02:17:33 auid=devops ses=12 comm="cat" name="/var/log/httpd/error_log"
  • access_log에서 token 검색 → URL에 노출된 토큰·세션ID 탈취 시도
  • error_log 열람 → 내부 경로·버전·DB 구조 수집(추가 공격 표면)
  • 설정(C39)·앱 로그(C44)에서 자격증명·토큰 수집 → E영역 접근 준비

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

앱 로그 정찰 흐름입니다(가상의 예시 로그 — 토큰 값은 가림).

type=EXECVE ... a0="grep" a1="token" a2="/var/log/httpd/access_log"
type=SYSCALL ... auid=devops ses=12 comm="grep" key="recon_log"
[access_log 예시 - 민감값 마스킹]
192.168.56.50 - - [02/Oct/2026:01:00:00] "GET /api?token=<masked> HTTP/1.1" 200
관찰해석
grep token access_log토큰·세션 탈취
cat error_log경로·버전 수집
서비스 계정 열람비정상 접근
ses=12앱 로그 정찰

로그에서 토큰·세션을 다룰 때는 값을 마스킹해 분석하고, 보고서에 원문을 남기지 않습니다.

8. SOC 관제 포인트

  • 앱 로그 접근 중 토큰·세션·자격증명 검색을 정찰로 봅니다(값은 마스킹 분석).
  • URL에 토큰이 평문으로 남는 앱 설계 문제는 웹 보안 영역과 함께 시정합니다.
  • 앱 로그에서 얻은 토큰·세션 악용(E영역·세션 재사용)을 연계 감시합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_c,recon,credential,">
  <rule id="102430" level="8">
    <if_group>audit</if_group>
    <field name="audit.key">recon_log</field>
    <regex type="pcre2">(access_log|error_log|/var/log/(httpd|nginx|mysql))</regex>
    <description>애플리케이션 로그 접근(토큰·세션 수집 정찰)</description>
    <mitre><id>T1552.001</id></mitre>
  </rule>
</group>

앱 로그에서 토큰 검색은 자격증명 수집으로 분류하고, E영역·웹 보안 영역과 연계합니다.

10. 대응 방법

  1. 초기 확인 — 앱 로그 접근의 대상(토큰·세션 검색)·주체를 확인합니다(값 마스킹).
  2. 범위 확인 — 노출 토큰·세션의 악용(E영역·세션 재사용)이 이어졌는지 확인합니다.
  3. 증거 확보 — 앱 로그 접근 흔적을 보존합니다(민감값 마스킹).
  4. 차단/조치 — 탈취 세션이면 B영역 대응과 노출 토큰·세션 무효화를 진행합니다.
  5. 재발 방지 — 앱 로그 토큰 검색을 자격증명 수집 상관에 포함합니다.

11. 핵심 정리

조회민감 정보
access_logURL 토큰·세션
error_log경로·버전·스택
DB 로그쿼리·연결
구분트래픽 점검(정상) vs 토큰·세션 검색(정찰)
면접 포인트"URL에 남은 토큰은 로그만 봐도 탈취 — 값은 마스킹해 분석"

12. 다음 편 예고

다음 편 145. Linux 정보 수집 — 설정 파일 접근 종합 분석 에서는 5단계를 마무리하는 설정 파일 접근 종합 분석을 다룹니다.


이전 편: 143. Linux 정보 수집 — 시스템 로그 접근 분석
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글