KR20220054814A - 시스템 보안 유지 - Google Patents

시스템 보안 유지 Download PDF

Info

Publication number
KR20220054814A
KR20220054814A KR1020227008799A KR20227008799A KR20220054814A KR 20220054814 A KR20220054814 A KR 20220054814A KR 1020227008799 A KR1020227008799 A KR 1020227008799A KR 20227008799 A KR20227008799 A KR 20227008799A KR 20220054814 A KR20220054814 A KR 20220054814A
Authority
KR
South Korea
Prior art keywords
computer
metadata
data file
data
program instructions
Prior art date
Application number
KR1020227008799A
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 KR20220054814A publication Critical patent/KR20220054814A/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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/562Static detection
    • G06F21/565Static detection by checking file integrity
    • 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/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files

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)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

시스템 보안 유지
하나의 데이터 파일의 적어도 일부와 연관된 메타데이터를 메타데이터 스토리지 유닛으로부터 수신하는 단계, 상기 메타데이터에 따라 상기 하나의 데이터 파일의 적어도 일부에 대한 우선순위를 생성하는 단계, 및 상기 데이터 파일의 일부의 스캔을 수행하는 단계에 의해서 시스템 보안을 유지하는 방법이 제공된다. 상기 메타데이터는 하나 또는 그 이상의 바이러스 표시자들(virus indicators)을 포함한다.

Description

시스템 보안 유지
[0001] 본 발명은 일반적으로 빅 데이터 스토리지 시스템에서 데이터 처리 시스템 보안 및 데이터 무결성을 유지하는 것에 관한 것이다. 본 발명은 특히 악성 코드 및 데이터를 스캔 함으로써 시스템 보안 및 데이터 무결성을 유지하는 것에 관한 것이다.
[0002] 의료, 소매, 통신 및 금융 서비스 시스템들과 같은 현재의 멀티 테넌트 시스템들(multi-tenant systems)은 단일 논리적 데이터 처리 시스템에 연결된 다수의 벤더들, 고객들 및 서비스 조직들을 가질 수 있다. 상기 논리적 데이터 처리 시스템은 클라우드 기반이거나 로컬일 수 있으며 대량 데이터 배치들(bulk data batches) 뿐만 아니라 계속적인 데이터 스트림들을 수신하여, 데이터 저장소에서 기가바이트 및 테라바이트의 데이터로 누적할 수 있다.
[0003] 시스템과 사용자들의 보안을 유지하려면 유입 데이터(Incoming data)는 바이러스, 맬웨어 및 기타 악성 데이터에 대해서 스캔 되어야 한다. 새로운 제로 데이 익스플로잇들(new zero-day exploits)이 식별되면 바이러스 정의들이 업데이트되므로 기존 데이터는 재-스캔 되어야(rescanned) 한다. 침입 방지 시스템(IPS)은 유입 데이터를 모니터 하는 데 사용된다. IPS는 저장을 위해 외부 소스들로부터 데이터 레이크(data lake)로 스트림 되는 동안 실시간 데이터를 인라인(inline)으로 모니터하거나, 또는 IPS로 전달된 데이터의 사본들을 대역외(out-of-band)로 처리할 수 있다. 유입 데이터는 또한 중복 콘텐츠 스캐닝을 요구함에 의해서 IPS의 워크로드를 증가시키는 중복 데이터(redundant data)를 포함할 수도 있다.
[0004] IPS의 스캐닝 활동들은 데이터에 대한 고객 액세스를 방해하지 않고 그리고 유입 데이터의 계속적인 스트림들을 방해하지 않고 수행되어야 한다. 상기 스트림들은, 정상 운영들을 계속하는데 방해하지 않고, 수신/송신 비용들(ingress/egress costs)을 줄이는데 방해하지 않으며, 시스템 자원들의 낭비를 줄이거나 제거하는데 방해하지 않고, 시스템 플랫폼의 사용자들 및 기타 부분들에 대한 시스템 서비스들에 대한 완전한 액세스를 유지하는데 방해함이 없이, 시스템에 도달되어야 한다(landed).
[0005] 따라서, 전술한 문제를 해결하기 위한 기술이 필요하다.
[0006] 본 발명은, 일 실시 예에 따라, 데이터 처리 시스템 보안을 유지하기 위한 컴퓨터 구현 방법을 제공하고, 상기 방법은: 데이터 파일의 적어도 하나의 일부와 연관된 메타데이터를, 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 메타데이터 스토리지 유닛으로부터 수신하는 단계; 상기 메타데이터에 따라 상기 데이터 파일의 적어도 하나의 일부에 대한 우선순위를, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 생성하는 단계; 및 상기 우선 순위에 따라 상기 데이터 파일의 스캔을, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 수행하는 단계를 포함하고, 상기 메타데이터는 하나 또는 그 이상의 바이러스 표시자들(virus indicators)을 포함한다.
[0007] 본 발명은, 다른 실시 예에 따라, 시스템 보안을 유지하기 위한 컴퓨터 구현 방법을 제공하고, 상기 방법은: 업데이트된 바이러스 정의(an updated virus definition)를, 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 수신하는 단계; 메타데이터 스토리지 유닛으로부터 적어도 하나의 데이터 파일과 연관된 메타데이터를, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 획득하는 단계; 상기 메타데이터 및 업데이트된 바이러스 정의에 따라 상기 적어도 하나의 데이터 파일에 대한 우선순위를, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 생성하는 단계; 상기 우선 순위에 따라 데이터 파일을, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 선택하는 단계; 상기 데이터 파일의 스캔을, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 수행하는 단계; 상기 스캔에 따라 상기 데이터 파일의 메타데이터를, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 업데이트하는 단계; 및 추가 처리를 위해 상기 데이터 파일을, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 제공하는 단계를 포함한다.
[0008] 본 발명은, 또 다른 실시 예에 따라, 시스템 보안을 유지하기 위한 컴퓨터 구현 방법을 제공하고, 상기 방법은: 메타데이터 스토리지 유닛으로부터 적어도 하나의 데이터 파일과 연관된 메타데이터를, 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 획득하는 단계; 상기 메타데이터에 따라 상기 적어도 하나의 데이터 파일에 대한 우선순위를, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 생성하는 단계; 상기 우선 순위에 따라 데이터 파일을, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 선택하는 단계; 상기 데이터 파일의 스캔을, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 수행하는 단계; 상기 데이터 파일에 대한 공통 취약성 및 노출 점수(a common vulnerabilities and exposures score)를, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 결정하는 단계; 상기 스캔에 따라 상기 데이터 파일의 메타데이터를, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 업데이트하는 단계; 및 평가(evaluation)를 위해 시스템 사용자에게 상기 점수를, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 제공하는 단계를 포함한다.
[0009] 본 발명은, 또 다른 실시 예에 따라, 시스템 보안을 유지하기 위한 컴퓨터 시스템을 제공하고, 상기 시스템은: 하나 또는 그 이상의 컴퓨터 프로세서들; 하나 또는 그 이상의 컴퓨터 판독 가능 스토리지 디바이스들; 및 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의한 실행을 위한 하나 또는 그 이상의 컴퓨터 판독 가능 스토리지 디바이스들 상에 저장된 프로그램 명령들을 포함하며, 상기 저장된 프로그램 명령들은: 적어도 하나의 데이터 파일과 연관된 메타데이터를 메타데이터 스토리지 유닛으로부터 수신하는 단계를 수행하기 위한 프로그램 명령들; 상기 메타데이터에 따라 상기 적어도 하나의 데이터 파일에 대한 우선순위를 생성하는 단계를 수행하기 위한 프로그램 명령들; 및 상기 우선 순위에 따라 상기 데이터 파일의 스캔을 수행하는 단계를 수행하기 위한 프로그램 명령들을 포함하고; 상기 메타데이터는 하나 또는 그 이상의 바이러스 표시자들(virus indicators)을 포함한다.
[0010] 본 발명은, 또 다른 실시 예에 따라, 시스템 보안을 유지하기 위한 컴퓨터 프로그램 제품을 제공하고, 상기 컴퓨터 프로그램 제품은 본 발명의 단계들을 수행하는 방법을 수행하기 위해 처리 회로에 의해 판독 가능하고 상기 처리 회로에 의해 실행되기 위한 명령들을 저장하는 컴퓨터 판독 가능 스토리지 매체를 포함한다.
[0011] 본 발명은, 또 다른 실시 예에 따라, 컴퓨터 프로그램을 제공하고, 상기 컴퓨터 프로그램은 컴퓨터 판독 가능 매체에 저장되고 디지털 컴퓨터의 내부 메모리에 로드 할 수 있으며, 상기 프로그램이 컴퓨터에서 실행될 때, 본 발명의 단계들을 수행하기 위한 소프트웨어 코드 부분들을 포함한다.
[0012] 본 발명은, 또 다른 실시 예에 따라, 시스템 보안을 유지하기 위한 컴퓨터 프로그램 제품을 제공하고, 상기 컴퓨터 프로그램 제품은 하나 또는 그 이상의 컴퓨터 판독 가능 스토리지 디바이스들; 및 상기 하나 또는 그 이상의 컴퓨터 판독 가능 스토리지 디바이스들 상에 저장된 프로그램 명령들을 포함하며, 상기 저장된 프로그램 명령들은: 적어도 하나의 데이터 파일과 연관된 메타데이터를 메타데이터 스토리지 유닛으로부터 수신하는 단계를 수행하기 위한 프로그램 명령들; 상기 메타데이터에 따라 상기 적어도 하나의 데이터 파일에 대한 우선순위를 생성하는 단계를 수행하기 위한 프로그램 명령들; 및 상기 우선 순위에 따라 상기 데이터 파일의 스캔을 수행하는 단계를 수행하기 위한 프로그램 명령들을 포함하고; 상기 메타데이터는 하나 또는 그 이상의 바이러스 표시자들(virus indicators)을 포함한다.
[0013] 다음은 본 발명의 하나 또는 그 이상의 실시 예들의 기본 이해를 제공하기 위한 요약을 제공한다. 이 요약은 핵심 또는 중요한 엘리멘트들을 식별하거나 특정 실시 예들의 범위 또는 청구항들의 범위를 설명하기 위한 것이 아니다. 그것의 유일한 목적은 나중에 제공될 보다 상세한 설명에 대한 도입(prelude)으로서 단순화된 형태로 개념을 제공하는 것이다. 여기에 설명된 하나 또는 그 이상의 실시 예들에서, 디바이스들, 시스템들, 컴퓨터 구현 방법들, 장치들 및/또는 컴퓨터 프로그램 제품들은 사용자가 데이터에 액세스할 수 있기 전에 악성 코드에 대한 데이터 파일들의 우선 순위를 지정하고 스캔할 수 있게 해 준다.
[0014] 일 실시 예에서, 본 발명은 데이터 파일들이 사용자들에 의해 처리되거나 또는 달리 액세스되기 전에 대량으로 스트림 되거나 또는 수신될 때 데이터 파일들을 계속적으로 모니터 함으로써 시스템 보안을 유지하는 것과 관련된 방법들, 시스템들 및 컴퓨터 판독 가능 매체를 포함한다. 이 실시 예에서, 상기 시스템들, 방법들 및 컴퓨터 프로그램 제품들은 메타데이터 스토리지 유닛으로부터 하나의 데이터 파일의 적어도 일부와 연관된 메타데이터를 수신하는 단계, 상기 메타데이터에 따라 하나의 데이터 파일의 적어도 일부에 대한 우선순위를 생성하는 단계, 및 상기 데이터 파일의 일부를 스캔하는 단계를 수행함으로써 실시된다. 상기 메타데이터는 하나 또는 그 이상의 바이러스 표시자들을 포함한다. 일단 데이터가 수신되면, 데이터는 방해 없이 사용자에게 제공된다.
[0015] 일 실시 예에서, 본 발명은 바이러스 정의가 시간이 지남에 따라 변경되는 동안 시스템 보안을 유지하는 것과 관련된 방법들, 시스템들 및 컴퓨터 판독 가능 매체를 포함한다. 이 실시 예에서, 상기 시스템들, 방법들 및 컴퓨터 프로그램 제품들은 업데이트된 바이러스 정의를 수신하는 단계, 메타데이터 스토리지 유닛으로부터 적어도 하나의 데이터 파일과 연관된 메타데이터를 획득하는 단계, 상기 메타데이터 및 업데이트된 바이러스 정의에 따라 상기 적어도 하나의 데이터 파일에 대한 우선순위를 생성하는 단계, 상기 생성된 우선 순위에 따라 데이터 파일 선택하는 단계, 상기 데이터 파일의 스캔을 수행하는 단계, 상기 스캔에 따라 상기 데이터 파일의 메타데이터를 업데이트하는 단계, 및 추가 처리를 위해 상기 데이터 파일을 제공하는 단계를 수행함으로써 실시된다.
[0016] 일 실시 예에서, 본 발명은 각 스캔 된 파일에 대한 공통 취약성 및 노출 점수를 사용자 또는 자동화된 수신 시스템에 제공하는 추가의 이점들을 포함하는 시스템 보안 유지와 관련된 방법들, 시스템들 및 컴퓨터 판독 가능 매체들을 포함한다. 상기 사용자 또는 수신 시스템은 상기 스캔 된 파일이 추가 처리 및 사용을 위해 데이터 처리 시스템에 로드 되어야 하는 지를 결정한다. 본 발명들 중 이 실시 예는 메타데이터 스토리지 유닛으로부터 적어도 하나의 데이터 파일과 연관된 메타데이터를 획득하는 단계, 상기 메타데이터에 따라 상기 적어도 하나의 데이터 파일에 대한 우선순위를 생성하는 단계, 상기 우선순위에 따라 데이터 파일을 선택하는 단계, 상기 데이터 파일의 스캔을 수행하는 단계, 상기 데이터 파일에 대한 공통 취약점들 및 노출 점수를 결정하는 단계, 상기 스캔에 따라 상기 데이터 파일의 메타데이터를 업데이트하는 단계, 평가를 위해 시스템 사용자에게 점수를 제공하는 단계를 수행함으로써 실시 된다.
[0017] 첨부된 도면들에서 본 발명의 일부 실시 예들의 보다 상세한 설명을 통해, 본 발명의 상기 및 다른 목적들, 특징들 및 이점들이 보다 명백해질 것이며, 여기서 동일 참조는 일반적으로 본 발명의 실시 예들에서 동일 컴포넌트들을 지칭한다
[0018] 도 1은 본 발명의 일 실시 예에 따른 시스템의 개략도를 제공한다.
[0019] 도 2는 본 발명의 일 실시 예에 따른 동작 시퀀스를 도시하는 플로차트를 제공한다.
[0020] 도 3은 본 발명의 일 실시 예에 따른 클라우드 컴퓨팅 환경을 도시한다.
[0021] 도 4는 본 발명의 일 실시 예에 따른 추상화 모델 계층을 도시한다.
[0022] 본 발명의 실시 예들이 예시된, 첨부 도면들을 참조하여 일부 실시 예들이 더 상세히 설명될 것이다. 그러나, 본 발명은 다양한 형태로 구현될 수 있으며, 따라서 여기에서 개시되는 실시 예들에 한정되는 것으로 해석되어서는 안된다.
[0023] 일 실시 예에서, 본 발명의 시스템의 하나 또는 그 이상의 컴포넌트들은 본질적으로 고도한 기술적인 문제들(예를 들어, 메타데이터에 따라 데이터 파일에 우선순위를 지정하는 문제 우선순위가 지정된 파일을 스캔하는 문제, 등)을 해결하기 위해 하드웨어 및/또는 소프트웨어를 채용할 수 있다. 이들 솔루션들은 추상적이지 않으며, 예를 들어, 코드 스캔 및 교정(remediation)을 용이하게 하는 데 필요한 처리 기능으로 인해 인간에 의한 일련의 정신적 행위로서는 수행될 수 없다. 또한, 수행되는 프로세스들 중 일부는 메모리 작업들(memory operations)과 관련된 정의된 태스크들(tasks)을 수행하기 위해 특수 컴퓨터에 의해 수행될 수 있다. 예를 들어, 특수 컴퓨터를 사용하여 코드 스캔 및 교정 등과 관련된 태스크들을 수행하기 위해 채용될 수 있다.
[0024] 분산 빅 데이터 처리 시스템들(Distributed big data processing systems)은 고유한 시스템 보안 문제들에 직면해 있다. 이들 시스템들은, 기가바이트 및 테라바이트 크기의, 매우 큰 데이터 파일들을 수신하고 및 배포한다. 수신된 데이터는 다수의 소스들로부터 비롯된 것이어서, 일부는 다른 데이터보다 더 신뢰할 수 있는 것일 수도 있고, 일부는 체크되지 않았거나 제공된 데이터가 바이러스, 맬웨어 및 기타 데이터에 내재된 문제가 없음을 보장하지 못할 수 있다. 시스템 사용자들은 분산 환경을 통해 시스템 데이터에 대한 중단 없는 액세스를 요구하는데, 이러한 분산 환경에서 데이터 문제들을 검토하거나 교정하기 위한 중단 서비스들 또는 데이터 액세스는 실행 가능한 옵션이 아니다. 시스템 사용자들은 추가 처리 및 사용을 위해 데이터 블록을 다운로드할 수 있다. 데이터의 보안 프로필의 표시는 사용자들이 데이터 처리 시스템에 사용하기 위해 어느 블록들을 추가하는 것이 안전한지를 결정하는 데 도움이 된다. 그러한 시스템들은 또한 단일 소스 또는 여러 소스들에서 중복 파일을 수신할 수도 있다. 보안 문제들을 위해 중복 레코드들을 처리하는 것은 부족한 시스템 자원들을 낭비하는 것이다.
[0025] 일 실시 예에서, 시스템은 큰(기가바이트 및 테라바이트 크기) 파일들의 저장을 위한 데이터 저장소(data store)를 포함한다. 시스템은 또한 하나 또는 그 이상의 메타데이터 테이블들을 보유하는 메타데이터 스토리지 유닛을 포함한다. 상기 메타데이터 스토리지 유닛은 로컬 또는 클라우드에 기초할 수 있다. 상기 테이블들은 데이터 저장소에 보관된 대용량 파일들에 대한 메타데이터 레코드들을 포함한다. 이 실시 예에서, 상기 테이블들은 다음 중 일부 또는 전부를 포함하는 메타데이터 필드들을 보유한다: 파일 식별과 관련된 데이터, 파일 처리 상태 - 다운스트림 사용들,등에 이용할 수 있는 파일, 파일의 처리된 시간 - 데이터가 방법에 의해 처리된 마지막 시간의 레코드, 파일에 대한 공통 취약성 및 노출(CVE) 점수, 파일 내에서 식별된 바이러스들, 자세한 바이러스 설명 데이터, 파일 형식 정보 및 파일의 모든 다운스트림 처리 요구들과 관련된 데이터. 다양한 파일 형식들이 데이터 기반 문제들(data borne issues)과 더 밀접하게 관련되어 있다. 장기 저장과 달리, 다운스트림 처리와 관련된 파일들은 보다 즉각적인 주의와 스캐닝을 필요로 한다.
[0026] 개시된 본 발명들은 단일 서버에 고정적으로 배치되거나 다수의 클라우드 테넌시들(multiple cloud tenancies)에 걸쳐 분산된 단일 또는 다수의 애플리케이션 시스템들에 적용 가능하다. 본 발명들은 일괄 및 벌크 데이터 처리뿐만 아니라 스트리밍 데이터의 거의 실시간 데이터 처리에도 적용할 수 있다.
[0027] 일부 실시 예들에서, 메타데이터는 또한 데이터 파일들과 연관된 체크섬 데이터를 포함한다. 대역 외 수신된 벌크 또는 배치 데이터 파일들(bulk or batch data files received out-of-band)에 대해서는, 파일에 대한 해시 값(SHA256)과 같은 체크섬이 계산된다. 파일을 약간만 변경해도 체크섬 값이 달라지므로 파일이 변경되었음을 알 수 있다. 체크섬은 파일과 연관된 메타데이터로 저장된다. 일부 실시 예들에서, 파일에는 체크섬 값이 제공될 수 있다. 이들 실시 예들에서, 계산된 체크섬은 제공된 값과 비교되어 파일에 변경이 이루어졌는지가 결정된다. 체크섬에는 SHA256, MD5 또는 데이터 파일 바이트 표현을 사용하여 체크섬을 계산하는 다른 기술과 같은 체크섬 기술이 사용될 수 있다.
[0028] 일 실시 예에서, 대역외 수신된 벌크 파일들 및 스트림라인닝 데이터 파일들에 대한 체크섬 값이 계산된다. 스트리밍 데이터에 대해서는, 시스템의 데이터 저장소에 도달하는 스트리밍 데이터와 병렬로 체크섬 값이 계속 계산된다. 스트리밍 동안 계산된 체크섬 값들은 룩업 테이블에서 메타데이터로 저장된다. 데이터 파일이 완전히 도달된 후 그 파일에 대한 최종 체크섬 값은 스트림 된 파일과 연관된 메타데이터 스토리지 유닛에 저장된다. 일 실시 예에서, 데이터 파일은 파일의 블록들 또는 세그먼트들로서 세분된다. 이 실시 예에서, 데이터 파일의 각 부분에 대한 체크섬이 계산된다. 각 부분이 완전히 수신되면 데이터 파일의 각 부분에 대한 체크섬이 파일의 각 부분과 연관된 메타데이터로서 저장된다. 일 실시 예에서, 바이러스가 인접한 블록들 사이에서 분할되어 간과되지 않도록 상기 부분들은 중첩된다. 세그먼트들은 각 세그먼트가 이전 세그먼트의 일부를 포함하도록 패드 될 수 있으며, 예를 들어, 각 100MB 세그먼트들은 이전 세그먼트의 마지막 100KB를 포함하도록 패드 될 수 있다. 일 실시 예에서, 100-메가바이트 세그먼트들은 +/- 500 킬로바이트로 패드 되어 데이터 파일의 세그먼트화로 인한 세그먼트 스캐닝에서의 갭들이 없음을 보장한다. 이 실시 예에서, 세그먼트들은 0-1.5MB, 1-2.5MB, 2-3.5MB…범위가 될 것이고, 이에 의해서 악성 코드의 일부가 2개의 인접 세그멘트들 사이에서 분할됨에 의해서 탐지를 회피할 가능성을 줄여줄 것이다.
[0029] 일 실시 예에서, 체크섬 값들은 기존 데이터 파일들 및 세그먼트들에 연관된 저장된 메타데이터 값들과 비교된다. 상기 비교는 현재 배치 또는 스트리밍 파일/세그먼트의 중복을 식별한다. 파일들이 데이터 저장소로 스트림 되는 동안 계속적으로 계산된 체크섬들이 비교되어, 잠재적으로 유사하거나 동일한 파일들이 식별된다. 이 실시 예에서, 잠재적으로 동일한 모든 파일들을 실제로 동일한 것으로 검증하기 위해 최종 체크섬이 사용된다.
[0030] 일 실시 예에서, 메타데이터의 체크섬이 일치하는 것(matching)에 응답하여, 일치된 파일/세그먼트의 CVE 점수 및 바이러스 세부사항들에 기초하여 파일 또는 파일 세그먼트에 대한 클린싱 루틴이 트리거 된다. 이 실시 예에서, 일치된 메타데이터는 알려진 바이러스들을 갖는 파일과 연관된다. 이 실시 예에서, 파일 또는 세그먼트는 클린 되고 메타데이터가 업데이트되어 클리닝이 발생하였음을 표시한다. 파일들의 클리닝은 파일로부터 탐지된 바이러스와 연관된 알려진 악성 코드 부분을 파일에서 제거하거나 또는 파일의 백업 사본을 사용하여 파일을 복원하는 것을 포함할 수 있다. 클린된 파일은 우선 순위 지정을 위한 목록에 추가된다. 이 실시 예에서, 클린된 파일에 대해 새로운 체크섬이 계산되고 이 새로운 체크섬은 메타데이터에 추가된다.
[0031] 일 실시 예에서, 새로운 데이터 저장소 배치 파일이 로드되었는지를 결정하거나 새로운 스트리밍 데이터 파일이 로드되는지를 결정하기 위해 메타데이터 스토리지 유닛이 체크된다. 이 실시 예에서, 모든 새로운 파일들과 연관된 메타데이터가 체크된다. 그런 다음, 새로운 데이터 파일들의 표시를 위해 메타데이터 스토리지 디바이스는 계속적으로 모니터 된다. 일 실시 예에서, 본 발명의 방법 및 시스템들은 새로운 파일이나 바이러스 정의가 탐지되지 않을 때 휴지에 들어간다(rest).
[0032] 일 실시 예에서, 최근에 로드 된 모든 파일들에 대한 메타데이터 또는 현재 스트리밍 중인 파일에 대한 메타데이터가 획득된다. 상기 메타데이터를 사용하여 새로운 데이터 파일들의 우선 순위가 지정된 목록이 생성된다. 상기 파일들은 바이러스 표시자들 또는 파일에 맬웨어가 있을 가능성을 고려하여 우선 순위가 지정된다. 모든 새로운 파일들의 메타데이터를 연관시켜 우선 순위 목록을 생성한다. 이전에 발견된 바이러스들과 관련하여 이전에 스캔 된 파일들과 관련된 체크섬 값들이 고려된다. 또한 파일 또는 중복의 모든 이전 스캔에 사용된 바이러스 정의와 바이러스 정의가 최신 상태인지가 고려된다. 오래된 바이러스 정의 스캔들 사용하여 수행한 스캔들 중에서는 새로운 스캔이 더 높은 우선 순위를 갖는다. 다운스트림 처리가 필요한 데이터 파일은 그러한 필요가 없는 파일보다 더 높은 우선 순위를 갖는다. 제공된 체크섬 또는 이전 스캔 체크섬과 비교하여 체크섬 편차를 갖는 파일들은 새로운 스캔에 대해 더 높은 우선 순위를 부여한다. 이 실시 예에서, 바이러스 정의에 대한 모든 변경들의 관점에서 신규 및 기존 파일들 세트의 메타데이터가 고려된다. 데이터 파일들의 세트에 순위가 매겨져서 파일들의 우선 순위가 가장 높은 것(가장 많이 스캔해야 할 필요가 있는 파일)에서 가장 낮은 것(가장 적게 스캔해여 할 필요가 있는 파일)까지 정해진다. 이 실시 예에서, 일치하는 파일 식별 또는 파일 체크섬이 없는 새로운 처리되지 않은 파일들이 검토되며 이들 파일들에 높은 우선순위를 부여하고 이들 파일들에 대해 메타데이터 스토리지 유닛에 새로운 메타데이터 목록을 생성한다. 이 실시 예에서, 또한 적어도 처리되지 않은 파일들에 대한 스캐닝이 완료될 때까지 이들 파일들에 대한 사용자 액세스는 차단된다. 이 실시 예에서, 기존 파일과 동일한 파일 식별 및 파일 체크섬을 갖는 중복 파일들은 낮은 우선순위가 부여된다.
[0033] 일 실시 예에서, 생성된 우선순위 목록으로부터 파일이 선택되고 그 파일이 바이러스, 맬웨어 및 기타 데이터 기반 문제들의 검사를 위해 스캔 된다. 이 실시 예에서, 가장 높은 우선순위부터 시작하여 그 우선순위에 따라 데이터 파일이 선택된다. 목록의 각 파일은 내림차순 우선 순위에 따라 차례로 스캔 된다. 이 실시 예에서, 목록에서 가장 높은 우선순위 파일이 선택된다. 우선 순위가 낮은 이전 파일보다 우선 순위가 높은 새로운 파일이 스캔 될 수 있도록 파일들이 우선 순위와 함께 목록에 추가된다.
[0034] 일 실시 예에서, 상세한 현재 바이러스 정의들을 사용하여 바이러스들의 검사를 위해 파일들이 스캔 된다. 이 실시 예에서, 각 파일에 대해 발견된 바이러스 목록뿐만 아니라 각 파일에 대한 CVE 점수도 결정된다. 스캔의 시간, 사용된 바이러스 정의, 발견된 바이러스들, 발견된 바이러스들의 수, 파일 체크섬, 파일 형식 및 파일과 관련된 다운스트림 처리 필요 사항들이 모두 메타데이터 스토리지 디바이스의 파일에 대한 메타데이터로 업데이트된다.
[0035] 일 실시 예에서, 파일들은 더 빠른 스캐닝을 용이하게 하고 파일 스토리지를 최적화하기 위해 블록들 또는 세그먼트들로 세분된다. 이 실시 예에서, 전체 파일뿐만 아니라 각 세그먼트에 대해서도 메타데이터가 결정되고 저장된다. 이 실시 예에서, 메타데이터의 일부로서 관련된 세그먼트 데이터가 포함된다. 관련 세그먼트들 그룹의 한 세그먼트를 스캔하면 가까운 관련 세그먼트들의 스캔들이 트리거 된다. 이 실시 예에서는, 관련 세그먼트들의 스캔들은 중첩되고, 따라서 이는 바이러스들 및 맬웨어를 찾을 가능성을 높인다. 이 실시 예에서, 파일은 논리적으로 관련된 일련의 세그먼트들(segment0, segment1, segment2 등)로 분할, 저장 및 스캔 될 수 있다. 일 실시 예에서, 파일들의 이진수 버전들이 스캔 된다. 이 실시 예에서, 스캔이 완료되고 난 후 파일이 이용 가능한 데이터 저장소의 일부로서 다운스트림 처리 및 사용자 액세스에 적합할 때까지 파일들은 이진수(binary)로 유지된다. 이 실시 예에서, 데이터 저장소의 일부로 사용하기 위해 파일에서 데이터를 검색하기 위해 추출 - 변환 - 로드 또는 다른 데이터 처리 에이전트 작업(or other data processing agent operation)이 채용될 수 있다.
[0036] 일 실시 예에서, 파일의 세그먼트가 스캐닝 된 후에 메타데이터가 평가될 수 있다. 그런 다음 다운스트림 처리를 위해 파일이 제공되며, 바이러스/맬웨어 클린싱 루틴을 위해 파일이 제공되거나, 또는 클린싱 루틴들이 이용 가능하지 않을 때 파일은 격리될 수 있다(quarantine). 일 실시 예에서, 사용자들에게 각 파일의 CVE 점수에 대한 액세스가 제공된다. 이 실시 예에서, 사용자는 CVE 점수들과 연관된 허용 가능한 위험 수준을 결정하고 CVE 점수 임계 값을 설정할 수 있다. 임계 값 아래의 CVE 점수를 갖는 파일들은 데이터 소비자들에 의한 사용을 위해 사용자의 데이터 처리 시스템에 허용된다. 임계 값 이상의 점수를 갖는 파일들은 거부된다. 일 실시 예에서, 바이러스가 발견되지 않거나 다운스트림 사용을 위해 허용 가능한 낮은 CVE 점수를 갖는 파일들은 업로드 된다. 모든 스캔 된 파일들에 대해 메타데이터 스토리지 유닛의 메타데이터가 업데이트 된다.
[0037] 일 예는 다음과 같다:
클라이언트 애플리케이션은 전송 계층 보안 상호 인증(Transport Layer Security Mutual Authentication)을 사용하여 방법 플랫폼(a method Platform)에 연결한다.
클라이언트 애플리케이션은 의료 데이터(healthcare data)의 업로드를 시작한다.
클라이언트는 콘텐츠의 크기를 선언하지 않았으며 플랫폼 최대 지원은 다수의 테라바이트 파일들에 대해서 한다.
플랫폼은 데이터를 데이터 저장소로 스트림 하고 SHA256을 사용하여 체크섬을 시작한다.
플랫폼은 아직 데이터를 다운로드할 준비가 된 것으로 표시하지 않았으며 다운스트림 소비자들은 아직 새로운 데이터를 사용할 수 없다.
플랫폼은 파일의 파트들에 대한 체크섬 구축을 시작한다. {파트 1: 0-1M, 파트 2: 1-2M, 파트 3: 2-3M}
클라이언트 애플리케이션이 파일 업로드를 완료한다.
플랫폼은 파일들의 파트들에 대해 계산된 체크섬들과 함께 메타데이터 지원 열(the metadata support column)의 체크섬 - 01234567A를 업데이트한다.
병렬로 실행되는, 플랫폼의 바이러스 스캐닝 서비스는 메타데이터 열을 체크한다.
메타데이터는 업로드 된 파일에 대한 다음 정보를 포함한다.
Figure pct00001
방법 조정자는 체크섬이 이미 존재하는지 확인하기 위해 체크한다. 만일 존재한다면, 본 발명은 관련되거나 유사한 체크섬들이 없는 체크섬들을 우선한다.조정자가, 어떠한 관련 체크섬들도 찾지 못하였다면, 그 시간에 기초하여 파일을 추출한다.
조정자는 파일을 스캔하고, 발견된 바이러스, 바이러스 메타데이터와 같은 결과들을 가져와서, 바이러스 콘텐츠 및 CVE 점수와 함께, 파일을 처리된 것으로 표시한다.
Figure pct00002
[0038] 도 1은 개시된 발명들을 실시하는 것과 관련된 예시적인 네트워크 자원들의 개략도를 제공한다. 본 발명들은 명령 스트림을 처리하는 개시된 엘리멘트들 중 어느 하나의 프로세서들에서 실시될 수 있다. 도면에 도시된 바와 같이, 네트워크 된 클라이언트 디바이스(110)는 서버 서브-시스템(102)에 무선으로 연결된다. 클라이언트 디바이스(104)는 네트워크(114)를 통해 서버 서브-시스템(102)에 무선으로 연결된다. 클라이언트 디바이스들(104, 110)은 바이러스 스캐닝 프로그램 클라이언트들(도시되지 않음)을 프로그램을 실행하기에 충분한 컴퓨팅 자원(프로세서, 메모리, 네트워크 통신 하드웨어)함께 포함한다. 도 1에 도시된 바와 같이, 서버 서브-시스템(102)은 서버 컴퓨터(150)를 포함한다. 도 1은 본 발명의 일 실시 예에 따른, 네트워크 된 컴퓨터 시스템(1000) 내의 서버 컴퓨터(150)의 컴포넌트들의 블록도를 도시한다. 도 1은 단지 하나의 구현의 예시를 제공하고 다른 실시 예들이 구현될 수 있는 환경들과 관련하여 어떠한 제한도 의미하지 않는다는 것을 이해해야 한다. 묘사된 환경에 대한 많은 수정들이 가능하다.[0039] 서버 컴퓨터(150)는 프로세서(들)(154), 메모리(158), 영구 스토리지 디바이스(170), 통신 유닛(152), 입/출력(I/O) 인터페이스(들)(156) 및 통신 패브릭(140)을 포함할 수 있다. 통신 패브릭(140)은 캐시 간의 통신을 제공한다. 162, 메모리(158), 영구 스토리지 디바이스(170), 통신 유닛(152), 및 입/출력(I/O) 인터페이스(들)(156)를 포함한다. 통신 패브릭(140)은 프로세서들(예: 마이크로프로세서들, 통신 및 네트워크 프로세서들, 등), 시스템 메모리, 주변 디바이스들 및 시스템 내의 기타 하드웨어 컴푸넌트들 사이에 데이터 및/또는 컨트롤 정보를 전송하도록 설계된 모든 아키텍처로 구현될 수 있다. 예를 들어, 통신 패브릭(140)은 하나 이상의 버스들로 구현될 수 있다.
[0040] 메모리(158) 및 영구 스토리지 디바이스(170)는 컴퓨터 판독가능 스토리지 매체이다. 이 실시 예에서, 메모리(158)는 랜덤 액세스 메모리(RAM)(160)를 포함한다. 일반적으로, 메모리(158)는 모든 적절한 휘발성 또는 비-휘발성 컴퓨터 판독가능 스토리지 매체를 포함할 수 있다. 캐시(162)는 메모리(158)로부터 최근에 액세스한 데이터 및 최근에 액세스한 데이터 근처의 데이터를 유지함으로써 프로세서(들)(154)의 성능을 향상시키는 고속 메모리이다.
[0041] 본 발명의 실시 예를 실행하는 데 사용되는 프로그램 명령들 및 데이터, 예를 들어 바이러스 스캐닝 프로그램(175)은, 캐시(162)를 통해 서버의 각각의 프로세서(들)(154) 중 하나 또는 그 이상에 의해서 실행 및/또는 액세스되기 위해 영구 저장소(170)에 저장된다. 이 실시 예에서, 영구 스토리지 디바이스(170)는 자기 하드 디스크 드라이브를 포함한다. 대안으로 또는 자기 하드 디스크 드라이브에 추가하여, 영구 저장소(170)는 솔리드 스테이트 하드 드라이브, 반도체 스토리지 디바이스, ROM(읽기 전용 메모리), EPROM(지울 수 있는 프로그램 가능 읽기 전용 메모리), 플래시 메모리, 또는 프로그램 명령들 또는 디지털 정보를 저장할 수 있는 기타 컴퓨터 판독 가능 스토리지 매체를 포함할 수 있다.
[0042] 영구 스토리지 디바이스(170)에 의해 사용되는 매체는 또한 제거 가능할 수 있다. 예를 들어, 착탈가능 하드 드라이브가 영구 스토리지 디바이스(170)에 사용될 수 있다. 다른 예들은 영구 스토리지 디바이스(170)의 일부이기도 한 다른 컴퓨터 판독 가능 저장 매체로 전송하기 위해 드라이브에 삽입되는 광학 및 자기 디스크들, 썸 드라이브들 및 스마트 카드들을 포함한다.
[0043] 이들 예들에서, 통신 유닛(152)은 네트워크(114)를 통해 네트워크 디바이스들을 포함하는 다른 데이터 처리 시스템들 또는 디바이스들과의 통신을 제공한다. 이들 예들에서, 통신 유닛(152)은 하나 또는 그 이상의 네트워크 인터페이스 카드들을 포함한다. 통신 유닛(152)은 물리적 및 무선 통신 링크 중 하나 또는 둘 다를 사용하여 통신을 제공할 수 있다. 소프트웨어 배포 프로그램, 및 본 발명의 구현에 사용되는 다른 프로그램 및 데이터는 통신 유닛(152)을 통해 서버 컴퓨터(150)의 영구 스토리지 디바이스(170)에 다운로드 될 수 있다.
[0044] I/O 인터페이스(들)(156)는 서버 컴퓨터(150)에 연결될 수 있는 다른 디바이스들과의 데이터 입력 및 출력을 허용한다. 예를 들어, I/O 인터페이스(들)(156)은 외부 디바이스(들)(190), 예를 들어, 키보드, 키패드, 터치 스크린, 마이크로폰, 디지털 카메라, 및/또는 일부 다른 적절한 입력 디바이스에 대한 연결을 제공할 수 있다. 외부 디바이스(들)(190)는 또한, 예를 들어, 썸 드라이브들, 휴대용 광 디스크들 또는 자기 디스크들, 및 메모리 카드들과 같은 휴대용 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 본 발명의 실시 예들을 실행하는 데 사용되는 소프트웨어 및 데이터, 예를 들어 서버 컴퓨터(150) 상의 머신 러닝 프로그램(175)은 그러한 휴대용 컴퓨터 판독 가능 저장 매체에 저장될 수 있고 I/O 인터페이스(들)(156)를 통해 영구 스토리지 디바이스(170)에 로드 될 수 있다. I/O 인터페이스(들)(156)는 또한 디스플레이(180)에 연결된다.
[0045] 디스플레이(180)는 데이터를 사용자에게 디스플레이 하는 메커니즘을 제공하며, 예를 들어 컴퓨터 모니터일 수 있다. 디스플레이(180)는 또한, 태블릿 컴퓨터의 디스플레이와 같은, 터치 스크린으로서 기능할 수 있다.
[0046] 도 2는 본 발명의 실시와 관련된 예시적인 작업들을 예시하는 플로차트(200)를 제공한다. 프로그램 시작 후, 단계(210)에서, 프로그램(175)의 방법은 새로운 배치(new batch) 또는 스트리밍 파일들 및/또는 새로운 바이러스 정의들에 대해서 체크한다. 배치 파일들은 이미 데이터 저장소에 있고 스트리밍 파일들이 데이터 저장소에 도달하고 있을 수 있다. 새로운 바이러스 정의들이 네트워크 통신 유닛(152)에 의해 시스템 침입 방지 시스템(a system Intrusion Prevention System)에 제공될 수 있다. 단계(220)에서, 상기 방법은 영구 메모리(170), 시스템 스토리지 영역 네트워크 또는 다른 시스템 메모리의 메타데이터 스토리지 유닛에서 새로운 파일 메타데이터에 대해 체크한다. 저장된 메타데이터가 없는 새로운 파일에 대해서, 프로그램(175)의 방법은 새로운 메타데이터 레코드를 생성하고 파일 메타데이터를 수집하기 시작한다. 메타데이터는 파일 자체와 상기 파일과 관련된 작업들에서 수집된다. 새로운 바이러스 정의들을 적용하기 위해, 상기 방법은 새로운 바이러스 정의들로 아직 스캔 되지 않은 파일들을 체크한다.
[0047] 단계(230)에서, 프로그램(175)의 방법은 바이러스 스캐닝에 대한 그들의 필요에 따라 모든 새로운 파일들의 우선순위 목록을 생성한다. 이 방법은 계산된 파일 체크섬 값들 중 하나 또는 그 이상과 새로운 파일 메타데이터의 바이러스 상관 관계 표시자를 사용하여 파일 우선 순위를 결정한다. 스캔 긴급도가 더 높은 파일에 더 높은 우선 순위가 할당된다. (다운스트림 처리 액세스가 필요한 파일, 과거 메타데이터가 없는 파일, 체크섬 문제들이 있는 파일 등).
[0048] 단계(240)에서, 프로그램(175)의 방법은 스캐닝을 위해 생성된 목록으로부터 가장 높은 우선순위 데이터 파일 파트를 선택한다. 단계(250)에서 이 방법은 현재 바이러스 정의를 사용하여 상기 파일을 스캔 한다. 단계(260)에서, 이 방법은 스캔의 시간 및 날짜, 사용된 바이러스 정의들, 수 및 발견된 모든 바이러스들의 세부 정보, 상기 파일에 대한 새로운 CVE 점수, 모든 관련 세그먼트 정보 등을 포함하는 파일의 메타데이터를 업데이트한다. 단계(270)에서, 이 방법은 스캔 시에 파일이 알려진 바이러스로부터 클린이라고 표시한다. 이 실시 예에서, 상기 방법은 다운스트림 데이터 소비자들, 데이터 사용자들 및 관리자들에게 CVE 점수를 제공한다. CVE 점수의 수신자들은 파일이 소비자가 이용할 수 있을 만큼 충분히 클린 한 지를 결정한다.
[0049] 이 방법은 바이러스를 포함하는 파일들을 파일 클리닝 프로세스들에 전달한다. 단계(275)에서, 상기 방법은 파일이 상기 프로세스에 의해 클린스 되었는지를 결정한다. 클린 파일들은 단계(280)로 전달된다. 클린스되지 않은 바이러스 포함 파일들은 단계(290)으로 전달되고, 데이터 소비자 사용으로부터, 그리고 데이터 소비자 액세스에 추가되는 것으로부터 격리된다.
[0050] 단계(280)에서, 클린 파일들이 데이터 소비자가 사용할 수 있도록 데이터 저장소에 추가된다. 단계(280) 이후에, 상기 방법은 새로운 파일들/바이러스 정의들에 대해 체크하기 위해 단계(210)으로 돌아간다. 새로운 파일들이나 정의들이 발견되지 않으면, 상기 방법은 단계(215)로 진행하고 생성된 우선순위 목록 상의 모든 파일들이 현재 바이러스 정의들로 스캔 되었는지 결정된다. 상기 방법은 단계(240) 돌아가 모든 파일들이 아직 스캔 되지 않은 경우 다음 우선순위 파일을 선택한다. 모든 파일들이 스캔 되면 방법은 단계(210)로 돌아가 새로운 파일들 및 바이러스 정의들을 계속 체크한다.
[0051] 본 명세서는 클라우드 컴퓨팅에 관해서 상세한 설명들을 포함하지만, 여기서 설명된 그러한 컨텐츠들의 구현은 클라우드 컴퓨팅 환경에만 한정되는 것은 아님을 이해해야 한다. 오히려, 본 발명의 실시 예들은 지금 알려져 있거나 또는 나중에 개발될 모든 다른 유형의 컴퓨팅 환경과 함께 구현될 수 있다.
[0052] 클라우드 컴퓨팅은, 최소한의 관리 노력 또는 서비스 제공자와의 상호작용으로 빠르게 제공 및 해제될 수 있는, 구성 가능한(configurable) 컴퓨팅 자원들(예를 들어, 네트워크들, 네트워크 대역폭, 서버들, 처리, 메모리, 스토리지, 애플리케이션들, 가상 머신들, 및 서비스들)의 공유 풀에 대한 편리한 주문형(on-demand) 네트워크 액세스를 가능하게 하는 서비스 전달 모델이다. 이 클라우드 모델은 적어도 5가지의 특성(characteristics), 적어도 3가지 서비스 모델들(service models), 및 적어도 4가지 배치 모델들(deployment models)을 포함할 수 있다.
[0053] 클라우드 컴퓨팅 특성들은 다음과 같다:
주문형 셀프-서비스(On-demand self-service): 클라우드 소비자는, 서비스 제공자와의 인적 상호작용을 필요로 하지 않고 필요한 만큼 자동적으로, 서버 시간(server time) 및 네트워크 스토리지 같은 컴퓨팅 기능들을 일방적으로 제공(provisioning)할 수 있다.
광역 네트워크 액세스(Broad network access): 이질적 씬 또는 씩 클라이언트 플랫폼들(heterogeneous thin or thick client platforms)(예를 들어, 모바일폰들, 랩탑들, 및 PDA들)에 의한 사용을 장려하는 표준 메커니즘들을 통해 액세스되는 기능들을 네트워크를 통해서 이용할 수 있다.
자원 풀링(Resource pooling): 제공자의 컴퓨팅 자원들은 멀티-테넌트 모델(a multi-tenant model)을 이용하여, 각기 다른 물리적 및 가상 자원들을 요구(demand)에 따라 동적으로 할당 및 재할당하면서, 다수의 소비자들에게 서비스할 수 있도록 풀에 넣어둔다(pooled). 소비자는 일반적으로 제공된 자원들의 정확한 위치를 컨트롤할 수 없거나 그에 대한 지식이 없지만 더 높은 추상 수준에서(예를 들어, 국가, 주, 또는 데이터센터) 위치를 명시할 수 있다는 점에서 위치 독립성이 있다.
기민한 탄력성(Rapid elasticity): 역량들(capabilities)이 기민하게 탄력적으로 제공되어 (어떤 경우엔 자동으로) 신속히 규모를 확장할 수도 있고(scale out) 그리고 탄력적으로 해제되어 신속히 규모를 축소할 수도 있다(scale in). 소비자에게는 제공할 수 있는 가능성이 종종 무제한인 것으로 보이고 언제든지 얼마든지 구매할 수 있다.
측정 가능한 서비스(Measured service): 클라우드 시스템은 서비스 유형(예를 들어, 스토리지, 처리, 대역폭, 및 활성 사용자 계정)에 적절한 추상화 수준에서(at some level of abstraction) 계측 기능을 활용하여 자원 사용을 자동으로 컨트롤하고 최적화한다. 자원 사용량은 모니터 되고, 컨트롤되고, 그리고 보고될 수 있으며 이로써 이용하는 서비스의 제공자와 사용자 모두에게 투명성을 제공한다.
[0054] 서비스 모델들(Service Models)은 다음과 같다:
소프트웨어 서비스(Software as a Service)(SaaS): 소비자에게 제공되는 서비스는 클라우드 하부구조 상에서 실행되는 제공자의 애플리케이션들을 사용하게 해주는 것이다. 애플리케이션들은 웹 브라우저(예를 들어, 웹기반 이메일) 같은 씬(thin) 클라이언트 인터페이스를 통해 여러 클라이언트 장치들에서 액세스 가능하다. 소비자는 네트워크, 서버, 운영체제, 스토리지, 또는 개별 애플리케이션 성능을 포함하는 하부 클라우드 하부구조를 관리하거나 컨트롤하지 않는다.
플랫폼 서비스(Platform as a Service)(PaaS): 소비자에게 제공되는 서비스는 제공자에 의해 지원되는 프로그래밍 언어들 및 도구들을 이용하여 생성된 소비자-생성 또는 획득 애플리케이션들을 클라우드 하부구조에 배치하게 해주는 것이다. 소비자는 네트워크, 서버, 운영체제, 또는 스토리지를 포함하는 하부 클라우드 하부구조를 관리하거나 컨트롤하지 않지만, 배치된 애플리케이션들에 대해서 그리고 가능한 경우 애플리케이션 호스팅 환경 구성들에 대해서 컨트롤할 수 있다.
하부구조 서비스(Infrastructure as a Service)(IaaS): 소비자에게 제공되는 서비스는 처리, 스토리지, 네트워크, 및 기타 기본 컴퓨팅 자원들을 제공하여 주는 것이며, 여기서 소비자는 임의의 소프트웨어를 배치 및 실행할 수 있고, 이 소프트웨어에는 운영체제와 애플리케이션들이 포함될 수 있다. 소비자는 하부 클라우드 하부구조를 관리하거나 컨트롤하지 않지만, 운영체제, 스토리지, 배치된 애플리케이션들에 대해서 컨트롤할 수 있고, 가능한 경우 선택된 네트워킹 컴포넌트들(예를 들어, 호스트 방화벽들)에 대해서 제한적으로 컨트롤할 수 있다.
[0055] 배치 모델들(Deployment Models)은 다음과 같다:
사설 클라우드(Private cloud): 클라우드 하부구조는 오직 한 조직(an organization)을 위해서 운영되고, 그 조직 또는 제3자에 의해 관리될 수 있으며 옥내(on-premises) 또는 옥외(on-premises)에 위치할 수 있다.
커뮤니티 클라우드(Community cloud): 클라우드 하부구조는 여러 조직들에 의해 공유되고 관심사(예를 들어, 선교, 보안 요건, 정책, 및 규정 준수 심사)를 공유하는 특정 커뮤니티를 지원하며, 여러 조직들 또는 제3자에 의해 관리될 수 있으며 옥내(on-premises) 또는 옥외(on-premises)에 위치할 수 있다.
공공 클라우드(Public cloud): 클라우드 하부구조는 일반 대중 또는 대규모 산업 집단에서 이용할 수 있으며 클라우드 서비스를 판매하는 조직이 소유한다.
하이브리드 클라우드(Hybrid cloud): 클라우드 하부구조는 둘 또는 그 이상의 클라우드들(사설, 커뮤니티, 또는 공공)이 혼합된 구성이며, 이들은 고유한 독립체들로 있지만 데이터 및 애플리케이션 이식가능성(portability)을 가능하게 해주는 표준화된 또는 소유권 있는 기술(예를 들어, 클라우드들 사이의 부하 균형을 위한 클라우드 버스팅(cloud bursting))에 의해 서로 결합되어 있다.
[0056] 클라우드 컴퓨팅 환경은 무국적(statelessness), 낮은 결합(low coupling), 모듈 방식(modularity), 및 의미적 상호운용성(semantic interoperability)에 집중하는 서비스를 지향한다. 클라우드 컴퓨팅의 중심에는 상호 연결된 노드들의 네트워크를 포함하는 하부구조가 있다.
[0057] 이제 도 3을 참조하면, 예시적인 클라우드 컴퓨팅 환경(50)이 도시된다. 도시된 바와 같이, 클라우드 컴퓨팅 환경(50)은 하나 또는 그 이상의 클라우드 컴퓨팅 노드들(10)을 포함하며, 이들은 예를 들어 개인 휴대 정보 단말기(PDA) 또는 휴대폰(54A), 데스크탑 컴퓨터(54B), 랩탑 컴퓨터(54C), 및/또는 자동차용 컴퓨터 시스템(54N)과 같은, 클라우드 소비자가 사용하는 로컬 컴퓨팅 장치들과 통신할 수 있다. 노드들(10)은 서로 통신할 수 있다. 이들은 상기에서 기술된 바와 같은 사설, 커뮤니티, 공공, 또는 하이브리드 클라우드들 또는 이들의 조합 등의 하나 또는 그 이상의 네트워크들에서 물리적으로 또는 가상으로 그룹화될 수 있다(도시되지 않음). 이것은 클라우드 소비자가 로컬 컴퓨팅 장치 상에 자원들을 유지할 필요가 없게 클라우드 컴퓨팅 환경(50)이 하부구조, 플랫폼들 및/또는 소프트웨어를 서비스로서 제공할 수 있게 해준다. 도 3에 도시된 컴퓨팅 장치들(54A-N)의 유형들은 단지 예시의 목적으로 기술한 것이며 컴퓨팅 노드들(10)과 클라우드 컴퓨팅 환경(50)은 모든 유형의 네트워크 및/또는 네트워크 주소지정가능 연결을 통해서 (예를 들어, 웹 브라우저를 사용하여) 모든 유형의 컴퓨터화된 디바이스와 통신할 수 있다는 것을 이해해야 한다.
[0058] 이제 도 4를 참조하면, 클라우드 컴퓨팅 환경(50)(도 3)에 의해 제공되는 일 세트의 기능별 추상화 계층들이 도시된다. 도 4에 도시된 컴포넌트들, 계층들, 및 기능들은 단지 예시의 목적이며 본 발명의 실시 예들은 이들에 한정되지 않는다는 것을 미리 이해해야 한다. 도시된 바와 같이, 다음의 계층들과 그에 대응하는 기능들이 제공된다.
[0059] 하드웨어 및 소프트웨어 계층(60)은 하드웨어 및 소프트웨어 컴포넌트들을 포함한다. 하드웨어 컴포넌트들의 예들에는: 메인프레임들(61); RISC(Reduced Instruction Set Computer) 아키텍처 기반 서버들(62); 서버들(63); 블레이드 서버들(64); 스토리지 디바이스들(65); 그리고 네트워크 및 네트워킹 컴포넌트들(66)이 포함된다. 일부 실시 예들에서, 소프트웨어 컴포넌트들은 네트워크 애플리케이션 서버 소프트웨어(67) 및 데이터베이스 소프트웨어(68)를 포함한다.
[0060] 가상화 계층(70)은 추상화 계층을 제공하며 이로부터 다음의 가상 실체들의 예들이 제공될 수 있다: 가상 서버들(71); 가상 스토리지(72); 가상 사설 네트워크를 포함하는, 가상 네트워크들(73); 가상 애플리케이션들 및 운영체제들(74); 및 가상 클라이언트들(75).
[0061] 한 예에서, 관리 계층(80)은 아래에 기술하는 기능들을 제공한다. 자원 제공(Resource provisioning)(81)은 클라우드 컴퓨팅 환경 내에서 작업들을 수행하는 데 이용되는 컴퓨팅 자원들 및 기타 자원들의 동적 조달을 제공한다. 계측 및 가격 책정(Metering and Pricing)(82)은 자원들이 클라우드 컴퓨팅 환경 내에서 이용될 때 비용 추적, 및 이 자원들의 소비에 대한 요금 청구 또는 송장을 제공한다. 한 예에서, 이 자원들은 애플리케이션 소프트웨어 라이센스를 포함할 수 있다. 보안(Security)은 데이터 및 기타 자원들에 대한 보호뿐 아니라 클라우드 소비자들과 작업들에 대한 신원 확인을 제공한다. 사용자 포털(User portal)(83)은 소비자들 및 시스템 관리자들에게 클라우드 컴퓨팅 환경에 대한 액세스를 제공한다. 서비스 수준 관리(Service level management)(84)는 요구되는 서비스 수준이 충족되도록 클라우드 컴퓨팅 자원 할당 및 관리를 제공한다. 서비스 수준 협약서(SLA) 기획 및 충족(planning and fulfillment)(85)은 SLA에 부합하는 예상되는 미래 요건에 맞는 클라우드 컴퓨팅 자원들의 사전-배치(pre-arrangement) 및 조달(procurement)을 제공한다.
[0062] 워크로드 계층(90)은 클라우드 컴퓨팅 환경이 이용될 수 있는 기능들의 예들을 제공한다. 이 계층에서 제공될 수 있는 워크로드들과 기능들의 예들은 다음과 같다: 맵핑 및 네비게이션(91); 소프트웨어 개발 및 라이프사이클 관리(92); 가상 교실 교육 전달(93); 데이터 분석 처리(94); 트랜잭션 처리(95); 및 바이러스 스캐닝 프로그램(virus scanning program)(175).
[0063] 본 발명은 시스템, 방법, 및/또는 통합의 모든 가능한 기술적 상세 수준에서 컴퓨터 프로그램 제품이 될 수 있다. 본 발명은 명령 스트림을 처리하는, 단일 또는 병렬의 모든 시스템에서 유익하게 실시될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 스토리지 매체(또는 미디어)를 포함할 수 있으며, 이 매체 상에 프로세서가 본 발명의 실시 예들을 수행하도록 하는 컴퓨터 판독 가능 프로그램 명령들을 갖는다.
[0064] 상기 컴퓨터 판독 가능 스토리지 매체는 명령 실행 장치에 의해 사용될 명령들을 유지 및 저장할 수 있는 유형의(tangible) 디바이스일 수 있다. 상기 컴퓨터 판독 가능 스토리지 매체는, 예를 들면, 전자 스토리지 디바이스, 자기 스토리지 디바이스, 광 스토리지 디바이스, 전자기 스토리지 디바이스, 반도체 스토리지 디바이스, 또는 전술한 것들의 모든 적절한 조합일 수 있으며, 그러나 이에 한정되지는 않는다. 컴퓨터 판독 가능 스토리지 매체의 더 구체적인 예들의 비포괄적인 목록에는 다음이 포함될 수 있다: 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 소거 및 프로그램가능 판독-전용 메모리(EPROM 또는 플래시 메모리), 정적 랜덤 액세스 메모리(SRAM), 휴대용 컴팩트 디스크 판독-전용 메모리(CD-ROM), 디지털 다용도 디스크(DVD), 메모리 스틱, 플로피 디스크, 천공-카드들 또는 명령들이 기록된 홈에 있는 융기된 구조들 같이 기계적으로 인코드 된 장치, 및 전술한 것들의 모든 적절한 조합. 본 명세서에서 사용될 때, 컴퓨터 판독 가능 스토리지 매체는 무선 전파들이나 다른 자유롭게 전파되는 전자기파들, 도파관이나 기타 전송 매체(예를 들어, 광섬유 케이블을 통해 전달되는 광 펄스들)를 통해 전파되는 전자기파들, 또는 선(wire)을 통해 전송되는 전기 신호들 같이 그 자체로 일시적인(transitory) 신호들로 해석되지는 않는다.
[0065] 여기에 기술되는 컴퓨터 판독 가능 프로그램 명령들은, 예를 들어, 인터넷, 근거리 통신망, 광역 통신망 및/또는 무선 네트워크 등의 통신망(네트워크)을 통해 컴퓨터 판독 가능 스토리지 매체로부터 각각 컴퓨팅/처리 디바이스들로 또는 외부 스토리지 디바이스로부터 외부 컴퓨터로 다운로드 될 수 있다. 상기 통신망은 구리 전송 케이블들, 광 전송 섬유들, 무선 전송, 라우터들, 방화벽들, 스위치들, 게이트웨이 컴퓨터들 및/또는 엣지 서버들을 포함할 수 있다. 각 컴퓨팅/처리 장치 내 네트워크 어댑터 카드 또는 네트워크 인터페이스는 상기 통신망으로부터 컴퓨터 판독 가능 프로그램 명령들을 수신하고 그 컴퓨터 판독 가능 프로그램 명령들을 각각의 컴퓨팅/처리 디바이스 내의 컴퓨터 판독 가능 스토리지 매체에 저장하기 위해 전송한다.
[0066] 본 발명의 연산들을 실행하기 위한 컴퓨터 판독 가능 프로그램 명령들은 Smalltalk, C++ 또는 그와 유사 언어 등의 객체 지향 프로그래밍 언어와 "C" 프로그래밍 언어 또는 그와 유사한 프로그래밍 언어 등의 종래의 절차적 프로그래밍 언어들을 포함하여, 하나 또는 그 이상의 프로그래밍 언어들을 조합하여 작성된(written) 어셈블러 명령들, 명령-세트-아키텍처(ISA) 명령들, 머신 명령들, 머신 종속 명령들, 마이크로코드, 펌웨어 명령들, 상태-셋팅 데이터, 집적회로를 위한 구성 데이터, 또는 소스 코드나 목적 코드일 수 있다. 상기 컴퓨터 판독 가능 프로그램 명령들은 전적으로 사용자의 컴퓨터상에서, 부분적으로 사용자의 컴퓨터상에서, 독립형(stand-alone) 소프트웨어 패키지로서, 부분적으로 사용자의 컴퓨터상에서 그리고 부분적으로 원격 컴퓨터상에서 또는 전적으로 원격 컴퓨터나 서버상에서 실행될 수 있다. 위에서 마지막의 경우에, 원격 컴퓨터는 근거리 통신망(LAN) 또는 광역 통신망(WAN)을 포함한 모든 종류의 네트워크를 통해서 사용자의 컴퓨터에 접속될 수 있고, 또는 이 접속은 (예를 들어, 인터넷 서비스 제공자를 이용한 인터넷을 통해서) 외부 컴퓨터에 이루어질 수도 있다. 일부 실시 예들에서, 예를 들어 프로그램 가능 로직 회로, 필드-프로그램 가능 게이트 어레이들(FPGA), 또는 프로그램 가능 로직 어레이들(PLA)을 포함한 전자 회로는 본 발명의 실시 예들을 수행하기 위해 전자 회로를 맞춤화하도록 상기 컴퓨터 판독 가능 프로그램 명령들의 상태 정보를 활용하여 상기 컴퓨터 판독 가능 프로그램 명령들을 실행할 수 있다.
[0067] 여기에서는 본 발명의 실시 예들에 따른 방법들, 장치들(시스템들), 및 컴퓨터 프로그램 제품들의 플로 차트 예시도들 및/또는 블록도들을 참조하여 본 발명의 실시 예들이 기술된다. 플로 차트 예시도들 및/또는 블록도들의 각 블록과 플로 차트 예시도들 및/또는 블록도들 내 블록들의 조합들은 컴퓨터 판독 가능 프로그램 명령들에 의해 구현될 수 있다는 것을 이해할 수 있을 것이다.
[0068] 이들 컴퓨터 판독 가능 프로그램 명령들은 범용 컴퓨터, 특수목적용 컴퓨터, 또는 기타 프로그램가능 데이터 처리 장치의 프로세서에 제공되어 머신(machine)을 생성하고, 그렇게 하여 그 명령들이 상기 컴퓨터 또는 기타 프로그램가능 데이터 처리 장치의 프로세서를 통해서 실행되어, 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현하기 위한 수단을 생성할 수 있다. 이들 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터 판독 가능 스토리지 매체에 저장될 수 있으며, 컴퓨터, 프로그램가능 데이터 처리 장치 및/또는 기타 디바이스들에 지시하여 명령들이 저장된 상기 컴퓨터 판독 가능 스토리지 매체가 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능/동작의 특징들을 구현하는 명령들을 포함하는 제조품(an article of manufacture)을 포함하도록 특정한 방식으로 기능하게 할 수 있다.
[0069] 상기 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터, 기타 프로그램가능 데이터 처리 장치, 또는 다른 디바이스에 로드 되어, 상기 컴퓨터, 기타 프로그램가능 장치 또는 다른 디바이스에서 일련의 동작 단계들이 수행되게 하여 컴퓨터 구현 프로세스를 생성하며, 그렇게 하여 상기 컴퓨터, 기타 프로그램가능 장치, 또는 다른 디바이스 상에서 실행되는 명령들이 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현할 수 있다.
[0070] 도면들 내 플로 차트 및 블록도들은 본 발명의 여러 실시 예들에 따른 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍처, 기능(functionality), 및 연산(operation)을 예시한다. 이와 관련하여, 상기 플로 차트 또는 블록도들 내 각 블록은 상기 명시된 논리적 기능(들)을 구현하기 위한 하나 또는 그 이상의 실행 가능한 명령들을 포함한 모듈, 세그먼트 또는 명령들의 일부분을 나타낼 수 있다. 일부 다른 구현들에서, 상기 블록에 언급되는 기능들은 도면들에 언급된 순서와 다르게 일어날 수도 있다. 예를 들면, 연속으로 도시된 두 개의 블록들은 실제로는 사실상 동시에 실행될 수도 있고, 또는 이 두 블록들은 때때로 관련된 기능에 따라서는 역순으로 실행될 수도 있다. 블록도들 및/또는 순서 예시도의 각 블록, 및 블록도들 및/또는 순서 예시도 내 블록들의 조합들은 특수목적용 하드웨어 및 컴퓨터 명령들의 명시된 기능들 또는 동작들, 또는 이들의 조합들을 수행하는 특수목적용 하드웨어-기반 시스템들에 의해 구현될 수 있다는 것에 또한 주목해야 한다.
[0071] 본 명세서에서 "한 실시 예", "일 실시 예", "예시적인 실시 예" 등에 대한 참조는 설명된 실시 예가 특정 특징, 구조 또는 특성을 포함할 수 있음을 나타내지만, 모든 실시 예는 반드시 특정 기능, 구조 또는 특성을 포함할 필요는 없다. 또한, 이러한 문구들이 반드시 동일한 실시 예를 지칭하는 것은 아니다. 또한, 특정 특징, 구조 또는 특성이 실시 예와 관련하여 설명될 때, 명시적으로 설명되었던지 아니던지 다른 실시 예와 관련하여 그러한 특징, 구조 또는 특성에 영향을 미치는 것은 당업자의 지식 범위 내에 있는 것으로 간주된다.
[0072] 여기에서 사용된 용어들은 단지 본 발명의 특정 실시 예들을 기술할 목적으로 사용된 것이지 한정하려는 의도로 사용된 것은 아니다. 본 명세서에서 사용할 때, 단수 형태 “하나-", "한-", "그-"는 그 컨텍스트에서 그렇지 않은 것으로 명확히 명시되어 있지 않으면, 복수 형태도 또한 포함할 의도로 기술된 것이다. 또한, "포함한다" 및/또는 "포함하는" 이라는 말들은 본 명세서에서 사용될 때, 언급되는 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 및/또는 컴포넌트들의 존재를 명시하지만, 하나 또는 그 이상의 다른 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 컴포넌트들 및/또는 이들의 그룹들의 존재 또는 추가를 배제하는 것은 아니라는 것을 이해할 수 있을 것이다.
[0073] 본 발명의 다양한 실시 예들에 대한 설명들은 예시와 설명의 목적으로 제공되는 것이며, 개시되는 실시 예들이 전부라거나 또는 이들에 한정하려는 의도가 있는 것은 아니다. 이 기술 분야에서 통상의 지식을 가진 자라면 본발명의 범위를 벗어나지 않고 많은 수정들 및 변형들이 있을 수 있다는 것을 알 수 있다. 여기서 사용된 용어들은 본 발명의 실시 예의 원리들, 실제적 응용 또는 시장에서 발견된 기술들에 대한 기술적 개선을 가장 잘 설명하기 위해 또는 여기서 개시된 본 발명의 실시 예들을 이 기술 분야에서 통상의 지식을 가진 자들이 이해할 수 있도록 하기 위해, 선택되었다.

Claims (20)

  1. 데이터 처리 시스템 보안을 유지하기 위한 컴퓨터 구현 방법에 있어서, 상기 방법은:
    데이터 파일의 적어도 하나의 일부와 연관된 메타데이터를, 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 메타데이터 스토리지 유닛으로부터 수신하는 단계;
    상기 메타데이터에 따라 상기 데이터 파일의 적어도 하나의 일부에 대한 우선순위를, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 생성하는 단계; 및
    상기 우선 순위에 따라 상기 데이터 파일의 스캔을, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 수행하는 단계를 포함하고, 상기 메타데이터는 하나 또는 그 이상의 바이러스 표시자들(virus indicators)을 포함하는
    컴퓨터 구현 방법.
  2. 제1항에 있어서, 상기 메타데이터는 상기 데이터 파일이 데이터 저장소(a data store)로 스트림(stream)하는 동안 병렬로 계속적으로 계산되는 체크섬(checksum)과 연관되는
    컴퓨터 구현 방법.
  3. 이전의 항들 중 어느 한 항에 있어서, 상기 방법은:
    상기 스캔에 따라 상기 데이터 파일의 메타데이터를, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 업데이트하는 단계; 및
    추가 처리를 위해 상기 데이터 파일을, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 제공하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  4. 제1항에 있어서, 상기 우선순위는 데이터 파일 메타데이터의 상관관계(a correlation)에 따라 생성되는
    컴퓨터 구현 방법.
  5. 제1항에 있어서, 상기 방법은 상기 데이터 파일을 클린싱 루틴(a cleansing routine)에, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 제공하는 단계(presenting)를 더 포함하는
    컴퓨터 구현 방법.
  6. 이전의 항들 중 어느 한 항에 있어서, 상기 방법은:
    상기 데이터 파일의 일부에 대한 체크섬을 상기 메타데이터 스토리지 유닛 내의 체크섬과, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 일치하는 단계(matching); 및
    상기 일치하는 단계에 응답하여, 데이터 클린싱 루틴을, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 트리거 하는 단계(triggering)를 더 포함하는
    컴퓨터 구현 방법.
  7. 이전의 항들 중 어느 한 항에 있어서, 상기 방법은 상기 데이터 파일의 일부와 연관된 체크섬 메타데이터를, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 업데이트하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  8. 시스템 보안을 유지하기 위한 컴퓨터 구현 방법에 있어서, 상기 방법은:
    업데이트된 바이러스 정의(an updated virus definition)를, 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 수신하는 단계;
    메타데이터 스토리지 유닛으로부터 적어도 하나의 데이터 파일과 연관된 메타데이터를, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 획득하는 단계;
    상기 메타데이터 및 업데이트된 바이러스 정의에 따라 상기 적어도 하나의 데이터 파일에 대한 우선순위를, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 생성하는 단계;
    상기 우선 순위에 따라 데이터 파일을, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 선택하는 단계;
    상기 데이터 파일의 스캔을, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 수행하는 단계;
    상기 스캔에 따라 상기 데이터 파일의 메타데이터를, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 업데이트하는 단계; 및
    추가 처리를 위해 상기 데이터 파일을, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 제공하는 단계를 포함하는
    컴퓨터 구현 방법.
  9. 제8항에 있어서, 상기 메타데이터는 상기 데이터 파일이 데이터 저장소(a data store)로 스트림(stream)하는 동안 병렬로 계속적으로 계산되는 체크섬(checksum)과 연관되는
    컴퓨터 구현 방법.
  10. 시스템 보안을 유지하기 위한 컴퓨터 구현 방법에 있어서, 상기 방법은:
    메타데이터 스토리지 유닛으로부터 적어도 하나의 데이터 파일과 연관된 메타데이터를, 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 획득하는 단계;
    상기 메타데이터에 따라 상기 적어도 하나의 데이터 파일에 대한 우선순위를, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 생성하는 단계;
    상기 우선 순위에 따라 데이터 파일을, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 선택하는 단계;
    상기 데이터 파일의 스캔을, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 수행하는 단계;
    상기 데이터 파일에 대한 공통 취약성 및 노출 점수(a common vulnerabilities and exposures score)를, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 결정하는 단계;
    상기 스캔에 따라 상기 데이터 파일의 메타데이터를, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 업데이트하는 단계; 및
    평가(evaluation)를 위해 시스템 사용자에게 상기 점수를, 상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의해, 제공하는 단계를 포함하는
    컴퓨터 구현 방법.
  11. 제10항에 있어서, 상기 메타데이터는 상기 데이터 파일이 데이터 저장소(a data store)로 스트림(stream)하는 동안 병렬로 계속적으로 계산되는 체크섬(checksum)과 연관되는
    컴퓨터 구현 방법.
  12. 시스템 보안을 유지하기 위한 컴퓨터 시스템에 있어서, 상기 시스템은:
    하나 또는 그 이상의 컴퓨터 프로세서들;
    하나 또는 그 이상의 컴퓨터 판독 가능 스토리지 디바이스들; 및
    상기 하나 또는 그 이상의 컴퓨터 프로세서들에 의한 실행을 위한 하나 또는 그 이상의 컴퓨터 판독 가능 스토리지 디바이스들 상에 저장된 프로그램 명령들을 포함하고, 상기 저장된 프로그램 명령들은:
    적어도 하나의 데이터 파일과 연관된 메타데이터를 메타데이터 스토리지 유닛으로부터 수신하는 단계를 수행하기 위한 프로그램 명령들;
    상기 메타데이터에 따라 상기 적어도 하나의 데이터 파일에 대한 우선순위를 생성하는 단계를 수행하기 위한 프로그램 명령들; 및
    상기 우선 순위에 따라 상기 데이터 파일의 스캔을 수행하는 단계를 수행하기 위한 프로그램 명령들을 포함하고;
    상기 메타데이터는 하나 또는 그 이상의 바이러스 표시자들(virus indicators)을 포함하는
    컴퓨터 시스템.
  13. 제12항에 있어서, 상기 메타데이터는 상기 데이터 파일이 데이터 저장소(a data store)로 스트림(stream)하는 동안 병렬로 계속적으로 계산되는 체크섬(checksum)과 연관되는
    컴퓨터 시스템.
  14. 제12항 또는 제13항에 있어서, 상기 저장된 프로그램 명령들은:
    상기 스캔에 따라 상기 데이터 파일의 메타데이터를 업데이트하는 단계를 수행하기 위한 프로그램 명령들; 및
    추가 처리를 위해 상기 데이터 파일을 제공하는 단계를 수행하기 위한 프로그램 명령들을 더 포함하는
    컴퓨터 시스템.
  15. 제12항 내지 제14항의 항들 중 어느 한 항에 있어서, 상기 우선순위는 데이터 파일 메타데이터의 상관관계(a correlation)에 따라 생성되는
    컴퓨터 시스템.
  16. 제12항 내지 제15항의 항들 중 어느 한 항에 있어서, 상기 저장된 프로그램 명령들은 상기 데이터 파일을 클린싱 루틴(a cleansing routine)에 제공하는 단계(presenting)를 수행하기 위한 프로그램 명령들을 더 포함하는
    컴퓨터 시스템.
  17. 제12항 내지 제16항의 항들 중 어느 한 항에 있어서, 상기 저장된 프로그램 명령들은:
    상기 데이터 파일의 일부에 대한 체크섬을 상기 메타데이터 스토리지 유닛 내의 체크섬과 일치하는 단계(matching)를 수행하기 위한 프로그램 명령들; 및
    상기 일치하는 단계에 응답하여, 데이터 클린싱 루틴을 트리거 하는 단계(triggering)를 수행하기 위한 프로그램 명령들을 더 포함하는
    컴퓨터 시스템.
  18. 제12항 내지 제17항의 항들 중 어느 한 항에 있어서, 상기 저장된 프로그램 명령들은 상기 데이터 파일의 일부와 연관된 체크섬 메타데이터를 업데이트하는 단계를 수행하기 위한 프로그램 명령들을 더 포함하는
    컴퓨터 시스템.
  19. 시스템 보안을 유지하기 위한 컴퓨터 프로그램 제품에 있어서, 상기 컴퓨터 프로그램 제품은:
    제1항 내지 제11항의 항들 중 어느 한 항에 따른 방법을 수행하기 위해 처리 회로에 의해 판독 가능하고 상기 처리 회로에 의해 실행되기 위한 명령들을 저장하는 컴퓨터 판독 가능 스토리지 매체를 포함하는
    컴퓨터 프로그램 제품.
  20. 컴퓨터 프로그램에 있어서, 상기 컴퓨터 프로그램은 컴퓨터 판독 가능 매체에 저장되고 디지털 컴퓨터의 내부 메모리에 로드 할 수 있으며, 상기 프로그램이 컴퓨터에서 실행될 때, 제1항 내지 제11항의 항들 중 어느 한 항의 방법을 수행하기 위한 소프트웨어 코드 부분들을 포함하는
    컴퓨터 프로그램.
KR1020227008799A 2019-10-17 2020-10-14 시스템 보안 유지 KR20220054814A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/655,372 US11093612B2 (en) 2019-10-17 2019-10-17 Maintaining system security
US16/655,372 2019-10-17
PCT/IB2020/059628 WO2021074802A1 (en) 2019-10-17 2020-10-14 Maintaining system security

Publications (1)

Publication Number Publication Date
KR20220054814A true KR20220054814A (ko) 2022-05-03

Family

ID=75492014

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227008799A KR20220054814A (ko) 2019-10-17 2020-10-14 시스템 보안 유지

Country Status (8)

Country Link
US (1) US11093612B2 (ko)
JP (1) JP2022552368A (ko)
KR (1) KR20220054814A (ko)
CN (1) CN114503109B (ko)
AU (1) AU2020366615B2 (ko)
DE (1) DE112020004992T5 (ko)
GB (1) GB2603685B (ko)
WO (1) WO2021074802A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113608689B (zh) * 2021-07-16 2024-04-02 上海德衡数据科技有限公司 基于边缘计算的数据缓存方法及系统
CN116737854B (zh) * 2023-05-26 2024-04-30 上海优异达机电有限公司 基于多源遥感数据的时空数据湖管理系统及其安全防护方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7340774B2 (en) * 2001-10-15 2008-03-04 Mcafee, Inc. Malware scanning as a low priority task
US20070276823A1 (en) 2003-05-22 2007-11-29 Bruce Borden Data management systems and methods for distributed data storage and management using content signatures
US7475427B2 (en) * 2003-12-12 2009-01-06 International Business Machines Corporation Apparatus, methods and computer programs for identifying or managing vulnerabilities within a data processing network
US7519726B2 (en) * 2003-12-12 2009-04-14 International Business Machines Corporation Methods, apparatus and computer programs for enhanced access to resources within a network
US7698369B2 (en) * 2004-05-27 2010-04-13 Strongmail Systems, Inc. Email delivery system using metadata on emails to manage virtual storage
GB0418066D0 (en) * 2004-08-13 2004-09-15 Ibm A prioritization system
US20070043857A1 (en) * 2005-08-16 2007-02-22 Anchiva Systems, Inc. Method and System to Accelerate Data Processing for Mal-ware Detection and Elimination In a Data Network
US9235703B2 (en) * 2005-09-30 2016-01-12 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Virus scanning in a computer system
US10191976B2 (en) 2005-10-26 2019-01-29 Cortica, Ltd. System and method of detecting common patterns within unstructured data elements retrieved from big data sources
MX2008012891A (es) * 2006-04-06 2009-07-22 Smobile Systems Inc Sistema y metodo de deteccion de software dañino para plataformas moviles de acceso limitado.
US8799903B1 (en) * 2007-07-31 2014-08-05 Hewlett-Packard Development Company, L.P. Systems and methods for exchanging runtime functionalities between software stacks
CN101119373B (zh) 2007-09-04 2010-09-08 北京大学 一种网关级流式病毒扫描方法及其系统
US8302193B1 (en) * 2008-05-30 2012-10-30 Symantec Corporation Methods and systems for scanning files for malware
US8640241B2 (en) * 2009-11-16 2014-01-28 Quatum Corporation Data identification system
US8667592B2 (en) 2011-03-15 2014-03-04 Symantec Corporation Systems and methods for looking up anti-malware metadata
US9686293B2 (en) 2011-11-03 2017-06-20 Cyphort Inc. Systems and methods for malware detection and mitigation
US9049235B2 (en) 2012-07-16 2015-06-02 Mcafee, Inc. Cloud email message scanning with local policy application in a network environment
US9607004B2 (en) * 2014-06-18 2017-03-28 International Business Machines Corporation Storage device data migration
KR101587161B1 (ko) * 2014-09-03 2016-01-20 한국전자통신연구원 실시간 네트워크 안티바이러스 수행 장치 및 방법
US10587671B2 (en) 2015-07-09 2020-03-10 Zscaler, Inc. Systems and methods for tracking and auditing changes in a multi-tenant cloud system
US10205735B2 (en) 2017-01-30 2019-02-12 Splunk Inc. Graph-based network security threat detection across time and entities

Also Published As

Publication number Publication date
JP2022552368A (ja) 2022-12-15
CN114503109A (zh) 2022-05-13
US20210117542A1 (en) 2021-04-22
DE112020004992T5 (de) 2022-06-30
US11093612B2 (en) 2021-08-17
GB2603685A (en) 2022-08-10
GB202204979D0 (en) 2022-05-18
AU2020366615B2 (en) 2023-11-23
CN114503109B (zh) 2022-09-23
GB2603685B (en) 2023-04-19
WO2021074802A1 (en) 2021-04-22
AU2020366615A1 (en) 2022-03-31

Similar Documents

Publication Publication Date Title
US11861405B2 (en) Multi-cluster container orchestration
US11042646B2 (en) Selecting data storage based on data and storage classifications
US10255140B2 (en) Fully distributed intelligent rebuild
US20210294896A1 (en) Endpoint detection and response attack process tree auto-play
US10552616B2 (en) Determining and managing application vulnerabilities
US20160321254A1 (en) Unsolicited bulk email detection using url tree hashes
US10623432B2 (en) Mitigating security risks utilizing continuous device image reload with data integrity
US11182097B2 (en) Logical deletions in append only storage devices
WO2022028144A1 (en) Blockchain management of provisioning failures
AU2020366615B2 (en) Maintaining system security
US10599544B2 (en) Determining reboot times of computing nodes
KR20220132639A (ko) 원격-저장 파일들의 예측 제공
US20170126485A1 (en) Providing recommended resolutions for events
WO2022062997A1 (en) Computer file metadata segmentation security system
US11416468B2 (en) Active-active system index management
US10796264B2 (en) Risk assessment in online collaborative environments
US11088906B2 (en) Dependency determination in network environment
US11790082B2 (en) Reasoning based workflow management
US20170329665A1 (en) Community content identification
US20240143748A1 (en) Virtual Machine Image Management System
US20220300486A1 (en) Updating data template changes using metadata
US20160179880A1 (en) System and method for determining whether files are appropriate for addition into a collection

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal