1 / 8

안티스팸필터 프로젝트

안티스팸필터 프로젝트. xeraph@nchovy.com. 개발 개요. 스팸 필터. 정상 메일 / 스팸 메일. DNS MX 레코드 변경. 태깅 혹은 필터링 된 메일 전달. 교 내망 메일서버들이 이용할 수 있는 스팸 필터링 센터 구축 - 스팸 태깅 및 필터링 - 다양한 스팸 필터링 기법 동원 - 첨부 파일 바이러스 스캔 - 스팸 통계분석 리포팅 - API 제공 , 커스터마이즈 지원. 메일 서버. 관련 기술. DNSBL (DNS-based Blackhole List)

manny
Download Presentation

안티스팸필터 프로젝트

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 안티스팸필터 프로젝트 xeraph@nchovy.com

  2. 개발 개요 스팸 필터 정상 메일 / 스팸 메일 DNS MX 레코드 변경 태깅 혹은 필터링 된 메일 전달 교내망 메일서버들이 이용할 수 있는 스팸 필터링 센터 구축 - 스팸 태깅 및 필터링 - 다양한 스팸 필터링 기법 동원- 첨부 파일 바이러스 스캔- 스팸 통계분석 리포팅- API 제공, 커스터마이즈 지원 메일 서버

  3. 관련 기술 • 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를 이용하여 눈에 보이지 않는 토큰 스팸 확률 중성화 시도 등 • 허니팟을 이용하여 선제적으로 스팸 수집 후 즉시 차단 • 과도한 메일 발송 제한 및 강제적 지연

  4. 개발 환경 • 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 고성능 네트워크 프레임워크 • 비동기 이벤트 기반 프로그래밍 지원

  5. 아키텍처 관리콘솔 (스크립팅 언어) Front-end Service Facade (RPC Service) XMLRPC 서버 로그 DB 정책 설정 로직 Control Plane 메일 필터링 엔진 Data Plane 언어분류기 Classification using Machine Learning

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

  7. 개발 범위: 언어 분류기 훈련 모드 - TEFT (Train Everything) - TOE (Train on Error) - TUM (Train until Mature) - TUNE (Train until No Errors) 이메일 입력 토크나이저 과거 데이터 집합 훈련 분석 엔진 스팸? 배달 혹은 태깅 사용자 피드백

  8. 개발 후 얻을 수 있는 것 • 중규모 프로젝트 개발 이해 • 복잡한 자바 개발 환경 구축을 다루어 볼 수 있음 • 실전적인 서비스 컴포넌트 프로그래밍 연습 • 무중단 서버 설계와 구현 • 의존성 관리 기법 • 필터링 효율 개선의 재미 • 실제 데이터셋을 다루어 볼 수 있으며 알고리즘 개선효과를 바로 볼 수 있음 • 다양한 AI 기계학습 기법들과 휴리스틱을 적용해 볼 수 있음 • 그동안 개인 메일서버나 연구실 메일서버가 스팸에 시달렸다면 좋은 기회 • 프로토콜과 포맷에 대한 이해 • DNS, SMTP, MIME과 관련된 RFC들을 읽고 구현하면서 동작을 깊이 이해하게 됨 • 공통적인 프로토콜/포맷의 설계와 사상을 이해하게 됨(버저닝, 바이너리 인코딩, 확장 가능한 설계 방법, 프로토콜의 근본적인 취약성 등) • 네트워크 현실에 대한 이해 • 표준과 달리 현실에 잘못된 구현과 레거시가 얼마나 많은지 알게 됨 • 인터넷이 스팸과 악성 트래픽으로 가득차 있다는 사실을 느낄 수 있음

More Related