KR101303532B1 - 암호 해싱을 이용한 바이러스 위치파악 - Google Patents

암호 해싱을 이용한 바이러스 위치파악 Download PDF

Info

Publication number
KR101303532B1
KR101303532B1 KR1020097011187A KR20097011187A KR101303532B1 KR 101303532 B1 KR101303532 B1 KR 101303532B1 KR 1020097011187 A KR1020097011187 A KR 1020097011187A KR 20097011187 A KR20097011187 A KR 20097011187A KR 101303532 B1 KR101303532 B1 KR 101303532B1
Authority
KR
South Korea
Prior art keywords
file
hashes
blocks
virus
sequence
Prior art date
Application number
KR1020097011187A
Other languages
English (en)
Other versions
KR20090113247A (ko
Inventor
크레센조 지오반니 디
파라마크 바킬
Original Assignee
티티아이 인벤션스 씨 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 티티아이 인벤션스 씨 엘엘씨 filed Critical 티티아이 인벤션스 씨 엘엘씨
Publication of KR20090113247A publication Critical patent/KR20090113247A/ko
Application granted granted Critical
Publication of KR101303532B1 publication Critical patent/KR101303532B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols

Abstract

무결성 점검 기법들을 사용하여 컴퓨터 바이러스들을 식별하고 위치파악하는 방법들이 제공된다. 3가지 유형들의 바이러스 감염들의 각각을 위한 바이러스 위치파악 방법이 제공되는데, 파일 블록들의 시퀀스를 계산하는 단계, 호스트 파일로부터 상기 파일 블록들의 시퀀스들을 위한 제1해시들을 계산하는 단계, 감염된 파일로부터 동일하거나 관련된 파일 블록들의 시퀀스들을 위한 제2해시들을 계산하는 단계, 및 동일하거나 관련된 파일 블록들의 시퀀스들로부터 호스트 파일로부터의 해시들을 감염된 파일로부터의 해시들과 비교하여서 상기 제1해시들 및 상기 제2해시들의 일부가 일치하지 않으면, 바이러스의 위치를 출력하는 단계를 포함한다. 바이러스 감염의 유형에 의존하여 파일 블록들의 시퀀스를 계산하며, 내-충돌 해시 함수, 디지털 서명 체계, 메시지 인증 코드, 또는 의사-랜덤 함수를 사용하여 해시들을 계산하는 방법들이 제공된다.

Description

암호 해싱을 이용한 바이러스 위치파악{Virus localization using cryptographic hashing}
관련 출원에 대한 상호 참조
본 발명은 2006년 10월 31일자로 출원된 미국 특허 가출원 제60/855,710호를 우선권 주장하며, 그 전체 개시 내용은 참고로써 여기에 통합된다.
발명의 분야
본 발명은 대체로 소프트웨어 보안에 관련되고, 더 상세하게는 컴퓨터 바이러스들을 식별하고 위치 파악하는 무결성 검사 기법들을 사용하는 방법들에 관련된다.
바이러스 검출은 바이러스들에 대한 예방 대책을 취할 것이 일상적으로 요청되는 이를 테면 항바이러스 소프트웨어를 구입하고 실행하는 어느 컴퓨터 사용자라도 놀랄 만큼 광범위하게 직면하는 문제이다. 바이러스는 텍스트, 실행가능 코드 등의 형태의 데이터로, 그것은 사용자 파일 속에 사용자의 인가 없이 그리고 대체로 사용자의 인식 없이 부가되거나 겹쳐쓰기 된다. 바이러스 검출 영역에서의 연구는 지정된 부류들의 바이러스들을 타깃으로 하는 각종 발견적 해결책들을 포함한다. 이 문제를 해결하기 위해 시도하는 가장 성공적인 현대 기법들 중 일부는 서명 검출 및 무결성 검사의 일반 패러다임들에 속하는데, 예컨대, E. Skoudis, "MALWARE: Fighting Malicious Code", Prentice Hall (2004)와 P. Szor, "The Art of Computer Virus Research and Defense", Addison Wesley (2005)이 있다. 전자의 패러다임은 알려진 바이러스들에 대해 서명들(signatures)이라 불리는, 감염된 코드의 조각들을 발견하며, 그 서명들을 저장하고, 컴퓨터 메모리를 스캔하여 그런 서명들을 검색하는 소프트웨어를 개발하는 것을 요구한다. 후자의 패러다임은, 본 발명이 초점을 두는 것으로, 파일에 대한 비인가 변경들을 검출하고, 미지의 바이러스들이 존재함을 잠정적으로 나타내는 암호 해시 기능들을 사용하는 것을 요구한다. 후자의 패러다임의 성공의 중요한 예는 UNIX 환경을 위한 광범위하게 이용가능한 무결성 검사 프로그램인 트립와이어(Tripwire)이다.
예를 들면 G. Di Crescenzo, A. Ghosh, 및 R. Talpade의 "Towards a Theory of Intrusion Detection"에서 논의된 바와 같은, 서명의 침입 탐지 원리 및 변칙(anomaly) 검출 또한 바이러스 검출 방법론에 대한 통찰을 제공한다. 서명 바이러스 검출 패러다임은 침입 탐지 영역에서 서명 검출 원리와 유사하며; 반면에, 무결성 검사 패러다임은 침입 탐지 영역에서 변칙 검출 원리와 더 유사하다.
이용가능한 항바이러스 소프트웨어는 전형적으로는 바이러스들을 검출하기 위해 다음 3가지 주요 기법들을 사용한다: 서명, 발견적 방법(heuristics), 및 무결성 검증. 서명 기법은 침임 탐지 시스템들에서의 서명 검출 접근방법과 유사하다. 먼저, 알려진 바이러스들이 연구되고 그것들의 서명들이 저장되며, 그 후 이들 서명의 발생이 실행가능 후보 파일들에서 찾아진다. 이것이 바이러스 검출을 위한 가장 대중적인 접근방법이지만, 그것은 벤더들에 의한 서명 데이터베이스의 신속한 업데이트 및 사용자들에 의한 벤더들의 서명 파일들의 신속한 업데이트에 의존하고, 다형 변성(polymorphic and metamorphic) 바이러스 기법들에 의해 쉽사리 검출된다.
다른 2가지 기법들인 발견적 방법과 무결성 검증은 침입 탐지 시스템들에서의 변칙 검출 접근방법과 더 유사하다. 발견적 방법(기법)들은 바이러스들이 나타낼 것 같은 이를테면 실행가능 파일들에 쓰기, 부트 섹터들에 접근, 하드 드라이브 내용의 삭제 등을 시도하는 일부 행동들에 기초하여 바이러스들을 식별하기를 시도한다는 점에서 다소 복잡할 수 있다. 무결성 검증 기법들은 감염이 일어난 후에 파일들에 대한 예상치 못한 변형들을 검출하기를 잠정적으로는 감염된 파일들의 실행이 일어나기 전에 시도하고, 그래서 여전히 감염이 해롭지 않게 한다.
발견적 기법 및 무결성 검증 기법 둘 다는 더 지능적인 바이러스들, 이를테면 동질이상 및 변성 능력들을 갖춘 바이러스들을 잡아낼 잠재력을 가지지만, 그 기법들은 기껏해야 특정 파일에 대한 경보를 울릴 수 있어, 잠재적인 바이러스들의 위치, 성질 및 영향에 관한 결론이 도출될 필요가 있는 통제된 환경 하의 바이러스 진단 단계에서 추후에 주의 깊게 에뮬레이트하고 분석되는 것이 필요하다. 에뮬레이션을 위한 정확히 통제된 환경의 실현이 어렵기 때문에, 도출된 결과의 정확성은 신뢰할 수 없다. 더구나, 많은 경우들에서, 원본 파일에 대해 바이러스에 의해 행해진 변형은 매우 미미하여, 예컨대, 메모리에서 약간 다른 위치에 있는 프로그램에 대한 서브루틴 호출 정도이고, 그러므로 바이러스 자체에 관한 부가 정보를 가 지는 것이 매우 도움이 될 것이다.
게다가, 무결성 검증 기법 또는 무결성 검사 원리만이 파일에 대한 변경을 검출하지만, 파일 내에서 변경이 일어난 곳을 위치파악하거나 표시하지는 않는다. 바이러스에 관한 위치파악(localization) 정보가 없으면, 그것의 검출은 심하게 자원 낭비적이고 실패하는 경향이 있다. 이것은 암묵적으로 소프트웨어 보안성의 영역에서 "바이러스 위치파악(virus localization)이라는 새로운 문제를 명확히 한다.
바이러스 위치파악의 문제는 엄격히 조사되지 않았었고 발명자들이 알게 되기까지는 전부터 심지어 조사 문제가 제기되지도 않았다. 암호 해싱을 데이터에 적용하는 것은 데이터 무결성 검증에 관해 잘 알려진 패러다임이고, 트립와이어처럼, 파일 시스템들의 무결성을 검증하는 프로그램들의 기초이다. 파일의 모든 원자 블록들(atomic blocks)의 암호 해싱 역시 알려진 패러다임이고, 높은 잠복기, 낮은 대역폭 링크로, 또는 어드레스 1회-기록 보관 데이터 저장을 목적으로 파일들을 원격 업데이트하는 프로그램들을 위해 사용되어 왔다. 그러나, 이들 프로그램의 어느 것도 바이러스 위치파악 문제를 해결하지 않는다.
본 발명은 유익하게는 3가지 유형의 바이러스 감염들의 각각에 대해 바이러스 위치파악 방법을 제공한다. 하나의 실시예에서, 이 방법은 호스트 파일로부터 블록들의 시퀀스들을 위한 해시들을 계산하는 단계, 혐의를 받거나 오염된 파일을 복수 개의 그룹들로 분할하는 단계로서, 각 그룹은 복수 개의 블록 시퀀스(블록들의 시퀀스)을 포함하는 단계, 혐의를 받는 파일에서 복수 개의 블록 시퀀스의 모두에 대해 해시들을 계산하는 단계, 및 호스트 파일로부터의 해시들을 혐의를 받는 파일로부터의 해시들과 비교하여서, 만약 불일치가 발견되지 않으면, 혐의를 받는 파일은 "비오염된" 것이라고 선언되지만, 만약 적어도 하나의 불일치가 발견되면, 혐의를 받는 파일은 "오염된" 것이라고 선언되고, 파일 내의 바이러스의 대략적인 위치가 결정된다.
바이러스 위치파악 방법은 파일 블록들의 시퀀스를 계산하는 단계, 호스트 파일로부터 파일 블록들의 시퀀스들을 위한 해시들을 계산하는 단계, 감염된 파일로부터 동일하거나 관련된 파일 블록들의 시퀀스들을 위한 해시들을 계산하는 단계, 및 동일하거나 관련된 파일 블록들의 시퀀스들로부터 호스트 파일로부터의 해시들과 감염된 파일로부터의 해시들을 비교하여서 상기 제1해시들 및 상기 제2해시들의 일부가 일치하지 않으면, 바이러스의 위치를 출력하는 단계를 포함한다. 바이러스 감염의 유형에 의존하여 파일 블록들의 시퀀스를 계산하며, 내-충돌 해시 함수, 디지털 서명 체계, 메시지 인증 코드, 또는 의사-랜덤 함수를 사용하여 해시들을 계산하는 방법들이 제공된다.
본 발명은 발명의 비제한적이고 예시적인 실시예들을 통해 언급된 도면들을 참조하는 상세한 설명에서 더 설명될 것인데, 유사한 번호들은 도면들 전체에 걸쳐 유사한 부분들을 나타낸다. 그러나, 이해되어야 할 바와 같이, 본 발명은 도시된 정밀한 배치구성 및 수단들로 제한되지 않는다. 도면들 중에서:
도 1은 개략도이며;
도 2는 바이러스 위치 파악에 나중에 사용되는 파일 블록들의 시퀀스들 및 해시들을 계산하는 해싱 알고리즘의 일반 구조를 보이며;
도 3은 다시쓰기 바이러스 감염된 파일의 경우에 해싱 알고리즘 Rew-pH에 의해 계산된 파일 블록들의 시퀀스를 보이며;
도 4a는 다시쓰기-바이러스 위치파악 알고리즘 Rew-Loc에서의 단계들을 보이며;
도 4b는 알고리즘 Rew-RecLoc(Rew-Loc에 의해 사용됨)에서의 단계들을 보이며;
도 5는 첨부(appending) 바이러스 감염된 파일의 경우에 해싱 알고리즘 App-pH에 의해 계산된 파일 블록들의 시퀀스를 보이며;
도 6a는 첨부-바이러스 위치파악 알고리즘 App-Loc에서의 단계들을 보이며;
도 6b는 알고리즘 App-RecLoc(App-Loc에 의해 사용됨)에서의 단계들을 보이며;
도 7은 내장(embedding) 바이러스 감염된 파일의 경우에 해싱 알고리즘 Emb-pH에 의해 계산된 파일 블록들의 시퀀스를 보이며;
도 8은 내장-바이러스 위치파악 알고리즘 Emb-Loc에서의 단계들을 보이며;
도 9는 각종 바이러스 위치파악 기법들의 특성들의 요약이며; 그리고
도 10은 각종 바이러스 위치파악 기법들의 성능 평가이다.
바이러스 위치파악을 사용하여 소프트웨어 보안을 개선하는 방법이 제시된다. 위에서 설명된 무결성 검사 원리는 파일에 대한 변경들이 검출될 뿐만 아니라 이들 변경이 파일 내에서 위치파악 되도록 확장될 수 있다.
바이러스 위치파악을 달성하기 위한 방법들은 각각의 감염 기법, 이를테면 다시쓰기 기법들, 첨부(appending) 및 선두부착(prepending) 기법들, 그리고 각각의 삽입(insertion) 또는 내장(embedding) 기법마다 설계될 수 있다. 본 발명의 방법들은 감염 기법에 특화된 코드들에 따라 선택된 집합의 파일 블록들의 각종 시퀀스에 암호 해싱의 반복되는 효율적인 적용에 기초하고 있다. 모든 경우들에서, 이 방법들은 바이러스의 기껏해야 2배 큰 영역이 오염된 파일에서 식별된다는, 다시 말하면, 만족스러운 위치파악과, 위치파악용 해시 함수들에 의해 반환된 해시들이 기존의 암호 해시 함수에 의해 반환된 것들보다 기껏해야 대수 계수(logarithmic factor)만큼 더 길다는, 다시 말하면, 효율성을 달성한다. 출력 효율은 위치파악용 해시 함수의 중대한 특성인데, 훨씬 더 긴, 즉, 입력 문서의 원자 블록들의 수에서 선형적인 계수만큼 더 긴 해시들을 반환하는 트리비얼(trivial) 구조체가 아래에서 논의되고 있기 때문이다.
타깃 파일에 일정한 변형을 수행하여 파일들이 오염되게 하고 오염된 파일들에서 변형의 유형이 특정 감염 기법들에 따라 변화할 수 있게 하는 바이러스들이 아래에서 검사된다. (암호) 내-충돌(collision-resistant) 해싱의 공지된 표기법 및 형식 정의, 예컨대, B. Schneier의 "Applied Cryptography: Protocols, Algorithms and Source Code in C", J. Wiley & Sons (1993)이 제시되고, 바이러스 행동들의 분류가 설명된다.
내-충돌 해싱 표기법
"충돌-회피(collision-intractable)" 해시 함수들, 또는 "무-충돌(collision-free)", "내-충돌(collision-resistant)" 및 때때로 "암호" 함수들이라고 알려진 암호화에 종종 사용되는 수학적 도구들은, 파일들, 메시지들 등의 무결성 검증을 요구하는 것들을 포함한 몇몇 응용들을 위해 매우 흔하게 사용된다. 이 도구들 또는 함수들은 다음과 같이 정의된다: 그것들은 입력으로서 임의 길이의 이진 스트링(압축할 파일을 나타냄)을 취하고, 고정-크기(예컨대, 128- 또는 160-비트) 이진 스트링을 출력(원본 파일의 해시 또는 핑거프린트를 나타냄)으로서 반환한다. 해시 함수에 대한 입력이 160비트보다 훨씬 길 때, 해시 함수의 어느 단일 출력의 전이미지(preimage)들의 수는 매우 크다. 여전히, 이들 함수에 의해 기대되는 놀라운 특성은 어느 효율적인 알고리즘에 대해 동일한 출력에 맵핑하는 2개의 전이미지 바로 그것들을 찾는 것이 어느 알고리즘이나 그것을 함에 있어서 성공을 위해 실행 불가능한 시간(예컨대, 수 세기 이상)을 취해야만 할 것이라는 점에서 계산적으로는 어렵다고 여겨진다는 점이다.
내-충돌 해시 함수의 형식 정의
k를 보안 매개변수라 하고
Figure 112009032683049-pct00001
을 한 패밀리가 되는 함수들
Figure 112009032683049-pct00002
이라 하고, 여기서 a>b이고 w는
Figure 112009032683049-pct00003
를 만족하는 함수 인덱스라 한다. 다음이 만족되면 H는 내-충돌해시 함수 패밀리이다:
(1) 각각의 w에 대해 H w 를 계산하는 확률적 다항 시간 (k에서) 알고리즘이 존재한다;
(2) 어느 확률적 다항 시간 알고리즘 A에 대해, w가 균일하게 선택될 때,
Figure 112009032683049-pct00004
이라서
Figure 112009032683049-pct00005
이 되는 확률은 기껏해야
Figure 112009032683049-pct00006
가 되는 무시가능 함수 가 존재한다.
내-충돌 해시 함수들의 다음 특성이 인식된다: 무시가능 확률을 제외하면, 만일 x 1 x 2 가 다항-시간 알고리즘으로부터 계산된다면,
Figure 112009032683049-pct00008
Figure 112009032683049-pct00009
에 대해,
Figure 112009032683049-pct00010
일 때,
Figure 112009032683049-pct00011
이다. 함수들의 입력에 대해 원자 내-충돌 해시 함수의 반복된 적용을 하게 하는 작성된 내-충돌 해시 함수들의 구조체들(constructions)이 디자인될 수 있어, 어느 2개의 입력에 기초하여 작성된 함수의 결과적인 출력은 입력들의 유사상 및/또는 차이에 관한 정보를 나타낸다.
바이러스 행동들의 분류: 겹쳐쓰기 , 선두부착, 첨부, 내장:
대부분의 인터넷 바이러스들은 다음에서 상세히 기술되는 겹쳐쓰기, 선두부착, 첨부 및 내장이라는 감염 기법들 중의 하나를 따른 다는 것이 특징이 될 수 있다.
겹쳐쓰기 감염 기법
이 감염 기법에서, 바이러스는 호스트의 코드의 부분을 대체하는 것에 의해 호스트 또는 타깃 실행가능 파일을 감염시킨다. 이것이 성취될 수 있는 하나의 방도는 바이러스가 정상 데이터 파일을 열 때처럼 쓰려는 타깃 파일을 단순히 열고 그 다음 자신의 사본을 파일에 저장하여, 결과적으로 파일이 오염되게 하는 것이다. 오염된 실행가능 파일이 그 파일의 소유자에 의해 나중에 실행될 때, 운영 체계는 원본 타깃 프로그램 대신 바이러스 코드를 실행할 것이다. 이 감염 기법은 전형적으로는 타깃 파일을 손상시켜, 그것을 사용할 수 없게 만든다.
선두부착 감염 기법
이 감염 기법에서, 바이러스는 자신의 코드를 바이러스가 감염시키기 원하는 호스트 또는 타깃 실행가능 파일의 시작부에 삽입하여, 오염된 실행가능 파일을 생성한다. 이 기법은 겹쳐쓰기 기법보다 대체로 더 정교하고, 예를 들면, 님다(Nimda) 바이러스에 의해 사용되고 있다. 오염된 파일이 나중에 그 파일의 소유자에 의해 실행될 때, 운영 체계는 바이러스 코드가 실행가능 파일의 시작부에 위치하므로 먼저 바이러스 코드를 실행할 것이고, 그 다음 의도된, 즉 원본 타깃 프로그램을 실행할 것이다. 이 감염 기법은 타깃 파일에 손상을 준 것으로 보이지 않을 뿐만 아니라 코드의 사용자에 의해 쉽게 검출되지 않는 효과도 가진다. 사실, 그런 바이러스의 존재는 쉽게 검출되지 않을 수 있다.
첨부 감염 기법
이 감염 기법에서, 바이러스는 자신의 코드를 바이러스가 감염시키기 원하는 호스트 또는 타깃 실행가능 파일의 말단에 삽입하고, 전형적으로는, 바이러스 코드의 시작부에 대한 점프를 감염되거나 오염된 파일의 시작부에 삽입하기도 한다. 오염된 실행가능 파일이 그 파일의 소유자에 의해 나중에 실행될 때, 운영 체계는 바이러스 코드를 실행하기 위해 먼저 점프할 것이고 그 다음 의도된, 즉 원본 타깃 프로그램에 제어를 반환할 것이다. 선두부착 기법에서처럼, 이 감염 기법을 사용하는 바이러스의 존재는 쉽게 검출되지 않을 수 있다. 이 기법은, 예를 들어, 미켈란젤로(Michelangelo) 바이러스에 의해 사용되었다.
내장 감염 기법
이 감염 기법에서, 바이러스는 어딘가의 별도의 파일 속에 있는 코드의 조각이나 코드를 가리키는 명령을 정상 실행가능한 것들로 결국 컴파일될 것들인 파일 또는 파일들의 소스 코드, 셸 스크립트, 펄 스크립트, 또는 자바 스크립트 속에 삽입한다. 이 접근방법의 몇 개의 예들이 보여졌지만, 그것들은 실행가능 명령어들을 담고 있는 모든 프로그램이 바이러스에 대한 잠재적인 타깃이라는 점을 상기시키는 것으로서 소용된다.
암호 해싱에 기초한 무결성 검증
위에서 언급된 바와 같이, 무결성 검증 기법들은 파일에 대한 예상치 못한 변형을 그것을 실행하기 전에 검출하기를 시도한다. 암호 해싱에 기초한 무결성 검증 기법은 다음과 같이 수행될 수 있다.
어느 내-충돌 해시 함수 패밀리
Figure 112009032683049-pct00012
(표기법의 단순화를 위해, H w 로부터 인덱스 w를 떼어낼 것이다) 및 파일 f이 주어지면, 160-비트 값 hash=H(f)는 어느 효율적인 알고리즘(아마도 f 자체를 생성)이라도 실행가능 계산 시간에 얻어질 수 없을 것이거나 또는 무결성 검증 시험 H(g)=H(f)에 부합하는 f와는 다른 g를 이미 가지는 것이 가능하지 않을 것이라는 증거를 제공한다.
실행가능 또는 소스 파일들의 무결성 검증은 다음과 같이 행해진다. 예비 단계에서, 파일 f가 감염되지 않았다고 믿어질 때, 이를테면 파일이 그것의 원본 소스로부터 다운로드될 때, 태그인 hash=H(f)가 파일에 부착된다. 나중에, 파일에 대한 합법적 변형이 수행되어 파일이 f'이 될 때, 새로운 값 hash'=H(f)는 이전의 해시 값을 대체한다. 파일이 실행될, 또는 실행을 위해 컴파일될 필요가 있을 때, 무결성 검증 시험은 파일의 현재 버전 f'에 대해 수행된다, 다시 말하면, hash'=H(f")인지가 점검된다. 만일 일치한다고 확인되면, 합법적 변형들만이 파일에 대해 행해졌다는 것이 증명되고; 그렇지 않으면, 일부 예기치 못한 변형이 일어났다는 것이 증명된다. 이 변형이 감염에 의해 유발될 수 있으므로, 파일은 바이러스에 관한 유용한 정보를 도출하고 파일 f'을 어쩌면 그것의 이전의 감염되지 않은 상태로 저장하기 위해, 안전한 환경에서 파일의 실행을 에뮬레이션하는 것을 포함한 각종 진단 기법들을 시도하는 분석기에 보내어진다.
무결성 검증을 위해 암호 해싱을 사용하는 대중적인 시스템들은 S. Quinlan and S. Dorward, Venti: a New Approach to Archival Storage, in Proc. of USENIX Conference on File and Storage Technologies (FAST), 2002, and G. H. Kim and E. H. Spafford, The Design and Implementation of Tripwire: a File System Integrity Checker, in Proc. of 2nd ACM Conference on Computer and Communications Security (ACM CCS), 1994로부터의 Venti를 포함한다.
암호 해싱 및 바이러스 위치파악
위의 기법은 무결성을 점검하는 것뿐만 아니라 2개의 파일들 사이의 차이에 관한 부가적인 정보를 나타내는 것으로도 확장될 수 있다. 위의 무결성 검증 기법의 기본 특성은 다음과 같이 고쳐 말해질 수 있다. 파일들 M(1)M(2), 그리고 그것들의 해시들인 hash(1) hash (2)이 주어지면, M(1)=M(2)이면 1이고 그렇지 않으면 0으로 정의되는 함수 p(M(1),M(2))를 결정하는 효율적인 알고리즘 DIFF이 존재한다. 입력 p, hash (1), 및 hash(2)를 사용하는 알고리즘 DIFF는 hash (1)= hash (2)인지를 단순히 검사하고 일치하면 1을 그렇지 않으면 0을 반환한다. 이 접근방법은 더 넓은 함수들로, 특히, 위에서 설명된 감염 기법들, 예컨대, 다시쓰기, 첨부, 선두부착, 및 내장 감염 기법들에 의해 야기되는 M(1)M(2) 사이의 차이들에 관한 정보를 검출하는 함수들로 일반화될 수 있다. 예를 들면, p-적발( revealing ) 내-충돌 해시 함수들은 내-충돌 해시 함수들로서 형식상 정의되고 그래서 2개의 파일인 M(1), M(2)를 반환하는 어느 효율적인 적대자(adversary)에 대해, 입력으로서 M(1)M(2) 2개의 해시를 수신하는 것에 의거하여, 통상 p가 두 파일들의 차이들에 관한 일부 정보를 반환하는 함수인 함수 p(M(1), M(2))를 계산하는 것이 가능한 효율적인 알고리즘인 Det가 존재한다. 임의의 충돌-회피 해시 함수가 M(1)M(2) 사이의 차이들의 성질에 관한 유용한 정보를 나타내는데 도움이 된다고 여겨지지 않지만, 기존의 것들로부터 발전된 더 많이 관련된 충돌-회피 해시 함수들은 유용한 정보를 얻도록 디자인될 수 있다.
설명된 본 발명의 방법들의 모두에서, 각 파일 Mn개의 원자 블록들(atomic blocks)인 M(1),M(2),...,M(n)으로 구성되는데, 블록 크기는 적당히 선 택될 수 있다, 예를 들어, 그것은 예컨대 소스 파일 내의 라인으로 분리될 수 있는 최소 의미 단위(semantic unit)로서 결정될 수 있다. 하나의 접근방법에서, 매우 단순한 해시 함수가 입력 파일의 각 블록의 원자 해시를 반환한 다음 이전에 계산된 모든 해시들의 원자 해시를 반환함으로써 얻어지는데, 여기서 원자 해시(atomic hash)는 어느 충돌-회피 해시 함수를 사용하여 계산된다. 이 기법은 파일의 각 블록에 대해 위의 알고리즘 DIFF와 함께 사용되어, 함수 p에 의해 요구된 어떤 흥미로운 정보를 도출할 수 있다. 그러나 명백한 단점은 반환된 해시가 너무 길다는 것인데, 반환된 해시는 기존 해시의 크기의 n 배이고, 이는 매우 작은 크기들, 이를테면 수 킬로바이트의 파일들에 대해서는 이미 비실용적일 수 있다.
그러나, 예시적인 실시예에서, 구조체의 확장 계수(expansion factor)라고 말해지는 반환된 해시의 크기는 다음과 같이 정의된다. H 충돌-회피 해시 함수라고 하고, cHH에 대한 호출들을 만드는 해시 함수의 구조체(construction)라고 하자. 그러면 cH의 확장 계수는 n-비트 입력에 대해 cH에 의해 반환된 출력의 크기를 n-비트 입력에 대해 H에 의해 반환된 출력의 크기로 나눈 것이다. 최단의 가능한 확장 계수, 예컨대, n의 대수(logarithmic)를 가지는 구조체들이 가장 바람직하다. 이것은 해시들의 부가된 검증들 및 생성의 결과로 매우 작은 계산 및 저장 오버헤드를 가능하게 하는데, 모든 구조체들이 확장 계수와 동일한 해시 함수의 다수의 애플리케이션들로서 기술될 수 있기 때문이다.
이 성능을 달성하기 위해, 감염 기법들의 각각에 대해 인스턴스화된 바와 같이, 기본 충돌-회피 해시 함수의 다수의 애플리케이션들이 메시지 비트들의 신중하 게 선택된 시퀀스들을 위해 계산된다. 예를 들면, 시퀀스들의 선택은 다수의 해시들만으로부터 2개의 메시지들 사이의 차이들에 관한 소망의 정보를 "복호화"하는 것을 나중에 허용하는 적당한 "부호화 체계들(encoding schemes)"에 따라 수행될 수 있는데, 부호화/복호화 체계들 둘 다와 소망의 정보는 감염 기법에 의존한다.
다른 흥미로운 계량(metric)은 바이러스가 검출되는 위치파악된 영역으로 최소화될 것이다. 특히, 일부 위치파악 계수(ρ)에 대해 기껏해야
Figure 112009032683049-pct00013
인 개수의 블록들을 담고 있는 간격의 블록들을 반환하는 것이 바람직한데, 여기서 b(V)는 바이러스(V)를 구성하는 블록들의 수이다.
본 발명의 방법들의 구조체들의 모두는 위치파악 계수 ρ= 2, 확장계수인 n의 대수를 달성하고, 흔하지 않게 해시들의 오프라인 계산만을 요구하고, 그래서 계산 오버헤드는 전체 시스템의 효율을 위해서는 중요한 요소가 아니다.
도 1은 타깃 파일(10)을 도시하는 개략도인데 이 타깃 파일은 처리 기법을 통해 변형되어서, 혐의를 받는 파일(12)이 된다. 도 2는 바이러스 위치 파악에 나중에 사용되는 파일 블록들의 시퀀스들 및 해시들을 계산하는 해싱 알고리즘, 예컨대 일반 p-적발 해시 함수의 일반 구조를 보인다. 단계 A1에서, 블록 시퀀스들이 계산된다. 단계 A2에서, 각 블록 시퀀스를 위한 해시가 계산된다. 해시들은 단계 A3에서 출력된다. 감염의 각 유형, 즉, 다시쓰기, 첨부/선두부착, 및 내장을 위한 해싱 알고리즘들은 아래에서 더 상세히 설명된다.
다시쓰기 감염들의 바이러스 위치파악
위에서 논의된 바와 같이, 다시쓰기 감염 기법들에서는, 바이러스가 타깃 파 일의 일부 블록들을 다시쓴다. 대부분의 경우들에서, 오염된 파일은 다시쓰기 후에라도 동일한 크기를 유지하고 다시쓰인 블록들은 인접하여 위치된다. 본 발명의 방법은 파일 내의 어디서든지 연속하는 블록들의 세그먼트를 다시쓰는 바이러스를 나중에 위치파악할 수 있도록 하기 위해 파일로부터 블록들의 시퀀스들의 많은 해시들로서 계산한다. 그래서, 파일 내의 블록들의 수를 n이라 가정하면, 위치파악 해시 함수는 파일 블록들의 4(log2 n-1)개 시퀀스들에 대해 해시들을 계산한다, 다시 말하면, log n-1 그룹들의 각각에 대해 4개의 해시들을 계산한다. 예를 들면, n=1024일 때, 4*(10-1) 또는 36개의 해시들이 계산된다. 도 3은 다시쓰기 감염들을 위한 바이러스 위치파악 해싱의 예시적인 실시예에서 해싱될 파일 블록들의 시퀀스들(14, 16, 18, 20)로 만들어진 그룹들(22)을 보인다. i-번째 그룹(22)에서, 제3(18) 및 제4(20) 시퀀스들은 파일을 n/2i+1 블록들만큼 순환 회전시키고 제1(14) 및 제2(16) 시퀀스들에 대해 나누기(division)를 다시 적용함으로써 얻어진다는 점에 주의한다.
실시예에서, p-적발 내-충돌 해시 함수인 p는 다음과 같이 정의된다. n-블록 파일들(M1 및 M2)의 입력에 대해, 함수 p(M1,M2)는 다음과 같다:
- M1=M2이면 0;
- b-a<n/4이고 M1(a), M1(a+1), ..., M1(b) 및 M2(a), M2(a+1), ..., M2(b)가 M1과 M2가 다른 경우만의 블록들이면 (a, b);
- 그렇지 않으면,
Figure 112009032683049-pct00014
.
그래서 분석은 기껏해야 n/4개 블록들을 다시쓰는 바이러스들로 제한되는데, 그것은 위치파악 해시 함수가 기존의 해시 함수보다 상당히 더 유용하지 않으므로 더 많은 수의 블록들이 다시쓰기될 때 위치파악 문제가 타당성을 잃어버리기 때문이다.
따라서, 각 단계에서, 원자 내-충돌 해시 함수 H는 입력 파일의 일부 블록들의 해시들을 계산하는데 이용된다. M 1 M 2 로 변형했던 다시쓰기 바이러스 때문에 달라지는 어떤 2개의 파일들(M 1 , M 2 )이 주어지면, 각 단계에서의 해시들은 M 2 에서 후보 블록들의 절반을 제거하는 것에 의해 바이러스의 위치를 찾는데 도움을 줄 것이다. 제거된 블록들은 다음 4가지 블록들 중의 하나이다: 파일에서 아직 제거되지 않은 블록들의 전반부 또는 후반부, 또는, 파일에서 아직 제거되지 않은 블록들의 적당한 순환 시프트의 전반부 또는 후반부. 이것은 위치파악 계수 2를 달성하는데 충분하고, 각 단계에서 4개의 해시들이 계산되므로, 출력 확장은 많아야 4 log n이다.
내-충돌 해시 함수의 형식적 기술은 다음과 같다. 우리의 p-적발 내-충돌 해시 함수는 Rew - pH로서 표시되고 있는 것으로, 입력으로서 n-블록 메시지 M = M(0), ... ,M(n-1)를 취하고, 4 log n 배의 원본 내-충돌 해시 함수(H)를 Ml개 블록들의 시퀀스들에 아래에서와 같이 적용한다(단순화를 위해 n이 2의 거듭제곱(power)이고 대수들은 2를 밑(base)으로 한다고 가정한다):
단계 1:
이 제1단계에서, M에서의 블록들은 각 시퀀스가 n/2개 블록들을 연쇄하는 것에 의해 얻어진 4개의 시퀀스로 그룹화되며, 그 시퀀스들은 다음과 같이 정의된다:
Figure 112009032683049-pct00015
,
Figure 112009032683049-pct00016
,
Figure 112009032683049-pct00017
, 그리고
Figure 112009032683049-pct00018
S1 ,3 및 S1 ,4에서의 블록들의 인덱스들은 S1 ,1 및 S1 ,2에 있는 블록들의 인덱스들을 각각 n/A만큼 순환 시프트하는 것에 의해 얻어진다. 이 단계에서 4개의 해시들은 i = 1,2,3,4에 대해 h l ,i =H(S l ,i )로서 계산된다.
단계 j, j=2 log n -1의 경우:
단계 1을 연장하여, M에서의 블록들은 각 시퀀스가 n/2j개 블록들을 연쇄하는 것에 의해 얻어진2 * 2j개의 시퀀스들로 그룹화되며, 그 시퀀스들은 다음과 같이 정의된다:
Figure 112009032683049-pct00019
, 그리고
Figure 112009032683049-pct00020
, i=1,...,2 j의 경우. (S j ,i+2j 에서 블록들의 인덱스들은 S j ,i 에서 블록들을 n/2j*1만큼 순환 시프트하는 것에 의해 얻어진다.
이 단계에서의 4개의 해시들이 다음과 같이 계산된다:
i = 1,2일 때,
Figure 112009032683049-pct00021
그리고 i = 3,4일 때,
Figure 112009032683049-pct00022
.
이 함수의 출력은
Figure 112009032683049-pct00023
이다.
Rew - pH의 원자 해시들의 전체 수는 단지 4 log n-4인데, 그것은 각각의 해시가 바이러스 간격의 위치에 관한 정보의 한 비트를 나타내는 모델에서 본래 최적인 것이다.
Rew - pH이 내-충돌적이라는 것을 예시하기 위해, Rew - pH의 출력에서 충돌들을 찾는 알고리즘이 i =1,2,3,4와 j = 0,1, ... , log n인 값들 중의 적어도 하나를 위해 H에 의해, H에 대해 충돌을 찾기 위한 알고리즘을 의미하는 동일한
Figure 112009032683049-pct00024
에 맵핑되는 다른 2개의 입력들을 찾는다는 것이 관측된다.
Rew - pH이 p-적발임을 예시하기 위해서는, 파일 M의 혐의를 받고 있거나 아마도 오염된 버전(M')에서 다시쓰기 바이러스를 위치파악하기 위해,
Figure 112009032683049-pct00025
,
Figure 112009032683049-pct00026
인 모든 인덱스들 (j,i)에 대해, pH 및 해시들인 h j ,i 를 사용하는 효율적인 알고리즘 Loc이 구축된다. 도 4a에 보인 알고리즘 Rew - Loc은 다음과 같이 설명될 수 있다:
1. M'의 입력에 대한 Rew - pH의 출력
Figure 112009032683049-pct00027
을 계산한 다(단계 S1)
2.
Figure 112009032683049-pct00028
,
Figure 112009032683049-pct00029
인 모든 색인들 (j,i)에 대해,
Figure 112009032683049-pct00030
이면 t j ,i =1, 또는
Figure 112009032683049-pct00031
이면 t j ,i =0를 산출한다(단계 S2)
3. S={1,...,n}, j=1이라 설정하고 입력 쌍 (S,j)에 대한 프로시져 Rew -RecLoc(아래에서 정의됨)에 의해 반환되는 블록들의 시퀀스(T)를 출력한다(단계 S3)
단계 S4는 프로시져 Rew - RecLoc를 실행한다.
프로시져 Rew - RecLoc(S,j)는 다음과 같이 정의되고, 도 4b에 보이고 있다:
1.
Figure 112009032683049-pct00032
인 모든 인덱스들에 대해 t j ,i =1이면(단계 S5), T=S를 반환하고 정지한다.
2. tj ,i*=0가 되도록 i*를 둔다(단계 S6)
3. i*=1 또는 2(단계 S7)이면 집합 S로부터 모든 블록들을 집합들인 S j ,i , S j ,i+2 ,S j , i+4 ,...,S j ,i+2j-2 로부터 제거한다(단계 S8)
4. i*=3 또는 4(단계 S9)이면 집합 S로부터 모든 블록들을 집합들인 S j ,i-2+2j ,S j,i+2j ,S j,i+2j+2 , ..., S j ,i+2j+2j-4 로부터 제거한다(단계 S10)
5. 프로시져 Rew - RecLoc(S,j+1)를 실행한다(단계 S11).
p의 정의에 의해, b-a<n/4인 경우만을 고려하는 것이 충분하고, Rew - pH이 p- 적발(p-revealing)이라는 것의 증명은 다음 보조정리(lemma)의 결과이다. 기껏해야
Figure 112009032683049-pct00033
인 크기의 어떤 바이러스 간격 (a' , b')의 경우, M'(바이러스 간격 (a' , b')를 가지는 다시쓰기 감염을 당한 M의 버전)의 입력과 원본 파일 M의 입력에 대한 구조체 Rew - pH의 단계 j까지 얻어진 해시들에 대해, 알고리즘 Rew - Loc는 간격 (a,b)를 반환하여서 aa'<b'b이 되고, 만약 n/2 j > (b-a+1)이면, (b-a+1)≤n/2j이다.
첨부/선두부착 감염들의 바이러스 위치파악
첨부 감염 기법들과 선두부착 감염 기법들은 대칭적인 방식으로 다루어질 수 있다. 위에서 논의된 바와 같이, 첨부 감염 기법들에서는, 바이러스가 타깃 파일(10)의 말단에 첨부되는 한편, 선두부착 감염 기법들에서, 바이러스는 타깃 파일(10)의 앞단에 부가된다. 결과로서, 양쪽 감염 기법들에서, 결과적으로 오염되거나 혐의를 받고 있는 파일(12)의 파일 크기는 증가하고, 바이러스가 첨부되거나 선두부착된 후, 이전 파일 크기는 잃어버리게 될 수 있다. 본 발명의 방법은 호스트 파일(10)로부터의 블록들의 시퀀스들의 많은 해시를 계산하여 연속하는 블록들의 세그먼트를 파일의 말단에 부착하는(또는 세그먼트를 파일의 시작부에 선두부착하는) 바이러스를 나중에 위치파악한다. 오염되지 않은 타깃 파일(10)에서의 블록들의 수를 n이라 가정하고 오염된 파일(12)에 있는 블록들의 수를 n'이라 가정한다. 그러면,
Figure 112009032683049-pct00034
-블록 메시지의 입력에 대해, 구조체는 많아야 파일 블록들의 log4 /3
Figure 112009032683049-pct00035
/4개 시퀀스를 반환하고 그래서 많아야 log4 /3
Figure 112009032683049-pct00036
/4개의 해시를 반환한다; 다시 말하 면, log4 /3
Figure 112009032683049-pct00037
/4개 단계의 각각에 대해 하나의 해시를 반환한다. 예를 들면,
Figure 112009032683049-pct00038
=1204이고, 20개의 해시가 있다.
도 5는 첨부/선두부착 감염들을 위한 바이러스 위치파악 해싱의 예시적인 실시예에서 해싱될 파일 블록들(24)의 시퀀스들을 보인다.
본 발명의 방법의 바이러스 위치파악 방법의 경우, p-적발 내-충돌 해시 함수가 설계될 수 있고, 여기서 p는 다음과 같이 정의된다. 반드시 동일한 길이일 필요는 없는 M1 및 M2의 입력에 대해, 함수 p(M1,M2)는 다음과 같다:
- M1 =M2이면, 0;
-
Figure 112009032683049-pct00039
이고 i=1, ... ,x-1에 대해 M1(i)=M2(i)이고 i=x에 대해
Figure 112009032683049-pct00040
이면, x
- 그렇지 않으면
Figure 112009032683049-pct00041
.
위에서 논의된 다시쓰기 감염들의 경우에서처럼, 분석은 기껏해야 n개 블록들에 첨부되는 바이러스들로 제약될 수 있다, 다시 말하면, M2에서 블록들의 수는 많아야 2n이고, 여기서 nM1에서 블록들의 수이라고 가정한다. 따라서, 각 단계에서, 원자 내-충돌 해시 함수 H는 입력 파일의 일부 블록들의 2개의 해시를 계산하는데 이용된다. M 1 M 2 로 변형했던 첨부 바이러스 때문에 달라지는 어떤 2개의 파일들(M 1 , M 2 )이 주어지면, 각 단계에서의 2개의 해시는 M 2 에서 후보 블록들의 절반을 제거하는 것에 의해 바이러스의 위치를 찾는데 도움을 줄 것이다.
첨부 및 선두부착 바이러스들이 가지는 하나의 주된 어려움은 파일 M 2 의 길이가 파일 M 1 의 길이와는 다르게 될 수 있고, 그러므로, 위에서 설명된 다시쓰기 바이러스들을 위한 것들과 같은 '길이-의존' 기법들이 사용될 수 없다는 것이다. 대신에, 파일의 시작부로부터 시작하여, 후보 블록들은 타깃 파일의 길이와는 무관한 시퀀스들에 대한 해시들을 주의 깊게 계산하는 것에 의해 제거될 수 있다.
H가 내-충돌 해시 함수를 나타낸다고 하자. App - pH 로서 표시되는 p-적발 내-충돌 해시 함수는, 입력으로서
Figure 112009032683049-pct00042
-블록 메시지 M=M(1), ... ,M(
Figure 112009032683049-pct00043
)을 취하고, M
Figure 112009032683049-pct00044
블록들의 시퀀스들에 원본 함수 H 많아야
Figure 112009032683049-pct00045
번 다음과 같이 적용한다:
1. j <-- 1 및 M j =M로 설정한다;
2. 가장 큰 양의 정수 k를 계산하여 2k <
Figure 112009032683049-pct00046
/2이 되게 하고, Mj에서부터, 시퀀스 S j = M J (1), ... , M j (2 k )를 얻고, 해시 h j =H( S j )를 계산한다;
3. 새로운 입력 M j +1이 0 또는 1 블록들을 가져서 재귀(recursion)가 끝나기까지
Figure 112009032683049-pct00047
-2 k+1 +1 = 1이면
Figure 112009032683049-pct00048
에 걸쳐서 단계 2를 재귀적으로 반복하고, j=j+ 1를 설정한다.
4. m=log 4 /3
Figure 112009032683049-pct00049
/4에 대해, 모든 계산된 해시들(h1 , h2 , ..., h m )을 반환한다.
만일 n이 타깃 파일 M의 블록들의 수를 나타내고 n'이 오염된 파일 M'의 블 록들의 수를 나타낸다고 하면, 많아야 log
Figure 112009032683049-pct00050
재귀 단계들이 있고, 그러므로, App -pH에 의해 반환되는 해시들의 총 수는 log 4 /3
Figure 112009032683049-pct00051
/4≤ log 4 /3 n' /4≤l og 4 /3 n-1인데, n' ≤ 2n이라고 가정하기 때문이다. 이 확장 계수는 각 해시가 바이러스 간격의 위치에 관한 정보의 한 비트를 나타내는 모델에서 본래 최적이다(증식 상수(multiplicative constant)까지).
App - pH이 내-충돌적이라는 것을 예시하기 위해, App - pH의 출력에서 충돌들을 찾는 알고리즘이 i =1,2j = 0,1, ... , log n인 값들 중의 적어도 하나를 위해 H에 의해, H에 대해 충돌을 찾기 위한 알고리즘을 의미하는 동일한
Figure 112009032683049-pct00052
에 맵핑되는 다른 2개의 입력들을 찾는다는 것이 관찰된다.
App - pH이 p-적발임을 예시하기 위해서는, 파일 M의 아마도 오염된 버전(M')에서 첨부 바이러스를 위치파악하기 위해,
Figure 112009032683049-pct00053
인 모든 인덱스들 (j,i)에 대해, App - pH 및 해시들인 h j 를 사용하는 효율적인 알고리즘 App - Loc이 구축된다. 도 6a에 보인 알고리즘 App - Loc은 다음과 같이 설명될 수 있다:
1. j <--1 및 M j =M으로 설정한다(단계 S12)
2. 2 k < n' /2가 되도록 하는 가장 큰 양의 정수 k를 계산하고, M j 로부터 다음 2가지 블록 시퀀스들을 얻는다: S i ,j = M j (1), ... , M j (2 k-1 ), S j ,2 = Mj (1), ... , M j (2 k ); 그리고 i =1,2에 대해 해시 h 1 ,,j =H( S j ,i )를 계산한다(단계 S13)
3. 새로운 입력 M j +1 이 0 또는 1 블록들을 가져서 재귀(recursion)가 끝나기까지 만일
Figure 112009032683049-pct00054
-2 k+1 +1≥1이면
Figure 112009032683049-pct00055
에 대해 단계 2를 재귀적으로 반복하고(단계 S14), j=j+1로 설정한다(단계 S15).
4. m'=log 4 /3 n' /4에 대해 (h 1 ,i , h 2 ,i , ..., h m' ,i )i=1,2로 모든 계산된 해시들을 나타낸다(단계 S15).
5. 만약 m'=m이면(단계 S16) i=2로 설정하고(단계 S17) 그렇지 않으면 i=1로 설정한다(단계 S18)
6. h' =( h' 1 , h' 2 ,..., h' m' )= ( h 1 ,i , h 2 ,i , ..., h m' ,i )로 설정한다(단계 S19)
7. 모든 인덱스들
Figure 112009032683049-pct00056
에 대해,
Figure 112009032683049-pct00057
이면 tj=1를 또는 h j = h' j 이면 tj=0를 산출한다(단계 S20)
8. S={1,...,n}, j=1이라 설정하고 입력 쌍 (S,j)에 대한 프로시져 App - RecLoc (아래에서 정의됨)에 의해 반환되는 쌍을 출력한다(단계 S21)
단계 S22는 프로시져 App - RecLoc를 실행한다.
프로시져 App - RecLoc(S,j)는 다음과 같이 정의되고, 도 6b에 보이고 있다:
1. 만약 tj ,i=1 이면 T=S를 반환하고 중지한다(단계 S23).
2. 블록 시퀀스 S로부터 블록 시퀀스S j ,i 로부터의 모든 블록들을 제거한다(단계 S24)
3. 프로시져 App - RecLoc(S,j+1)를 실행한다(단계 S25).
App - pH가 p-적발성이라는 증거는 다음 보조정리의 결과이다. 간격(s,
Figure 112009032683049-pct00058
)이 부착되어 있는 타깃 파일 M과 동일한
Figure 112009032683049-pct00059
-블록 오염된 파일M'의 입력에 대해 적어도
Figure 112009032683049-pct00060
-sj+1개 블록들을 가지는 어느 바이러스 간격 (s,
Figure 112009032683049-pct00061
)과, 구조체 App - pH에서의 재귀의 처음 j-1 단계들에서 얻어진 해시들의 경우, 알고리즘 App - Loc은 값 x를 반환하여 x≤s (다시 말하면, 이 알고리즘은 바이러스를 위치파악한다) 및 x≥2s-n-1이게 한다, 다시 말하면, App - pH의 위치파악 계수는 기껏해야 2이다.
내장 감염들의 바이러스 위치파악
위에서 논의된 바와 같이, 내장 감염 기법들에서는, 바이러스가 타깃 파일(10)의 중앙의 어디에서든 삽입되나, 시작부 또는 말단에서는 삽입되지 않고, 그래서 크기가 타깃 파일(10)보다 큰 혐의를 받는 파일(12)을 생성한다. 본 발명의 방법은 오염된 파일(12) 내의 어디서든지 연속하는 블록들의 세그먼트를 내장하는(삽입하는) 바이러스를 나중에 위치파악할 수 있도록 하기 위해 타깃 파일(10)로부터 블록들의 시퀀스들의 많은 해시들을 계산한다. 타깃 파일(10)에서의 블록들의 수를 n이라 가정하고 오염된 파일(12)에 있는 블록들의 수를 n'이라 가정한다. 그러면,
Figure 112009032683049-pct00062
-블록 메시지 상에서, 구조체는 기껏해야 파일 블록들의 8 (log2
Figure 112009032683049-pct00063
-1)개 시퀀스들을 반환하고 그래서 8 (log
Figure 112009032683049-pct00064
-1)개 해시들; 다시 말하면, log
Figure 112009032683049-pct00065
단계(phase)들의 각각마다 8개 해시들을 반환한다. 예를 들어, 만약 n=1024이면, 8*(10-1)= 72개의 해시들이 존재한다.
도 7은 내장 감염들을 위한 바이러스 위치파악 해싱의 예시적인 실시예에서 해싱될 파일 블록들(26, 28, 30, 32)의 부집합들을 보인다. 바이러스가 감염되거나 오염된 파일(12) 내부에 내장(삽입)되기 때문에, 바이러스의 시작부와 끝부 둘 다를 찾는 것이 필요하다. 본 발명의 방법의 바이러스 위치파악 방법의 경우, p-적발 내-충돌 해시 함수가 설계될 수 있고, 여기서 p는 다음과 같이 정의된다. 반드시 동일한 길이일 필요는 없는 M1 및 M2의 입력에 대해, 함수 p(M1,M2)는 다음과 같다:
- M1 =M2이면, 0;
- i 1 =b+1, ... ,n i 2 =i 1 +b-1+1에 대해 b-a<n/2 이고 M1(i)=M2(i)이면 (a,b).
- 그렇지 않으면
Figure 112009032683049-pct00066
.
분석은 많아야 n개 블록들을 내장시키는 바이러스들레 제한된다, 다시 말하면, M2에서 블록들의 수는 많아야 2n이라고 가정되는데 여기서 n은 타깃 파일 M1에서의 블록들의 수이다.
내장 감염들의 경우를 위한 p-적발 해시 함수의 구조체는 다시쓰기 및 첨부 감염들의 경우들을 위한 구조체들의 조합물(combination)이다. 이 조합물을 구성하는 것은 첨부 감염들을 위한 구조체에서처럼, "길이-독립적인" 파일 블록 시퀀스들(파일 블록들의 시퀀스들)을 사용하여, 다시쓰기 감염들을 위한 구조체에서처럼 시퀀스 구조를 사용하여, 이 기법을 채용하는 것이다. 결과적인 구조체는 위치파악 계수 2와 확장 계수 8 log
Figure 112009032683049-pct00067
을 가지는데, 여기서
Figure 112009032683049-pct00068
은 입력 파일의 크기이다.
함수의 형식적 기술(설명)은 다음과 같다. H가 내-충돌 해시 함수를 나타낸다고 하자. Emb - pH로서 나타내어지는 본 발명의 p-적발 내-충돌 해시 함수는 입력으로서 n-블록 메시지 M = M(0), ... ,M(
Figure 112009032683049-pct00069
-1)를 취하고, 다음 단계들을 입력 M = M(0), ... ,M(
Figure 112009032683049-pct00070
-1)에 대해 한번 그리고 입력인 역(reverse) 파일 rM = M(l-1), ... ,M(0)에 대해 한번 실행하는 것에 의해 M
Figure 112009032683049-pct00071
개 블록들의 시퀀스들에 원본 함수 H를 8 (log
Figure 112009032683049-pct00072
-1) 회 적용한다(단순화를 위해
Figure 112009032683049-pct00073
은 2의 거듭제곱이고 로그의 밑은 2라고 가정한다):
단계 1:
2 k <
Figure 112009032683049-pct00074
/2가 되도록 하는 최대 양의 정수 k를 계산한다. 이 제1단계에서, M에서의 블록들은 각 시퀀스가 n/2개 블록들을 연쇄하는 것에 의해 얻어진 4개의 시퀀스들로 그룹화되며, 그 시퀀스들은 다음과 같이 정의된다:
Figure 112009032683049-pct00075
Figure 112009032683049-pct00076
Figure 112009032683049-pct00077
, 그리고
Figure 112009032683049-pct00078
S1 ,3 및 S1 ,4에서의 블록들의 인덱스들은 S1 ,1 및 S1 ,2에 있는 블록들의 인덱스들을 각각 2k-1만큼 순환 시프트하는 것에 의해 얻어진다. 이 단계에서 4개의 해시 가 i = 1,2,3,4에 대해 h l ,i =H(S l ,i )로서 계산된다.
단계 j, j =2,..., log
Figure 112009032683049-pct00079
-1의 경우:
단계 1을 연장하여, M에서의 블록들은 각 시퀀스가 n/2j개 블록들을 연쇄하는 것에 의해 얻어진 2 * 2j개의 시퀀스들로 그룹화되며, 그 시퀀스들은 다음과 같이 정의된다:
c,d = 1,..., 2 j , 블록들의 인덱스들이 S j ,i 에서 블록들을 2 k /2j만큼 순환적으로 시프트시키는 것에 의해 얻어진다는 것을 제외하면 유사하게 정의되는 S j ,i+2j 의 경우,
Figure 112009032683049-pct00080
...
Figure 112009032683049-pct00081
...
Figure 112009032683049-pct00082
.
이 단계에서의 4개의 해시가 다음과 같이 계산된다:
i=1,2일 때,
Figure 112009032683049-pct00083
;
그리고, i=3,4일 때,
Figure 112009032683049-pct00084
.
이 함수의 출력은 h=((h 1 ,i , h 2 ,i , ... , h log n-1 ,i)) i =1,2,3,4,5,6,7,8이다(여기서 i=1,2,3,4의 h j ,i M이고 i=5,6,7,8의 h j ,i rM이다).
Emb - pH의 원자 해시들의 전체 수는 단지 8 log n-8인데, 그것은 각각의 해시 가 바이러스 간격의 위치에 관한 정보의 한 비트를 나타내는 모델에서 본래 최적인 것이다.
이전에 구성된 해시 함수들과 마찬가지로, Emb - pH이 내-충돌성임을 알 수 있다. Emb-pH이 p-적발임을 예시하기 위해서는, 파일 M의 아마도 오염된 버전(M')에서 첨부 바이러스를 위치파악하기 위해, j
Figure 112009032683049-pct00085
{1,..., log n-1}, i
Figure 112009032683049-pct00086
{1, ..., 8}인 모든 인덱스들 (j,i)에 대해, Emb - pH 및 해시들인 h j ,i 를 사용하는 효율적인 알고리즘 Emb - Loc(도 8에서 보임)이 구축된다. 이 알고리즘은 알고리즘 Rew - Loc을 두번 실행하는 것으로 구성되는데: 한번은 모든 인덱스들 (j,i), j
Figure 112009032683049-pct00087
{1,..., log n-1}, i
Figure 112009032683049-pct00088
{1, ..., 4}에 대해 파일 M 및 해시들 h j ,i 을 사용하고(단계 S26) 한번은 모든 인덱스들 (j,i), j
Figure 112009032683049-pct00089
{1, ..., log n-1}, i
Figure 112009032683049-pct00090
{5, ..., 8}에 대해 파일 rM 및 해시들 h j ,i 을 사용한다(단계 S27). S1 S2는 그와 같이 얻어진 출력들이라고 둔다. 알고리즘 Emb -Loc은 집합들인 S1S2의 교차부분을 반환한다(단계 S28).
성능 분석
2개의 공지된 기법들과 비교했을 때, 위에서 기술된 본 발명의 기법들의 적용성 및 성능의 요약이 도 9 및 10에서 제시되고 묘사되고 있다.
위에서 논의된 바와 같이, "검출 구조체(detection construction)"는 그것의 전체 입력 파일의 단일 해시만을 계산하는 구조체를 나타내고, "트리비얼 구조체(trivial construction)"는 입력 파일의 각 블록의 단일 해시를 계산하는 구조체를 나타낸다. 다시쓰기 감염 구역의 바이러스 위치파악에서의 구조체들, 첨부/선두 부착 감염 구역의 바이러스 위치파악, 및 내장 감염 구역의 바이러스 위치파악은 Rew - pH, App - pH, Emb - pH로서 각각 표시되고, n은 파일에서의 블록들의 수이다. 검출 및 트리비얼 구조체들이 위에서 주어진 특성들에서 어느 감염 기법에라도 적용가능하지만, 3가지 해시 함수 구조체들인 Rew - pH, App - pH, Emb - pH의 각각은 특정 감염 기법에 맞춤되었다.
부가적으로, 이들 구조체 Rew - pH, App - pH, Emb - pH에서의 바이러스 길이에 대한 제한은 일반성의 손실 없이 본질적인 것인데, 바이러스 위치파악 문제가 그런 제한이 만족되지 않을 경우에는 중요성을 잃어버리기 때문이다.
도 10은 다음 성능 요소들을 요약하고 있다. 위치파악 계수에 관하여, 검출 구조체는 실사용에서는 위치파악을 하지 않지만, 트리비얼 구조체는 그것이 모든 감염된 블록들을 위치파악하므로 최선의 가능한 위치파악을 가진다. 구조체들인 Rew - pH, App - pH, Emb -pH은 감염된 영역보다 기껏해야 2배 큰 영역만을 위치파악한다. 확장 계수에 관하여, 트리비얼 구조체는 너무 큰 확장을 가지지만, 검출 구조체는 실사용에서는 확장을 하지 않고 구조체들인 Rew - pH, App - pH, Emb - pH는 해시의 (n의) 대수 확장만을 가진다.
끝으로, 시간 성능에 관하여, 트리비얼 및 검출 구조체는 단일 해시 계산에 대해서는 본래 시간 폭발(time blowup)적이 아니고, 구조체들인 Rew - pH, App - pH, Emb - pH는 해시들의 (n의) 로그 수만을 계산한다.
본 발명이 특정 실시예들에서 설명되었지만, 본 발명은 그런 실시예들에 의해 한정되도록 해석되어서는 않 되고, 그보다는 아래의 청구범위에 따라 해석되어 야 한다.

Claims (12)

  1. 호스트 파일을 위한 시퀀스화 공식 (sequencing formula) 을 결정하여 상기 호스트 파일로부터 파일 블록들의 시퀀스를 결정하는 단계로서, 상기 시퀀스화 공식은 상기 호스트 파일의 적어도 일부의 개수의 파일 블록들에 기초한 지수 컴포넌트의 풀이에 의해 부분적으로 결정되는 지수 공식인, 상기 파일 블록들의 시퀀스를 결정하는 단계;
    상기 호스트 파일로부터 상기 파일 블록들의 시퀀스를 위한 제 1 해시들을 계산하는 단계로서, 상기 파일 블록들의 시퀀스는 상기 시퀀스화 공식을 이용하여 결정되는, 상기 제 1 해시들을 계산하는 단계;
    변형된 호스트 파일로부터 파일 블록들의 상응하는 시퀀스를 위한 제 2 해시들을 계산하는 단계로서, 상기 파일 블록들의 상응하는 시퀀스는 상기 시퀀스화 공식을 변형된 호스트 파일에 재귀적으로 적용하여 결정되는, 상기 제 2 해시들을 계산하는 단계;
    상기 제 1 해시들 및 상기 제 2 해시들을 비교하는 단계; 및
    상기 제 1 해시들 및 상기 제 2 해시들의 개수가 일치하지 않는지에 기초하여 상기 변형된 호스트 파일에 대하여 바이러스의 추정된 위치 (location) 를 출력하는 단계를 포함하는, 바이러스 위치파악 방법.
  2. 제 1 항에 있어서,
    제 1 해시들을 계산하는 상기 단계 및 제 2 해시들을 계산하는 상기 단계는 내-충돌 해시 함수, 디지털 서명 체계, 메시지 인가 코드, 또는 의사-랜덤 (pseudo-random) 함수 중의 하나를 사용하여 수행되는 바이러스 위치파악 방법.
  3. 제 1 항에 있어서,
    상기 바이러스는 호스트 파일로부터 변형된 내용을 포함하는 바이러스 위치파악 방법.
  4. 제 1 항에 있어서,
    상기 바이러스의 상기 위치는 바이러스보다 소정의 증식 (multiplicative) 팩터 (factor) 만큼 크지는 않은 파일 블록들의 시퀀스를 포함하는 바이러스 위치파악 방법.
  5. 제 1 항에 있어서,
    상기 변형된 호스트 파일에 대하여 상기 바이러스의 상기 추정된 위치를 출력하는 상기 단계는, 파일 블록들을 포함한 파일 블록들의 범위를 출력하는 단계를 포함하고, 상기 제 1 해시들 및 상기 제 2 해시들은 일치하지 않는, 바이러스 위치파악 방법.
  6. 제 1 항에 있어서,
    상기 변형된 호스트 파일에 대하여 상기 바이러스의 상기 추정된 위치를 출력하는 상기 단계는, 상기 변형된 호스트 파일을 위한 시퀀스 부집합을 출력하는 단계를 포함하고, 상기 시퀀스 부집합을 위한 제 2 해시들은 상응하는 제 1 해시들과 일치하지 않는 바이러스 위치파악 방법.
  7. 기계에 의해 실행될 때, 기계가 방법을 실행하게끔 하는 명령어들을 저장하는 컴퓨터 판독가능 매체에 있어서, 상기 방법은,
    호스트 파일을 위한 시퀀스화 공식 (sequencing formula) 을 결정하여 상기 호스트 파일로부터 파일 블록들의 시퀀스를 결정하는 단계로서, 상기 시퀀스화 공식은 상기 호스트 파일의 적어도 일부의 개수의 파일 블록들에 기초한 지수 컴포넌트의 풀이에 의해 부분적으로 결정되는 지수 공식인, 상기 파일 블록들의 시퀀스를 결정하는 단계;
    상기 호스트 파일로부터 상기 파일 블록들의 시퀀스를 위한 제 1 해시들을 계산하는 단계로서, 상기 파일 블록들의 시퀀스는 상기 시퀀스화 공식을 이용하여 결정되는, 상기 제 1 해시들을 계산하는 단계;
    변형된 호스트 파일로부터 파일 블록들의 상응하는 시퀀스를 위한 제 2 해시들을 계산하는 단계로서, 상기 파일 블록들의 상응하는 시퀀스는 상기 시퀀스화 공식을 변형된 호스트 파일에 재귀적으로 적용하여 결정되는, 상기 제 2 해시들을 계산하는 단계;
    상기 제 1 해시들 및 상기 제 2 해시들을 비교하는 단계; 및
    제 1 해시들 및 제 2 해시들의 불일치에 기초하여 파일 블록들의 특정 시퀀스의 견지에서 변형된 호스트 파일에 대하여 바이러스의 추정된 위치를 출력하는 단계를 포함하는, 컴퓨터 판독가능 매체.
  8. 제 7 항에 있어서,
    상기 컴퓨터 판독가능 매체는,
    상기 변형된 호스트 파일에 대하여 상기 바이러스의 상기 추정된 위치를 출력하게끔 하는 명령어를 더 저장하고,
    상기 출력은 파일 블록들의 범위를 출력하는 것을 포함하고, 상기 제 1 해시들 및 상기 제 2 해시들은 일치하지 않는, 컴퓨터 판독가능 매체.
  9. 변형된 파일에서 컴퓨터 바이러스를 검출하고 위치파악하도록 구성된 시스템에 있어서,
    메모리에 저장된 제 1 해시들의 세트로서 제 1 해시들은 호스트 파일의 처리 결과에 상응하는 제 1 해시들의 세트;
    상기 메모리에 저장된 변형된 파일; 및
    컴퓨터 디바이스의 적어도 하나의 프로세싱 회로로서, 상기 프로세싱 회로는 상기 메모리와 통신하고, 상기 프로세싱 회로는 상기 제 1 해시들을 계산하는데 사용된 파일 블록들의 상응하는 시퀀스를 이용하여 상기 변형된 파일을 위한 제 2 해시들을 계산하도록 구성되고, 상기 파일 블록들의 상응하는 시퀀스는 시퀀스화 공식 (sequencing formula) 을 상기 변형된 파일에 재귀적으로 적용하여 결정되고, 상기 시퀀스화 공식은 상기 호스트 파일의 적어도 일부의 개수의 파일 블록들에 기초한 지수 컴포넌트의 풀이에 의해 부분적으로 결정되는 지수 공식인, 적어도 하나의 프로세싱 회로를 포함하고,
    상기 적어도 하나의 프로세싱 회로는 상기 제 1 해시들 및 상기 제 2 해시들을 비교하도록 그리고 상기 제 1 해시들 및 상기 제 2 해시들의 불일치에 기초한 파일 블록들의 특정 시퀀스의 견지에서 변형된 호스트 파일에 대한 바이러스의 추정된 위치를 출력하도록 구성된, 시스템.
  10. 제 9 항에 있어서,
    제 1 해시들 및 제 2 해시들의 불일치에 기초한 상기 파일 블록들의 특정 시퀀스는, 상기 변형된 호스트 파일을 위한 시퀀스 부집합을 포함하고, 상기 시퀀스 부집합을 위한 제 2 해시들은 상응하는 상기 제 1 해시들과 일치하지 않는, 시스템.
  11. 제 9 항에 있어서,
    제 1 해시들 및 제 2 해시들의 불일치에 기초한 상기 파일 블록들의 특정 시퀀스는, 파일 블록들을 포함한 파일 블록들의 범위를 포함하고, 상기 제 1 해시들 및 상기 제 2 해시들은 일치하지 않는, 시스템.
  12. 삭제
KR1020097011187A 2006-10-31 2007-10-30 암호 해싱을 이용한 바이러스 위치파악 KR101303532B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US85571006P 2006-10-31 2006-10-31
US60/855,710 2006-10-31
PCT/US2007/022899 WO2008054732A2 (en) 2006-10-31 2007-10-30 Virus localization using cryptographic hashing

Publications (2)

Publication Number Publication Date
KR20090113247A KR20090113247A (ko) 2009-10-29
KR101303532B1 true KR101303532B1 (ko) 2013-09-03

Family

ID=39344881

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097011187A KR101303532B1 (ko) 2006-10-31 2007-10-30 암호 해싱을 이용한 바이러스 위치파악

Country Status (7)

Country Link
US (3) US8191146B2 (ko)
EP (1) EP2080312B1 (ko)
JP (1) JP4997373B2 (ko)
KR (1) KR101303532B1 (ko)
CN (1) CN101641675B (ko)
MX (1) MX345979B (ko)
WO (1) WO2008054732A2 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9652613B1 (en) 2002-01-17 2017-05-16 Trustwave Holdings, Inc. Virus detection by executing electronic message code in a virtual machine
US8402529B1 (en) 2007-05-30 2013-03-19 M86 Security, Inc. Preventing propagation of malicious software during execution in a virtual machine
US20090235357A1 (en) * 2008-03-14 2009-09-17 Computer Associates Think, Inc. Method and System for Generating a Malware Sequence File
US10262136B1 (en) * 2008-08-04 2019-04-16 Zscaler, Inc. Cloud-based malware detection
GB0822619D0 (en) * 2008-12-11 2009-01-21 Scansafe Ltd Malware detection
US8676759B1 (en) * 2009-09-30 2014-03-18 Sonicwall, Inc. Continuous data backup using real time delta storage
US8640241B2 (en) 2009-11-16 2014-01-28 Quatum Corporation Data identification system
JP5340185B2 (ja) * 2010-01-19 2013-11-13 日本放送協会 ファイル処理装置及びプログラム
JP5553670B2 (ja) * 2010-04-19 2014-07-16 キヤノン株式会社 管理装置、その制御方法およびプログラム
US8769691B1 (en) * 2011-02-14 2014-07-01 Trend Micro, Inc. Network traffic reduction
US9652616B1 (en) * 2011-03-14 2017-05-16 Symantec Corporation Techniques for classifying non-process threats
US8745750B2 (en) 2011-04-21 2014-06-03 Microsoft Corporation Origination verification using execution transparent marker context
US8584235B2 (en) * 2011-11-02 2013-11-12 Bitdefender IPR Management Ltd. Fuzzy whitelisting anti-malware systems and methods
CN102970294A (zh) * 2012-11-21 2013-03-13 网神信息技术(北京)股份有限公司 安全网关的病毒检测方法及装置
US9336025B2 (en) 2013-07-12 2016-05-10 The Boeing Company Systems and methods of analyzing a software component
US9396082B2 (en) 2013-07-12 2016-07-19 The Boeing Company Systems and methods of analyzing a software component
US9280369B1 (en) 2013-07-12 2016-03-08 The Boeing Company Systems and methods of analyzing a software component
US9852290B1 (en) * 2013-07-12 2017-12-26 The Boeing Company Systems and methods of analyzing a software component
US9479521B2 (en) 2013-09-30 2016-10-25 The Boeing Company Software network behavior analysis and identification system
CN106682506B (zh) * 2016-05-06 2020-03-17 腾讯科技(深圳)有限公司 一种病毒程序检测方法和终端
RU2634178C1 (ru) * 2016-10-10 2017-10-24 Акционерное общество "Лаборатория Касперского" Способ обнаружения вредоносных составных файлов
GB2562079B (en) * 2017-05-04 2021-02-10 Arm Ip Ltd Continuous hash verification
RU2659739C1 (ru) * 2017-09-29 2018-07-03 Акционерное общество "Лаборатория Касперского" Способ контроля доступа к составным файлам
JP6911723B2 (ja) * 2017-11-16 2021-07-28 富士通株式会社 ネットワーク監視装置、ネットワーク監視方法及びネットワーク監視プログラム
CN109766084B (zh) * 2018-12-28 2021-04-23 百富计算机技术(深圳)有限公司 支付应用的定制开发方法、装置、计算机设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005050441A1 (en) * 2003-11-19 2005-06-02 Telefonaktiebolaget L M Ericsson (Publ) Updating data in a mobile terminal

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5408642A (en) * 1991-05-24 1995-04-18 Symantec Corporation Method for recovery of a computer program infected by a computer virus
US5613002A (en) * 1994-11-21 1997-03-18 International Business Machines Corporation Generic disinfection of programs infected with a computer virus
US5485575A (en) * 1994-11-21 1996-01-16 International Business Machines Corporation Automatic analysis of a computer virus structure and means of attachment to its hosts
US7234167B2 (en) * 2001-09-06 2007-06-19 Mcafee, Inc. Automatic builder of detection and cleaning routines for computer viruses
GB2392590B (en) 2002-08-30 2005-02-23 Toshiba Res Europ Ltd Methods and apparatus for secure data communication links
US7055008B2 (en) * 2003-01-22 2006-05-30 Falconstor Software, Inc. System and method for backing up data
US7373519B1 (en) * 2003-04-09 2008-05-13 Symantec Corporation Distinguishing legitimate modifications from malicious modifications during executable computer file modification analysis
US20040172551A1 (en) 2003-12-09 2004-09-02 Michael Connor First response computer virus blocking.
US7475427B2 (en) * 2003-12-12 2009-01-06 International Business Machines Corporation Apparatus, methods and computer programs for identifying or managing vulnerabilities within a data processing network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005050441A1 (en) * 2003-11-19 2005-06-02 Telefonaktiebolaget L M Ericsson (Publ) Updating data in a mobile terminal

Also Published As

Publication number Publication date
WO2008054732A3 (en) 2008-08-07
EP2080312A4 (en) 2013-09-25
JP4997373B2 (ja) 2012-08-08
US20120167223A1 (en) 2012-06-28
US20080134337A1 (en) 2008-06-05
MX2009004666A (es) 2010-02-17
KR20090113247A (ko) 2009-10-29
US8578498B2 (en) 2013-11-05
CN101641675A (zh) 2010-02-03
US20120159181A1 (en) 2012-06-21
WO2008054732A2 (en) 2008-05-08
EP2080312B1 (en) 2015-07-08
JP2010508573A (ja) 2010-03-18
EP2080312A2 (en) 2009-07-22
MX345979B (es) 2017-02-24
CN101641675B (zh) 2014-06-25
US8191146B2 (en) 2012-05-29
US8572743B2 (en) 2013-10-29

Similar Documents

Publication Publication Date Title
KR101303532B1 (ko) 암호 해싱을 이용한 바이러스 위치파악
Pessl et al. To BLISS-B or not to be: Attacking strongSwan's Implementation of Post-Quantum Signatures
Bruinderink et al. Differential fault attacks on deterministic lattice signatures
Sung et al. Static analyzer of vicious executables (save)
US10339312B2 (en) System and method for detecting malicious compound files
Spinellis Reliable identification of bounded-length viruses is NP-complete
US7458099B1 (en) Selective detection of malicious computer code
US7640583B1 (en) Method and system for protecting anti-malware programs
USRE36417E (en) Method of detecting changes to a collection of digital signals
Mujdei et al. Side-channel analysis of lattice-based post-quantum cryptography: Exploiting polynomial multiplication
Ronen et al. Pseudo constant time implementations of TLS are only pseudo secure
WO1997012322A1 (en) Polymorphic virus detection module
Rivain et al. Analysis and improvement of differential computation attacks against internally-encoded white-box implementations
Breitinger et al. Security and implementation analysis of the similarity digest sdhash
US20170249460A1 (en) Provably secure virus detection
Banegas et al. Disorientation faults in CSIDH
KR20110013334A (ko) 오류 주입 공격들을 대비하여 보호되는 데이터 처리 방법 및 관련 장치
Di Crescenzo et al. Cryptographic hashing for virus localization
US20230077946A1 (en) Methods and ip cores for reducing vulnerability to hardware attacks and/or improving processor performance
KR101092342B1 (ko) 파일 축약 정보 생성, 시그니쳐 생성 및 시그너쳐 패턴 검증 장치 및 방법
Colombier et al. Horizontal correlation attack on classic McEliece
Krahmer et al. Correction Fault Attacks on Randomized CRYSTALS-Dilithium
Braga et al. From Dragondoom to Dragonstar: Side-channel Attacks and Formally Verified Implementation of WPA3 Dragonfly Handshake
Kwong et al. Checking Passwords on Leaky Computers: A Side Channel Analysis of Chrome's Password Leak Detect Protocol
Verma DEVELOPMENT OF A VIRUS DETECTION SYSTEM FOR DOS ENVIRONMENT

Legal Events

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

Payment date: 20160629

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 7