KR20090117705A - 자동적 취약점 검출 및 응답 - Google Patents

자동적 취약점 검출 및 응답 Download PDF

Info

Publication number
KR20090117705A
KR20090117705A KR1020097015518A KR20097015518A KR20090117705A KR 20090117705 A KR20090117705 A KR 20090117705A KR 1020097015518 A KR1020097015518 A KR 1020097015518A KR 20097015518 A KR20097015518 A KR 20097015518A KR 20090117705 A KR20090117705 A KR 20090117705A
Authority
KR
South Korea
Prior art keywords
function
conflict
interface
user
program
Prior art date
Application number
KR1020097015518A
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 KR20090117705A publication Critical patent/KR20090117705A/ko

Links

Images

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0748Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a remote unit communicating with a single-box computer node experiencing an error/fault
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

다양한 실시예는 보안 취약점을 검출하고, 그에 따라, 익스플로이트가 실행되는 경우에도 프로그램의 무결성이 유지될 수 있도록 영향받은 프로그램을 수정할 수 있다. 적어도 몇몇 실시예에서, 로컬의 자동적 취약점 검출 및 응답(AVD/R) 컴포넌트는 사용자의 로컬 머신 상에서, 쉴드를 이용함으로써 잠재적인 취약점을 검출 및 완화하기 위해 실행되고, 원격의 자동적 취약점 검출 및 응답(AVD/R) 컴포넌트는 인지된 취약점을 완화하기 위해 하나 이상의 쉴드가 로컬로 전달 및 적용될 수 있도록, 인지된 취약점을 보고하기 위해 실행된다.
Figure P1020097015518
익스플로이트, 자동 취약점 검출 및 응답, AVD/R, 쉴드

Description

자동적 취약점 검출 및 응답{AUTOMATIC VULNERABILITY DETECTION AND RESPONSE}
소프트웨어 보안 취약점(software security vulnerability)을 완화하는 많은 방법은 반응이 빠르고(reactive) 시간에 매우 민감하다. 즉, 취약점이 발견되면, 소프트웨어 회사는 일반적으로, 얼마의 시간이 지난 후에, 공격자들이 그 취약점을 익스플로이트(exploit)하는 것을 방지하도록 지시된 패치(patch)를 발행한다. 과거에 이 전략은 사용자를 보호하는 데에 매우 효과적이었지만, 그 효율성은 부분적으로 (1) 취약점 발견자가 해커가 찾기 전에 취약점을 찾는 것, (2) 취약점 발견자가 문제점을 공개적으로 발표하기 전에 소프트웨어 회사에 문제점을 보고하는 것, 및 (3) 익스플로이트가 전개되는 경우 채용하는 사용자가 그 익스플로이트로부터 보호되도록 하는 높은 패치 채용률(patch adopting rates)을 필요로 한다.
불행히도, 최근의 추세는 이러한 필요조건에 있어서 좋은 징조가 아니다. 특히, 당일 익스플로이트의 비율(rate of 0-day exploit)(즉, 공개되지 않고 수정되지 않은 보안 취약점에 대해 발행된 익스플로이트)이 증가하였고, 패치 채용률은 계속해서 낮아지고 있다. 보안 전망이 현저히 악화되는 것을 방지하기 위해, 소프트웨어 제작자는 취약점을 더 빨리 발견하고 또한, 완화하는 방법을 찾아야 한다.
<요약>
다양한 실시예는 보안 취약점(security vulnerability)을 검출하고, 그에 따라, 익스플로이트(exploit)가 실행되는 경우에도 프로그램의 무결성이 유지될 수 있도록, 영향을 받은 프로그램을 수정할 수 있다.
적어도 몇몇 실시예에서, 로컬의 자동적 취약점 검출 및 응답(AVD/R) 컴포넌트는 사용자의 로컬 머신 상에서, 쉴드(shield)를 이용함으로써 잠재적인 취약점을 검출하고 완화하기 위해 실행되고, 원격의 자동적 취약점 검출 및 응답(AVD/R) 컴포넌트는 인지된 취약점을 완화하기 위해 하나 이상의 쉴드가 로컬로 전달 및 적용될 수 있도록, 인지된 취약점을 보고하기 위해 실행될 수 있다.
도 1은 일 실시예에 따른 시스템을 도시.
도 2는 일 실시예에 따른 방법의 단계들을 설명하는 흐름도.
도 3은 일 실시예에 따른 시스템을 도시.
도 4는 일 실시예에 따른 방법의 단계들을 설명하는 흐름도.
도 5는 일 실시예에 따른 시스템을 도시.
도 6은 일 실시예에 따른 방법의 단계들을 설명하는 흐름도.
<개관>
다양한 실시예는 보안 취약점(security vulnerability)을 검출하고, 그에 따라, 익스플로이트(exploit)가 실행되는 경우에도 프로그램의 무결성이 유지될 수 있도록 영향받은 프로그램을 수정할 수 있다.
적어도 몇몇 실시예에서, 로컬의 자동적 취약점 검출 및 응답(AVD/R) 컴포넌트는 사용자의 로컬 머신 상에서, 쉴드를 이용함으로써 잠재적인 취약점을 검출하고 완화하기 위해 실행되고, 원격의 자동적 취약점 검출 및 응답(AVD/R) 컴포넌트는 인지된 취약점을 완화하기 위해 하나 이상의 쉴드(shield)가 로컬로 전달 및 적용될 수 있도록, 인지된 취약점을 보고하기 위해 실행된다.
다음의 설명에서, "보안 취약점에 대한 개론" 섹션이 제공되고, 보안 취약점의 개념 및 보안 취약점이 어떻게 발생할 수 있는지를 매우 일반적으로 설명한다. 이에 후속하여, "로컬 AVD/R" 섹션이 제공되고, 취약점 검출 및 응답에 대한 로컬 솔루션을 논의한다. 이에 후속하여, "원격 AVD/R" 섹션이 제공되고, 취약점 검출에 대한 다양한 원격 솔루션을 논의한다. 마지막으로, "로컬 AVD/R과 원격 AVD/R 둘 다를 이용하기"가 제공되고, 보호의 연속을 제공하기 위해 로컬 접근과 원격 접근 둘 다가 어떻게 적용될 수 있는지를 설명한다.
보안 취약점에 대한 개론
많은 보안 취약점은 프로그래밍 에러로부터 나온다. 취약점에 이를 수 있는 다수의 서로 다른 유형의 프로그래밍 에러들이 존재한다. 예를 들어, 흔한 프로그래밍 에러는 버퍼 오버플로우를 허용하는 에러이다. 이와 같은 상황에서, 프로그래머는 데이터를 유지하기 위해 특정 공간량을 할당할 수 있다. 익스플로이터(exploiter)는, 당신이 기대한 것보다 더 많은 데이터를 프로그램에 제공하는 경우, 및 버퍼 오버플로우의 가능성을 완화 또는 제거하기 위한 올바른 점검을 제자 리에 놓지 않은 경우, 이 초과 데이터는 오버플로우를 야기할 수 있다는 것을 이해할 수 있다. 오버플로우 조건을 이용하여, 익스플로이터는 버퍼 내에 수신된 데이터의 끝에 데이터 또는 코드를 첨부하고 오버플로우를 야기할 수 있다. 첨부된 데이터 또는 코드가 실행되면, 그것은 프로그램을 변경하거나 임의의 방법으로 그것의 기능을 수정할 수 있다. 따라서, 프로그래밍 에러에 의해, 보안 취약점은 익스플로이트될 수 있다.
그러나, 종종, 보안 취약점의 익스플로이트화(exploitation)는 프로그램 충돌에 이를 수 있다. 상술한 예에서, 익스플로이트화는 프로그램이 메모리의 임의의 랜덤 부분을 감시하게 할 수 있고, 무효한 동작을 야기하는 코드를 실행하기 시작하여 프로그램이 충돌하게 할 수 있다.
따라서, 프로그램 충돌로부터, 우리는 프로그램에 문제가 있음을 유추할 수 있다. 이 문제는 보안 취약점과 관련될 수 있다. 즉, (1) 프로그램 충돌을 야기하는 동일한 프로그래밍 에러들 중 다수가 익스플로이트가능하고, (2) 익스플로이트 개발은 양호한 정도의 시도 및 에러를 수반하고 - 따라서, 익스플로이트 개발의 초기 단계동안 실패한 시도로 인해 프로그램이 충돌할 것임 - , (3) 익스플로이트는 종종, 특정 버전의 프로그램에 대해서만 동작하고 때때로 다른 버전들과 충돌할 것이기 때문에, 프로그램 충돌은 종종, 취약점의 표시이다.
로컬 AVD /R
도 1은 일 실시예에 따른 시스템(총제적으로 100)을 도시한다. 시스템(100)은 하나 이상의 프로세서(104), 하나 이상의 컴퓨터-판독가능 매체(106), 및 컴퓨 터-판독가능 매체 상에 상주하고 프로세서(들)에 의해 실행가능한 하나 이상의 어플리케이션(108)을 갖는 컴퓨팅 장치(102)를 포함한다. 또한, 컴퓨팅 장치(102)는 이 예에서, 소프트웨어로 구현되는 로컬 AVD/R 컴포넌트(110)를 포함한다.
컴퓨팅 장치(102)는 데스크탑 컴퓨터의 형태로 도시되어 있지만, 다른 컴퓨팅 장치들이 특허 청구범위의 대상의 취지 및 범주로부터 벗어나지 않고서 이용될 수 있음을 인식하고 이해해야 한다. 예를 들어, 다른 컴퓨팅 장치는 예를 들어, 휴대형 컴퓨터, PDA와 같은 헨드헬드 컴퓨터, 셀 폰 등을 포함할 수 있지만, 이것으로 제한되지 않는다.
이 예에서, 로컬 AVD/R 컴포넌트(110)는 로그 검사자(112), 사용자 인터페이스 컴포넌트(114) 및 쉴드 구축자(116)를 포함한다. 동작 시, 로컬 컴퓨팅 장치 상의 프로그램이 충돌할 때, 본 분야에 숙련된 기술을 가진 자에 의해 인지되는 바와 같이, 충돌에 관련된 정보가 충돌 로그(crash log)에 입력된다. 통상적으로, 충돌 로그는 특정 충돌에 관련된 파라미터를 설명하는 정보를 포함한다. 예를 들어, 충돌 로그는 충돌한 프로그램을 설명하는 정보, 프로그램 내의 어느 함수 또는 인터페이스가 충돌하였는지, 및/또는 충돌을 일으킨 함수 또는 인터페이스에 관련된 임의의 파라미터를 포함할 수 있다. 로컬 AVD/R 컴포넌트(110)의 로그 검사자(112)는 충돌에 대해 모니터링할 수 있고, 충돌이 일어나면, 자동적으로 충돌에 관련된 정보를 위해 충돌 로그를 검사할 수 있다. 이것은 어느 함수 또는 인터페이스가 충돌에 관련되는지를 확인하는 것을 포함할 수 있다. 로그 검사자가 충돌의 원인을 확인하였으면, 그것은 쉴드 구축자(116)를 이용하여, 함수 또는 인터페 이스를 불능화시키는 자동 런타임 솔루션을 효과적으로 제공하는 쉴드를 구축할 수 있다. 그 후, 이 사실은 사용자 인터페이스(114)를 통해 사용자에게 보고될 수 있다.
예로서, 다음을 고려해 보자. 사용자가 자신의 브라우저 어플리케이션을 이용하고 있고 함수 Alert()가 충돌한다고 가정해 보자. 이 충돌에 응답하여, 충돌 로그는 충돌한 함수의 이름, 및 그것이 충돌한 장소와 같은 충돌에 속하는 정보로 업데이트된다. 이 정보를 이용하여, 로그 검사자(112)는 쉴드 구축자(116)를 이용하여, Alert() 함수를 자동으로 불능화시키는 쉴드를 구축할 수 있다. 하나 이상의 실시예에서, 쉴드 구축자는 도면에 도시된 것과 같은 취약점/완화 테이블을 유지할 수 있다. 여기서, 취약점/완화 테이블은 취약점 설명자들을 나열하는 컬럼, 및 완화 함수들을 나열하는 컬럼을 포함한다. 취약점 설명자는 완화 함수의 대상인 특정 함수 또는 인터페이스를 설명한다. 완화 함수는 이용되는 특정 완화 함수를 설명한다. 상술한 예에서, 충돌이 일어날 때, 쉴드 구축자는 취약점/완화 테이블 내에 엔트리를 형성(make an entry)하고, 취약점 설명자 컬럼 내에 "Alert()"를 추가한다. 또한, 쉴드 구축자는 완화 함수 컬럼 내의 대응하는 로우에 "불능(Disable)"을 추가한다. 이것은 어플리케이션(이 경우에는, 사용자의 브라우저)에 Alert() 함수가 불능화되었다는 것을 알린다.
또한, 적어도 몇몇 실시예에서, 이 사실은 사용자 인터페이스 컴포넌트(114)를 통해 사용자에게 보고된다. 대응하는 사용자 인터페이스를 이용하여, 사용자는 효과적으로, 이 함수를 다시 작동시키는 것을 선택할 수 있다. 따라서, 이 실시예 에서, 취약점의 잠재적 존재가 검출되고, 대응하는 함수 또는 인터페이스가 선택적으로 불능화되어, 미래의 익스플로이트를 방지한다.
도 2는 일 실시예에 따른 방법의 단계들을 설명하는 흐름도이다. 이 방법은 임의의 적합한 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합에 관련하여 구현될 수 있다. 하나 이상의 실시예에서, 이 방법은 도 1에서 도시되고 설명된 것과 같은 시스템에 관련하여 구현될 수 있다. 다른 시스템들은 특허청구범위의 대상의 취지 및 범주로부터 벗어나지 않고서 이용될 수 있다.
단계(200)는 로컬 프로그램 충돌을 검출한다. 이것이 어떻게 행해질 수 있는지에 대한 예는 상술되었다. 단계(202)는 충돌 로그를 검사하여 충돌 주변의 환경을 확인한다. 단계(204)는 충돌의 대상이었던 함수 또는 인터페이스를 불능화한다. 이것이 어떻게 행해질 수 있는지에 대한 예는 위에서 제공되었다. 단계(206)는 사용자에게 불능화된 함수 또는 인터페이스를 알린다.
원격 AVD /R
하나 이상의 실시예에서, 프로그램 충돌에 관련된 정보는 원격으로 이용될 수 있다. 특히, 충돌이 일어날 때, 이 정보는 추가의 분석을 위해 원격으로 보고될 수 있다. 이러한 분석은 예를 들어, 충돌의 소스 및 다양한 관련 파라미터들을 분석하는 것뿐만 아니라, 복수의 사용자들에 걸쳐 이러한 충돌을 평가하여 이 충돌에 관련된 패턴이 존재하는지의 여부를 확인하는 것을 포함할 수 있지만, 이것으로 제한되지 않는다. 취약점이 검출되면, 대응하는 쉴드가 구축되고, 그 취약점을 익스플로이트하려고 하는 익스플로이트화로부터 보호하기 위해 사용자에게 제공될 수 있다.
일례로서, 도 3을 고려해 보자. 여기서, 일 실시예에 따른 시스템(총체적으로, 300)이 도시된다. 시스템(300)은 하나 이상의 프로세서(304), 하나 이상의 컴퓨터-판독가능 매체(306), 및 컴퓨터-판독가능 매체(306) 상에 상주하고 프로세서(들)에 의해 실행되는 하나 이상의 어플리케이션(308)을 갖는 컴퓨팅 장치(320)를 포함한다. 또한, 컴퓨팅 장치(302)는 이 예에서 소프트웨어로 구현되는 원격 AVD/R 컴포넌트(310)를 포함한다.
컴퓨팅 장치(302)는 데스크탑 컴퓨터의 형태로 도시되어 있지만, 다른 컴퓨팅 장치들이 특허청구범위의 대상의 취지 및 범주로부터 벗어나지 않고서 이용될 수 있음을 인식하고 이해해야 한다. 예를 들어, 다른 컴퓨팅 장치는 예를 들어, 휴대형 컴퓨터, PDA와 같은 핸드헬드 컴퓨터, 셀 폰 등을 포함할 수 있지만, 이것으로 제한되지 않는다.
이 예에서, 원격 AVD/R 컴포넌트(310)는 로그 검사자(312), 사용자 인터페이스 컴포넌트(314) 및 충돌 보고자 컴포넌트(316)를 포함한다. 동작 시, 로컬 컴퓨팅 장치 상의 프로그램이 충돌할 때, 이 충돌에 관련된 정보는 상술된 바와 같이 충돌 로그 내에 입력된다. 원격 AVD/R 컴포넌트(310)의 로그 검사자(312)는 충돌에 대해 모니터링할 수 있고, 충돌이 일어날 때, 자동적으로 이 충돌에 관련된 정보를 위해 충돌 로그를 검사할 수 있다. 이것은 어느 함수 또는 인터페이스가 충돌에 관련되는지를 확인하는 것을 포함할 수 있다. 로그 검사자가 충돌의 원인을 확인하였으면, 원격 AVD/R 컴포넌트는 사용자 인터페이스(314)를 통해, 사용자에게 사용자가 추가의 분석을 위해 이 충돌을 원격 서버에 보고하기를 원하는지의 여부를 물어볼 수 있다. 사용자가 충돌 정보를 보고하는 것을 선택하면, 정보는 서버에 의해 결집되고 분석된다. 적어도 몇몇 실시예에서, 충돌 정보의 분석은 인간 전문가를 채용하여, 임의의 익스플로이트화가 채용되었는지의 여부를 분석하고 확인하는 것을 포함할 수 있다.
충돌 로그(들)의 분석이 취약점이 익스플로이트되었음을 나타내는 경우에, 상술한 것과 같은 하나 이상의 쉴드가 로컬로 다운로드 및 적용됨으로써 개발되고 이용될 수 있다. 하나 이상의 실시예에서, 사용자 인터페이스(314)는 불능화되었거나 불능화되어 있는 함수 또는 인터페이스를 다시 활성화시키는 옵션을 사용자에게 제공할 수 있다.
도 4는 일 실시예에 따른 방법의 단계들을 설명하는 흐름도이다. 이 방법은 임의의 적합한 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합에 관련하여 구현될 수 있다. 하나 이상의 실시예에서, 이 방법은 도 3에서 도시되고 설명된 것과 같은 시스템에 관련하여 구현될 수 있다. 다른 시스템이 특허청구범위의 대상의 취지 및 범주로부터 벗어나지 않고서 이용될 수 있다.
단계(400)는 로컬 프로그램 충돌을 검출한다. 이것이 어떻게 행해질 수 있는지에 대한 예는 상술되었다. 단계(402)는 충돌 로그를 검사하여, 충돌 주변의 환경을 확인한다. 단계(404)는 충돌이 보고될 수 있는지의 여부를 확인하기 위해 사용자에게 질의한다. 단계(406)는 사용자가 인증을 부여한 경우에 충돌을 원격 서버에 보고한다. 단계(408)는 충돌의 대상이었던 함수 또는 인터페이스를 효과적 으로 불능화하는 쉴드를 수신하고 구현한다. 쉴드는 인터넷과 같은 네트워크를 통해 그것을 다운로드함으로써 수신될 수 있다. 이 단계의 부분으로서, 사용자 인터페이스는 함수 또는 인터페이스를 불능화하는 옵션을 사용자에게 제공하거나 함수 또는 인터페이스를 재활성화시키기 위해 이용될 수 있다. 이것이 어떻게 행해질 수 있는지에 대한 예는 상술되었다.
로컬 AVD /R과 원격 AVD /R 둘 다를 이용하기
하나 이상의 실시예에서, 프로그램 충돌에 관련된 정보는 로컬과 원격 둘 다로 이용될 수 있다. 특히, 충돌이 일어날 때, 이 정보는 쉴드를 적용함으로써 영향받은 함수 또는 인터페이스를 불능화시키기 위해 로컬로 이용될 수 있다. 또한, 이 정보는 상술된 바와 같은 분석을 수행하기 위해 원격으로 이용될 수 있다. 이러한 분석은 예를 들어, 충돌의 소스(source) 및 다양한 관련된 파라미터를 분석하는 것뿐만 아니라, 복수의 사용자들에 걸쳐 이러한 충돌을 평가하여 충돌에 관련된 패턴이 존재하는지의 여부를 확인하는 것을 포함하지만, 이것으로 제한되지 않는다. 취약점이 검출되면, 대응하는 쉴드가 구축되고 취약점을 익스플로이트하려는 임의의 익스플로이트화로부터 보호하기 위해 사용자에게 제공될 수 있다.
일례로서, 도 5를 고려해 보자. 여기에서, 일 실시예에 따른 시스템(총체적으로, 500)이 도시된다. 시스템(500)은 하나 이상의 프로세서(504), 하나 이상의 컴퓨터-판독가능 매체(506), 및 컴퓨터-판독가능 매체 상에 상주하고 프로세서(들)에 의해 실행될 수 있는 하나 이상의 어플리케이션(508)을 갖는 컴퓨팅 장치(502)를 포함한다. 또한, 컴퓨팅 장치(502)는 이 예에서, 소프트웨어로 구현되는 로컬/ 원격 AVD/R 컴포넌트(510)를 포함한다.
컴퓨팅 장치(502)는 데스크탑 컴퓨터의 형태로 도시되어 있지만, 다른 컴퓨팅 장치가 특허청구범위의 대상의 취지 및 범주로부터 벗어나지 않고서 이용될 수 있음을 인지하고 이해해야 한다. 예를 들어, 다른 컴퓨팅 장치는 예를 들어, 휴대형 컴퓨터, PDA와 같은 핸드헬드 컴퓨터, 셀 폰 등을 포함할 수 있지만, 이것으로 제한되지 않는다.
이 예에서, 로컬/원격 AVD/R 컴포넌트(510)는 로그 검사자(512), 사용자 인터페이스 컴포넌트(514), 보고자 컴포넌트(516) 및 쉴드 구축자(518)를 포함한다. 동작 시, 로컬 컴퓨팅 장치 상의 프로그램이 충돌할 때, 상술한 바와 같이, 충돌에 관련된 정보가 충돌 로그에 입력된다. 로컬/원격 AVD/R 컴포넌트(510)의 로그 검사자(512)는 충돌에 대해 모니터링하고, 충돌이 일어날 때, 자동적으로 충돌에 관련된 정보를 위해 충돌 로그를 검사할 수 있다. 이것은 어느 함수 또는 인터페이스가 충돌에 관련되는지를 확인하는 것을 포함할 수 있다. 로그 검사자가 충돌의 원인을 확인하였으면, 로컬/원격 AVD/R 컴포넌트는 상술한 바와 같이 로컬로 쉴드를 적용하여, 충돌에 관련된 함수 또는 인터페이스를 불능화할 수 있다. 이것은 또한, 사용자가 불능화되었던 함수 또는 인터페이스를 재활성화시키는 것도 허용할 수 있는 사용자 인터페이스 컴포넌트(514)를 통해 사용자에게 보고될 수 있다.
또한, 하나 이상의 실시예에서, 로컬/원격 AVD/R 컴포넌트는 사용자 인터페이스(514)를 통해, 사용자가 추가의 분석을 위해 충돌을 원격 서버에 보고하는 것을 원하는지의 여부를 사용자에게 물어볼 수 있다. 사용자가 충돌 정보를 보고하 는 것을 선택하면, 정보는 서버에 의해 결집되고 분석된다. 적어도 몇몇 실시예에서, 충돌 정보의 분석은 인간 전문가를 채용하여, 어떤 익스플로이트화라도 채용되었는지의 여부를 분석하고 확인하는 것을 포함할 수 있다.
충돌 로그(들)의 분석이 취약점이 익스플로이트되었음을 나타내는 경우에, 상술한 것과 같은 하나 이상의 쉴드는 로컬 머신 상에 다운로드되고 적용됨으로써 개발되고 채용될 수 있다. 하나 이상의 실시예에서, 사용자 인터페이스(514)는 불능화되었거나 불능화되어 있는 함수 또는 인터페이스를 재활성화시키는 옵션을 사용자에게 제공할 수 있다.
도 6은 일 실시예에 따른 방법의 단계들을 설명하는 흐름도이다. 이 방법은 임의의 적합한 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합에 관련하여 구현될 수 있다. 하나 이상의 실시예에서, 이 방법은 도 6에서 도시되고 설명된 것과 같은 시스템에 관련하여 구현될 수 있다. 다른 시스템은 특허청구범위의 대상의 취지 및 범주로부터 벗어나지 않고서 이용될 수 있다.
단계(600)는 로컬 프로그램 충돌을 검출하고, 단계(602)는 충돌을 원격 서버에 보고하기 위한 승인을 사용자에게 요청한다. 단계(604)에서 사용자 승인이 수여되면, 단계(606)는 충돌의 원인을 확인하고, 충돌을 원격 서버에 보고하고, 충돌에 이용가능할 수 있는 임의의 솔루션에 대해 점검한다. 원격 서버에 충돌을 보고함으로써, 충돌, 및 복수의 사용자들에 걸친 임의의 관련된 패턴에 대한 분석이 수행될 수 있다. 분석은 자동적인 기계 분석과 인간의 분석 둘 다를 포함할 수 있다. 그 후, 단계(608)는 임의의 관련 쉴드를 로컬로 다운로드 및 적용하고, 단 계(610)는 사용자에게 알린다.
한편, 단계(604)에서 승인이 수여되지 않으면, 단계(612)는 충돌하는 함수 또는 인터페이스를 식별하고, 단계(614)는 쉴드 자격(shield eligibility)을 판정하다. 단계(616)가 문제를 다루는 적격의 로컬 쉴드가 존재한다고 판정하면, 단계(618)는 상술한 바와 같이 쉴드를 적용하고, 단계(620)는 사용자에게 알린다. 한편, 적격의 쉴드가 존재하지 않으면, 단계(620)는 사용자에게 알린다.
상술된 실시예는 임의의 적합한 어플리케이션에 관련하여 구현될 수 있고, 어플리케이션의 부분, 또는 어플리케이션에 의해 이용되는 별도의 컴포넌트를 포함할 수 있다. 예를 들어, 하나 이상의 실시예에서, 상술된 기능은 웹 브라우저, 인스턴트 메시징 어플리케이션 또는 임의의 다른 적합한 어플리케이션 또는 소프트웨어 컴포넌트 또는 시스템의 부분으로서 구현될 수 있다. 예를 들어, 이 기능은 운영 체제의 부분으로서 구현될 수 있다.
하나 이상의 실시예에서, 하나 이상의 소위 평판 서비스(reputation service)가 보안을 더 강화하는 데에 이용될 수 있다. 특히, 평판 서비스 또는 제3자 서비스는 보안 익스플로이트화에 대해 광범위하게 모니터링하고, 임의의 인지된 취약점 또는 실제의 취약점을 적절한 당국에 보고할 수 있다. 예를 들어, 평판 서비스는 특정 웹 페이지에 관련된 특정 함수에 관련된 보안 취약점이 있다는 것을 검출할 수 있다. 일단 검출되면, 평판 서비스는 마이크로소프트와 같은 적절한 회사에 취약점을 보고하고/하거나, 쉴드가 선택적으로 다운로드 되게 하거나 다양한 사용자들이 이 인지된 취약점을 다룰 수 있게 할 수 있다.
결론
다양한 실시예들이 보안 취약점을 검출하고, 그에 따라, 익스플로이트가 실행되는 경우에도 프로그램의 무결성이 유지될 수 있도록 영향받은 프로그램을 수정할 수 있다. 적어도 몇몇 실시예에서, 로컬의 자동적 취약점 검출 및 응답(AVD/R) 컴포넌트는 사용자의 로컬 머신 상에서, 쉴드를 이용함으로써 잠재적인 취약점을 검출 및 완화하기 위해 실행되고, 원격의 자동적 취약점 검출 및 응답(AVD/R) 컴포넌트는 인지된 취약점을 완화하기 위해 하나 이상의 쉴드가 로컬로 전달되고 적용될 수 있도록, 인지된 취약점을 보고하기 위해 실행된다.
본 발명은 구조적 특징 및/또는 방법론적 단계에 특정적인 언어로 설명되었지만, 첨부의 특허청구범위에서 정의된 본 발명은 설명된 특정 특징 또는 단계로 반드시 제한되는 것이 아님을 이해해야 한다. 오히려, 특정 특징 및 단계는 특허청구범위의 발명을 구현하는 바람직한 형태로서 개시된다.

Claims (20)

  1. 컴퓨터-구현된 방법으로서,
    로컬 프로그램 충돌을 검출하는 단계; 및
    상기 검출에 응답하여, 상기 프로그램 충돌의 대상이었던 함수(function) 또는 인터페이스를 불능화(disabling)하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 검출하는 단계 이후, 및 상기 불능화하는 단계 이전에, 충돌 로그(crash log)를 검사하여 상기 프로그램 충돌에 관련된 상기 함수 또는 인터페이스를 확인하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서,
    함수 또는 인터페이스가 불능화되었음을 사용자에게 알리는 단계를 더 포함하는 방법.
  4. 제1항에 있어서, 상기 불능화하는 단계는 쉴드(shield)를 구축 및 적용함으로써 수행되는 방법.
  5. 제4항에 있어서,
    상기 쉴드는 자동적인 런타임 솔루션을 제공하는 방법.
  6. 제4항에 있어서,
    상기 구축 및 적용하는 것은 취약점(vulnerability)과 완화 함수(mitigation function)를 관련시키는 취약점/완화 테이블을 이용함으로써 수행되는 방법.
  7. 제1항에 있어서,
    상기 검출하는 단계 및 상기 불능화하는 단계는 웹 브라우저에 의해 수행되는 방법.
  8. 실행 시, 제1항의 방법을 구현하는 컴퓨터 판독가능 명령어들을 포함하는 하나 이상의 컴퓨터-판독가능 매체.
  9. 제8항의 하나 이상의 컴퓨터-판독가능 매체를 구현하는 컴퓨팅 시스템.
  10. 컴퓨터-구현된 방법으로서,
    로컬 프로그램 충돌을 검출하는 단계;
    상기 검출에 응답하여, 상기 프로그램 충돌이 보고될 수 있는지의 여부를 확인하기 위해 사용자에게 질의하는 단계;
    상기 로컬 프로그램 충돌을 보고하는 단계; 및
    상기 보고에 응답하여, 상기 프로그램 충돌의 대상이었던 함수 또는 인터페이스를 불능화하는 데에 효과적인 쉴드를 수신 및 적용하는 단계
    를 포함하는 방법.
  11. 제10항에 있어서,
    함수 또는 인터페이스가 불능화되었음을 사용자에게 알리는 단계를 더 포함하는 방법.
  12. 제10항에 있어서,
    사용자 인터페이스를 통해, 불능화되었던 상기 함수 또는 인터페이스를 재활성화(re-enable)시키는 옵션을 상기 사용자에게 제공하는 단계를 더 포함하는 방법.
  13. 제10항에 있어서,
    상기 적용하는 단계는 취약점과 완화 함수를 관련시키는 취약점/완화 테이블을 이용함으로써 수행되는 방법.
  14. 제10항에 있어서,
    상기 검출하는 단계에 응답하여, 충돌 로그를 검사하여 상기 프로그램 충돌 에 관련된 상기 함수 또는 인터페이스를 확인하는 단계를 더 포함하는 방법.
  15. 제10항에 있어서,
    상기 검출하는 단계, 상기 질의하는 단계, 상기 보고하는 단계, 및 상기 수신 및 적용하는 단계는 웹 브라우저에 의해 수행되는 방법.
  16. 실행 시, 제10항의 방법을 구현하는 컴퓨터 판독가능 명령어들을 포함하는 하나 이상의 컴퓨터-판독가능 매체.
  17. 제16항의 하나 이상의 컴퓨터-판독가능 매체를 구현하는 컴퓨팅 시스템.
  18. 컴퓨터 구현된 방법으로서,
    로컬 프로그램 충돌을 검출하는 단계;
    상기 충돌을 원격 서버에 보고하기 위한 승인을 사용자에게 요청하는 단계;
    사용자 승인이 수여되면,
    상기 충돌을 상기 원격 서버에 보고하고,
    상기 보고에 응답하여, 상기 충돌에 관련된 함수 또는 인터페이스를 불능화하도록 구성된 하나 이상의 쉴드를 다운로드하고,
    상기 함수 또는 인터페이스를 불능화하기 위해 상기 하나 이상의 쉴드를 적용하는 단계; 및
    사용자 승인이 수여되지 않으면, 상기 프로그램 충돌의 대상이었던 함수 또는 인터페이스를 불능화하는 단계
    를 포함하는 방법.
  19. 제18항에 있어서,
    사용자 인터페이스를 통해, 불능화되었던 상기 함수 또는 인터페이스를 재활성화시키는 옵션을 상기 사용자에게 제공하는 단계를 더 포함하는 방법.
  20. 제18항에 있어서,
    상기 검출하는 단계 및 상기 요청하는 단계는 웹 브라우저에 의해 수행되는 방법.
KR1020097015518A 2006-12-29 2007-12-31 자동적 취약점 검출 및 응답 KR20090117705A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/618,470 2006-12-29
US11/618,470 US8453245B2 (en) 2006-12-29 2006-12-29 Automatic vulnerability detection and response

Publications (1)

Publication Number Publication Date
KR20090117705A true KR20090117705A (ko) 2009-11-12

Family

ID=39586025

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097015518A KR20090117705A (ko) 2006-12-29 2007-12-31 자동적 취약점 검출 및 응답

Country Status (10)

Country Link
US (1) US8453245B2 (ko)
EP (1) EP2118802A4 (ko)
JP (1) JP2010515177A (ko)
KR (1) KR20090117705A (ko)
CN (1) CN101573712A (ko)
AU (1) AU2007341952B2 (ko)
BR (1) BRPI0720666A2 (ko)
MX (1) MX2009007064A (ko)
RU (1) RU2462754C2 (ko)
WO (1) WO2008083382A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8453245B2 (en) 2006-12-29 2013-05-28 Microsoft Corporation Automatic vulnerability detection and response
US8627475B2 (en) * 2010-04-08 2014-01-07 Microsoft Corporation Early detection of potential malware
US20120311715A1 (en) * 2011-05-30 2012-12-06 Yaron Tal System and method for protecting a website from hacking attacks
CN103595708B (zh) * 2013-10-22 2017-08-25 北京奇虎科技有限公司 浏览器异常关闭的处理方法、系统、浏览器和服务器
CN106453509B (zh) * 2013-10-22 2019-06-04 北京奇虎科技有限公司 浏览器异常关闭的处理方法、系统、浏览器和服务器
US10445505B2 (en) 2014-09-22 2019-10-15 Mcafee, Llc Process vulnerability assessment
US10089473B2 (en) 2014-12-24 2018-10-02 Sap Se Software nomenclature system for security vulnerability management
KR101619691B1 (ko) 2015-01-22 2016-05-10 주식회사 엔씨소프트 프로그램 오류 분석 방법 및 시스템
US10176329B2 (en) * 2015-08-11 2019-01-08 Symantec Corporation Systems and methods for detecting unknown vulnerabilities in computing processes
EP3588423B1 (en) * 2017-02-24 2023-12-13 Fuji Corporation Failure information sharing system
CN110096873A (zh) 2018-01-31 2019-08-06 开利公司 通过补丁变换的自动诱饵推导
US11886390B2 (en) 2019-04-30 2024-01-30 JFrog Ltd. Data file partition and replication
US11386233B2 (en) 2019-04-30 2022-07-12 JFrog, Ltd. Data bundle generation and deployment
US11340894B2 (en) 2019-04-30 2022-05-24 JFrog, Ltd. Data file partition and replication
WO2021014326A2 (en) 2019-07-19 2021-01-28 JFrog Ltd. Software release verification
US11307920B2 (en) 2019-11-26 2022-04-19 Disney Enterprises, Inc. Automated crash recovery
RU2739831C1 (ru) * 2019-11-27 2020-12-28 Акционерное общество "Лаборатория Касперского" Способ устранения неполадки, возникшей при работе приложения
RU2739867C1 (ru) * 2019-11-27 2020-12-29 Акционерное общество "Лаборатория Касперского" Способ определения модуля приложения, связанного с причиной неполадки, возникшей при работе приложения
US11860680B2 (en) 2020-11-24 2024-01-02 JFrog Ltd. Software pipeline and release validation

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2693019B2 (ja) 1990-05-30 1997-12-17 株式会社東芝 プログラマブル・コントローラのプログラム監視装置
US6874084B1 (en) 2000-05-02 2005-03-29 International Business Machines Corporation Method and apparatus for establishing a secure communication connection between a java application and secure server
US6629267B1 (en) * 2000-05-15 2003-09-30 Microsoft Corporation Method and system for reporting a program failure
US6675295B1 (en) * 2000-06-19 2004-01-06 Microsoft Corporation Method and computer system for detecting and correcting a failure in a computer application program during startup
US6708333B1 (en) 2000-06-23 2004-03-16 Microsoft Corporation Method and system for reporting failures of a program module in a corporate environment
US20020124172A1 (en) 2001-03-05 2002-09-05 Brian Manahan Method and apparatus for signing and validating web pages
JP2002264455A (ja) * 2001-03-07 2002-09-18 Canon Inc 画像形成装置および画像形成装置管理装置および画像形成装置の制御方法および画像形成装置管理装置の制御方法および記憶媒体
US7313822B2 (en) 2001-03-16 2007-12-25 Protegrity Corporation Application-layer security method and system
US7096362B2 (en) 2001-06-01 2006-08-22 International Business Machines Corporation Internet authentication with multiple independent certificate authorities
US7231659B2 (en) 2001-07-31 2007-06-12 Verisign, Inc. Entity authentication in a shared hosting computer network environment
US7562222B2 (en) 2002-05-10 2009-07-14 Rsa Security Inc. System and method for authenticating entities to users
KR100777938B1 (ko) 2003-09-04 2007-11-21 싸이언스 파크 가부시키가이샤 부정 코드 실행의 방지 방법, 및 부정 코드 실행의 방지용 프로그램의 기록매체
US7437764B1 (en) * 2003-11-14 2008-10-14 Symantec Corporation Vulnerability assessment of disk images
RU2261470C1 (ru) * 2004-03-01 2005-09-27 Федеральное государственное унитарное предприятие "Научно-производственное предприятие "Полет" Устройство программного управления
US7413085B2 (en) 2004-09-07 2008-08-19 Iconix, Inc. Techniques for displaying emails listed in an email inbox
JP2006094046A (ja) * 2004-09-22 2006-04-06 Fuji Xerox Co Ltd 複合機および複合機の管理システム
JP4688472B2 (ja) 2004-11-01 2011-05-25 株式会社エヌ・ティ・ティ・ドコモ 端末制御装置及び端末制御方法
US7979889B2 (en) 2005-01-07 2011-07-12 Cisco Technology, Inc. Methods and apparatus providing security to computer systems and networks
US20060185018A1 (en) 2005-02-17 2006-08-17 Microsoft Corporation Systems and methods for shielding an identified vulnerability
US7743254B2 (en) 2005-03-23 2010-06-22 Microsoft Corporation Visualization of trust in an address bar
US7735136B2 (en) * 2005-04-18 2010-06-08 Vmware, Inc. 0-touch and 1-touch techniques for improving the availability of computer programs under protection without compromising security
US8453245B2 (en) 2006-12-29 2013-05-28 Microsoft Corporation Automatic vulnerability detection and response

Also Published As

Publication number Publication date
WO2008083382A1 (en) 2008-07-10
EP2118802A1 (en) 2009-11-18
US20080163374A1 (en) 2008-07-03
RU2462754C2 (ru) 2012-09-27
JP2010515177A (ja) 2010-05-06
AU2007341952A1 (en) 2008-07-10
US8453245B2 (en) 2013-05-28
AU2007341952B2 (en) 2011-10-13
RU2009129132A (ru) 2011-02-10
MX2009007064A (es) 2009-07-09
CN101573712A (zh) 2009-11-04
BRPI0720666A2 (pt) 2014-01-14
EP2118802A4 (en) 2012-08-22

Similar Documents

Publication Publication Date Title
KR20090117705A (ko) 자동적 취약점 검출 및 응답
Cheng et al. Orpheus: Enforcing cyber-physical execution semantics to defend against data-oriented attacks
US9158919B2 (en) Threat level assessment of applications
US9858416B2 (en) Malware protection
US8701187B2 (en) Runtime integrity chain verification
US8272059B2 (en) System and method for identification and blocking of malicious code for web browser script engines
US7509679B2 (en) Method, system and computer program product for security in a global computer network transaction
US7832011B2 (en) Method and apparatus for detecting malicious code in an information handling system
US7665139B1 (en) Method and apparatus to detect and prevent malicious changes to tokens
AU2006252969A1 (en) Methods and systems for repairing applications
US11163645B2 (en) Apparatus and method of control flow integrity enforcement utilizing boundary checking
US20070266435A1 (en) System and method for intrusion detection in a computer system
JP2013168141A (ja) マルウェアの検出方法
JPWO2004075060A1 (ja) コンピュータウィルス判断方法
US9483645B2 (en) System, method, and computer program product for identifying unwanted data based on an assembled execution profile of code
US8484753B2 (en) Hooking nonexported functions by the offset of the function
Dao et al. Security sensitive data flow coverage criterion for automatic security testing of web applications
Kuzuno et al. Mitigation of kernel memory corruption using multiple kernel memory mechanism
CN114730338A (zh) 用于发现应用程序篡改的系统和方法
US8863159B2 (en) System, method and computer program product for inserting an emulation layer in association with a COM server DLL
Zhang et al. Building Dynamic System Call Sandbox with Partial Order Analysis
Zaheri et al. Preventing reflective DLL injection on UWP apps
SUN et al. Building Dynamic System Call Sandbox with Partial Order Analysis
Fajar et al. Web Browser Vulnerabilities and Weakness Descriptive Analysis: Is it Chrome Keep Dominant?
CN115758339A (zh) 开源组件访问检测方法、装置及计算机可读存储介质

Legal Events

Date Code Title Description
SUBM Surrender of laid-open application requested