KR20140113705A - 웹 호스트에 의해 제공된 웹 콘텐츠의 진본성을 보장하기 위한 방법, 디바이스, 시스템 및 컴퓨터 판독가능 저장 매체 - Google Patents

웹 호스트에 의해 제공된 웹 콘텐츠의 진본성을 보장하기 위한 방법, 디바이스, 시스템 및 컴퓨터 판독가능 저장 매체 Download PDF

Info

Publication number
KR20140113705A
KR20140113705A KR1020147021372A KR20147021372A KR20140113705A KR 20140113705 A KR20140113705 A KR 20140113705A KR 1020147021372 A KR1020147021372 A KR 1020147021372A KR 20147021372 A KR20147021372 A KR 20147021372A KR 20140113705 A KR20140113705 A KR 20140113705A
Authority
KR
South Korea
Prior art keywords
web content
content
client
web
repository
Prior art date
Application number
KR1020147021372A
Other languages
English (en)
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 포사이트 인포메이션 시큐러티 테크놀로지스 엘티디.
Publication of KR20140113705A publication Critical patent/KR20140113705A/ko

Links

Images

Classifications

    • 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/1483Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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
    • G06F21/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

컴퓨터-실행 방법은 리포지터리(12)에 저장된 웹 콘텐츠가 웹 콘텐츠의 인증권자에 의해 승인된 웹 콘텐츠인 진본 웹 콘텐츠에서 벗어나는 지의 여부를 식별한 다음, 상기 웹 콘텐츠를 요청하는 클라이언트에게 제공한다.
저장소로의 웹 통신은 모니터 되고, 웹 콘텐츠는 인터셉트 되어 정해진 기준에 부합하는 것을 확정하기 위하여 안전 환경에서 상기 웹 콘텐츠가 분석된다.
웹 콘텐츠가 정해진 기준에 부합하지 않는 경우, 웹 콘텐츠를 전달하는 웹 호스트는 경보를 받는다.
하나의 실시예에서, 상기 웹 콘텐츠는 클라이언트에게 제공되기 전에 인터셉트 되어 분석되며, 진본증명되거나 승인가능한 형태로 적절하게 수정된 후에만 클라이언트에게 제공된다.

Description

서비스 프로바이더에 의해 제공된 IP 데이터의 진본성을 보장하기 위한 방법 및 시스템 {Method and System for Ensuring Authenticity of IP Data Served by a Service Provider}
본 발명은 일반적으로 네트워크 데이터의 보안(security)에 관한 것으로서, 구체적으로 웹 사이트의 데이터 완전성(data integrity)에 관한 것이다.
바이러스, 스파이웨어 애드웨어, 웜, 트로이목마 및 그 외의 다른 악성코드의 원하지 않은 다운로딩을 막기 위한, 인터넷용 데이터 보안 시스템에 관한 많은 선행기술들이 있다.
미국특허출원 공개 제2009/0287653호는 콘텐츠의 컴퓨터 파괴 소프트웨어 (malware) 포함 부분으로 액세스하는 것을 방지하기에 적합한 인터넷 브라우저를 개시하고 있다.
국제공개공보 제WO2010029036호는 유효한 디지털 서명 여부의 체크 및 신뢰할 수 있는 소스에 속하는 서명임을 확인하는 것을 바탕으로 컴퓨터 내에서 실행된 멀웨어 탐지방법(malware detection method)을 개시하고 있으며, 여기서, 서명이 신뢰할 수 있는 소스에 속하는 것으로 확인할 수 없으면, 멀웨어 스캔(malware scan)이 실시된다.
미국특허출원 공개 제2008/0262991호는 데이터의 흐름(data flow)들을 처리하는 시스템 및 방법을 개시하고 있다. 이 시스템 및 방법은 컴퓨터 혹은 컴퓨터 시스템에 보안 및 보호를 제공하기 위하여, 자기 조직화 지도(self-organizing map)와 같은 패턴 인식(pattern recognition)용 인공신경 다발(a set of artificial neurons)을 이용하고, 컴퓨터 네트워크를 포함하는 컴퓨터 시스템에 관련된 다양한 유형의 위협성 패턴에 적어도 부분적으로 기초한 위협 통합 관리(unified threat management)를 지원한다. 이 시스템은 정규 표현식 매칭(regular expression matching) 및 자기 조직화 지도에 기반한 콘텐츠 매칭(content matching) 및 거동이상탐지기술(behavioral anomaly detection techniques)을 적용하여 다양한 IP스택 층(layers of the IP-stack)에 접근 가능한 보안 위협이나 침입을 탐지한다.
미국특허 제7,565,550호는 시스템 관리자의 구체적 요구에 따른 여하한 수의검사 모드(inspection mode)로 네트워크 트래픽의 흐름을 모니터할 수 있는 네트워크 레벨 바이러스 모니터링 시스템(network level virus monitoring system)을 개시하고 있다. 이 시스템은 컴퓨터 바이러스 및 웜을 탐지하고, 폴리시(policy) 및 다수의 탐지 규칙들(detection rules)에 의해 정의된 비정상적인 이벤트로서 관측된 통계적 결과를 이용해 다수의 탐지규칙들을 습득 및 저장하는데 사용되는 룰 엔진(rules engine)을 저장하기 위한 컨트롤러(controller)를 포함한다. 비정상적 거동 보고서(abnormal behavior report)가 생성되어, 수행해야할 액션을 결정하기 위해 서버 컴퓨터 중 하나에 의해 평가된다.
미국특허 제7,296,274호는 디셉션(deception) 및/또는 로직(logic)의 변경된 이행을 정보 시스템에 제공하는 방법 및 장치를 개시하고 있다. 특정 실시예에서, 디셉션 및/또는 보호는 오퍼레이팅 시스템(operating system)의 하나 혹은 그 이상의 시스템 호출에 대한 인터셉팅 및/또는 수정 오퍼레이션에 의해 제공된다.
공지의 시스템 및 방법들은 일반적으로 클라이언트의 컴퓨터에 나타난 멀웨어로부터 클라이언트의 컴퓨터를 보호하기 위한 필요성에 관한 것이다. 그러나, 로그 오퍼레이터(rogue operator)들 또한 알려져 있는데, 웹 프로바이더의 서버를 해킹하여,데이터를 손상시켜서, 손상된 데이터를 클라이언트가 다운로드받게 하는 그 결과 웹 프로바이더(web provider)에 의해 클라이언트는 의도되지 않은 정보를 제공받게 된다. 그 결과, 그 컴퓨터에 보이는 웹 페이지는 클라이언트에게 사실상의 잘못된 데이터를 제공할 뿐만 아니라, 웹 프로바이더를 틀리게 보여주고, 웹 프로바이더의 메시지 전달을 방해한다.
그러나, 웹페이지에 멀웨어가 심어져 있지 않으면, 공지의 시스템들은 상기 웹 페이지의 콘텐츠에 오류가 생겼다는 것을 탐지하지 못할 것이다. 멀웨어가 심어져 있는 경우에도, 공지의 시스템들은 멀웨어를 인터셉트하여 최종 사용자에게 경고를 보낼 수 있으나 웹 콘텐츠의 완전성을 체크할 수 없다.
따라서, 소스(source)의 웹 콘텐츠(web content)의 완전성을 체크하고, 소유자가 의도하였던 바의 믿을만한 표시(faithful representation)인 경우에만 클라이언트의 컴퓨터에 다운로드 될 수 있게 허용하는 네트워크 보안 시스템 및 방법 (network security system and method)을 제공하는 것이 본 발명의 하나의 목적이다.
이러한 목적으로, 본 발명의 하나의 측면에 의해, 리포지터리(repository)에 저장된 웹 콘텐츠가, 웹 콘텐츠의 인증권자에 의해 승인된 웹 콘텐츠인 진본 웹 콘텐츠(authentic web content)인가의 여부를, 상기 웹 콘텐츠를 요청하는 클라이언트에게 제공하기 전에, 식별하기 위한 컴퓨터-실행 방법(computer-implemented method)이 제공되며, 상기 방법은
상기 리포지터리에 대한 웹 통신을 모니터링하는 단계;
상기 웹 콘텐츠를 클라이언트에게 제공하기 전에 인터셉트하는 단계;
상기 웹 콘텐츠가 정해진 기준에 부합하는 것을 확정(establish)하기 위하여 안전 환경(safe environment)에서 상기 웹 콘텐츠를 분석하는 단계; 및
상기 웹 콘텐츠가 정해진 기준에 부합하지 않는 경우 상기 웹 콘텐츠를 제공하는 상기 웹 호스트에게 경보를 보내는 단계;를 포함하여 구성된다.
본 발명의 또 하나의 측면에 의하면, 리포지터리에 저장된 웹 콘텐츠가 상기 웹 콘텐츠를 요청한 클라이언트에게 제공되는 것을 막기 위한, 컴퓨터-실행 방법이 제공되고, 상기 방법은
상기 리포지터리에 대한 웹 통신을 모니터링하는 단계;
상기 웹 콘텐츠를 클라이언트에게 제공하기 전에 인터셉트하는 단계;
상기 웹 콘텐츠가 예상대로 동작하는 것을 확정하기 위하여 안전 환경에서 상기 웹 콘텐츠를 분석하는 단계; 및
상기 웹 콘텐츠가 예상대로 동작하는 경우에만 클라이언트에게 제공하는 단계;를 포함하여 구성된다.
본 발명의 또 하나의 측면에 의하면, 리포지터리에 저장된 웹 콘텐츠를 데이터 통신 네트워크(data communications network)를 통해 이를 요청한 클라이언트에게 제공하기 전에, 상기 웹 콘텐츠의 진위를 식별하기 위한 장치가 제공되고, 상기 장치는
클라이언트가 상기 웹 콘텐츠를 요청하기 위하여 상기 리포지터리로 액세스하는 것을 허용하기 위한 통신 포트;
리포지터리에 의해 클라이언트에 업로드된 웹 콘텐츠를 인터셉트 하기 위하여, 상기 데이터 통신 네트워크에 커플링하기 위한 데이터 통신 포트를 갖는, 모니터링 유닛;
상기 모니터링 유닛에 의해 인터셉트된 웹 콘텐츠를 수신하여, 미리 정해진 기준에 부합하는 것을 확정하기 위해 안전 환경에서 분석하기 위하여, 상기 모니터링 유닛에 커플링되는 분석 유닛; 및
상기 분석 유닛에 커플링 되어, 상기 웹 콘텐츠를 제공하는 웹 호스트에게 경보를 내기 위하여, 상기 기준에 적합하지 않은 웹 콘텐츠에 즉각 대응하는, 경보 유닛;을 포함하여 구성된다.
본 발명의 또 하나의 측면에 의하면, 리포지터리에 저장된 웹 콘텐츠가 이를 요청한 클라이언트에게 데이터 통신 네트워크를 통해 제공되는 것을 방지하기 위한 장치가 제공되고, 상기 장치는
클라이언트가 상기 웹 콘텐츠를 요청하기 위하여 상기 리포지터리로 액세스하는 것을 허용하기 위한 통신 포트;
리포지터리에 의해 클라이언트에 업로드된 웹 콘텐츠를 인터셉트 하기 위하여, 상기 데이터 통신 네트워크에 커플링되는 데이터 통신 포트를 갖는, 모니터링 유닛;
상기 모니터링 유닛에 의해 인터셉트된 웹 콘텐츠를 받아, 그것이 정해진 기준에 부합하는 것을 확정하기 위해 안전 환경에서 분석하여, 상기 모니터링 유닛에 커플링되는 분석 유닛; 및
클라이언트쪽으로의 상기 웹 콘텐츠를 블록킹하기 위해, 상기 분석 유닛에 커플링되어, 상기 웹 콘텐츠가 상기 기준에 부합하지 않는 것에 즉각 응답하는 통신 아웃풋(communications output);를 포함하여 구성된다.
본 발명을 이해하고, 실제로 어떻게 실시되는지 알도록 하기 위해, 오직 비-제한적인 예를 드는 방법으로, 실시예를 첨부 도면을 참조하여 설명하기로 한다.
도 1은 인라인 애널라이저(inline analyzer) 배치를 위한 본 발명의 하나의 실시예에 의한 네트워크 구성(network configuration)의 개략적으로 나타낸 도면이고;
도 2는 아웃오브밴드 어낼라이저(out-of-band analyzer) 배치를 위한 본 발명의 또 하나의 실시예에 의한 네트워크 구성의 개략적으로 나타낸 도면이며;
도 3은 HTTP를 분석에서 수행되는 주요 오퍼레이션들을 보다 상세하게 보여주는, 도 1에 도시된 네트워크의 개략도이다.
몇몇 실시예들에 관한 아래의 설명에서, 하나 이상의 도면에 나타나거나, 유사한 기능을 공유하는, 동일 구성요소들은 동일한 참조 부호로 표시한다.
도 1은 (리포지터리를 구성하는) 웹 서버(12)에 저장된 웹 콘텐츠가 진본 웹 콘텐츠(authentic web content)로부터 벗어나는지를 식별하기 위하여, HTTP를 분석하기 위한 본 발명에 의한 시스템(10)의 개략도이다. 본 발명 및 첨부된 특허 청구 범위에 있어서, 진본 웹 콘텐츠는 상기 웹 콘텐츠를 요청하는 클라이언트(F100)에게 제공하기에 앞서 상기 웹 콘텐츠의 인증권자가 승인한 웹 콘텐츠이다.
웹 서버(12)로의 웹 통신은 인라인으로 모니터되며, 상기 웹 콘텐츠는 트랜스패어런트 HTTP 게이트웨이(transparent HTTP gateway)의 역할을 하는 IETF RFC 2616에 따라 동작하는, 또는 웹 콘텐츠를 요청하는 클라이언트와 그 콘텐츠를 제공하는 원래 서버(상기 웹 호스트) 사이에서 트래픽의 인터셉트 또는 스니핑(sniffing)을 허용하는 방식으로 네트워크에 위치한 패시브 네트워크 트래픽 스니핑 디바이스(passive network traffic sniffing device)로서 동작하는, 커스텀 HTTP 프록시 소프트웨어(custom HTTP proxy software)를 이용함으로써, 클라이언트(11)에게 제공되기 전에 인터셉트된다. 상기 프록시 소프트웨어는 (클라이언트로부터 오는) HTTP 요청들(requests) 및 (원래 서버들로부터 오는) 응답들 전부를 디코딩(decode) 및 검사(inspect)하여, 폴리시 세팅(policy settings)에 따라, 전적으로 있는 그대로 패스하거나, 수정된 형태로 패스하거나, 교체하거나, 또는 전부 블록킹할 수 있다. 가능한 다양한 거동들과 각 거동이 적용되는 상황들이 아래에 설명되어 있다.
인터넷과 같은 IP 네트워크(13)를 통해 웹 서버(12)와 통신하는 클라이언트(11)를 포함하는 시스템(10)이, 도 1에 상세히 도시되어 있다. 웹 서버(12)는 전형적으로 하나 혹은 그 이상의 백엔드 서버(backend servers)(14)에 의해 백업된다. 서버(12)는 IP 네트워크(13)에 HTTP 프록시 애널라이저(HTTP proxy analyzer)(15)를 통해 커플링되고, 그것은 클라이언트(11)와 서버(12) 사이에서 통신들을 인터셉트하는 인터셉터 유닛(16)을 포함한다. 구체적으로, 서버로부터의 데이터 만이 분석되고 필터링되지만, 양방향의 트래픽이 인터셉트된다. 그렇지만, 상기 클라이언트로부터 상기 서버로 향하는 데이터도 클라이언트의 아이덴티티를 확정하기 위하여 인터셉트되고, 이에 의해 발생된 HTTP 요청들을 확정하기 위하여 인터셉트되어서, 합당한 클라이언트의 요청에 대하여 올바른 클라이언트에게 웹 반응(web response)들을 전달할 수 있게 한다. HTTP 애널라이저(15) 내에서, 인터셉터 유닛(16)은 정적 애널라이저(static analyzer)(17), 동적 애널라이저(dynamic analyzer)(18), 거동 애널라이저(behavior analyzer)(19)에 커플링된다. 정적 애널라이저(17)는 웹 서버(12)로부터 클라이언트(11)로 다운로드된 웹 페이지의 정적 콘텐츠(static content)를 그것이 클라이언트에게 도달하기 전에 분석하도록 구성된다. 동적 애널라이저(18) 및 거동 애널라이저(19)는, 클라이언트의 요청에 반응하여 클라이언트에게 전달하려는 웹 페이지의 정적, 동적 콘텐츠 및 웹 페이지의 거동이 진본 웹 페이지에 부합하는지의 여부를 확정하기 위해, 동일한 작업들을 동적 콘텐츠와 웹 페이지의 거동에 대해 수행한다.
HTTP 애널라이저(15)는, 상기 웹 콘텐츠가 클라이언트의 디스플레이 디바이스에 디스플레이한 이미지를 얻고, 그것을 미리 정해진 대표 이미지(predetermined representative image)와 비교하기에 적합하게 할 수 있다. 동적 애널라이저(18)는 동적 특징점들(dynamic features)이 정해진 포맷에 맞는지 혹은 변경되었는지 여부를 판정할 수 있다. 거동 애널라이저(19)는, 사용자 경험(user experience)이 정해진 진본증명 경험(predetermined authenticated experience)에 부합하는지의 여부를 판정하기 위해, 웹 콘텐츠와 함께 사용자 경험을 시뮬레이션하는 시뮬레이터를 포함한다. 사용자 경험이 일반적으로 브라우저-의존적(browser-dependent)이므로, 상기 시뮬레이터는, 웹 콘텐츠를 요청하는 웹 브라우저의 아이덴티티를 얻어 브라우저-특이 시뮬레이션(browser-specific simulation)을 수행하는 것으로 구성될 수 있다. 상기 시뮬레이터는, 누적 부분 웹 콘텐츠(cumulative partial web content)가 부분 웹 콘텐츠에 대한 정해진 진본증명 경험에 부합하는지의 여부를 판정하는 디바이스에 의해 인터셉트된 상기 누적된 부분 웹 콘텐츠를 반복적으로 시뮬레이션하고, 상기 부분 웹 콘텐츠를 클라이언트에게 릴리즈하면서 차후 분석을 위해 카피를 보유하는 것으로 구성될 수 있다.
HTTP 애널라이저(15) 내의 경보 유닛(20)은 상기 웹 페이지가 진본 웹 페이지에 부합하지 않음을 나타내는 경보 시그널을 발생시킨다. 모니터링 유닛(21)은 상기 경고 시그널을 모니터하고, 해당 웹 페이지가 진본 웹 페이지에서 벗어난 경우 적절한 조치를 취한다. 예를 들어, 모니터링 유닛(21)은 웹 서버에서 클라이언트로 향하는 트래픽을 자동으로 막을 수 있다. 그 대신에 또는 그에 더하여, 웹 호스트에게 적절한 경보를 제공하여, 그로 하여금 트래픽을 더 막을지 손상의 원인을 조사할지 판정할 수 있게 한다.
인라인 배치가 사용되는 상술한 네트워크 장치 구성에서, 클라이언트(11)와 웹 서버(12) 사이의 트래픽은 오직 HTTP 애널라이저(15)를 통해서만 통과할 수 있다. 이 과정은, 데이터가 분석되고 이어서 릴리즈되는 동안에, 데이터가 버퍼링되어 약간의 지연을 일으키는데, 그것은 도 3을 참조하여 이하 설명되는 바와 같이, 수정이후일 수 있다. 이러한 지연은 인라인 분석의 잠재적인 결점인 반면, 이러한 어프로치는 정품이 아닌 데이터를 차단하여 클라이언트에게 절대 도달하지 못하게 하는 장점이 있다. 이와 같은 고려는 높은 수준의 보안를 요하는 어플리케이션에서 최고로 중요하게 여겨질 수 있다.
도 2는 아웃오브밴드 애널라이저 배치에 사용될 수 있는, 또 하나의 네트워크 구성을 보여준다. 보이는 바와 같이, 시스템(10)은 도 2에서 클라이언트(11)와 웹 서버(12) 사이의 트래픽이 먼저 HTTP 애널라이저(15)를 지나지 않고 곧바로 웹(13)을 거쳐 통과하고, 그 카피가 HTTP 애널라이저(15)에 의해 효과적으로 뽑아내어져(siphoned) 분석된다는 사실만 빼고는, 도 1에서 도시된 것과 같다. 따라서, 이와 같은 구성에서, 데이터는 그것이 해당 클라이언트에게 전달되는 것과 독립적으로 분석되고, HTTP 애널라이저(15)는 이미 전달된 데이터를 소급적으로 막을 수 없다. 그러나, 그것은 경보신호를 제공할 수 있고, 웹 페이지가 진본 웹 페이지에서 벗어나는 경우, 적절한 조치를 취하기 위해 모니터링 유닛(21)이 그에 대해 즉각 반응한다. 예를 들어, 모니터링 유닛(21)은 웹 호스트에게 적절한 경고를 할 수 있고, 그에 따라 웹 호스트가 추가적인 트래픽을 차단하고, 손상의 원인을 조사할지 판정할 수 있다.
도 3은 상술한 두 가지의 네트워크 구성의 모듈들에 의해 수행되는 프로세스들의 세부사항을 보여준다. 이와 같이, 인터셉터 유닛(16)은 웹 서버(12)로부터 전달된 IP 패킷들을 클라이언트(11)에게 보내기 전에 인터셉트한다. 도면에 HTTP 응답(25)으로 나타낸, 인터셉트된 데이터는, HTTP 응답(25)이 차후의 분석에 알맞은 형태로 있는 것을 보장하는 디코더/인스펙션 유닛(decoder/inspection unit)(26)에 의해 언랩된다(unwarapped). 예를 들면, HTTP 응답(25)이 압축(compressed)된 채로 도달하는 경우, 디코더/인스펙션 유닛(26)에 의해 압축해제된다(decompressed). 이와 유사하게, HTTP 응답(25)은, 청크들로(in hunks) 전송되고 분석 전에 디코더/인스펙션 유닛(26)에 의해 함께 스티치될 필요가 있는, 대형 데이터 청크의 부분일 수 있다. 언랩된 데이터는, 아마도 수정 이후에, HTTP 응답을 전달할 클라이언트가 누구인지 인터셉터 유닛(16)이 알게 하기 위하여 클라이언트 요청 코리레이션 유닛(client request correlation unit)(27)에 의해 특정 클라이언트의 요청에 코리레이션된다(correlated). 그 후 상기 콘텐츠는, 상술한 정적 애널라이저(17), 동적 애널라이저(18), 그리고 거동 애널라이저(19)와 기능상 유사한, 분석 엔진(analysis engine)(29)의 분석을 위해 콘텐츠를 준비하는 콘텐츠 밸리데이션 유닛(content validation unit)(28)을 지나간다. 통지 엔진(notification engine)(30)은 분석 엔진(29)에 커플링되어, 인터셉터 유닛(16)이 어떻게 행동(act)할지 컨트롤하기 위해 발생시킨 경보 시그널에 반응한다. 그리하여, 인터셉터 유닛(16)은 HTTP 응답(25)이 클라이언트에게 제공되는 것을 블록킹하거나(31), 다른 HTTP 데이터로 교체(32)하거나 (데이터 패킷의 완전한 교체), 수정(33) 하거나 (즉 데이터 패킷의 부분적 변화) 변경 없이 받은 그대로 클라이언트에게 통과(34)하도록 설계될 수 있다.
상기 인터셉트된 웹 콘텐츠는 상기 웹 콘텐츠가 정해진 기준에 부합한 것으로 확정하기 위하여 안전 환경에서 분석된다. 이를 위해, HTTP 응답(25)은 분석되기에 앞서 안전 저장 호스트 디바이스(secure storage host device)(35)에 저장된다. 상기 웹 콘텐츠(즉 원래 서버에 의해 보내진 HTTP 응답의 페이로드 콘텐츠)는 두 가지 방식으로 분석된다. 첫 번째 방식에서, 상기 콘텐츠는 HTTP 프록시에 의해 불려온(invoked) 커스컴 어플리케이션 코드(custom application code)에 의해 분석된다. 이렇게 하여, 상기 웹 콘텐츠는 소프트웨어 코드에 의해 정적으로 설명될 수 있는 임의의 조건에 대하여 체크된다. 두 번째 방식에서, 상기 웹 콘텐츠는 상기 프록시에 의해 컨트롤되는 버추얼 머신(virtual machine)에서 구동하는 표준 브라우저 어플리케이션(standard browser application)에 공급되고, 브라우저의 거동은 블랙 박스(black box)로 관측된다. 이렇게 하여, 복합 웹 콘텐츠(complex web content)의 실제 거동(actual behavior)을 시뮬레이션하여, 클라이언트가 요청한 것이 안전하게 전송되는지 여부에 관하여 예측하게 할 수 있다.
만약, 상기 웹 콘텐츠가 기준에 부합하지 않는다면, 웹 콘텐츠를 제공하는 웹 호스트에게 경보를 통신한다. 예를 들어, 위의 분석들 중 하나가 상기 웹 콘텐츠가 장치 구성된 시큐리티 폴리시(security policy)를 충족하지 않는다고 판정하는 경우, 응답에서 취해질 수 있는 가능한 동작들 중의 하나는 그 상태에 대해 별도의 서버에 통지하는 것이다. 통지된 서버는 상기 웹 콘텐츠의 원래 웹 호스트로 동작하는 동일한 서버이거나, 혹은 다른 서버일 수 있다.
본 발명에 의하면, 웹 콘텐츠는 진본 여부를 확정하기 위해 분석된다. 웹 콘텐츠가 진본이 아니라고 판정되면, 상술한 바와 같이 웹 호스트에게 경보를 하는 등의 다양한 동작들이 취해질 수 있다. 도 2를 참조하여 설명된 어프로치를 오퍼레이트하는 시큐리티 시스템은 수동적인데, 그것은 웹 호스트가 어떤 시정조치(corrective action)를 취할 것인지 판정하도록 허용하기 때문이다.
도 2의 수동적인 어프로치와 대조적으로, 도 1에 참조하여 설명된 시스템은 능동적이며, 진본이 아닌 것으로 판명된 웹 콘텐츠가 클라이언트에게 제공되는 것을 막는다. 상기 웹 콘텐츠는 상술한 바와 같이 모니터되고, 인터셉트되고, 분석된다. 하지만, 예상대로 웹 콘텐츠가 오퍼레이트하는 경우에만 클라이언트에게 제공된다. 그리하여 상기 웹 콘텐츠가 예상한 것에 부합하지 않는다는 통지에 반응하여, 요청을 발생시킨 클라이언트가 차단될 수 있다(웹 콘텐츠가 제공되지 않는다). 그 대신에, 손상된 웹 콘텐츠는 이전에 안전하며 시큐리티 폴리시를 준수하는 것으로 알려진 콘텐츠로 교체되거나, 구성가능한(configurable) 에러 메시지로 교체되거나, 클라이언트가 보안 콘텐츠(secure content)를 수신할 다른 호스트 저장 디바이스(host storage device)로 방향전환(redirection) 될 수 있다.
몇몇 실시예에 따르면, 웹 콘텐츠의 분석은 "정적 비교(static comparison)"를 포함한다. 이것은 HTTP 페이로드(즉, 바이트 스트림(a byte stream))으로서의 상기 콘텐츠를, [요청이 된 URL(uniform resource locator)에 의해 키잉된(keyed)] 내부 데이터베이스에 저장된, 이전에 제공된 안전한 페이로드와 비교한다. 상기 페이로드는 두 페이로드가 (바이트 스트림들로 비교되어) 동일한 경우에만 승인된다.
정적 콘텐츠가 변경되었는지 여부를 판정하는 한 가지 방법은 정적 콘텐츠의 서명을 컴퓨팅하는 단계와, 알려진 유효 콘텐츠의 서명과 비교하는 단계를 포함하는 방법이다. 다른 방법은, 서명을 페이로드의 완전한 카피가 아니라, 페이로드 데이터의 크립토그래픽 해시(cryptographic hash)로 프로덕트의 내부 데이터베이스에 저장하는 방법으로, 여기서 원래 서버에 의해 되돌아온 웹 콘텐츠의 해시는 컴퓨팅되고, 상기 웹 콘텐츠는 데이터베이스에 저장된, 알려진 유효 콘텐츠의 해시와 같은 경우 분석을 통과하는 것으로 간주된다.
몇몇 실시예와 관련하여, 상기 웹 콘텐츠의 분석은 그 웹 콘텐츠가 동적 콘텐츠를 포함하는지, 만약 그렇다면 해당 동적 콘텐츠가 정해진 포맷에 부합하는 지의 여부를 판정하는 “동적 비교(dynamic comparison)”를 포함한다.
웹 콘텐츠에 관하여 행해질 수 있는 또 하나의 분석은 “구조 분석(structural analysis)”이며, 여기서는 응답 페이로드(response payload)를 블랙박스 바이트 스트림(black-box byte stream)으로 처리하는 대신에, 응답이 (페이로드의 콘텐츠 타입(content type)에 특이한 방식으로) 디코딩되어, 그 구조와 콘텐츠가 분석된다. 예를 들면 HTML 웹 콘텐츠는 위와 같이 디코딩되어 그 결과로 로지컬 HTML 돔 트리(logical HTML DOM tree)가 생겨나고, 이는 다시 그 URL을 위한 데이터베이스에 저장된 기지의 굳-콘텐츠의 로지컬 구조(logical structure)와 비교되거나, 또는 링크들(links)(앵커들(anchors)), 오브젝트들(objects), 스크립트들(클라이언트 쪽 코드) 등이 분석될 수 있도록 허용하는 그 URL을 위하여 구성된 로지컬 폴리시 룰들(logical policy rules)과 비교된다.
상기 웹 콘텐츠 분석 단계는 동적 콘텐츠로부터 정적 특징점과 동적 특징점을 추출하는 단계를 또한 포함할 수도 있다. 예를 들면, 상기 웹 콘텐츠는 파스(parse)되어, 그 안에 포함되어 있는 데이터가 추출되는 것을 허용할 수 있다. 다른 (장치 구성 가능한) 분석 규칙(analysis rules)은 데이터의 다른 피스들(pieces)에 적용될 수 있다. 예를 들어, 규칙이 HTML 도큐먼트에 특정 태그(tag)를 포함하여야 한다는 것을 특정할 수도 있고, 또는 PDF 도큐먼트에 포함되어 있는 모든 인라인 이미지를 검증하기 위하여 규칙이 적용될 수도 있다.
그러면, 이 추출단계는 정적 및 동적 특징점들이 변경되었는지의 여부에 관한 판정을 허용한다. 파스된 콘텐츠의 각 피스(정적 특징점) 및 각 구조 패턴은, URL을 위해 구성된 합당한 규칙을 이용하여 분석된다. 상기 콘텐츠의 이러한 특징점들은 최고 수준의 콘텐츠(즉, 원래 호스트에 의해 HTTP 응답에 되돌려진 페이로드)가 분석되는 방식과 유사한 방식으로 분석된다.
동적 특징점들은 그들이 정해진 포맷에 부합하는지의 여부를 판정하기 위해 분석될 수 있다. 그 규칙은 파스된 도큐먼트의 구조가 특정 구성 형식을 맞는지의 여부를 판정하는 것으로 구성될 수 있다. 특히, 규칙은 HTML(혹은 XHTML) 도큐먼트의 돔 트리 구조가 특정 특징점들을 가지는지 여부를 판정하는 것으로 구성될 수 있다. 이러한 규칙은 돔 트리 스키마(DOM tree schema)를 포함하고 있다. 이것은 어떤 구성요소들이 그 트리의 각 지점 안에서 아마 혹은 반드시 나타나는지, 몇 번이나 그들이 아마도 혹은 반드시 나타나는지 등을 명시하는, XML 스키마 도큐먼트(XSD)와 유사한 커스텀 구조(custom structure)이다.
몇몇 구체 예에 의해, 웹 콘텐츠 분석단계는 사용자 경험이 정해진 진본증명 경험에 부합하는지를 판정하기 위해 웹 콘텐츠와 사용자 경험을 시뮬레이션하는 단계를 포함한다. 이 경우, 상기 애널라이저 소프트웨어(analyzer software)는 스탠다드 웹 브라우저(standard web browser)의 예(instance)를 컨트롤한다. 다양한 브라우저들이 지원되며 (예를 들면, 인터넷 익스플로러, 모질라 파이어폭스, 구글 크롬), 사용된 브라우저는 URL에 따라 구성되거나, 자동 선택될 수 있다. 상기 애널라이저는 클라이언트에 의해 요청된 URL에 액세스하기 위해 컨트롤된 브라우저를 디렉트한다. 상기 브라우저의 네크워크 액세스는 커스텀 프록시(custom proxy)를 통해 이루어지고, 그것은 원래 서버를 불필요하게 액세스함이 없이 현재 검사중인 콘텐츠를 사용하는 요청에 의해 응답한다.
그러면, 상기 애널라이저는 요청된 URL의 로딩 중 또는 로딩 후에 상기 브라우저의 거동을 관측하여, 다른 URL로의 자동 네비게이션(방향전환)과 같은 이벤트들(events); 새로운 브라우저 창을 열도록 하는 요청들; 자바(Java), 플래시(Flash), 실버라이트 플러그인(Silverlight plugins)과 같은 소프트웨어를 구동하기 위한 시도들; 및 클라이언트-쪽 스크립트(client-side scripts)를 이용하여 브라우저를 구동하는 머신에 액세스하려는 시도들 [네크워크 연결들 (network connections)을 열거나, 팝업(pop-up) 등을 이용하여 사용자와 통신하기 위해 로컬 파일(local file), 로컬 클립보드(local clipboard)에 액세스하려는 시도)] 을 탐지할 수 있다.
상기 애널라이저는 상기 브라우저의 관측된 거동이 유효한지 판정한다. 이것은 본질적으로 위험하거나 악의적(malicious)(예를 들면, 로컬 파일에 액세스하려는 시도)이거나 동일한 URL을 위해 원 서버에 의하여 제공된 이전에 관측된 콘텐츠의 거동으로부터 벗어나는(예를 들면, 이전에 존재하지 않았던 플래시 어플리케이션(Flash application)의 로드(load)를 요청) 거동을 식별한다. 만약 URL을 위해 구성된 폴리시에 의해 금지된 것으로 탐지되면, 분석 체크를 통과하지 않는 콘텐츠를 사용할 수 있는 거동에 임의의 필터링 또는 블록킹 중 하나를 적용한다.
상기 애널라이저 소프트웨어에서 의해 컨트롤되는 상기 브라우저는 VM 인스턴스(virtual machine instance)로 구동되고, 상기 브라우저 및 응답 페이로드(response payload)에 존재하거나 브라우저에 의해 구동될 수 있는 어떠한 악성 콘텐츠(Malicious content)도 상기 프록시와 애널라이저 소프트웨어 혹은 임의의 제3자(third party)를 공격하지 못하도록 막는다. 상기 VM 인스턴스는 세퍼레이트 웹 콘텐츠(separate content)의 분석들 사이에서 재시작될 수 있으며, 세퍼레이트 코이그지스팅 VM 인스턴스(separate co-existing VM instances)는 다양한 관련 없는 콘텐츠의 분석과 동일선상에서 구동될 수 있다. 인스턴스의 수는 사용되는 상기 하드웨어에 의해서만 제한된다. 시작된 각 새로운 인스턴스는 동일하다.; 인스턴스가 구동되는 동안 (로컬 OS와 파일 시스템에 대하여) 생긴 어떠한 변화들도 다른 인스턴스들에 영향을 주지 않으며, 인스턴스가 종료될 때 저장되지 않는다(이것은 VM 소프트웨어의 구성가능한 특징점이다.). 이는 브라우저 분석 세션(browser analysis session)에서 구동되며 악성소프트웨어를 포함한 어떠한 악성 콘텐츠(malicious content)도, 장래에, 심지어 동일한 콘텐츠 URL을 위해 구동될 수 있는 또 다른 분석 세션들의 거동 및 결과에 영향을 주는 것을 막는다.
브라우저 시뮬레이션 분석(browser simulation analysis)은 지원되는 여러 가지의 브라우저와 브라우저 버전 중 하나를 구동할 수 있으며, 상기 브라우저가 구동하는 VM은 다양한 버전의 윈도우즈, 맥 OS X 및 리눅스를 포함하여 지원되는 OS(operating system)들 및 OS 버전들 중 하나를 구동하도록 구성될 수 있다. 분석에 사용되는 특정 OS 및 브라우저는 클라이언트의 원래 HTTP 요청 안에 존재하는 사용자 에이전트 헤더(User-Agent header)에 따라 선택될 수 있으며, 원래 HTTP 요청은 (만약 존재한다면) 클라이언트에 의해 사용되는 웹 브라우저와 OS의 이름과 버전을 표시한다. 상기 애널라이저는 상기 웹 콘텐츠가 상기 프록시에 의해 수정되지 않은 채로 전달된다면 클라이언트가 경험하게 될 거동을 최고로 시뮬레이션하는데 사용할 OS 및 브라우저의 가장 유사한 조합을 선택한다.
몇몇 실시예에 의하면, 상기 웹 콘텐츠를 분석 단계는 상기 웹 콘텐츠가 클라이언트의 디스플레이 디바이스에 디스플레이한 이미지를 얻어 정해진 대표 이미지와 비교하는 단계를 포함할 수 있다. 어떤 종류의 콘텐츠는 브라우저에 디스플레이될 때 그들의 모습과 동일한 인-메모리 이미지(in-memory image)로 렌더링될(rendered) 수 있으며, 인-메모리 이미지는 이미지 파일과 더불어 플레인 텍스트(plain text)와 같은 다른 콘텐츠를 포함하고 있다. 상기 애널라이저 소프트웨어는 이러한 콘텐츠의 렌더링 이미지를 직접 컴퓨팅할 수 있다.
다른 종류의 콘텐츠는 애널라이저 소프트웨어에 의하여 이미지로 렌더링될 수 없는 대신에 시뮬레이터 브라우저(simulator browser)로 통과한 다음, 상기 애널라이저 소프트웨어가 시뮬레이션 중인 브라우저 창(browser window)의 스크린 샷을 취한다. 이미지가 위와 같은 방법들을 이용하여 일단 얻어지면, 과거에 클라이언트에 의해 요청된 URL에서 제공된 유효한 콘텐츠를 대표하는 것으로 알려진 데이터베이스에 저장된 이미지와 비교될 수 있다. 상기 애널라이저는 정확히 일치를 위해 (최근의 이미지와 저장된 이미지) 두 이미지를 요구할 수도 있고, 두 이미지의 차이가 사전에 구성된(preconfigured) 임계값(threshold)을 초과하는지 여부를 판정하는 다양한 이미지 프로세싱 알고리즘(image processing algorithms)을 적용할 수 있다.
상기 웹 콘텐츠는 퍼포먼스를 향상시키기 위해 변경될 수 있다. 예를 들어, 상기 프록시 소트프웨어는 (상술한 분석 체크를 통과 한 이후에) 클라이언트에 제공된 웹 콘텐츠를 변경하도록 구성될 수 있다. 이러한 변경들은 웹 콘텐츠의 의미(semantics), 즉 이를 받는 클라이언트에서 발생한 거동을 변경하지 않는다. 이러한 변경들은 상기 웹 콘텐츠가 클라이언트에게 빠르게 전달되게 하거나 클라이언트의 브라우저 소프트웨어에 의해 더 빠르게 로드되고 파스되게 한다. 이러한 변경들은 다음을 포함한다.
■ HTTP 트랜스퍼-인코딩(HTTP Transfer-Encoding) 혹은 GZIP 압축 인코딩(gzip compression encoding)을 이용하는 콘텐츠 인코딩(Content-Encoding)의 추가에 의한 콘텐츠의 압축(Compressing). 이것은, 콘텐츠가 이미 (GZIP 또는 디플레이트 알고리즘(deflate algorithm)과 같은 다른 방법을 사용하여) 원래 서버에 의해 압축되지 않은 경우에만 적용된다. 이것은, 프록시에서 클라이언트에게로 네트워크를 통해 전송되어야하는 상기 콘텐츠 페이로드의 크기 및 클라이언트가 상기 콘텐츠를 수신 완료 할 때까지의 시간을 감소시킨다.
■ '최소화(minifying)'를 통해, HTML, XHTML, 자바스크립트들(Javascripts)과 CSS 콘텐츠(CSS content)뿐만 아니라, 자바 스크립트들과 HTML 및 XHTML 도큐먼트 콘텐츠에 심어진 CSS 데이터의 재작성(Rewriting). 최소화란 상기 콘텐츠의 의미를 변경하지 않고 가능한 가장 짧은 방법으로 이러한 포맷들 중 하나의 콘텐츠를 재작성하는 것을 의미한다. 이것은, 예를 들어, 다른 테크닉들 중에서, HTML 도큐먼트의 더 나은 압축을 달성하기 위해 중요하지 않은 공백의 제거, 자바 스크립트 식별자 문자열들(Javascript identifier strings)(로컬 변수 이름(local variable names)과 같은 것)의 더 짧은 것으로의 변경, 및 로워-케이싱 HTML 엘레멘츠 네임(lower-casing HTML element names)에 의해 수행된다. 이것은, 프록시에서 클라이언트로 전송되어야하는 데이터의 크기 및 전송될 때까지 필요한 시간을 감소시킨다.
■ 이미지들, 자바 스크립트들, HTML 및 XHTML 도큐먼트들에 링크된 CSS 데이터의 인라이닝(inlining). 만약 HTML/XHTML 도큐먼트가, 도큐먼트를 디스플레이하는 브라우저 역시 외부 참조(external reference)의 콘텐츠를 다운로드 및 처리해야하는 방식으로 이러한 타입 중 하나의 외부 리소스에 연결된다면, 그리고 만약 이전에 프록시 소프트웨어가 이러한 외부 콘텐츠(external content)를 인지하였으며, 내부 데이터베이스(internal database)에 캐시(cache) 된 카피을 가지고 있는 경우라면, 외부 링크(external link)는 상기 링크가 인용하는 리소스(resource)의 인라인 카피(inline copy)로 교체된다. 이것은, 클라이언트의 브라우저의 외부 리소스 데이터를 로드하는 또 다른 네트워크 요청을 수행할 필요성을 없애주며, 클라이언트 브라우저가 이에 링크된 전체 웹 페이지를 모든 리소스들과 함께 로드하고 디스플레이하는데 필요한 시간을 감소시킨다.
본 발명은 지금까지 콤포지트 시스템(composite system)으로 설명되었지만, 도 1 및 도 2에 나타난 HTTP 애널라이저(15)는 기존의 네트워크 사이의 통합에 적합한 독립형 모듈(standalone module)일 수 있다. 이러한 독립형 모듈은 네트워크에 결합된 리포지터리에 저장된 웹 콘텐츠를 데이터 통신 네트워크를 통해 이를 요청한 클라이언트에게 제공하기 전에 상기 웹 콘텐츠의 진위를 식별하도록 구성된다.
일반적으로, HTTP 애널라이저(15)의 구성 요소들은 소프트웨어에 의해 실현된다. 커스텀 HTTP 프록시(게이트웨이)가 설정되고, 클라이언트 네트워크의 DNS 및/또는 루팅 룰들(routing rules)이 프록시를 통해 클라이언트와 웹 서버 사이의 루트 트래픽(route traffic)으로 변경된다. 상기 프록시에 의해 인터셉트된 HTTP 요청 및 응답들은 파스되고, 분석 모듈(analysis module)을 통과하며, 분석 모듈은 요청된 URL을 위한 구성으로서, 상술한 바와 같은 임의의 테스트들을 수행한다.이러한 테스트의 결과는 상기 콘텐츠가 프록시에 의해 수정되지 않은 채로 통과됐는지, 커스텀 콘텐츠(예컨대, 에러 메시지)에 의해 교체되었는지, 그리고 분석 체크(analysis check) 통과에 실패한 콘텐츠를 설명하는 아웃오브밴드 경보 메시지가 발생되었는지의 여부를 판정한다.
이러한 경고 메시지는 프로덕트의 내부 데이터베이스에 저장되고 프로덕트의 매니지먼트 유저 인터페이스(management user interface)를 사용하여 디스플레이될 수 있다. 상기 분석 모듈은 또한 경보 메시지가 발생한 경우, 그 모든 경보 메시지의 카피를, 이메일이나 SMS와 같이 여러 방법 중 하나를 사용하여 외부 서버(outside server)에게 전송하도록 구성될 수 있다.
HTTP 애널라이저(15)는 도 1 및 도 2에 설명된 인라인 혹은 아웃오브밴드의 네트워크 구성을 실현하기 위해 필요한 대로 커스터마이즈(customize)될 수 있다. 만약 HTTP 애널라이저(15)가, 그 구성 및 그것이 상기 콘텐츠로 수행할 수 있는 테스트의 결과를 토대로, 상기 콘텐츠가 URL을 위해 구성된 폴리시 룰들을 통과하지 못한다고 판정하면, 그러한 구성에 따라 상기 콘텐츠가 클라이언트에게로 전달되지 않도록 블록킹할 수 있다. 대신에 에러 메시지와 같은 다른 콘텐츠를 전달하거나, 응답을 보내지 않은 채로 클라이언트 네트워크 연결을 종료하도록 구성될 수 있다. 이를 위해, 통신 포트에 결합되어, 예상대로 웹 콘텐츠가 오퍼레이트하지 않을 경우 보안 정적 웹 콘텐츠(secure static web content)를 업로드하기 위하여 다른 호스트 저장 디바이스에 클라이언트를 자동 방향 전환하는 디버터(diverter)를 포함할 수 있다. 업데이트 유닛(update unit)은 마찬가지로 상기 웹 콘텐츠의 퍼포먼스를 향상시키는 변경을 위해 통신 포트에 커플링될 수 있다.
본 발명에 의한 HTTP 애널라이저는 또한 적절하게 프로그래밍된 컴퓨터인 것을 이해할 수 있을 것이다. 마찬가지로 본 발명은, 컴퓨터 프로그램이 본 발명의 방법을 수행하기 위하여 컴퓨터에 의하여 읽혀질 수 있는 것으로 예상한 것이다. 본 발명은 또한 본 발명의 방법을 수행하기 위해, 컴퓨터에 의해 수행 가능한 명령의 프로그램을 유형물로 만든 컴퓨터-판독가능 메모리(machine-readable memory)를 예상한 것이다.

Claims (30)

  1. 리포지터리에 저장된 웹 콘텐츠가 웹 콘텐츠의 인증권자(authorized personnel)에 의해 승인된 웹 콘텐츠인 진본 웹 콘텐츠에서 벗어나는지의 여부를 식별한 다음, 요청하는 클라이언트에게 상기 웹 콘텐츠를 제공하기 위한, 컴퓨터-실행 방법(computer-implemented method)으로서, 상기 방법은
    상기 리포지터리에 대한 웹 통신을 모니터링하는 단계;
    클라이언트에게 제공하기 전에 상기 웹 콘텐츠를 인터셉트하는 단계;
    상기 웹 콘텐츠가 정해진 기준에 부합하는 것임을 확정하기 위하여 안전 환경(safe environment)에서 상기 웹 콘텐츠를 분석하는 단계; 및
    상기 웹 콘텐츠가 정해진 기준에 부합하지 않는 경우 상기 웹 콘텐츠를 제공하는 웹 호스트에게 경보를 보내는 단계;를 포함하여 구성되는, 컴퓨터-실행 방법.
  2. 리포지터리에 저장된 웹 콘텐츠가 상기 웹 콘텐츠를 요청한 클라이언트에게 제공되는 것을 막기 위한, 컴퓨터-실행 방법으로서, 상기 방법은
    상기 리포지터리에 대한 웹 통신을 모니터링하는 단계;
    클라이언트에게 제공하기 전에 상기 웹 콘텐츠를 인터셉트하는 단계;
    상기 웹 콘텐츠가 예상대로 오퍼레이트하도록 확정하기 위하여 안전 환경에서 상기 웹 콘텐츠를 분석하는 단계; 및
    상기 웹 콘텐츠를, 그것이 예상대로 오퍼레이트하는 경우에만, 클라이언트에게 제공하는 단계;를 포함하여 구성되는, 컴퓨터-실행 방법.
  3. 제1항 또는 제2항에 있어서, 상기 웹 콘텐츠 분석 단계는 정적 콘텐츠(static content)가 변경되었는지 여부를 판정하는 단계를 포함하는, 컴퓨터-실행 방법.
  4. 제3항에 있어서, 상기 정적 콘텐츠 변경 여부 판정 단계는 정적 콘텐츠의 서명을 컴퓨팅하는 단계와, 상기 서명을 유효한 콘텐츠의 알려진 서명과 비교하는 단계를 포함하는, 컴퓨터-실행 방법.
  5. 제1항 또는 제2항에 있어서, 상기 웹 콘텐츠 분석 단계는 상기 웹 콘텐츠가 동적 콘텐츠(dynamic content)를 포함하는지의 여부를 판정하는 단계와, 포함한다면 그 동적 콘텐츠가 정해진 포맷에 부합하는지의 여부를 판정하는 단계를 포함하는, 컴퓨터-실행 방법.
  6. 제5항에 있어서,
    상기 웹 콘텐츠 분석 단계는
    상기 동적 콘텐츠로부터 정적 특징점들(static features)과 동적 특징점들 (dynamic features)을 추출하는 단계와;
    상기 정적 특징점들이 변경되었는지의 여부를 판정하는 단계; 및
    상기 동적 특징점들이 변경되었는지의 여부를 판정하는 단계; 를 포함하는, 컴퓨터-실행 방법.
  7. 제6항에 있어서,
    상기 동적 특징점들이 정해진 포맷에 부합하는지의 여부를 판정하는 단계를 포함하는, 컴퓨터-실행 방법.
  8. 제1항 또는 제2항에 있어서, 상기 웹 콘텐츠 분석 단계는 사용자 경험(user experience)이 정해진 진본증명 경험(predetermined authenticated experience)과 부합하는지의 여부를 판정하기 위해 상기 웹 콘텐츠를 상기 사용자 경험과 시뮬레이션하는 단계를 포함하는, 방법.
  9. 제8항에 있어서, 상기 웹 콘텐츠를 요청하는 웹 브라우저의 아이덴티티를 획득하는 단계와, 브라우저-특이 시뮬레이션(browser-specific simulation)을 수행하는 단계를 포함하는, 방법.
  10. 제8항에 있어서,
    (a) 상기 웹 브라우저에 의해 요청된 부분 웹 콘텐츠를 추출하는 단계;
    (b) 상기 부분 웹 콘텐츠에 관한 시뮬레이션을 수행하는 단계;
    (c) 상기 부분 웹 콘텐츠의 상기 시뮬레이션이 상기 부분 웹 콘텐츠와 관련된 정해진 진본증명 경험에 부합하는 경우, 상기 부분 웹 콘텐츠를 클라이언트에게 릴리즈하면서 차후 분석을 위해 카피를 보유하는 단계; 및
    (d) 추가의 부분 웹 콘텐츠를 받아 누적 부분 웹 콘텐츠에 관하여 단계 (b) 및 (c)를 반복하는 단계;를 포함하는, 방법.
  11. 제1항 또는 제2항에 있어서, 상기 웹 콘텐츠 분석 단계는 상기 웹 콘텐츠가 클라이언트의 디스플레이 디바이스에 디스플레이되는 이미지를 얻는 단계와, 그 이미지를 정해진 대표 이미지와 비교하는 단계를 포함하는, 방법.
  12. 상기 청구항들 중 어느 한 항에 있어서, 상기 웹 콘텐츠가 예상대로 오퍼레이트하지 않는 경우, 클라이언트를 보안 정적 웹 콘텐츠의 업로드용 대체 호스트 저장 디바이스로 자동 방향 전환하는 단계를 더 포함하는, 방법.
  13. 상기 청구항들 중 어느 한 항에 있어서, 성능(performance)을 향상시키기 위하여 상기 웹 콘텐츠를 변경하는(changing) 단계를 더 포함하는, 방법.
  14. 리포지터리(12)에 저장된 웹 콘텐츠를 데이터 통신 네트워크(13)를 통해 이를 요청한 클라이언트(11)에게 제공하기 전에 상기 웹 콘텐츠의 진위를 식별하기 위한 장치(15)로서, 상기 장치는
    클라이언트가 상기 웹 콘텐츠를 요청하기 위하여 상기 리포지터리로 액세스하는 것을 허용하기 위한 통신 포트;
    리포지터리에 의해 클라이언트에게 업로드된 웹 콘텐츠를 인터셉트하기 위하여, 상기 데이터 통신 네트워크에 커플링된 데이터 통신 포트를 가지는, 모니터링 유닛(21);
    상기 모니터링 유닛에 의해 인터셉트된 웹 콘텐츠를 받아, 정해진 기준에 부합하는 것을 확정하기 위하여, 받은 상기 웹 콘텐츠를 안전 환경에서 분석하기 위한, 상기 모니터링 유닛에 커플링된 분석 유닛(17, 18, 19, 29); 및 보
    상기 분석 유닛에 커플링되어, 웹 콘텐츠를 제공하는 웹 호스트에게 경보를 보내기 위하여 상기 웹 콘텐츠가 상기 기준에 부합하지 않는 것에 즉각 응답하는,경보 유닛(30);을
    포함하여 구성되는, 웹 콘텐츠 식별 장치(15).
  15. 리포지터리(12)에 저장된 웹 콘텐츠가, 이를 요청한 클라이언트에게 데이터 통신 네트워크를 통해 제공되는 것을 방지하기 위한 장치(15)에 있어서, 상기 장치는
    클라이언트가 상기 웹 콘텐츠를 요청하기 위하여 상기 리포지터리로 액세스하는 것을 허용하기 위한 통신 포트;
    리포지터리에 의해 클라이언트에게 업로드된 웹 콘텐츠를 인터셉트 하기 위하여, 상기 데이터 통신 네트워크에 결합되는 데이터 통신 포트를 갖는, 모니터링 유닛(21); 하기 위해
    상기 모니터링 유닛에 의해 인터셉트된 웹 콘텐츠를 받아, 그것이 정해진 기준에 부합하는 것을 확정하기 위하여 받은 상기 웹 콘텐츠를 안전 환경에서 분석하기 위한, 상기 모니터링 유닛에 커플링되는 분석 유닛(17, 18, 19, 29); 및
    상기 분석 유닛에 커플링되어, 클라이언트에 대해 상기 웹 콘텐츠를 블록킹하기 위해 상기 웹 콘텐츠가 상기 기준에 부합하지 않는 것에 즉각 응답하는 통신출통신 출력부(communications output)(16);를
    포함하여 구성되는, 웹 콘텐츠 제공 방지용 장치(15).
  16. 제14항 또는 제15항에 있어서, 상기 분석 유닛은 정적 콘텐츠가 변경되었는지의 여부를 판정하기 위한 정적 필터(static filter)(17)를 포함하는, 웹 콘텐츠 제공 방지용 장치.
  17. 제16항에 있어서, 상기 정적 필터는 상기 정적 콘텐츠의 서명을 컴퓨팅하여 유효 콘텐츠의 알려진 서명과 비교하기 위한 프로세서를 포함하는, 웹 콘텐츠 제공 방지용 장치.
  18. 제15항 또는 제16항에 있어서, 상기 분석 유닛은 상기 웹 콘텐츠의 동적 콘텐츠가 정해진 포맷에 부합하는지의 여부를 판정하기 위한 제2 필터(18)를 포함하는, 웹 콘텐츠 제공 방지용 장치.
  19. 제18항에 있어서, 상기 제2 필터는
    상기 동적 콘텐츠로부터 정적 특징점들과 동적 특징점들을 추출하기 위한 추출 유닛(extraction unit);
    상기 추출 유닛에 커플링되어, 정적 특징점들이 변경되었는지의 여부를 판정하기 위한, 정적 비교기(static comparator); 및
    상기 추출 유닛에 커플링되어, 동적 특징점들이 변경되었는지의 여부를 판정하기 위한, 동적 정적 비교기(dynamic static comparator);를 포함하여 구성되는, 웹 콘텐츠 제공 방지용 장치.
  20. 제19항에 있어서, 상기 세컨드 필터는 상기 동적 특징점들이 정해진 포맷에 부합하는지의 여부를 판정하도록 구성되는, 웹 콘텐츠 제공 방지용 장치.
  21. 제14항 또는 제15항에 있어서, 상기 분석 유닛은 사용자 경험이, 미리 정해진 진본증명 경험과 부합하는지의 여부를 판정하기 위하여, 상기 사용자 경험을 웹 콘텐츠와 시뮬레이션하기 위한 시뮬레이터를 포함하는, 웹 콘텐츠 제공 방지용 장치.
  22. 제21항에 있어서, 상기 시뮬레이터는 상기 웹 콘텐츠를 요청하는 웹 브라우저의 아이덴티티를 얻어, 브라우저-특이 시뮬레이션을 수행하도록 구성되는, 웹 콘텐츠 제공 방지용 장치.
  23. 제21항에 있어서, 상기 시뮬레이터는 상기 장치에 의해 인터셉트된 누적 부분 웹 콘텐츠가 부분 웹 콘텐츠에 관하여 정해진 진본증명 경험에 부합하는지의 여부를 판정하기 위하여 상기 누적 부분 웹 콘텐츠를 반복적으로 시뮬레이션하고, 상기 부분 웹 콘텐츠를 클라이언트에게 릴리즈하면서 차후 분석을 위해 카피를 보유하도록 구성되는, 웹 콘텐츠 제공 방지용 장치.
  24. 제22항 또는 제23항에 있어서, 상기 분석 유닛은 상기 콘텐츠가 클라이언트의 디스플레이 디바이스에 디스플레이되는 이미지를 얻어, 정해진 대표 이미지와 비교하기에 적합한, 웹 콘텐츠 제공 방지용 장치.
  25. 제14항 내지 제24항 중 어느 한 항에 있어서, 상기 웹 콘텐츠가 예상대로 오퍼레이트하지 않는 경우, 보안 정적 웹 콘텐츠 업로드용 대체 호스트 저장 디바이스로 클라이언트를 자동 방향 전환하기 위하여, 통신 포트에 커플링된 디버터를 더 포함하는, 웹 콘텐츠 제공 방지용 장치.
  26. 제14항 내지 제25항 중 어느 한 항에 있어서, 상기 웹 콘텐츠의 퍼포먼스가 향상되도록 변경하는 통신 포트에 커플링된 업데이트 유닛을 더 포함하는, 웹 콘텐츠 제공 방지용 장치.
  27. 웹 콘텐츠를 저장하기 위한 리포지터리(12),
    클라이언트 컴퓨터를 리포지터리에 커플링하는 데이터 통신 네트워크(13), 및
    상기 제14항 내지 제26항 중 어느 한 항의 장치(15);를 포함하여 구성되는, 시스템(10).
  28. 제27항에 있어서, 상기 장치가 상기 리포지터리와 상기 클라이언트 사이에 인밴드(in-band) 결합된, 시스템.
  29. 제27항에 있어서, 상기 장치가 상기 리포지터리와 상기 클라이언트 사이에 아웃오브밴드(out-of-band) 결합된, 시스템.
  30. 컴퓨터 프로그램이 컴퓨터에서 구동될 때, 제1항 내지 제13항 중 어느 한 항의 방법을 수행하기 위한 컴퓨터 프로그램 코드를 저장하고 있는, 컴퓨터 판독가능 저장 매체.
KR1020147021372A 2011-12-29 2012-12-11 웹 호스트에 의해 제공된 웹 콘텐츠의 진본성을 보장하기 위한 방법, 디바이스, 시스템 및 컴퓨터 판독가능 저장 매체 KR20140113705A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IL217279A IL217279A0 (en) 2011-12-29 2011-12-29 Method and system for ensuring authenticity of ip data served by a service provider
IL217279 2011-12-29
PCT/IL2012/000388 WO2013098804A2 (en) 2011-12-29 2012-12-11 Method and system for ensuring authenticity of ip data served by a service provider

Publications (1)

Publication Number Publication Date
KR20140113705A true KR20140113705A (ko) 2014-09-24

Family

ID=45855244

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147021372A KR20140113705A (ko) 2011-12-29 2012-12-11 웹 호스트에 의해 제공된 웹 콘텐츠의 진본성을 보장하기 위한 방법, 디바이스, 시스템 및 컴퓨터 판독가능 저장 매체

Country Status (8)

Country Link
US (1) US8732304B2 (ko)
EP (1) EP2798817A2 (ko)
JP (1) JP2015511338A (ko)
KR (1) KR20140113705A (ko)
AU (1) AU2012360047A1 (ko)
BR (1) BR112014016063A8 (ko)
IL (1) IL217279A0 (ko)
WO (1) WO2013098804A2 (ko)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013110857A1 (en) * 2012-01-24 2013-08-01 Ssh Communications Security Oyj Privileged access auditing
US20140165037A1 (en) * 2012-12-12 2014-06-12 Microsoft Corporation Reusable application user experience
US20140283002A1 (en) * 2013-03-15 2014-09-18 Stephen Frechette Method and system for anonymous circumvention of internet filter firewalls without detection or identification
GB2513168B (en) * 2013-04-18 2017-12-27 F Secure Corp Detecting unauthorised changes to website content
WO2015052967A1 (ja) * 2013-10-08 2015-04-16 ソニー株式会社 サーバ装置、クライアント装置、情報処理方法および記録媒体
WO2015052968A1 (ja) * 2013-10-08 2015-04-16 ソニー株式会社 サーバ装置、クライアント装置、情報処理方法および記録媒体
US9825812B2 (en) * 2013-12-05 2017-11-21 Pulse Secure, Llc Transparently intercepting and optimizing resource requests
US10693742B2 (en) 2014-04-15 2020-06-23 Splunk Inc. Inline visualizations of metrics related to captured network data
US10462004B2 (en) 2014-04-15 2019-10-29 Splunk Inc. Visualizations of statistics associated with captured network data
US11281643B2 (en) 2014-04-15 2022-03-22 Splunk Inc. Generating event streams including aggregated values from monitored network data
US10366101B2 (en) 2014-04-15 2019-07-30 Splunk Inc. Bidirectional linking of ephemeral event streams to creators of the ephemeral event streams
US10360196B2 (en) 2014-04-15 2019-07-23 Splunk Inc. Grouping and managing event streams generated from captured network data
US10700950B2 (en) 2014-04-15 2020-06-30 Splunk Inc. Adjusting network data storage based on event stream statistics
US11086897B2 (en) 2014-04-15 2021-08-10 Splunk Inc. Linking event streams across applications of a data intake and query system
US10523521B2 (en) 2014-04-15 2019-12-31 Splunk Inc. Managing ephemeral event streams generated from captured network data
US9923767B2 (en) 2014-04-15 2018-03-20 Splunk Inc. Dynamic configuration of remote capture agents for network data capture
US9838512B2 (en) 2014-10-30 2017-12-05 Splunk Inc. Protocol-based capture of network data using remote capture agents
US10127273B2 (en) 2014-04-15 2018-11-13 Splunk Inc. Distributed processing of network data using remote capture agents
US9762443B2 (en) 2014-04-15 2017-09-12 Splunk Inc. Transformation of network data at remote capture agents
US12028208B1 (en) 2014-05-09 2024-07-02 Splunk Inc. Selective event stream data storage based on network traffic volume
US9083739B1 (en) 2014-05-29 2015-07-14 Shape Security, Inc. Client/server authentication using dynamic credentials
US9210171B1 (en) 2014-05-29 2015-12-08 Shape Security, Inc. Selectively protecting valid links to pages of a web site
US9832204B2 (en) * 2014-09-19 2017-11-28 D2L Corporation Method and system for managing security compatibility of electronic content
US9800602B2 (en) 2014-09-30 2017-10-24 Shape Security, Inc. Automated hardening of web page content
US9596253B2 (en) 2014-10-30 2017-03-14 Splunk Inc. Capture triggers for capturing network data
US9529994B2 (en) 2014-11-24 2016-12-27 Shape Security, Inc. Call stack integrity check on client/server systems
US10334085B2 (en) 2015-01-29 2019-06-25 Splunk Inc. Facilitating custom content extraction from network packets
US20160261715A1 (en) * 2015-03-05 2016-09-08 Sentrix Web Technologies Ltd. System and method for securing a web server
US10021128B2 (en) 2015-03-12 2018-07-10 Forcepoint Llc Systems and methods for malware nullification
US9986014B2 (en) * 2015-03-27 2018-05-29 Intel Corporation Systems and techniques for web communication
US9608975B2 (en) 2015-03-30 2017-03-28 Shape Security, Inc. Challenge-dynamic credential pairs for client/server request validation
US9749295B2 (en) * 2015-04-16 2017-08-29 Raytheon Company Systems and methods for internet traffic analysis
US9986058B2 (en) 2015-05-21 2018-05-29 Shape Security, Inc. Security systems for mitigating attacks from a headless browser executing on a client computer
RU2610254C2 (ru) 2015-06-30 2017-02-08 Закрытое акционерное общество "Лаборатория Касперского" Система и способ определения измененных веб-страниц
WO2017007705A1 (en) 2015-07-06 2017-01-12 Shape Security, Inc. Asymmetrical challenges for web security
US10216488B1 (en) 2016-03-14 2019-02-26 Shape Security, Inc. Intercepting and injecting calls into operations and objects
JP6762264B2 (ja) * 2017-05-22 2020-09-30 株式会社沖データ 画像形成装置
EP3832513A1 (en) 2019-12-06 2021-06-09 Vocalink Limited An apparatus, computer program and method
EP3832514A1 (en) * 2019-12-06 2021-06-09 Vocalink Limited An apparatus, computer program and method
JP2021008115A (ja) * 2020-09-08 2021-01-28 株式会社沖データ 画像形成装置
CN115242766A (zh) * 2022-08-02 2022-10-25 亚数信息科技(上海)有限公司 一种基于二层网桥的https透明网关的方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7296274B2 (en) * 1999-11-15 2007-11-13 Sandia National Laboratories Method and apparatus providing deception and/or altered execution of logic in an information system
US7386888B2 (en) 2003-08-29 2008-06-10 Trend Micro, Inc. Network isolation techniques suitable for virus protection
US7979368B2 (en) 2005-07-01 2011-07-12 Crossbeam Systems, Inc. Systems and methods for processing data flows
US7877801B2 (en) * 2006-05-26 2011-01-25 Symantec Corporation Method and system to detect malicious software
US9237166B2 (en) 2008-05-13 2016-01-12 Rpx Corporation Internet search engine preventing virus exchange
CN101626368A (zh) 2008-07-11 2010-01-13 中联绿盟信息技术(北京)有限公司 一种防止网页被篡改的设备、方法和***
GB2463467B (en) 2008-09-11 2013-03-06 F Secure Oyj Malware detection method and apparatus
WO2010091186A2 (en) 2009-02-04 2010-08-12 Breach Security, Inc. Method and system for providing remote protection of web servers
US8370938B1 (en) * 2009-04-25 2013-02-05 Dasient, Inc. Mitigating malware
US8353037B2 (en) * 2009-12-03 2013-01-08 International Business Machines Corporation Mitigating malicious file propagation with progressive identifiers
US8914879B2 (en) * 2010-06-11 2014-12-16 Trustwave Holdings, Inc. System and method for improving coverage for web code

Also Published As

Publication number Publication date
BR112014016063A2 (pt) 2017-06-13
JP2015511338A (ja) 2015-04-16
US8732304B2 (en) 2014-05-20
EP2798817A2 (en) 2014-11-05
WO2013098804A3 (en) 2013-10-17
BR112014016063A8 (pt) 2017-07-04
US20130173782A1 (en) 2013-07-04
IL217279A0 (en) 2012-02-29
AU2012360047A1 (en) 2014-07-17
WO2013098804A2 (en) 2013-07-04

Similar Documents

Publication Publication Date Title
US8732304B2 (en) Method and system for ensuring authenticity of IP data served by a service provider
US10592676B2 (en) Application security service
US10855700B1 (en) Post-intrusion detection of cyber-attacks during lateral movement within networks
US10447730B2 (en) Detection of SQL injection attacks
US20160241574A1 (en) Systems and methods for determining trustworthiness of the signaling and data exchange between network systems
US10192052B1 (en) System, apparatus and method for classifying a file as malicious using static scanning
RU2680736C1 (ru) Сервер и способ для определения вредоносных файлов в сетевом трафике
Bortolameotti et al. Decanter: Detection of anomalous outbound http traffic by passive application fingerprinting
CN112468520B (zh) 一种数据检测方法、装置、设备及可读存储介质
US8949995B2 (en) Certifying server side web applications against security vulnerabilities
KR100732689B1 (ko) 웹 보안방법 및 그 장치
US20150082424A1 (en) Active Web Content Whitelisting
CN113228585A (zh) 具有基于反馈回路的增强流量分析的网络安全***
US10033761B2 (en) System and method for monitoring falsification of content after detection of unauthorized access
US10129286B2 (en) Zero day threat detection using host application/program to user agent mapping
US9336396B2 (en) Method and system for generating an enforceable security policy based on application sitemap
CN110968872A (zh) 文件漏洞的检测处理方法、装置、电子设备及存储介质
CN114866361A (zh) 一种检测网络攻击的方法、装置、电子设备及介质
US10757118B2 (en) Method of aiding the detection of infection of a terminal by malware
CN114157504A (zh) 一种基于Servlet***的安全防护方法
Bernardo Targeted attack detection by means of free and open source solutions
KR102616603B1 (ko) 네트워크 보안 지원 방법 및 이를 이용하는 보안 지원 장치
US20220245249A1 (en) Specific file detection baked into machine learning pipelines
CN117040904A (zh) 拦截策略的生成方法、装置、设备及存储介质
WO2023194409A1 (en) Automated security analysis and response of container environments

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid