Categories: Bash Scripts

보안 로그 분석 스크립트 작성하기 | mj의 블로그

59일차: 보안 스크립트 – 보안 로그 분석 스크립트

안녕하세요, mj입니다. 오늘은 보안 관련 로그를 분석하는 스크립트를 작성해 보겠습니다. 보안 로그 분석은 시스템의 이상 징후를 조기에 발견하고, 데이터 유출 및 해킹 시도를 방지하는 데 매우 중요합니다. 이번 포스팅에서는 기본적인 스크립트 작성법과 몇 가지 예시를 통해 실제 활용 방안을 소개하겠습니다.

1. 보안 로그의 중요성

보안 로그는 시스템에서 발생하는 모든 이벤트를 기록합니다. 이러한 로그는 해커의 침입 시도를 추적하고, 시스템의 이상 동작을 식별하는 데 필수적입니다. 로그 분석을 통해 네트워크의 취약점을 발견하고, 보안 정책을 강화할 수 있습니다.

2. 스크립트 작성하기

보안 로그를 분석하기 위해 파이썬을 사용한 간단한 스크립트를 작성해 보겠습니다. 아래의 코드는 특정 패턴을 가진 로그를 필터링하여 출력합니다.


import re

# 로그 파일 경로
log_file_path = 'security_log.txt'

# 필터링할 패턴
pattern = r'ERROR|WARNING'

def analyze_logs(file_path):
    with open(file_path, 'r') as file:
        for line in file:
            if re.search(pattern, line):
                print(line.strip())

# 로그 분석 실행
analyze_logs(log_file_path)
        

예시 출력

위 스크립트를 실행했을 때의 예시 출력입니다:


[2023-04-01 12:00:00] ERROR: Unauthorized access attempt detected.
[2023-04-01 12:05:00] WARNING: Disk space running low.
[2023-04-01 12:10:00] ERROR: Failed login attempt from IP 192.168.1.1.
        

3. 추가 예시 및 활용 방안

다음은 다양한 상황에서 활용할 수 있는 보안 로그 분석 스크립트 예시입니다.

예시 1: 특정 IP 주소 필터링


def filter_by_ip(file_path, ip_address):
    with open(file_path, 'r') as file:
        for line in file:
            if ip_address in line:
                print(line.strip())

# 특정 IP 주소 필터링 실행
filter_by_ip(log_file_path, '192.168.1.1')
        

예시 2: 날짜 범위 필터링


def filter_by_date(file_path, start_date, end_date):
    with open(file_path, 'r') as file:
        for line in file:
            date = line.split()[0]
            if start_date <= date <= end_date:
                print(line.strip())

# 날짜 범위 필터링 실행
filter_by_date(log_file_path, '2023-04-01', '2023-04-30')
        

예시 3: 로그 요약 통계


def log_summary(file_path):
    error_count = 0
    warning_count = 0
    with open(file_path, 'r') as file:
        for line in file:
            if 'ERROR' in line:
                error_count += 1
            elif 'WARNING' in line:
                warning_count += 1
    print(f'Errors: {error_count}, Warnings: {warning_count}')

# 로그 요약 실행
log_summary(log_file_path)
        

예시 4: 특정 키워드 검색


def search_by_keyword(file_path, keyword):
    with open(file_path, 'r') as file:
        for line in file:
            if keyword in line:
                print(line.strip())

# 특정 키워드 검색 실행
search_by_keyword(log_file_path, 'Failed')
        

예시 5: 로그 파일 생성


def create_log_file(file_path):
    with open(file_path, 'w') as file:
        file.write('[2023-04-01 12:00:00] ERROR: Unauthorized access attempt detected.\n')
        file.write('[2023-04-01 12:05:00] WARNING: Disk space running low.\n')

# 로그 파일 생성 실행
create_log_file(log_file_path)
        

이와 같은 스크립트를 활용하면 다양한 방식으로 보안 로그를 분석할 수 있습니다. 필요에 따라 추가적인 기능을 구현하여 더욱 효과적인 분석이 가능합니다.

4. 결론

보안 로그 분석은 시스템 보안을 강화하는 데 필수적인 작업입니다. 오늘 소개한 스크립트를 활용하여 다양한 로그 분석을 시도해 보시기 바랍니다. 추가적인 질문이나 필요하신 부분이 있다면 언제든지 댓글로 남겨주세요.

마무리하겠습니다. 감사합니다!

© 2025 mj. All rights reserved.

mj

Recent Posts

파이썬으로 대화형 대시보드 구현하기 – mj의 블로그

파이썬을 이용한 대화형 대시보드 구현 방법을 배우고 다양한 예시를 확인하세요.

3시간 ago

파이썬으로 대화형 대시보드 만들기 – 데이터 시각화의 새로운 차원

파이썬으로 대화형 대시보드를 만드는 방법과 기법을 소개합니다.

12시간 ago

파이썬으로 대용량 데이터 효율적으로 처리하기

파이썬을 이용한 대용량 데이터 처리 기법을 안내합니다. 효율적인 데이터 처리 방법을 배워보세요.

3일 ago

파이썬에서 대규모 데이터 처리하기: 효과적인 기법과 예시

대규모 데이터를 처리하는 방법과 기법을 소개합니다. 파이썬을 활용한 효과적인 예시 포함.

3일 ago

파이썬에서 NumPy로 다차원 배열 다루기 – 효율적인 배열 생성과 조작

NumPy를 활용한 다차원 배열 생성과 조작하는 방법을 알아보세요.

6일 ago

파이썬에서 다중 회귀 분석하기 – mj의 블로그

다중 회귀 분석의 개념과 파이썬 구현 방법을 소개합니다. 예시와 함께 쉽게 이해해보세요!

6일 ago