Thanks to visit codestin.com
Credit goes to github.com

Skip to content

daayuun/LogDetector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ISMS-P 개인정보처리시스템 접근 로그 분석 자동화

📋 프로젝트 개요

ISMS-P(정보보호 및 개인정보보호 관리체계) 인증기준을 실무에 적용한 개인정보처리시스템 접근 로그 자동 분석 시스템입니다.

  • 개발 기간: 2025.09.20 ~ 2025.10.04 (2주)
  • 개발 목적: ISMS-P 인증기준 학습과 로그 분석 자동화를 통한 개인정보보호 실무 역량 강화
  • 개발 인원: 1명

🔧 기술 스택

언어: Python 3.12
데이터베이스: MySQL 8.0
라이브러리: Pandas, Matplotlib, Seaborn, mysql-connector-python, python-dotenv


🎯 주요 기능

1. 로그 관리 (ISMS-P 2.9.4)

  • 개인정보처리시스템 접근 로그 자동 생성
  • 이중 백업: MySQL DB + CSV 파일
  • 보존 기간: 2년 (5만명 이상 시스템 기준)

2. 이상 징후 탐지 (ISMS-P 2.9.5, 2.11.3)

  • 비인가 시간 접속: 업무시간 외 접근 탐지
  • 과다조회: 10분 내 100건 이상 조회 탐지
  • 권한 외 접근: 일반 사용자의 관리자 메뉴 접근 탐지

3. Alert 시스템 (ISMS-P 2.11.1)

  • 고위험 임계치 기반 경고 발동 (CRITICAL/WARNING)
  • 긴급 확인 대상 사용자 자동 추출

4. 시각화 및 보고

  • 대시보드 자동 생성 (4종 차트)
  • 텍스트 리포트 (책임자 보고용)

🚀 빠른 시작

1. 환경 설정

pip install pandas numpy mysql-connector-python matplotlib seaborn python-dotenv

mysql -u root -p
CREATE DATABASE isms_p_log_db CHARACTER SET utf8mb4;

2. 환경 변수 설정

.env 파일 생성:

DB_HOST=localhost
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=isms_p_log_db

3. 한글 폰트 설정 (시각화용)

visualize_report.py는 한글 차트 생성 시 OS별 폰트 설정이 필요합니다.

Mac (기본값):

# visualize_report.py 5-6번째 줄
plt.rcParams['font.family'] = 'AppleGothic'
plt.rcParams['axes.unicode_minus'] = False

Windows:

# visualize_report.py 5번째 줄 수정
plt.rcParams['font.family'] = 'Malgun Gothic'  # 또는 'NanumGothic'

Linux (Ubuntu):

# 나눔고딕 폰트 설치
sudo apt-get install fonts-nanum

# visualize_report.py 5번째 줄 수정
plt.rcParams['font.family'] = 'NanumGothic'

폰트 미설정 시:

  • 차트의 한글이 □□□로 깨져 보임
  • 본인 OS에 맞게 visualize_report.py 파일 상단 수정 필요

4. 실행

python3 main.py

📊 분석 결과 (샘플 실행 기준)

매 실행 시 랜덤 생성되므로 결과가 다를 수 있습니다. 아래는 예시입니다.

전체 로그: 1,000건
이상 징후 탐지: 149건 (14.9%)
  - 비인가 시간 접속: 56건
  - 과다조회: 46건
  - 권한 외 접근: 47건

위험도 H (High): 93건
위험도 M (Medium): 56건

🗂️ 파일 구조

ISMS-P-Log-Analyzer/
├── generate_logs.py          # 로그 생성
├── detect_anomalies.py        # 이상 징후 분석
├── visualize_report.py        # 시각화
├── main.py                    # 통합 실행
├── .env                       # DB 접속 정보
└── REPORT.md                  # 상세 보고서

📚 ISMS-P 준수 항목

2.9절 시스템 및 서비스 운영 관리

  • 2.9.4 로그 관리: 로그 유형, 보존 기간, 별도 저장장치 (IPv4 사용, IPv6 확장 가능)
  • 2.9.5 로그 점검: 주기적 점검, 오·남용 탐지, 책임자 보고, 즉시 대응

2.11절 사고 예방 및 대응

  • 2.11.1 사고예방 및 대응체계: Alert 시스템 (CRITICAL/WARNING 단계별 대응)
  • 2.11.2 취약점 점검: 권한 외 접근 탐지 (권한 상승 공격 방지)
  • 2.11.3 이상행위 분석 및 모니터링:
    • 침해시도 탐지: 권한 외 접근
    • 개인정보유출 시도 탐지: 과다조회
    • 부정행위 탐지: 비인가 시간 접속
    • 임계치 기반 판단 및 후속 조치

💡 핵심 특징

1. 이중화 백업 전략

  • 평시: MySQL DB 실시간 분석
  • 장애 시: CSV 자동 전환

2. 실무 기준 적용

  • 업무시간: 08:00~18:59 (일반적 출퇴근 시간 + 여유 시간 고려)
  • 과다조회: 10분 내 100건 (일반 업무자 평균 대비 20-33배 초과)
  • Alert 임계치: CRITICAL 50건, WARNING 20건 (조직별 조정 가능)

3. 자동화 파이프라인

  • 로그 생성 → 분석 → Alert → 리포트 (1회 실행)

📄 상세 문서

프로젝트의 상세 내용은 REPORT.md를 참고하세요.

  • ISMS-P 인증기준 상세 적용 내역
  • 이상 징후 탐지 기준 설정 근거
  • MySQL 데이터베이스 구조
  • 기술적 문제 해결 과정

👤 개발자

강다윤

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages