SW

SW #4 캡스톤디자인 (SQL 보안 및 AI 활용)

천천히, 한 걸음씩 2024. 12. 15. 14:02

AI를 활용한 SQL Injection 공격 방어 시스템 개발

- 프로젝트 개요

  • 목적: SQL Injection 공격의 지능화에 대응하여 AI 기술을 활용해 공격 탐지 및 방어 규칙을 자동으로 생성하고 보안 시스템에 적용.
  • 과제: 기존 보안 관제의 비용 및 기술적 한계를 극복하고 실시간 탐지를 통한 보안성을 강화.
  • 기술 스택:
    • AI 학습: Keras를 사용한 딥러닝 모델 개발.
    • 보안 규칙: SNORT를 이용한 SQL 구문 분류 및 보안 규칙 적용.

- 담당 역할 및 주요 내용

 

1. AI 모델 개발

  • SQL Injection 정상/비정상 데이터를 학습하여 공격 패턴을 탐지하는 딥러닝 모델을 구축.
  • 데이터 전처리:
    • 데이터 소스: login_positive.csv와 다수의 비정상 SQL 데이터 파일(login_negative1.csv ~ login_negative5.csv 및 test.csv).
    • 라벨링: 정상 SQL 구문은 1, 비정상 SQL 구문은 0으로 라벨링.
    • 병합 및 샘플링: 정상/비정상 데이터 균형을 맞추기 위해 150개의 정상 데이터를 샘플링.

2. 텍스트 데이터 처리

  • 토큰화: Keras Tokenizer를 활용해 SQL 쿼리를 시퀀스로 변환.
  • 패딩: 모델 학습에 필요한 일정한 시퀀스 길이로 데이터를 정규화.

3. 딥러닝 모델 설계

  • 모델 구조:
    • Embedding Layer: SQL 쿼리를 벡터 형태로 변환.
    • LSTM Layer: 시퀀스 데이터에서 패턴을 학습하여 공격 특징을 탐지.
    • Dense Layer: 시그모이드 활성화 함수를 사용해 이진 분류.
  • 손실 함수 및 최적화 기법:
    • binary_crossentropy를 손실 함수로 설정.
    • adam 옵티마이저를 사용해 학습 속도와 성능 최적화.

4. 모델 학습 및 평가

  • 학습 데이터: 80% 학습, 20% 테스트 데이터로 분리.
  • 결과:
    • 학습 후 평가에서 모델의 손실(Loss)과 정확도(Accuracy) 출력.
    • 성능 지표를 기반으로 보안 규칙 생성에 활용.

성과 및 활용

  • 정상/비정상 구문 분류: AI 모델을 통해 SQL 구문을 실시간으로 분류하고 잠재적 공격 탐지.
  • SNORT와의 통합: 학습된 규칙을 SNORT 보안 규칙에 적용하여 자동화된 방어 체계 구축.
  • 확장성: 추가 데이터로 재학습이 가능하며, 신규 공격 패턴에 대해 지속적으로 적응.

이 프로젝트를 통해 AI 기반 보안 솔루션 설계 및 구현 경험을 쌓았으며,

SQL Injection 탐지에 특화된 딥러닝 모델의 효과를 확인하였다.