2026.02.09삽질 일지
claude-codefalse-positivesecurity-monitoringdevopsauditd

보안 모니터링 오탐 알림이 5분마다 울릴 때: 해시 갱신 누락 문제 해결기

문제 상황

홈서버에서 텔레그램으로 .bashrc 변경 알람이 5분마다 반복해서 날아오기 시작했습니다. 서버에 모네로 채굴 악성코드가 침투했던 전력이 있는 만큼(2026년 1~2월 3차례 감염), 이런 알림은 무시할 수 없는 상황이었습니다.

원인 분석

1단계: 실제 위협 여부 확인

Claude Code를 활용해 보안 점검을 자동화했습니다. 확인 항목은 다음과 같습니다:

점검 항목결과
.bashrc 내 악성 코드없음
의심 프로세스 (마이너 등)없음
숨김 폴더 (/dev/shm/.x, /tmp/.x)없음
.profile 해시 검증일치
접속 IP모두 정상 ( IP 또는 tmux)
crontab 이상 항목없음

결론: 오탐(False Positive) 이었습니다.

2단계: 반복 알림의 근본 원인

보안 모니터 스크립트가 5분 간격 cron으로 실행되면서 .bashrc의 파일 해시를 기준값과 비교하고 있었습니다. 문제는 해시 불일치를 감지한 후 알림만 보내고 기준 해시를 갱신하지 않는 구조였다는 점입니다.

bash

문제가 된 로직 (의사 코드)

current_hash=$(sha256sum ~/.bashrc) if [ "$current_hash" != "$saved_hash" ]; then send_telegram_alert "bashrc 변경 감지!" # 여기서 saved_hash 갱신이 빠져 있음 fi

정상적인 수정(환경 설정 변경 등)이 발생해도 해시가 갱신되지 않으니, 매 실행마다 동일한 알림이 무한 반복됩니다.

3단계: auditd 로그 공백 발견

auditd가 실행 중이었지만 .bashrc 변경에 대한 로그가 비어 있었습니다. 서버 재부팅(2월 3일) 이후 auditd 규칙이 초기화되었을 가능성이 높으며, 규칙이 영구 적용되도록 설정이 필요했습니다.

해결 방법

  1. 즉시 조치: 관리자 확인 후 .bashrc 기준 해시를 현재 값으로 갱신
  2. 구조 개선: 알림 발송 후 해시 갱신 또는 확인 플래그 추가
  3. auditd 규칙 영구화: /etc/audit/rules.d/에 규칙 파일 작성하여 재부팅 후에도 유지

핵심 정리

보안 모니터링 스크립트를 운영할 때 체크리스트입니다:

  • 알림 후 상태 갱신: 변경 감지 → 알림 → 기준값 갱신(또는 확인 대기) 흐름이 완결되어야 합니다
  • 알림 중복 방지: 동일 이벤트에 대한 반복 알림을 억제하는 로직(쿨다운, 확인 플래그)이 필요합니다
  • 재부팅 후 상태 확인: auditd 규칙, cron 작업, 서비스 상태가 재부팅 이후에도 유지되는지 검증해야 합니다
  • 오탐 처리 프로세스: 과거 실제 침해 이력이 있는 서버일수록 오탐 판별 기준을 명확히 문서화해 두는 것이 중요합니다

Claude Code를 활용하면 여러 로그와 파일을 동시에 점검하여 위협 여부를 빠르게 판별할 수 있습니다. 보안 알림이 올 때마다 일일이 수동 점검하는 대신, AI에게 체계적인 점검 항목을 넘겨 자동화하는 것이 효율적입니다.