212. 중요 정보 접근 — 인증서·개인키 파일 접근 탐지

changseop lee·4일 전

시스템 보안 · 취약점

목록 보기
212/450

시스템 보안 · 취약점 › E. 중요 정보 접근 로그 분석 · 12/50편 (전체 212/450)
학습 단계: 중요 파일 접근 이상
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

TLS/SSL 인증서의 개인키(.key·.pem)는 서버의 신원과 암호화를 보증합니다. 탈취되면 서버 위장(피싱)·암호화 트래픽 복호화에 악용되므로, 개인키 파일 읽기 접근은 고위험입니다.

인증서 개인키 접근 위험
 /etc/ssl/private/*.key   서버 개인키 → 위장·복호화
 /etc/pki/tls/private/*   (RHEL) 개인키
 app 인증서 *.pem         앱 TLS 개인키
 코드서명 키              → 악성코드 서명

정상: 웹서버(nginx/httpd)·서비스가 시작 시 읽음
공격: 쉘 명령으로 개인키 읽기·복사 → 탈취

개인키는 서비스(웹서버)가 기동 시 읽는 것이 정상입니다. 쉘 명령의 읽기·복사는 탈취 시도입니다.

2. 왜 중요한가

  • TLS 개인키 탈취는 서버 위장(피싱 사이트)·중간자 복호화로 이어집니다.
  • 코드서명 키 탈취는 악성코드를 정상 서명으로 위장하게 합니다.
  • 정상은 웹서버·서비스가 기동 시 읽으므로, 쉘 명령 읽기는 명백한 이상입니다.

3. 핵심 명령어 / 설정

개인키 경로용도탈취 위험
/etc/ssl/private/서버 TLS위장·복호화
/etc/pki/tls/private/RHEL TLS위장·복호화
앱 *.pem앱 TLS통신 복호화
코드서명 키서명악성 위장
CA 키인증 발급신뢰 붕괴

4. 실습 (실습 예시)

# 인증서 개인키 접근 탐지 (분석 방법)
# 개인키 파일 읽기(웹서버/서비스 외)
sudo ausearch -k sensitive_read,cred_access -i --start recent 2>/dev/null | grep -E '\.key$|private/|\.pem$' | grep -vE 'comm="(nginx|httpd|httpd-|haproxy|postfix|dovecot)"' | tail

# 개인키 복사 패턴
sudo ausearch -k cred_access -i --start recent 2>/dev/null | grep -E 'comm="(cp|cat|tar|scp|curl)"' | grep -E 'private|\.key'

5. 정상 상태

$ (개인키 접근) (없음 또는 nginx/httpd 기동 읽기만)

TLS 개인키 접근이 웹서버·서비스의 기동 읽기에 그치고, 쉘 명령의 읽기·복사가 없는 상태가 정상입니다.

6. 이상 상태

$ (개인키 접근)
04:00 comm="cp" auid=www-data /etc/ssl/private/server.key → /tmp
04:01 comm="cat" auid=devops /etc/pki/tls/private/app.key
  • 웹 계정(www-data)이 서버 개인키를 /tmp에 복사 → 키 탈취(서버 위장)
  • devops가 앱 개인키를 cat → TLS 복호화 키 탈취
  • 서비스가 아닌 주체의 개인키 읽기·복사 → 정탐(고위험)

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

인증서 개인키 탈취 흐름입니다(가상의 예시 로그).

type=SYSCALL comm="cp" auid=www-data key="cred_access"
type=PATH name="/etc/ssl/private/server.key"
 → 웹 계정이 서버 TLS 개인키 복사(탈취)
[이후] /tmp/server.key 유출(E32) → 서버 위장·트래픽 복호화
관찰해석
cp server.key개인키 탈취
auid=www-data비서비스 주체
/tmp 복사수집
이후 유출위장·복호화

개인키 읽기·복사 → 유출로 이어지는 탈취 체인을 연계로 탐지합니다.

8. SOC 관제 포인트

  • TLS/SSL 개인키 접근은 서버 위장·트래픽 복호화를 위한 탈취 시도입니다.
  • 정상은 웹서버·서비스 기동 읽기 — 쉘 명령 읽기·복사는 명백한 이상입니다.
  • 코드서명·CA 키 탈취는 악성 위장·신뢰 붕괴로 이어지므로 최고 우선순위입니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_e,sensitive_access,">
  <rule id="104110" level="13">
    <if_sid>104000</if_sid>
    <field name="audit.file" type="pcre2">(/etc/ssl/private/|/etc/pki/tls/private/|\.key$)</field>
    <field name="audit.comm" type="pcre2">^(cat|cp|dd|tar|scp|curl|wget|xxd|base64)$</field>
    <description>비서비스 주체의 TLS 개인키 접근(키 탈취)</description>
    <mitre><id>T1552.004</id></mitre>
  </rule>
</group>

정상 웹서버·서비스(nginx·httpd 등)는 화이트리스트로 제외합니다. 개인키 접근 후 유출을 상관으로 연계합니다.

10. 대응 방법

  1. 초기 확인 — 접근된 개인키 파일·용도·주체·방법을 확인합니다.
  2. 범위 확인 — 서비스 여부·복사·이후 유출로 이어졌는지 확인합니다.
  3. 증거 확보 — 개인키 접근 이벤트와 연계 로그를 보존합니다.
  4. 차단/조치 — 키 탈취 정탐이면 세션 종료·인증서 재발급(키 교체)·영향 조사를 진행합니다.
  5. 재발 방지 — 인증서 개인키 접근 탐지를 운영합니다.

11. 핵심 정리

개인키탈취 위험
서버 TLS 개인키위장·복호화
앱 .pem통신 복호화
코드서명 키악성 위장
CA 키신뢰 붕괴
면접 포인트"TLS 개인키 탈취는 서버 위장·복호화 — 정상은 서비스 기동 읽기만"

12. 다음 편 예고

다음 편 213. 중요 정보 접근 — DB 설정·자격증명 파일 접근 탐지 에서는 DB 설정·자격증명 접근을 다루는 DB 설정·자격증명 파일 접근 탐지를 다룹니다.


이전 편: 211. 중요 정보 접근 — SSH 키·인증 파일 접근 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글