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 탐지에 특화된 딥러닝 모델의 효과를 확인하였다.






'SW' 카테고리의 다른 글
| SW #5 도전학기제 (MRTG를 사용한 서버 모니터링) (0) | 2024.12.16 |
|---|---|
| SW #3 AI-SW 아이디어 해커톤 (팀 프로젝트) (0) | 2024.12.14 |
| SW #2 소프트웨어 공학 (팀 프로젝트) (0) | 2024.12.13 |
| SW #1 Java_Web (팀 프로젝트) (0) | 2024.12.12 |