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
- 개인정보처리시스템 접근 로그 자동 생성
- 이중 백업: MySQL DB + CSV 파일
- 보존 기간: 2년 (5만명 이상 시스템 기준)
- 비인가 시간 접속: 업무시간 외 접근 탐지
- 과다조회: 10분 내 100건 이상 조회 탐지
- 권한 외 접근: 일반 사용자의 관리자 메뉴 접근 탐지
- 고위험 임계치 기반 경고 발동 (CRITICAL/WARNING)
- 긴급 확인 대상 사용자 자동 추출
- 대시보드 자동 생성 (4종 차트)
- 텍스트 리포트 (책임자 보고용)
pip install pandas numpy mysql-connector-python matplotlib seaborn python-dotenv
mysql -u root -p
CREATE DATABASE isms_p_log_db CHARACTER SET utf8mb4;.env 파일 생성:
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=isms_p_log_db
visualize_report.py는 한글 차트 생성 시 OS별 폰트 설정이 필요합니다.
Mac (기본값):
# visualize_report.py 5-6번째 줄
plt.rcParams['font.family'] = 'AppleGothic'
plt.rcParams['axes.unicode_minus'] = FalseWindows:
# 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파일 상단 수정 필요
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 # 상세 보고서
- ✅ 2.9.4 로그 관리: 로그 유형, 보존 기간, 별도 저장장치 (IPv4 사용, IPv6 확장 가능)
- ✅ 2.9.5 로그 점검: 주기적 점검, 오·남용 탐지, 책임자 보고, 즉시 대응
- ✅ 2.11.1 사고예방 및 대응체계: Alert 시스템 (CRITICAL/WARNING 단계별 대응)
- ✅ 2.11.2 취약점 점검: 권한 외 접근 탐지 (권한 상승 공격 방지)
- ✅ 2.11.3 이상행위 분석 및 모니터링:
- 침해시도 탐지: 권한 외 접근
- 개인정보유출 시도 탐지: 과다조회
- 부정행위 탐지: 비인가 시간 접속
- 임계치 기반 판단 및 후속 조치
- 평시: MySQL DB 실시간 분석
- 장애 시: CSV 자동 전환
- 업무시간: 08:00~18:59 (일반적 출퇴근 시간 + 여유 시간 고려)
- 과다조회: 10분 내 100건 (일반 업무자 평균 대비 20-33배 초과)
- Alert 임계치: CRITICAL 50건, WARNING 20건 (조직별 조정 가능)
- 로그 생성 → 분석 → Alert → 리포트 (1회 실행)
프로젝트의 상세 내용은 REPORT.md를 참고하세요.
- ISMS-P 인증기준 상세 적용 내역
- 이상 징후 탐지 기준 설정 근거
- MySQL 데이터베이스 구조
- 기술적 문제 해결 과정
강다윤