KR101312125B1 - 콘텐츠 필터링 장치 및 방법 - Google Patents

콘텐츠 필터링 장치 및 방법 Download PDF

Info

Publication number
KR101312125B1
KR101312125B1 KR1020120018009A KR20120018009A KR101312125B1 KR 101312125 B1 KR101312125 B1 KR 101312125B1 KR 1020120018009 A KR1020120018009 A KR 1020120018009A KR 20120018009 A KR20120018009 A KR 20120018009A KR 101312125 B1 KR101312125 B1 KR 101312125B1
Authority
KR
South Korea
Prior art keywords
content
data
filtering
buffer
service profile
Prior art date
Application number
KR1020120018009A
Other languages
English (en)
Other versions
KR20130101645A (ko
Inventor
조영탁
박진만
Original Assignee
주식회사 팬택
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 팬택 filed Critical 주식회사 팬택
Priority to KR1020120018009A priority Critical patent/KR101312125B1/ko
Priority to US13/670,927 priority patent/US20130219483A1/en
Publication of KR20130101645A publication Critical patent/KR20130101645A/ko
Application granted granted Critical
Publication of KR101312125B1 publication Critical patent/KR101312125B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0245Filtering by information in the payload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 다양한 클라우드 서비스들에서 수신하는 콘텐츠들을 필터링하는 장치 및 방법에 관한 것으로서, 콘텐츠 필터링 장치는 적어도 하나의 클라우드 서버로부터 콘텐츠를 구성하는 데이터 스트림을 수신하는 수신부, 상기 적어도 하나의 클라우드 서버에 대응하는 서비스 프로파일 및 필터링 조건에 기초하여 상기 콘텐츠를 필터링하는 필터링부 및 상기 데이터 스트림에서 상기 필터링 조건과 매칭되는 상기 서비스 프로파일의 인덱스에 기초하여 상기 필터링 조건과 관련된 데이터를 검색하는 제어부를 포함한다.

Description

콘텐츠 필터링 장치 및 방법{CONTENTS FILTERING APPARATUS AND METHOD THEREOF}
기술분야는 다양한 클라우드 서비스들에서 수신하는 콘텐츠들을 필터링하는 장치 및 방법에 관한 것이다.
최근 클라우드 서비스에 대한 관심이 증가하면서, 개인은 물론 기업단위로 클라우드 서비스를 활용하고자 한다. 클라우드 서비스는 서비스 사용자의 콘텐츠를 서버에 저장하고, 다양한 종류의 단말에서 콘텐츠에 접근하게 함으로써, 시간과 지역 및 장치에 의존하지 않고 원하는 콘텐츠를 용이하게 열람하거나 공유할 수 있게 하는 서비스를 의미한다.
클라우드 서비스가 단순히 개인 웹 스토리지(storage)의 개념을 넘어 개인간, 그룹간, 기업간 콘텐츠의 공유 수단으로 이용됨으로써, 다양한 분야에서 보다 적극적으로 활용 될 것으로 예상된다.
다양한 분야에서 클라우드 서비스가 활용되게 되면, 콘텐츠 공유 및 공동 작업 환경을 구현하기 위해, 현재 폐쇄적으로 운영되는 각각의 클라우드 서비스들이 서로 연계될 필요가 있다.
한편, 클라우드의 확산으로 인하여 콘텐츠의 공유는 보다 자유로워졌으나, 이에 따른 보안위협이 증가하고 있다. 또한, 클라우드 간의 연계를 고려한다면 악성 콘텐츠의 파급효과는 지금보다 더 심각해질 것이다. 특히 휴대용 단말에 적용되는 기술이 PC(Personal Computer)에 준하는 수준으로 발전함에 따라, 중요한 생활수단의 하나로 자리잡은 휴대용 단말을 공격할 수 있는 악의적 콘텐츠의 등장을 예상할 수 있다.
실제로 안드로이드 마켓을 이용하는 경우, 임의의 앱을 다운로드 할 때, 앱이 필요로 하는 시스템 권한이 사용자에게 고지되는데, 이러한 고지를 통해 단순히 사용자에게 시스템 권한 관련 정보가 전달될 뿐, 악의적 콘텐츠가 포함된 앱이 불필요하게 광범위한 권한을 요구하는 경우에 상기 앱을 차단하는 수단은 제공되지 않는다.
특히 사용자가 공지된 목록상의 각각의 권한이 어떤 방식으로 이용되는지 이해하지 못한 상태에서, 악의적 콘텐츠가 포함된 앱을 다운로드하여 설치할 경우 개인정보유출은 물론, 단말에 저장된 사업상 비밀자료가 유출되거나 파괴되는 등의 문제가 발생할 수 있다.
클라우드 서비스의 경우에도 마찬가지로, 콘텐츠를 수신하는 장치에서 서비스를 통하여 수신하는 콘텐츠에 숨어있는 보안위협을 차단하는 기능이 없거나, 있더라도 사용자가 원하는 수준을 만족시키지 못한다면, 클라우드 서비스의 특성상 사용자 개인 또는 휴대용 단말 한 대의 차원을 넘어 클라우드에 연결된 다른 사용자, 기업 및 공공기관 등으로 보안위협에 노출될 가능성이 있다.
또한, 향후 클라우드 간의 연동기술이 발달하게 되면, 보안정책이 없는 클라우드 서비스 A와 임의의 보안정책을 갖는 서비스 B가 연동된다고 할 때, 사용자 입장에서는 무제한적인 서비스 A로부터 공유되는 콘텐츠를 신뢰할 수 있을 것인지에 대한 의문이 생긴다.
본 발명은 각각의 클라우드 서비스에 대응하는 서비스 프로파일을 인덱스 매핑 테이블에 기초하여 통일된 형태로 재생성함으로써, 사용자의 요구사항에 맞는 맞춤형 보안정책을 상이한 보안정책을 가지고 있는 각기 다른 클라우드 서비스에 일관되게 적용하는 방법을 제공한다.
또한, 본 발명은 데이터의 수신 시점에 데이터 스트림의 부가정보를 콘텐츠의 실제 데이터보다 먼저 필터링함으로써, 악의적 콘텐츠가 파일 형태로 저장되기 전에 악의적 콘텐츠를 필터링하는 방법을 제공한다.
또한, 본 발명은 필터링 조건에 따라 다양한 크기를 가지는 필터버퍼를 이용함으로써, 제한적인 메모리 용량을 가지는 휴대용 단말에서 효율적으로 다양한 클라우드 서비스의 파일들을 필터링하도록 하는 방법을 제공한다.
또한, 본 발명은 원하는 필터 정책을 추가하고, 추가된 필터 정책에 기초하여 재생성 된 통일된 형태의 서비스 프로파일을 이용함으로써, 보다 용이하게 필터링 조건을 변경하고, 보안을 강화시키는 방법을 제공한다.
일실시예에 따른 콘텐츠 필터링 장치는 적어도 하나의 클라우드 서버로부터 콘텐츠를 구성하는 데이터 스트림을 수신하는 수신부, 상기 적어도 하나의 클라우드 서버에 대응하는 서비스 프로파일 및 필터링 조건에 기초하여 상기 콘텐츠를 필터링하는 필터링부 및 상기 데이터 스트림에서 상기 필터링 조건과 매칭되는 상기 서비스 프로파일의 인덱스에 기초하여 상기 필터링 조건과 관련된 데이터를 검색하는 제어부를 포함한다.
다른 일실시예에 따른 콘텐츠 필터링 장치는 상기 데이터 스트림을 구성하는 데이터들을 소정 영역의 크기만큼 저장하는 수신버퍼, 상기 필터링 조건과 관련된 데이터의 크기에 따라 가변적인 크기를 가지며, 상기 수신버퍼에 저장된 상기 필터링 조건과 관련된 데이터들의 복사본을 저장하는 필터버퍼 및 상기 수신버퍼의 크기에 기초하여 결정되는 복수개의 메모리 블록을 포함하는 메모리 풀(memory pool)을 더 포함할 수 있다.
상기 제어부는 상기 필터링 조건과 관련된 데이터의 크기에 기초하여 상기 필터버퍼에 할당되는 상기 메모리 블록의 수를 적응적으로 조절할 수 있다.
상기 제어부는 상기 적어도 하나의 클라우드 서버의 액세스에 필요한 정보 및 상기 데이터 스트림의 구성정보를 포함하는 상기 서비스 프로파일을 로딩, 수정, 삭제 또는 생성하는 서비스 프로파일 관리부; 및 상기 서비스 프로파일의 식별 값과 매칭되는 필터링 조건을 필터 정책에 기초하여 로딩, 수정, 삭제 또는 생성하는 필터 정책 관리부를 포함할 수 있다.
상기 제어부는 인덱스 매핑 테이블의 기준정보에 기초하여 상기 인덱스 매핑 테이블의 인덱스와 상기 서비스 프로파일의 데이터 스트림 구성정보를 매핑하는 매핑부를 포함할 수 있다.
상기 제어부는 신규 클라우드 서비스가 추가되는 경우, 인덱스 매핑 테이블에 기초하여 상기 신규 클라우드 서비스의 서비스 프로파일을 클라우드 서비스의 종류에 관계없이 통일된 서비스 프로파일로 재생성할 수 있다.
상기 인덱스 매핑 테이블은 등록된 클라우드 서비스의 필터 정책에 기초하여 결정된 필터링 조건과 상기 필터링 조건 별로 할당된 인덱스를 포함하고, 상기 데이터 스트림 구성정보는 콘텐츠의 부가정보 및 상기 콘텐츠의 실제 데이터를 전송하는 방식에 대한 정보를 포함할 수 있다.
상기 제어부는 상기 필터링 조건과 관련된 데이터의 상기 수신버퍼 상에서의 위치, 상기 필터링 조건의 판별에 소요되는 시간, 상기 수신버퍼에 저장된 데이터들의 플러쉬(flush)에 소요되는 시간에 기초하여 상기 필터버퍼에 할당되는 상기 메모리 블록의 수를 적응적으로 조절할 수 있다.
상기 제어부는 상기 필터링부에서 상기 필터링 조건에 부합하는 콘텐츠가 검출되면, 상기 데이터 스트림의 수신을 차단하고, 수신버퍼에 저장된 데이터를 삭제하고, 파일 시스템에 저장된 콘텐츠 파일을 삭제할 수 있다.
상기 제어부는 상기 적어도 하나의 클라우드 서버에 대응하는 서비스 프로파일에 상기 필터링 조건으로 설정된 항목이 존재하는지 판단할 수 있다.
다른 일실시예에 따른 콘텐츠 필터링 장치는 상기 수신부에서 수신된 후, 파일 시스템에 저장된 콘텐츠 파일의 안정성을 검사하는 콘텐츠 파일 검사부를 더 포함할 수 있다.
상기 필터링부는 필터버퍼로 상기 콘텐츠의 데이터가 복사되면, 상기 필터링 조건에 기초하여 상기 서비스 프로파일로부터 상기 필터링 조건에 매칭되는 데이터의 위치를 확인하고, 상기 확인된 위치에 기초하여 상기 필터버퍼에서 상기 필터링 조건에 매칭되는 데이터를 추출할 수 있다.
다른 일실시예에 따른 콘텐츠 필터링 장치는 상기 적어도 하나의 클라우드 서버로 콘텐츠를 구성하는 데이터 스트림을 송신하는 송신부 및 상기 송신하는 데이터 스트림을 구성하는 데이터들을 소정 영역의 크기만큼 저장하는 송신버퍼를 더 포함할 수 있다.
일실시예에 따른 콘텐츠 필터링 방법은 적어도 하나의 클라우드 서버로부터 콘텐츠를 구성하는 데이터 스트림을 수신하는 단계, 상기 데이터 스트림에서 필터링 조건과 매칭되는 상기 적어도 하나의 클라우드 서버에 대응하는 서비스 프로파일의 인덱스에 기초하여 상기 필터링 조건과 관련된 데이터를 검색하는 단계 및 상기 서비스 프로파일 및 상기 필터링 조건에 기초하여 상기 콘텐츠를 필터링하는 단계를 포함한다.
다른 일실시예에 따른 콘텐츠 필터링 방법은 상기 데이터 스트림을 구성하는 데이터들을 소정 영역의 크기를 가지는 수신버퍼에 저장하는 단계; 및
상기 필터링 조건과 관련된 데이터의 크기에 따라 가변적인 크기를 가지며, 상기 수신버퍼에 저장된 상기 필터링 조건과 관련된 데이터들의 복사본을 필터버퍼 에 저장하는 단계를 더 포함할 수 있다.
다른 일실시예에 따른 콘텐츠 필터링 방법은 상기 필터링 조건과 관련된 데이터의 크기에 기초하여 상기 필터버퍼에 할당되는 상기 메모리 블록의 수를 적응적으로 조절하는 단계를 더 포함할 수 있다.
상기 콘텐츠를 필터링하는 단계는 상기 필터버퍼로 상기 콘텐츠의 데이터가 복사되면, 상기 필터링 조건에 기초하여 상기 서비스 프로파일로부터 상기 필터링 조건에 매칭되는 데이터의 위치를 확인하고, 상기 확인된 위치에 기초하여 상기 필터버퍼에서 상기 필터링 조건에 매칭되는 데이터를 추출하는 단계 및 상기 추출된 데이터에 상기 필터링 조건과 매칭되는 정보가 포함되는지 판단하는 단계를 포함할 수 있다.
본 발명은 각각의 클라우드 서비스에 대응하는 서비스 프로파일을 인덱스 매핑 테이블에 기초하여 통일된 형태로 재생성함으로써, 사용자의 요구사항에 맞는 맞춤형 보안정책을 상이한 보안정책을 가지고 있는 각기 다른 클라우드 서비스에 일관되게 적용할 수 있다.
또한, 본 발명은 데이터의 수신 시점에 데이터 스트림의 부가정보를 콘텐츠의 실제 데이터보다 먼저 필터링함으로써, 악의적 콘텐츠가 파일 형태로 저장되기 전에 악의적 콘텐츠를 필터링할 수 있다.
또한, 본 발명은 필터링 조건에 따라 다양한 크기를 가지는 필터버퍼를 이용함으로써, 제한적인 메모리 용량을 가지는 휴대용 단말에서 효율적으로 다양한 클라우드 서비스의 파일들을 필터링하도록 할 수 있다.
또한, 본 발명은 원하는 필터 정책을 추가하고, 추가된 필터 정책에 기초하여 재생성 된 통일된 형태의 서비스 프로파일을 이용함으로써, 보다 용이하게 필터링 조건을 변경하고, 보안을 강화시킬 수 있다.
또한, 본 발명은 악의적 콘텐츠로 판정된 데이터의 송수신을 차단함으로써, 불필요하게 콘텐츠가 저장될 가능성을 미연에 방지하고, 불필요한 데이터 통신의 추가 발생을 방지할 수 있다.
또한, 본 발명은 클라우드 서비스 별 전용 클라이언트를 필요로 하지 않고, 각 서비스에 대응하는 클라우드 플러그 모듈을 포함하는 단일 클라이언트를 이용함으로써, 가상의 통합 클라우드를 제공할 수 있다.
또한, 본 발명은 가상의 통합 클라우드를 이용하여 클라우드 서비스들 간에 콘텐츠를 공유하도록 함으로써, 신규 클라우드 서비스에 대한 클라이언트의 확장성을 용이하게 할 수 있다.
도 1은 일반적인 클라우드 서비스의 액세스 환경 및 적용되는 보안정책을 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 콘텐츠 필터링 장치의 블록도이다.
도 3은 본 발명의 다른 일실시예에 따른 콘텐츠 필터링 장치의 블록도이다.
도 4는 본 발명의 또 다른 일실시예에 따른 콘텐츠 필터링 장치의 블록도이다.
도 5는 본 발명의 일실시예에 따른 콘텐츠 필터링 장치에서 수신 데이터를 필터로 전달하는 과정을 나타낸 도면이다.
도 6은 본 발명의 일실시예에 따른 콘텐츠 필터링 장치에서 메모리풀을 이용하여 필터버퍼의 크기를 적응적으로 조절하는 과정을 나타낸 도면이다.
도 7은 본 발명의 일실시예에 따른 콘텐츠 필터링 장치에서 송수신하는 데이터 스트림의 구성을 나타낸 도면이다.
도 8 은 본 발명의 일실시예에 따른 콘텐츠 필터링 장치에서 인덱스 매핑 테이블에 기초하여 서비스 프로파일을 재생성하는 과정을 나타낸 도면이다.
도 9는 본 발명의 일실시예에 따른 콘텐츠 필터링 방법의 흐름도이다.
도 10은 본 발명의 일실시예에 따른 콘텐츠 필터링 방법에서 데이터 버퍼링의 흐름을 나타낸 도면이다.
도 11 은 본 발명의 일실시예에 따른 콘텐츠 필터링 방법에서 서비스 프로파일의 검색, 수정 및 생성 과정을 나타낸 도면이다.
도 12는 본 발명의 일실시예에 따른 콘텐츠 필터링 방법에서 필터링 정책의 검색, 추가 과정을 나타낸 도면이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 일반적인 클라우드 서비스의 액세스 환경 및 적용되는 보안정책을 나타낸 도면이다.
도 1을 참조하면, 클라우드 서비스의 액세스 환경은 스토리지를 갖는 클라우드 서버, 클라우드 서버에 접속할 수 있는 이동통신단말, 데스크탑 컴퓨터, 지능형TV 등에서 동작하는 클라이언트 및 보안정책으로 구성될 수 있다.
클라우드 서비스는 특정 콘텐츠 유형에 특화된 경우도 있고, 혹은 모든 콘텐츠를 공유할 수 있는 형태도 존재한다.
일반적으로 각 클라우드 서비스의 전용 클라이언트를 통해 계정정보를 클라우드 서비스에 전달하고, 접속 인증을 받으면 단말은 클라우드 서버 상에 존재하는, 공유가 허가된 콘텐츠들의 리스트를 획득한다.
사용자는 획득한 콘텐츠 리스트로부터 원하는 콘텐츠를 선택하여 해당 콘텐츠를 다운받을 수 있다. 또는 단말에 저장된 콘텐츠를 클라우드 서버에 업로드할 수 있고, 클라우드 서버 상의 콘텐츠를 편집 또는 삭제할 수 있다.
보안정책은 클라우드 서비스의 콘텐츠들 중에서 소정의 콘텐츠를 악의적인 콘텐츠로 분류하는 기준이 된다. 예를 들면, 보안정책에는 금칙어의 포함여부, 업로더의 ID(Identifiaion), 파일이름 등이 포함될 수 있다.
보안정책은 클라우드 서버에 접속하여 콘텐츠 검색 시에 적용될 수도 있고, 클라우드 서버 상에 저장된 콘텐츠를 검색 하는 경우에 적용될 수 도 있다. 보안정책이 설정되지 않은 클라우드 서비스도 있을 수 있다. 즉, 보안정책은 서비스의 목적에 따라, 서비스 제공자의 관리 방식 및 사용자의 경험에 따라 제각기 다르게 활용될 수 있다.
클라우드 서비스 1은 문서 콘텐츠에 특화된 서비스를 제공하며, 클라이언트 는 문서상에 금칙어가 포함되었는지 여부로 불량 콘텐츠를 필터링할 수 있다. 사용자는 클라이언트를 이용하여 금칙어를 직접 추가, 삭제 및 변경할 수 있다.
클라우드 서비스1과 클라이언트 간에는 서비스 가입, 사용자 인증, 서비스 리스트 조회/생성/삭제/이름변경, 공유 문서 목록 조회, 문서 업로드/다운로드/삭제에 대한 각각의 요청/응답 신호가 송수신될 수 있다.
콘텐츠 공유시 표 1과 같은 콘텐츠 부가정보가 데이터 스트림에 추가되어 HTTP POST방식으로 전송될 수 있다. 콘텐츠 부가정보는 메타데이터의 형식으로 구성될 수 있다.
메타데이터 tag 의미 자료형식
매직넘버 매직넘버 바이너리
<content-title></content-title> 콘텐츠 제목 텍스트
<content-file></content-file> 실제 파일 이름 텍스트
<author></author> 최초 공유자/게시자/업로더 ID 텍스트
<date></date> 최초 공유날짜 정수
<doc-ver></doc-ver> 문서 버전 정수
<last-update></last-update> 최종 수정날짜 정수
<content-size></content-size> 실제 문서 데이터의 크기 정수
문서데이터 실제 문서 데이터 텍스트
</eot> End of transmission 식별자 없음
클라우드 서비스 1은 실제 데이터 송수신시에 부가데이터와 문서 데이터를 다음과 같이 하나의 데이터 스트림으로 구성한다.
Figure 112012014425238-pat00001
클라우드 서비스 2는 동영상에 특화된 서비스를 제공하며, 클라이언트는 업로더의 ID를 이용하여 불량 콘텐츠를 업로드하는 사용자의 콘텐츠를 차단하고, 파일이름을 이용하여 불법복제된 영화 콘텐츠를 차단할 수 있다. 클라이언트는 보안정책의 주기적 갱신을 위해 클라우드 서비스로부터 불량 업로더의 ID및 불법 콘텐츠의 파일이름 리스트를 다운로드 받을 수 있다.
클라우드 서비스 2와 클라이언트 S/W간에는 서비스 가입, 사용자 인증, 서비스 리스트 조회/생성/삭제/이름변경, 공유 동영상 목록 조회, 동영상 업로드/다운로드/삭제에 대한 각각의 요청/응답 신호가 송수신될 수 있다.
클라우드 서비스 2의 경우, 동영상 공유를 위한 데이터 스트림 외에 성인 인증을 위한 HTTP POST 방식을 이용하는 별도의 데이터 스트림이 추가될 수 있다.
동영상 파일의 공유 시에는 FTP방식을 이용하고, 표 2와 같은 콘텐츠 부가정보는 HTTP POST 방식의 별도의 데이터 스트림을 통해 전송될 수 있다.
메타데이터 tag 의미 자료형식
<movietitle></movietitle> 콘텐츠 제목 텍스트
<filename></filename> 실제 파일 이름 텍스트
<filmedby></filmedby> 제작사 이름 텍스트
<presentedby></presentedby> 배급사 이름 텍스트
<copyrightinfo></copyrightinfo> 기타 저작권 정보 텍스트
<uploader></uploader> 최초 공유자/게시자/업로더 ID 텍스트
<uploaddate></uploaddate> 최초 공유날짜 정수
<runningtime></ruinningtime> 동영상의 총 재생 시간 정수
<genre></genre> 장르 식별자 정수
<director></director> 감독 이름 텍스트
<actor></actor> 배우 명단 텍스트
<rating></rating> 상영등급식별자 정수
Etc. 기타등등 기타등등
또한, 별도의 자막 파일(*.smi 등)이 존재할 경우, 자막 파일도 HTTP POST 방식의 데이터 스트림을 통해 전송될 수 있다.
클라우드 서비스 2는 클라우드 서비스 1과 달리 부가 데이터만을 다음과 같이 실제 데이터를 구성하여 전송하고 실제 동영상 파일은 부가데이터 전송 완료 후에 별도의 스트림으로 전송한다.
Figure 112012014425238-pat00002
클라우드 서비스 n은 다양한 종류의 콘텐츠를 지원하며, 특별한 보안정책이 없으므로, 클라이언트는 다용한 종류의 콘텐츠를 다운로드 받을 수 있다.
클라우드 서비스 n은 클라우드 서비스 1과 마찬가지로 클라이언트와 회원가입, 사용자 인증, 가상폴더 관리, 콘텐츠 목록 조회 등에 대한 각각의 요청과 응답 신호를 송수신하지만, 송수신하는 데이터의 구성은 다르다.
클라우드 서비스 n은 복수의 파일을 하나의 스트림으로 전송할 수 있으며, 데이터 스트림은 표 3과 같이 구성될 수 있다. 하나의 스트림에 데이터와 부가정보가 포함될 수 있다. 별도의 데이터 구분 태그 없이 데이터 스트림을 바이트(byte)단위로 구획함으로써, 기 설정 구간에 데이터를 기록하고 남는 공간을 zero-padding하여 메타데이터의 크기를 고정할 수 있다.
메타데이터 tag 의미 자료형식
1 bytes (첫 번째 byte) 전송할 파일의 개수
1024 bytes (다섯 번째 byte부터) 파일 1에 대한 부가정보
바이너리 데이터 파일 1에 대한 실제 데이터
1024 bytes 파일 2에 대한 부가정보
바이너리 데이터 파일 2에 대한 실제 데이터
And so on
512 bytes 파일 이름
16 bytes 파일 크기
496 bytes 전용 클라이언트 S/W가 인식할 수 있는 광고 데이터
그런데, 기존의 방식으로는 개인, 기업 및 국가기관에서 하나의 통일된 보안정책을 적용하여 각 클라우드 서버를 통한 콘텐츠 공유를 제어하고자 하는 경우, 각 클라우드 서비스에 대한 통일된 보안정책의 적용이 불가능하다. 각 클라우드 서비스 별로 클라이언트의 종류가 다르고, 보안정책도 클라이언트 별로 다르게 표시되고, 설정되기 때문이다.
또한, 현재로서는 클라우드 서비스가 제공하는 콘텐츠에 대해서 다운로드 후에 검증이 이루어지고 있다. 즉, 보안상 위협이 되는 요소를 갖는 콘텐츠라고 하더라도 일단은 다운로드를 받고 검증을 진행해야 한다. 이로 인하여 데이터 송수신에 따른 비용과 시간 및 저장장치의 저장공간이 추가적으로 소모된다. 또한, 단말에 콘텐츠를 다운로드 받아 설치하거나 실행하는 순간, 콘텐츠에 내재된 악의적인 기능이 동작할 수 있다.
백신을 이용하는 경우에도, 위협이 되는 소프트웨어나 콘텐츠가 일단 단말에 설치된 후에 검증이 이루어지므로, 소프트웨어나 콘텐츠를 클라우드 서비스 로부터 수신하는 과정에서부터 위협요소를 차단하는 방법이 필요하다.
본 발명은 다양한 클라우드 서비스를 하나의 가상 클라우드로 인식하도록 하고, 사용자 또는 정보보안담당자가 보다 손쉽게 보안정책을 추가하도록 하며, 소프트웨어 또는 콘텐츠의 송수신과정에서 악의적 콘텐츠를 차단함으로써, 단말의 보안능력을 향상시킬 수 있다.
도 2는 본 발명의 일실시예에 따른 콘텐츠 필터링 장치(200)의 블록도이다. 도 2를 참조하면, 콘텐츠 필터링 장치(200)는 수신부(210), 제어부(220) 및 필터링부(230)를 포함한다.
수신부(210)는 적어도 하나의 클라우드 서버로부터 콘텐츠를 수신한다. 콘텐츠는 데이터 스트림으로 구성되어 있다. 수신부(210)는 클라우드 플러그 모듈(260)을 이용하여 제1 클라우드 서버(201), 제2 클라우드 서버(203) 및 제3 클라우드 서버(205)로부터 콘텐츠를 수신할 수 있다.
클라우드 플러그 모듈(260)은 클라우드 서버 별로 다른 액세스 방식에 맞추어 설정된 모듈로, 제1 클라우드 서버(201)에 액세스하기 위해서는 제1 클라우드 서버(201)에 액세스 가능한 클라우드 플러그 모듈(260)이 필요하다. 수신부(210)는 제1 클라우드 서버(201), 제2 클라우드 서버(203) 및 제3 클라우드 서버(205) 각각에 대응하는 클라우드 플러그 모듈(260)들을 포함할 수 있다.
수신부(210)에서 수신된 데이터 스트림은 수신버퍼(213)에 저장될 수 있다. 수신버퍼(213)는 데이터 스트림을 구성하는 데이터들을 소정 영역의 크기만큼 저장한다.
스토리지(storage)를 통한 파일 입출력은 시스템에 부하를 발생시키고 주기억장치의 처리속도와 스토리지의 입출력속도에 차이가 있어 병목현상이 발생한다. 이때, 수신버퍼(213)는 파일 시스템으로부터의 데이터 입출력 효율을 높이기 위한 파이프라인 역할을 수행한다. 주기억장치의 일 예로는 메모리가 포함될 수 있고, 스토리지의 일 예로는 하드디스크, SD(Secure Digital) 카드 등이 포함될 수 있다.
필터버퍼(215)는 필터링 조건과 관련된 데이터의 크기에 따라 가변적인 크기를 가질 수 있다. 필터링 조건은 각 클라우드 서비스의 필터 정책에 기초하여 결정되며, 클라우드 서비스의 제공자, 사용자, 관리자 등에 의해 결정될 수 있다. 예를 들면, 금칙어, 파일 이름, 식별 ID와 같이 필터링 조건은 콘텐츠의 내용이 특정 조건을 만족하는 경우, 파일 시스템에 상기 콘텐츠가 저장되지 않도록 하는 조건을 의미한다.
필터링 조건에 따라 필터링부(230)에서 추출해야 할 데이터의 크기가 달라질 수 있다. 필터버퍼(215)의 크기가 가변적으로 조절됨으로써, 불필요하게 소모되는 메모리를 줄일 수 있다.
필터버퍼(215)는 수신버퍼(213)에 저장된 필터링 조건과 관련된 데이터들의 복사본을 저장한다. 필터버퍼(214)에 저장된 복사본은 필터링부(230)에서 필터링 조건에 해당하는 항목이 콘텐츠에 포함되었는지 판단하는데 사용된다.
메모리풀(217)은 복수개의 메모리 블록들로 구성될 수 있다. 이때, 메모리 블록은 수신버퍼(213)의 크기에 기초하여 결정될 수 있다. 예를 들면, 메모리 블록은 수신버퍼(213)와 동일한 크기, 1/2 크기, 1/4 크기 등을 가질 수 있다. 필터버퍼(215)는 메모리풀(217)로부터 메모리 블록을 할당받아, 크기가 가변적으로 조절될 수 있다.
제어부(220)는 데이터 스트림에서, 필터링 조건과 관련된 데이터를 검색할 수 있다. 이때, 제어부(220)는 필터링 조건과 매칭되는 서비스 프로파일의 인덱스를 이용한다. 제어부(220)는 서비프 프로파일의 인덱스에 기초하여 어떤 종류의 필터링 조건을 판단할 것인지 결정할 수 있다. 제어부(220)는 해당 종류의 데이터를 데이터 스트림에서 검색할 수 있다.
서비스 프로파일의 인덱스는 인덱스 매핑 테이블에 따라 결정될 수 있다. 인덱스 매핑 테이블은 등록된 모든 클라우드 서비스의 필터 정책에 기초하여 필터링 조건들과 인덱스를 매핑시킨 테이블이다. 인덱스 매핑 테이블에 기초하여 서비스 프로파일의 송수신 규약에 인덱스가 매핑된다.
제어부(220)는 필터링 조건과 관련된 데이터의 크기에 기초하여 필터버퍼(215)에 할당되는 메모리 블록의 수를 적응적으로 조절할 수 있다.
제어부(220)는 필터링 조건과 관련된 데이터의 수신버퍼(213) 상에서의 위치, 필터링 조건의 판별에 소요되는 시간, 수신버퍼(213)에 저장된 데이터들의 플러쉬(flush)에 소요되는 시간에 기초하여 필터버퍼(215)에 할당되는 메모리 블록의 수를 적응적으로 조절할 수 있다.
수신버퍼(213)의 용량이 데이터 스트림으로 가득 차게 되면, 수신버퍼(213)에 저장된 데이터들은 필터버퍼(215)에 복사되거나, 파일 시스템에 파일로 저장될 수 있다. 이때, 수신버퍼(213)를 완전히 비우는 동작을 플러쉬라고 한다.
제어부(220)는 서비스 프로파일 관리부(221), 필터정책 관리부(223) 및 매핑부(225)를 포함할 수 있다.
서비스 프로파일 관리부(221)는 서비스 프로파일을 로딩, 수정, 삭제 또는 생성할 수 있다. 서비스 프로파일은 적어도 하나의 클라우드 서버의 액세스에 필요한 정보 및 데이터 스트림의 구성정보를 포함할 수 있다.
서비스 프로파일은 각 클라우드 서비스 별로 생성될 수 있으며, 콘텐츠를 전송하는 절차, 데이터 스트림의 식별 방식, 데이터 스트림의 전송에 필요한 통신 프로토콜(HTTP, FTP 등을 포함할 수 있다. 데이터 스트림의 구성정보는 데이터 스트림의 부가 데이터와 실 데이터가 메타데이터 방식으로 구별되는지, 저장되는 메모리 영역에 따라 구별되는지를 나타낸다.
필터정책 관리부(223)는 서비스 프로파일의 식별 값과 매칭되는 필터링 조건을 필터 정책에 기초하여 로딩, 수정, 삭제 또는 생성할 수 있다. 서비스 프로파일 별로 필터링 조건이 다를 수 있다. 필터링 조건은 필터 정책에 기초하여 결정될 수 있다. 필터링 조건 및 필터 정책은 필터링 정책 데이터베이스(DB)에 저장될 수 있다.
매핑부(225)는 인덱스 매핑 테이블의 기준정보에 기초하여 인덱스 매핑 테이블의 인덱스와 서비스 프로파일의 데이터 스트림 구성정보를 매핑할 수 있다. 기준정보는 등록된 모든 클라우드 서비스의 필터 정책을 구성하는 필터링 조건들을 의미할 수 있다. 예를 들면, 기준정보로는 "파일명"이 설정될 수 있다. 매핑부(225)는 서비스 프로파일의 데이터 스트림 구성정보 중, 파일명을 나타내는 부분에 기준정보에 할당된 인덱스를 매핑할 수 있다.
인덱스 매핑 테이블은 등록된 클라우드 서비스의 필터 정책에 기초하여 결정된 필터링 조건과 필터링 조건 별로 할당된 인덱스를 포함할 수 있다. 데이터 스트림 구성정보는 콘텐츠의 부가정보 및 콘텐츠의 실제 데이터를 전송하는 방식에 대한 정보를 포함할 수 있다.
제어부(220)는 신규 클라우드 서비스가 추가되는 경우, 인덱스 매핑 테이블에 기초하여 신규 클라우드 서비스의 서비스 프로파일을 클라우드 서비스의 종류에 관계없이 통일된 서비스 프로파일로 재생성할 수 있다. 통일된 서비스 프로파일이란, 인덱스 매핑 테이블에 기초하여 기존 서비스 프로파일의 데이터 스트림 구성정보에 매핑된 인덱스를 더 포함하는 형태이다. 즉, 인덱스가 동일한 기준에 기초하여 각 서비스 프로파일에 할당된 형태이다.
제어부(220)는 적어도 하나의 클라우드 서버에 대응하는 서비스 프로파일에 필터링 조건으로 설정된 항목이 존재하는지 판단할 수 있다. 예를 들면, 서비스 프로파일에 해당 클라우드 서비스가 동영상을 지원하고, 동영상의 파일명이 기재된 경우에, 필터링 조건으로 특정 동영상의 파일명이 설정되었다면, 제어부(220)는 서비스 프로파일에 파일명을 나타내는 필터링 조건으로 설정된 항목이 존재한다고 판단할 수 있다.
필터링부(230)는 적어도 하나의 클라우드 서버에 대응하는 서비스 프로파일 및 필터링 조건에 기초하여 콘텐츠를 필터링한다. 제어부(220)에서 서비스 프로파일에 필터링 조건으로 설정된 항목이 존재한다고 판단하면, 필터링부(230)는 해당 필터링 조건에 대응하는 데이터를 추출하고, 필터링 조건을 만족하는지 판단한 다음, 필터링 조건을 만족하는 경우, 해당 데이터로 구성된 콘텐츠를 필터링할 수 있다.
필터링부(230)는 필터버퍼(215)로 콘텐츠의 데이터가 복사되면, 필터링 조건에 기초하여 서비스 프로파일로부터 필터링 조건에 매칭되는 데이터의 위치를 확인하고, 확인된 위치에 기초하여 필터버퍼(215)에서 필터링 조건에 매칭되는 데이터를 추출할 수 있다. 데이터의 위치는 메타데이터로 식별될 수도 있고, 필터버퍼(215) 상의 주소에 의해 식별될 수도 있다.
콘텐츠 파일 검사부(240)는 수신부(210)에서 수신된 후, 파일 시스템에 저장된 콘텐츠 파일의 안정성을 검사할 수 있다. 콘텐츠 파일 검사부(240)는 3rd 파티 백신을 이용하여 콘텐츠 파일의 안정성을 검사할 수 있다. 안정성 검사는 콘텐츠 파일에 악성 코드가 포함되었는지, 해킹의 위험에 노출될 수 있는 malware가 포함되었는지 등을 검사하는 것을 의미한다. 외부에 설치된 별도의 S/W를 이용하는 것은 필터링 정책에 명시될 수 있다.
스캐닝 파일 관리부(250)는 적어도 하나의 클라우드 서버에 저장된 파일의 정보 및 적어도 하나의 클라우드 서버의 액세스에 필요한 정보를 포함하는 스캐닝파일을 관리할 수 있다. 스캐닝 파일은 클라우드 서버에 저장된 실제 파일과 관련된 정보를 포함함으로써, 실제 파일의 가상 파일로 인식되는 파일을 의미한다.
스캐닝 파일은 파일정보 필드, 클라우드 플러그 모듈 정보 필드, 클라우드 종속적 정보 필드 및 어플리케이션 데이터필드를 포함한다. 스캐닝 파일은 클라우드 서비스에 저장된 실제 파일의 가상화 된 형태이다.
파일정보 필드는 클라우드 서비스의 실제 파일과 관련된 정보를 포함할 수 있다. 클라우드 플러그 모듈 정보 필드는 각 클라우드 서비스와 액세스할 수 있는 클라우드 플러그 모듈에 대한 정보를 포함할 수 있다. 클라우드 종속적 정보 필드는 클라우드 플러그 모듈에서 클라우드 서비스에 접속하기 위해 필요한 특정 방식과 관련된 정보를 포함할 수 있다. 어플리케이션 데이터필드는 파일 형태를 가질 수 없는 어플리케이션 데이터가 저장되는 영역이다.
송신버퍼(270)는 송신부(270)에서 송신하는 데이터 스트림을 구성하는 데이터들을 소정 영역의 크기만큼 저장한다. 송신버퍼(270)는 파일 시스템과 송신부(270) 사이에 위치하여 파일 시스템으로부터의 데이터 입출력 효율을 높이기 위해 사용된다.
송신부(280)는 적어도 하나의 클라우드 서버로 콘텐츠를 구성하는 데이터 스트림을 송신한다. 송신부(280)는 클라우드 플러그 모듈(260)을 통하여 제1 클라우드 서버(201), 제2 클라우드 서버(203) 또는 제3 클라우드 서버(205)로 데이터 스트림을 송신할 수 있다.
제어부(220)는 필터링부(230)에서 필터링 조건에 부합하는 콘텐츠가 검출되면, 데이터 스트림의 수신을 차단하고, 수신버퍼에 저장된 데이터를 삭제하고, 파일 시스템에 저장된 콘텐츠 파일을 삭제할 수 있다. 필터링부(230)는 필터버퍼(215)에 저장된 데이터들 중에서, 부가 데이터 부분을 추출하여 필터링 조건에 부합하는 지 여부를 판단할 수 있다. 제어부(220)는 파일 시스템에 콘텐츠가 전부 저장되기 전에 데이터 스트림의 수신을 차단할 수 있다.
도 3은 본 발명의 다른 일실시예에 따른 콘텐츠 필터링 장치의 블록도이다.
도 3을 참조하면, 콘텐츠 필터링 장치는 데이터 송수신부(320), 송수신버퍼(330), 필터버퍼(340), 필터(350), 서비스 프로파일 관리자(360) 및 필터링 정책 관리자(370)를 포함한다.
일반적으로 서버와 클라이언트, 혹은 호스트와 터미널간의 통신에 있어 목적에 따라 특화된 데이터 송수신 규약이 존재한다. 예를 들면, 어떤 서비스를 이용하기 위해 로그인(log in) 과정이 필요하다.
일반적인 웹메일 시스템의 경우는 사용자의 계정이름과 비밀번호를 입력 받는다. 보안위협이 증가함에 따라 같은 유형의 서비스를 제공하는 다른 서비스 제공자는 사용자가 입력한 계정이름과 비밀번호를 암호화하여 송수신한다. 또 다른 서비스는 아이핀(iPIN)을 이용한다.
서비스 제공자마다 서비스의 설계 및 제공 방식에 따라 데이터를 구성하는 방식과 송수신 방식, 즉 데이터 송수신 규약이 서비스마다 상이하다. 서비스마다 서버와 클라이언트간의 데이터 송수신 규약은 정의되어 있으며, 송수신 규약을 알 수 있다면 전용 클라이언트가 아니더라도 서비스를 이용할 수 있다. 대표적인 예로, 구글과 네이버 등 대형 서비스 제공자들이 공개한 OpenAPI가 있다.
그러나, OpenAPI는 모든 서비스에 대응하지 않는다. 즉 구글이 공개한 OpenAPI는 구글 서비스, 즉 구글 지도, 유튜브 등 자사 서비스에 대한 데이터 송수신 규약만을 공개한다. 구글의 OpenAPI로 네이버 지도 서비스에 대한 클라이언트를 생성할 수 없다. 구글과 네이버의 데이터 송수신 규약이 상이하기 때문이다.
결과적으로 각 클라우드 서비스가 미래에 그 구조를 공개한다고 하더라도 현재의 웹 서비스용 OpenAPI의 상황과 크게 다르지 않을 것으로 예상된다.
본 발명은 송수신버퍼(330)로부터 현재 송수신 중인 데이터를 모니터하고, 해당 데이터에 대한 검증을 위하여 표준화된 검증조건을 정의하고, 적절한 데이터 송수신 규약을 선택하여 검증조건에 준하는 세부 데이터를 송수신 데이터로부터 추출하여 검증조건을 만족하는지 여부를 검사하여 부적절한 콘텐츠의 유입과 전파를 차단할 수 있는 방법을 제공한다.
(1) 데이터 송수신부(320)
실질적으로 인터넷 등의 네트워크를 통하여 클라우드 서버(310)와 직접 통신하는 부분이다. 데이터 송수신부(320)는 통신프로토콜을 이용하여 클라우드 서버(310)와 데이터를 송수신한다. 데이터 송수신부(320)는 송수신버퍼(330)와 하나의 모듈로 형성될 수 있다.
또한, 데이터 송수신부(320)는 필터(350), 필터링 정책 관리자(370) 등과 함께 단일 모듈로 구성될 수도 있고, 별도의 클라우드 서비스 클라이언트에 탑재될 수도 있다.
(2) 송수신버퍼(330)
송수신버퍼(330)는 파일 시스템으로부터의 데이터 입출력 효율을 높이기 위한 데이터 스트림 파이프라인 역할을 수행한다. 데이터 송수신부(320)를 통해 송수신되는 데이터는 단말에 설치된 저장장치의 파일 시스템을 통해 임의의 형식을 갖는 파일의 형태로 존재한다. 단말로부터 클라우드 서버(310)로 데이터를 송신할 때에는 저장장치에 존재하는 파일을 읽어 송수신버퍼(330)에 저장된 데이터를 순차적으로 데이터 송수신부(320)로 전달한다.
클라우드 서버로(310)부터 데이터를 수신할 때에는, 콘텐츠 필터링 장치는 데이터 송수신부(320)를 통해 전달되는 데이터 스트림을 저장 규칙에 따라 파일을 생성하거나 기존의 파일에 순차적으로 기록한다.
이 때에 스토리지를 통한 파일 입출력은 시스템에 부하를 발생시키고 주기억장치의 처리속도와 스토리지의 입출력속도에 차이가 있어 병목현상이 발생한다. 송수신버퍼(330)는 데이터 송수신부(320)와 파일시스템의 중간 단계에 위치하여 상기 병목현상의 발생을 줄일 수 있다.
예를 들면, 동영상 파일을 수신하기 위해 4KB(Kilo-Byte) 크기의 송수신버퍼(330)를 주기억장치, 즉 메모리상에 할당하였다고 가정한다. 네트워크를 통하여 데이터가 전달될 때에는 패킷(packet) 단위로 데이터가 나뉘게 된다. 이때, 클라이언트에서 송수신버퍼(330)의 크기를 4KB로 할당했다고 해서, 서버에서도 4KB가 한번에 전송되는 것은 아니다.
클라이언트는 통신 프로토콜에서 정의하는 크기에 따라 잘게 나뉜 패킷을 전송 받는다. 패킷에 첨부된 네트워크 정보 및 송수신 정보를 제외한 실제 데이터 부분만 추려내면 수신받는 데이터의 크기는 작아진다. 이렇게 작은 데이터 조각들을 빈번하게 파일로 기록할 경우 파일 입출력 기술의 특성상 전체 시스템의 처리속도가 저하될 수 있다. 송수신버퍼(330)는 적절한 크기의 데이터를 저장한 후, 소정 기준에 따라 큰 단위의 데이터를 한 번에 파일로 저장한다.
송수신버퍼(330)는 클라이언트에 의해 필요한 순간에 주기억장치 상에 생성될 수 있다. 송신 시에도 마찬가지로 파일 시스템으로부터 파일을 읽어 그 데이터를 송수신버퍼(330)에 누적하고, 누적된 데이터를 데이터 송수신부(320)에서 순차적으로 꺼내어 전송한다.
동시에 복수의 데이터 스트림이 발생하는 경우에 그에 대응하여 복수개의 송수신버퍼(330)가 생성될 수 있다. 또는, 목적에 따라 송수신버퍼(330)가 순차적으로 여러 개 생성될 수도 있다. 또, 송신 버퍼와 수신 버퍼가 분리되어 생성될 수 있다.
각각의 송수신버퍼(330)에 저장되는 데이터 스트림은 목적에 따라 메모리상에서만 대기 또는 저장되어 일시적으로 사용되는 경우도 있고, 파일 수신의 경우 순차적으로 저장되었다가 일정 크기만큼 데이터가 누적되면 파일 시스템에 기록한 후 삭제되거나, 파일 송신의 경우 데이터 송수신부(320)로 전달한 후, 삭제되는 경우가 있다.
끊김 없는 원활한 동영상 재생을 위해 일정 분량을 미리 버퍼링하는 것과 마찬가지로, 파일 송수신에 있어 원활한 데이터 송수신과 파일 입출력을 위해 송수신버퍼(330)가 필요하다. 송수신버퍼(330)의 적절한 크기에 대한 기준은 사용목적 및 서버와의 통신 규약에 따라 다르다.
송수신 데이터의 필터링을 위해서는 일시적으로 메모리상에 누적되었다가 사라지는 송수신버퍼 외에 별도의 데이터 처리 공간이 필요하다. 이러한 역할을 하는 것이 필터버퍼(340)이다.
(3) 필터버퍼(340)
필터(350)가 추출할 데이터 스트림의 일부를 저장하는 데이터 스트림 파이프라인이다. 필터링의 대상이 되는 데이터는 송수신버퍼(330)에 존재한다. 필터(350)는 네트워크를 통해 송수신되는 콘텐츠, 보다 구체적으로, 콘텐츠 파일을 구성하는 데이터와 그 부가정보를 필터링 대상으로 한다.
필터버퍼(340)는 필터링 작업을 효과적으로 수행하기 위해 필터가 필요로 하는 시간 또는 크기만큼 데이터 스트림의 일부를 송수신버퍼(330))로부터 복사하여 저장할 수 있는 공간을 제공한다.
필터링을 위해 필터버퍼(340)를 따로 두는 이유는 송수신버퍼(330)에서 필터링에 필요한 데이터 스트림을 직접 처리하기가 어렵기 때문이다.
송수신버퍼(330)는 데이터 송수신시에 데이터 송수신부(320)와 스토리지 사이에 송수신 효율제고를 위해 일시적으로 데이터를 모아두는 공간으로 사용된다. 데이터 스트림이 플러쉬 된 후에는 다른 데이터 스트림이 유입되므로, 필터링 처리 도중 송수신버퍼가 플러쉬 되어, 검사 중이던 데이터가 사라지거나 새로운 데이터로 치환되는 경우가 발생할 수 있다.
메모리에서 데이터가 갱신되거나 사라지는 문제를 방지하기 위해 파일에 기록된 데이터를 로딩하여, 필터링 하는 것도 생각할 수 있다. 그러나, 파일 시스템의 파일 입출력은 주기억장치의 입출력에 비해 속도가 느리고, 수신 데이터는 지속적으로 파일 시스템에 기록되어야 하기 때문에, 하나의 파일에 동시에 접근하게 되면서 시스템에 더욱 큰 부하를 가해지고, 전체적인 데이터 송수신 및 필터 처리 성능이 떨어질 수 있다.
데이터를 메모리상에 충분히 오랫동안 적재하기 위해 송수신버퍼(330)를 보다 더 크게 만드는 것은 생각해 볼 수 있지만, 송수신버퍼(330)가 무한정 크거나, 최소한 현재 수신하려는 부가정보를 포함하는 콘텐츠의 전체 데이터를 수용할 수 있을 만큼 큰 공간을 할당하는 것은 휴대용 단말의 제한적인 리소스를 고려할 때 바람직한 해결책이라고 볼 수 없다. 대안으로 필터버퍼(340)가 사용될 수 있다.
필터버퍼(340) 또한 송수신버퍼(320)와 마찬가지로 데이터의 검사가 완료되면 필터(350)에 의해 기존의 저장된 데이터가 삭제되고, 새로운 데이터가 송수신버퍼(330)로부터 복사된다. 단말의 주기억장치 상에 필터(350)에 의해 필요에 따라 생성될 수 있다.
필터버퍼(340)는 데이터 송수신이 필터링 과정보다 빠른 경우를 대비하여 송수신버퍼(330)보다 더 크거나 작게 생성될 수 있다.
필터버퍼(340)의 크기는 필터링 정책(371), 즉 부적합 콘텐츠의 선별 조건에 기초하여 결정될 수 있다.
메모리풀 기법은 사전에 필요할 것으로 예상되는 만큼의 메모리 공간을 블록단위로 할당해두고, 필요할 때에 풀에서 블록을 필터버퍼(340)에 할당했다가, 불필요한 메모리는 다시 풀에 반환 및 저장하는 방식이다. 다시 메모리 공간이 필요할 경우 풀에 저장된 블록을 이용한다.
메모리 공간이 필요한 경우, 새롭게 메모리를 할당함으로써 발생하는 오버헤드를 줄이고, 미리 할당된 메모리를 재활용함으로써, PC에 비해 성능이 떨어지는 휴대용 단말에서, 빠르고 효과적으로 메모리를 활용할 수 있다.
(4) 서비스 프로파일(361)
서비스 프로파일(361)은 각각의 클라우드 서비스의 특성과 송수신 규약에 기초하여 결정된, 토큰 또는 데이터의 식별자를 포함한다. 필터(350)는 송수신 데이터로부터 식별자에 기초하여 토큰 또는 데이터를 식별할 수 있다.
콘텐츠와 콘텐츠에 대한 부가정보는 하나의 데이터 스트림으로 전송 될 수도 있고, 콘텐츠와 부가정보가 별도의 스트림으로 분리되어 전송될 수도 있다.
콘텐츠 부가정보의 구성과 형식은 클라우드 서비스마다 다를 수 있다. 예를 들면, 데이터는 지정된 태그에 따라 구분될 수 있는데, 클라우드 서비스마다 동일한 데이터에 서로 다른 명칭의 태그가 지정될 수도 있다. 이때, 태그는 데이터에 대한 메타 데이터로서 사용된다.
또한, 콘텐츠 및 콘텐츠에 대한 부가정보는 별도의 태그 없이 데이터 스트림의 몇 번째 바이트로부터 몇 바이트만큼의 데이터 블록이 특정한 의미를 갖는 데이터로 인식되도록 구성될 수도 있다.
여러 개의 콘텐츠는 하나의 데이터 스트림을 통해 한번에 전송될 수도 있고, 콘텐츠 별로 별도의 데이터 스트림으로 전송될 수도 있다.
필터(350)는 서비스 프로파일(361)을 이용하여 클라우드 서비스마다 상이한 데이터 스트림의 데이터들을 용이하게 식별할 수 있다.
서비스 프로파일(361)에는 콘텐츠를 전송하기 위한 절차, 데이터 스트림의 식별 값, 데이터 스트림의 전송에 필요한 통신 프로토콜(HTTP, FTP 등) 및 데이터 스트림의 구성정보가 포함될 수 있다. 데이터 스트림의 구성정보는 데이터의 정보를 포함할 수 있다. 예를 들면, 데이터의 식별 정보에는 데이터 별로 할당된 메타 데이터 및 메모리 블록 등이 포함될 수 있다.
서비스 프로파일(361)은 데이터를 식별하는데 이용될 수 있고, 필터링 정책에 의해 검사의 대상이 되는 데이터를 추출하는 데에도 이용될 수 있다.
여기서 필터링 정책이란 사용자가 콘텐츠의 보안을 목적으로 설정한 것으로, 필터링 하려는 요소를 포함하는지 수신 데이터로부터 판별하는 기준이 된다. 이때, 데이터 스트림에 포함된 데이터로부터 필터링의 대상이 되는 데이터가 식별 및 추출될 필요가 있다.
예를 들면, 특정 영화사가 영화의 불법적인 유통을 막기 위해, 여러 클라우드 서비스 제공자들에게 상기 영화와 관련된 파일들의 차단을 요청한 경우, 클라우드 서비스 제공자는 필터링 정책에 영화사로부터 전달받은 파일 이름들을 반영할 수 있다.
그런데, 클라우드 서비스마다 파일 이름을 나타내는 태그가 상이하다. 즉, 동일한 파일 이름을 나타내는 경우에도, 태그의 형식이 상이할 수 있다. 필터(350)는 인덱스 매핑 테이블에 기초하여 각각의 다른 형식으로 표현된 서비스 프로파일의 파일 이름을 나타내는 태그들에 파일 이름에 해당하는 인덱스를 매핑할 수 있다. 즉, 필터(350)는 동일한 인덱스로 파일 이름을 나타내는 태그들을 통일할 수 있다.
필터링 정책 관리자(370)는 다양한 클라우드 서비스들로부터, 필터링 조건들을 획득하여, 필터링 조건 데이터베이스를 생성할 수 있다. 필터링 정책 관리자(370)는 통합된 필터링 조건 리스트를 생성할 수 있고, 추가되는 필터링 조건을 업데이트할 수 있다. 필터링 정책 관리자(370)는 통합된 필터링 조건 리스트에 인덱스를 할당할 수 있다. 인덱스가 할당된 필터링 조건 리스트는 인덱스 매핑 테이블로 정의될 수 있다.
필터링 조건 리스트와 인덱스가 매핑된 형태는 스크립트, 테이블, 혹은 정규 표현식 등으로 표현될 수도 있고, 별도의 실행 가능한 확장파일로 생성될 수도 있다. 예를 들면, 별도 실행 가능한 확장 파일의 확장자 로는 exe, dll, jar 등이 포함될 수 있다. 또한 별도의 확장파일은 plug-in 형태로 등록되고, 각 plug-in의 연결을 통해 인덱스 매핑 프로그램이 실행될 수 있다.
(5) 서비스 프로파일 관리자(360)
서비스 프로파일 관리자(360)는 서비스 프로파일(361)을 추가, 삭제 및 업데이트한다. 서비스 프로파일 관리자(360)는 필터(350)의 요청에 따라 로컬 스토리지에 저장된 서비스 프로파일(361)을 조회하고, 적합한 서비스 프로파일(361)이 존재할 경우 이를 필터(350)에 전달한다. 적합한 서비스 프로파일(361)이 존재하지 않을 경우, 서비스 프로파일 관리자(360)는 보안관제서버 또는 클라우드 서버(310)에 서비스 프로파일(361)을 요청하여, 서비스 프로파일(361)를 로컬 스토리지에 저장하고, 필터(350)로 전달한다.
서비스 프로파일(361)은 보안관제서버 또는 클라우드 서버(310)로부터 수신할 수있고, 클라우드 서비스 사용자에 의해 직접 생성 및 수정될 수 있다.
서비스 프로파일 관리자(360)는 인덱스 매핑 테이블에 기초하여 인덱스가 매핑된 서비스 프로파일(361)을 생성할 수 있다. 서비스 프로파일(361) 별로 인덱스가 매핑됨으로써, 서로 다른 형식의 데이터 스트림 구성정보가 통일된 식별정보로 인식될 수 있다.
서비스 프로파일 관리자(360)는 수신된 서비스 프로파일이 서비스 프로파일 데이터 베이스(DB)에 등록된 서비스 프로파일(361)인지 확인할 수 있다.
서비스 프로파일 관리자(360)는 수신된 서비스 프로파일이 서비스 프로파일 DB에 등록되어 있지 않다면, 서비스 프로파일 DB에 새로 추가할 수 있다.
신규 클라우드 서비스가 추가 등록되면, 서비스 프로파일 관리자(360)는 서버에 서비스 프로파일(361)을 요청하고, 서버로부터 서비스 프로파일을 수신하지 못하면, 사용자 정의 서비스 프로파일을 생성할 수 있다.
사용자에 의하여 서비스 프로파일이 삭제되면, 서비스 프로파일 관리자(360)는 해당 서비스 프로파일에 대응하는 클라우드 서비스의 액세스를 취소한다.
(6) 필터링 정책(371)
필터링 정책(371)은 클라우드 서버(310)로부터 송수신하는 데이터 스트림에 대하여 부적합 콘텐츠를 필터링하기 위한 조건들을 포함한다. 필터링 정책(371)은 필터링 조건이 명세화 된 것이다.
수신 데이터 스트림에서 필터링 조건에 대응하는 데이터 또는 데이터블록은 메타 데이터로 식별되거나, 특정 메모리 주소로 식별될 수 있다. 상기 메타 데이터 또는 상기 특정 메모리 주소는 서비스 프로파일(361)에 기재되어 있다.
필터링 정책(371)은 클라우드 서비스를 통해 공유되는 콘텐츠 뿐만이 아니라 콘텐츠에 대한 부가정보를 필터링 조건으로 포함한다.
필터링 정책(371)에는 위치기반서비스와 연계된 위치정보가 포함될 수 있다. 예를 들면, 지역 명칭이 필터링 조건으로 채택되어, 해당 지역과 관련된 콘텐츠의 송수신이 차단될 수도 있다.
(7) 필터링 정책 관리자(370)
필터링 정책 관리자(370)는 필터링 정책(371)을 추가, 삭제 및 업데이트한다.
필터링 정책 관리자(370)는 콘텐츠의 수신이 시작되면 저장된 필터링 정책(371)이 존재하는지 확인하고, 필터링 정책(371)이 존재하지 않으면, 보안서버에 필터링 정책(371)을 요청한다.
필터링 정책 관리자(370)는 필터링 정책(371)을 확인하여, 각 클라우드 서비스에 최신 필터링 정책(371)이 업데이트 된 경우, 각 클라우드 서비스 제공자에 필터링 정책(371)을 요청하여 필터링 정책(371)을 업데이트 한다.
필터링 정책(371)은 보안관제서버, 클라우드 서비스로부터 수신할 수 있고, 클라우드 서비스 사용자에 의해 직접 생성 및 수정될 수도 있다.
(8) 필터(350)
필터(350)는 필터링 정책(371)에 기초하여, 콘텐츠를 제공하는 클라우드 서비스의 서비스 프로파일로부터 필터링 정책(371)에 명시된 평가대상을 검색할 수 있다. 필터(350)는 명시된 평가대상에 해당하는 데이터를 필터버퍼(340)에서 추출하고, 필터링 조건에 따라 평가할 수 있다. 필터(350)는 평가 결과에 따라 데이터 송수신의 흐름을 제어할 수 있다.
도 4는 본 발명의 또 다른 일실시예에 따른 콘텐츠 필터링 장치의 블록도이다.
도 4를 참조하면, 콘텐츠 필터링 장치는 제1데이터 송수신부(410), 제2데이터 송수신부(420) 및 제3 데이터 송수신부(430), 필터(440), 콘텐츠 파일 저장부(450) 및 콘텐츠 파일 검사부(460)를 포함할 수 있다.
제1데이터 송수신부(410)는 제1 클라우드 서비스와 콘텐츠를 송수신한다. 제1 데이터 송수신부(410)는 제1 클라우드 서비스의 프로토콜을 이용하여 콘텐츠를 송수신한다. 프로토콜로는 예를 들면, HTTP, FTP, DNS 등과 같은 인터넷 프로토콜이 포함될 수 있다. 데이터 송수신부(410)는 송수신버퍼를 포함할 수 있다. 프로토콜에 대한 정보는 프로토콜 스택에 저장될 수 있다.
제2데이터 송수신부(420)는 제2 클라우드 서비스와 콘텐츠를 송수신한다. 제2 데이터 송수신부(420)는 제2 클라우드 서비스의 프로토콜을 이용하여 콘텐츠를 송수신한다. 데이터 송수신부(420)는 송수신버퍼를 포함할 수 있다.
제3데이터 송수신부(430)는 제N 클라우드 서비스와 콘텐츠를 송수신한다. 제3 데이터 송수신부(430)는 제N 클라우드 서비스의 프로토콜을 이용하여 콘텐츠를 송수신한다. 데이터 송수신부(430)는 송수신버퍼를 포함할 수 있다.
즉, 콘텐츠 필터링 장치는 클라우드 서비스 각각에 대응하는 데이터 송수신부 및 송수신버퍼를 포함할 수 있다. 송수신버퍼는 입출력 효율을 높이기 위하여 데이터를 스토리지에 저장하기 전 일시적으로 저장한다.
또한, 데이터 송수신부 및 송수신 버퍼는 하나의 모듈 내에서 논리적으로 구분될 수도 있어서, 새로운 클라우드 서비스가 추가되거나, 활성화 됨에 따라 적응적으로 새로운 클라우드 서비스에 대응하는 데이터 송수신부 및 송수신 버퍼가 생성될 수 있다.
네트워크를 통해 송수신되는 데이터는 모뎀과 프로토콜 스택을 거치면서 수신된 패킷들이 순서대로 정렬된 상태다. 송수신버퍼는 일정 분량의 데이터가 누적되면 파일로 기록을 하고 버퍼를 비우게 되므로, 필터(440)는 원활한 판별작업을 위해 송수신버퍼에 쌓여있는 데이터를 일시적으로 필터버퍼에 복사한다.
필터(440)는 필터버퍼, 서비스 프로파일 관리자 및 필터링 정책 관리자를 포함할 수 있다. 송수신버퍼에 저장된 데이터들은 필터버퍼에 복사될 수 있다. 필터버퍼는 메모리 풀의 메모리 블록으로 구성될 수 있고, 메모리 블록의 개수에 따라 크기가 가변적으로 조절될 수 있다. 각 송수신버퍼 별로 필터버퍼가 연결될 수도 있다. 필터버퍼는 송수신버퍼에 누적된 데이터를 부분적, 순차적으로 저장할 수 있다.
서비스 프로파일 관리자는 서비스 프로파일 DB(441)로부터 서비스 프로파일을 로딩할 수 있고, 서비스 프로파일 DB(441)에 서비스 프로파일을 저장할 수 있다. 서비스 프로파일 관리자는 제1 클라우드 서비스, 제2 클라우드 서비스 및 제 N 클라우드 서비스로부터 각각 서비스 프로파일을 수신할 수 있다.
필터링 정책 관리자는 필터링 정책 DB(443)로부터 필터링 정책을 로딩할 수 있고, 필터링 정책 DB(443)에 필터링 정책을 저장할 수 있다. 필터링 정책은 클라우드 서비스 마다 다를 수도 있고, 공통될 수도 있다. 필터링 정책 관리자는 다양한 필터링 정책을 클라우드 서비스 제공자, 보안관제서버로부터 수신할 수 있다.
필터(440)는 결정된 필터링 조건과 매칭되는 항목이 서비스 프로파일에 있는지 확인하고, 매칭되는 항목이 있으면, 해당 항목의 식별 값에 기초하여 필터버퍼에 저장된 데이터들 중에서, 판별대상이 되는 데이터를 추출한다. 필터(440)는 추출된 데이터에서 필터링 조건을 만족하는지 검토하고, 검토 결과에 따라 데이터 송수신을 제어할 수 있다. 즉, 필터링 조건이 부적합 콘텐츠를 검출하기 위해 설정된 것이라면, 필터(440)는 필터링 조건을 만족하는 경우에, 송수신 중인 데이터를 차단할 수 있다.
클라우드 서비스와 통신하는 클라이언트는 데이터 송수신부(410, 420, 430) 및 송수신버퍼로 구성될 수 있다. 필터(440)는 서비스 프로파일 관리자, 필터링 정책 관리자, 필터버퍼로 구성될 수 있다.
클라이언트는 데이터 송수신 상태 및 송수신버퍼의 상태를 필터(440)에서 모니터링할 수 있도록 필터(440)에 접근 인터페이스를 제공할 수 있다. 필터(440)는 송수신버퍼의 상태를 모니터링하는 모니터링 수단이 추가될 수 있다.
송수신버퍼에 저장된 데이터는 플러쉬(flush) 된 후, 콘텐츠 파일 저장부(450)에 파일 형태로 저장된다. 콘텐츠 파일 저장부(450)는 운영체제 상의 파일 시스템으로 구현될 수 있다.
콘텐츠 파일 검사부(460)는 콘텐츠 파일 저장부(450)에 저장된 파일을 백신을 사용하여 검사할 수 있다. 필터(440)는 송수신 데이터로부터 부적합 콘텐츠를 필터링하고, 콘텐츠 파일 검사부(460)는 파일로부터 부적합 콘텐츠를 판별한다. 부적합 콘텐츠는 바이러스 백신과 같은 외부 백신을 통하여 발견될 수 있다.
데이터의 송수신 순서와 송수신 데이터의 크기를 고려하여 인코딩 방식에 따라 데이터가 바뀔 수 있어, 파일 자체의 필터링이 어려운 동영상, MP3 음악 파일 등에 대하여 우선 부가정보를 필터링하고, 데이터 크기가 큰, 즉 송수신에 더 많은 시간과 저장소 공간이 소용되는 실제 콘텐츠 파일의 검사에는 3rd 파티의 전문 보안검사도구가 이용될 수 있다.
상대적으로 송수신 시간과 데이터 크기가 작은 부가정보 데이터를 먼저 검사하여 문제가 있다면 상대적으로 규모가 큰 콘텐츠 파일의 송수신을 차단함으로써 휴대용 단말의 불필요한 데이터 통신을 방지하고 저장공간을 확보할 수 있다.
필터(440)는 만약 부가정보의 판별결과 무해함이 판정되면 판정이 완료된 데이터의 판별 조건을 서비스 프로파일에 기록하고, 현재 필터버퍼에 누적된 데이터 전체가 무해하다고 판정되면, 판정이 완료된 데이터 블록을 필터버퍼로부터 삭제한다. 이후 신규 데이터가 송수신버퍼로부터 복사되면 전체 필터링 조건에 대하여 필터링 과정을 반복한다.
만약 유해하다고 판정될 경우, 필터(440)는 더 이상 데이터를 수신하지 않도록 클라우드 서비스와의 연결을 해제한다.
그런데 데이터의 수신 속도가 빨라서, 부가정보를 필터링하는 중, 이미 콘텐츠 파일의 송수신이 완료되었을 가능성도 있다. 이 경우에는 필터링 결과와 무관하게 사용자가 콘텐츠의 부적합성을 인지하지 못하고, 콘텐츠를 열어볼 수 있고, 트로이 목마 등 보안위협을 가하는 기능이 동작할 위험이 있다.
따라서, 필터링 결과 유해함이 판정되면 데이터 송수신의 차단과 함께 이미 수신된 데이터를 송수신버퍼로부터 삭제하고, 또 파일 시스템에 기록 중인, 또는 기록이 완료된 콘텐츠 파일을 삭제함으로써, 불필요한 데이터 통신을 방지하고 저장 공간을 확보할 수 있다
보안정책 및 서비스 프로파일을 PUSH방식으로 수신 또는 업데이트하도록 구현함으로써, 기업 또는 기관 등에서 보안관제 능력을 향상시킬 수 있다.
도 5는 본 발명의 일실시예에 따른 콘텐츠 필터링 장치에서 수신 데이터를 필터로 전달하는 과정을 나타낸 도면이다.
클라우드 서버로부터 수신한 콘텐츠가 10KB의 크기를 가진다고 가정한다. 또한, 송수신버퍼의 용량은 1KB라고 가정한다. 따라서, 송수신버퍼는 10KB의 전체 데이터를 한꺼번에 수용할 수 없다. 1KB 크기의 송수신버퍼에 수신 데이터가 가득 차면, 데이터 송수신부는 송수신버퍼의 데이터 1KB를 파일 시스템에 파일형태로, 처음부터 순차적으로 기록하고, 송수신버퍼를 비운다.
송수신버퍼가 다시 가득 차면, 앞서 기록한 파일의 끝부분에 새로 수신한 데이터를 순차적으로 기록하고 다시 버퍼를 비우는 과정이 반복된다.
필터는 필터링 조건 중 첫 번째 조건(Condition 1)을 사용하여, 콘텐츠를 필터링 할 수 있다. 도 5에서, 데이터 스트림은 메모리 블록 단위로 식별될 수 있다. 즉, 메모리의 저장 위치에 따라 정보들이 식별될 수 있다. 정보 1은 1 Byte 크기로 0번째 번지에 기록되어 있다. 정보 3은 데이터 스트림 상에서 255번째에 257 Bytes 크기로 기록되어 있다. 산술적으로, 두 데이터를 참조하기 위해 최소 512 Bytes의 데이터를 수신해야 한다. 이때, 필터버퍼의 크기는 512 Bytes가 될 수 있다.
한편 필터는 필터링 조건 중 두 번째 조건(Condition 2)을 사용하여, 콘텐츠를 필터링 할 수 있다. 이때, 송수신버퍼의 용량은 640 Bytes라고 가정한다.
정보 36은 데이터 스트림 상에서 8192번째부터 1023 Bytes만큼의 크기를 갖는다. 송수신버퍼의 용량을 고려해 보았을 때, 정보 36은 세 조각으로 나뉘어 송수신버퍼에서 플러쉬(flush) 될 수 있다. 필터버퍼는 정보 36을 온전히 보관할 수 있는 용량을 가져야 한다. 그런데 1023 Bytes 분량의 정보 36만을 판정하기 위해 9600 Bytes (640 Bytes x 15회)가 필터버퍼에 할당되는 것은 주기억장치의 공간을 낭비하는 것이 된다.
첫 번째 조건을 적용하는 경우에도 마찬가지이다. 1 Byte의 정보 1과 257 Bytes의 정보 3을 판정하기 위해 512 Bytes를 할당하는 것 역시 공간을 낭비하게 된다. 두 정보의 크기를 합산하면 258 Bytes로 충분하다.
그러나 송수신버퍼는 채워지고 비워지기를 반복한다. 따라서, 송수신버퍼의 크기를 고려하여 필터버퍼의 크기가 조절되어야 한다. 필터링 조건 판별에 걸리는 시간이 송수신버퍼가 플러쉬(flush)되는 시간보다, 오래 걸린다면 하나의 조건을 처리하는 동안, 다른 조건을 처리하기 위해 필요한 데이터가 송수신버퍼에서 사라져버릴 수도 있다.
필터버퍼의 크기는 메모리 풀을 이용하여 필요에 따라 송수신버퍼의 배수로 증가하거나 감소하면서 적응적으로 조절될 수 있다.
도 6은 본 발명의 일실시예에 따른 콘텐츠 필터링 장치에서 메모리풀을 이용하여 필터버퍼의 크기를 적응적으로 조절하는 과정을 나타낸 도면이다.
도 6을 참조하면, 메모리 풀(610)은 메모리 블록(611), 메모리 블록(613), 메모리 블록(615), 메모리 블록(617) 및 메모리 블록(619)를 포함할 수 있다.
메모리 풀(610)은 송수신버퍼의 크기에 비례하는 메모리 블록들을 리스트 구조로 관리할 수 있다. 필터버퍼(620)가 송수신버퍼(630)로부터 데이터를 복사하려고 할 때, 필터버퍼(620)의 여유 공간이 부족하면, 필터버퍼(620)는 메모리 풀(610)에 메모리 블록을 요청하고, 메모리 풀(610)은 메모리 풀(610)에 남은 메모리 블록이 있을 경우 그 중 하나(611)를 필터버퍼(620)에 할당한다.
메모리 블록(611)이 할당된 후에도, 공간이 부족한 경우 메모리 블록의 요청 및 할당 과정을 반복함으로써, 필터버퍼(620)에 송수신버퍼(630)로부터 복사되는 데이터가 저장될 공간이 확보될 수 있다.
필터버퍼(620)는 송수신버퍼(630)와 마찬가지로 필터버퍼(620)에 저장한 데이터가 더 이상 필요가 없을 경우, 필터버퍼(620)를 플러쉬(flush)한다. 이 때 필터버퍼(620)의 설정된 기본 크기보다 큰 여유공간이 존재할 경우, 필터버퍼(620)는 불필요하게 점유하고 있는 메모리 블록(619)을 메모리 풀(610)로 반환한다. 메모리 풀(610)은 반환 받은 메모리 블록(619)을 리스트에 연결하여 가용 블록으로 관리할 수 있다. 메모리 풀(610)은 다시 필터버퍼(620)로부터 요청이 있을 경우 가용 메모리 블록을 할당할 수 있다.
하나의 메모리 블록의 크기는 송수신버퍼(630)의 크기, 1/2크기 또는 1/4 크기일 수 있다. 메모리 풀(610)은 메모리 블록들(611, 613, 615, 617, 619)을 사전에 메모리에 할당하여 가지고 있다가, 필터버퍼(620)의 요청에 따라 버퍼에 할당할 수 있다. 메모리 블록의 개수, 메모리 블록의 크기 콘텐츠 필터링 시스템의 가용 자원과 효율성에 기초하여 결정될 수 있다.
필터버퍼(620)가 메모리 풀(610)로부터 몇 개의 메모리 블록을 할당 받아야 하는지는 현재 처리 중인 데이터의 크기, 조건 판별에 걸리는 시간 및 송수신버퍼(630)의 플러쉬(flush)에 걸리는 시간 등을 고려하여 적응적으로 조절될 수 있다.
버퍼 포인터를 송수신버퍼(630)에 대응하는 개수만큼 설정하여 메모리 블록을 구분함으로써 필터버퍼를 개별적으로 생성하는 오버헤드가 감소될 수 있다.
도 7은 본 발명의 일실시예에 따른 콘텐츠 필터링 장치에서 송수신하는 데이터 스트림의 구성을 나타낸 도면이다.
도 7을 참조하면, 송수신 데이터 스트림의 데이터들은 데이터 블록의 위치 및 크기에 기초하여 구별될 수 있다. 데이터 스트림의 첫 번째 데이터 블록은 1byte 크기로, 데이터 스트림에 포함된 파일 개수를 나타낸다. 즉, 콘텐츠의 개수를 나타낸다.
두 번째 데이터 블록은 1024 byte의 크기를 가지며, 첫번째 파일의 부가정보를 포함하고 있다. 파일의 부가정보는 파일의 이름, 파일의 크기, 파일의 생성 날짜, 파일의 종류, 서비스 종류, 광고 데이터 및 파일의 생성자와 같은 파일과 관련된 정보를 포함한다. 세 번째 데이터 블록은 n byte의 크기를 가지며, 실 데이터 즉 콘텐츠를 포함한다.
데이터 스트림은 파일 개수에 해당하는 마지막 파일까지 데이터 블록 단위로 구성될 수 있다.
도 8은 본 발명의 일실시예에 따른 콘텐츠 필터링 장치에서 인덱스 매핑 테이블에 기초하여 서비스 프로파일을 재생성하는 과정을 나타낸 도면이다.
도 8을 참조하면, 서비스 프로파일은 클라우드 서비스별 송수신 규약 및 송수신 규약에 매핑된 인덱스로 구성될 수 있다.
다양한 클라우드 서비스에 대하여 공통의 필터링 정책을 적용함에 있어서, 어려운 부분은 여러 클라우드 서비스가 각각 자기 만의 데이터 구조를 가지고 있기 때문에, 공통의 필터링 정책을 적용하기 힘들다는 점이다.
따라서, 하나의 표준 테이블을 이용하여, 각 클라우드 서비스의 서비스 프로파일을 재생성 하면, 하나의 표준 테이블에 따라 통일된 형태로 서비스 프로파일의 형태가 갖추어질 수 있다. 또한, 새로운 클라우드 서비스가 추가 된다고 할 때, 표준 테이블에 따른 서비스 프로파일만 추가함으로써 간단하게 새로운 클라우드 서비스에 대응 할 수 있다.
표준 테이블은 각 클라우드 서비스의 필터링 정책들을 참고하여, 비슷한 종류의 필터링 정책은 하나로 통합하고, 다른 것은 추가 함으로써, 모든 필터링 정책이 빠짐 없이 반영된 형태로 생성될 수 있다.
표준 테이블의 예로, 인덱스 매핑 테이블이 사용될 수 있다. 인덱스 매핑 테이블은 필터링 정책 및 필터링 정책의 의미, 필터링 정책 별로 할당된 인덱스로 구성될 수 있다. 인덱스 매핑 테이블에 기초하여, 각 클라우드 서비스의 서비스 프로파일에 태그(tag) 별로 인덱스가 매핑됨으로써, 새로운 서비스 프로파일이 생성될 수 있다.
예를 들면, 클라우드 서비스 1의 예시에서 <content-title>과 클라우드 서비스 2의 예시에서의 <movietitle>에 상응하는 필터링 정책 상의 표준 용어는 <title>이다. 따라서, 클라우드 서비스 1의 서비스 프로파일 중 수신 데이터의 구조에 대한 메타데이터<content-title>의 식별자로 <content-title>에 대한 표준용어 <title>의 인덱스, '0'이 매핑될 수 있다. 클라우드 서비스 2의 메타데이터<movietitle>의 식별자로 <movietitle>에 대한 표준용어 <title>의 인덱스 '0'이 매핑될 수 있다. 이와 같은 방식으로 각 메타데이터 태그에 상응하는 표준용어의 인덱스가 매핑될 수 있다.
인덱스 매핑 테이블은 보안 담당자, 서비스 사용자 또는 서비스 제공자에 의해 사전에 설정될 수 있다. 새로운 클라우드 서비스가 추가되는 경우, 새로운 서비스 프로파일에 표준 용어를 통한 인덱스가 매핑 되면, 임의의 클라우드 서버로부터 현재 송수신 중인 데이터 스트림이 어떠한 데이터 필드로 구성된 메타데이터를 갖는지, 실제 콘텐츠 파일에 해당하는 바이너리 데이터가 데이터 스트림상의 어디에 위치하는 지 등에 대한 정보가 쉽게 인식될 수 있다.
도 9는 본 발명의 일실시예에 따른 콘텐츠 필터링 방법의 흐름도이다.
901단계에서, 콘텐츠 필터링 장치는 클라우드 서버로부터 데이터를 수신한다.
903단계에서, 콘텐츠 필터링 장치는 현재 통신 중인 클라우드 서비스의 종류를 확인한다. 콘텐츠 필터링 장치는 콘텐츠를 제공하는 클라우드 서비스의 종류를 확인한다. 콘텐츠 필터링 장치는 클라우드 서비스를 식별하여 서비스 프로파일 관리자에게 적합한 서비스 프로파일을 요청한다.
905단계에서, 콘텐츠 필터링 장치는 서비스 프로파일을 조회한다. 콘텐츠 필터링 장치는 서비스 프로파일 관리자를 이용하여, 현재 통신 중인 클라우드 서비스와 매칭되는 서비스 프로파일을 조회할 수 있다. 서비스 프로파일 관리자는 클라우드 서비스의 지원 콘텐츠, 식별정보 등에 기초하여 클라우드 서비스와 매칭되는 서비스 프로파일을 조회할 수 있다.
907단계에서, 콘텐츠 필터링 장치는 현재 통신 중인 클라우드 서비스에 해당하는 서비스 프로파일을 선택한다.
909단계에서, 콘텐츠 필터링 장치는 필터링 정책을 조회한다.
911단계에서, 콘텐츠 필터링 장치는 필터링 정책 상에 설정된 필터링 조건이 존재하는지 판단한다. 필터링 정책은 다양한 클라우드 서비스에서 각각 설정될 수도 있고, 동일하게 하나로 공유될 수도 있다. 필터링 조건은 부적합 콘텐츠를 정의하는 조건들을 의미할 수 있다. 예를 들면, 비속어, 특정 동영상 파일 명, 악성 코드 명칭, 코드명 등이 부적합 콘텐츠를 정의하는 조건 즉, 필터링 조건으로 사용될 수 있다. 또는 필터링 조건으로 사용자에 의해 설정된 특정 조건이 사용될 수도 있다.
913단계에서, 필터링 정책 상에 필터링 조건이 존재하면, 콘텐츠 필터링 장치는 필터링 조건으로 지정된 항목이 서비스 프로파일에 존재하는지 판단한다. 콘텐츠 필터링 장치는 서비스 프로파일에 매핑된 인덱스에 기초하여 필터링 조건으로 지정된 항목이 있는지 판단할 수 있다. 인덱스 매핑 테이블에는 필터링 조건 또는 필터링 정책 별로 인덱스가 할당될 수 있다. 콘텐츠 필터링 장치는 필터링 조건의 인덱스와 서비스 프로파일에 매핑된 인덱스를 비교하여, 동일한 인덱스가 있으면, 필터링 조건이 지정된 항목이 있다고 판단할 수 있다.
915단계에서, 서비스 프로파일에 필터링 조건으로 지정된 항목이 존재하면, 콘텐츠 필터링 장치는 송수신버퍼에 수신된 데이터가 있는지 판단한다.
917단계에서, 송수신버퍼에 수신된 데이터가 있으면, 콘텐츠 필터링 장치는 수신 데이터를 필터버퍼로 복사한다. 이때, 필터버퍼의 크기는 송수신버퍼의 크기 및 필터링의 대상이 되는 수신 데이터의 크기에 따라 가변적으로 조절될 수 있다.
919단계에서, 콘텐츠 필터링 장치는 필터버퍼에 저장된 수신 데이터로부터 필터링 조건으로 지정된 항목에 해당하는 데이터를 추출한다. 콘텐츠 필터링 장치는 서비스 프로파일의 메타데이터 또는 데이터 블록정보에 기초하여 데이터를 추출할 수 있다.
921단계에서, 콘텐츠 필터링 장치는 추출된 데이터를 이용하여, 콘텐츠가 필터링 조건에 부합하는지 판단한다. 콘텐츠 필터링 장치는 필터링 정책에서 선택된 필터링 조건의 조건식에 기초하여 상대적으로 데이터 크기가 작은 부가정보를 먼저 판별한다.
923단계에서, 콘텐츠가 필터링 조건에 부합하는 것으로 확인되면, 콘텐츠 필터링 장치는 클라우드 서비스로부터 데이터 수신하는 것을 차단한다.
925단계에서, 콘텐츠 필터링 장치는 수신하는 콘텐츠를 부적합 콘텐츠로 처리하여, 필터버퍼 및 송수신버퍼에 저장된 데이터들을 삭제하고, 파일 시스템에 파일 형태로 저장된 파일들로 삭제한다.
927단계에서, 서비스 프로파일에 필터링 조건으로 지정된 항목이 존재하지 않으면, 콘텐츠 필터링 장치는 다음 필터링 조건을 필터링 정책에서 조회한다.
929단계에서, 필터링 정책 상에 필터링 조건이 존재하지 않으면, 콘텐츠 필터링 장치는 파일 시스템에 저장된 콘텐츠 파일을 보안 프로그램을 통하여 검사할 수 있다. 이때, 보안 프로그램은 부적합 콘텐츠 파일을 검색하도록 프로그래밍 된 것으로, 백신과 같은 3rd 파티 프로그램을 의미한다.
931단계에서, 콘텐츠 필터링 장치는 검사 결과, 수신된 파일 즉 콘텐츠 파일이 안전한 것인지 판단한다. 안전한 것으로 판단되지 않으면, 925 단계로 진행된다. 안전한 것으로 판단되면, 콘텐츠 수신을 계속 진행한다.
도 10은 본 발명의 일실시예에 따른 콘텐츠 필터링 방법에서 데이터 버퍼링의 흐름을 나타낸 도면이다.
1010단계에서, 콘텐츠 필터링 장치는 데이터 입출력의 효율을 위해 수신 버퍼를 생성할 수 있다. 수신 버퍼는 데이터 송수신부에서 수신하는 데이터를 소정 크기만큼 일시적으로 저장할 수 있다.
1020단계에서, 콘텐츠 필터링 장치는 클라우드 서버로부터 네트워크를 통하여 데이터를 수신한다. 데이터는 콘텐츠를 구성한다.
1030단계에서, 콘텐츠 필터링 장치는 수신된 데이터는 수신 버퍼에 일시적으로 저장될 수 있는데, 수신 버퍼에 여유 공간이 있는지 확인한다.
1040단계에서, 콘텐츠 필터링 장치는 수신 버퍼에 여유 공간이 있으면 계속해서 데이터를 수신하고, 수신 버퍼에 여유 공간이 없으면, 수신 버퍼의 데이터를 파일 시스템의 파일로 저장한다. 이때, 수신 버퍼에서 플러쉬(flush)동작이 이루어진다.
1050단계에서, 콘텐츠 필터링 장치는 수신 버퍼의 데이터를 필터버퍼로 복사한다. 필터버퍼의 크기는 수신 버퍼의 크기 및 판별의 대상이 되는 데이터의 크기에 따라 가변적으로 조절될 수 있다.
1060단계에서, 콘텐츠 필터링 장치는 필터버퍼에 여유 공간이 없으면, 필터버퍼에 저장된 데이터를 플러쉬하여 필터버퍼를 비울 수 있다. 또는 콘텐츠 필터링 장치는 필터버퍼에 저장된 데이터에 대해 부적합 판단이 완료되면, 필터버퍼를 비울 수 있다.
1070단계에서, 콘텐츠 필터링 장치는 계속해서 데이터가 수신되는지 판단한다. 데이터가 계속해서 수신되면 1020단계로 진행하고, 데이터 수신이 완료되면 절차를 종료한다.
도 11은 본 발명의 일실시예에 따른 콘텐츠 필터링 방법에서 서비스 프로파일의 검색, 수정 및 생성 과정을 나타낸 도면이다.
1101단계에서, 서비스 프로파일 관리자는 데이터의 송수신이 시작되거나 필터의 요청에 따라 서비스 프로파일을 검색할 수 있다. 서비스 프로파일은 로컬 스토리지 또는 서비스 프로파일 데이터베이스에 저장되어 있다.
1103단계에서, 서비스 프로파일 관리자는 서비스 프로파일 DB에 저장된 서비스 프로파일이 있는지 확인한다.
1105단계에서, 저장된 서비스 프로파일이 있는 경우, 서비스 프로파일 관리자는 저장된 서비스 프로파일을 삭제할 것인지 판단한다. 서비스 프로파일을 삭제하는 경우는, 해당 클라우드 서비스로부터 콘텐츠를 수신하지 않기로 결정하는 경우를 의미한다.
1107단계에서, 서비스 프로파일을 삭제하기로 결정하였다면, 서비스 프로파일 관리자는 서비스 프로파일을 삭제한다.
1109단계에서, 데이터 송수신부는 삭제된 서비스 프로파일에 대응하는 클라우드 서비스와의 액세스를 최소한다.
1111단계에서, 서비스 프로파일 DB에 저장된 서비스 프로파일이 없는 경우, 서비스 프로파일 관리자는 서비스 프로파일을 새롭게 추가할 것인지 판단한다. 판단의 기준은 새롭게 등록된 클라우드 서비스가 있는지 여부, 새롭게 추가된 데이터 스트림 구성정보가 있는 경우 등이 될 수 있다.
1113단계에서, 서비스 프로파일을 새롭게 추가하기로 결정하는 경우, 서비스 프로파일 관리자는 보안관제서버 또는 각 클라우드 서비스를 제공하는 서버에 새로운 서비스 프로파일을 요청할 수 있다.
1115단계에서, 서비스 프로파일 관리자는 새로운 서비스 프로파일을 수신하였는지 확인한다.
1117단계에서, 서비스 프로파일 관리자는 새로운 서비스 프로파일을 수신하지 못한 경우, 사용자 정의 서비스 프로파일을 생성할 수 있다. 사용자 정의 서비스 프로파일은 사용자에 의하여 설정된 서비스 프로파일을 의미한다.
1119단계에서, 새로운 서비스 프로파일을 수신한 경우, 서비스 프로파일 관리자는 서비스 프로파일 DB에 동일한 서비스 프로파일이 저장되어 있는지 확인한다.
1121단계에서, 동일한 서비스 프로파일이 저장된 경우, 서비스 프로파일 관리자는 서비스 프로파일을 수정할 것인지 결정한다.
1123단계에서, 서비스 프로파일을 수정하기로 결정한 경우, 서비스 프로파일 관리자는 서비스 프로파일을 수정한다.
1125단계에서, 서비스 프로파일 관리자는 생성된 사용자 정의 서비스 프로파일을 서비스 프로파일 DB에 저장한다.
1127단계에서, 서비스 프로파일 관리자는 수정된 서비스 프로파일 또는 생성된 사용자 정의 서비스 프로파일에 해당하는 클라우드 서버를 선택할 수 있다.
도 12는 본 발명의 일실시예에 따른 콘텐츠 필터링 방법에서 필터링 정책의 검색, 추가 과정을 나타낸 도면이다.
1201단계에서, 콘텐츠 필터링 장치는 클라우드 서버로부터 네트워크를 통하여 콘텐트를 수신할 수 있다.
1203단계에서, 필터링 정책 관리자는 현재 선택된 클라우드 서비스의 식별 정보와 함께 필터링 정책 데이터베이스(DB)에 저장된 필터링 정책이 존재하는지 판단한다.
1205단계에서, 필터링 정책 관리자는 저장된 필터링 정책이 존재하는 경우, 저장된 필터링 정책이 최신 필터링 정책인지 판단한다.
1207단계에서, 필터링 정책 관리자는 최신 필터링 정책이 아닌 경우, 보안서버에 최신 필터링 정책을 요청할 수 있다.
1209단계에서, 필터링 정책 관리자는 보안서버로부터 최신 필터링 정책을 수신한다.
1211단계에서, 보안서버는 보안서버의 관리자로부터 필터링 정책을 추가로 입력 받을 수 있다.
1213단계에서, 필터링 정책 관리자는 각 클라우드 서비스에 최신 필터링 정책이 존재하는지 판단한다.
1215단계에서, 필터링 정책 관리자는 각 클라우드 서비스의 최신 필터링 정책이 존재하는 경우, 각 클라우드 서비스에 최신 필터링 정책을 요청한다.
1217단계에서, 필터링 정책 관리자는 각 클라우드 서비스로부터 최신 필터링 정책을 수신한다.
1219단계에서, 필터링 정책 관리자는 사용자에 의해 설정된 사용자 필터링 정책을 추가로 수신할 수 있다.
1221단계에서, 필터는 보안 서버 및 각 클라우드 서비스를 통하여 업데이트 된 최신 필터링 정책에 기초하여 필터링을 수행할 수 있다.
본 발명의 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.

Claims (17)

  1. 적어도 하나의 클라우드 서버로부터 콘텐츠를 구성하는 데이터 스트림을 수신하는 수신부;
    상기 적어도 하나의 클라우드 서버에 대응하는 서비스 프로파일 및 필터링 조건에 기초하여 상기 콘텐츠를 필터링하는 필터링부; 및
    상기 데이터 스트림에서 상기 필터링 조건과 매칭되는 상기 서비스 프로파일의 인덱스에 기초하여 상기 필터링 조건과 관련된 데이터를 검색하는 제어부
    를 포함하는 콘텐츠 필터링 장치.
  2. 제1항에 있어서,
    상기 데이터 스트림을 구성하는 데이터들을 소정 영역의 크기만큼 저장하는 수신버퍼;
    상기 필터링 조건과 관련된 데이터의 크기에 따라 가변적인 크기를 가지며, 상기 수신버퍼에 저장된 상기 필터링 조건과 관련된 데이터들을 저장하는 필터버퍼; 및
    상기 수신버퍼의 크기에 기초하여 결정되는 복수개의 메모리 블록을 포함하는 메모리 풀(memory pool)
    을 더 포함하는 콘텐츠 필터링 장치.
  3. 제2항에 있어서,
    상기 제어부는
    상기 필터링 조건과 관련된 데이터의 크기에 기초하여 상기 필터버퍼에 할당되는 상기 메모리 블록의 수를 적응적으로 조절하는
    콘텐츠 필터링 장치.
  4. 제1항에 있어서,
    상기 제어부는
    상기 적어도 하나의 클라우드 서버의 액세스에 필요한 정보 및 상기 데이터 스트림의 구성정보를 포함하는 상기 서비스 프로파일을 로딩, 수정, 삭제 또는 생성하는 서비스 프로파일 관리부; 및
    상기 서비스 프로파일의 식별 값과 매칭되는 필터링 조건을 필터 정책에 기초하여 로딩, 수정, 삭제 또는 생성하는 필터 정책 관리부
    를 포함하는 콘텐츠 필터링 장치.
  5. 제1항에 있어서,
    상기 제어부는
    인덱스 매핑 테이블의 기준정보에 기초하여 상기 인덱스 매핑 테이블의 인덱스와 상기 서비스 프로파일의 데이터 스트림 구성정보를 매핑하는 매핑부
    를 포함하는 콘텐츠 필터링 장치.
  6. 제1항에 있어서,
    상기 제어부는
    신규 클라우드 서비스가 추가되는 경우, 인덱스 매핑 테이블에 기초하여 상기 신규 클라우드 서비스의 서비스 프로파일을 클라우드 서비스의 종류에 관계없이 통일된 서비스 프로파일로 재생성하는
    콘텐츠 필터링 장치.
  7. 제5항에 있어서,
    상기 인덱스 매핑 테이블은 등록된 클라우드 서비스의 필터 정책에 기초하여 결정된 필터링 조건과 상기 필터링 조건 별로 할당된 인덱스를 포함하고,
    상기 데이터 스트림 구성정보는 콘텐츠의 부가정보 및 상기 콘텐츠의 실제 데이터를 전송하는 방식에 대한 정보를 포함하는
    콘텐츠 필터링 장치.
  8. 제2항에 있어서,
    상기 제어부는
    상기 필터링 조건과 관련된 데이터의 상기 수신버퍼 상에서의 위치, 상기 필터링 조건의 판별에 소요되는 시간, 상기 수신버퍼에 저장된 데이터들의 플러쉬(flush)에 소요되는 시간에 기초하여 상기 필터버퍼에 할당되는 상기 메모리 블록의 수를 적응적으로 조절하는
    콘텐츠 필터링 장치.
  9. 제1항에 있어서,
    상기 제어부는
    상기 필터링부에서 상기 필터링 조건에 부합하는 콘텐츠가 검출되면, 상기 데이터 스트림의 수신을 차단하고, 수신버퍼에 저장된 데이터를 삭제하고, 파일 시스템에 저장된 콘텐츠 파일을 삭제하는
    콘텐츠 필터링 장치.
  10. 제1항에 있어서,
    상기 제어부는
    상기 적어도 하나의 클라우드 서버에 대응하는 서비스 프로파일에 상기 필터링 조건으로 설정된 항목이 존재하는지 판단하는
    콘텐츠 필터링 장치.
  11. 제1항에 있어서,
    상기 수신부에서 수신된 후, 파일 시스템에 저장된 콘텐츠 파일의 안정성을 검사하는 콘텐츠 파일 검사부
    를 더 포함하는 콘텐츠 필터링 장치.
  12. 제1항에 있어서,
    상기 필터링부는
    필터버퍼로 상기 콘텐츠의 데이터가 복사되면, 상기 필터링 조건에 기초하여 상기 서비스 프로파일로부터 상기 필터링 조건에 매칭되는 데이터의 위치를 확인하고, 상기 확인된 위치에 기초하여 상기 필터버퍼에서 상기 필터링 조건에 매칭되는 데이터를 추출하는
    콘텐츠 필터링 장치.
  13. 제1항에 있어서,
    상기 적어도 하나의 클라우드 서버로 콘텐츠를 구성하는 데이터 스트림을 송신하는 송신부; 및
    상기 송신하는 데이터 스트림을 구성하는 데이터들을 소정 영역의 크기만큼 저장하는 송신버퍼
    를 더 포함하는 콘텐츠 필터링 장치.
  14. 적어도 하나의 클라우드 서버로부터 콘텐츠를 구성하는 데이터 스트림을 수신하는 단계;
    상기 데이터 스트림에서 필터링 조건과 매칭되는 상기 적어도 하나의 클라우드 서버에 대응하는 서비스 프로파일의 인덱스에 기초하여 상기 필터링 조건과 관련된 데이터를 검색하는 단계; 및
    상기 서비스 프로파일 및 상기 필터링 조건에 기초하여 상기 콘텐츠를 필터링하는 단계
    를 포함하는 콘텐츠 필터링 방법.
  15. 제14항에 있어서,
    상기 데이터 스트림을 구성하는 데이터들을 소정 영역의 크기를 가지는 수신버퍼에 저장하는 단계; 및
    상기 필터링 조건과 관련된 데이터의 크기에 따라 가변적인 크기를 가지며, 상기 수신버퍼에 저장된 상기 필터링 조건과 관련된 데이터들의 복사본을 필터버퍼 에 저장하는 단계
    를 더 포함하는 콘텐츠 필터링 방법.
  16. 제15항에 있어서,
    상기 필터링 조건과 관련된 데이터의 크기에 기초하여 상기 필터버퍼에 할당되는 메모리 블록의 수를 적응적으로 조절하는 단계
    를 더 포함하는 콘텐츠 필터링 방법.
  17. 제15항에 있어서,
    상기 콘텐츠를 필터링하는 단계는
    상기 필터버퍼로 상기 콘텐츠의 데이터가 복사되면, 상기 필터링 조건에 기초하여 상기 서비스 프로파일로부터 상기 필터링 조건에 매칭되는 데이터의 위치를 확인하고, 상기 확인된 위치에 기초하여 상기 필터버퍼에서 상기 필터링 조건에 매칭되는 데이터를 추출하는 단계; 및
    상기 추출된 데이터에 상기 필터링 조건과 매칭되는 정보가 포함되는지 판단하는 단계
    를 포함하는 콘텐츠 필터링 방법.
KR1020120018009A 2012-02-22 2012-02-22 콘텐츠 필터링 장치 및 방법 KR101312125B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120018009A KR101312125B1 (ko) 2012-02-22 2012-02-22 콘텐츠 필터링 장치 및 방법
US13/670,927 US20130219483A1 (en) 2012-02-22 2012-11-07 Content filtering apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120018009A KR101312125B1 (ko) 2012-02-22 2012-02-22 콘텐츠 필터링 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20130101645A KR20130101645A (ko) 2013-09-16
KR101312125B1 true KR101312125B1 (ko) 2013-09-26

Family

ID=48983414

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120018009A KR101312125B1 (ko) 2012-02-22 2012-02-22 콘텐츠 필터링 장치 및 방법

Country Status (2)

Country Link
US (1) US20130219483A1 (ko)
KR (1) KR101312125B1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8489685B2 (en) 2009-07-17 2013-07-16 Aryaka Networks, Inc. Application acceleration as a service system and method
AU2012281166B2 (en) 2011-07-11 2017-08-24 Paper Software LLC System and method for processing document
WO2013009889A1 (en) * 2011-07-11 2013-01-17 Paper Software LLC System and method for searching a document
CA2840231A1 (en) 2011-07-11 2013-01-17 Paper Software LLC System and method for processing document
CA2840229A1 (en) 2011-07-11 2013-01-17 Paper Software LLC System and method for processing document
KR101575229B1 (ko) * 2014-04-07 2015-12-07 주식회사 코난테크놀로지 다중 데이터 검색을 위한 사용자 단말 및 그 검색방법
US9548910B2 (en) * 2014-05-21 2017-01-17 Sap Se Distributed system architecture using event stream processing
US9280683B1 (en) * 2014-09-22 2016-03-08 International Business Machines Corporation Multi-service cloud storage decision optimization process
US9553887B2 (en) * 2014-10-13 2017-01-24 Vmware, Inc. Virtual machine compliance checking in cloud environments
US20160139834A1 (en) * 2014-11-14 2016-05-19 Cisco Technology, Inc. Automatic Configuration of Local Storage Resources
CN104506494A (zh) * 2014-12-08 2015-04-08 索心 移动互联网云计算、大数据、安全系统
WO2016181470A1 (ja) * 2015-05-11 2016-11-17 株式会社東芝 認識装置、認識方法およびプログラム
JP6438850B2 (ja) * 2015-06-10 2018-12-19 株式会社日立製作所 評価システム
CN106131613B (zh) * 2016-07-26 2019-10-01 深圳Tcl新技术有限公司 智能电视视频分享方法及视频分享系统
KR102021843B1 (ko) * 2018-02-23 2019-09-17 주식회사 넥스트키 어린이 대상 콘텐츠를 이용한 동영상 제공 시스템, 그리고 이를 위한 동영상 제공 방법
US11263305B2 (en) 2018-05-09 2022-03-01 Netflix, Inc. Multilayered approach to protecting cloud credentials
US10855754B1 (en) * 2018-07-16 2020-12-01 Amazon Technologies, Inc. Isolated read channel categories at streaming data service
WO2020085529A1 (ko) * 2018-10-24 2020-04-30 김종호 인터넷 서비스를 파일 시스템으로 변환할 수 있는 장치 및 방법과 컴퓨터로 읽을 수 있는 기록매체
US10911945B1 (en) * 2018-11-19 2021-02-02 Sprint Spectrum L.P. Automated eUICC service profile configuration in view of operational issue with respect to eUICC service profile
CN109474609A (zh) * 2018-12-07 2019-03-15 国云科技股份有限公司 一种云平台下租户安全威胁告警系统及其实现方法
KR102213373B1 (ko) * 2020-06-16 2021-02-08 김민석 메타데이터를 이용한 유해 컨텐츠 관리 장치 및 방법
US20220294796A1 (en) * 2021-03-11 2022-09-15 Jeffrey B. Mitchell Personal awareness system and method for personal safety and digital content safety of a user

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100057306A (ko) * 2008-11-21 2010-05-31 삼성전자주식회사 가상화 환경에서 보안 정보를 제공하기 위한 장치 및 방법
KR20120013916A (ko) * 2011-09-28 2012-02-15 삼성에스디에스 주식회사 스마트 카드, 및 이를 이용한 안티-바이러스 시스템 및 스캐닝 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5592622A (en) * 1995-05-10 1997-01-07 3Com Corporation Network intermediate system with message passing architecture
US6493837B1 (en) * 1999-07-16 2002-12-10 Microsoft Corporation Using log buffers to trace an event in a computer system
US7013482B1 (en) * 2000-07-07 2006-03-14 802 Systems Llc Methods for packet filtering including packet invalidation if packet validity determination not timely made
US8050275B1 (en) * 2003-11-18 2011-11-01 Cisco Technology, Inc. System and method for offering quality of service in a network environment
US20090178131A1 (en) * 2008-01-08 2009-07-09 Microsoft Corporation Globally distributed infrastructure for secure content management
US8856300B2 (en) * 2010-05-18 2014-10-07 At&T Intellectual Property I, L.P. End-to-end secure cloud computing
US8848554B2 (en) * 2011-03-07 2014-09-30 Oracle International Corporation Packet sniffing with packet filtering hooks
US8578442B1 (en) * 2011-03-11 2013-11-05 Symantec Corporation Enforcing consistent enterprise and cloud security profiles
US8806160B2 (en) * 2011-08-16 2014-08-12 Pure Storage, Inc. Mapping in a storage system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100057306A (ko) * 2008-11-21 2010-05-31 삼성전자주식회사 가상화 환경에서 보안 정보를 제공하기 위한 장치 및 방법
KR20120013916A (ko) * 2011-09-28 2012-02-15 삼성에스디에스 주식회사 스마트 카드, 및 이를 이용한 안티-바이러스 시스템 및 스캐닝 방법

Also Published As

Publication number Publication date
US20130219483A1 (en) 2013-08-22
KR20130101645A (ko) 2013-09-16

Similar Documents

Publication Publication Date Title
KR101312125B1 (ko) 콘텐츠 필터링 장치 및 방법
US11734125B2 (en) Tiered cloud storage for different availability and performance requirements
EP4034998B1 (en) User-specific data manipulation system for object storage service based on user-submitted code
US7434057B2 (en) System and method for watermarking in accessed data in a storage system
US11023416B2 (en) Data access control system for object storage service based on owner-defined code
US10521423B2 (en) Apparatus and methods for scanning data in a cloud storage service
US20150264111A1 (en) Authorizing access by email and sharing of attachments
US9246875B2 (en) Identifying and blocking prohibited content items in a content management system
US20080052328A1 (en) Abstracted and optimized online backup and digital asset management service
US11550944B2 (en) Code execution environment customization system for object storage service
US20090259731A1 (en) Inserting a multimedia file through a web-based desktop productivity application
US11416628B2 (en) User-specific data manipulation system for object storage service based on user-submitted code
KR20100107479A (ko) 직접적인 사용자 액세스를 갖는 저장 장치
US20080109908A1 (en) Reverse Name Mappings In Restricted Namespace Environments
JP2016186782A (ja) データ処理方法及びデータ処理装置
US9003553B2 (en) Viewing content under enterprise digital rights management without a client side access component
CN105812427B (zh) 文件上传和下载方法、装置、及文件服务器
CN114586010A (zh) 对象存储服务的输出路径中对象过滤代码的按需执行
US11258869B2 (en) Method and system for controlling downloading of a file in a cloud storage service
US10917390B2 (en) Browser drag and drop file upload encryption enforcement
US10915655B2 (en) Browser drag and drop file upload encryption enforcement
EP2686791B1 (en) Variants of files in a file system
WO2023124041A1 (zh) 一种勒索病毒检测方法以及相关系统
Chi et al. Automatic proxy-based watermarking for WWW
US8990265B1 (en) Context-aware durability of file variants

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160901

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180227

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190227

Year of fee payment: 6