4.최종 보고

                    종합설계 프로젝트 최종보고서 요약

팀명

 15조

제출일

2013 5 28

프로젝트 제목

 CIA(Critical Information Alarm)

설계 프로젝트 개요

프로젝트 요약문

  • 프로젝트의 목표

가. 개인정보의 유출을 정확히 탐지함으로써 통보 대상 및 시점에 대한 모호성을 줄일 수 있는 시스템을 개발한다.


나. DB 단에서 필요한 정보만을 가지고 동작하여 기존 서비스의 성능에 대한 영향을 최소화하는 시스템을 구축한다. 


다. 다른 서비스에 제한되지 않게 플랫폼을 독립적으로 개발한다.


라. 애플리케이션을 통한 사용자 친화적 시스템을 구축한다.


결과적으로 정보주체는 본인이 제공한 개인정보에 대한 합당한 권리를 보장 받을 수 있고, 시스템은 개인정보 처리에 대한 부담을 덜 수 있게 하는 것이 최종 목표이다.

  •   계획서 상의 연구내용

CIA 프로젝트에서는 데이터베이스로 들어오는 요청을 중간에 수집(Sniffing)하고 수집한 데이터를 분석(Parsing)하여 그로 인한 결과를 판단하여 알릴 수 있는 시스템(Push Service)이 필요하다. 그리고 연구를 위한 가상의 구현 공간(Virtual System)이 필요하다.

1. 가상 웹사이트 구현
Apache와 MySql, PHP 기반의 웹 서버와 DB 서버를 이용하여 실제 사용되고 있는 사이트와 유사한 시스템의 가상 환경을 설계한다.

2. Sniffing
Pcap 라이브러리를 이용하여 웹 서버에 요청되는 Query 문을 Sniffing 하는 기술을 구현한다.

3. Query Parsing
탐지되는 과정에서 오탐가능성을 없애기 위하여 정규표현식을 이용한 결과값 분석이 아닌 Sniffing으로 수집한 Query문으로부터 Table과 Column 명을 추출하기 위한 Query Parser를 구현한다.

4. Push Service
구글의 GCM 서비스를 이용하여 서버로부터 알림을 받고 기록을 조회할 수 있는 어플리케이션을 개발하고 기타 부가적인 서비스를 구현한다.

마일스톤 수행 내용

1.  가상 웹사이트 구현

Apache 기반의  서버를 구축하고 MySql 기반의 데이터베이스 서버를 구축하였다그리고 PHP 기반  사이트를 구현하여 기존에 존재하는  사이트와 유사한 환경을 구현하였다.

기존의  사이트처럼 회원 가입  주민등록번호연락처주소  다양한 개인정보를 입력하도록 만들어 CIA 프로젝트를 테스트   있는 환경을 만들었다.

주민등록번호에 대한 부분은 저장하지 않는 방향으로 서버를 구현하였다하지만 추후 다양한 내용에 대한 검증을 위해서는 주민등록번호 역시 HASH 암호화된 형태로 저장을 하여 검증 대상에 포함하도록 구현해야  것이다. 

2.  Sniffing

Pcap 라이브러리를 이용하여 가상 웹사이트에서 항목을 선택할  DB 서버에 들어오는 패킷을 Sniffing하여 실행되는 Query 문을 수집하는 기능을 구현하였다패킷에서 다양한 정보를 추출 할 수 있지만 그 중에서 Query 문과 IP Address 만이 필요하다.

하지만 현재 Parser에서 구현되어 있는 입력파일의 형태가 쿼리문 형태의 문자열만을 Parsing하도록 구현이 되어 있어 현재 시연 가능한 수준인 IP 주소를 제외한 쿼리문만 남기도록 소스코드를 변경하였다.

3. Query Parser

Java 파일 입출력을 통하여 Log를 Scan한다. Log 확인은 지정한 정규표현식을 이용하여 확인한다. 확인 후 Query Parser를 통해 입력된 Query 문에서 Table 명과 Column 명을 추출한다. 이후 Jsql-Parser를 이용하여 구현한 프로그램으로 각 Token을 생성한다. Token의 조합으로 개인정보를 확인 후 개인정보여부에 따라 HTTP 통신을 통하여 패킷을 보낸다. 분석이 끝난 Log는 삭제하여 Local 상에는 기록을 남기지 않는다.

4.  Push Service

Google에서 제공하는 GCM(Google Cloud Messaging)을 이용하여 안드로이드 애플리케이션의 푸쉬 기능을 구현한다.

서버는 GCM 서버에 메시지를 전송하고 메시지를 받은 GCM 서버는 디바이스의 안드로이드 애플리케이션에 메시지를 전송한다.

디바이스에서는 HttpRequest를 이용하여 서버에 디바이스 고유의 아이디와 자신의 개인 아이디 그리고 e-mail 주소 등록 요청과 로그 기록 조회 요청을 한다. 로그 조회 요청을 받은 서버는 디바이스에서 로그 기록을 조회 할 수 있도록 xml 형식의 페이지를 제공하고 애플리케이션은 전송받은 페이지를 Parsing 과정을 거쳐 ListView 형식으로 화면에 보여준다.

푸쉬 알림은 Level에 따라 결정된다. Critical이나 Emergency의 경우 각각 빨간색과 파란색 다이얼로그를 띄워 위험 수준을 알리고 Warning의 경우 관리자의 확인 후 확인결과에 따라 알림여부를 결정한다. 또한 모든 레벨의 데이터는 Log 데이터베이스에 저장된다.

5.  Alarm Level의 세분화

알람의 단계를 Level1(Normal), Level2(Warning), Level3(Emergency), Level4(Critical) 네 단계로 나누었다. Level1 Normal 단계는관리자나, 사내 IP, 인트라넷 등으로 유입되는 Query 중, 개인정보를 업무적으로 사용하였다는 판단이 될 경우. Level2 Warning 단계는 외부 공인 IP로 유입되는 Query 중, 개인정보의 정상적인 사용이라는 판단이 될 경우. Level3 Emergency 단계는 외부 공인 IP로 유입되는 Query 중, 로그인을 하는 Query로 판단 될 경우, Level4 Critical 단계는 관리자나 사내 IP, 인트라넷 등으로 유입되는 Query 중, 개인정보가 업무적으로 사용된 것이 아닌 공격에 의한 Query로 판단 될 경우로 정의한다.

네 단계 중 Normal 단계와 Warning 단계는 Log만을 남기고 Emergency 단계와 Critical 단계는 사용자에게 알람을 준다. 이와 같은 알람 레벨의 세분화를 통해 개인정보의 업무적 사용이나 정상적인 접근이 과반수인 실제 상황에서 불필요한 알람을 줄이고 사용자에게 보다 정확하고 구체적인 정보를 제공할 수 있다.

 

최종 보고 요약

1    시스템 기능 및 구조

 

데이터베이스에 어떠한 접근이 오게되면 해당 트래픽을 Pcap Library를 사용하여 Sniffing 합니다. Sniffing된 로그를 Parsing해서 해당 로그에 개인정보가 포함되어 있는지 자체 제작한 알고리즘을 통해 분석한 뒤, 개인정보인 경우 위험도(Alarm Level)에 따라 알림 서버를 통해 사용자에게 해당 알림을 주는 구조를 갖습니다. 

 

2    기대효과 및 활용방안

책임 추적성이란, 정보 처리 시스템은 정보 보호 규칙을 위반한 개인을 추적할 수 있고, 각 개인은 자신의 행위에 대해서 책임을 지는 것을 의미한다. 개인정보의 사용내용을 통보해줌으로써, 개인의 정보가 어떻게 사용되고 있는지 알려줌으로써 개인의 책임감을 향상시켜 줄 수 있을 것으로 기대 된다.

책임 추적성의 증가로 인하여, 기업의 입장에서 개인정보 사용내역을 개인에게 통보를 하였기 때문에 ‘2011 7월 네이트 해킹 관련 1인당 20만원 배상금 판결같은 전적인 기업 부담금을 줄일 수 있을 것으로 기대 된다.

자동화된 시스템을 통하여, 외부에서의 개인정보 접근과 APT 공격 징후를 탐지 후 사용자에게 알림을 줌으로써 이 시스템을 사용하는 모든 사용자가 공격 징후를 탐지 할 수 있는 효과를 얻을 수 있다. 이에 따라 즉각적인 대처가 이루어 질 수 있다.

 

    
프로젝트 결과

< 기본 UI 및 사용자 정보 입력 화면 >
  
 
  

< 각 레벨에 따른 Push 알림 및 내부 IP 접근시 관리자에게 확인 화면 >
     


동영상    

Ċ
15조 캡스톤,
2013. 5. 28. 오전 8:14
Ċ
15조 캡스톤,
2013. 5. 28. 오전 8:43
Ċ
15조 캡스톤,
2013. 5. 28. 오전 8:20
Comments