213. 중요 정보 접근 — DB 설정·자격증명 파일 접근 탐지

changseop lee·4일 전

시스템 보안 · 취약점

목록 보기
213/450

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

선행 학습

1. 개념

애플리케이션은 DB 접속 정보를 설정 파일에 저장합니다. 이 DB 자격증명이 탈취되면 공격자가 직접 데이터베이스에 접속해 대량 데이터를 유출할 수 있어, 접근 탐지가 중요합니다.

DB 자격증명 파일 접근 위험
 app/config/database.yml  DB 접속정보(host/user/pass)
 /etc/my.cnf, .my.cnf     MySQL 설정·자격증명
 wp-config.php 등         앱 DB 설정
 .env (DB_PASSWORD 등)    환경 변수 DB 자격증명(E15)

탈취 → DB 직접 접속 → 대량 데이터 유출(E19·20)

DB 자격증명은 앱 프로세스가 읽는 것이 정상입니다. 쉘 명령·웹 계정의 읽기는 탈취 시도입니다.

2. 왜 중요한가

  • DB 자격증명 탈취는 데이터베이스 직접 접속 → 대량 개인정보·데이터 유출의 관문입니다.
  • 앱 설정 파일은 앱 프로세스만 읽으므로, 쉘·웹 계정의 읽기는 이상입니다.
  • 자격증명 접근 후 DB 접속·덤프(E19·20)로 이어지는 연계가 핵심입니다.

3. 핵심 명령어 / 설정

DB 설정 파일담긴 정보위험
database.yml/.php접속·비밀번호매우 높음
/etc/my.cnf,.my.cnfMySQL 자격증명높음
.env DB_*DB 환경변수매우 높음
pg_service.confPostgreSQL높음
앱 secret세션·암호화 키높음

4. 실습 (실습 예시)

# DB 자격증명 접근 탐지 (분석 방법)
sudo ausearch -k cred_access -i --start recent 2>/dev/null | grep -E 'database\.yml|my\.cnf|wp-config|pg_service|\.env' | grep -vE 'comm="(ruby|php-fpm|python|node|mysqld|postgres)"' | tail

# 자격증명 접근 후 DB 클라이언트 실행(연계)
sudo ausearch -k cred_access,data_access -i --start recent 2>/dev/null | grep -E 'comm="(mysql|psql|mongo)"'

5. 정상 상태

$ (DB 자격증명 접근) (없음 또는 앱 프로세스만)

DB 설정 파일 접근이 앱 프로세스(php-fpm·node 등)의 정상 로드에 그치고, 쉘·웹 계정 읽기가 없는 상태가 정상입니다.

6. 이상 상태

$ (DB 자격증명 접근)
04:00 comm="cat" auid=www-data /var/www/app/config/database.yml
$ (이후 DB 접속)
04:01 comm="mysql" auid=www-data (탈취 자격증명으로 접속)
  • 웹 계정이 database.yml을 cat → DB 접속 자격증명 탈취
  • 직후 mysql 클라이언트 실행 → 탈취 자격증명으로 DB 직접 접속
  • 자격증명 읽기 → DB 접속 연계 → 데이터 유출 전조 → 정탐

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

DB 자격증명 탈취 흐름입니다(가상의 예시 로그).

type=SYSCALL comm="cat" auid=www-data key="cred_access"
type=PATH name="/var/www/app/config/database.yml"
 → 웹 계정이 DB 접속정보 읽기(탈취)
[이후] mysql -u app -p<탈취비번> → DB 접속 → 대량 SELECT(E19)
관찰해석
cat database.yml자격증명 탈취
auid=www-data비앱 주체
이후 mysqlDB 직접 접속
대량 SELECT데이터 유출

자격증명 읽기 → DB 접속 → 대량 조회로 이어지는 체인을 연계로 탐지합니다.

8. SOC 관제 포인트

  • DB 설정·자격증명 접근은 DB 직접 접속 → 대량 유출의 관문입니다.
  • 정상은 앱 프로세스 로드 — 쉘·웹 계정의 읽기는 자격증명 탈취 신호입니다.
  • 자격증명 읽기 → DB 클라이언트 접속(E19·20) 연계가 핵심 탐지 포인트입니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_e,sensitive_access,">
  <rule id="104120" level="12">
    <if_sid>104000</if_sid>
    <field name="audit.file" type="pcre2">(database\.(yml|php)|my\.cnf|wp-config\.php|pg_service\.conf)$</field>
    <field name="audit.comm" type="pcre2">^(cat|cp|less|tar|scp|curl|grep|strings)$</field>
    <description>DB 설정·자격증명 파일 접근(DB 침해 전조)</description>
    <mitre><id>T1552.001</id></mitre>
  </rule>
</group>

정상 앱 프로세스는 화이트리스트로 제외합니다. 자격증명 접근 후 DB 클라이언트 실행을 상관으로 연계합니다(E42).

10. 대응 방법

  1. 초기 확인 — 접근된 DB 설정 파일·주체·방법과 앱 프로세스 여부를 확인합니다.
  2. 범위 확인 — 자격증명 읽기 후 DB 접속(mysql·psql)·대량 조회로 이어졌는지 확인합니다.
  3. 증거 확보 — DB 자격증명 접근 이벤트와 연계 로그를 보존합니다.
  4. 차단/조치 — 탈취 정탐이면 세션 종료·DB 자격증명 교체·DB 접근 조사를 진행합니다.
  5. 재발 방지 — DB 자격증명 접근 탐지를 운영합니다.

11. 핵심 정리

DB 설정 파일위험
database.yml/php접속·비밀번호 탈취
my.cnf/.my.cnfMySQL 자격증명
.env DB_*DB 환경변수
이후 DB 접속대량 유출 전조
면접 포인트"DB 자격증명 탈취는 대량 유출 관문 — 읽기→DB 접속 연계가 핵심"

12. 다음 편 예고

다음 편 214. 중요 정보 접근 — 애플리케이션 비밀(secret) 접근 탐지 에서는 애플리케이션 비밀 접근을 다루는 애플리케이션 비밀(secret) 접근 탐지를 다룹니다.


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

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

0개의 댓글