제안서 보기

Download Report

Transcript 제안서 보기

안티스팸필터 프로젝트

[email protected]

개발 개요

정상 메일 / 스팸 메일

DNS MX 레코드 변경

스팸 필터

교내망 메일서버들이 이용할 수 있는

스팸 필터링 센터 구축

- 스팸 태깅 및 필터링 - 다양한 스팸 필터링 기법 동원 - 첨부 파일 바이러스 스캔 - 스팸 통계분석 리포팅 - API 제공, 커스터마이즈 지원

태깅 혹은 필터링 된 메일 전달

메일 서버

관련 기술

DNSBL (DNS-based Blackhole List)

DNS 조회에 기반한 블랙리스트 IP 확인

  

국내 KISA-RBL: spamlist.or.kr

SCBL, SURBL, BRBL, SBL, SORBS DNSBL 등 다수의 리스트 존재 RFC 5782 SPF (Sender Policy Framework)

DNS SPF RR 혹은 TXT RR 확장을 통해 도메인과 전송자 IP를 대조하여 확인

RFC 4408 다양한 통계적 필터링 알고리즘

Bayes 정리, 역 카이제곱 분포 응용

개별 토큰의 스팸 확률을 조합하여 전체 메일의 스팸 확률을 계산

Paul Graham, Brian Burton, Fisher-Robinson 등 다양한 알고리즘 제안 휴리스틱/집단지성 기법

HTML/CSS를 이용하여 눈에 보이지 않는 토큰 스팸 확률 중성화 시도 등

허니팟을 이용하여 선제적으로 스팸 수집 후 즉시 차단

과도한 메일 발송 제한 및 강제적 지연

개발 환경

Java 6 w/ Eclipse Maven

프로젝트 관리 도구 (Build, Deploy, Dependency 관리) Mercurial

분산 버전관리시스템 Kraken (http://krakenapps.org)

크라켄 코어: 자바 OSGi 애플리케이션 서버. Hot deploy 가능한 서비스 플랫폼

  

크라켄 로그DB: 대용량 로그 실시간 압축 저장 및 전용 로그 쿼리 문법 제공 크라켄 DNS: DNS 클라이언트 크라켄 GEOIP: IP 위치추적 Netty (http://www.jboss.org/netty)

자바 NIO 고성능 네트워크 프레임워크

비동기 이벤트 기반 프로그래밍 지원

아키텍처

Front-end Service Facade (RPC Service)

관리콘솔 (스크립팅 언어) XMLRPC 서버

Control Plane

정책 설정 로직 메일 로그 DB 필터링 엔진 언어분류기

Data Plane Classification using Machine Learning

개발 범위: 필터링 엔진

메일 수신 메일 파싱 스팸/바이러스 검사 태깅 및 로깅 포워딩/바운스 SMTP 프록시로 동작 DNS MX 레코드를 수정하여, 실제 메일서버 대신 모든 메일 수신 과도하게 메일 전송하는 호스트에 대해서는 전송량 제어 각종 인코딩 해석 (7bit, 8bit, binary, base64, quoted-printable 등) MIME 메시지 파싱, 첨부파일 분리 DNS BL 검사, SPF 레코드 조회 및 검사 기계학습된 데이터 집합에 기반한 베이지안 필터링 휴리스틱 규칙이나 정규표현식 등 정책에 의한 스팸 필터링 첨부파일에 대한 바이러스 스캔 (ClamAV), 실행파일 수집 메일 제목에 태그 추가하여 메일 클라이언트에서 분류 스팸으로 의심되는 메일을 필터링하거나 격리 후 통지 정상 혹은 스팸 메일 전달에 대한 로깅 (로컬 및 syslog 지원) Return-Path 헤더 추가 후 뒷단의 메일서버로 메일 전달 스팸 메일의 경우 바운스 처리

개발 범위: 언어 분류기

이메일 입력 토크나이저 과거 데이터 집합

훈련 모드

- TEFT (Train Everything) - TOE (Train on Error) - TUM (Train until Mature) - TUNE (Train until No Errors) 훈련 분석 엔진 스팸?

배달 혹은 태깅 사용자 피드백

개발 후 얻을 수 있는 것

중규모 프로젝트 개발 이해

복잡한 자바 개발 환경 구축을 다루어 볼 수 있음

  

실전적인 서비스 컴포넌트 프로그래밍 연습 무중단 서버 설계와 구현 의존성 관리 기법 필터링 효율 개선의 재미

실제 데이터셋을 다루어 볼 수 있으며 알고리즘 개선효과를 바로 볼 수 있음

 

다양한 AI 기계학습 기법들과 휴리스틱을 적용해 볼 수 있음 그동안 개인 메일서버나 연구실 메일서버가 스팸에 시달렸다면 좋은 기회 프로토콜과 포맷에 대한 이해

DNS, SMTP, MIME과 관련된 RFC들을 읽고 구현하면서 동작을 깊이 이해하게 됨

공통적인 프로토콜/포맷의 설계와 사상을 이해하게 됨 (버저닝, 바이너리 인코딩, 확장 가능한 설계 방법, 프로토콜의 근본적인 취약성 등) 네트워크 현실에 대한 이해

표준과 달리 현실에 잘못된 구현과 레거시가 얼마나 많은지 알게 됨

인터넷이 스팸과 악성 트래픽으로 가득차 있다는 사실을 느낄 수 있음