KR101772129B1 - 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템 - Google Patents
콘텐츠 무결성을 검증하는 지능형 스토리지 시스템 Download PDFInfo
- Publication number
- KR101772129B1 KR101772129B1 KR1020160068140A KR20160068140A KR101772129B1 KR 101772129 B1 KR101772129 B1 KR 101772129B1 KR 1020160068140 A KR1020160068140 A KR 1020160068140A KR 20160068140 A KR20160068140 A KR 20160068140A KR 101772129 B1 KR101772129 B1 KR 101772129B1
- Authority
- KR
- South Korea
- Prior art keywords
- file
- storage
- content
- verification
- signature
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Human Computer Interaction (AREA)
- Bioethics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 클라이언트로부터 파일의 저장 또는 변경 요청을 수신하면, 해당 파일의 시그너쳐 등 패턴을 검증하여, 검증된 경우에만 요청을 처리하는, 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템에 관한 것으로서, 응용 프로세스에 요청하는 대상 파일에 대한 파일저장 작업 요청을 받아오는 클라이언트 모듈; 및, 상기 대상 파일의 콘텐츠에 대하여 시그너쳐 및 키워드를 이용하여, 무결성 검증을 수행하고, 무결성이 검증되면 해당 파일을 스토리지에 저장하게 하는 저장 서비스 모듈을 포함하는 구성을 마련한다.
상기와 같은 시스템에 의하여, 스토리지 시스템 자체에서 파일을 변경할 때 파일의 콘텐츠의 정합성을 검증함으로써, 콘텐츠가 감염된 내용으로 업데이트 되는 것을 방지할 수 있고, 불필요한 스토리지 공간 사용을 미연에 방지할 수 있다.
상기와 같은 시스템에 의하여, 스토리지 시스템 자체에서 파일을 변경할 때 파일의 콘텐츠의 정합성을 검증함으로써, 콘텐츠가 감염된 내용으로 업데이트 되는 것을 방지할 수 있고, 불필요한 스토리지 공간 사용을 미연에 방지할 수 있다.
Description
본 발명은 클라이언트로부터 파일의 저장 또는 변경 요청을 수신하면, 해당 파일의 시그너쳐 등 패턴을 검증하여, 검증된 경우에만 요청을 처리하는, 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템에 관한 것이다.
일반적으로, 종래기술에 따른 스토리지는 응용 프로그램에서 제공하는 파일(이하 컨텐츠라 칭함)을 단순히 저장 관리하는 수동형 디바이스이다. 따라서 스토리지에 현재 보관하고 있거나 지금 저장 중인 컨텐츠가 무용하거나, 나아가 유해하더라도, 스토리지 디바이스 차원에서 대응할 수 있는 방법이 없다.
대신, 컨텐츠의 유해성이나 유용성 식별 기능은 별도의 응용 프로그램(예를 들어 백신 프로그램 등 제3자 응용프로그램)에 의해 수행되어 왔다[특허문헌 1]. 즉, 대부분의 시스템에서, 컨텐츠의 유해성이나 유용성을 식별하는 기능은 그 스토리지 디바이스를 사용하는 응용프로그램, 또는 해당 기능을 전문적으로 담당하는 백신 프로그램에 일임되어 왔다. 따라서 스토리지 시스템에서 자체적으로 저장되는 파일에 대한 검증작업을 수행하지 않고 있다.
그러나 이러한 백신류의 프로그램들은 이미 유해한 컨텐츠가 스토리지 디바이스에 저장된 후, 후처리 형태로 식별작업을 수행하고 있다. 더군다나, 대부분 실행가능 한 컨텐츠(.Exe,.dll,.기타스크립트)에 국한하여 동작하고 있다. 따라서 저장 과정 중에 어떠한 악성코드가 개입하여 컨텐츠를 오염시키는 경우, 해당 어플리케이션에서는 이를 인지하지 못한다. 그래서 사용자는 아무 조치를 취할 수 없으므로, 그 문제점이 더욱 심각하다.
예를 들어, 도 1에서 보는 바와 같이, MS워드에서 문서 "C:\a.docx"를 편집하고 저장하는 때, 악성코드가 MS워드의 문서 저장 루틴에 개입하여, 저장하려는 문서를 변경하고 암호화할 수 있다. 즉, MS워드 실행 프로세스(word.exe)가 쓰기(write) 시스템콜을 호출하면, 악성코드가 쓰기(write) 시스템콜을 후킹하여, 문서 파일의 내용에 자신이 원하는 내용을 암호화하여 저장한다. 이때, MS워드는 이를 인지할 수 없고, 또한, 사용자도 문서 "C:\a.docx"가 암호화되고 있고 특별한 조치없이 다시 해당 문서를 열수 없다는 사실을 인지할 수 없다.
도 1의 예는 쓰기(write) 시스템 콜을 후킹하는 악성코드의 예를 설명한 것이다. 그외에도, 악성코드는 다양한 종류가 존재할 수 있다. 즉, 악성코드는 별도의 은닉된 실행 프로그램이나 응용프로그램 확장(dll) 또는 실행형 스크립트 등 다양한 형태로 존재할 수 있다. 즉, 은닉된 프로그램이 이미 저장되어 있는 컨텐츠에 접근하여 암호화 하거나 파괴할 수 있다. 또한, 악성코드는 랜섬웨어와 같이 내용을 암호화하거나, 악의적으로 임의의 데이터를 파일에 기록하여 컨텐츠를 파괴하는 경우도 있다.
또한, 악성코드는 특성상 그 크기나 은닉성 유지 때문에 복잡한 로직을 내장하기에는 한계가 있다. 그래서 악성코드는 대부분 컨텐츠 전체를 위변조하는 특성을 갖는다. 악성코드에 의해 문서가 암호화되거나 변조되면, 그 정도에 따라 파일이 열리지 않거나, 내용이 변경된다. 또한, 악성스크립트 코드가 삽입된 문서는 그 자체로 악성코드에 대한 숙주 역활을 하게 되는 등 그 영향이 다양하게 나타날 수 있다.
상기와 같은 문제는, 결국 스토리지 디바이스가 어플리케이션으로부터 전달받은 콘텐츠를 어떠한 검증이나 여과과정 없이 수동적으로 처리하기 때문에 발생한 문제라고 볼 수 있다. 만약, 스토리지 디바이스 또는 스토리지 시스템이 쓰기(Write) 기능 수행 중에 컨텐츠의 정합성을 검증해 낼 수 있다면(즉, 악성코드가 암호화해서 스토리지 디바이스의 쓰기(Write) 기능에 전달한 컨텐츠가 정합성이 맞지 않다고 판단할 수 있다면), 기존 컨텐츠가 오염된 내용으로 업데이트 되는 것을 막을 수 있다. 이를 통해, 불필요한 스토리지 공간 사용을 미연에 방지할 수 있으며, 사용자 인지성을 향상시켜 추후 발생할 수 있는 많은 문제들을 최소화 할 수 있다.
본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 클라이언트로부터 파일의 저장 또는 변경 요청을 수신하면, 해당 파일의 시그너쳐 등 패턴을 검증하여, 검증된 경우에만 요청을 처리하는, 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템을 제공하는 것이다.
또한, 본 발명의 목적은 클라이언트로부터 파일의 저장 또는 변경 요청 시, 해당 파일을 처리하는 응용 프로그램을 확인하고, 응용 프로그램에 따른 파일의 특징을 나타내는 패턴으로 해당 파일을 검증하는, 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템을 제공하는 것이다.
상기 목적을 달성하기 위해, 본 발명은 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템에 관한 것으로서, 응용 프로세스에 요청하는 대상 파일에 대한 파일저장 작업 요청을 받아오는 클라이언트 모듈; 및, 상기 대상 파일의 콘텐츠에 대하여 시그너쳐 및 키워드를 이용하여, 무결성 검증을 수행하고, 무결성이 검증되면 해당 파일을 스토리지에 저장하게 하는 저장 서비스 모듈을 포함하는 것을 특징으로 한다.
또한, 본 발명은 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템에 있어서, 상기 저장 서비스 모듈은, 상기 클라이언트 모듈로부터 상기 대상 파일에 대한 파일저장 작업의 요청을 수신하는 작업요청 수신부; 상기 대상 파일의 콘텐츠에 대하여 시그너쳐 검증을 수행하되, 상기 대상 파일의 콘텐츠 내에 사전에 정해진 시그너쳐가 존재하면 시그너쳐 검증을 통과하는 것으로 판단하는 시그너쳐 검증부; 상기 대상 파일의 콘텐츠에 대하여 키워드 검증을 수행하되, 상기 대상 파일의 콘텐츠가 키워드들을 논리식으로 구성한 검증 키워드 조건을 만족하면, 상기 키워드 검증을 통과하는 것으로 판단하는 상기 키워드 검증부, 및, 상기 시그너쳐 검증부 또는 상기 키워드 검증부에 의하여 상기 대상 파일이검증을 통과하는 경우에 한하여, 상기 대상 파일의 파일저장 작업을 수행하는 파일 저장부를 포함하는 것을 특징으로 한다.
또한, 본 발명은 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템에 있어서, 상기 시그너쳐 검증부는 파일 형식에 대응하는 고유한 코드인 시그너쳐를 사전에 보유하고, 상기 대상 파일의 파일 형식을 확인하고, 확인된 파일 형식에 대응하는 시그너쳐를 가져와서, 가져온 시그너쳐가 상기 대상 파일의 콘텐츠 내에 존재하는지 여부로 시그너쳐를 검증하는 것을 특징으로 한다.
또한, 본 발명은 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템에 있어서, 상기 검증 키워드 조건은 피연산자로서 키워드로 구성되고, 연산자로서 논리 연산자로 구성되는 논리식인 것을 특징으로 한다.
또한, 본 발명은 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템에 있어서, 상기 검증 키워드 조건은 단위 논리식이 발견되는 횟수를 더 포함하고, 발견 횟수 이상으로 단위 논리식이 해당 콘텐츠에 발견되는 경우에 조건이 만족되는 것을 특징으로 한다.
또한, 본 발명은 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템에 있어서, 상기 스토리지는 상기 사용자 단말의 저장매체이고, 상기 클라이언트 모듈은 사용자 단말 상의 운영체제의 시스템 API 모듈을 후킹하여, 상기 응용 프로세스의 파일저장 작업의 명령을 가로채어, 상기 파일저장 작업 요청을 받아오고, 상기 저장 서비스 모듈은 상기 사용자 단말의 저장매체의 드라이브를 직접 제어하여, 상기 대상 파일을 저장하거나 상기 대상 파일의 이름을 변경하는 것을 특징으로 하는 것을 특징으로 한다.
또한, 본 발명은 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템에 있어서, 상기 스토리지는 상기 사용자 단말의 저장매체이고, 상기 클라이언트 모듈은 사용자 단말 상의 운영체제의 가상 파일시스템을 제공하는 가상 드라이버이고, 상기 응용 프로세스가 상기 대상 파일의 파일저장 작업을 수행시키기 위하여 상기 운영체제의 시스템 API 모듈을 요청하면, 상기 가상 드라이버로 전달되어, 상기 대상 파일의 파일저장 작업 요청을 받아오고, 상기 저장 서비스 모듈은 상기 사용자 단말의 저장매체의 드라이브를 직접 제어하는 것을 특징으로 한다.
또한, 본 발명은 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템에 있어서, 상기 스토리지는 네트워크 상에 연결된 네트워크 저장매체이고, 상기 클라이언트 모듈은 사용자 단말 상의 운영체제의 가상 파일시스템을 제공하는 가상 드라이버이고, 상기 가상 드라이버는 상기 네트워크 저장매체를 가상 파일시스템으로 제공하는 드라이브이고, 상기 저장 서비스 모듈은 상기 스토리지를 저장매체로 운영하는 서버에 설치되어 실행되고, 상기 클라이언트 모듈은 상기 응용 프로세스가 상기 대상 파일의 파일저장 작업을 수행시키기 위하여 상기 운영체제의 시스템 API 모듈을 요청하면, 상기 가상 드라이버로 전달되어, 상기 대상 파일의 파일저장 작업 요청을 받아오고, 상기 파일저장 작업의 요청과, 상기 대상 파일을 상기 저장 서비스 모듈로 전송하는 것 특징으로 한다.
상술한 바와 같이, 본 발명에 따른 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템에 의하면, 스토리지 시스템 자체에서 파일을 변경할 때 파일의 콘텐츠의 정합성을 검증함으로써, 콘텐츠가 감염된 내용으로 업데이트 되는 것을 방지할 수 있고, 불필요한 스토리지 공간 사용을 미연에 방지할 수 있는 효과가 얻어진다. 이를 통해, 스토리지에서 사용자가 등록한 포맷의 콘텐츠를 바이러스, 랜섬웨어 등 악성코드로부터 안전하게 보관할 수 있다.
또한, 본 발명에 따른 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템에 의하면, 스토리지 시스템에 파일이 변경되거나 저장될 때 그 콘텐츠의 정합성이 검증되므로, 사용자가 저장시 즉시 파일의 문제를 인지할 수 있고, 이를 통해, 추후 발생할 수 있는 많은 문제점을 초기에 대응하여 최소화할 수 있는 효과가 얻어진다.
또한, 본 발명에 따른 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템에 의하면, 파일 종류에 따라 파일 헤더에 기록되는 패턴 검증이나, 요청하는 응용 프로그램에 따른 파일의 특성을 고려한 검증을 수행함으로써, 종래 이미 알려진 악성코드 외에도 알려지지 않은 악성코드에 의한 오염도 검출할 수 있는 효과가 얻어진다.
도 1은 종래기술에 따른 응용 프로그램에서의 파일 저장 흐름과 악성 코드에 의한 파일 감염 흐름을 도시한 도면.
도 2는 본 발명에 따른 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템을 실시하기 위한 전체 시스템의 구성에 대한 블록도.
도 3 내지 도 5는 본 발명에 따른 지능형 스토리지 시스템을 실시하기 위하여 전체 시스템을 구현하는 예시도.
도 6은 본 발명의 일실시예에 따른 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템의 구성에 대한 블록도.
도 7은 본 발명의 일실시예에 따른 파일 내용에 포함된 시그너쳐의 예시도.
도 2는 본 발명에 따른 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템을 실시하기 위한 전체 시스템의 구성에 대한 블록도.
도 3 내지 도 5는 본 발명에 따른 지능형 스토리지 시스템을 실시하기 위하여 전체 시스템을 구현하는 예시도.
도 6은 본 발명의 일실시예에 따른 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템의 구성에 대한 블록도.
도 7은 본 발명의 일실시예에 따른 파일 내용에 포함된 시그너쳐의 예시도.
이하, 본 발명의 실시를 위한 구체적인 내용을 도면에 따라서 설명한다.
또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.
먼저, 본 발명에 따른 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템을 실시하기 위한 전체 시스템을 도 2를 참조하여 설명한다.
도 2에서 보는 바와 같이, 본 발명을 실시하기 위한 전체 시스템은 응용 프로세스(10), 클라이언트 모듈(30), 저장 서비스 모듈(40), 및 스토리지(50)로 구성된다. 또한, 응용 프로세스(10)에서 파일에 대한 작업을 하기 위해 파일을 임시로 저장하는 임시저장소(20)를 더 포함하여 구성될 수 있다.
먼저, 응용 프로세스(10)는 워드프로세서, 프리젠테이션 도구, 동영상 재생 프로그램 등 파일 또는 콘텐츠를 처리하는 응용 프로그램의 프로세스(process)로서, 상기 응용 프로그램이 실행 중인 프로세스를 말한다.
응용 프로세스(10)는 사용자의 명령에 따라, 특정 파일(또는 콘텐츠)를 새로 생성하여 새로 작성한 내용을 저장하거나, 파일을 가져와서 그 내용을 갱신하는 등의 파일저장 작업을 수행한다. 또는 응용 프로세스(10)는 현재 작성 중인 파일을 임시 파일에 저장하였다가, 파일의 저장 명령이나 종료 명령에 의하여 임시 파일의 파일명을 사용자가 정의하는 파일 명으로 수정(rename)함으로써 작성 중인 파일을 저장한다.
따라서 응용 프로세스(10)에서 파일저장 작업으로 수행하는 명령은 저장(write) 명령과, 이름변경(또는 파일명 변경)(rename) 명령으로 구성된다. 이들 명령을 파일작업 명령이라고 하고, 이들 명령을 수행하는 작업을 파일저장 작업이라고 부르기로 한다.
특히, 이름변경(rename) 명령은 파일의 내용을 임시로 저장하는 임시파일의 이름을, 저장하고자 하는 본래 파일의 이름으로 변경하는 명령이다. 이때, 임시파일의 이름은 임의로 작성되고, 그 확장자로서 응용 프로세스(10)에서만 사용되는 고유한 확장자를 사용하거나, 확장자 자체를 사용하지 않을 수 있다.
다음으로, 임시저장소(20)는 응용 프로세스(10)가 해당 파일(또는 콘텐츠)을 임시로 저장하는 공간으로서, 해당 파일의 내용을 수정하거나 생성할 때 임시로 그 내용을 저장하는 공간이다. 즉, 임시저장소(20)는 최종적으로 스토리지(50)에 저장 또는 갱신하기 직전까지 파일을 임시로 저장하는 공간이다.
임시저장소(20)는 컴퓨터의 메모리나, 로컬 디스크 등으로 구현될 수 있다.
다음으로, 클라이언트 모듈(30)은 응용 프로세스(10)의 파일저장 작업에 대한 요청을 직접 받아, 서비스 모듈(40)로 하여금 요청된 파일저장 작업을 수행하게 하는 모듈 또는 프로그램이다.
구체적으로, 응용 프로세스(10)에서 쓰기(write)나 갱신(update), 또는 파일명 변경(rename) 등 파일저장 작업을 요청하면, 클라이언트 모듈(30)은 해당 작업 요청을 직접 수신 또는 후크(hook)한다. 그래서 클라이언트 모듈(30)은 해당 요청을 저장 서비스 모듈(40)로 전달한다.
다음으로, 저장 서비스 모듈(40)은 저장매체(50)를 직접 명령 또는 제어할 수 있는 모듈로서, 클라이언트 모듈(30)로부터 파일저장 작업에 대한 요청을 수신하여, 요청된 파일저장 작업을 수행하는 모듈(또는 프로그램)이다. 서비스 모듈(40)은 스토리지(50)를 직접 제어할 수 있고, 파일의 쓰기(write), 갱신(update), 파일명 변경(rename) 등 파일에 대한 단위 파일저장 명령을 저장매체(50)에 명령함으로써 해당 작업을 수행한다.
다음으로, 스토리지(50)는 데이터를 저장하는 저장공간으로서, 하드 디스크, SSD 디스크, 네트워크 디스크, 네트워크 드라이브, 원격 스토리지, 클라우드 스토리지 등 데이터를 저장할 수 있는 저장매체를 말한다.
즉, 스토리지(50)는 컴퓨터 단말의 디스크와 같이 단일 시스템 내의 저장매체일 수도 있고, 네트워크 상에 설치된 드라이브 등 네트워크 상 원격의 저장매체일 수도 있다.
다음으로, 본 발명의 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템을 실시하기 위한 전체 시스템의 구체적인 구현의 예들을 도 3 내지 도 5를 참조하여 설명한다.
먼저, 도 3에서 보는 바와 같이, 본 발명에 따른 지능형 스토리지 시스템은 사용자 단말에 설치되는 단일한 프로그램으로서 구현될 수 있다. 사용자 단말은 개인용 컴퓨터(PC), 노트북, 태블릿PC, 패블릿, PDA, 스마트폰 등으로서, 운영체제에 의해 운영되어 컴퓨팅 기능을 가지는 컴퓨터 단말이다. 일반적으로, 운영체제는 사용자 프로세스들이 실행되는 사용자 계층과, 운영 시스템에서 실행되는 커널 계층으로 구분되어 운영된다.
또한, 도 3과 같이, 스토리지(50)는 사용자 단말의 하드 디스크 또는 SSD 디스크 등 통상의 데이터를 저장하는 저장매체이다. 스토리지(50)에는 파일들이 저장된다.
또한, 응용 프로세스(10)는 사용자 계층(운영체제 상 사용자 계층)에서 실행되는 프로세스이다. 또한, 임시저장소(20)는 사용자 계층에 할당된 사용자 단말의 메모리 공간 등이 될 수 있다.
응용 프로세스(10)는 파일을 저장하거나 파일이름을 변경할 때에는 커널 계층에서 제공하는 시스템 API 모듈을 호출한다. 즉, 응용 프로세스(10)는 커널 계층의 시스템 콜(system call)을 호출하여, 파일저장 또는 파일명 변경 등 파일저장 작업을 요청한다. 통상적으로는, 시스템콜 등 시스템 API 모듈은 사용자 계층의 프로세스 요청에 따라, 해당 파일의 저장 또는 이름 변경 등 파일저장 작업을 처리해준다.
클라이언트 모듈(30)은 시스템콜 등 시스템 API 모듈을 후킹(hooking)하여, 응용 프로세스(10)가 요청한 시스템콜을 대신 처리해준다. 즉, 클라이언트 모듈(30)은 저장 서비스 모듈(40)을 통해 파일저장 작업을 처리하게 한다. 여기서 후킹이라 함은 응용 프로세스(10)가 시스템 API 모듈(시스템콜)을 호출하는 명령을 가로채어, 시스템 API 모듈 대신 응용 프로세스(10)의 시스템콜 명령을 수행하는 것을 말한다.
클라이언트 모듈(30)은 커널 계층에서 실행되는 프로세스(또는 프로그램)일 수도 있고, 시스템콜을 후킹(hooking) 하는 기술만을 커널 계층에서 실행하고, 나머지 기능들을 사용자 계층에서 실행할 수 있다.
또한, 클라이언트 모듈(30)은 시스템 API 모듈을 호출하는 응용 프로세스를 확인하여, 대상 파일의 파일저장 작업을 요청하는 응용 프로세스의 식별정보를 가져올 수 있다. 예를 들어, 운영체제의 프로세스 테이블 등을 참조하여, 현재 시스템콜을 호출하는 프로세스를 식별한다. 그리고, 해당 프로세스의 프로그램 명칭이나 설명 등을 참조하여, 해당 응용 프로세스(10)의 식별정보를 추출할 수 있다.
저장 서비스 모듈(40)은 스토리지(50)를 직접 제어하는 스토리지 드라이버를 직접 제어함으로써, 스토리지(50)를 직접 제어한다. 저장 서비스 모듈(40)은 클라이언트 모듈(30)의 요청에 따라, 요청된 파일저장 작업을 수행하도록, 스토리지(50) 또는 스토리지(50)의 드라이버를 제어한다.
다음으로, 도 4에서 보는 바와 같이, 본 발명에 따른 지능형 스토리지 시스템은 사용자 단말에 설치되는 단일한 프로그램으로서 구현될 수 있다. 앞서 실시예와 같이, 사용자 단말은 운영체제에 의해 운영되어 컴퓨팅 기능을 가지는 컴퓨터 단말이고, 운영체제는 사용자 프로세스들이 실행되는 사용자 계층과, 운영 시스템에서 실행되는 커널 계층으로 구분되어 운영된다.
또한, 도 4와 같이, 스토리지(50)는 사용자 단말의 하드 디스크 또는 SSD 디스크 등 통상의 데이터를 저장하는 저장매체이다. 스토리지(50)에는 파일들이 저장된다. 또한, 응용 프로세스(10)는 사용자 계층(운영체제 상 사용자 계층)에서 실행되는 프로세스이다. 또한, 임시저장소(20)는 사용자 계층에 할당된 사용자 단말의 메모리 공간 등이 될 수 있다.
또한, 클라이언트 모듈(30)은 가상 파일 시스템(또는 가상 드라이브)을 제공하는 가상 드리이버로서 구현된다. 드라이버는 사용자 단말의 운영체제 내에서 외부 입출력 장치를 제어하는 시스템 프로그램이다. 즉, 응용 프로세스(10) 입장에서 클라이언트 모듈(30)이 제공하는 가상 드라이브(또는 가상 파일 시스템)는 하드 디스크나 SSD 등 저장매체와 같이, 운영체제의 파일 시스템으로 나타난다.
따라서 응용 프로세스(10)는 가상 파일시스템 내의 폴더(또는 디렉토리) 내에 파일을 저장하는 것으로 명령하면, 시스템 API(시스템콜 등)가 호출되고, 운영체제는 해당 시스템콜을 가상 드라이버로 전달한다. 따라서 클라이언트 모듈(30)은 응용 프로세스(10)의 파일저장 작업 요청을 직접 받는다.
또한, 저장 서비스 모듈(40)은 스토리지(50)의 저장매체를 제어하는 드라이버(실제 드라이브)로 구현되거나, 앞서 도 3의 예와 같이 드라이브를 직접 제어하는 모듈이다.
클라이언트 모듈(30)은 가상 드라이브에서 받은 파일저장 작업의 요청을 저장 서비스 모듈(40)로 전송하고, 저장 서비스 모듈(40)은 스토리지(50)의 실제 드라이브를 제어하여, 해당 파일저장 작업을 처리한다.
또한, 앞서 도 3의 예와 같이, 클라이언트 모듈(30)은 시스템 API 모듈을 호출하는 응용 프로세스를 확인하여, 대상 파일의 파일저장 작업을 요청하는 응용 프로세스의 식별정보를 가져올 수 있다. 즉, 운영체제의 프로세스 테이블 등을 참조하여, 현재 시스템콜을 호출하는 프로세스를 식별한다. 그리고 해당 프로세스의 프로그램 명칭이나 설명 등을 참조하여, 해당 응용 프로세스(10)의 식별정보를 추출할 수 있다.
또한, 다음으로, 도 5에서 보는 바와 같이, 본 발명에 따른 지능형 스토리지 시스템은 네트워크에 연결된 사용자 단말과 스토리지 서버 형태로 구현될 수 있다. 사용자 단말과 스토리지 서버는 서로 네트워크로 연결되어 데이터를 송수신한다.
사용자 단말은 개인용 컴퓨터(PC), 노트북, 태블릿PC, 패블릿, PDA, 스마트폰 등으로서, 운영체제에 의해 운영되어 컴퓨팅 기능을 가지는 컴퓨터 단말이다. 앞서 설명한 바와 같이, 사용자 단말 상의 운영체제는 사용자 계층과 커널 계층 등으로 구분되나, 이하에서 설명의 편의를 위하여 사용자 단말 상에서 실행되는 것으로 설명한다. 또한, 사용자 단말에는 하드 디스크 또는 SSD 디스크 등 저장매체를 구비한다. 이를 로컬 디스크라 부르기로 한다.
또한, 응용 프로세스(10)는 사용자 단말 상에서 실행되는 프로세스이다. 또한, 임시저장소(20)는 사용자 단말의 메모리 공간 또는 로컬 디스크 등이 될 수 있다. 응용 프로세스(10)는 파일의 수정 등 작업을 수행할 때, 그 중간 결과를 임시저장소(20)에 저장한다.
응용 프로세스(10)는 사용자 단말 상에서 실행되는 프로세스 또는 프로그램이다. 응용 프로세스(10)가 파일저장 작업을 수행하기 위하여 시스템 API 모듈을 호출하면, 클라이언트 모듈(30)이 상기 파일저장 작업의 요청을 수신한다(또는 받아온다).
이때, 일례로서, 클라이언트 모듈(30)은 사용자 단말의 운영체제 상에서 응용 프로세스(10)의 시스템 API 모듈 등을 후킹하여, 원래 시스템콜 대신 파일저장 작업의 요청을 받아온다.
또는 다른 예로서, 클라이언트 모듈(30)은 운영체제의 드라이버로서 설치될 수 있다. 즉, 클라이언트 모듈(30)은 운영체제 내에서 하나의 가상 파일 시스템을 구현하고, 상기 가상 파일 시스템을 하나의 드라이브로서 운영하고, 이를 위해, 운영체제 내에 가상 파일 시스템을 위한 드라이버가 설치된다. 이 경우, 응용 프로세스(10)는 클라이언트 모듈(30)의 가상 파일 시스템 내에 파일을 저장하도록 명령하고, 클라이언트 모듈(30)은 가상파일 시스템의 드라이버로서, 해당 저장 명령을 직접 수신하게 된다. 이때, 가상파일 시스템은 스토리지 서버에서 운영하는 파일 시스템을 가상화 한 것이다.
또한, 앞서 도 3 또는 도 4의 예와 같이, 클라이언트 모듈(30)은 시스템 API 모듈을 호출하는 응용 프로세스를 확인하여, 대상 파일의 파일저장 작업을 요청하는 응용 프로세스의 식별정보를 가져올 수 있다.
또한, 클라이언트 모듈(30)은 사용자 단말 상에 설치되는 프로그램으로서, 응용 네트워크를 통해, 저장 서비스 모듈(40) 또는 스토리지 서버로 프로세스(10)의 파일저장 작업 요청을 전송한다.
즉, 스토리지 서버는 네트워크 상에 데이터를 저장하는 서비스를 제공하는 서버로서, 네트워크 스토리지, 클라우드 스토리지, NAS(Network-Attached Storage) 등의 서비스를 제공하는 서버이다. 구체적으로, 다량의 콘텐츠가 저장관리되는 서버형 스토리지(NAS, CAS, FTP Drive..)와 클라우드형 스토리지(예Hadoop, 네이버드라이브, 아마존드라이브, 원드라이브) 등이다.
스토리지 서버는 실제로 파일을 저장하는 스토리지(50)와, 파일저장 작업의 요청을 수신하여, 해당 요청에 따라 파일저장 작업을 처리해준다. 이때, 서비스 모듈(40)은 스토리지(50)를 제어하는 서비스 프로그램으로서, 네트워크 상에서 파일 저장 또는 갱신 요청에 대하여, 해당 요청을 처리해주는 서비스 어플리케이션이다.
상기와 같이, 본 발명에 따른 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템은 사용자 단말 상에 설치되는 프로그램 또는, 사용자 단말과 서버로 구성되는 네트워크 상의 시스템으로 구현될 수 있다.
다음으로, 본 발명의 일실시예에 따른 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템을 도 6를 참조하여, 보다 구체적으로 설명한다.
도 6에서 보는 바와 같이, 본 발명에 따른 지능형 스토리지 시스템은 응용 프로세스(10)에 요청하는 파일저장 작업 요청을 받아오는 클라이언트 모듈(30)과, 상기 파일저장 작업 요청에 대하여, 해당 파일에 대하여 콘텐츠 무결성 검증을 수행하고, 무결성이 검증되면 해당 파일을 저장하게 하는 저장 서비스 모듈(40)로 구성된다.
먼저, 클라이언트 모듈(30)은 응용 프로세스(10)에서 파일저장 작업을 요청하면, 해당 파일저장 작업의 요청을 받아온다. 앞서 설명한 바와 같이, 클라이언트 모듀(30)의 구현 방식에 따라 상기 파일저장 작업의 요청을 받아오는 방식이 다를 수 있다. 예를 들어, 클라이언트 모듈(30)은 응용 프로세스(10)의 저장 명령을 위해 시스템콜 API 를 호출할 때, 시스템콜 API를 후킹하여, 파일저장 작업을 가로채서 받아올 수 있다. 또는 클라이언트 모듈(30)이 하나의 가상 드라이브를 구현하는 경우, 응용 프로세스(10)는 가상 드라이브의 저장공간에 직접 저장 명령을 수행하고, 클라이언트 모듈(30)은 가상 드라이버에서 직접 저장 명령을 받아올 수 있다.
또한, 클라이언트 모듈(30)은 시스템 API 모듈을 호출하는 응용 프로세스(10)의 식별 정보를 추출한 경우, 이를 저장 서비스 모듈(40)로 전송할 수 있다.
다음으로, 저장 서비스 모듈(40)은 저장할 파일(또는 이름 변경의 파일)에 대하여 무결성을 검사하고, 직접 스토리지(50)를 제어하여 파일을 저장하거나 파일 이름을 변경한다.
구체적으로, 도 6에서 보는 바와 같이, 저장 서비스 모듈(40)은 클라이언트 모듈(30)로부터 파일저장 작업의 요청을 수신하는 작업요청 수신부(41), 파일저장 작업의 대상인 파일의 내용에 대하여 시그너쳐 검증을 수행하는 시그너쳐 검증부(42), 상기 파일의 내용에 대하여 키워드 검증을 수행하는 키워드 검증부(43), 및, 검증된 파일에 대하여 파일을 저장하거나 그 이름을 변경하는 파일 저장부(44)로 구성된다. 또한, 추가적으로, 시그너쳐나 키워드 등 검증에 필요한 데이터를 저장하는 저장부(45)를 더 포함하여 구성된다.
먼저, 작업요청 수신부(41)는 클라이언트 모듈(30)로부터 파일저장 작업의 요청을 수신한다. 이때, 작업요청 수신부(41)는 파일저장 작업의 대상인 파일(이하 대상 파일 또는 콘텐츠)에 대하여 그 위치를 수신하거나, 그 파일 자체 또는 콘텐츠를 수신한다. 즉, 저장 서비스 모듈(40)이 사용자 단말 상에 설치되어 실행되는 경우에는 상기 대상 파일의 위치만을 수신하고, 스토리지 서버 상에 구현되는 경우에는 상기 대상 파일 자체를 수신한다.
앞서 설명한 바와 같이, 파일저장 작업은 대상 파일 또는 콘텐츠를 저장하는 작업 또는 대상 파일의 파일 이름을 변경하는 작업이다. 대상 파일의 내용(또는 콘텐츠)을 변경하여 원래 파일을 대상 파일로 변경하는 경우는, 대상 파일을 저장하는 작업으로 간주한다. 즉, 대상 파일로 변경하는 작업은 기존의 파일을 삭제하고 상기 대상 파일을 기존의 파일 이름으로 저장하는 것과 같기 때문이다.
또한, 바람직하게는, 작업요청 수신부(41)는 대상 파일의 파일저장 작업을 요청하는 응용 프로세스의 식별정보를 받아올 수 있다.
다음으로, 시그너쳐 검증부(42)는 대상 파일에 대하여 시그너쳐 검증을 수행한다.
상기 대상 파일의 내용, 즉, 콘텐츠들은 파일의 형식에 따라 각각 고유한 포맷을 가지고 있다. 특히, 포맷의 기본이 되는 내용이 파일 시그니처(File Signature)이다. 파일 시그니처는 파일의 가장 처음 부분(또는 헤더 부분)에 위치하는 특정 바이트들로 파일 포맷을 구분하기 위해 사용된다.
예를 들어, 그림 파일 종류(JPEG, PNG, TIFF, GIF 등) 또는 파일 포맷 별로 고유한 포맷을 가지고 있다. 도 7의 예와 같이, JPEG파일의 경우, “FF D8 FF E0”의 시그니처를 갖는다. JPEG의 경우 디지털 카메라로 캡쳐한 파일과 구분하기 위해 “FF D8 FF E1” 시그니처도 사용한다. 시그니처를 매직 넘버(magic number)라고 사용하는 경우도 있다.
상기와 같이, 일반적으로 절대 다수의 알려진 컨텐츠 포맷(또는 대상 파일의 포맷)에는 시그니처라 불리는 고유 식별코드가 존재한다. 즉, 각 파일 또는 콘텐츠들은 자신들의 파일 형식(또는 콘텐츠 형식)에 따라 자신 형식에 고유한 코드로 구성되는 시그너쳐를 가진다.
시그너쳐 검증부(42)는 대상 파일의 형식을 확인하고, 대상 파일의 콘텐츠 내에 해당 파일 형식의 시그너쳐가 존재하는지를 검사한다. 만약, 시그너쳐 검증부(42)는 해당 파일 형식의 시그너쳐가 존재하면, 정상적인 콘텐츠로 판단한다. 그러나 해당 파일 형식의 시그너쳐가 존재하지 않으면, 악성코드에 의해 감염된 파일 또는 콘텐츠일 가능성이 있다.
즉, 시그너쳐를 통해, 스토리지(50)에서는 해당 컨텐츠의 무결성을 검증할 수 있다. 콘텐츠를 저장할 때, Car.jpeg 파일의 헤더 부분에 기록하려고 하는 바이트 스트림이 “FF D8 FF E0”을 포함하지 않는다면 해당 Car.jpeg파일은 원래 잘못된 파일이거나, 저장과정 중 감염된 파일이라고 의심할 수 있기 때문이다.
특히, 시그너처가 존재하는 대부분의 콘텐츠 파일 형식들, 예를 들어, .pptx, .doc, .jpg ……)은 알려진 시그너처가 존재하므로, 이들 시그너처를 검증함으로써, 파일 감염 여부를 판단할 수 있다.
한편, 일반적으로, 각 대상 파일은 자신의 형식에 따라 고유한 파일의 확장자로 파일의 이름을 설정한다. 즉, 파일의 이름은 파일을 구별하기 위한 파일 고유 이름과 확장자로 구성된다. 이때, 다수의 경우, 파일의 확장자는 해당 파일의 형식을 나타낸다. 그러나 파일 종류의 일부 또는 소수는 파일 형식에 따른 확장자를 사용하지 않은 경우도 있다.
따라서 시그너쳐 검증부(42)는 대상 파일의 확장자를 통해 파일의 형식을 확인하고, 해당 파일의 형식에 맞는 시그너쳐를 매칭시켜 시그너쳐 존재 여부를 판단한다. 이를 위해, 시그너쳐 검증부(42)는 파일의 확장자와 파일 형식의 매핑 데이터(또는 매핑 테이블)을 보유하고, 파일 형식과 해당 파일 형식에 대한 시그너쳐의 데이터를 보유한다.
또한, 바람직하게는, 시그너쳐 검증부(42)는 파일 대상에 대한 파일저장 작업이 파일의 이름을 변경하는 경우에는, 변경할 이름, 즉, 새로운 이름의 확장자에 따라 파일 형식을 추출한다. 일반적으로, 응용 프로세스(10)가 임시 파일에 내용을 수정하다가, 최종적으로 임시 파일 이름을 저장하려는 이름으로 변경함으로써, 원하는 파일의 콘텐츠를 저장한다. 이 경우, 임시 파일의 확장자는 잘 알려진 확장자가 아니므로, 이를 통해 콘텐츠의 형식을 알 수 없기 때문이다.
즉, 파일이름 변경(Rename)의 경우는 대상파일의 확장자를 기준으로 한다. A.tmp ->a.pptx로 파일이름 변경(Rename)을 시도하는 경우 A.tmp파일은 pptx의 시그너처를 갖고 있어야 파일이름 변경(Rename)이 가능하다. 또한, b.tmp ->b.cpp로 파일이름 변경(Rename)하는 경우 b.tmp 파일은 .cpp의 파일 형식으로 판단한다.
상기와 같은 시그너쳐 검증을 통한 무결성 검증은 콘텐츠가 이름 변경(Rename)되는 경우에도 수행되어야 한다. 상당수의 응용 소프트웨어(또는 어플리케이션)에서의 콘텐츠 저장 과정은 임시파일을 만든 후 임시파일에 수정된 컨텐츠를 저장하고 최종적으로 원본 파일명으로 이름 변경(Rename)하는 형태로 이루어지기 때문이다.
또한, 시그너쳐 검증부(42)는 파일저장 작업을 요청한 응용 프로세스의 식별정보를 통해, 해당 응용 프로세스의 응용 프로그램(또는 응용 소프트웨어)이 사용하는 파일 형식들과 매칭하여, 해당 파일 형식을 추측하거나 검증할 수 있다.
다음으로, 키워드 검증부(43)는 시그너쳐 검증에 실패한 경우 또는 시그너쳐 검증을 할 수 없는 경우, 대상 파일의 콘텐츠에 검증 키워드가 존재하는지로 무결성(정상적인 콘텐츠)을 검증한다. 바람직하게는, 키워드 검증부(43)는 해당 파일 형식의 검증 키워드 조건을 만족하는지로 무결성을 검증한다. 즉, 검증 키워드 조건을 만족하면, 정상적인 콘텐츠(또는 무결성을 갖는 것)로 판단한다.
검증 키워드는 해당 파일 형식의 콘텐츠인 경우 필히 포함되는 키워드이다. 특히, 바람직하게는, 검증 키워드 조건은 키워드 조건식과, 발견 횟수로 구성된다. 키워드 조건식은 키워드를 피연산자로 하고 연산자는 논리 연산자로 하여 구성되는 논리식이다.
예를 들어, 검증 키워드 조건식은 다음과 같이 표시할 수 있다.
[수학식 1]
< if or switch or struct or typedef or ... >
< if and then >
여기서, if, switch, struct, typedef는 각각 키워드이고, or, and 는 논리 연산자이다.
첫번째 검증 키워드 조건에 의하면, 해당 콘텐츠 내에서 if, switch, struct, typedef 등 적어도 1개가 발견되면, 검증 키워드 조건은 만족된다. 또한, 두번째 검증 키워드 조건에 의하면, 해당 콘텐츠 내에서 if 와 then이 모두 발견되어야 조건을 만족한다.
일부 파일의 형식인 경우, 별도로 시그너처가 없는 컨텐츠 포멧의 경우가 있다. 예를 들어 프로그램 소스(Source) 파일인 .java(자바 파일), .cpp(c 언어 파일), .vb(베이직 스크립트 파일) 등의 확장자를 갖는 파일의 콘텐츠는 파일의 헤더 내에 시그너쳐가 존재하지 않는다. 따라서 이 경우에는 시그너쳐에 의하여 무결성 검증을 수행할 수 없다. 즉, 시그너쳐 검증부(42)는 대상 파일의 콘텐츠에 대하여 시그너쳐 검증을 수행할 수 없다.
대신, 상기와 같은 프로그램 소스 파일인 경우, 해당 프로그래밍 언어에서 이용하는 키워드 또는 그 조합들이 반드시 포함되어야 한다. 따라서 반드시 포함되어야 하는 키워드들 또는 그 키워드들의 조합들이 해당 파일의 콘텐츠 내에 존재하는지 여부로 무결성을 검증할 수 있다. 예를 들어 .java 파일에는 java 프로그램 문법상 “if”, ”void”, ”else”.. 와 같은 키워드가 전부는 아니더라도 일부는 나타나야 한다.
또한, .txt, .inf 등 특정한 텍스트 파일의 경우에도 시그너쳐가 없다. 상기와 같은 텍스트 파일인 경우에도, 파일 형식에 따라 반드시 포함되어야 하는 키워드들이 존재한다. 이들을 상기와 같은 검증 키워드 조건으로 구성할 수 있다.
바람직하게는, 키워드 검증부(43)는 파일 형식과, 이에 대응하는 검증 키워드 조건으로 구성된 키워드 검증 데이터를 보유하고, 상기 키워드 검증 데이터를 참조하여, 해당 파일의 콘텐츠의 무결성을 검증한다.
또한, 바람직하게는, 키워드 검증부(43)는 상기 검증 키워드 조건의 최소 반복 횟수(발견 횟수)를 설정하여, 상기 조건식을 만족하는 경우가 최소 발견 횟수 이상 발견되어야 조건을 만족하는 것으로 판단한다.
예를 들어, 앞서 수학식 1의 첫번째 조건에서 반복횟수가 3회라고 설정하면, 수학식 1의 조건이 최소한 3회 이상 만족되어야 한다. 즉, if, switch, struct, typedef 등의 키워드가 최소한 3회 이상 나타나야 한다.
다음으로, 파일 저장부(44)는 시그너쳐 검증부(42)나 키워드 검증부(43)에서 검증된 대상 파일(또는 콘텐츠)에 대해서만, 스토리지(50)에 저장하거나 이름을 변경하는 것을 허용한다. 그리고 허용된 대상 파일(또는 콘텐츠)을 스토리지(50)에 저장한다.
그리고 파일 저장부(44)는 검증되지 않은 대상 파일 또는 콘텐츠에 대해서는, 사용자에게 저장할지 여부를 문의하고, 사용자의 저장 명령(또는 파일이름 변경 명령)에 의하여 검증되지 않더라도 스토리지(50)에 저장(또는 파일이름을 변경)할 수 있다.
이상, 본 발명자에 의해서 이루어진 발명을 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
10 : 응용 프로세스 20 : 임시저장소
30 : 클라이언트 모듈
40 : 저장 서비스 모듈 41 : 작업요청 수신부
42 : 시그너쳐 검증부 43 : 키워드 검증부
44 : 파일저장부 45 : 저장부
50 : 스토리지
30 : 클라이언트 모듈
40 : 저장 서비스 모듈 41 : 작업요청 수신부
42 : 시그너쳐 검증부 43 : 키워드 검증부
44 : 파일저장부 45 : 저장부
50 : 스토리지
Claims (8)
- 삭제
- 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템에 있어서,
응용 프로세스에 요청하는 대상 파일에 대한 파일저장 작업 요청을 받아오는 클라이언트 모듈; 및,
상기 대상 파일의 콘텐츠에 대하여 시그너쳐 및 키워드를 이용하여, 무결성 검증을 수행하고, 무결성이 검증되면 해당 파일을 스토리지에 저장하게 하는 저장 서비스 모듈을 포함하고,
상기 저장 서비스 모듈은,
상기 클라이언트 모듈로부터 상기 대상 파일에 대한 파일저장 작업의 요청을 수신하는 작업요청 수신부;
상기 대상 파일의 콘텐츠에 대하여 시그너쳐 검증을 수행하되, 상기 대상 파일의 콘텐츠 내에 사전에 정해진 시그너쳐가 존재하면 시그너쳐 검증을 통과하는 것으로 판단하는 시그너쳐 검증부;
상기 대상 파일의 콘텐츠에 대하여 키워드 검증을 수행하되, 상기 대상 파일의 콘텐츠가 키워드들을 논리식으로 구성한 검증 키워드 조건을 만족하면, 상기 키워드 검증을 통과하는 것으로 판단하는 상기 키워드 검증부, 및,
상기 시그너쳐 검증부 또는 상기 키워드 검증부에 의하여 상기 대상 파일이검증을 통과하는 경우에 한하여, 상기 대상 파일의 파일저장 작업을 수행하는 파일 저장부를 포함하는 것을 특징으로 하는 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템.
- 제2항에 있어서,
상기 시그너쳐 검증부는 파일 형식에 대응하는 고유한 코드인 시그너쳐를 사전에 보유하고, 상기 대상 파일의 파일 형식을 확인하고, 확인된 파일 형식에 대응하는 시그너쳐를 가져와서, 가져온 시그너쳐가 상기 대상 파일의 콘텐츠 내에 존재하는지 여부로 시그너쳐를 검증하는 것을 특징으로 하는 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템.
- 제2항에 있어서,
상기 검증 키워드 조건은 피연산자로서 키워드로 구성되고, 연산자로서 논리 연산자로 구성되는 논리식인 것을 특징으로 하는 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템.
- 제4항에 있어서,
상기 검증 키워드 조건은 단위 논리식이 발견되는 횟수를 더 포함하고, 발견 횟수 이상으로 단위 논리식이 해당 콘텐츠에 발견되는 경우에 조건이 만족되는 것을 특징으로 하는 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템.
- 제2항 내지 제5항 중 어느 한 항에 있어서,
상기 스토리지는 사용자 단말의 저장매체이고,
상기 클라이언트 모듈은 사용자 단말 상의 운영체제의 시스템 API 모듈을 후킹하여, 상기 응용 프로세스의 파일저장 작업의 명령을 가로채어, 상기 파일저장 작업 요청을 받아오고,
상기 저장 서비스 모듈은 상기 사용자 단말의 저장매체의 드라이브를 직접 제어하여, 상기 대상 파일을 저장하거나 상기 대상 파일의 이름을 변경하는 것을 특징으로 하는 것을 특징으로 하는 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템.
- 제2항 내지 제5항 중 어느 한 항에 있어서,
상기 스토리지는 사용자 단말의 저장매체이고,
상기 클라이언트 모듈은 사용자 단말 상의 운영체제의 가상 파일시스템을 제공하는 가상 드라이버이고, 상기 응용 프로세스가 상기 대상 파일의 파일저장 작업을 수행시키기 위하여 상기 운영체제의 시스템 API 모듈을 요청하면, 상기 가상 드라이버로 전달되어, 상기 대상 파일의 파일저장 작업 요청을 받아오고,
상기 저장 서비스 모듈은 상기 사용자 단말의 저장매체의 드라이브를 직접 제어하는 것을 특징으로 하는 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템.
- 제2항 내지 제5항 중 어느 한 항에 있어서,
상기 스토리지는 네트워크 상에 연결된 네트워크 저장매체이고,
상기 클라이언트 모듈은 사용자 단말 상의 운영체제의 가상 파일시스템을 제공하는 가상 드라이버이고, 상기 가상 드라이버는 상기 네트워크 저장매체를 가상 파일시스템으로 제공하는 드라이브이고,
상기 저장 서비스 모듈은 상기 스토리지를 저장매체로 운영하는 서버에 설치되어 실행되고,
상기 클라이언트 모듈은 상기 응용 프로세스가 상기 대상 파일의 파일저장 작업을 수행시키기 위하여 상기 운영체제의 시스템 API 모듈을 요청하면, 상기 가상 드라이버로 전달되어, 상기 대상 파일의 파일저장 작업 요청을 받아오고, 상기 파일저장 작업의 요청과, 상기 대상 파일을 상기 저장 서비스 모듈로 전송하는 것을 특징으로 하는 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160068140A KR101772129B1 (ko) | 2016-06-01 | 2016-06-01 | 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160068140A KR101772129B1 (ko) | 2016-06-01 | 2016-06-01 | 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101772129B1 true KR101772129B1 (ko) | 2017-08-29 |
Family
ID=59759975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160068140A KR101772129B1 (ko) | 2016-06-01 | 2016-06-01 | 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101772129B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190095056A (ko) * | 2018-02-06 | 2019-08-14 | 한남대학교 산학협력단 | 랜섬웨어 탐지와 예방을 위한 시스템 및 이용 방법 |
CN112347061A (zh) * | 2020-11-27 | 2021-02-09 | 中国农业银行股份有限公司 | 一种文件上传方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100918370B1 (ko) * | 2008-05-23 | 2009-09-21 | 주식회사 나우콤 | 웹관리시스템 및 그 방법 |
-
2016
- 2016-06-01 KR KR1020160068140A patent/KR101772129B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100918370B1 (ko) * | 2008-05-23 | 2009-09-21 | 주식회사 나우콤 | 웹관리시스템 및 그 방법 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190095056A (ko) * | 2018-02-06 | 2019-08-14 | 한남대학교 산학협력단 | 랜섬웨어 탐지와 예방을 위한 시스템 및 이용 방법 |
KR102111556B1 (ko) | 2018-02-06 | 2020-05-15 | 한남대학교 산학협력단 | 랜섬웨어 탐지와 예방을 위한 시스템 및 이용 방법 |
CN112347061A (zh) * | 2020-11-27 | 2021-02-09 | 中国农业银行股份有限公司 | 一种文件上传方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2811404B1 (en) | Virtual desktop implementation method, device and system | |
CN114730269B (zh) | 基于用户提交代码的用于对象存储服务的用户特定数据操纵系统 | |
US10326792B2 (en) | Virus intrusion route identification device, virus intrusion route identification method, and program | |
EP3107024B1 (en) | System and method of restoring modified data | |
US20180357133A1 (en) | Anti-malware protection using volume filters | |
US9317681B2 (en) | Information processing apparatus, information processing method, and computer program product | |
US20150154398A1 (en) | Optimizing virus scanning of files using file fingerprints | |
WO2006132770A2 (en) | Changing the personality of a device | |
US11023538B2 (en) | System and methods for dynamic generation of object storage datasets from existing file datasets | |
WO2014164987A1 (en) | Methods for dynamic mobile application behavior modification subject to a behavior policy | |
US10635816B2 (en) | Restricting reprogramming of a redirected USB device | |
US20170132022A1 (en) | File-processing device for executing a pre-processed file, and recording medium for executing a related file-processing method in a computer | |
WO2019236609A1 (en) | Remote application access in a virtual desktop infrastructure environment | |
US11113393B2 (en) | Providing security features in write filter environments | |
KR101772129B1 (ko) | 콘텐츠 무결성을 검증하는 지능형 스토리지 시스템 | |
EP3574428B1 (en) | Safe data access through any data channel | |
US9053108B2 (en) | File system extended attribute support in an operating system with restricted extended attributes | |
US8141153B1 (en) | Method and apparatus for detecting executable software in an alternate data stream | |
US10241696B1 (en) | Securely launching files downloaded to potentially unsafe locations on a computer system | |
JP6404771B2 (ja) | ログ判定装置、ログ判定方法、およびログ判定プログラム | |
US11656892B1 (en) | Sequential execution of user-submitted code and native functions | |
WO2009104720A1 (ja) | リソース利用制御システム、リソース利用制御方法及びリソース利用制御用プログラム | |
KR101089792B1 (ko) | 애플리케이션 가상화를 위한 보안 제공방법 | |
EP2645293A2 (en) | Method and apparatus for controlling operations performed by a mobile computing device | |
EP3834104A1 (en) | Handling file commit and commit-delete operations in an overlay optimizer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |