메인 콘텐츠로 이동하기
  1. 6개월, 혹은 그 이상의 보안 여정/

2025.10.31 (Day 5) 파이썬 예외 처리·로깅 및 보안 감사 로그 설계

·2 분·

2025.10.31 (Day 5) 예외 처리, 로깅, 파일 입출력 활용 #

1. 주요 개념 요약 #

  • 예외 처리 (try-except): 시스템의 비정상 종료를 방지하고 잘못된 입력이나 리소스 접근 실패 상황에서 시스템을 견고하게 유지한다.
  • 로깅 (Logging): 예외 발생 시 상황 정보를 기록하여 디버깅 및 보안 관제(접근 실패, 탐지 상황 기록)에 활용한다.
  • 파일 입출력: 데이터 분석을 위한 로그 및 데이터 파일을 처리하며, with 구문을 사용하여 리소스 누수와 예외 발생을 방지한다.

2. 실습 코드 및 응용 #

A. 로깅 및 데이터 마스킹 #

  • 접근 기록을 파일에 남길 때 사용자 이름 등 민감 정보를 마스킹 처리하여 보안성을 강화한다.
import logging
import json

def mask_username(username):
    if not isinstance(username, str) or len(username) < 2: return "Unknown"
    return username[:2] + '*' * (len(username) - 2)

# 접근 성공/실패 시 로그를 JSON 형식으로 파일에 저장
log_data = {"level": "INFO", "status": "SUCCESS", "message": "접근 성공"}
with open('userAccess.log', 'a', encoding='utf-8') as f:
    json.dump(log_data, f, ensure_ascii=False); f.write('\n')

B. 예외 처리 기반의 권한 제어 #

  • 인증되지 않은 접근 시 발생한 예외를 포착하여 에러 정보를 외부에 노출하지 않고 내부 로그로만 관리한다.

3. 보안 관점 분석 #

  • 시스템 가용성 확보: try-except 구문을 통해 예외 상황에서도 서비스가 중단되지 않도록 관리하며 정상적인 흐름을 유지한다.
  • 정보 유출 방지: 에러 발생 시 구체적인 시스템 정보나 스택 트레이스를 외부에 노출하지 않고 내부 로깅 시스템에만 기록한다.
  • 보안 감사 증거 확보: 중요 이벤트 발생 시 시간 정보와 로깅 레벨을 적용해 별도 파일로 저장함으로써 사고 발생 시 분석 기초 데이터로 활용한다.

4. 요약 #

  1. 예외 처리는 시스템의 견고성을 결정하는 필수 요소로, 예상치 못한 입력을 보안 이벤트로 전환하여 처리할 수 있게 한다.
  2. 로깅과 파일 입출력은 마스킹된 정보를 안전하게 기록하여 보안 감사 및 침해 사고 탐지의 근거를 마련한다.
  3. 데코레이터와 결합한 로깅 구조는 공통 보안 정책을 일관성 있게 적용하는 효율적인 방법이다.