/ Security Project

WEB mini-IDS

실시간 웹 트래픽 분석과 공격 패턴 시각화를 목표로 만든 미니 침입 탐지 시스템 프로젝트입니다.

Project Stack

PYTHON PYSIDE6 TRAFFIC ANALYSIS DASHBOARD DETECTION RULE

01 · Overview

프로젝트 개요

WEB mini-IDS는 웹 요청 로그 또는 트래픽 데이터를 분석하여 의심스러운 패턴을 탐지하고, GUI 대시보드에서 결과를 확인할 수 있도록 설계한 보안 프로젝트입니다. 단순히 문자열을 찾는 방식이 아니라, 공격 유형별 특징을 분리해 탐지 규칙을 구성하는 데 초점을 맞췄습니다.

웹 공격은 SQL Injection, XSS, Path Traversal처럼 요청 문자열에 특징적인 흔적이 남는 경우가 많습니다. 이 프로젝트는 그런 흔적을 빠르게 분류하고 시각화하여, 보안 관제 흐름을 작은 규모로 구현해 보는 것을 목표로 했습니다.

02 · Features

주요 기능

  • 웹 요청 데이터 입력 및 파싱
  • SQL Injection, XSS, Path Traversal 등 기본 공격 패턴 탐지
  • 탐지 결과를 위험도와 유형별로 분류
  • PySide6 기반 대시보드에서 로그, 카운트, 탐지 결과 확인
  • 탐지 규칙을 코드 단위로 분리하여 확장 가능하게 구성

03 · Architecture

구현 구조

Input Layer

로그 파일 또는 요청 데이터를 읽어 분석 가능한 형태로 정규화합니다.

Detection Engine

정규표현식과 키워드 기반 규칙을 적용해 공격 유형을 판별합니다.

Scoring Logic

탐지된 패턴의 개수와 유형에 따라 위험도를 계산합니다.

Dashboard UI

탐지 결과, 통계, 상세 로그를 GUI에서 확인할 수 있게 표시합니다.

04 · Build Log

어떤 방식으로 만들었는가

탐지 로직은 UI와 분리하여 작성했습니다. 이렇게 하면 새로운 공격 패턴을 추가할 때 화면 코드를 건드리지 않고 탐지 규칙만 확장할 수 있습니다. PySide6는 테이블 형태의 로그 확인과 버튼 기반 분석 흐름을 구현하기 위해 사용했습니다.

탐지 규칙이 너무 단순하면 정상 요청도 공격으로 잘못 분류될 수 있습니다. 그래서 키워드 하나만으로 판단하기보다 요청 경로, 파라미터, 특수문자 조합, 인코딩 흔적을 함께 확인하는 방식으로 오탐을 줄이는 구조를 잡았습니다.

Screenshot Area

Add project screenshots here

완성 화면, 설계도, 코드 일부, 결과 화면 이미지를 넣는 영역입니다.

05 · Result

결과 및 배운 점

웹 공격 탐지의 기본 흐름인 데이터 수집, 파싱, 탐지, 분류, 시각화를 한 번에 경험할 수 있었습니다. 특히 관제 시스템이 단순 탐지보다 결과를 읽기 쉽게 보여주는 것이 중요하다는 점을 확인했습니다.

06 · Next Step

개선 계획

  • 탐지 규칙 커스터마이징 기능 추가
  • CSV/JSON 리포트 내보내기
  • 실시간 프록시 로그 연동
  • 오탐/정탐 샘플 기반 탐지 정확도 개선