LL-002 Linux auditd File Access Log
공격 행위 요약
SSH 인증 로그는 서버에 들어온 사실만 보여준다. 공격자는 App 서버에 들어온 뒤 보통 현재 권한, 서비스 경로, 컨테이너 구성, 설정 파일, 로그 위치, DB 연결 정보를 차례로 확인한다. auditd는 이 중 파일 접근과 명령 실행 흔적을 PATH, SYSCALL, PROCTITLE 이벤트로 남겨, SSH 이후 실제 행위를 설명하는 핵심 로그가 된다.
로그 발생 위치
| 구분 | 위치 | 설명 |
| App 서버 | /var/log/audit/audit.log | App 운영 경로, 설정 파일, staging 경로 접근 이벤트 |
| App 서버 | /opt/spacebar-booking | 애플리케이션 운영 경로 탐색 여부 확인 |
| App 서버 | /opt/spacebar-booking/.env | DB 접속 정보 등 credential 후보 파일 접근 여부 확인 |
| App 서버 | /opt/spacebar-booking/docker-compose.yml | 컨테이너 구성, volume, network, 환경변수 참조 확인 |
| App 서버 | /tmp, /var/tmp | 수집 데이터 staging 또는 archive 생성 여부 확인 |
수집 방식
| 구분 | 방식 |
| App 서버 | auditd rule key를 지정해 관심 파일/명령 실행을 수집 |
| App 서버 | Filebeat 8.13.4 auditd module로 /var/log/audit/audit.log 수집 |
| ELK | auditd.log.key, auditd.log.name, process.executable, user.name 기준으로 탐지룰 작성 |
실제 관측 로그 예시
type=SYSCALL msg=audit(1715153182.123:420): arch=c000003e syscall=257 success=yes exe="/usr/bin/ls" key="sb01_app_path_read"
type=PATH msg=audit(1715153182.123:420): item=0 name="/opt/spacebar-booking" inode=393221 dev=ca:01 mode=040755
type=PROCTITLE msg=audit(1715153182.123:420): proctitle=6C73002F6F70742F73706163656261722D626F6F6B696E67
주요 필드
| 필드 | 의미 | 예시 |
auditd.log.sequence | 같은 행위를 묶는 audit event sequence | 420 |
auditd.log.key | audit rule key | sb01_app_path_read |
auditd.log.name | 접근 대상 경로 | /opt/spacebar-booking |
process.executable | 실행 파일 | /usr/bin/ls |
process.args | 실행 인자 | /opt/spacebar-booking |
process.working_directory | 명령 실행 위치 | /home/deploy |
user.audit.name | 감사 이벤트 기준 사용자 | deploy |
message | 원본 auditd 로그 | type=SYSCALL ... key="sb01_app_path_read" |
커버하는 Techniques Used
탐지 포인트
| Technique | 관찰할 행위 | 주요 필드 |
| T1083 File and Directory Discovery | deploy 계정이 SSH 이후 /opt/spacebar-booking, nginx/, booking-api/, /var/log/spacebar-booking을 탐색한다. 실제 공격자는 ls, find, pwd, docker ps, docker compose ps처럼 서비스 구조와 실행 상태를 확인하는 명령을 함께 사용한다. | auditd.log.key, auditd.log.name, process.executable, process.args |
| T1552.001 Credentials in Files | .env, docker-compose.yml, app 설정 파일에서 POSTGRES, DB, PASSWORD, TOKEN 같은 키워드를 확인한다. 단순 파일 read 하나만으로 단정하지 않고, SSH 직후 탐색 흐름과 함께 본다. | auditd.log.name, process.executable, process.args, user.name |
| T1074.001 Local Data Staging | /tmp/sb01-stage 또는 /var/tmp에 결과 파일을 만들고 tar, gzip, zip 등으로 묶는다. DB 조회 직후 archive 생성이 이어지면 우선순위가 높다. | auditd.log.key, auditd.log.name, process.executable, file.path |
| T1048.002 Exfiltration Over Alternative Protocol | archive 생성 직후 scp, sftp, curl, wget 등 정상 프로토콜 기반 전송 도구가 실행되는지 확인한다. VPC Flow Log의 App 서버 outbound 22/443 흐름과 함께 봐야 한다. | auditd.log.key, process.executable, process.args, destination.ip |
ELK Query 예시
event.module:auditd AND process.executable:"/usr/bin/ls" AND auditd.log.key:*sb01_app_path_read*
event.module:auditd AND auditd.log.name:"/opt/spacebar-booking"
event.module:auditd AND auditd.log.key:*sb01_local_staging*