KR20130044290A - 악성 소프트웨어를 분석 및 검출하기 위한 방법 및 장치 - Google Patents

악성 소프트웨어를 분석 및 검출하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20130044290A
KR20130044290A KR1020137000043A KR20137000043A KR20130044290A KR 20130044290 A KR20130044290 A KR 20130044290A KR 1020137000043 A KR1020137000043 A KR 1020137000043A KR 20137000043 A KR20137000043 A KR 20137000043A KR 20130044290 A KR20130044290 A KR 20130044290A
Authority
KR
South Korea
Prior art keywords
malicious software
code
pattern
patterns
sample
Prior art date
Application number
KR1020137000043A
Other languages
English (en)
Inventor
마르쿠스 주하니 미에티넨
Original Assignee
노키아 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 노키아 코포레이션 filed Critical 노키아 코포레이션
Publication of KR20130044290A publication Critical patent/KR20130044290A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • 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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Telephone Function (AREA)
  • Stored Programmes (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

악성 소프트웨어의 분석 및 검출을 제공하기 위한 방법은 샘플 코드 내의 패턴을 미리 결정된 악성 소프트웨어 패턴 세트와 비교하도록 지시하는 단계, 비교에 기초하여 샘플 코드가 악성 소프트웨어인 것 같은지 여부를 판단하는 단계, 및 샘플 코드가 악성 소프트웨어인 것 같다는 판단에 응답하여, 샘플 코드 내의 패턴에 기초하여 샘플 코드가 관련되는 악성 소프트웨어 클러스터를 결정하는 단계를 포함할 수 있다. 대응하는 컴퓨터 프로그램 제품 및 장치가 또한 제공된다.

Description

악성 소프트웨어를 분석 및 검출하기 위한 방법 및 장치{METHOD AND APPARATUS FOR ANALYZING AND DETECTING MALICIOUS SOFTWARE}
본 발명의 실시예는 일반적으로 네트워크 및 디바이스 보안 기술에 관한 것으로서, 특히 악성 소프트웨어의 분석 및 검출을 제공하기 위한 방법, 장치 및 컴퓨터 프로그램 제품에 관한 것이다.
현대의 통신 시대는 유선 및 무선 네트워크의 엄청난 확장을 가져왔다. 컴퓨터 네트워크, 텔레비젼 네트워크, 및 전화 네트워크는 소비자 요구에 의해 자극된 전례 없는 기술적 확장을 겪고 있다. 네트워킹 기술은 정보 전송의 더 많은 유연성 및 신속성을 제공하면서 관련된 소비자 요구를 처리해왔다.
현재 및 장래의 네트워킹 기술은 전자 디바이스의 능력을 확장하며 네트워크 성능을 개선함으로써 사용자에게 정보 전송의 용이성 및 편리성을 계속해서 촉진한다. 정보 전송의 용이성을 증가시키라는 요구가 존재하는 하나의 영역은 전자 디바이스의 사용자에 대한 서비스의 전달에 관한 것이다. 서비스는 뮤직 플레이어, 게임 플레이어, 전자책, 단문 메시지, 이메일, 콘텐츠 공유, 웹 브라우징 등과 같은 사용자에 의해 요구되는 특정 매체 또는 통신 애플리케이션의 형태일 수 있다. 서비스는 태스크를 수행하거나 목표를 달성하기 위해 사용자가 네트워크 디바이스에 응답할 수 있는 대화식 응용의 형태일 수도 있다. 대안으로, 네트워크 디바이스는 사용자에 의해 이루어지는 명령 또는 요청(예를 들어, 콘텐츠 탐색, 맵핑 또는 라우팅 서비스 등)에 응답할 수 있다. 서비스는 네트워크 서버 또는 다른 네트워크 디바이스로부터 제공되거나, 예를 들어 이동 전화, 이동 내비게이션 시스템, 이동 컴퓨터, 모바일 텔레비젼, 이동 게임 시스템 등과 같은 이동 단말로부터 심지어 제공될 수 있다.
콘텐츠 및 정보의 연속적인 요구는 디바이스 사이에서 대량의 데이터, 콘텐츠 및 정보의 전송을 발생시킨다. 디바이스 사이에서 전송되는 많은 재료는 정확히 대응하는 사용자에 의해 요구되는 것일지라도, 악성 소프트웨어(또는 악성 소프트웨어)는 디바이스 사이에서 전송될 수도 있다. 악성 소프트웨어는 사생활 관심을 내포하거나, 일부 상황에서 분열적이거나 심지어 파괴적이고 비용이 많이 들 수 있다. 따라서, 악성 소프트웨어에 대한 보호가 제공될 수 있는 개선된 메커니즘을 계속해서 개발하는 것이 바람직할 수 있다.
그러므로, 방법, 장치 및 컴퓨터 프로그램 제품은 소프트웨어가 악성 소프트웨어의 검출을 위해 분석될 수 있게 하기 위해 제공된다. 이 점에 있어서, 예를 들어, 일부 실시예는 소프트웨어의 코드 구조 내의 패턴에 기초하여 소프트웨어의 분석을 제공할 수 있다. 그러므로, 악성 소프트웨어는 소프트웨어의 코드 구조 내의 패턴에 기초하여, 일부 경우에 검출될 수 있다.
하나의 예시적 실시예에 있어서, 악성 소프트웨어의 분석 및 검출을 제공하는 방법이 제공된다. 방법은 샘플 코드 내의 패턴을 미리 결정된 악성 소프트웨어 패턴 세트와 비교하도록 지시하는 단계, 비교에 기초하여 샘플 코드가 악성 소프트웨어인 것 같은지 여부를 판단하는 단계, 및 샘플 코드가 악성 소프트웨어인 것 같다는 판단에 응답하여, 샘플 코드 내의 패턴에 기초하여 샘플 코드가 관련되는 악성 소프트웨어 클러스터를 결정하는 단계를 포함할 수 있다.
다른 예시적 실시예에 있어서, 악성 소프트웨어의 분석 및 검출을 제공하기 위한 컴퓨터 프로그램 제품이 제공된다. 컴퓨터 프로그램 제품은 컴퓨터 실행 가능 프로그램 코드 명령어를 저정한 적어도 하나의 컴퓨터 판독 가능 저장 매체를 포함한다. 컴퓨터 실행 가능 프로그램 코드 명령어는 샘플 코드 내의 패턴과 미리 결정된 악성 소프트웨어 패턴 세트와 비교하도록 지시하고, 비교에 기초하여 샘플 코드가 악성 소프트웨어인 것 같은지 여부를 판단하고, 샘플 코드가 악성 소프트웨어인 것 같다는 판단에 응답하여, 샘플 코드 내의 패턴에 기초하여 샘플 코드가 관련되는 악성 소프트웨어 클러스터를 결정하기 위한 프로그램 코드 명령어를 포함할 수 있다.
다른 예시적 실시예에 있어서, 악성 소프트웨어의 분석 및 검출을 제공하기 위한 장치가 제공된다. 장치는 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함할 수 있다. 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는 적어도 하나의 프로세서를 이용하여, 장치로 하여금 샘플 코드 내의 패턴과 미리 결정된 악성 소프트웨어 패턴 세트와 비교하도록 지시하는 것, 비교에 기초하여 샘플 코드가 악성 소프트웨어인 것 같은지 여부를 판단하는 것, 및 샘플 코드가 악성 소프트웨어인 것 같다는 판단에 응답하여, 샘플 코드 내의 패턴에 기초하여 샘플 코드가 관련되는 악성 소프트웨어 클러스터를 결정하는 것을 적어도 수행하게 하도록 구성될 수 있다.
본 발명의 실시예는 이동 환경 또는 고정 환경에서의 이용을 위해 방법, 장치 및 컴퓨터 프로그램 제품을 제공할 수 있다. 그 결과, 예를 들어 이동 단말 및 다른 컴퓨팅 디바이스 사용자는 네트워크 응용 또는 서비스에 액세스할 때 개선된 보안 레벨을 향유할 수 있다.
이와 같이 본 발명의 실시예를 설명되었으며, 반드시 축척에 따라 도시되지 않는 첨부 도면에 대한 참조가 이제 이루어질 것이다.
도 1은 본 발명의 예시적 실시예에 따른 무선 통신 시스템의 개략적인 블록도이다.
도 2는 본 발명의 예시적 실시예에 따른 악성 소프트웨어의 분석 및 검출을 제공하기 위한 장치의 블록도를 예시한다.
도 3은 본 발명의 예시적 실시예에 따른 악성 소프트웨어의 분석 및 검출을 제공하기 위한 다른 예시적 방법에 따른 순서도이다.
본 발명의 일부 실시예가 이제 일부이지만 전부는 아닌 본 발명의 실시예가 도시된 첨부 도면을 참조하여 이하에 더 완전하게 설명될 것이다. 실제로, 본 발명의 각종 실시예는 많은 상이한 형태로 구체화될 수 있으며 본 명세서에 설명된 실시예에 제한되는 것으로 해석되지 않아야 한다; 오히려, 이 실시예는 본 명세서가 적용가능한 법적 요건을 충족하도록 제공한다. 동일한 참조 숫자는 도처에서 동일한 요소를 지칭한다. 본 명세서에서 사용되는 바와 같이, 용어 "데이터(data)", "콘텐츠(content)", "정보(information)" 및 유사한 용어는 본 발명의 실시예에 따라 송신, 수신 및/또는 저장될 수 있는 데이터를 지칭하기 위해 교환가능하게 이용될 수 있다. 따라서, 임의의 그러한 용어의 이용은 본 발명의 실시예의 사상 및 범위를 제한하는 것으로 해석되지 않아야 한다.
게다가, 본 명세서에서 사용되는 바와 같이, '회로(circuitry)'라는 용어는 (a) 하드웨어만의 회로 구현(예를 들어, 아날로그 회로 및/또는 디지털 회로에서의 구현); (b) 장치로 하여금 본 명세서에 설명된 하나 이상의 기능을 수행하게 하도록 함께 동작하는 하나 이상의 컴퓨터 판독 가능 메모리 상에 저장된 소프트웨어 및/또는 펌웨어 명령어를 포함하는 회로 및 컴퓨터 프로그램 제품(들)의 조합, 및 (c) 예를 들어 소프트웨어 또는 펌웨어가 물리적으로 존재하지 않을지라도 동작을 위해 소프트웨어 또는 펌웨어를 필요로 하는 마이크로프로세서(들) 또는 마이크로프로세서(들)의 일부와 같은 회로를 지칭한다. '회로(circuitry)'의 이 정의는 임의의 청구항을 포함하는 이 용어의 모든 사용에 적용된다. 추가 예로서, 본 명세서에서 사용되는 바와 같이, '회로(circuitry)'이란 용어는 하나 이상의 프로세서 및/또는 그 부분(들) 및 수반하는 소프트웨어 및/또는 펌웨어를 포함하는 구현도 포함한다. 다른 예로서, 본 명세서에서 사용된 바와 같은 '회로(circuitry)'라는 용어는 예를 들어 기저대역 집적 회로 또는 이동 전화에 대한 응용 프로세서 집적 회로 또는 서버, 셀룰러 네트워크 장치, 다른 네트워크 장치, 및/또는 다른 컴퓨팅 장치 내의 유사한 집적 회로도 포함한다.
본 명세서에 정의된 바와 같이, 비일시적, 물리적 저장 매체(예를 들어, 휘발성 또는 비휘발성 메모리 디바이스)를 지칭하는 "컴퓨터 판독 가능 저장 매체"는 전자기 신호를 지칭하는 "컴퓨터 판독 가능 송신 매체"와 구별될 수 있다.
앞서 지시된 바와 같이, 본 발명의 일부 실시예는 악성 소프트웨어 검출의 제공과 관련될 수 있다. 일부 경우에, 악성 소프트웨어의 검출은 코드의 특성의 분석 및/또는 이진 코드로부터 계산된 체크섬의 체킹에 기초할 수 있었다. 그러나, 그러한 방법의 동작은 악성 소프트웨어가 그 자체를 수정하거나 다른 악성 소프트웨어의 새롭게 약간 수정된 버전으로서 루틴하게 공개되는 상황에서 복잡해질 수 있다. 이 경우에, 코드 내의 임의의 변경은 체크섬이 변경되게 할 수 있고 따라서 악성 소프트웨어 코드의 새로운 버전은 오래된 검출 서명과 일치하지 않을 수 있다. 일부 경우에, 수개의 부분 체크섬은 악성 소프트웨어 코드의 임의의 수정되지 않은 부분이 동일한 체크섬을 유지하도록 악성 소프트웨어 코드를 통해서 이용될 수 있다. 그러나, 코드의 전체 본문에 걸쳐서 악성 소프트웨어 코드에 대해 이루어지는 변경은 이 메커니즘의 성공한 구현을 또한 복잡하게 할 수 있다. 따라서, 일부 실시예에 있어서, 소프트웨어는 코드 구조 내의 패턴을 기초로 하여 분석될 수 있고 악성 소프트웨어는 그러한 패턴에 기초하여 검출될 수 있다. 따라서, 예를 들어 웜, 바이러스 및 다른 악성 소프트웨어는 변경이 코드에 대해 이루어졌을 때에도, 실행 가능 코드로 동작하는 플랫폼의 보안 및 안정성을 개선하기 위해 검출될 수 있다. 더욱이, 실시예는 임의의 실행 플랫폼과의 이용을 위해 PC(personal computer) 프로그램, 이동 단말 프로그램 또는 실행 가능 코드에 적용가능할 수 있다.
도 1은 본 발명의 실시예로 이득을 얻을 수 있는 이동 단말(10)과 디바이스가 예시적 통신 환경에 도시되어 있는 일반적 시스템 다이어그램을 예시한다. 도 1에 도시된 바와 같이, 본 발명의 예시적 실시예에 따른 시스템은 네트워크(30)와 각각 통신할 수 있는 제 1 통신 디바이스(예를 들어, 이동 단말(10)) 및 제 2 통신 디바이스(20)를 포함한다. 제 2 통신 디바이스(20)는 네트워크(30)에 포함될 수 있고 예시적 실시예를 실시할 수 있는 다른 디바이스의 경우에 대하여 잠재적인 다양성을 예시하기 위해 예로서 제공된다. 시스템의 통신 디바이스는 네트워크 디바이스와 통신하거나 네트워크(30)를 통해서 서로 통신가능할 수 있다. 일부 경우에, 시스템의 통신 디바이스가 통신하는 네트워크 디바이스는 서비스 플랫폼(40)을 포함할 수 있다. 예시적 실시예에 있어서, 이동 단말(10)(및/또는 제 2 통신 디바이스(20))는 정보를 제공, 요청 및/또는 수신하기 위해 서비스 플랫폼(40)과 통신할 수 있다.
이동 단말(10)의 예시적 실시예가 예를 위해 이하에 예시되고 설명될 수 있을지라도, PDA(portable digital assistant), 페이저, 모바일 텔레비젼, 이동 전화, 게임 디바이스, 랩톱 컴퓨터, 카메라, 카메라 폰, 비디오 레코더, 오디오/비디오 플레이어, 라디오, GPS 디바이스, 내비게이션 디바이스와 같은 다수의 타입의 이동 단말, 또는 상술한 것의 임의의 조합, 및 다른 타입의 음성 및 텍스트 통신 시스템은 본 발명의 실시예를 용이하게 이용할 수 있다.
더욱이, 이동이 아닌 디바이스는 본 발명의 실시예를 용이하게 이용할 수도 있다. 그러한 것으로서, 예를 들어, 제 2 통신 디바이스(20)는 예시적 실시예를 이용할 수 있는 고정 전자 디바이스의 예를 나타낼 수 있다. 예를 들어, 제 2 통신 디바이스(20)는 PC(personal computer) 또는 터치 디스플레이를 갖는 다른 단말일 수 있다.
일부 실시예에 있어서, 본 발명의 실시예를 이용하는 모든 시스템은 본 명세서에 예시되며 그리고/또는 설명되는 모든 디바이스를 포함할 수 있는 것은 아니다. 예를 들어, 이동 사용자 디바이스(예를 들어, 이동 단말(10)), 고정 사용자 디바이스(예를 들어, 제 2 통신 디바이스(20)), 또는 네트워크 디바이스(예를 들어, 서비스 플랫폼(40))가 네트워크(30)와 통신을 갖는 연결로 예시적 실시예를 수행하는 것을 가능하게 하는 장치를 포함할 수 있는 예시적 실시예가 본 명세서에서 설명될지라도, 일부 실시예는 디바이스 또는 네트워크(30) 중 하나 또는 다수를 전적으로 배제하며 단일 디바이스(예를 들어, 이동 단말(10) 또는 제 2 통신 디바이스(20)) 상에서 독립 조작(stand alone) 모드로 간단히 실시될 수 있는 점이 이해되어야 한다.
예시적 실시예에 있어서, 네트워크(30)는 대응하는 유선 및/또는 무선 인터페이스를 통해서 서로 통신할 수 있는 각종 상이한 노드, 디바이스 또는 기능의 집합을 포함한다. 그러한 것으로서, 도 1의 예시는 시스템의 어떤 요소의 넓은 도면 및 시스템 또는 네트워크(30)의 모두 포함하지 않는 또는 상세한 도면의 예인 것으로 이해되어야 한다. 필요하지 않을지라도, 일부 실시예에 있어서, 네트워크(30)는 다수의 1G(first-generation), 2G(second-generation), 2.5G, 3G(third-generation), 3.5G, 3.9G, 4G(fourth-generation) 이동 통신 프로토콜, LTE(Long Term Evolution) 및/또는 동등한 것 중 어느 하나 이상에 따라 통신을 지원할 수 있다.
이동 단말(10) 및 제 2 통신 디바이스(20)와 같은 하나 이상의 통신 단말은 네트워크(30)를 통해서 서로 통신할 수 있으며, 각각은 하나 이상의 셀룰러 또는 이동 네트워크의 일부인 기지국 또는 LAN(local area network), MAN(metropolitan area network), 및/또는 WAN(wide area network), 예컨대 인터넷과 같은 데이터 네트워크에 결합될 수 있는 액세스 포인트일 수 있는 베이스 사이트에 신호를 송신하고 베이스 사이트로부터 신호를 수신하기 위한 안테나 또는 안테나들을 포함할 수 있다. 차례로, 처리 디바이스 또는 요소(예를 들어, 개인용 컴퓨터, 서버 컴퓨터 또는 동등한 것)와 같은 다른 디바이스는 네트워크(30)를 통해서 이동 단말(10) 및 제 2 통신 디바이스(20)에 결합될 수 있다. 이동 단말(10), 제 2 통신 디바이스(20) 및 다른 디바이스를 네트워크(30)에 직접 또는 간접적으로 연결함으로써, 이동 단말(10) 및 제 2 통신 디바이스(20)는 예를 들어 HTTP(Hypertext Transfer Protocol) 및/또는 동등한 것을 포함하는 다수의 통신 프로토콜에 따라 다른 디바이스(또는 서로)와 통신하는 것을 가능하게 함으로써, 이동 단말(10) 및 제 2 통신 디바이스(20)의 각종 통신 또는 다른 기능을 각각 수행할 수 있다.
더욱이, 도 1에 도시되지 않을지라도, 이동 단말(10) 및 제 2 통신 디바이스(20)는 예를 들어 RF(radio frequency), BT(Bluetooth), IR(Infrared) 또는 LAN, WLAN(wireless LAN), WiMAX(Worldwide Interoperability for Microwave Access), WiFi, UWB(ultra-wide band), 와이브리(Wibree) 기법 및/또는 동등한 것을 포함하는 다수의 상이한 유선 또는 무선 통신 기법 중 어느 하나에 따라 통신할 수 있다. 그러한 것으로서, 이동 단말(10) 및 제 2 통신 디바이스(20)는 네트워크(30)와 통신하고 다수의 상이한 액세스 메커니즘 중 어느 하나에 의해 서로 통신가능하게 할 수 있다. 예를 들어, W-CDMA(wideband code division multiple access), CDMA2000, GSM(global system for mobile communications), GPRS(general packet radio service) 및/또는 동등한 것과 같은 이동 액세스 메커니즘은 WLAN, WiMAX, 및/또는 동등한 것과 같은 무선 액세스 메커니즘뿐만 아니라 DSL(digital subscriber line), 케이블 모뎀, 이더넷 및/또는 동등한 것과 같은 고정 액세스 메커니즘도 지원될 수 있다.
예시적 실시예에 있어서, 서비스 플랫폼(40)은 서버 또는 다른 처리 디바이스와 같은 디바이스 또는 노드일 수 있다. 서비스 플랫폼(40)은 임의의 수의 기능 또는 각종 서비스와의 연계를 가질 수 있다. 그러한 것으로서, 예를 들어, 서비스 플랫폼(40)은 특정 정보 소스 또는 서비스(예를 들어, 보안 서비스)와 관련된 전용 서버(또는 서버 뱅크)와 같은 플랫폼일 수 있거나, 서비스 플랫폼(40)은 하나 이상의 다른 기능 또는 서비스와 관련된 백엔드 서버일 수 있다. 그러한 것으로서, 서비스 플랫폼(40)은 복수의 상이한 서비스 또는 정보 소스에 대한 잠재적 호스트를 나타낸다. 일부 실시예에 있어서, 서비스 플랫폼(40)의 기능성은 통신 디바이스의 사용자에게 정보의 제공을 위해 알려진 기법에 따라 동작하도록 구성된 하드웨어 및/또는 소프트웨어 컴포넌트에 의해 제공된다. 그러나, 서비스 플랫폼(40)에 의해 제공되는 기능성의 적어도 일부는 본 발명의 예시적 실시예에 따라 제공되는 정보이다.
도 2는 본 발명의 예시적 실시예에 따라 악성 소프트웨어의 분석 및 검출을 제공하기 위한 장치의 개략 블록도를 예시한다. 본 발명의 예시적 실시예는 이제 악성 소프트웨어의 분석 및 검출을 제공하기 위한 장치(50)의 어떤 요소가 디스플레이되는 도 2를 참조하여 설명될 것이다. 도 2의 장치(50)는 예를 들어 서비스 플랫폼(40) 상에, 이동 단말(10) 상에 및/또는 제 2 통신 디바이스(20) 상에 이용될 수 있다. 그러나, 장치(50)는 대안으로 각종 다른 디바이스, 이동 및 고정 모두(예를 들어 상기 리스트된 디바이스 중 어느 하나와 같은)에서 구체화될 수 있다. 일부 경우에, 실시예는 디바이스의 하나 또는 조합으로 이용될 수 있다. 따라서, 본 발명의 일부 실시예는 전적으로 단일 디바이스(예를 들어, 서비스 플랫폼(40), 이동 단말(10) 또는 제 2 통신 디바이스(20))에서, 분산된 방식의 복수의 디바이스에 의해 또는 클라이언트/서버 관계의 디바이스(예를 들어, 이동 단말(10) 및 서비스 플랫폼(40))에 의해 구체화될 수 있다. 더욱이, 이하에 설명되는 디바이스 또는 요소는 필수적인 것은 아니므로 일부가 따라서 어떤 실시예에서 생략될 수 있는 것이 주목되어야 한다.
이제 도 2를 참조하면, 악성 소프트웨어의 분석 및 검출을 제공하기 위한 장치가 제공된다. 장치(50)는 프로세서(70), 사용자 인터페이스(72), 통신 인터페이스(74) 및 메모리 디바이스(76)를 포함하거나 이들과 다르게 통신할 수 있다. 메모리 디바이스(76)는 예를 들어, 하나 이상의 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 다시 말하면, 예를 들어 메모리 디바이스(76)는 머신(예를 들어, 컴퓨팅 디바이스)에 의해 검색가능할 수 있는 데이터(예를 들어, 비트)를 저장하도록 구성된 메모리 셀을 정의하는 게이트 또는 다른 구조를 포함하는 전자 저장 디바이스(예를 들어, 컴퓨터 판독 가능 저장 매체)일 수 있다. 메모리 디바이스(76)는 장치가 본 발명의 예시적 실시예에 따라 각종 기능을 수행할 수 있게 하기 위한 정보, 데이터, 응용, 명령어 또는 동등한 것을 저장하도록 구성될 수 있다. 예를 들어, 메모리 디바이스(76)는 프로세서(70)에 의한 처리를 위해 입력 데이터를 버퍼링하도록 구성될 수 있다. 추가적으로 또한 대안으로, 메모리 디바이스(76)는 프로세서(70)에 의한 실행을 명령어를 저장하도록 구성될 수 있다.
프로세서(70)는 다수의 상이한 방법으로 구체화될 수 있다. 예를 들어, 프로세서(70)는 코프로세서, 마이크로프로세서, 컨트롤러, DSP(digital signal processor), 수반하는 DSP를 갖거나 갖지 않는 처리 요소와 같은 각종 처리 수단, 또는 예를 들어 ASIC(application specific integrated circuit), FPGA(field programmable gate array), MCU(microcontroller unit), 하드웨어 가속기, 특수 목적 컴퓨터 칩, 처리 회로, 또는 동등한 것과 같은 집적 회로를 포함하는 각종 다른 처리 디바이스 중 하나 이상으로서 구체화될 수 있다. 예시적 실시예에 있어서, 프로세서(70)는 메모리 디바이스(76)에 저장되거나 프로세서(70)에 다르게 액세스 가능한 명령어를 실행하도록 구성될 수 있다. 대안으로 또는 추가적으로, 프로세서(70)는 하드 코드된 기능성을 실행하도록 구성될 수 있다. 그러한 것으로서, 하드웨어 또는 소프트웨어 방법에 의해 구성되든지, 그의 조합에 의해 구성되든지, 프로세서(70)는 적절히 구성되어 있는 동안 본 발명의 실시예에 따라 동작을 수행할 수 있는 엔티티(예를 들어, 회로에서 물리적으로 구체화되는)를 나타낼 수 있다. 따라서, 예를 들어 프로세서(70)가 ASIC, FPGA 또는 동등한 것으로서 구체화될 때, 프로세서(70)는 본 명세서에 설명된 동작을 수행하기 위한 특별히 구성된 하드웨어일 수 있다. 대안으로, 다른 예로서, 프로세서(70)가 소프트웨어 명령어의 실행기로서 구체화될 때, 명령어는 명령어가 실행될 때 본 명세서에 설명된 알고리즘 및/또는 동작을 수행하기 위해 프로세서(70)를 특별히 구성할 수 있다. 그러나, 일부 경우에, 프로세서(70)는 본 명세서에 설명된 알고리즘 및/또는 동작을 수행하기 위한 명령어에 의한 프로세서(70)의 추가 구성에 의해 본 발명의 실시예를 이용하도록 구성된 특정 디바이스(예를 들어, 이동 단말(10) 또는 네트워크 디바이스)의 프로세서일 수 있다. 그것에 제공되거나 프로세서(70)의 구성과 관련되는 명령어 또는 프로그래밍을 실행함으로써, 프로세서(70)는 대응하는 기능성이 수행되게 할 수 있다. 프로세서(70)는 그 중에서도 특히 프로세서(70)의 동작을 지원하도록 구성된 클록, ALU(arithmetic logic unit) 및 논리 게이트를 포함할 수 있다.
한편, 통신 인터페이스(74)는 장치와 통신하는 네트워크 및/또는 임의의 다른 디바이스 또는 모듈로부터/에 데이터를 수신 및/또는 송신하도록 구성되는 하드웨어, 소프트웨어, 또는 하드웨어 및 소프트웨어의 조합으로 구체화된 디바이스 또는 회로와 같은 임의의 수단일 수 있다. 이 점에 있어서, 통신 인터페이스(74)는 예를 들어 안테나(또는 다수의 안테나)를 포함하고 무선 통신 네트워크와의 통신을 가능하게 하기 위한 하드웨어 및/또는 소프트웨어를 지원하는 것을 포함할 수 있다. 일부 환경에서, 통신 인터페이스(74)는 대안으로 또는 또한 유선 통신을 지원할 수 있다. 그러한 것으로서, 예를 들어 통신 인터페이스(74)는 케이블, DSL(digital subscriber line), USB(universal serial bus) 또는 다른 메커니즘을 통해서 통신을 지원하기 위한 통신 모뎀 및/또는 다른 하드웨어/소프트웨어를 포함할 수 있다.
사용자 인터페이스(72)는 사용자 인터페이스(72)에서 사용자 입력의 지시를 수신하기 위해 및/또는 사용자 사용자에게 가청, 시각, 기계, 또는 다른 출력을 제공하기 위해 프로세서(70)와 통신할 수 있다. 그러한 것으로서, 사용자 인터페이스(72)는 예를 들어 키보드, 마우스, 조이스틱, 디스플레이, 터치 스크린 디스플레이, 소프트 키, 마이크로폰, 스피커, 및/또는 다른 입력/출력 메커니즘을 포함할 수 있다. 장치가 서버 또는 일부 다른 네트워크 디바이스로서 구체화되는 예시적 실시예에 있어서, 사용자 인터페이스(72)가 제한, 또는 제거될 수 있다.
그러나, 장치가 통신 디바이스(예를 들어, 이동 단말(10) 또는 제 2 통신 디바이스(20))로서 구체화되는 실시예에 있어서, 사용자 인터페이스(72)는 다른 디바이스 또는 요소 중에서, 스피커, 마이크로폰, 디스플레이, 및 키보드 또는 동등한 것 중 어느 하나 또는 모두를 포함할 수 있다. 이 점에 있어서, 예를 들어 프로세서(70)는 예를 들어 스피커, 링어, 마이크로폰, 디스플레이, 및/또는 동등한 것과 같은 사용자 인터페이스의 하나 이상의 요소의 적어도 일부 기능을 제어하도록 구성된 사용자 인터페이스 회로를 포함할 수 있다. 프로세서(70) 및/또는 프로세서(70)를 포함하는 사용자 인터페이스 회로는 프로세서(70)(예를 들어, 메모리 디바이스(76), 및/또는 동등한 것)에 액세스 가능한 메모리 상에 저장된 컴퓨터 프로그램 명령어(예를 들어, 소프트웨어 및/또는 펌웨어)를 통해서 사용자 인터페이스의 하나 이상의 요소의 하나 이상의 기능을 제어하도록 구성될 수 있다.
예시적 실시예에 있어서, 프로세서(70)는 패턴 판단기(80), 클러스터 매니저(82) 및 악성 소프트웨어 검출기(84)를 포함하거나 다르게 제어하는 것으로 구체화될 수 있다. 그러한 것으로서, 일부 실시예에 있어서, 프로세서(70)는 본 명세서에 설명된 바와 같이 패턴 판단기(80), 클러스터 매니저(82) 및/또는 악성 소프트웨어 검출기(84)에 부속되는 각종 기능의 실행 또는 발생을 초래, 명령 또는 제어한다고 할 수 있다. 패턴 판단기(80), 클러스터 매니저(82) 및 악성 소프트웨어 검출기(84)는 본 명세서에 설명된 바와 같이, 소프트웨어에 따라 동작하고 하드웨어 또는 하드웨어 및 소프트웨어의 조합으로 다르게 구체화되는 디바이스 또는 회로(예를 들어, 소프트웨어 제어 하에 동작하되, 본 명세서에 설명된 동작을 수행하도록 특별히 구성된 ASIC 또는 FPG, 또는 그의 조합으로서 구체화되는 프로세서(70))과 같은 임의의 수단 각각임으로써 패턴 판단기(80), 클러스터 매니저(82) 및 악성 소프트웨어 검출기(84) 각각의 대응하는 기능을 수행하도록 디바이스 또는 회로를 구성할 수 있다. 따라서, 소프트웨어가 이용되는 예에서, 소프트웨어를 실행하는 디바이스 또는 회로(예를 들어, 일예에서의 프로세서(70))은 그러한 수단과 관련된 구조를 형성한다.
예시적 실시예에 있어서, 패턴 판단기(80)는 일반적으로 복수의 악성 소프트웨어 샘플로부터 또는 알려진 악성 소프트웨어 예의 라이브러리로부터 악성 소프트웨어 패턴 세트를 결정하도록 구성될 수 있다. 클러스터 매니저(82)는 각 패턴 사이의 공통성에 기초하여 악성 소프트웨어 패턴 세트를 클러스터링하도록 구성될 수 있다. 그러므로, 실제에 있어서, 클러스터 매니저(82)는 패턴 내의 공통성 또는 유사성에 기초하여 클러스터 또는 악성 소프트웨어 군을 정의하도록 구성될 수 있다. 악성 소프트웨어 검출기(84)는 악성 소프트웨어 패턴이 분석되는 코드와 일치하거나 유사한지 및/또는 악성 소프트웨어 패턴이 분석되는 코드와 어느 정도 일치하거나 유사한지를 판단하기 위해 분석되는 코드와 악성 소프트웨어 패턴 세트 사이의 비교를 수행하도록 구성될 수 있다. 그러한 것으로서, 악성 소프트웨어 검출기(84)는 분석되는 코드기 비교에 기초하여 악성 소프트웨어인지를 검출 또는 판단하도록 구성될 수 있다. 일부 실시예에 있어서, 악성 소프트웨어 검출기(84)는 분석되는(악성 소프트웨어인 것으로 결정되는 그러한 코드에 응답하여) 코드가 어느 악성 소프트웨어 군에 속하는지 또는 어느 악성 소프트웨어 군과 가장 밀접하게 관련되는지를 판단하도록 구성될 수도 있다.
패턴 판단기(80)는 악성 소프트웨어 패턴 세트를 판단하도록 구성될 수 있다. 예시적 실시예에 있어서, 패턴 판단기(80)는 내성(robust) 악성 소프트웨어 샘플 세트를 저장하는 저장소 또는 라이브러리(예를 들어, 메모리 디바이스(76) 또는 일부 다른 액세스 가능 메모리 위치에 저장되는)에 액세스 가능하게 할 수 있다. 그러한 것으로서, 패턴 판단기(80)는 알려진 악성 소프트웨어의 실행 가능 코드 및/또는 메타데이터의 저장소를 참조하도록 구성될 수 있다. 일부 경우에, 악성 소프트웨어의 소스 코드는 소스 코드가 사용가능한 일이 생기면 이용될 수 있다.
예시적 실시예에 있어서, 패턴 판단기(80)는 실행 가능 이진수의 고레벨 표현(예를 들어 어셈블러 코드 또는 고레벨 언어)을 제시하기 위해 실행 가능 코드를 역어셈블리함으로써 악성 소프트웨어 샘플을 처리하도록 구성될 수 있다. 그 다음, 코드는 동일한 기능 또는 서브루핀에 속하는 명령이 동일한 시퀀스에 할당될 수 있도록 시퀀스로 분할될 수 있다. 선택적으로, 코드의 다른 시퀀싱 기준이 이용될 수도 있다. 예를 들어, 동일한 조건 구성 개념(예를 들어 any if-then-else or case-type constructs) 또는 루프 구성 개념(for- or while-type constructs)에 속하는 명령은 개별 시퀀스에 할당될 수 있다. 일부 경우에, 동일한 "기본 블록"(예를 들어, 예를 들어 기본 블록 내의 어떤 분기도 없고 기본 블록 외의 어떤 점프도 없게 시퀀스에서 항상 실행되는 명령의 시퀀스)에 속하는 명령은 개별 시퀀스에 할당될 수 있다. 예시적 실시예에 있어서, 코드의 각 시퀀스는 이 때 시퀀스를 나타내는 레코드를 더 형성하기 위해 전처리된다. 그 다음, 시퀀스 내의 각 명령(명령어, 함수 호출 또는 동등한 것)이 처리될 수 있다.
예시적 실시예에 있어서, 명령은 공통 맵핑 사전을 이용하여 명령을 명령 심볼로 초기에 번역함으로써 처리될 수 있다. 예를 들어 메모리 위치 및/또는 동등한 것에 대한 참조와 같은 분석된 코드의 경우에 특정되는 가능한 관련 명령 파라미터가 폐기될 수 있다. 예를 들어 프로세서 레지스터에 대한 참조와 같은 고정된 포괄적 의미를 갖는 명령 파라미터는 또한 공통 맵핑 사전을 이용하여 파라미터 심볼로 번역될 수 있다. 그 다음, 명령 심볼은 가능한 파라미터 심볼과 결부될 수 있다. 일부 실시예에 있어서, 명령에 대한 파라미터의 카운트를 서술한 수는 심볼과 결부될 수도 있다. 그 다음, 최종 결부된 심볼이 레코드에 추가될 수 있다. 시퀀스 내의 모든 명령이 번역되었다면, 최종 심볼 레코드는 레코드 내의 중복 심볼을 제거함으로써 처리될 수 있다. 일부 경우에, 중복의 양은 심볼과 폐기되거나 결부될 수 있다(결부는 심볼에 가능하게 포함된 파라미터 카운트가 중복 심볼 카운트로부터 확실히 구별가능한 방식으로 수행될 수 있음). 최종 심볼은 사전적 순서로 레코드 내에 배열될 수 있다. 최종적으로, 처리된 레코드는 발신된 레코드를 어느 악성 소프트웨어 샘플로부터 식별하는 메타데이터로 링크되는 악성 소프트웨어 코드 데이터베이스(M)에 추가될 수 있다. 일부 실시예에 있어서, 심볼(예를 들어, 코드 내의 명령어)의 최초 배열은 중복이 제거될 수 없고 레코드가 재배열될 수 없게 보존될 수 있다. 최초 배열을 보존하는 심볼 시퀀스에 있어서, 빈도 에피소드 마이닝은 명령어의 상대 배열이 관련된 패턴을 추출하는데 적용될 수 있다. 그러한 것으로서, 일부 실시예에 있어서, 패턴은 명령어의 상대 배열을 고려할 수 있다.
악성 소프트웨어 샘플 모두가 전처리되며 악성 소프트웨어 코드 데이터베이스(M)가 데이터를 모든 원하는 샘플로부터 포함하면, 공통 악성 소프트웨어 코드 패턴이 결정될 수 있다. 공통 악성 소프트웨어 코드 패턴의 결정은 예를 들어 Apriori와 같은 빈도 패턴 마이닝 알고리즘을 데이터베이스(M) 상에 실행함으로써 달성될 수 있다. 알고리즘은 사용자 지정 빈도 임계값(freq_thr)보다 확실히 더 빈번하게 발생하는 M 내의 심볼 조합을 발견할 수 있다. 그러므로, 빈도 심볼 조합은 대응하는 악성 소프트웨어 샘플 내에 전형적인 명령 패턴을 나타낼 수 있다. 그 다음, 최종 코드 패턴은 악성 소프트웨어 코드 패턴 데이터베이스(P)로 저장될 수 있다.
일부 실시예에 있어서, 최종 코드 패턴은 선택된 기준에 기초하여 필터링될 수 있고 그 후에 필터링된 패턴 서브세트가 이용될 수 있다. 예를 들어, 사용자는 단지 폐쇄된 빈도 패턴 또는 필터링된 빈도 패턴이 데이터베이스(P)에 저장되도록 패턴을 제한할 수 있게 될 수 있다. 빈도 패턴(p)은 패턴(p)이 적절한 서브세트인 다른 패턴이 동일한 빈도를 p로서 갖지 않는다면 폐쇄되는 것으로 할 수 있다. 다시 말하면, 패턴은 그것이 빈도에 관하여 그 자체의 폐쇄를 갖는다면 폐쇄될 수 있다. 패턴의 빈도는 패턴(p)이 데이터베이스 내의 레코드의 전체 수에 의해 분할되어 발생하는 레코드의 양으로서 정의될 수 있다. 그러나, 일부 경우에, 패턴의 빈도의 정의는 데이터베이스 사이즈에 의해 분할을 생략할 수 있으며, 빈도는 패턴(p)이 발생하는 레코드의 양으로서 정의될 수 있다.
일부 실시예에 있어서, 악성 소프트웨어 코드 패턴 데이터베이스(P)는 대안 방법으로 정제될 수 있다. 예를 들어, 상술한 처리 후에, 악성 소프트웨어 코드 패턴 데이터베이스(P)는 악성 소프트웨어 프로그램에서 빈번하게 발생하는 모든 코드 패턴을 포함할 수 있다. 악성 소프트웨어 코드 패턴 데이터베이스(P)에서 식별되는 패턴 중 하나 이상이 정규 또는 양성 프로그램에 존재하거나 심지어 공통적인 패턴인 것으로 발생하는 상황이 일어날 수 있다. 이 문제는 패턴 추출 절차(예를 들어, 상술한 메커니즘과 유사한)를 또한 양성 프로그램의 샘플 상에 수행함으로써 처리될 수 있다. 그 다음, 악성 소프트웨어 코드 패턴 데이터베이스(P)는 악성 소프트웨어 코드 패턴 데이터베이스(P)로부터 양성 프로그램의 패턴을 제거함으로써 필터링될 수 있다. 필터링 후에, 악성 소프트웨어 코드 패턴 데이터베이스(P)는 악성 소프트웨어 코드와 관련된 패턴의 더 정확한 표시를 포함할 수 있다.
예시적 실시예에 있어서, 앞서 지시된 바와 같이, 클러스터 매니저(82)는 악성 소프트웨어 군을 정의하기 위해 각 패턴 사이에서 공통성 또는 유사성에 기초하여 악성 소프트웨어 패턴 세트를 클러스터링함으로써 구성될 수 있다. 일부 실시예에 있어서, 각 악성 소프트웨어 샘플(m_k)은 그것이 일치하는 (최대) 악성 소프트웨어 코드 패턴 세트에 기초하여 악성 소프트웨어 샘플 그굽에 클러스터링된다. 예를 들어, 각 샘플(m_k)은 악성 소프트웨어 코드 패턴 데이터베이스(P) 내의 악성 소프트웨어 코드 패턴(p_i) 세트에서 c_j = {p_1, p_2, p_n}에 의해 표시되는 악성 소프트웨어 코드 클러스터에 할당될 수 있다.
일부 예시적 실시예에 있어서, 각 악성 소프트웨어 샘플(m_k)은 샘플의 실제 패턴 세트(c)와 유사할 수 있는 패턴 세트(c')에 대한 유사성에 기초하여 2차 클러스터 분류를 수용할 수도 있다. 가능한 관련있는 악성 소프트웨어 코드 패턴을 결정하기 위해, 악성 소프트웨어 코드 데이터베이스(M) 내의 c의 발생 빈도 및 사이즈(│c│- pdelta)의 그 적절한 서브세트가 계산될 수 있다. 일부 실시예에 있어서, pdelta는 1, 2, 3, 또는 동등한 것의 값을 갖는 사용자 지정 파라미터일 수 있다. c의 발생 빈도는 c 내의 모든 p_i와 일치하는 M에서 엔트리를 갖는 별개 악성 소프트웨어 샘플의 수인 것으로 정의될 수 있다.
많아야 fdelta(발생 빈도와의 비교에서 전형적으로 비교적 작을 수 있는 사용자 지정 파라미터인 fdelta)에 의한 c의 발생 빈도와 다른 M에서 발생 빈도를 갖는 c의 서브세트(c')가 있으면, 이 때 c'는 c와 관련되는 것으로 해석될 수 있고 m_k는 그 2차 클러스터로서 할당된 c'를 수용한다.
악성 소프트웨어 검출기(84)는 분석되는 코드 샘플이 악성인지의 여부를 판단하기 위해 패턴 판단기(80) 및 클러스터 매니저(82)에 의해 제공된 악성 소프트웨어 코드 패턴 및 대응하는 클러스터링(및 아마 또한 이용될 수 있는 임의의 선택적 2차 클러스터링)을 이용하도록 구성될 수 있다. 이 점에 있어서, 예를 들어 분석된 코드 샘플은 심볼 레코드 처리가 상기 패턴 판단기(80)와 관련하여 설명된 방식으로 심볼 레코드로 번역될 수 있다. 코드 샘플은 악성 소프트웨어 코드 패턴 데이터베이스(P) 내의 악성 소프트웨어 코드 패턴과 비교될 수 있고 샘플에 일치하는 모든 패턴(p)이 결정될 수 있다. 분석된 코드 샘플의 심볼 레코드와 일치하는 악성 소프트웨어 코드 패턴 데이터베이스(P) 내의 악성 소프트웨어 코드 패턴(p)에 응답하여, 코드 샘플은 잠재적으로 악성 코드인 것으로 간주될 수 있다. 일부 경우에, 일치 패턴의 수 또는 정도가 결정될 수 있으며, 일치 패턴의 수가 높아질수록 코드 샘플이 실제로 악성 코드인 것으로 더 간주될 수 있는 것 같다. 그러한 것으로서, 예를 들어, 악성 코드인 것으로 간주되어 분석되는 임의의 샘플 코드의 가능성은 샘플 코드와 알려진 악성 코드 패턴 사이에서 유사성의 양의 함수일 수 있다. 그러나, 유사성의 양이 때때로 임계값 또는 퍼센티지에 대해 측정될 수 있을지라도, 50 퍼센트보다 큰 확률 또는 일치도는 악성인 것과 같은 샘플 코드에 존재하는 것이 필요하지 않다. 그 대신에, 단지 매우 작은 전체 일치도는 신뢰성 있는 단일 패턴 일치가 발견되면 일부 경우에 존재할 수 있다. 코드 샘플이 악성 코드인지에 관한 판단 후에, 코드 샘플 및 대응하는 악성 패턴은이 때 일부 경우에, 추가 처리를 위해 시스템의 사용자 및/또는 출력에 디스플레이될 수 있다.
예시적 실시예에 있어서, 코드 샘플이 악성 소프트웨어인 판단에 응답하여, 악성 소프트웨어 검출기(84)는 코드 샘플이 속하거나 가장 밀접하게 관련되는 악성 소프트웨어 군을 결정하도록 더 구성될 수 있다. 일부 경우에, 악성 소프트웨어 검출기(84)는 분석된 샘플 코드가 잠재적으로 또는 가장 밀접하게 관련되는 적절한 클러스터를 식별 또는 결정하도록 구성될 수 있다. 이를 달성하기 위해, 악성 소프트웨어 검출기(84)는 샘플 코드에 정의된 패턴을 가장 밀접하게 일치시키는 클러스터를 발견하기 위해 샘플 코드의 패턴과 클러스터 매니저(82)에 의해 정의된 클러스터를 비교할 수 있다. 클러스터를 결정한 후에, 결정된 클러스터 및 동일한 클러스터에 속하는 가능한 다른 악성 소프트웨어 샘플은 추가 처리를 위해 사용자 및/또는 출력에 디스플레이될 수 있다.
상기 설명으로부터 알 수 있는 바와 같이, 일부 실시예는 악성 소프트웨어의 코드 구조에 기초하는 악성 소프트웨어를 검출하기 위한 자동화된 방법을 제공할 수 있다. 그러므로, 실시예는 악성 소프트웨어를 검출할 수 있게 될 수 있지만, 악성 소프트웨어는 변화되거나 악성 소프트웨어 프로그래머는 종래의 체크섬 기반 검출 기법을 회피하기 위해 명령어의 변경을 적용한다. 일부 실시예는 카테고리 또는 '악성 소프트웨어 군' 특정 악성 소프트웨어 샘플 또는 검출 샘플 속하는지를 자동으로 판단하는 메커니즘을 제공할 수도 있다. 따라서, 보안은 예를 들어 어셈블러 명령어뿐만 아니라 바이트코드도 포함하는 모든 종류의 컴퓨터 코드에 대해 개선될 수 있다.
도 3은 본 발명의 예시적 실시예에 따른 방법 및 프로그램 제품의 순서도이다. 순서도의 각 블록, 및 순서도 내의 블록의 조합은 하나 이상의 컴퓨터 프로그램 명령어를 포함하는 소프트웨어의 실행과 관련된 하드웨어, 펌웨어, 프로세서, 회로 및/또는 다른 디바이스와 같은 각종 수단에 의해 구현될 수 있는 것이 이해될 것이다. 예를 들어, 상술한 절차 중 하나 이상은 컴퓨터 프로그램 명령어에 의해 구체화될 수 있다. 이 점에 있어서, 상술한 절차를 구체화하는 컴퓨터 프로그램 명령어는 사용자 단말 또는 네트워크 디바이스의 메모리 디바이스에 의해 저장되며 사용자 단말 또는 네트워크 디바이스 내의 프로세서에 의해 실행될 수 있다. 인식되는 바와 같이, 임의의 그러한 컴퓨터 프로그램 명령어는 머신을 생산하기 위해 컴퓨터 또는 다른 프로그램가능 장치(예를 들어, 하드웨어) 상에 적재되어, 컴퓨터 또는 다른 프로그램가능 장치 상에서 실행되는 명령어는 순서도 블록(들)에 지정된 기능을 구현하기 위한 수단을 생성할 수 있다. 이 컴퓨터 프로그램 명령어는 또한 특정 방식으로 기능하기 위해 컴퓨터 또는 다른 프로그램가능 장치를 명령할 수 있는 컴퓨터 판독 가능 메모리에 저장되어, 컴퓨터 판독 가능 메모리에 저장된 명령어는 순서도 블록(들)에 지정된 기능을 구현하는 명령어 수단을 포함하는 제조 물품을 생산할 수 있다. 컴퓨터 프로그램 명령어는 또한 컴퓨터 구현 프로세스를 생산하기 위해 일련의 동작으로 하여금 컴퓨터 또는 다른 프로그램가능 장치 상에 수행되게 하도록 컴퓨터 또는 다른 프로그램가능 장치 상에 적재되어, 컴퓨터 또는 다른 프로그램가능 장치 상에서 실행되는 명령어는 순서도 블록(들)에 지정된 기능을 구현한다.
따라서, 순서도의 블록은 지정된 기능을 수행하기 위한 수단의 조합, 지정된 기능을 수행하기 위한 동작의 조합 및 지정된 기능을 수행하기 위한 프로그램 명령어 수단을 지원한다. 순서도의 하나 이상의 블록, 및 순서도 내의 블록의 조합은 지정된 기능을 수행하는 특수 목적 하드웨어 기반 컴퓨터 시스템, 또는 특수 목적 하드웨어 및 컴퓨터 명령어의 조합에 의해 구현될 수 있는 것이 또한 이해될 것이다.
이 점에 있어서, 본 발명의 일실시예에 따른 방법은, 도 3에 도시된 바와 같이, 동작 120에서 샘플 코드 내의 패턴을 미리 결정된 악성 소프트웨어 패턴 세트와 비교하도록 지시하는 단계, 및 동작 130에서의 비교에 기초하여 샘플 코드가 악성 소프트웨어인 것 같은지 여부를 판단하는 단계를 포함할 수 있다. 방법은 샘플 코드가 악성 소프트웨어인 것 같다는 판단에 응답하여, 동작 140에서 샘플 코드 내의 패턴에 기초하여 샘플 코드가 관련되는 악성 소프트웨어 클러스터를 결정하는 단계를 더 포함할 수 있다.
일부 실시예에 있어서, 상술한 동작 중 어떤 하나는 후술되는 바와 같이 수정되거나 더 확장될 수 있다. 더욱이, 일부 실시예에 있어서 추가 선택적 동작이 포함될 수도 있다(도 3 내의 파선으로 도시되어 있는 예). 이하의 수정, 선택적 추가 또는 확장 각각은 본 명세서에서 설명된 특징 사이에서 단독으로 또는 임의의 다른 것과 조합으로 상술한 동작에 포함될 수 있다는 점이 이해되어야 한다. 이 점에 있어서, 예를 들어, 방법은 동작 100에서 복수의 알려진 악성 소프트웨어 샘플과 관련된 코드 패턴에 기초하여 미리 결정된 악성 소프트웨어 패턴 세트를 결정하는 단계를 더 포함할 수 있다. 추가적으로 또는 대안적으로, 방법은 동작 110에서 미리 결정된 악성 소프트웨어 패턴 세트 내의 알려진 악성 소프트웨어 샘플 사이에서의 패턴 간의 유사성에 기초하여 미리 결정된 악성 소프트웨어 패턴 세트를 악성 소프트웨어 클러스터로 클러스터링하는 단계를 더 포함할 수 있다. 그러므로, 클러스터링은 패턴의 유사성 자체에 기초하여 수행될 수 있다. 그러나, 일부 실시예에 있어서, 패턴의 클러스터링은 패턴과 관련된 메타데이터에 기초할 수 있다. 따라서, 예를 들어, 일부 악성 소프트웨어 패턴이 하나의 또는 수개의 별개 악성 소프트웨어 군으로부터 샘플에서만 발생하면, 클러스터링은 악성 소프트웨어 군에 기초할 수 있다. 유사하게, 패턴이 발생하는 샘플과 관련된 임의의 다른 식별 메타데이터는 패턴을 클러스터링하는데 이용될 수 있다. 예시적 실시예에 있어서, 미리 결정된 악성 소프트웨어 패턴 세트를 결정하는 단계는 복수의 알려진 악성 소프트웨어 샘플에 대해, 알려진 악성 소프트웨어 샘플의 실행 가능 코드의 고레벨 표현을 생성하는 단계, 시퀀싱 기준에 기초하여 실행 가능 코드를 시퀀스로 분할하는 단계, 각 시퀀스에 대한 심볼 레코드를 형성하기 위해 시퀀스를 처리하는 단계, 심볼 레코드를 처리하고 심볼 레코드를 악성 소프트웨어 코드의 저장소에 추가하는 단계, 빈번히 발생하는 심볼 조합에 기초하여 저장소의 알려진 악성 소프트웨어 샘플 사이에서 공통 패턴을 결정하는 단계, 및 공통 패턴을 미리 결정된 악성 소프트웨어 패턴 세트로서 저장하는 단계를 포함할 수 있다. 일부 경우에, 미리 결정된 악성 소프트웨어 패턴 세트를 결정하는 단계는 빈번히 발생하는 심볼 조합에 기초하여 알려진 악성 소프트웨어 샘플 사이에서 공통 패턴을 결정하는 단계, 및 미리 결정된 악성 소프트웨어 패턴 세트를 정의하기 위해 알려진 양성 소프트웨어 샘플의 패턴에 기초하여 공통 패턴을 필터링하는 단계를 포함할 수 있다. 일부 실시예에 있어서, 미리 결정된 악성 소프트웨어 패턴 세트를 클러스터링하는 단계는 복수의 패턴의 각 클러스터에 할당하는 단계 및 적어도 하나의 패턴을 그의 대응하는 클러스터에 더하여 2차 클러스터에 할당하는 단계를 포함할 수 있다. 예시적 실시예에 있어서, 샘플 코드가 악성 소프트웨어인 것 같은지 여부를 판단하는 단계는 샘플 코드와 미리 결정된 악성 소프트웨어 패턴 세트 사이에서 일치 패턴의 수를 결정하는 단계 및 샘플 코드가 수에 기초하여 악성 소프트웨어인 가능성을 결정하는 단계를 포함할 수 있다. 일부 실시예에 있어서, 샘플 코드가 악성 소프트웨어인 것 같은지 여부를 판단하는 단계는 악성 소프트웨어인 것 같은 샘플 코드에 응답하여 사용자에게 출력을 제공하는 단계를 더 포함할 수 있으며/있거나 샘플 코드가 관련되는 악성 소프트웨어 클러스터를 결정하는 단계는 악성 소프트웨어 클러스터를 지시하는 사용자에게 출력을 제공하는 단계를 더 포함할 수 있다.
일부 경우에, 상술한 동작 100 내지 140은 수정 중 어느 하나와 함께 액세스가 적어도 하나의 네트워크를 통해 적어도 하나의 서비스에 가능하게 하기 위해 적어도 하나의 인터페이스에 액세스를 쉽게 하는 단계를 수반하는 방법으로 구현될 수 있다. 그러한 경우에, 적어도 하나의 서비스는 적어도 동작 100 내지 140을 수행하는 것일 수 있다.
예시적 실시예에 있어서, 상술한 도 3의 방법을 수행하기 위한 장치는 상술한 동작 100 내지 140의 일부 또는 각각을 수행하도록 구성된 프로세서(예를 들어, 프로세서(70))를 포함할 수 있다. 프로세서는 예를 들어 하드웨어 구현 논리 기능을 수행함으로써, 저장된 명령어를 실행함으로써, 또는 동작 각각을 수행하기 위한 알고리즘을 실행함으로써 동작 100 내지 140을 수행하도록 구성될 수 있다. 대안으로, 장치는 상술한 동작 각각을 수행하기 위한 수단을 포함할 수 있다. 이 점에 있어서, 예시적 실시예에 따르면, 동작 100 내지 140을 수행하기 위한 수단의 예는 예를 들어 프로세서(70), 패턴 판단기(80), 클러스터 매니저(82), 악성 소프트웨어 검출기(84), 및/또는 명령어를 실행하거나 상술한 바와 같이 정보를 처리하는 알고리즘을 실행하기 위한 디바이스 또는 회로의 각각의 것을 포함할 수 있다.
이전 설명 및 관련 도면에 제공된 교시의 이점을 가지는 본 명세서에 설명된 본 발명의 많은 수정과 다른 실시예가 본 당업자에게 생각날 수 있다. 그러므로, 본 발명의 실시예는 개시된 특정 실시예에 제한되지 않으며 수정 및 다른 실시예는 첨부된 청구항의 범위 내에 포함되도록 의도된다는 점이 이해되어야 한다. 게다가, 이전 설명 및 관련 도면이 요소 및/또는 기능의 어떤 예시적 조합의 맥락에서 예시적 실시예를 설명했을지라도, 요소 및/또는 기능의 상이한 조합은 첨부된 청구항의 범위 내로부터 벗어나지 않고 대안적인 실시예에 의해 제공될 수 있다는 점이 이해되어야 한다. 이 점에 있어서, 예를 들어 명시적으로 상술한 것과 요소 및/또는 기능의 상이한 조합이 첨부된 청구항의 일부에서 설명될 수 있는 바와 같이 고려될 수 있다. 특정 용어가 본 명세서에서 사용될지라도, 그것은 단지 일반적 및 설명적 의미로 사용되며 제한을 위해 사용되지 않는다.

Claims (21)

  1. 샘플 코드 내의 패턴을 미리 결정된 악성 소프트웨어 패턴 세트와 비교하도록 지시하는 단계와,
    상기 비교에 기초하여 상기 샘플 코드가 악성 소프트웨어인 것 같은지 여부를 판단하는 단계와,
    상기 샘플 코드가 악성 소프트웨어인 것 같다는 판단에 응답하여, 상기 샘플 코드 내의 상기 패턴에 기초하여 상기 샘플 코드에 관련된 악성 소프트웨어 클러스터를 결정하는 단계를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 미리 결정된 악성 소프트웨어 패턴 세트를 결정하는 단계는
    알려진 악성 소프트웨어 샘플들 사이에서 빈번히 발생하는 심볼 조합에 기초하여 공통 패턴을 결정하는 단계와,
    상기 미리 결정된 악성 소프트웨어 패턴 세트를 정의하기 위해 알려진 양성 소프트웨어 샘플의 패턴에 기초하여 상기 공통 패턴을 필터링하는 단계를 포함하는
    방법.
  3. 제 1 항에 있어서,
    복수의 알려진 악성 소프트웨어 샘플과 관련된 코드 패턴에 기초하여 상기 미리 결정된 악성 소프트웨어 패턴 세트를 결정하는 단계를 더 포함하는
    방법.
  4. 제 3 항에 있어서,
    상기 미리 결정된 악성 소프트웨어 패턴 세트를 결정하는 단계는,
    상기 복수의 알려진 악성 소프트웨어 샘플에 대해,
    알려진 악성 소프트웨어 샘플의 실행 가능 코드의 고레벨 표현을 생성하는 단계와,
    시퀀싱 기준에 기초하여 상기 실행 가능 코드를 시퀀스로 분할하는 단계와,
    각 시퀀스에 대한 심볼 레코드를 형성하기 위해 상기 시퀀스를 처리하는 단계와,
    상기 심볼 레코드를 처리하며 상기 심볼 레코드를 악성 소프트웨어 코드의 저장소에 추가하는 단계와,
    빈번히 발생하는 심볼 조합에 기초하여 상기 저장소의 알려진 악성 소프트웨어 샘플들 사이에서 공통 패턴을 결정하는 단계와,
    상기 공통 패턴을 상기 미리 결정된 악성 소프트웨어 패턴 세트로서 저장하도록 지시하는 단계를 포함하는
    방법.
  5. 제 1 항에 있어서,
    상기 미리 결정된 악성 소프트웨어 패턴 세트 내의 알려진 악성 소프트웨어 샘플들 사이에서의 패턴들 간의 유사성에 기초하여 상기 미리 결정된 악성 소프트웨어 패턴 세트를 악성 소프트웨어 클러스터로 클러스터링하는 단계를 더 포함하는
    방법.
  6. 제 5 항에 있어서,
    상기 미리 결정된 악성 소프트웨어 패턴 세트를 클러스터링하는 단계는,
    복수의 패턴을 각 클러스터에 할당하는 단계와,
    적어도 하나의 패턴을 그의 대응하는 클러스터에 더하여 2차 클러스터에 할당하는 단계를 포함하는
    방법.
  7. 제 5 항에 있어서,
    상기 유사성에 기초한 클러스터링은 상기 패턴이 비롯되는 샘플과 관련된 메타데이터에 기초한 클러스터링을 포함하는
    방법.
  8. 제 1 항에 있어서,
    상기 샘플 코드가 악성 소프트웨어인 것 같은지 여부를 판단하는 단계는,
    상기 샘플 코드와 상기 미리 결정된 악성 소프트웨어 패턴 세트 사이에서 일치 패턴의 수를 결정하는 단계와,
    상기 수에 기초하여 상기 샘플 코드가 악성 소프트웨어일 가능성을 결정하는 단계를 포함하는
    방법.
  9. 제 1 항에 있어서,
    상기 샘플 코드가 악성 소프트웨어인 것 같은지 여부를 판단하는 단계는 상기 샘플 코드가 악성 소프트웨어인 것 같은 것에 응답하여 사용자에게 출력을 제공하는 단계를 더 포함하는
    방법.
  10. 제 1 항에 있어서,
    상기 샘플 코드가 관련되는 상기 악성 소프트웨어 클러스터를 결정하는 단계는 상기 악성 소프트웨어 클러스터를 표시하는 출력을 사용자에게 제공하는 단계를 더 포함하는
    방법.
  11. 제 1 항에 있어서,
    제 1 항의 동작은 적어도 하나의 네트워크를 통해 적어도 하나의 서비스에 액세스할 수 있도록 하기 위해 적어도 하나의 인터페이스에 액세스를 가능하게 하기 위한 방법의 일부로서 그에 맞춰 구성된 적어도 하나의 서비스에 의해 수행되는
    방법.
  12. 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치로서, 상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께 상기 장치로 하여금 적어도,
    샘플 코드 내의 패턴을 미리 결정된 악성 소프트웨어 패턴 세트와 비교하도록 지시하게 하고,
    상기 비교에 기초하여 상기 샘플 코드가 악성 소프트웨어인 것 같은지 여부를 판단하게 하며,
    상기 샘플 코드가 악성 소프트웨어인 것 같다는 판단에 응답하여, 상기 샘플 코드 내의 상기 패턴에 기초하여 상기 샘플 코드에 관련된 악성 소프트웨어 클러스터를 결정하게 하도록 구성된
    장치.
  13. 제 12 항에 있어서,
    상기 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께 상기 장치로 하여금,
    빈번히 발생하는 심볼 조합에 기초하여 알려진 악성 소프트웨어 샘플들 사이에서 공통 패턴을 결정하며,
    상기 미리 결정된 악성 소프트웨어 패턴 세트를 정의하기 위해 알려진 양성 소프트웨어 샘플의 패턴에 기초하여 상기 공통 패턴을 필터링함으로써 상기 미리 결정된 악성 소프트웨어 패턴 세트를 결정하게 하도록 구성된
    장치.
  14. 제 12 항에 있어서,
    상기 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께 상기 장치로 하여금,
    복수의 알려진 악성 소프트웨어 샘플과 관련된 코드 패턴에 기초하여 상기 미리 결정된 악성 소프트웨어 패턴 세트를 결정하게 하도록 더 구성된
    장치.
  15. 제 14 항에 있어서,
    상기 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께 상기 장치로 하여금,
    복수의 알려진 악성 소프트웨어 샘플에 대해,
    알려진 악성 소프트웨어 샘플의 실행 가능 코드의 고레벨 표현을 생성하고,
    시퀀싱 기준에 기초하여 상기 실행 가능 코드를 시퀀스로 분할하고,
    각 시퀀스에 대한 심볼 레코드를 형성하기 위해 상기 시퀀스를 처리하고,
    상기 심볼 레코드를 처리하고 상기 심볼 레코드를 악성 소프트웨어 코드의 저장소에 추가하고,
    빈번히 발생하는 심볼 조합에 기초하여 상기 저장소의 알려진 악성 소프트웨어 샘플들 사이에서 공통 패턴을 결정하며,
    상기 공통 패턴이 상기 미리 결정된 악성 소프트웨어 패턴 세트로서 저장되도록 지시함으로써 상기 미리 결정된 악성 소프트웨어 패턴 세트를 결정하게 하도록 구성된
    장치.
  16. 제 12 항에 있어서,
    상기 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께 상기 장치로 하여금,
    상기 미리 결정된 악성 소프트웨어 패턴 세트 내의 알려진 악성 소프트웨어 샘플들 사이에서의 패턴들 간의 유사성에 기초하여 상기 미리 결정된 악성 소프트웨어 패턴 세트를 악성 소프트웨어 클러스터로 클러스터링하게 하도록 더 구성된
    장치.
  17. 제 16 항에 있어서,
    상기 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는 적어도 하나의 프로세서와 함께 상기 장치로 하여금,
    복수의 패턴을 각 클러스터에 할당하며 적어도 하나의 패턴을 그의 대응하는 클러스터에 더하여 2차 클러스터에 할당함으로써 상기 미리 결정된 악성 소프트웨어 패턴 세트를 클러스터링하게 하도록 구성된
    장치.
  18. 제 12 항에 있어서,
    상기 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께 상기 장치로 하여금,
    상기 샘플 코드와 상기 미리 결정된 악성 소프트웨어 패턴 세트 사이에서 일치 패턴의 수를 결정하며 상기 샘플 코드가 상기 수에 기초하여 악성 소프트웨어인 가능성을 결정함으로써 상기 샘플 코드가 악성 소프트웨어인 것 같은지 여부를 판단하게 하도록 구성된
    장치.
  19. 제 12 항에 있어서,
    상기 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께 상기 장치로 하여금,
    상기 악성 소프트웨어 클러스터를 표시하는 출력을 사용자에게 제공하는 것을 더 포함하도록 상기 샘플 코드가 관련되는 상기 악성 소프트웨어 클러스터를 결정하게 하도록 구성된
    장치.
  20. 제 12 항에 있어서,
    상기 장치의 적어도 일부 기능의 사용자 제어를 가능하게 하기 위해서 사용자 인터페이스 회로를 포함하는 이동 단말을 포함하는
    장치.
  21. 컴퓨터 실행 가능실행 가능 프로그램 코드 명령어를 저장한 적어도 하나의 컴퓨터 판독 가능 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 실행 가능 프로그램 코드 명령어는
    샘플 코드 내의 패턴을 미리 결정된 악성 소프트웨어 패턴 세트와 비교하도록 지시하고,
    상기 비교에 기초하여 상기 샘플 코드가 악성 소프트웨어인 것 같은지 여부를 판단하며,
    상기 샘플 코드가 악성 소프트웨어인 것 같다는 판단에 응답하여, 상기 샘플 코드 내의 상기 패턴에 기초하여 상기 샘플 코드가 관련되는 악성 소프트웨어 클러스터를 결정하기 위한 프로그램 코드 명령어를 포함하는
    컴퓨터 프로그램 제품.
KR1020137000043A 2010-06-03 2011-03-22 악성 소프트웨어를 분석 및 검출하기 위한 방법 및 장치 KR20130044290A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/793,235 2010-06-03
US12/793,235 US9449175B2 (en) 2010-06-03 2010-06-03 Method and apparatus for analyzing and detecting malicious software
PCT/IB2011/051182 WO2011151736A2 (en) 2010-06-03 2011-03-22 Method and apparatus for analyzing and detecting malicious software

Publications (1)

Publication Number Publication Date
KR20130044290A true KR20130044290A (ko) 2013-05-02

Family

ID=45065531

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137000043A KR20130044290A (ko) 2010-06-03 2011-03-22 악성 소프트웨어를 분석 및 검출하기 위한 방법 및 장치

Country Status (5)

Country Link
US (1) US9449175B2 (ko)
EP (1) EP2577546A4 (ko)
KR (1) KR20130044290A (ko)
CN (1) CN103038777B (ko)
WO (1) WO2011151736A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180100169A (ko) * 2015-12-30 2018-09-07 알리바바 그룹 홀딩 리미티드 짧은 링크 처리 방법, 디바이스, 및 서버

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9213838B2 (en) * 2011-05-13 2015-12-15 Mcafee Ireland Holdings Limited Systems and methods of processing data associated with detection and/or handling of malware
TWI419003B (zh) * 2010-11-12 2013-12-11 Univ Nat Chiao Tung 自動化分析與分類惡意程式之方法及系統
US9454658B2 (en) * 2010-12-14 2016-09-27 F-Secure Corporation Malware detection using feature analysis
KR101260028B1 (ko) * 2010-12-23 2013-05-06 한국인터넷진흥원 악성코드 그룹 및 변종 자동 관리 시스템
US9092229B2 (en) * 2011-05-06 2015-07-28 George Mason Research Foundation, Inc. Software analysis system and method of use
US8806641B1 (en) * 2011-11-15 2014-08-12 Symantec Corporation Systems and methods for detecting malware variants
US9202047B2 (en) 2012-05-14 2015-12-01 Qualcomm Incorporated System, apparatus, and method for adaptive observation of mobile device behavior
US9690635B2 (en) 2012-05-14 2017-06-27 Qualcomm Incorporated Communicating behavior information in a mobile computing device
US9324034B2 (en) 2012-05-14 2016-04-26 Qualcomm Incorporated On-device real-time behavior analyzer
US9609456B2 (en) 2012-05-14 2017-03-28 Qualcomm Incorporated Methods, devices, and systems for communicating behavioral analysis information
US9298494B2 (en) 2012-05-14 2016-03-29 Qualcomm Incorporated Collaborative learning for efficient behavioral analysis in networked mobile device
US9319897B2 (en) 2012-08-15 2016-04-19 Qualcomm Incorporated Secure behavior analysis over trusted execution environment
US9330257B2 (en) 2012-08-15 2016-05-03 Qualcomm Incorporated Adaptive observation of behavioral features on a mobile device
US9747440B2 (en) 2012-08-15 2017-08-29 Qualcomm Incorporated On-line behavioral analysis engine in mobile device with multiple analyzer model providers
US9495537B2 (en) 2012-08-15 2016-11-15 Qualcomm Incorporated Adaptive observation of behavioral features on a mobile device
US9684870B2 (en) 2013-01-02 2017-06-20 Qualcomm Incorporated Methods and systems of using boosted decision stumps and joint feature selection and culling algorithms for the efficient classification of mobile device behaviors
US10089582B2 (en) 2013-01-02 2018-10-02 Qualcomm Incorporated Using normalized confidence values for classifying mobile device behaviors
US9686023B2 (en) 2013-01-02 2017-06-20 Qualcomm Incorporated Methods and systems of dynamically generating and using device-specific and device-state-specific classifier models for the efficient classification of mobile device behaviors
US9742559B2 (en) 2013-01-22 2017-08-22 Qualcomm Incorporated Inter-module authentication for securing application execution integrity within a computing device
US9491187B2 (en) 2013-02-15 2016-11-08 Qualcomm Incorporated APIs for obtaining device-specific behavior classifier models from the cloud
CN104102879B (zh) * 2013-04-15 2016-08-17 腾讯科技(深圳)有限公司 一种消息格式的提取方法和装置
US9349002B1 (en) * 2013-05-29 2016-05-24 Trend Micro Inc. Android application classification using common functions
US9798981B2 (en) 2013-07-31 2017-10-24 Entit Software Llc Determining malware based on signal tokens
WO2015016901A1 (en) * 2013-07-31 2015-02-05 Hewlett-Packard Development Company, L.P. Signal tokens indicative of malware
WO2015047222A1 (en) * 2013-09-24 2015-04-02 Mcafee, Inc. Adaptive and recursive filtering for sample submission
US20160098563A1 (en) * 2014-10-03 2016-04-07 Sourceclear, Inc. Signatures for software components
WO2016080232A1 (ja) * 2014-11-18 2016-05-26 日本電信電話株式会社 悪性通信パターン抽出装置、悪性通信パターン抽出方法、および、悪性通信パターン抽出プログラム
US10032021B2 (en) * 2015-11-25 2018-07-24 Leidos Innovations Technology, Inc. Method for detecting a threat and threat detecting apparatus
KR102415971B1 (ko) * 2015-12-10 2022-07-05 한국전자통신연구원 악성 모바일 앱 감지 장치 및 방법
US10657255B2 (en) * 2015-12-17 2020-05-19 International Business Machines Corporation Detecting malicious code based on conditional branch asymmetry
US10685112B2 (en) * 2016-05-05 2020-06-16 Cylance Inc. Machine learning model for malware dynamic analysis
CN108319853B (zh) * 2017-01-18 2021-01-15 腾讯科技(深圳)有限公司 病毒特征码处理方法及装置
CN107222511B (zh) * 2017-07-25 2021-08-13 深信服科技股份有限公司 恶意软件的检测方法及装置、计算机装置及可读存储介质
CN107368856B (zh) * 2017-07-25 2021-10-19 深信服科技股份有限公司 恶意软件的聚类方法及装置、计算机装置及可读存储介质
US20230100333A1 (en) * 2021-09-24 2023-03-30 Rockwell Automation Technologies, Inc. Variable reduction for industrial automation analytics and machine learning models
US20230094187A1 (en) * 2021-09-24 2023-03-30 Rockwell Automation Technologies, Inc. Variable relationship discovery and recommendations for industrial automation environments
CN113836020A (zh) * 2021-09-24 2021-12-24 中国电信股份有限公司 代码检测方法、装置及存储介质

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6560632B1 (en) * 1999-07-16 2003-05-06 International Business Machines Corporation System and method for managing files in a distributed system using prioritization
US7093239B1 (en) * 2000-07-14 2006-08-15 Internet Security Systems, Inc. Computer immune system and method for detecting unwanted code in a computer system
US7069589B2 (en) * 2000-07-14 2006-06-27 Computer Associates Think, Inc.. Detection of a class of viral code
US7188368B2 (en) * 2001-05-25 2007-03-06 Lenovo (Singapore) Pte. Ltd. Method and apparatus for repairing damage to a computer system using a system rollback mechanism
US7269851B2 (en) * 2002-01-07 2007-09-11 Mcafee, Inc. Managing malware protection upon a computer network
US7546471B2 (en) * 2005-01-14 2009-06-09 Microsoft Corporation Method and system for virus detection using pattern matching techniques
CN1838668A (zh) * 2005-03-22 2006-09-27 松下电器产业株式会社 侦测计算机病毒的方法及其应用
US7725735B2 (en) * 2005-03-29 2010-05-25 International Business Machines Corporation Source code management method for malicious code detection
US20070094734A1 (en) 2005-09-29 2007-04-26 Mangione-Smith William H Malware mutation detector
US7809670B2 (en) 2005-12-09 2010-10-05 Microsoft Corporation Classification of malware using clustering that orders events in accordance with the time of occurance
WO2007076624A1 (en) * 2005-12-30 2007-07-12 Intel Corporation Virtual machine to detect malicious code
US8266605B2 (en) 2006-02-22 2012-09-11 Wind River Systems, Inc. Method and system for optimizing performance based on cache analysis
US20070240222A1 (en) * 2006-04-06 2007-10-11 George Tuvell System and Method for Managing Malware Protection on Mobile Devices
US8365286B2 (en) * 2006-06-30 2013-01-29 Sophos Plc Method and system for classification of software using characteristics and combinations of such characteristics
US8181248B2 (en) * 2006-11-23 2012-05-15 Electronics And Telecommunications Research Institute System and method of detecting anomaly malicious code by using process behavior prediction technique
IL181426A (en) 2007-02-19 2011-06-30 Deutsche Telekom Ag Automatic removal of signatures for malware
US8127358B1 (en) * 2007-05-30 2012-02-28 Trend Micro Incorporated Thin client for computer security applications
CN100504903C (zh) 2007-09-18 2009-06-24 北京大学 一种恶意代码自动识别方法
US9177144B2 (en) 2008-10-30 2015-11-03 Mcafee, Inc. Structural recognition of malicious code patterns
GB0822619D0 (en) * 2008-12-11 2009-01-21 Scansafe Ltd Malware detection
CN101493925A (zh) 2009-03-09 2009-07-29 浙江工商大学 一种采用增量式挖掘的零售行业折扣券生成方法
US8549641B2 (en) * 2009-09-03 2013-10-01 Palo Alto Research Center Incorporated Pattern-based application classification
US8826438B2 (en) * 2010-01-19 2014-09-02 Damballa, Inc. Method and system for network-based detecting of malware from behavioral clustering
US8464345B2 (en) * 2010-04-28 2013-06-11 Symantec Corporation Behavioral signature generation using clustering

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180100169A (ko) * 2015-12-30 2018-09-07 알리바바 그룹 홀딩 리미티드 짧은 링크 처리 방법, 디바이스, 및 서버
US10789321B2 (en) 2015-12-30 2020-09-29 Alibaba Group Holding Limited Short link processing to improve service efficiency
US10789322B2 (en) 2015-12-30 2020-09-29 Alibaba Group Holding Limited Short link processing to improve service efficiency

Also Published As

Publication number Publication date
EP2577546A4 (en) 2014-01-01
CN103038777B (zh) 2016-09-28
EP2577546A2 (en) 2013-04-10
US20110302654A1 (en) 2011-12-08
US9449175B2 (en) 2016-09-20
CN103038777A (zh) 2013-04-10
WO2011151736A3 (en) 2012-02-16
WO2011151736A2 (en) 2011-12-08

Similar Documents

Publication Publication Date Title
KR20130044290A (ko) 악성 소프트웨어를 분석 및 검출하기 위한 방법 및 장치
US10063582B1 (en) Securing compromised network devices in a network
US11481494B2 (en) System and method for identifying and comparing code by semantic abstractions
US10545746B2 (en) Biosequence-based approach to analyzing binaries
WO2015101097A1 (zh) 特征提取的方法及装置
US20150379264A1 (en) Mitigation of malware
US9135443B2 (en) Identifying malicious threads
WO2015101096A1 (zh) 检测智能终端中恶意代码的方法及装置
KR101681440B1 (ko) 블록 코드 퍼뮤테이션을 이용한 멀웨어 공격 방지
JP5558997B2 (ja) 相互検索およびアラートのための方法、情報処理システム、およびコンピュータ・プログラム(構造化データ・ソースと非構造化データ・ソースとの間の相互検索およびアラート)
US10243977B1 (en) Automatically detecting a malicious file using name mangling strings
US10120656B1 (en) Robotic process automation system for functional evaluation and improvement of back end instructional constructs
US20220019665A1 (en) Systems and methods for determining measurements of similarity between various types of data
US20170169069A1 (en) Data integrity checking in a distributed filesystem using object versioning
US11916937B2 (en) System and method for information gain for malware detection
CN102955773B (zh) 用于在中文文档中识别化学名称的方法及系统
CN112148305A (zh) 一种应用检测方法、装置、计算机设备和可读存储介质
KR102427782B1 (ko) 인접 행렬 기반의 악성 코드 탐지 및 분류 장치와 악성 코드 탐지 및 분류 방법
JP2013222422A (ja) プログラム、情報処理装置、及び情報処理方法
JP5619851B2 (ja) パターンマッチングエンジン及びこれを備えた端末装置並びにその方法
US10579794B1 (en) Securing a network device by automatically identifying files belonging to an application
US9110893B2 (en) Combining problem and solution artifacts
JP2014186425A (ja) 文章マスク装置及び文章マスクプログラム
AU2013295686B2 (en) Lock free streaming of executable code data
JP5494066B2 (ja) 検索装置、検索方法および検索プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20150330

Effective date: 20160607