Messenger Phishing Detection
메신저의 피싱여부를 예측하는 LSTM 기반 모델을 수립하여 피싱일 경우 알림을 전송하는 서비스

AI기반 메신저 피싱 예측에 따른 사전 예방 서비스
데이터사이언스 캡스톤디자인 프로젝트
📌 들어가며
안녕하세요. 저희 치킨타올팀은 스마트폰의 메신저 내용을 사전 학습된 AI를 기반으로 메신저 피싱 예측 모델을 통해 메신저 피싱 여부를 판단하여 통지를 통해 예방하는 서비스 개발하였습니다.
📌 과제 수행 목표 및 필요성
프로젝트 개발/기획 동기
- 최근 피싱 유형 중 메신저 피싱(스미싱) 유형이 크게 증가함
- SNS 등을 통해 피싱수법을 빠르게 접하는 연령대와는 달리, 50대 이상의 연령층은 메신저 피싱에 취약하며 대응하기 어려움
- 지인·가족을 사칭하여 접근하거나, 검사를 사칭하는 등 교묘하게 변화하는 다양한 수법들을 빠르게 알아차리기 어려움
- 금전적인 피해 뿐만 아니라 개인정보 유출 등 2차 피해도 잇따라 발생하여 이를 예방하기 위해 프로젝트를 기획하였음
프로젝트 목적 및 목표
1️⃣ 메신저 내용 분석
- KISA(사이버보안 빅데이터 센터)에 데이터 요청 및 메신저 피싱 사례 직접 수집
- 수집한 데이터를 자연어 처리(NLP) 및 텍스트 마이닝 진행
2️⃣ LSTM 예측 모델을 통해 메신저 피싱 분류 및 예측
- 수집된 데이터를 전처리하여 학습 및 평가데이터 세트로 구성
- LSTM 모델 학습 및 성능 고도화 진행
- 룰 기반이 아닌 메신저 내용 중심의 예측
3️⃣ 사용자에게 예측결과 전송
- AI 모델과 연동되어 메신저 피싱 사전 예측 및 예방
- 피싱일 경우, 경고음이 울리거나 메시지를 띄우는 등 사용자에게 알림을 전송
프로젝트 필요성
- 기존의 피싱탐지와는 다르게 카톡 대화를 분석하여 실시간으로 피싱탐지 후, 피싱일 경우 알림이 울리게 함으로써 사용자에게 피싱임을 실시간으로 알려주어 피싱 피해를 최소화할 수 있음
- 번호만으로 피싱을 탐지하는 것을 넘어서, 메신저 내용을 가지고 피싱 여부를 판단함으로써, 지인 사칭과 같은 파악하기 어려운 교묘한 피싱 수법을 가려낼 수 있음
📌 진행 과정
기획과정
-
서비스 제공방식
다음 세 가지 방법 중에, 안드로이드 피싱탐지 어플리케이션 개발(방법 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
- 보안상의 이유로 카톡 데이터를 API로 내보낼 수 없어, 카톡이 오면 알림창을 읽어오는 방식의 Notification Listener Service으로 실시간 카톡 데이터를 받아옴
2.2. Realtime Database
- 실시간으로 수집된 데이터를 파이어베이스의 Realtime Database에 연결하여 저장
2.3. DeepLearning Server
- 학습시킨 딥러닝을 h5파일로 저장하여 딥러닝 서버에 내장
- 상대방이 메신저를 보낼 때마다 즉, 데이터베이스가 업데이트될 때마다 데이터를 서버로 가져와 모델로 피싱확률을 실시간으로 예측
2.4. 예측값 전송
- 예측값을 다시 파이어베이스의 Realtime Database로 전송
- 파이어베이스의 Realtime Database로 전송된 값을 안드로이드로 전송
📌 과제 결과
과제 결과물: 피싱 여부를 예측하여 알림을 전송하는 안드로이드 어플리케이션
- 어플리케이션 실행 시, 카카오톡 알림을 읽어오기 위한 개인정보 수집 동의와 권한 부여수행
- 어플리케이션 내 전원 스위치로 백그라운드 앱실행 on/off 가능
- 카카오톡 대화상대별 채팅 피싱 의심확률 확인 기능
- 피싱 의심확률이 80% 초과 시, 사용자에게 피싱 의심 알림 전송
📌활용방안 및 기대효과
프로젝트 활용방안
- 추가적인 기능을 구현하여 해당 앱을 보완
- 공익을 위하여 해당 앱을 플레이스토어에 등록하여, 메신저 피싱 피해를 방지에 기여함
프로젝트의 기대효과
- 딥러닝(LSTM) 알고리즘을 통해 메신저 피싱을 실시간으로 사전 탐지 및 예방
- 개인의 금전적인 피해와 개인정보 유출에 따른 피해 최소화
- 메신저 피싱 피해 감소로 인한 관련 피해 보상 및 대응 업무 감소
참고 문헌
-
손성환 이현영 강승식, LSTM 모델을 이용한 한국어 드라마 대본 생성, 2020년 한국컴퓨터종합학술대회 논문집, p.744-746, 2020
-
허윤석 김주애 박영민 강상우 서정연, LSTM 언어모델을 이용한 한국어 자연어 생성 모델, 2017년 한국소프트웨어종합학술대회 논문집, p.853-855, 2017
-
최세목 박정희, LSTM을 이용한 한글 문장 생성 모델, 2018년 한국소프트웨어종합학술대회 논문집, p.827-829, 2018
팀원 역할
신수빈 – 초기 딥러닝 구현, 딥러닝 성능고도화, 안드로이드UI
이서현 - 초기 딥러닝 구현, 클라이언트, DB-안드로이드 연결
정다혜 - 초기 딥러닝 구현, 딥러닝 성능고도화, DB-딥러닝서버 연결
📌 결과물
첫 화면 | 피싱현황 확인 |
---|---|
개발한 안드로이드 어플리케이션의 첫 화면이며 가운데 위치한 스위치를 통해 피싱탐지 기능을 ON/OFF할 수 있고, 지금까지 탐지한 피싱현황을 확인할 수 있는 버튼이 있음 | 첫 화면에서 피싱현황을 확인하는 버튼을 눌렀을 때 채팅 별로 피싱확률을 확인할 수 있으며, 그중 피싱이 의심되는 채팅 건수를 확인할 수 있음 |
Stars
0Forks
0Last commit
1 year agoRepository age
5 months
Auto-fetched from GitHub .
MCP servers similar to Messenger Phishing Detection:

Stars
Forks
Last commit

Stars
Forks
Last commit

Stars
Forks
Last commit