seoksik/Messenger-phishing-detection
Built by Metorial, the integration platform for agentic AI.
seoksik/Messenger-phishing-detection
Server Summary
Analyze chat content for phishing threats
Receive real-time alerts for detected phishing
Utilize LSTM model for phishing classification
Process and evaluate natural language data
Send notifications to users about phishing risks
데이터사이언스 캡스톤디자인 프로젝트
안녕하세요. 저희 치킨타올팀은 스마트폰의 메신저 내용을 사전 학습된 AI를 기반으로 메신저 피싱 예측 모델을 통해 메신저 피싱 여부를 판단하여 통지를 통해 예방하는 서비스 개발하였습니다.
1️⃣ 메신저 내용 분석
2️⃣ LSTM 예측 모델을 통해 메신저 피싱 분류 및 예측
3️⃣ 사용자에게 예측결과 전송
서비스 제공방식
다음 세 가지 방법 중에, 안드로이드 피싱탐지 어플리케이션 개발(방법 1)을 결정
방법 1) 실시간 카톡 API 이용하여 서버로 전송, 안드로이드 어플리케이션 개발
방법 2) 자체 PC응용프로그램에 서비스를 동반한 채팅 프로그램 개발
방법 3) 대화내용을 직접 판별기에 가져와서 모델이 판별
피싱일 경우 알림방식
ⅰ) 소리
ⅱ) 진동
ⅲ) 알림창/화면표시
메신저 피싱 사례 정의
ⅰ) 은행 사칭
ⅱ) 가족 및 지인 사칭
ⅲ) 검사 및 공무원 사칭
ⅳ) 보안센터 사칭 등
서비스 아키텍처
과제 결과물: 피싱 여부를 예측하여 알림을 전송하는 안드로이드 어플리케이션
딥러닝 구현
1.1. 데이터 수집
ⅰ) 피싱이 아닌 대화 데이터 - 카카오톡 일반 대화를 추출하여 사용함
ⅱ) 피싱에 해당하는 대화 데이터 - 계획했던 KISA(사이버보안센터)의 데이터 반출이 불가능하여 데이터를 직접 수집 및 생성함. 지인 사칭뿐만 아니라 공무원 사칭, 검사사칭 등 다양한 사례의 데이터를 수집함
1.2. 자연어처리(NLP)
ⅰ) 형태소 분석 - 형태소 분석기에 따른 성능비교 및 선택(okt, mecab)
ⅱ) 불용어 처리 - 도메인에 따라 불용어 리스트 직접 설정
ⅲ) 반복되는 단어 처리 – 3회 이상 같은 단어 반복 시 2회 반복으로 처리
ⅳ) 정수 인코딩 & 패딩 - 모델 input 형식에 맞게 정수 인코딩, 패딩
1.3. 모델 구축
ⅰ) Keras의 Sequential 모델을 이용하여 LSTM 구축
ⅱ) 학습 데이터셋으로 학습시킨 결과 약 90%의 정확성을 보임
1.4. 성능고도화
ⅰ) k-fold cross validation 교차검증을 진행 후, 80%의 정확성을 보임
ⅱ) EarlyStopping, Dropout layer 등으로 과적합방지
1.5. 모델 저장
ⅰ) h5파일로 모델을 저장하여 딥러닝 서버에 내장
서비스제공
2.1. Notification Listener Service
2.2. Realtime Database
2.3. DeepLearning Server
2.4. 예측값 전송
손성환 이현영 강승식, LSTM 모델을 이용한 한국어 드라마 대본 생성, 2020년 한국컴퓨터종합학술대회 논문집, p.744-746, 2020
허윤석 김주애 박영민 강상우 서정연, LSTM 언어모델을 이용한 한국어 자연어 생성 모델, 2017년 한국소프트웨어종합학술대회 논문집, p.853-855, 2017
최세목 박정희, LSTM을 이용한 한글 문장 생성 모델, 2018년 한국소프트웨어종합학술대회 논문집, p.827-829, 2018
신수빈 – 초기 딥러닝 구현, 딥러닝 성능고도화, 안드로이드UI
이서현 - 초기 딥러닝 구현, 클라이언트, DB-안드로이드 연결
정다혜 - 초기 딥러닝 구현, 딥러닝 성능고도화, DB-딥러닝서버 연결
첫 화면 | 피싱현황 확인 |
---|---|
개발한 안드로이드 어플리케이션의 첫 화면이며 가운데 위치한 스위치를 통해 피싱탐지 기능을 ON/OFF할 수 있고, 지금까지 탐지한 피싱현황을 확인할 수 있는 버튼이 있음 | 첫 화면에서 피싱현황을 확인하는 버튼을 눌렀을 때 채팅 별로 피싱확률을 확인할 수 있으며, 그중 피싱이 의심되는 채팅 건수를 확인할 수 있음 |