KR101636638B1 - Anti-malware protection operation with instruction included in an operand - Google Patents
Anti-malware protection operation with instruction included in an operand Download PDFInfo
- Publication number
- KR101636638B1 KR101636638B1 KR1020147026115A KR20147026115A KR101636638B1 KR 101636638 B1 KR101636638 B1 KR 101636638B1 KR 1020147026115 A KR1020147026115 A KR 1020147026115A KR 20147026115 A KR20147026115 A KR 20147026115A KR 101636638 B1 KR101636638 B1 KR 101636638B1
- Authority
- KR
- South Korea
- Prior art keywords
- controller
- instruction
- data
- read
- malware
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- 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/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- 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
- G06F21/80—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 in storage media based on magnetic or optical technology, e.g. disks with sectors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Virology (AREA)
- Storage Device Security (AREA)
Abstract
안티 멀웨어 보호를 RAID와 같은 다수의 저장 장치를 갖는 시스템으로 확장하기 위한 시스템 및 방법이 개시된다. 실시예에서, 신뢰 연결은 호스트와 다수의 저장 장치의 컨트롤러 사이에 설정될 수 있다. 신뢰 연결은 호스트에 의해 안티 멀웨어 보호 관련 동작을 재전송함으로써 저장 장치상의 멀웨어 감염된 위치를 보존하기 위해 멀웨어에 의한 시도를 약화시키는 다양한 정보 암호화 기술을 사용할 수 있다. 호스트와 다수의 저장 장치의 컨트롤러 사이의 암호화 및 신뢰 연결을 통해서, 안티 바이러스 및/또는 안티 멀웨어 소프트웨어(이하, AVS)는 암호화된 안티 멀웨어 보호 관련 동작을 다수의 저장 장치의 컨트롤러에 송신하여, 멀웨어에 의한 검출 및/또는 전환을 극복할 수 있다. 다른 실시예가 설명되고 청구될 수 있다.A system and method for extending anti-malware protection to a system having multiple storage devices, such as RAID, is disclosed. In an embodiment, a trusted connection may be established between the host and the controller of the plurality of storage devices. Trusted connections can use a variety of information encryption techniques that weaken attempts by malware to preserve the malware infected location on the storage device by retransmitting anti-malware protection related actions by the host. Through encryption and trusted connections between the host and controllers of multiple storage devices, anti-virus and / or anti-malware software (AVS) sends encrypted anti-malware protection related actions to controllers of multiple storage devices, Can be overcome. Other embodiments may be described and claimed.
Description
본 개시는 일반적으로 데이터 처리의 기술분야에 관한 것이다. 특히, 본 개시는 안티 멀웨어 보호를 다수의 저장 장치를 갖는 시스템, 특히 RAID(redundant array independent disk) 시스템으로 확장하는 것에 관한 것이다.
This disclosure generally relates to the technical field of data processing. In particular, this disclosure relates to extending anti-malware protection to systems with multiple storage devices, particularly redundant array independent disk (RAID) systems.
멀웨어(malware)(또는 악성 코드(malicious code))는 문제를 발생하거나 컴퓨터를 손상시킬 수 있는 다양한 타입의 소프트웨어를 지칭하기 위해 사용되는 포괄적 용어이다. 멀웨어라는 용어는 바이러스, 웜(worm), 트로이 목마, 매크로 바이러스, 루트키트(rootkit) 멀웨어, 및 백도어(backdoor)를 포함할 수 있다. 시간의 경과에 따라, 멀웨어는 점점 더 은밀해지고 공격 목표를 지향하도록 진화해 왔다.Malware (or malicious code) is a generic term used to refer to various types of software that can cause problems or damage a computer. The term malware can include viruses, worms, Trojan horses, macro viruses, rootkit malware, and backdoors. Over time, malware has evolved to become more and more secretive and to target attacking goals.
일부 경우에, 멀웨어는 커널 모듈(예를 들어, 루트키트(rootkit))을 감염시켜 코어 운영 체제 안으로 숨음으로써 더욱 은밀해져 왔다. 루트키트, 특히 관리자 또는 고 레벨 특권(예를 들어, 인텔 아키텍처 프로세서들의 경우에 링 0 특권)으로 실행하는 것들은 전통적인 안티 바이러스 솔루션(anti-virus solution) 또는 안티 멀웨어 솔루션(anti-malware solution) (이하, AVS)에 의해 감지하기 매우 어렵거나 거의 불가능하다. 예를 들어, 관리자 특권을 갖는 루트키트 및 거기에 숨겨진 다른 멀웨어는 저장 장치에 멀웨이를 보존하기 위해 AVS로부터의 질의를 차단하고 부정확한 정보를 AVS에 제공할 수 있다.
In some cases, malware has become more secretive by infecting kernel modules (for example, rootkits) and hiding them into the core operating system. Those running as rootkits, especially administrators or high-level privileges (for example, ring 0 privileges in the case of Intel architecture processors), require either a traditional anti-virus solution or an anti-malware solution , AVS). ≪ / RTI > For example, a rootkit with administrator privileges and other malware hidden in it can block queries from AVS and save incorrect information to AVS to preserve the way to the storage device.
본 발명의 실시예는 동일한 참조 번호가 동일한 요소를 지칭하는 첨부 도면의 도형으로 제한이 아닌 예로서 예시된다.
도 1은 본 개시의 다양한 실시예를 실시하는 사용에 적절한 컴퓨팅 장치의 블록도이다.
도 2는 본 개시의 방법의 다양한 실시예에 대한 동작을 예시하는 흐름도이다.
도 3은 본 개시의 다양한 실시예를 실시하는 사용에 적절한 컴퓨팅 배열의 블록도이다.
도 4는 본 개시의 다양한 실시예에 따른 신뢰 판독 프로세스를 예시하는 스윔 레인 다이어그램(swim lane diagram)이다.
도 5는 본 개시의 다양한 실시예에 따른 신뢰 판독 프로세스를 예시하는 스윔 레인 다이어그램이다.
도 6은 본 개시의 다양한 실시예에 따른 신뢰 채널 프로세스의 유지를 예시하는 스윔 레인 다이어그램이다.Embodiments of the invention are illustrated by way of example and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to like elements.
1 is a block diagram of a computing device suitable for use to implement various embodiments of the present disclosure.
Figure 2 is a flow chart illustrating operation for various embodiments of the method of the present disclosure.
3 is a block diagram of a computing arrangement suitable for use in implementing various embodiments of the present disclosure.
Figure 4 is a swim lane diagram illustrating a trust reading process in accordance with various embodiments of the present disclosure.
5 is a swim lane diagram illustrating a trust reading process in accordance with various embodiments of the present disclosure.
6 is a swim lane diagram illustrating retention of a trust channel process in accordance with various embodiments of the present disclosure.
본 개시의 실시예는 안티 멀웨어 보호를 다수의 저장 장치를 갖는 시스템으로 확장하는 것에 관한 것일 수 있다. 실시예에서, 신뢰 연결이 호스트와 다수의 저장 장치 사이에 설정될 수 있다. 신뢰 연결은 호스트에 의해 안티 멀웨어 보호 관련 동작을 재전송함으로써 저장 장치상의 멀웨어 감염 위치를 보존하기 위해 멀웨어에 의한 시도를 약화시키는 다양한 정보 암호화 기술을 사용할 수 있다. 호스트와 다수의 저장 장치의 컨트롤러 사이의 암호화 및 신뢰 연결을 통해서 안티 바이러스 및/또는 안티 멀웨어 소프트웨어(이하, AVS)는 암호화된 안티 멀웨어 보호 관련 동작을 다수의 저장 장치의 컨트롤러에 송신하여 멀웨어에 의한 검출 및/또는 전환을 극복할 수 있다.Embodiments of the present disclosure may relate to extending anti-malware protection to systems with multiple storage devices. In an embodiment, a trusted connection may be established between the host and multiple storage devices. Trusted connections can use a variety of information encryption techniques that weaken attempts by malware to preserve the malware infection location on the storage device by retransmitting anti-malware protection related actions by the host. Through encryption and trusted connections between the host and the controllers of multiple storage devices, the anti-virus and / or anti-malware software (AVS) sends the encrypted anti-malware protection related actions to the controllers of the multiple storage devices, Detection and / or conversion can be overcome.
일 실시예에 따르면, 컨트롤러는 호스트 장치로부터 제 1 어드레스 및 피연산자를 갖는 제 1 명령어를 수신할 수 있다. 제 1 명령어는 명목상 안티 멀웨어 보호 관련 동작과 연관될 수 있고, 제 1 어드레스는 다수의 저장 장치의 제 1 하나 이상의 저장 위치를 지칭할 수 있다. 게다가, 컨트롤러는 다수의 저장 장치의 제 2 하나 이상의 저장 위치에서 동작될 제 2 명령어를 피연산자로부터 복구할 수 있다. 그 다음, 컨트롤러는 안티 멀웨어 보호 관련 동작을 실시하기 위해 제 2 하나 이상의 저장 위치에서 동작하도록 제 2 명령어를 실행할 수 있다.According to one embodiment, the controller may receive a first instruction from the host device having a first address and an operand. The first instruction may be associated with a nominal antimalware protection related operation, and the first address may refer to a first one or more storage locations of the plurality of storage devices. In addition, the controller may recover from the operand a second instruction to be operated in a second one or more storage locations of the plurality of storage devices. The controller may then execute a second instruction to operate at a second one or more storage locations to effect anti-malware protection related operations.
예시적 실시예의 다양한 양태는 그의 작업의 본질을 다른 당업자에게 전달하기 위해 당업자에 의해 통상 이용되는 용어를 사용하여 설명될 것이다. 그러나, 일부 대체 실시예는 설명된 양태의 일부를 사용하여 실시될 수 있다는 점이 당업자에게 분명할 것이다. 설명의 목적을 위해, 특정 수, 재료, 및 구성은 예시적 실시예의 철저한 이해를 제공하기 위해 진술된다. 그러나, 대체 실시예는 특정 상세 없이 실시될 수 있다는 점이 당업자에게 분명할 것이다. 다른 경우에, 잘 알려진 특징은 예시적 실시예를 모호하게 하지 않도록 생략되거나 간략화된다.Various aspects of the exemplary embodiments will be described using terms commonly used by those skilled in the art to convey the nature of the operation to others skilled in the art. However, it will be apparent to those skilled in the art that some alternative embodiments may be practiced using some of the described aspects. For purposes of explanation, specific numbers, materials, and configurations are set forth in order to provide a thorough understanding of the exemplary embodiments. However, it will be apparent to those skilled in the art that alternative embodiments may be practiced without the specific details. In other instances, well-known features may be omitted or simplified in order not to obscure the exemplary embodiment.
게다가, 다양한 동작은 차례로 예시적 실시예를 이해할 시에 가장 도움이 되는 방식으로 다수의 개별 동작으로서 설명될 것이지만, 설명의 순서는 이러한 동작이 반드시 순서 의존적인 것을 암시하는 것으로서 해석되지 않아야 한다. 특히, 이러한 동작은 표현의 순서로 수행될 필요는 없다.In addition, while the various operations are, in turn, described as a number of separate operations in a manner that is most helpful in understanding the exemplary embodiment, the order of description should not be construed as implying that such operations are necessarily order dependent. In particular, such operations need not be performed in the order of presentation.
"일 실시예에서"라는 구가 반복적으로 사용된다. "일반적으로"라는 구는 동일한 실시예를 언급하지 않지만, 언급할 수도 있다. "포함하는(comprising)", "갖는(having)", 및 "구비하는(including)"이라는 용어는 상황이 다르게 지시되지 않으면, 동의어이다. 구 "A/B"는 "A 또는 B"를 의미한다. 구 "A 및/또는 B"는 "(A), (B), 또는 (A 및 B)"를 의미한다. 구 "A, B 및 C 중 적어도 하나"는 "(A), (B), (C), (A 및 B), (A 및 C), (B 및 C) 또는 (A, B 및 C)"를 의미한다. 구 "(A) B"는 "(B) 또는 (A B)"를 의미하며, 즉 A는 선택적이다.The phrase "in one embodiment" is used repeatedly. The phrase "generally" does not refer to the same embodiment, but may be mentioned. The terms "comprising," "having," and "including" are synonymous unless the context indicates otherwise. The phrase "A / B" means "A or B". The phrase "A and / or B" means "(A), (B), or (A and B) ". At least one of the phrases "A, B, and C" means "A, B, C, A and B, A and C, B and C, " The phrase "(A) B" means "(B) or (A B) ", that is, A is optional.
도 1은 본 개시의 실시예를 실시하는데 적절한 컴퓨팅 장치(100)를 예시한다. 아래에 더 상세히 설명되는 바와 같이, 컴퓨팅 장치(100)는 컴퓨팅 장치(100)의 하나 이상의 저장 장치를 감염시킬 수 있는 멀웨이에 대해 회복력이 있도록 구성될 수 있다. 도시된 바와 같이, 컴퓨팅 장치(100)는 서로 결합된 호스트 CPU(central processing unit)(102), 시스템 메모리(104), 칩셋(106), 및 다중 장치 컨트롤러(108)를 포함할 수 있다. 다중 장치 컨트롤러(108)는 하나 이상의 저장 장치(110a, 110b)(집합적으로 110)에 차례로 결합될 수 있다.FIG. 1 illustrates a
호스트 CPU(102)는 복수의 명령어를 인출하고 실행하도록 구성된 다양한 단일 코어 또는 멀티 코어 마이크로프로세서 중 하나 이상일 수 있다. 호스트 CPU(102)는 예를 들어 컴퓨팅 장치(100)의 다양한 구성요소의 동작 및 상호 연결을 용이하게 하도록 구성된 운영 체제의 명령어를 실행할 수 있다. 호스트 CPU(102)는 또한 운영 체제에 의해 론칭되는 애플리케이션의 명령어를 실행할 수 있다. 일 실시예에 따르면, 호스트 CPU(102)는 캘리포니아주 산타클라라 소재의 Intel® 코포레이션에서 입수 가능한 Intel® Core i3, Intel® Core i5 및 Intel® Core i7 마이크로프로세서와 같은 멀티 코어 프로세서이다.The
시스템 메모리(104)는 호스트 CPU(102)에 통신 가능하게 결합될 수 있다. 시스템 메모리(104)는 호스트 CPU(102)에 의해 실행되는 명령어, 및 실행되는 명령어와 연관된 데이터를 수신하고 저장하도록 구성될 수 있다. 시스템 메모리(104)는 비휘발성 및/또는 휘발성 메모리를 포함할 수 있다. 실시예에서, 시스템 메모리(104)는 DRAM(dynamic random access memory), SDRAM(synchronous dynamic random access memory), ROM(read only memory), 플래시 메모리 등 중 하나 이상을 포함할 수 있다.The system memory 104 may be communicatively coupled to the
칩셋(106)은 시스템 메모리(104), 다양한 입/출력 유닛 및 호스트 CPU(102) 사이의 신호를 결합할 수 있다. 실시예에서, 칩셋(106)은 메모리 컨트롤러를 포함할 수 있다. 다른 실시예에서, 칩셋(106)은 호스트 CPU(102)와 통합되는 DMI(direct media interface)에 대한 상보적 인터페이스를 포함할 수 있다.The
칩셋(106)은 통신 링크(112)를 통해 신호를 다중 장치 컨트롤러(108)에 송신하고 그것으로부터 신호를 수신할 수 있다. 통신 링크(112)는 다양한 통신 인터페이스 중 어느 하나일 수 있다. 예를 들어, 통신 링크(112)는 SATA(Serial Advance Technology Attachment), IDE(Integrated Development Environment), PCI(peripheral Component Interconnect), SCS(Small Computer System Interface), HyperTransport™, InfiniBand® 등과 같지만 이에 제한되지 않는 제어 버스, 어드레스 버스, 및 데이터 버스를 갖는 컴퓨터 버스 인터페이스일 수 있다. 대안으로, 통신 링크(112)는 이더넷과 같은 점 대 점 네트워크 연결일 수 있거나, IEEE(Institute of Electrical Electronic Engineers) 802.11 표준 중 하나를 따르는 것과 같은 무선 연결일 수 있다.The
도 1을 계속 참조하면, 다중 장치 컨트롤러(108)는 저장 장치(110)에 관한 명령어를 수신하고 응답하기 위해 통신 링크(112)를 통해 호스트 CPU(102)와 통신하도록 구성될 수 있다. 실시예에서, 다중 장치 컨트롤러(108)는 통신 링크(112)를 지원하는 커넥터를 통해 컴퓨팅 장치(100)에 통합되는 카드일 수 있다. 일 실시예에 따르면, 다중 장치 컨트롤러(108)는 칩셋(106)에 통합될 수 있다. 다른 실시예에 따르면, 다중 장치 컨트롤러(108)는 모듈러 네트워킹 랙 또는 캐비닛에 의해 실시되는 독립형 장치일 수 있고 네트워크 연결을 통해 칩셋(106)과 통신한다.With continuing reference to FIG. 1, the
실시예에서, 다중 장치 컨트롤러(108)는 안티 멀웨어 관련 동작을 수행하기 위해 신뢰 연결을 통해 호스트 CPU(102)와 (칩셋(106)에 의해) 통신하도록 구성된다. 실시예에서, 다중 장치 컨트롤러(108)는 도시된 바와 같이 서로 결합된 버스(114), 인터페이스 컨트롤러(116), 버퍼(118), 패리티 생성기(120), RAM(random access memory)(122), 마이크로컨트롤러(124), 컨트롤러 펌웨어(126), 및 하나 이상의 저장 장치 컨트롤러(128a, 128b)(집합적으로 128)를 포함한다.In an embodiment, the
버스(114)는 다중 장치 컨트롤러(108)의 수개의 구성요소 사이에서 저 저항 연결을 제공하도록 구성될 수 있다. 인터페이스 컨트롤러(116)는 통신 링크(112)에 사용되는 프로토콜을 다중 장치 컨트롤러(108)의 구성요소와 호환 가능한 프로토콜로 변환하기 위해 버스(114)를 통신 링크(112)에 통신 가능하게 결합하도록 구성될 수 있다. 버퍼(118)는 버스(114)에 결합되고 마이크로컨트롤러(124)에 일시적 저장을 제공하도록 구성될 수 있다. 패리티 생성기(120)는 버스(114)에 결합될 수 있고 마이크로컨트롤러(124)에 의해 처리된 데이터에 대해 패리티 데이터를 생성시킴으로써 암호화된 통신을 마이크로컨트롤러(124)에 의해 지원하도록 구성될 수 있다. 실시예에서, 패리티 데이터는 또한 하나 이상의 저장 장치(110)상에 저장될 수 있다. 실시예에서, 패리티 생성기(120)는 본 개시의 다양한 실시예에 따른 전용 또는 분산 패리티를 생성시키도록 구성될 수 있다. RAM(122)은 버스(114)에 결합될 수 있고, 명령어 및 그것의 피연산자를 저장하고 제공함으로써 마이크로컨트롤러(124)를 지원하고, 데이터를 호스트 CPU(102)에 송신하고 이로부터 데이터를 수신하는 것을 용이하게 하고, 데이터를 하나 이상의 저장 장치(110)에 저장하고 이로부터 데이터를 검색하는 것을 용이하게 하기 위해 동작 가능하도록 구성될 수 있다. RAM(122)은 본 개시의 수개의 실시예에 따른 SRAM, DRAM, SDRAM, 또는 임의의 다양한 타입의 랜덤 액세스 메모리 중 하나일 수 있다.The
마이크로컨트롤러(124)는 호스트 CPU(102)로부터 명령어 및 그것의 피연산자를 수신하고 명령어 및 그것의 피연산자를 하나 이상의 저장 장치 컨트롤러(128)에 송신하기 위해 버스(114)에 통신 가능하게 결합될 수 있다. 마이크로컨트롤러(124)는 명령어를 실행하도록 구성될 수 있고 ASIC(application specific integrated circuit), FPGA(field programmable gate array) 등 중 하나 이상을 포함할 수 있다. 마이크로컨트롤러(124)는 데이터를 하나 이상의 저장 장치(110)에 기록하거나 이로부터 데이터를 판독하기 위해 명령어(및 그것의 피연산자, 적용 가능하다면)를 하나 이상의 저장 장치 컨트롤러(128)에 송신하도록 구성될 수 있다. 마이크로컨트롤러(124)는 호스트 CPU(102)로부터 수신된 명령어에 응답하여 하나 이상의 저장 장치(110)로부터 데이터를 판독하고 데이터를 그것에 기록하도록 구성될 수 있다.The
컴퓨터 시스템을 감염시키는 멀웨어는 호스트 CPU로부터 저장 컨트롤러로 송신되는 명령을 변경할 수 있다. 멀웨어가 컴퓨터 시스템을 감염시킬 때, 멀웨어는 종종 멀웨어가 컴퓨터 시스템의 리셋 또는 파워 다운 후에 컴퓨터 시스템의 파워 업시에 동작을 재개하도록 멀웨어 코드 및/또는 데이터를 컴퓨터 시스템의 비휘발성 메모리 또는 영구적 스토리지의 위치에 저장할 것이다. 이전에 논의된 바와 같이, 일부 멀웨어는 운영 체제의 더 높은 특권 부분, 예를 들어 커널을 감염시킬 수 있다. 그 다음, 멀웨어는 멀웨어 코드 및/또는 데이터를 저장하고 있는 비휘발성 메모리 또는 영구적 스토리지 내의 위치들을 통해 판독 또는 기록하기 위해 AVS 또는 다른 프로그램에 의한 시도를 재전송하도록 운영 체제에 대한 특권 액세스에 영향을 미칠 수 있다. 예를 들어, 컴퓨터 시스템에 의해 실행되고 있는 AVS는 메모리 또는 저장 장치의 각각의 위치를 판독함으로써 멀웨이를 나타내는 패턴을 검색하기 위해 비휘발성 메모리 또는 영구적 스토리지를 스캔하려고 시도할 수 있다. 깊게 뿌리 내린 멀웨어는 비휘발성 메모리 또는 영구적 스토리지의 컨트롤러에 송신되는 판독 또는 기록 명령의 어드레스를 변경시킴으로써 특정 메모리의 위치를 판독하거나 기록하기 위해 AVS에 의한 시도를 차단할 수 있다. 따라서, 비휘발성 메모리 또는 영구적 스토리지의 컨트롤러에 대한 신뢰 연결 없이 높은 특권 액세스를 사용하여 멀웨어를 제거하는 것은 어려울 수 있다.Malware that infects a computer system may change instructions sent from the host CPU to the storage controller. When malware infects a computer system, the malware often renders the malware code and / or data to a nonvolatile memory or permanent storage location of the computer system so that the malware resumes operation upon power up of the computer system after a reset or power down of the computer system Lt; / RTI > As discussed previously, some malware may infect a higher privileged portion of the operating system, such as the kernel. Then, malware will affect privileged access to the operating system to resend attempts by AVS or other programs to read or write to non-volatile memory or locations in persistent storage that store malware code and / or data . For example, an AVS running by a computer system may attempt to scan non-volatile memory or persistent storage to retrieve a pattern representing the way by reading the location of each of the memory or storage devices. Deeply rooted malware can block attempts by the AVS to read or write to the location of a particular memory by changing the address of a read or write command sent to the controller of the nonvolatile memory or permanent storage. Thus, it may be difficult to remove malware using high privileged access without a trusted connection to the controller of non-volatile memory or persistent storage.
실시예에서, 마이크로컨트롤러(124)는 다중 장치 컨트롤러(108)와 호스트 CPU(102)에 의해 실행되는, AVS와 같은 프로그램 사이에서 신뢰 연결을 설정하고 유지하기 위해 컨트롤러 펌웨어(126)의 명령을 실행하도록 구성될 수 있다. 컨트롤러 펌웨어(126)는 마이크로컨트롤러(125)가 암호화 기능을 수행하게 하도록 구성될 수 있다. 구체적으로, 컨트롤러 펌웨어(126)는 마이크로컨트롤러(124)에 의해 실행될 때, 다중 장치 컨트롤러(108)가 호스트 CPU(102)에 의해 실행되는 AVS와 대역 외 연결을 설정할 수 있게 하는 명령어를 포함할 수 있다. 예를 들어, 컨트롤러 펌웨어(126)는 마이크로컨트롤러(124)가 AVS에 의해 개시되는 신뢰 연결 프로토콜에 응답하도록 구성될 수 있다. 실시예에서, 컨트롤러 펌웨어(126)는 신뢰 연결을 설정하기 위해 AVS에 의한 요청을 수신하는 것에 응답하여 마이크로컨트롤러(124)가 AVS로부터 서명 인증서를 요청하여 AVS의 인가를 승인하여 신뢰 연결을 설정하게 하도록 구성될 수 있다. 컨트롤러 펌웨어(126)는 AVS로부터 수신된 메시지를 복호화하기 위해, AVS의 인증서에 대해 공개 키와 같은 복호화 코드를 포함할 수 있다. 부가적으로, 컨트롤러 펌웨어(126)는 비밀 키를 갖는 컨트롤러 인증서를 포함할 수 있으므로, AVS 및 다중 장치 컨트롤러(108)는 암호화의 듀얼 레벨을 이용한다. AVS와 다중 장치 컨트롤러(108) 사이의 이러한 통신은 호스트 CPU(102)에 의해 실행되는 운영 체제와 같은 다른 프로그램에 의해 다중 장치 컨트롤러(108)에 발행되는 명령을 판독/기록하기 위해 병렬로 동시에 생성될 수 있다. 따라서, 신뢰 및 인증 연결은 다중 장치 컨트롤러(108)와 호스트 CPU(102)에 의해 실행되는 프로그램들 사이의 대역 외에서 설정될 수 있다.The
컨트롤러 펌웨어(126)는 다중 장치 컨트롤러(108)와 호스트 CPU(102)에 의해 실행되는 프로그램 사이에서 부가 암호화 통신을 지원하도록 구성될 수 있다. 일 실시예에 따르면, AVS는 더미 어드레스를 사용하여 판독/기록 명령을 다중 장치 컨트롤러(108)에 발행할 수 있고, AVS는 명령의 페이로드 또는 피연산자로 실제 판독/기록 어드레스를 암호화할 수 있다. 일 실시예에 따르면, AVS는 다중 장치 컨트롤러(108)의 인증서의 공개키를 사용하는 것에 더하여 피연산자를 AVS의 인증서의 비밀 키로 암호화함으로써 피연산자로 실제 판독/기록 어드레스를 암호화할 수 있다. 종종, 멀웨어는 멀웨어에 의해 점유되는 메모리/저장 위치에 전송되는 명령을 재전송하려고 시도할 수 있다. 그러나, 이러한 명령과 연관된 위치 어드레스가 더미 어드레스이므로, 멀웨어는 명령이 멀웨어에 의해 점유된 메모리 위치에 재전송되는 것으로 나타나지 않기 때문에, 이러한 명령을 무시할 가능성이 있을 것이다. 멀웨어는 적어도 2개의 이유로 명령의 피연산자로 암호화된 어드레스를 갖는 이러한 명령을 재전송할 가능성이 없을 것이다. 첫 번째, 멀웨어는 명령이 전송되는 실제 어드레스가 명령의 페이로드 또는 피연산자로 수행되기 때문에 명령을 재전송할 가능성이 없을 것이다. 두 번째, 멀웨어는 암호화된 피연산자를 복호화하기 위해 사용되는 복호화 코드, 공개 키, 비밀 키, 및/또는 유사한 기술이 실시예에서 컨트롤러 펌웨어(126) 내에 저장되기 때문에 명령을 재전송할 가능성이 없을 것이다. 따라서, 멀웨어에 의한 재전송 시도는 다중 장치 컨트롤러(108)가 AVS로부터 수신된 명령을 인증하려고 시도할 때 검출 가능하고 보고 가능할 것이다. 공개 키 기반 구조와 연관된 암호화 기술이 본 명세서에서 설명되지만, 대체 실시예에서 컨트롤러 펌웨어(126)는 다중 장치 컨트롤러(108)가 당업자에게 공지된 다른 암호화 기술을 사용함으로써 호스트 CPU(102)에 의해 실행되는 프로그램과 통신할 수 있게 하도록 구성될 수 있다.The
컨트롤러 펌웨어(126)는 펌웨어 서포트(130)를 이용함으로써 상술된 암호화 기능을 수행하도록 구성될 수 있다. 실시예에서, 펌웨어 서포트(130)는 상술된 암호화 기능을 지원하는 수개의 논리 블록을 포함할 수 있다. 펌웨어 서포트(130)는 명령 프로세서(132), 판독/기록 어드레스 생성기(134), 패리티 생성기(136), 및 암호화 및 MAC(message authentication code) 서포트(138)를 포함할 수 있다. 펌웨어 서포트(130)는 본 개시의 일 실시예에 따른 플래시와 같은 갱신 가능한 비휘발성 메모리에 저장될 수 있다. 암호화 및 MAC 서포트(138)는 마이크로컨트롤러(124)가 메시지를 암호화 및 복호화하게 하고, AVS와 같은 호스트 CPU(102)에 의해 실행되는 프로그램의 인가를 검증하게 하고, 프로그램과 하나 이상의 신뢰 연결을 유지하게 하기 위해 명령 프로세서(132), 판독/기록 어드레스 생성기(134), 및 패리티 생성기(136)와 협력하도록 구성될 수 있다.
하나 이상의 저장 장치 컨트롤러(128)는 버스(114) 및 하나 이상의 저장 장치(110)에 결합될 수 있다.One or more storage controllers 128 may be coupled to
하나 이상의 저장 장치(110)는 상응하는 통신 링크(140a, 140b)(집합적으로 140)를 통해 다중 장치 컨트롤러(108)에 통신 가능하게 결합될 수 있다. 하나 이상의 저장 장치(110)는 하나 이상의 HDD(hard disk drive), SSD(solid-state drive), 또는 다른 비휘발성 메모리일 수 있다. 하나 이상의 저장 장치(110)는 다중 장치 컨트롤러(108)에 의해 판독되거나 기록되도록 통신 가능하게 결합되는 독립 디스크의 어레이를 포함할 수 있다. 통신 링크(140)는 집합적으로 본 개시의 다양한 실시예에 따른 SCSI(small computer system interface), IDE(integrated drive electronics) 인터페이스, 또는 다른 유사한 저장 인터페이스를 형성할 수 있다.One or more storage devices 110 may be communicatively coupled to the
실시예에서, 하나 이상의 저장 장치(110)는 일 실시예에 따른 다중 장치 컨트롤러(108)에 의한 동작에 응답하여 스트라이프 방식으로 데이터를 저장하고 검색하도록 구성될 수 있다. 예를 들어, 데이터는 패리티, 미러링, 또는 리던던시 없이 스트라이프 방식으로 하나 이상의 저장 장치(110)상에 저장될 수 있다. 다른 예로서, 데이터는 바이트 레벨 스트라이핑 및 전용 패리티를 사용하여 스트라이프 방식으로 하나 이상의 저장 장치(110)상에 저장될 수 있다. 또 다른 예로서, 데이터는 비트 레벨, 바이트 레벨, 및 블록 레벨 스트라이핑 중 하나를 사용하고 전용 패리티 및 분산 패리티 중 하나를 사용하여 하나 이상의 저장 장치(110)상에 저장될 수 있다. 결과적으로, 하나 이상의 저장 장치(110)는 표준 RAID 레벨 중 임의의 하나 이상, 예를 들어 RAID 레벨 0-6에서 RAID(redundant array of inexpensive disks) 구성 내의 다중 장치 컨트롤러(108)에 의해 동작되도록 구성될 수 있다.In an embodiment, the one or more storage devices 110 may be configured to store and retrieve data in a striped fashion in response to operations by the
AVS는 멀웨어의 존재를 검출하기 위해 AVS와 다중 장치 컨트롤러(108) 사이의 이전에 설명된 신뢰 연결에 의존할 수 있다. 예를 들어, AVS가 다중 장치 컨트롤러(108)와 신뢰 연결을 설정할 수 없는 경우, 또는 판독/기록 명령이 거절되거나 부정확한 데이터를 야기하는 경우이다. 실시예에서, AVS는 멀웨어가 저장 장치(110) 중 하나 이상에 존재할 수 있다는 것을 사용자에게 통지하는 표시를 디스플레이에 제공할 수 있다. 부가적으로 또는 대안으로, AVS는 멀웨어가 하나 이상의 저장 장치(110)상에 존재할 수 있다는 전자 통지를 하나 이상의 사용자에게 전송할 수 있으며, 그 결과 정확한 조치가 취해질 수 있다.The AVS may rely on the previously described trusted connection between the AVS and the
유리하게, 다중 장치 컨트롤러(108) 내의 암호화 기능의 포함은 호스트 CPU(102)가 다중 장치 컨트롤러(108)와 호스트 CPU(102)에 의해 실행되는 하나 이상의 프로그램 사이에서 신뢰 연결을 설정하고 유지할 수 있게 한다. 신뢰 연결은 안티 멀웨어 프로그램에 하나 이상의 저장 장치(110)에 저장된 멀웨어를 (예를 들어 중복 기재) 스캔하고 정정하는 능력을 제공한다. 신뢰 연결은 멀웨어가 컴퓨팅 장치(100) 내에 높은 특권 액세스를 달성했을 때에도, 안티 멀웨어 프로그램에 멀웨어를 정정하는 능력을 제공한다.Advantageously, the inclusion of encryption functionality within the
도 2는 다양한 실시예에 따른 다중 장치 컨트롤러(108)와 같은 복수의 저장 장치의 컨트롤러를 동작시키는 방법(200)을 예시한다. 블록(202)에서, 방법 (200)은 복수의 저장 장치의 컨트롤러에 의해, 명목상 안티 멀웨어 보호 관련 동작(예를 들어, 호스트 CPU(102)에 의해 실행되는 AVS에 의해 개시되는)과 연관될 수 있는 제 1 명령어를 수신하는 단계를 포함할 수 있다. 컨트롤러는 호스트 CPU(102)로부터 제 1 명령어를 수신할 수 있으며, 이는 다중 장치 컨트롤러(108)에 결합될 수 있다. 제 1 명령어는 제 1 어드레스 및 피연산자를 포함할 수 있다. 제 1 어드레스는 저장 장치의 제 1 하나 이상의 저장 위치를 지칭할 수 있다.FIG. 2 illustrates a
도 1과 관련하여 상기 논의된 바와 같이, 호스트 CPU(102)에 의해 실행되는 AVS는 제 1 명령어의 피연산자를 암호화하기 위해, 하나 이상의 암호화 키, 예를 들어 AVS의 비밀 암호화 키 및 다중 장치 컨트롤러(108)의 공개 암호화 키를 사용할 수 있다.As discussed above in connection with FIG. 1, the AVS executed by the
블록(204)에서, 방법(200)은 피연산자로부터, 다중 장치 컨트롤러(108)에 의해, 제 2 명령어를 복구하는 단계를 포함할 수 있다. 제 2 명령어는 복수의 저장 장치의 제 2 하나 이상의 저장 위치에서 동작될 수 있다. 제 2 명령어는 실질적으로 안티 멀웨어 보호 관련 동작과 연관될 수 있다. 실시예에서, 제 1 및 제 2 하나 이상의 저장 위치는 적어도 하나의 저장 위치에 따라 다를 수 있다.At
컨트롤러가 제 1 명령어의 피연산자로부터 제 2 명령어를 복구할 수 있게 하는 것은 멀웨이가 안티 멀웨어 보호 관련 동작의 타깃 저장 위치를 검색하는 것을 방지할 수 있다. 일 실시예에 따르면, 제 2 명령어는 멀웨어가 안티 멀웨어 보호 관련 동작을 검색하는 것을 더 방지하기 위해 암호화될 수 있다.Allowing the controller to recover the second instruction from the operand of the first instruction may prevent the way to retrieve the target storage location of the anti-malware protection related operation. According to one embodiment, the second instruction may be encrypted to further prevent malware from retrieving anti-malware protection related actions.
블록(206)에서, 방법(200)은 안티 멀웨어 보호 관련 동작을 실시하기 위해 제 2 하나 이상의 저장 위치에서 동작하도록 다중 장치 컨트롤러(108)에 의해 제 2 명령어를 실행하는 단계를 포함할 수 있다.At
제 2 하나 이상의 저장 위치에서 동작하는 단계는 저장 위치에 상주하는 멀웨이를 나타내는 패턴을 검색하기 위해 제 2 하나 이상의 저장 위치를 판독하는 단계를 포함할 수 있다. 부가적으로, 제 2 하나 이상의 저장 위치에서 동작하는 단계는 저장 위치에 상주하는 멀웨어를 제거하기 위해 새로운 데이터를 제 2 하나 이상의 저장 위치에 기록하는 단계를 포함할 수 있다.Operating at a second one or more storage locations may include reading a second one or more storage locations to retrieve a pattern representing a multiway that resides in the storage location. Additionally, operating at a second one or more storage locations may include writing new data to a second one or more storage locations to remove malware residing in the storage location.
블록(208)에서, 방법(200)은 제 2 명령어가 판독 명령어이면, 다중 장치 컨트롤러(108)에 의해 제 2 하나 이상의 저장 위치로부터 판독된 데이터를 어셈블링하여 어셈블링된 데이터를 형성하는 단계와, 다중 장치 컨트롤러(108)에 의해 어셈블링된 데이터를 제 1 명령어의 판독 출력 데이터로서 호스트 CPU(102)로 반환하는 단계를 포함한다.At
방법(200)은 컴퓨팅 장치(100)에 의해 전적으로 또는 부분적으로 실시될 수 있다. 예를 들어, 컴퓨팅 장치(100)는 다중 장치 컨트롤러(108)가 명령어의 실행에 응답하여 방법(200)의 동작 중 어느 것 또는 모두를 수행할 수 있게 하도록 구성된 명령어로 구체화된 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 일 실시예에 따르면, 컴퓨터 판독 가능 매체는 비일시적 컴퓨터 판독 가능 저장 매체일 수 있다. 더욱이, 도 1과 관련하여 설명된 기술 또는 구성 요소 중 하나 이상은 방법(200)과 결합되거나 방법에 사용될 수 있다.The
도 3은 본 개시의 다양한 실시예에 따른 안티 멀웨어 관련 동작을 수행하도록 구성된 시스템(300)을 예시한다. 시스템(300)은 하나 이상의 저장 장치(110)에 통신 가능하게 결합된 호스트 장치(302), 및 백엔드 서버(303)를 포함할 수 있다.FIG. 3 illustrates a
호스트 장치(302)는 안티 멀웨어 관련 동작을 수행하기 위해 신뢰 연결 또는 대역 외 제 2 채널를 지원하는 소프트웨어 및 하드웨어를 포함할 수 있다. 호스트 장치(302)는 제 1 채널(308)을 통해 다중 장치 컨트롤러(306)에 통신 가능하게 결합되는 운영 체제(304)를 포함할 수 있다. 제 1 채널(308)은 호스트 CPU(도 1에 도시된 바와 같은)와 저장 장치 컨트롤러 사이에서 사용되는 다수의 표준 인터페이스 중 어느 하나, 예를 들어 ATA, PCI, 이더넷 등일 수 있다. 제 1 채널(308)은 다중 장치 컨트롤러(306)와 운영 체제(304)를 실행하는 하드웨어 사이의 물리 연결을 나타낸다. 제 1 채널(308)은 또한 운영 체제(304)와 컨트롤러 펌웨어(310) 사이의 논리 연결을 나타낸다.
운영 체제(304)는 본 개시의 다양한 실시예에 따른 마이크로소프트 코포레이션에 의해 개발된 윈도우 제품, 유닉스 기반 환경, 또는 OS X와 같은 매킨토시 관련 환경일 수 있다. 운영 체제(304)는 파일 시스템(312) 및 개인 SDK(software development kit)(314)를 포함할 수 있다. 파일 시스템(312)은 사용자 및 운영 체제(304)가 하나 이상의 저장 장치(110)상에 저장된 데이터를 구성하고 효율적으로 검색할 수 있게 하는 운영 체제(304)에 의해 동작 가능한 프로그램일 수 있다. 개인 SDK(314)는 운영 체제(304)에 의해 동작 가능한 소프트웨어의 개발을 가능하게 하는 다양한 툴을 포함할 수 있다.The
다중 장치 컨트롤러(306)는 제 1 통신 채널(308)를 유지하는 것에 더하여 제 2 및 신뢰 통신 채널(316)을 설정하고 유지하도록 구성될 수 있다. 다중 장치 컨트롤러(306)는 컨트롤러 펌웨어(310), 메모리(318), 및 시스템 온 칩(320)을 포함할 수 있다. 일 실시예에 따르면, 다중 장치 컨트롤러(306)는 도 1의 다중 장치 컨트롤러(108)일 수 있다.The
컨트롤러 펌웨어(310)는 프로그램으로 신뢰 채널을 설정하고 유지하는 것 및 호스트 장치(302) 외부에 있는 컴퓨터 시스템을 지원하는 암호화 기능성을 포함할 수 있다. 컨트롤러 펌웨어(310)는 저장 컨트롤러의 표준 동작에 따라 운영 체제(304)로부터 수신된 명령어에 응답하여 다중 장치 컨트롤러(306)가 하나 이상의 저장 장치(110)상에서 동작할 수 있게 하도록 구성된 다수의 명령어를 포함할 수 있다. 부가적으로, 컨트롤러 펌웨어(310)는 다중 장치 컨트롤러(306)에 의해 실행될 때, 다중 장치 컨트롤러(306)가 신뢰 채널(316)을 설정할 수 있게 하는 다수의 명령어를 포함할 수 있다.
컨트롤러 펌웨어(310)는 펌웨어 서포트(322) 및 신뢰 API(application programming interface)(324)를 포함할 수 있고, 컨트롤러 펌웨어(310)는 신뢰 채널(316)을 설정하기 위해 펌웨어 서포트(322) 및 신뢰 API(324)를 이용할 수 있다. 부가적으로, 펌웨어 서포트(322)는 착신 메시지를 복호화하고 인증하기 위해 컨트롤러 펌웨어(310)에 의해 사용될 수 있는 암호화 및 MAC(message authentication code) 서포트를 포함할 수 있다. 예를 들어, 질의 또는 시도가 백엔드 서버(303)에 의해 신뢰 채널(316)을 개시하는 것에 응답하여 컨트롤러 펌웨어(310)는 백엔드 서버(303)로부터 디지털 인증서, 디지털 서명, 또는/및 암호화된 메시지를 요청하기 위해 신뢰 API(324) 및 펌웨어 서포트(322)를 통해 백엔드 서버(303)와 통신할 수 있다. 일 실시예에 따르면, 컨트롤러 펌웨어(310)는 다중 장치 컨트롤러(306)에 의해 디코딩되도록 의도된 메시지를 복호화하는 비밀 키를 갖는 PKI 기반 인증서를 포함할 수 있다. 컨트롤러 펌웨어(310)는 또한 컨트롤러 펌웨어(310)가 백엔드 서버(303)를 인증할 수 있게 하기 위해 제한적으로 분산되는 대칭 또는 공개 암호화 키로 프리로딩될 수 있다. 일련의 핸드셰이크 신호를 통해, 컨트롤러 펌웨어(310) 및 백엔드 서버(303)는 신뢰 채널(316)을 설정할 수 있다. 일 실시예에 따르면, 백엔드 서버(303)는 컨트롤러 펌웨어(310)에서 암호화 키 및 코드를 인증하고 프로비저닝하거나 초기화할 수 있다.
일 실시예에 따르면, 컨트롤러 펌웨어(310)는 다중 장치 컨트롤러(306)에 의해 실행될 때, 다중 장치 컨트롤러(306)가 도 2의 방법(200)의 동작을 실행하게 하는 명령어를 포함할 수 있다.According to one embodiment, the
메모리(318) 및 시스템 온 칩(320)은 데이터를 스트라이핑 방식으로 하나 이상의 저장 장치(110)에 저장하는 것과 관련된 명령어를 수신하고 실행할 시에 다중 장치 컨트롤러(306)를 지원할 수 있다. 예를 들어, 다중 장치 컨트롤러(306)는 패리티를 갖거나 갖지 않고, 비트 레벨, 바이트 레벨, 및 블록 레벨 스트라이핑 방식 중 어느 하나로 데이터를 하나 이상의 저장 장치에 기록하도록 구성될 수 있다.The
호스트 장치(302)는 안티 멀웨어 보호 관련 동작을 수행하기 위해 호스트 장치(302)의 호스트 CPU에 의해 실행될 수 있는 안티 멀웨어 및/또는 AVS(antivirus software) 애플리케이션(326)을 포함할 수 있다. AVS 애플리케이션(326)은 신뢰 채널(316)을 통해 다중 장치 컨트롤러(306)와 통신할 수 있는 것이 유리할 수 있다. AVS 애플리케이션(326)은 컨트롤러 펌웨어(310)의 신뢰 API(324)에 의해 인식 가능한 프로토콜을 따르도록 AVS 키트(328)를 사용할 수 있다. 백엔드 서버(303)와 유사하게, AVS 애플리케이션(326)은 컨트롤러 펌웨어(310) 내에 저장된 암호화 키 및/또는 코드를 사용하여 다중 장치 컨트롤러(306)에 의해 복호화될 수 있는 메시지를 암호화함으로써 제 2 및 신뢰 통신 채널(330)을 다중 장치 컨트롤러(306)로 개시하고 설정할 수 있다.The
AVS 애플리케이션(326)은 하나 이상의 저장 장치(110)의 저장 장치에 상주하는 멀웨어를 식별하고 제거할 수 있다. AVS 애플리케이션(326)은 저장 장치(110)의 판독 명령 및 타깃 저장 위치를 다중 장치 컨트롤러(306)에 송신된 판독 또는 기록 명령어의 피연산자로 삽입하고 암호화함으로써 멀웨어를 식별할 수 있다. AVS 애플리케이션(326)은 판독 데이터를 미리 결정된 패턴과 비교함으로써 저장 위치로부터 판독되는 데이터를 비교하고 저장 위치에 상주하는 멀웨어를 식별한다. 그 다음, AVS 애플리케이션(326)은 멀웨어가 저장 장치상에서 식별되었다는 것을 사용자 또는 전자 시스템에 통지하기 위한 애플리케이션(332)을 사용할 수 있다. 애플리케이션(332)은 감염된 저장 위치를 정정, 즉 소거하기 위해 AVS 애플리케이션(326)을 허가하도록 구성될 수 있거나, AVS 애플리케이션에게 사용자로부터의 추가 명령어를 대기하라고 명령하도록 구성될 수 있다. 따라서, 시스템(300)은 하나 이상의 저장 장치(110)를 갖는 시스템상에서 안티 멀웨어 보호 관련 동작을 실행하기 위해 사용될 수 있다.The
도 4는 본 개시의 일 실시예에 따른 복수의 저장 장치의 신뢰 판독을 실행하는 통신 시퀀스(400)를 예시한다. 404에서, 컴퓨팅 장치(100) 또는 호스트 장치(302)상에서 실행하는 AVS 프로그램과 같은 안티 바이러스 및/또는 안티 멀웨어(AV/AM) 에이전트(402)는 명령 어드레스를 세션 키로 암호화함으로써 신뢰 판독 명령 및 판독될 논리 블록 어드레스의 리스트를 발행할 수 있다.FIG. 4 illustrates a
408에서, 컨트롤러 펌웨어(406)는 AV/AM 에이전트(402)로부터의 요청을 컨트롤러 펌웨어(406) 내에 위치된 세션 키로 인증할 수 있고, 컨트롤러 펌웨어(406)는 명령을 처리할 수 있다.At 408, the
410에서, 컨트롤러 펌웨어(406)는 AV/AM 에이전트(402)에 의해 요청되는 모리 블록 어드레스상의 동작을 위해 판독 요청을 복수의 저장 장치(412)에 발행할 수 있다.At 410, the
414에서, 저장 장치(412)는 요청된 논리 블록 어드레스에 저장된 데이터를 컨트롤러 펌웨어(406)로 반환할 수 있다.At 414, the storage device 412 may return the data stored in the requested logical block address to the
416에서, 컨트롤러 펌웨어(406)는 판독 데이터를 어셈블링하고 MAC(message authentication code)를 컴퓨팅할 수 있다. 실시예에서, MAC는 판독 데이터 상에서 해시 함수를 수행함으로써 컴퓨팅될 수 있다.At 416, the
418에서, 컨트롤러 펌웨어(406)는 세션 키로 암호화되었던 신뢰 판독 데이터로 응답할 수 있다.At 418, the
420에서, AV/AM 에이전트(402)는 예를 들어 복호화된 데이터의 MAC를 컴퓨팅하고 AV/AM 에이전트(402)의 MAC를 컨트롤러 펌웨어(406)의 MAC와 비교함으로써 신뢰 판독 데이터의 진정성(authenticity)을 검증할 수 있다.
422에서, AV/AM 에이전트(402)는 메시지 인증이 실패하면 AV/AM 백엔드(424)에 통지할 수 있다. 그 다음, AV/AM 백엔드(424)는 멀웨어가 신뢰 판독을 방지할 수 있었다는 통지를 하나 이상의 사용자에게 제공할 수 있다.At 422, the AV /
도 5는 본 개시의 일 실시예에 따른 신뢰 기록을 복수의 저장 장치(412)의 논리 블록 어드레스에 실행하는 통신 시퀀스(500)를 예시한다. 502에서, AV/AM 에이전트(402)는 명령 어드레스를 세션 키로 암호화함으로써 신뢰 기록 명령, 기록될 데이터, 및 동작되거나 기록되는 논리 블록 어드레스의 리스트를 발행할 수 있다.FIG. 5 illustrates a
504에서, 컨트롤러 펌웨어(406)는 AV/AM 에이전트(402)로부터의 요청을 컨트롤러 펌웨어(406) 내에 위치된 세션 키로 인증할 수 있고, 컨트롤러 펌웨어(406)는 명령을 처리할 수 있다.At 504, the
506에서, 컨트롤러 펌웨어(406)는 AV/AM 에이전트(402)에 의해 요청되는 논리 블록 어드레스에서 기록 요청을 발행된 데이터의 복수의 저장 장치(412)에 발행할 수 있다.At 506, the
508에서, 컨트롤러 펌웨어(406)는 데이터가 성공적으로 기록되었다는 것을 확인하기 위해 판독 요청을 저장 장치(412)에 발행할 수 있다.At 508, the
510에서, 저장 장치(412)는 논리 블록 어드레스에 저장된 데이터를 컨트롤러 펌웨어(406)로 반환할 수 있다.At 510, the storage device 412 may return the data stored in the logical block address to the
512에서, 컨트롤러 펌웨어(406)는 판독 데이터를 어셈블링하고 데이터의 MAC을 컴퓨팅할 수 있다.At 512, the
514에서, 컨트롤러 펌웨어(406)는 세션 키로 암호화되었던 기록된 데이터 확인으로 AV/AM 에이전트(402)에 응답할 수 있다.At 514, the
516에서, AV/AM 에이전트(402)는 신뢰 기록 데이터의 진정성을 검증할 수 있다.At 516, the AV /
518에서, AV/AM 에이전트(402)는 메시지 인증이 실패하면 AV/AM 백엔드(424)에 통지할 수 있다.At 518, the AV /
도 6은 AV/AM 에이전트(402)와 컨트롤러 펌웨어(406) 사이에서 신뢰 연결을 유지하는 통신 시퀀스(600)를 예시한다. 602에서, AV/AM 에이전트는 하트비트 메시지를 컨트롤러 펌웨어(406)에 송신할 수 있다. 하트비트 메시지는 메시지의 수신에 확인 응답하기 위해 명령어를 포함하는 암호화된 메시지일 수 있다. AV/AM 에이전트(402)는 하트비트 메시지를 우선 AV/AM 에이전트(402)에 속하는 공개/비밀키 중 비밀 키로 암호화하고 그 다음 컨트롤러 펌웨어(406)에 속하는 공개/비밀 키 쌍 중 공개 키로 암호화할 수 있다.FIG. 6 illustrates a
604에서, 컨트롤러 펌웨어(406)는 AV/AM 에이전트(402)로부터의 요청을 인증하고 하트비트 메시지를 처리할 수 있다. 컨트롤러 펌웨어(406)는 메시지를 첫 번째로 컨트롤러 펌웨어(406)의 비밀 키로 인증하고 두 번째로 AV/AM 에이전트(402)의 공개 키로 복호화함으로써 요청을 인증할 수 있다.At 604, the
606에서, 컨트롤러 펌웨어(406)는 하트비트 메시지를 MAC로 생성시킬 수 있다. MAC는 AV/AM 에이전트(402)에 의해 초기에 암호화되고 송신된 데이터상에서 컴퓨팅될 수 있다.At 606, the
608에서, 컨트롤러 펌웨어(406)는 하트비트 응답 및 MAC으로 응답할 수 있다.At 608, the
610에서, AV/AM 에이전트(402)는 하트비트 메시지의 진정성을 검증할 수 있다. AV/AM 에이전트(402)와 컨트롤러 펌웨어(406) 사이에서 신뢰 연결을 활성적으로 그리고 주기적으로 유지하고 검증하는 것을 통해서, AV/AM 에이전트는 하트비트 연결이 설명할 수 없는 상태로 방해되면 멀웨어의 새로운 존재를 통지받을 수 있다.At 610, the AV /
다양한 실시예의 일부 예가 이후에 개시된다.Some examples of various embodiments are disclosed hereinafter.
다양한 실시예에서, 적어도 하나의 컴퓨터 판독 가능 저장 매체는 다수의 저장 장치의 컨트롤러가 컨트롤러에 의한 명령어의 실행에 응답하여 컨트롤러와 결합된 호스트 컴퓨팅 장치로부터 제 1 명령어를 수신할 수 있게 하도록 구성된 다수의 명령어를 가질 수 있다. 제 1 명령어는 제 1 어드레스 및 피연산자를 포함할 수 있다. 제 1 명령어는 명목상 안티 멀웨어 보호 관련 동작과 연관될 수 있고, 제 1 어드레스는 저장 장치의 제 1 하나 이상의 저장 위치를 지칭할 수 있다. 컨트롤러는 또한 피연산자로부터, 저장 장치의 제 2 하나 이상의 저장 위치에서 동작될 수 있는 제 2 명령어를 복구할 수 있다. 제 2 명령어는 실질적으로 안티 멀웨어 보호 관련 동작과 연관될 수 있고, 제 1 및 제 2 하나 이상의 저장 위치는 적어도 하나의 저장 장치에 의해 다르다. 컨트롤러는 안티 멀웨어 보호 관련 동작을 실시하기 위해 제 2 하나 이상의 저장 위치에서 동작하도록 제 2 명령어를 실행할 수 있다. 컨트롤러는 컨트롤러 및 호스트 컴퓨팅 장치를 통신 가능하게 결합하는 신뢰 연결을 통해 제 1 명령어를 수신할 수 있다. 컨트롤러는 컨트롤러를 호스트 컴퓨팅 장치에 결합할 수 있는 제 2 채널을 통해 컨트롤러와 호스트 컴퓨팅 장치 사이에 신뢰 연결을 형성할 수 있다. 컨트롤러 및 호스트 컴퓨팅 장치는 제 1 채널을 통해 서로 더 결합될 수 있다.In various embodiments, the at least one computer-readable storage medium includes a plurality of storage devices configured to allow a controller of the plurality of storage devices to receive a first instruction from a host computing device coupled to the controller in response to execution of the instruction by the controller Command. The first instruction may comprise a first address and an operand. The first instruction may be associated with a nominal antimalware protection related action, and the first address may refer to a first one or more storage locations of the storage device. The controller may also recover from the operand a second instruction that may be operated in a second one or more storage locations of the storage device. The second instruction may be substantially associated with an anti-malware protection related operation, wherein the first and second one or more storage locations differ by at least one storage device. The controller may execute a second instruction to operate at a second one or more storage locations to effect anti-malware protection related operations. The controller may receive the first instruction through a trusted connection communicatively coupling the controller and the host computing device. The controller may establish a trusted connection between the controller and the host computing device via a second channel that can couple the controller to the host computing device. The controller and the host computing device may further be coupled together via a first channel.
다른 실시예에서, 안티 멀웨어 보호 동작은 제 2 하나 이상의 저장 위치에서 수행될 판독 동작 및 기록 동작 중 하나일 수 있다. 판독 동작 동안, 컨트롤러는 제 2 하나 이상의 저장 위치로부터 판독된 데이터를 어셈블링하여 어셈블링된 데이터를 형성하고, 어셈블링된 데이터를 제 1 명령어의 판독 출력 데이터로서 호스트 컴퓨팅 장치로 반환할 수 있다.In another embodiment, the anti-malware protection operation may be one of a read operation and a write operation to be performed at the second one or more storage locations. During a read operation, the controller may assemble the read data from the second one or more storage locations to form assembled data, and return the assembled data to the host computing device as the read output data of the first instruction.
다른 실시예에서, 피연산자로부터 제 2 명령어를 복구하는 컨트롤러는 명령어에 기초하여 피연산자를 디코딩하거나 복호화하도록 구성될 수 있다.In another embodiment, the controller for recovering the second instruction from the operand may be configured to decode or decode the operand based on the instruction.
다른 실시예에서, 컨트롤러는 피연산자로부터 제 2 명령어를 디코딩하거나 복호화하기 위해 비밀 키를 사용할 수 있다.In another embodiment, the controller may use the secret key to decode or decode the second instruction from the operand.
다른 실시예에서, 명령어는 컨트롤러의 인증서를 포함할 수 있다. 인증서는 비밀 키를 포함할 수 있다.In another embodiment, the instruction may include a certificate of the controller. The certificate may include a secret key.
다른 실시예에서, 저장 장치의 컨트롤러는 저장 장치의 제 2 하나 이상의 저장 위치에서 동작하도록 제 2 명령어를 실행할 수 있는 반면, 저장 장치는 독립 디스크의 어레이를 포함한다.In another embodiment, the controller of the storage device may execute a second instruction to operate in a second one or more storage locations of the storage device, while the storage device comprises an array of independent disks.
다양한 실시예에서, 데이터는 비트 레벨, 바이트 레벨, 및 블록 레벨 스트라이핑 중 하나를 사용하고 전용 패리티 및 분산 패리티 중 하나를 사용하여 독립 디스크의 어레이에 스트라이프 방식으로 저장될 수 있다. 데이터는 바이트 레벨 스트라이핑 및 전용 패리티를 사용하여 독립 디스크의 어레이에 스트라이프 방식으로 저장될 수 있다. 제 2 명령어는 멀웨어가 안티 멀웨어 보호 관련 동작을 검출하는 것을 방지하기 위해 암호화될 수 있다.In various embodiments, the data may be stored in a striped fashion on an array of independent disks using either bit-level, byte-level, and block-level striping and using either dedicated parity or distributed parity. Data can be stored in stripes on an array of independent disks using byte-level striping and dedicated parity. The second instruction may be encrypted to prevent malware from detecting anti-malware protection related actions.
다양한 실시예에서, 저장 장치의 컨트롤러는 듀얼 암호화 층을 사용할 수 있다.In various embodiments, the controller of the storage device may use a dual encryption layer.
실시예에서, 방법은 다수의 저장 장치의 컨트롤러에 의해, 호스트 컴퓨팅 장치로부터 제 1 명령어를 수신하는 단계를 포함할 수 있다. 호스트 컴퓨팅 장치는 컨트롤러에 결합될 수 있다. 제 1 명령어는 제 1 어드레스 및 피연산자를 포함할 수 있다. 제 1 명령어는 명목상 안티 멀웨어 보호 관련 동작과 연관될 수 있고, 제 1 어드레스는 저장 장치의 제 1 하나 이상의 저장 위치를 지칭할 수 있다. 방법은 피연산자로부터, 컨트롤러에 의해, 저장 장치의 제 2 하나 이상의 저장 위치에서 동작될 제 2 명령어를 복구하는 단계를 포함할 수 있다. 제 2 명령어는 실질적으로 안티 멀웨어 보호 관련 동작과 연관될 수 있고, 제 1 및 제 2 하나 이상의 저장 위치는 적어도 하나의 저장 위치에 따라 다를 수 있다. 방법은 안티 멀웨어 보호 관련 동작을 실시하기 위해 제 2 명령어상에서 동작하도록 컨트롤러에 의해, 제 2 명령어를 실행하는 단계를 포함할 수 있다.In an embodiment, the method may include receiving a first instruction from a host computing device by a controller of the plurality of storage devices. The host computing device may be coupled to the controller. The first instruction may comprise a first address and an operand. The first instruction may be associated with a nominal antimalware protection related action, and the first address may refer to a first one or more storage locations of the storage device. The method may include recovering, by the controller, a second instruction to be operated at a second one or more storage locations of the storage device from the operand. The second instruction may be substantially associated with anti-malware protection related operations, and the first and second one or more storage locations may be different depending on at least one storage location. The method may include executing a second instruction by a controller to operate on a second instruction to perform an anti-malware protection related operation.
다양한 실시예에 따르면, 수신하는 단계는 제 1 명령어를 컨트롤러 및 호스트 컴퓨팅 장치를 통신 가능하게 결합하는 신뢰 연결을 통해 수신하는 단계를 포함할 수 있다. 방법은 컨트롤러에 의해, 제 2 채널을 통해 컨트롤러와 호스트 컴퓨팅 장치 사이에 신뢰 연결을 형성하는 단계를 더 포함할 수 있다. 제 2 채널은 컨트롤러를 호스트 컴퓨팅 장치에 결합할 수 있다. 컨트롤러 및 호스트 컴퓨팅 장치는 제 1 채널을 통해 서로 더 결합될 수 있다. 피연산자는 암호화될 수 있고, 피연산자로부터 제 2 명령어를 복구하는 단계는 비밀 키를 사용함으로써 피연산자를 복호화하는 단계를 포함할 수 있다.According to various embodiments, the receiving step may include receiving a first instruction through a trusted connection communicatively coupling the controller and the host computing device. The method may further comprise, by the controller, establishing a trusted connection between the controller and the host computing device over the second channel. The second channel may couple the controller to the host computing device. The controller and the host computing device may further be coupled together via a first channel. The operand may be encrypted and the step of recovering the second instruction from the operand may comprise decrypting the operand by using the secret key.
다양한 실시예에 따르면, 제 1 및 제 2 명령어는 판독 또는 기록 명령어일 수 있다. 판독 명령어에 대해, 방법은 컨트롤러에 의해 제 2 하나 이상의 저장 위치로부터 판독된 데이터를 어셈블링하여 어셈블링된 데이터를 형성하는 단계와, 컨트롤러에 의해 어셈블링된 데이터를 제 1 명령어의 판독 출력 데이터로서 호스트 컴퓨팅 장치로 반환하는 단계를 더 포함할 수 있다. 저장 장치는 독립 디스크의 어레이를 포함할 수 있다. 데이터는 패리티, 미러링 또는 리던던시 없이 독립 디스크의 어레이에 스트라이프 방식으로 저장될 수 있다. 데이터는 바이트 레벨 스트라이핑 및 전용 패리티를 사용하여 독립 디스크의 어레이에 스트라이프 방식으로 저장될 수 있다.According to various embodiments, the first and second instructions may be read or write instructions. For a read command, the method comprises: assembling data read from a second one or more storage locations by a controller to form assembled data; and writing the data assembled by the controller as read out data of a first instruction To the host computing device. The storage device may comprise an array of independent disks. Data can be stored in stripes on an array of independent disks without parity, mirroring, or redundancy. Data can be stored in stripes on an array of independent disks using byte-level striping and dedicated parity.
실시예에서, 장치는 다수의 데이터 저장 장치, 및 데이터 저장 장치에 통신 가능하게 결합된 적어도 하나의 컨트롤러를 포함할 수 있다. 적어도 하나의 컨트롤러는 제 1 수의 명령어에 응답하여 데이터를 데이터 저장 장치에 기록하고 데이터 저장 장치로부터 데이터를 판독하도록 구성될 수 있다. 컨트롤러는 제 1 피연산자 및 제 1 하나 이상의 저장 위치에 상응하는 제 1 어드레스를 포함하는 제 1 저장 명령어를 수신하도록 구성될 수 있다. 컨트롤러는 제 1 피연산자에 기초하여 제 2 저장 명령어를 복구하도록 구성될 수 있다. 제 2 저장 명령어는 적어도 하나의 저장 위치에 따라 제 1 하나 이상의 저장 위치와 다른 제 2 하나 이상의 저장 위치에 상응하는 제 2 어드레스를 포함할 수 있다. 컨트롤러는 안티 멀웨어 보호 관련 동작을 실시하기 위해 제 2 하나 이상의 저장 위치에서 동작하도록 제 2 저장 명령어를 실행하기 위해 구성될 수 있다.In an embodiment, an apparatus may include a plurality of data storage devices, and at least one controller communicatively coupled to the data storage device. The at least one controller may be configured to write data to and read data from the data storage device in response to the first number of instructions. The controller may be configured to receive a first store instruction comprising a first operand and a first address corresponding to a first one or more storage locations. The controller may be configured to recover the second store instruction based on the first operand. The second store instruction may include a second address corresponding to a second one or more storage locations different from the first one or more storage locations according to the at least one storage location. The controller may be configured to execute a second store instruction to operate at a second one or more storage locations to effect anti-malware protection related operations.
다양한 실시예에서, 컨트롤러는 제 2 채널을 통해 컨트롤러와 호스트 컴퓨팅 장치 사이의 신뢰 논리 연결에 의해 호스트 컴퓨팅 장치로부터 제 1 저장 명령어를 수신하도록 구성될 수 있다. 제 2 채널은 컨트롤러 및 호스트 컴퓨팅 장치를 통신 가능하게 결합할 수 있다. 컨트롤러 및 호스트 컴퓨팅 장치는 제 1 채널을 통해 서로 더 결합될 수 있다.In various embodiments, the controller may be configured to receive the first store instruction from the host computing device by a trusted logical connection between the controller and the host computing device over the second channel. The second channel is capable of communicatively coupling the controller and the host computing device. The controller and the host computing device may further be coupled together via a first channel.
다양한 실시예에서, 컨트롤러는 제 1 채널을 통해 제 1 명령어 세트에 응답하고 제 2 채널을 통해 제 2 명령어 세트에 응답하도록 더 구성될 수 있다. 제 2 명령어 세트는 제 1 명령어 세트보다 더 적은 명령어를 포함할 수 있다. 제 2 채널은 대역 외 채널일 수 있다. 데이터 저장 장치는 독립 디스크의 어레이를 포함할 수 있다. 데이터는 비트 레벨, 바이트 레벨, 및 블록 레벨 스트라이핑 중 하나를 사용하고 전용 패리티 및 분산 패리티 저장 기술 중 하나를 사용하여 독립 디스크의 어레이에 스트라이프 방식으로 저장될 수 있다. 컨트롤러는 암호화된 통신을 컨트롤러에 의해 지원하도록 구성된 패리티 생성기를 포함할 수 있다.In various embodiments, the controller may be further configured to respond to the first set of instructions over the first channel and to the second set of instructions over the second channel. The second instruction set may include fewer instructions than the first instruction set. The second channel may be an out-of-band channel. The data storage device may comprise an array of independent disks. Data can be stored in stripes on an array of independent disks using either bit-level, byte-level, and block-level striping and using either dedicated parity or distributed parity storage techniques. The controller may include a parity generator configured to support the encrypted communication by the controller.
다양한 실시예에서, 장치는 다수의 데이터 저장 장치, 및 데이터 저장 장치에 통신 가능하게 결합된 적어도 하나의 컨트롤러를 포함할 수 있다. 적어도 하나의 컨트롤러는 더미 어드레스로 인코딩된 판독 및 기록 명령을 수신하도록 구성될 수 있다. 적어도 하나의 컨트롤러는 멀웨어 보호 관련 프로그램에 의해 암호화되었던 실제 판독 및 기록 어드레스를 각각의 판독 및 기록 명령의 피연산자로 복호화하도록 구성될 수 있다.In various embodiments, an apparatus may include a plurality of data storage devices, and at least one controller communicatively coupled to the data storage device. The at least one controller may be configured to receive a read and write command encoded with a dummy address. The at least one controller may be configured to decode the actual read and write addresses that were encrypted by the malware protection related program to the operands of the respective read and write instructions.
다양한 실시예에서, 실제 판독 및 기록 어드레스는 공개 키로 암호화될 수 있고 적어도 하나의 컨트롤러는 실제 판독 및 기록 어드레스를 공개 키에 상응하는 비밀 키로 복호화하도록 구성될 수 있다.In various embodiments, the actual read and write addresses may be encrypted with a public key, and at least one controller may be configured to decrypt the actual read and write addresses with a secret key corresponding to the public key.
다양한 실시예에서, 수신된 판독 및 기록 어드레스는 암호화의 듀얼 레벨로 암호화될 수 있었고 적어도 하나의 컨트롤러는 암호화의 듀얼 레벨을 복호화하도록 구성될 수 있다.In various embodiments, the received read and write addresses may be encrypted at a dual level of encryption and at least one controller may be configured to decrypt the dual level of encryption.
상술된 실시예 중 어느 것에 대한 특정 상세는 전적으로 또는 부분적으로 본 개시의 새로운 실시예를 형성하도록 하나 이상의 다른 실시예와 전적으로 또는 부분적으로 결합될 수 있다.The specific details of any of the above-described embodiments may be wholly or partially combined with one or more other embodiments to form a new embodiment of the disclosure in whole or in part.
Claims (28)
상기 복수의 명령어는 복수의 저장 디바이스의 컨트롤러로 하여금 상기 컨트롤러에 의한 명령어의 실행에 응답하여,
상기 컨트롤러와 결합된 호스트 컴퓨팅 디바이스로부터 제 1 명령어를 수신하게 하고 - 상기 제 1 명령어는 제 1 어드레스 및 피연산자를 포함하고, 상기 제 1 명령어는 명목상 안티 멀웨어 보호 관련 동작과 연관되고, 상기 제 1 어드레스는 상기 복수의 저장 디바이스의 제 1 의 하나 이상의 저장 위치를 지칭함 - ,
상기 피연산자로부터 상기 복수의 저장 디바이스의 제 2 의 하나 이상의 저장 위치에서 동작될 제 2 명령어를 복구하게 하고 - 상기 제 2 명령어는 실질적으로 상기 안티 멀웨어 보호 관련 동작과 연관되고, 상기 제 1 의 하나 이상의 저장 위치 및 상기 제 2 의 하나 이상의 저장 위치는 적어도 하나의 저장 위치만큼 다름 -,
상기 안티 멀웨어 보호 관련 동작을 실시하기 위해 상기 제 2 의 하나 이상의 저장 위치에서 동작하는 상기 제 2 명령어를 실행하게 하고 - 상기 안티 멀웨어 보호 관련 동작은 상기 제 2 의 하나 이상의 저장 위치에서 수행될 판독 동작 또는 기록 동작 중 하나임 -,
상기 판독 동작에 대해, 상기 복수의 명령어는 또한 상기 컨트롤러로 하여금, 상기 제 2 의 하나 이상의 저장 위치로부터 판독된 데이터를 어셈블링하여 어셈블링된 데이터를 형성하게 하고, 상기 어셈블링된 데이터를 상기 제 1 명령어의 판독 출력 데이터로서 상기 호스트 컴퓨팅 디바이스에 반환하게 하고,
상기 기록 동작에 대해, 상기 복수의 명령어는 또한 상기 컨트롤러로 하여금, 상기 제 2 의 하나 이상의 저장 위치 내에 스트라이프 방식(a striped manner)으로 데이터를 저장하게 하도록 구성되는
컴퓨터 판독 가능 저장 매체.
A computer readable storage medium comprising a computer program having a plurality of instructions for providing antimalware protection,
Wherein the plurality of instructions cause the controller of the plurality of storage devices to perform the steps of:
Wherein the first instruction comprises a first address and an operand, the first instruction is associated with a nominal antimalware protection related operation, the first instruction is associated with a first address and an operand, Refers to a first one or more storage locations of the plurality of storage devices,
The second instruction being operative to substantially operate in the second one or more storage locations of the plurality of storage devices from the operand, wherein the second instruction is substantially associated with the anti-malware protection related operation, The storage location and the second one or more storage locations differ by at least one storage location,
To perform the anti-malware protection related operation, the anti-malware protection-related operation causing the second instruction to be executed in the second one or more storage locations, Or recording operation,
For the read operation, the plurality of instructions may also cause the controller to assemble data read from the second one or more storage locations to form assembled data, 1 < / RTI > command to the host computing device,
For the write operation, the plurality of instructions may also be configured to cause the controller to store data in a striped manner within the second one or more storage locations
Computer readable storage medium.
상기 컨트롤러는 상기 컨트롤러 및 상기 호스트 컴퓨팅 디바이스를 통신 가능하게 결합하는 신뢰 연결을 통해 상기 제 1 명령어를 수신할 수 있고, 상기 복수의 명령어는 또한 상기 컨트롤러로 하여금 상기 명령어의 실행에 응답하여,
상기 컨트롤러를 상기 호스트 컴퓨팅 디바이스에 결합하는 제 2 채널(secondary channel)을 통해 상기 컨트롤러와 상기 호스트 컴퓨팅 디바이스 사이에 상기 신뢰 연결을 형성하게 하도록 구성되고,
상기 컨트롤러 및 상기 호스트 컴퓨팅 디바이스는 또한 제 1 채널(primary channel)을 통해 서로 결합되는
컴퓨터 판독 가능 저장 매체.
The method according to claim 1,
Wherein the controller is capable of receiving the first instruction through a trusted connection that communicatively combines the controller and the host computing device and the plurality of instructions also cause the controller to respond to execution of the instruction,
And to establish the trusted connection between the controller and the host computing device via a secondary channel coupling the controller to the host computing device,
The controller and the host computing device may also be coupled to each other via a primary channel
Computer readable storage medium.
상기 컨트롤러로 하여금 상기 피연산자로부터 상기 제 2 명령어를 복구하게 하도록 구성된 상기 복수의 명령어는 또한, 상기 컨트롤러로 하여금 상기 복수의 명령어에 기초하여 상기 피연산자를 디코딩하거나 복호화하게 하도록 구성되는
컴퓨터 판독 가능 저장 매체.
The method according to claim 1,
Wherein the plurality of instructions configured to cause the controller to recover the second instruction from the operand are further configured to cause the controller to decode or decode the operand based on the plurality of instructions
Computer readable storage medium.
상기 복수의 명령어는 상기 컨트롤러로 하여금 비밀 키를 사용하여 상기 피연산자로부터 상기 제 2 명령어를 디코딩하거나 복호화하게 하도록 구성되는
컴퓨터 판독 가능 저장 매체.
The method of claim 3,
Wherein the plurality of instructions are configured to cause the controller to decode or decode the second instruction from the operand using a secret key
Computer readable storage medium.
상기 복수의 명령어는 상기 컨트롤러의 인증서를 포함하고, 상기 인증서는 상기 비밀 키를 포함하는
컴퓨터 판독 가능 저장 매체.
5. The method of claim 4,
Wherein the plurality of commands include a certificate of the controller, and the certificate includes the secret key
Computer readable storage medium.
상기 복수의 저장 디바이스는 독립 디스크의 어레이를 포함하는
컴퓨터 판독 가능 저장 매체.
The method according to claim 1,
Wherein the plurality of storage devices comprise an array of independent disks
Computer readable storage medium.
비트 레벨, 바이트 레벨, 및 블록 레벨의 스트라이핑 중 하나를 사용하고 전용 패리티 또는 분산 패리티 중 하나를 사용하여 상기 독립 디스크의 어레이에 데이터가 스트라이프 방식으로 저장되는
컴퓨터 판독 가능 저장 매체.
The method according to claim 6,
Data is stored in an array of independent disks in a striped fashion using one of bit level, byte level, and block level striping and using either dedicated parity or distributed parity
Computer readable storage medium.
상기 제 2 명령어는 멀웨어가 상기 안티 멀웨어 보호 관련 동작을 검출하는 것을 방지하도록 암호화되는
컴퓨터 판독 가능 저장 매체.
The method according to claim 1,
The second instruction is encrypted to prevent malware from detecting the anti-malware protection related operation
Computer readable storage medium.
복수의 저장 디바이스의 컨트롤러에 의해, 상기 컨트롤러에 결합된 호스트 컴퓨팅 디바이스로부터 제 1 명령어를 수신하는 단계 - 상기 제 1 명령어는 제 1 어드레스 및 피연산자를 포함하고, 상기 제 1 명령어는 명목상 안티 멀웨어 보호 관련 동작과 연관되고, 상기 제 1 어드레스는 상기 복수의 저장 디바이스의 제 1 의 하나 이상의 저장 위치를 지칭함 - 와,
상기 컨트롤러에 의해, 상기 피연산자로부터 상기 복수의 저장 디바이스의 제 2 의 하나 이상의 저장 위치에서 동작될 제 2 명령어를 복구하는 단계 - 상기 제 2 명령어는 실질적으로 상기 안티 멀웨어 보호 관련 동작과 연관되고, 상기 제 1 의 하나 이상의 저장 위치 및 상기 제 2 의 하나 이상의 저장 위치는 적어도 하나의 저장 위치만큼 다름 - 와,
상기 컨트롤러에 의해, 상기 안티 멀웨어 보호 관련 동작을 실시하기 위해 상기 제 2 의 하나 이상의 저장 위치에서 동작하는 상기 제 2 명령어를 실행하는 단계 - 상기 제 1 명령어 및 상기 제 2 명령어는 판독 명령어 또는 기록 명령어임 - 를 포함하되,
상기 판독 명령어에 대해, 상기 방법은, 상기 컨트롤러에 의해 상기 제 2 의 하나 이상의 저장 위치로부터 판독된 데이터를 어셈블링하여 어셈블링된 데이터를 형성하는 단계와, 상기 컨트롤러에 의해 상기 어셈블링된 데이터를 상기 제 1 명령어의 판독 출력 데이터로서 상기 호스트 컴퓨팅 디바이스에 반환하는 단계를 더 포함하고,
상기 기록 명령어에 대해, 상기 방법은, 상기 컨트롤러에 의해 상기 복수의 저장 디바이스에 스트라이프 방식으로 데이터를 저장하는 단계를 더 포함하는
안티 멀웨어 보호를 제공하는 방법.
A method for providing antimalware protection,
Receiving a first instruction from a host computing device coupled to the controller by a controller of the plurality of storage devices, the first instruction comprising a first address and an operand, the first instruction being associated with a nominal anti- Wherein the first address refers to a first one or more storage locations of the plurality of storage devices,
Recovering, by the controller, a second instruction to be operated at a second one or more storage locations of the plurality of storage devices from the operand, the second instruction being substantially associated with the anti-malware protection related operation, The first one or more storage locations and the second one or more storage locations differ by at least one storage location,
Executing, by the controller, the second instruction operating in the second one or more storage locations to perform the anti-malware protection related operation, the first instruction and the second instruction being a read instruction or a write instruction Lt; RTI ID = 0.0 >
For the read command, the method further comprises: assembling data read from the second one or more storage locations by the controller to form assembled data; and writing the assembled data by the controller To the host computing device as readout output data of the first instruction,
For the write command, the method further comprises storing data in a striped fashion on the plurality of storage devices by the controller
How to provide anti-malware protection.
상기 수신하는 단계는 상기 컨트롤러 및 상기 호스트 컴퓨팅 디바이스를 통신 가능하게 결합하는 신뢰 연결을 통해 상기 제 1 명령어를 수신하는 단계를 포함하고,
상기 방법은, 상기 컨트롤러에 의해, 상기 컨트롤러를 상기 호스트 컴퓨팅 디바이스에 결합하는 제 2 채널(secondary channel)을 통해 상기 컨트롤러와 상기 호스트 컴퓨팅 디바이스 사이에 상기 신뢰 연결을 형성하는 단계를 더 포함하고,
상기 컨트롤러 및 상기 호스트 컴퓨팅 디바이스는 또한 제 1 채널(primary channel)을 통해 서로 결합되는
안티 멀웨어 보호를 제공하는 방법.
10. The method of claim 9,
Wherein the receiving comprises receiving the first instruction through a trusted connection communicatively coupling the controller and the host computing device,
The method further comprises the step of forming, by the controller, the trusted connection between the controller and the host computing device via a secondary channel coupling the controller to the host computing device,
The controller and the host computing device may also be coupled to each other via a primary channel
How to provide anti-malware protection.
상기 피연산자는 암호화되고,
상기 피연산자로부터 상기 제 2 명령어를 복구하는 단계는 비밀 키를 사용함으로써 상기 피연산자를 복호화하는 단계를 포함하는
안티 멀웨어 보호를 제공하는 방법.
10. The method of claim 9,
The operand is encrypted,
Wherein recovering the second instruction from the operand comprises decrypting the operand by using a secret key
How to provide anti-malware protection.
데이터는 패리티, 미러링 또는 리던던시 없이 독립 디스크의 어레이에 스트라이프 방식으로 저장되는
안티 멀웨어 보호를 제공하는 방법.
10. The method of claim 9,
Data is stored in stripes on arrays of independent disks without parity, mirroring, or redundancy.
How to provide anti-malware protection.
데이터는 바이트 레벨 스트라이핑 및 전용 패리티를 사용하여 독립 디스크의 어레이에 스트라이프 방식으로 저장되는
안티 멀웨어 보호를 제공하는 방법.
10. The method of claim 9,
Data is stored in stripes on an array of independent disks using byte-level striping and dedicated parity
How to provide anti-malware protection.
상기 복수의 데이터 저장 디바이스에 통신 가능하게 결합되고, 제 1 복수의 명령어에 응답하여 데이터를 상기 복수의 데이터 저장 디바이스에 기록하고 데이터를 상기 복수의 데이터 저장 디바이스로부터 판독하도록 구성된 적어도 하나의 컨트롤러를 포함하되,
상기 컨트롤러는,
제 1 저장 명령어를 수신하고 - 상기 제 1 저장 명령어는 제 1 피연산자, 및 상기 복수의 저장 디바이스의 제 1 의 하나 이상의 저장 위치에 상응하는 제 1 어드레스를 포함함 -,
상기 제 1 피연산자에 기초하여 제 2 저장 명령어를 복구하고 - 상기 제 2 저장 명령어는 적어도 하나의 저장 위치만큼 상기 제 1 의 하나 이상의 저장 위치와 다른, 상기 복수의 저장 디바이스의 제 2 의 하나 이상의 저장 위치에 상응하는 제 2 어드레스를 포함함 - ,
안티 멀웨어 보호 관련 동작을 실시하기 위해 상기 제 2 의 하나 이상의 저장 위치에서 동작하는 상기 제 2 저장 명령어를 실행하고 - 상기 안티 멀웨어 보호 관련 동작은 상기 제 2 의 하나 이상의 저장 위치에서 수행될 판독 동작 또는 기록 동작 중 하나임 -,
상기 판독 동작에 대해, 상기 컨트롤러는 또한, 상기 제 2 의 하나 이상의 저장 위치로부터 판독된 데이터를 어셈블링하여 어셈블링된 데이터를 형성하고, 상기 어셈블링된 데이터를 상기 제 1 명령어의 판독 출력 데이터로서 호스트 컴퓨팅 디바이스에 반환하고,
상기 기록 동작에 대해, 상기 컨트롤러는 또한, 상기 제 2 의 하나 이상의 저장 위치 내에 스트라이프 방식으로 데이터를 저장하는
안티 멀웨어 보호를 제공하는 장치.
A plurality of data storage devices,
And at least one controller communicatively coupled to the plurality of data storage devices and configured to write data to the plurality of data storage devices and read data from the plurality of data storage devices in response to a first plurality of instructions However,
The controller comprising:
Wherein the first store instruction comprises a first operand and a first address corresponding to a first one or more storage locations of the plurality of storage devices,
Recovering a second store instruction based on the first operand, wherein the second store instruction is different from the first one or more store locations by at least one store location, the second one or more store A second address corresponding to the location,
Executing the second store instruction operating at the second one or more storage locations to perform an anti-malware protection related operation, the anti-malware protection related operation comprising a read operation to be performed at the second one or more storage locations, Recording operation,
For the read operation, the controller is further configured to assemble data read from the second one or more storage locations to form assembled data, and to read the assembled data as readout data of the first instruction To the host computing device,
For the write operation, the controller is further configured to store data in a striped fashion within the second one or more storage locations
A device that provides anti-malware protection.
상기 컨트롤러는 상기 컨트롤러 및 상기 호스트 컴퓨팅 디바이스를 통신 가능하게 결합하는 제 2 채널을 통해 상기 컨트롤러와 상기 호스트 컴퓨팅 디바이스 사이의 신뢰 논리 연결에 의해 상기 호스트 컴퓨팅 디바이스로부터 상기 제 1 저장 명령어를 수신하도록 구성되고,
상기 컨트롤러 및 상기 호스트 컴퓨팅 디바이스는 또한 제 1 채널을 통해 서로 결합되는
안티 멀웨어 보호를 제공하는 장치.
15. The method of claim 14,
The controller is configured to receive the first store instruction from the host computing device by a trusted logical connection between the controller and the host computing device over a second channel communicatively coupling the controller and the host computing device ,
The controller and the host computing device may also be coupled to each other via a first channel
A device that provides anti-malware protection.
상기 컨트롤러는 또한 상기 제 1 채널을 통해 제 1 명령어 세트에 응답하고 상기 제 2 채널을 통해 제 2 명령어 세트에 응답하도록 구성되고,
상기 제 2 명령어 세트는 상기 제 1 명령어 세트보다 더 적은 명령어를 포함하는
안티 멀웨어 보호를 제공하는 장치.
15. The method of claim 14,
The controller is also configured to respond to the first instruction set over the first channel and to respond to the second instruction set over the second channel,
Wherein the second instruction set includes fewer instructions than the first instruction set
A device that provides anti-malware protection.
상기 제 2 채널은 대역 외 채널인
안티 멀웨어 보호를 제공하는 장치.
15. The method of claim 14,
The second channel is an out-of-band channel
A device that provides anti-malware protection.
상기 복수의 데이터 저장 디바이스는 독립 디스크의 어레이를 포함하는
안티 멀웨어 보호를 제공하는 장치.
15. The method of claim 14,
Wherein the plurality of data storage devices comprise an array of independent disks
A device that provides anti-malware protection.
비트 레벨, 바이트 레벨, 및 블록 레벨의 스트라이핑 중 하나를 사용하고 전용 패리티 또는 분산 패리티 저장 기술 중 하나를 사용하여 상기 독립 디스크의 어레이에 데이터가 스트라이프 방식으로 저장되는
안티 멀웨어 보호를 제공하는 장치.
19. The method of claim 18,
Data is stored in a striped fashion on the array of independent disks using one of bit level, byte level, and block level striping and using either dedicated parity or distributed parity storage techniques
A device that provides anti-malware protection.
상기 컨트롤러는 상기 컨트롤러에 의한 암호화된 통신을 지원하도록 구성된 패리티 생성기를 포함하는
안티 멀웨어 보호를 제공하는 장치.
15. The method of claim 14,
Wherein the controller comprises a parity generator configured to support encrypted communication by the controller
A device that provides anti-malware protection.
상기 복수의 데이터 저장 디바이스에 통신 가능하게 결합되는 적어도 하나의 컨트롤러를 포함하되,
상기 컨트롤러는,
잘못된 판독 및 기록 어드레스로 인코딩된 판독 및 기록 명령을 수신하고,
멀웨어 보호 관련 프로그램에 의해 암호화되었던 실제 판독 및 기록 어드레스를 각각의 판독 및 기록 명령의 피연산자로 복호화하도록 구성되고,
판독 명령에 대해, 상기 컨트롤러는 또한, 상기 실제 판독 및 기록 어드레스부터 판독된 데이터를 어셈블링하여 어셈블링된 데이터를 형성하고, 상기 어셈블링된 데이터를 상기 판독 명령의 판독 출력 데이터로서 반환하고,
기록 명령에 대해, 상기 컨트롤러는 또한, 상기 실제 판독 및 기록 어드레스 내에 스트라이프 방식으로 데이터를 저장하는
안티 멀웨어 보호를 제공하는 장치.
A plurality of data storage devices,
At least one controller communicatively coupled to the plurality of data storage devices,
The controller comprising:
Receiving a read and write command encoded with a wrong read and write address,
The actual read and write addresses that have been encrypted by the malware protection related program are decoded into the operands of the respective read and write commands,
For a read command, the controller is further configured to assemble data read from the actual read and write address to form assembled data, return the assembled data as read out data of the read command,
For a write command, the controller is further configured to store data in a striped fashion within the actual read and write addresses
A device that provides anti-malware protection.
상기 실제 판독 및 기록 어드레스는 공개 키로 암호화되고, 상기 적어도 하나의 컨트롤러는 상기 실제 판독 및 기록 어드레스를 상기 공개 키에 상응하는 비밀 키로 복호화하도록 구성되는
안티 멀웨어 보호를 제공하는 장치.
22. The method of claim 21,
Wherein the actual read and write addresses are encrypted with a public key and the at least one controller is configured to decrypt the actual read and write addresses with a secret key corresponding to the public key
A device that provides anti-malware protection.
상기 수신된 판독 및 기록 어드레스는 듀얼 암호화 레벨로 암호화된 것이고, 상기 적어도 하나의 컨트롤러는 상기 듀얼 암호화 레벨을 복호화하도록 구성되는
안티 멀웨어 보호를 제공하는 장치.23. The method of claim 22,
Wherein the received read and write addresses are encrypted with a dual encryption level and the at least one controller is configured to decrypt the dual encryption level
A device that provides anti-malware protection.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2012/029656 WO2013141838A1 (en) | 2012-03-19 | 2012-03-19 | Anti-malware protection operation with instruction included in an operand |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140125445A KR20140125445A (en) | 2014-10-28 |
KR101636638B1 true KR101636638B1 (en) | 2016-07-05 |
Family
ID=49223113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147026115A KR101636638B1 (en) | 2012-03-19 | 2012-03-19 | Anti-malware protection operation with instruction included in an operand |
Country Status (5)
Country | Link |
---|---|
US (1) | US9027148B2 (en) |
EP (1) | EP2828783B1 (en) |
KR (1) | KR101636638B1 (en) |
CN (1) | CN104205044B (en) |
WO (1) | WO2013141838A1 (en) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9503476B2 (en) * | 2014-01-28 | 2016-11-22 | Vivint, Inc. | Anti-takeover systems and methods for network attached peripherals |
US10628353B2 (en) | 2014-03-08 | 2020-04-21 | Diamanti, Inc. | Enabling use of non-volatile media-express (NVMe) over a network |
US11921658B2 (en) | 2014-03-08 | 2024-03-05 | Diamanti, Inc. | Enabling use of non-volatile media-express (NVMe) over a network |
AU2015229802A1 (en) | 2014-03-08 | 2016-10-06 | Diamanti, Inc. | Methods and systems for converged networking and storage |
US10635316B2 (en) | 2014-03-08 | 2020-04-28 | Diamanti, Inc. | Methods and systems for data storage using solid state drives |
US10657262B1 (en) * | 2014-09-28 | 2020-05-19 | Red Balloon Security, Inc. | Method and apparatus for securing embedded device firmware |
US11222116B2 (en) | 2016-02-03 | 2022-01-11 | Hewlett-Packard Development Company, L.P. | Heartbeat signal verification |
KR102573921B1 (en) | 2016-09-13 | 2023-09-04 | 삼성전자주식회사 | Storage device and method for protecting against virus/malware thereof and computing system having the same |
US20190042781A1 (en) * | 2017-08-04 | 2019-02-07 | Bitdefender IPR Management Ltd. | Secure Storage Device |
US10868669B2 (en) * | 2017-10-16 | 2020-12-15 | Taiwan Semiconductor Manufacturing Company Ltd. | Method for role-based data transmission using physically unclonable function (PUF)-based keys |
CN111008378B (en) * | 2019-11-29 | 2023-08-01 | 四川效率源信息安全技术股份有限公司 | Method for cleaning malicious codes in hard disk firmware area |
KR20220007988A (en) * | 2020-07-13 | 2022-01-20 | 에스케이하이닉스 주식회사 | Memory system for assuring reliability |
CN113836073A (en) * | 2021-07-30 | 2021-12-24 | 湖北三江航天万峰科技发展有限公司 | Weapon system test data processing method, device and equipment |
CN116795741B (en) * | 2023-08-28 | 2023-11-10 | 凡澈科技(武汉)有限公司 | Method and system for preventing memory data from being deleted and tampered |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090228262A1 (en) | 2008-02-25 | 2009-09-10 | International Business Machines Corporation | Use of test protection instruction in computing environments that support pageable guests |
US20090293126A1 (en) | 2008-05-23 | 2009-11-26 | Verizon Corporate Services Group Inc. | Malware detection device |
US20100275034A1 (en) | 2005-02-11 | 2010-10-28 | Simplex Major Sdn, Bhd. | Software protection method |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6594780B1 (en) * | 1999-10-19 | 2003-07-15 | Inasoft, Inc. | Operating system and data protection |
KR100585095B1 (en) * | 2003-06-26 | 2006-05-30 | 삼성전자주식회사 | Method and apparatus for protecting data in data transmission system |
WO2005015818A1 (en) * | 2003-08-07 | 2005-02-17 | Rao Mohan G R | Data security and digital rights management system |
US7647636B2 (en) * | 2005-08-24 | 2010-01-12 | Microsoft Corporation | Generic RootKit detector |
US8151352B1 (en) * | 2006-07-14 | 2012-04-03 | Bitdefender IPR Managament Ltd. | Anti-malware emulation systems and methods |
US8667597B2 (en) * | 2008-06-25 | 2014-03-04 | Lockheed Martin Corporation | Systems, methods, and products for secure code execution |
KR20100023494A (en) * | 2008-08-22 | 2010-03-04 | 엘지전자 주식회사 | Mobile terminal and method for protecting a virus in thereof |
US8582775B2 (en) * | 2009-02-12 | 2013-11-12 | General Motors Llc | Method of securing and authenticating data using micro-certificates |
US8856534B2 (en) * | 2010-05-21 | 2014-10-07 | Intel Corporation | Method and apparatus for secure scan of data storage device from remote server |
-
2012
- 2012-03-19 EP EP12871872.3A patent/EP2828783B1/en not_active Not-in-force
- 2012-03-19 US US13/995,132 patent/US9027148B2/en active Active
- 2012-03-19 KR KR1020147026115A patent/KR101636638B1/en active IP Right Grant
- 2012-03-19 WO PCT/US2012/029656 patent/WO2013141838A1/en active Application Filing
- 2012-03-19 CN CN201280071977.1A patent/CN104205044B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100275034A1 (en) | 2005-02-11 | 2010-10-28 | Simplex Major Sdn, Bhd. | Software protection method |
US20090228262A1 (en) | 2008-02-25 | 2009-09-10 | International Business Machines Corporation | Use of test protection instruction in computing environments that support pageable guests |
US20090293126A1 (en) | 2008-05-23 | 2009-11-26 | Verizon Corporate Services Group Inc. | Malware detection device |
Also Published As
Publication number | Publication date |
---|---|
CN104205044A (en) | 2014-12-10 |
CN104205044B (en) | 2017-02-22 |
KR20140125445A (en) | 2014-10-28 |
US20130340088A1 (en) | 2013-12-19 |
EP2828783A4 (en) | 2015-11-25 |
US9027148B2 (en) | 2015-05-05 |
EP2828783B1 (en) | 2019-01-09 |
EP2828783A1 (en) | 2015-01-28 |
WO2013141838A1 (en) | 2013-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101636638B1 (en) | Anti-malware protection operation with instruction included in an operand | |
KR101636816B1 (en) | Apparatus, system, and method for providing memory access control | |
TWI514187B (en) | Systems and methods for providing anti-malware protection on storage devices | |
JP6611797B2 (en) | Method for secure input mechanism based on privileged mode | |
WO2017041603A1 (en) | Data encryption method and apparatus, mobile terminal, and computer storage medium | |
US8650649B1 (en) | Systems and methods for determining whether to evaluate the trustworthiness of digitally signed files based on signer reputation | |
KR20180030328A (en) | Storage device and method for protecting against virus/malware thereof and computing system having the same | |
TW201349850A (en) | Secure key generating apparatus and method, host device and storage device | |
CN114830595A (en) | Delegating cryptographic keys to a memory subsystem | |
EP3198518B1 (en) | Prevention of cable-swap security attack on storage devices | |
CN113632066A (en) | Error identification in executed code | |
Neugschwandtner et al. | A transparent defense against USB eavesdropping attacks | |
KR20220085811A (en) | One-time password generation | |
Khelif et al. | Toward a hardware man-in-the-middle attack on pcie bus for smart data replay | |
TWI789291B (en) | Module and method for authenticating data transfer between a storage device and a host device | |
US11954333B2 (en) | Secured firmware with anti-malware | |
Plaga et al. | Secure your SSH Keys! Motivation and Practical Implementation of a HSM-based Approach Securing Private SSH-Keys | |
Bel et al. | Inkpack: A Secure, Data-Exposure Resistant Storage System | |
Bel et al. | Inkpack |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20190530 Year of fee payment: 4 |