KR101003510B1 - 악성 프로세스 차단 및 실행방지 시스템 - Google Patents

악성 프로세스 차단 및 실행방지 시스템 Download PDF

Info

Publication number
KR101003510B1
KR101003510B1 KR1020090004465A KR20090004465A KR101003510B1 KR 101003510 B1 KR101003510 B1 KR 101003510B1 KR 1020090004465 A KR1020090004465 A KR 1020090004465A KR 20090004465 A KR20090004465 A KR 20090004465A KR 101003510 B1 KR101003510 B1 KR 101003510B1
Authority
KR
South Korea
Prior art keywords
information
database
user
thread
value
Prior art date
Application number
KR1020090004465A
Other languages
English (en)
Other versions
KR20100085280A (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 한남대학교 산학협력단
Priority to KR1020090004465A priority Critical patent/KR101003510B1/ko
Publication of KR20100085280A publication Critical patent/KR20100085280A/ko
Application granted granted Critical
Publication of KR101003510B1 publication Critical patent/KR101003510B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01KANIMAL HUSBANDRY; AVICULTURE; APICULTURE; PISCICULTURE; FISHING; REARING OR BREEDING ANIMALS, NOT OTHERWISE PROVIDED FOR; NEW BREEDS OF ANIMALS
    • A01K1/00Housing animals; Equipment therefor
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61LMETHODS OR APPARATUS FOR STERILISING MATERIALS OR OBJECTS IN GENERAL; DISINFECTION, STERILISATION OR DEODORISATION OF AIR; CHEMICAL ASPECTS OF BANDAGES, DRESSINGS, ABSORBENT PADS OR SURGICAL ARTICLES; MATERIALS FOR BANDAGES, DRESSINGS, ABSORBENT PADS OR SURGICAL ARTICLES
    • A61L9/00Disinfection, sterilisation or deodorisation of air
    • A61L9/01Deodorant compositions
    • A61L9/013Deodorant compositions containing animal or plant extracts, or vegetable material
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61LMETHODS OR APPARATUS FOR STERILISING MATERIALS OR OBJECTS IN GENERAL; DISINFECTION, STERILISATION OR DEODORISATION OF AIR; CHEMICAL ASPECTS OF BANDAGES, DRESSINGS, ABSORBENT PADS OR SURGICAL ARTICLES; MATERIALS FOR BANDAGES, DRESSINGS, ABSORBENT PADS OR SURGICAL ARTICLES
    • A61L9/00Disinfection, sterilisation or deodorisation of air
    • A61L9/14Disinfection, sterilisation or deodorisation of air using sprayed or atomised substances including air-liquid contact processes
    • A61L9/145Disinfection, sterilisation or deodorisation of air using sprayed or atomised substances including air-liquid contact processes air-liquid contact processes, e.g. scrubbing
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24FAIR-CONDITIONING; AIR-HUMIDIFICATION; VENTILATION; USE OF AIR CURRENTS FOR SCREENING
    • F24F7/00Ventilation
    • F24F7/04Ventilation with ducting systems, e.g. by double walls; with natural circulation
    • F24F7/06Ventilation with ducting systems, e.g. by double walls; with natural circulation with forced air circulation, e.g. by fan positioning of a ventilator in or against a conduit
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24FAIR-CONDITIONING; AIR-HUMIDIFICATION; VENTILATION; USE OF AIR CURRENTS FOR SCREENING
    • F24F7/00Ventilation
    • F24F7/04Ventilation with ducting systems, e.g. by double walls; with natural circulation
    • F24F7/06Ventilation with ducting systems, e.g. by double walls; with natural circulation with forced air circulation, e.g. by fan positioning of a ventilator in or against a conduit
    • F24F7/10Ventilation with ducting systems, e.g. by double walls; with natural circulation with forced air circulation, e.g. by fan positioning of a ventilator in or against a conduit with air supply, or exhaust, through perforated wall, floor or ceiling

Landscapes

  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Veterinary Medicine (AREA)
  • Combustion & Propulsion (AREA)
  • Animal Behavior & Ethology (AREA)
  • General Health & Medical Sciences (AREA)
  • Public Health (AREA)
  • Zoology (AREA)
  • General Engineering & Computer Science (AREA)
  • Epidemiology (AREA)
  • Environmental Sciences (AREA)
  • Chemical & Material Sciences (AREA)
  • Mechanical Engineering (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Botany (AREA)
  • Animal Husbandry (AREA)
  • Storage Device Security (AREA)

Abstract

필요없는 프로세스들을 제거하고 악성 프로세스를 차단하여 컴퓨터를 안전하고 빠르게 할 수 있도록, 윈도우 응용프로그램으로 사용자에게 실행되는 프로세스 정보를 대용량 메모리에 저장된 프로세스 데이터베이스에서 불러와서 보여주거나 제어하는 유저모드 애플리케이션과, 유저모드 애플리케이션에서 서비스를 설치하면 시작하여 사용자 컴퓨터에서 프로세스가 생성되는 것을 감지하고 프로세스가 생성될 때 프로세스 정보를 시스템 메모리의 수신버퍼 메모리 공간에 기록하는 커널모드 드라이버와, 커널모드 드라이버에서 수신버퍼 메모리 공간에 기록한 프로세스 정보를 읽어 프로세스 데이터베이스에서 불러온 프로세서 정보를 비교하여 정상 프로세스인지 비정상 프로세스인지를 확인하여 수신버퍼 플래그의 값을 "0" 또는 "1"로 설정하는 쓰레드를 포함하고, 커널모드 드라이버에서는 쓰레드로부터 전송되는 수신버퍼 플래그의 값을 판단하여 정상 프로세스인지 비정상 프로세스인지를 확인하여 프로세스의 실행 또는 실행금지를 수행하는 악성 프로세스 차단 및 실행방지 시스템을 제공한다.
악성 프로세스, 커널모드 드라이버, 유저모드 애플리케이션, 바이러스, 쓰레드, 플래그, 수신버퍼

Description

악성 프로세스 차단 및 실행방지 시스템 {System for Detection and Prevent of Recrudescence of Mal-Process}
본 발명은 악성 프로세스 차단 및 실행방지 시스템에 관한 것으로, 악성 프로세스 차단, 은닉 프로세스 제거, 그리고 스파이웨어나 트로이잔에 의한 해킹 방지 문제를 해결하기 위하여 수천 개의 실행 프로세스에 대한 데이터베이스를 구축하고, 정상적인 프로세스 데이터베이스, 비정상적인 프로세스 데이터베이스를 유지하고 계속해서 업데이트함으로서 새로운 프로세스가 생성되거나 외부로부터 침입을 위해 실행하는 비정상적인 악성 프로세스를 제거 혹은 실행정지(blocking)시키는 악성 프로세스 차단 및 실행방지 시스템에 관한 것이다.
최근 인터넷의 발달과 잦은 사용으로 각 사용자의 컴퓨터에 바이러스 프로그램이나 악성 코드, 해킹 프로그램 등이 침입하여 실행되는 일이 빈번하게 발생하고 있다.
최근들어 발생하고 있는 악성코드의 특징은 첫째, 스캔 방식을 사용한다. 웜이 지금까지 사용한 전파를 위한 스캔 방법은 선택적 랜덤 스캔(selective random scan), 히트리스트 스캔(hitlist scan), 라우팅 스캔(routable scan), DNS 스캔(dns scan), 코드레드(Codered)와 슬래머(Slammer)가 이용한 균일 스캔(uniform scan), 코드레드II(Codered II)에서 사용된 로컬 우선 스캔(local preference scan), 블래스터(Blaster)에서 사용된 순차 스캔(sequential scan), 목표 우선 스캔(target preference scan), 분할 공격 스캔(divide-and-conquer scan), 균일 분산 호스트(uniform distribution hosts) 등이 있다. 이중 웜의 전파 속도를 높이는 방법으로 로컬 우선 스캔(local preference scan), 최적 로컬 스캔(optimal local scan) 등을 열거할 수 있다.
둘째, 최근의 웜은 공격 대상 시스템에 여러 가지 취약점을 동시 공격(parallel attack)할 가능성도 높아지고 있다. 취약점을 자동으로 검색하는 방법 등을 이용하여 여러 가지 취약점을 알아내고 제로데이(Zero-Day) 공격과 여러 취약점을 동시에 공격한다면 짧은 시간 내에 많은 수의 컴퓨터(PC)를 감염시키는 것이 가능하다.
셋째, 최근의 웜은 탐지 및 치료를 어렵게 하는 기법을 사용한다. 대표적인 다형성 바이러스로 클레즈(Klez)바이러스는 백신이 분석하여 치료할 경우 다른 형태의 바이러스로 변신하는 특징을 가지고 있다. 그리고 탐지를 어렵게 하기 위하여 주요 시스템 호출을 가로채어 자신을 숨기는 스텔스 기능이나 치료를 어렵게 하기 위하여 상시 실행되고 있는 프로세스에 삽입되어 동작되는 형태나, 많이 사용되는 프로세스 이름으로 실행되도록 하는 방법들을 사용한다.
또한 많은 트래픽을 발생시켜 네트워크나 서버의 정상적인 동작을 방해하는 서비스 거부 공격은 웜 기술을 통하여 보다 지능적으로 엄청난 위력을 발휘하고 있 다. 예를 들면, 트로이목마 형태를 통한 비밀정보 획득 및 공개, 논리 폭탄(Logic Bomb)처럼 시스템 자료를 파과하거나 다량의 트래픽 발생 후 스스로 사라지는 공격 등도 발생하고 있다.
그리고 악성코드의 유형은 메일형 악성코드, 취약점 확산형, 악성 봇형 웜, 메신저형 웜 등으로 구분할 수 있다.
상기 메일형 악성코드는 현재 대표적으로 넷스카이(Netsky), 베이글(Bagle), 마이둠(Mydoom)을 예로 들 수 있다. 그중 대표적으로 베이글(Bagle)은 현재 메일형 웜 중 가장 많은 변종을 가지고 있는 것들 중 하나이며, 현재도 계속하여 새로운 변종이 발생하는 웜으로, 변종에 따라 새로운 기능이 다양하게 추가되어 패턴 생성 및 분석에 가장 효과적인 웜이다.
상기 취약점 확산형은 윈도우즈(Windows)의 취약점을 이용하여 확산되는 악성코드로, 최근 여러 종류에서 나타나고 있으며, 심지어 봇, 메일형 웜에서도 취약점을 이용하여 확산하는 기능을 포함한 변종도 나타나고 있는 실정이다. 취약점을 이용하여 확산되는 단순한 형태로 가장 적합한 예는 사세르웜(Sasser Worm)이다. 사세르(Sasser)는 LSASS 버퍼 오버런 취약점(MS04-011)을 이용하여 확산되며, 감염 및 공격절차로 먼저 TCP 445번 포트로 LSASS 취약점 스캔 및 공격을 통한 시스템 권한을 획득하고, 피해 컴퓨터(PC)에 명령코드를 전송한다. 명령코드의 전송은 TCP 9996을 통해 이루어지며, 공격 컴퓨터(PC)의 FTP로 접속하여, 웜을 다운받게 하는 형태로 구성되어 있다. 명령을 전달받은 컴퓨터(PC)는 FTP 서버로 접속하여 웜 파일을 다운로드(TCP 5554)하여 실행함으로서 감염이 확산된다.
상기 악성 봇형 웜은 최근 발생하는 악성코드 중 가장 진보된 방식으로 시스템에 악영향을 미치는 대표적인 사례라고 할 수 있다. 최신 봇은 확산에 대한 기본 기능뿐 아니라 봇넷으로 불리는 명령구조를 가지고 있어 봇에 감염된 컴퓨터(PC)를 대상으로 중앙에서 여러 가지 명령을 내릴 수 있으며, 다른 웜에 대한 제약이나 보안 사이트 접속 방해, 백신관련 프로세스 종료, 백도어를 통한 명령실행, 취약점을 이용한 자동 확산 등 여러 가지 기능을 제공하고 있다.
상기 최신 악성코드는 메신저라는 또 다른 전파경로를 통해 확산되기도 한다. 대표적인 메신저형 웜인 브로피아(Bropia)웜은 MSN 메신저 서비스를 통해 전파되는데 하나의 컴퓨터(PC)가 감염되면 메신저에 로그인 되어있는 대화 상대에게 웜 파일이 전송되며, 이때 상대 이용자의 메신저 화면에는 파일 다운로드 및 실행 여부를 묻는 화면이 표시되고 사용자가 승낙을 할 경우 상대방 컴퓨터(PC)는 웜에 감염되게 된다. 웜에 감염되면 스파이봇(SpyBot)이 설치되고, 봇(Bot)을 제어하는 서버로 접속을 시도한다. 브로피아(Bropia)웜은 메모리 상주 웜이며, 스파이봇(SpyBot)을 확산시키기 위한 웜이라고 볼 수 있다.
그런데 컴퓨터는 사용자가 작업을 하지 않는 쉬는 시간에도 20∼30개의 보이지 않는 프로세스가 은밀히 백그라운드에서 실행된다. 이것은 일부 컴퓨터 시스템 자원을 소비함으로서 컴퓨터의 기능을 둔화시킨다. 더 나아가서 몇몇 은닉하는 스파이웨어(Spyware)나 트로이잔(Trojan)은 개인의 프라이버시를 침해하고 해커들이 침범을 할 수 있게 한다.
본 발명은 상기와 같은 점에 착안하여 이루어진 것으로서, 지난 몇 년간 우리는 수천개의 실행 프로세스에 관한 정보를 수집하여 이를 분석하여 이루어진 것이다.
본 발명의 목적은 필요없는 프로세스들을 제거함으로서 컴퓨터를 안전하고 빠르게 할 수 있으며, 파이어 월 및 안티 바이러스(firewalls and anti-virus software)와 함께 악성 프로세스를 차단하여 컴퓨터를 완전히 제어하여 안전하게 할 수 있는 악성 프로세스 차단 및 실행방지 시스템을 제공하기 위한 것이다.
본 발명의 다른 목적은 유용하지 않은 프로그램이 컴퓨터의 시스템 자원을 도둑질하는 것과 안전의 위협으로부터 벗어나 시스템의 효율성을 증가시킬 수 있는 악성 프로세스 차단 및 실행방지 시스템을 제공하기 위한 것이다.
본 발명이 제안하는 악성 프로세스 차단 및 실행방지 시스템은 윈도우 응용프로그램으로 컴퓨터의 대용량 메모리에 저장되어 컴퓨터의 시스템 메모리에서 실행되며 사용자에게 실행되는 프로세스 정보를 상기 대용량 메모리에 저장된 프로세스 데이터베이스에서 불러와서 보여주거나 제어하는 유저모드 애플리케이션과, 상기 유저모드 애플리케이션에서 서비스를 설치하면 시작하여 사용자 컴퓨터에서 프로세스가 생성되는 것을 감지하고 프로세스가 생성될 때 프로세스 정보를 상기 시스템 메모리의 수신버퍼 메모리 공간에 기록하며 상기 대용량 메모리에 저장되어 상기 시스템 메모리에서 실행되는 커널모드 드라이버와, 상기 커널모드 드라이버에서 수신버퍼 메모리 공간에 기록한 프로세스 정보를 읽어 상기 프로세스 데이터베이스에서 불러온 프로세서 정보를 비교하여 정상 프로세스인지 비정상 프로세스인지를 확인하여 수신버퍼 플래그의 값을 "0" 또는 "1"로 설정하는 쓰레드를 포함하여 이루어진다.
상기 커널모드 드라이버에서는 쓰레드로부터 전송되는 수신버퍼 플래그의 값을 판단하여 정상 프로세스인지 비정상 프로세스인지를 확인하여 프로세스의 실행 또는 실행금지를 수행한다.
본 발명에 따른 악성 프로세스 차단 및 실행방지 시스템에 의하면, 학술 및 기술적 측면으로 바이러스 백신, 애드웨어 등은 프로세스의 실행 모듈을 분석하는 방식으로서 방법론적으로 다르므로, 프로세스 관점에서 데이터베이스를 유지하는 방법으로 새로운 프로세스 및 시스템 관리의 방법을 제공하는 것이 가능하다.
그리고 본 발명에 따른 악성 프로세스 차단 및 실행방지 시스템에 의하면, 정보보호 산업적 측면으로 유해 프로그램을 차단하는 새로운 개념의 상업적 방법을 제시하여 정보 산업의 발달과 성장을 지원할 수 있다.
또 본 발명에 따른 악성 프로세스 차단 및 실행방지 시스템에 의하면, 사회적 측면으로 평가 및 인증된 정보보호제품을 이용해 정보시스템을 구축하므로, 정보보호 문제를 해결하는 것이 가능하다.
다음으로 본 발명에 따른 악성 프로세스 차단 및 실행방지 시스템의 바람직한 실시예를 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명에 따른 악성 프로세스 차단 및 실행방지 시스템의 일실시예를 개략적으로 나타내는 블럭도이다.
본 발명에 따른 악성 프로세스 차단 및 실행방지 시스템의 일실시예는 컴퓨터는 데스크탑, 노트북, 랩탑 등의 다양한 형태의 컴퓨터에 적용이 가능하며, 네트워크 통신과 인터넷 접속이 가능한 휴대폰, PDA 등의 다양한 전자제품에도 적용이 가능하다.
본 발명에 따른 악성 프로세스 차단 및 실행방지 시스템의 일실시예가 적용되는 컴퓨터는 도 2에 나타낸 바와 같이, 중앙처리장치(10), 시스템 메모리(20), 대용량 메모리(30), 네트워크 인터페이스장치(40), 입출력 컨트롤러(50) 등으로 구성된다.
본 발명에 따른 악성 프로세스 차단 및 실행방지 시스템의 일실시예는 도 1 및 도 2에 나타낸 바와 같이, 상기 중앙처리장치(10) 및 시스템 메모리(20)에 로딩되어 실행되는 유저모드 애플리케이션(12)과, 커널모드 드라이버(14)와, 쓰레드(16) 및 상기 대용량 메모리(30)에 저장되는 프로세스 데이터베이스(32)를 포함하여 이루어진다.
상기 유저모드 애플리케이션(12)은 윈도우 응용 프로그램으로, 사용자에게 각종 프로세스 정보를 보여주거나 컨트롤할 수 있게 하며, 상기 대용량 메모리(30)에 저장되어 있다가 컴퓨터의 부팅과 더불어 상기 시스템 메모리(20)에 로딩되어 실행된다.
상기 유저모드 애플리케이션(12)은 도 1에 나타낸 바와 같이, 프로그램이 시작되면 사용자의 컴퓨터에서 현재 실행중인 프로세스의 정보를 불러오는 프로세스 로딩단계(S11)와, 프로세스 정보를 불러오면 프로세스 데이터베이스(32)에 저장된 프로세스의 정보를 불러오는 데이터베이스 목록 불러오기단계(S12)와, 프로세스 데이터베이스(32)에서 불러온 프로세스의 정보와 사용자의 컴퓨터에서 현재 실행중인 프로세스의 정보를 비교하여 시스템 프로세스, 정상 응용프로세스, 악성 응용프로세스로 각 프로세스를 구분하여 해당 리스트에 추가하고 사용자에게 보여주는 프로세스 목록추가단계(S13)와, 실행중인 프로세스를 데이터베이스의 목록과 비교하여 사용자에게 보여주고 나면 커널모드 드라이버(14)를 설치하고 드라이버 서비스를 시작하는 커널모드 드라이버 서비스설치단계(S14)와, 커널모드 드라이버(14)를 설치하고 시작시키고 난 후 쓰레드를 시작하는 쓰레드시작단계(S15)를 포함하여 이루어진다.
상기 커널모드 드라이버(14)는 도 1에 나타낸 바와 같이, 사용자 컴퓨터에서 프로세스가 생성되는 것을 감지하고(S21), 프로세스가 생성될 때 프로세스 정보를 수신버퍼 메모리 공간에 기록하고(S22), 쓰레드로부터 응답을 기다리고(S23), 쓰레드로부터 받은 값을 분석 및 판단(S24)하여 프로세스를 실행(S25)시키거나 실행을 차단(S26)하는 과정을 포함하여 이루어진다.
상기 커널모드 드라이버(14)는 상기 대용량 메모리(30)에 저장되어 있다가 컴퓨터의 부팅과 더불어 상기 시스템 메모리(20)에 로딩되어 실행된다.
상기 커널모드 드라이버(14)의 서비스가 시작되면, 운영체제에서 Ntcreatesection 함수가 호출되었는 지를 감시하게 된다(S21).
상기에서 Ntcreatesection 함수는 프로세스가 생성될 때 호출되는 커널모드에서 사용되는 함수로, 이 함수가 호출되면 새로운 프로세스가 실행된다는 것을 의미한다.
상기 Ntcreatesection 함수의 호출여부를 감시하는 단계(S21)에서는 Ntcreatesection 함수의 호출 여부를 후킹(Hooking)한다.
상기 Ntcreatesection 함수의 호출여부를 감시하는 단계(S21)에서는 Ntcreatesection 함수가 호출되었을 때에만 다음 단계로 진행한다.
상기에서 Ntcreatesection 함수가 호출되었음을 감지하면, 이 함수를 호출한 프로세스의 정보를 수신버퍼에 프로세스 정보를 기록한다(S22). 즉 시스템 메모리(20)의 수신버퍼 메모리 공간에 프로세스 정보를 기록한다.
상기와 같이 프로세스 정보를 기록(S22)한 다음에는 쓰레드(16)로부터의 응답을 기다리고(S23), 쓰레드(16)로부터의 응답이 있는 경우에는 다음 단계로 진행한다.
상기에서 수신버퍼 메모리 공간은 프로세스가 생성되었음을 기록해 두는 곳으로, 쓰레드(16)에 의해서 감시된다.
상기 쓰레드(16)는 도 1에 나타낸 바와 같이, 상기 유저모드 애플리케이션(12)에서 커널모드 드라이버(14)를 시작시키고 난 후 쓰레드를 시작하는 쓰레드시작단계(S15)에서 시작한다.
상기 쓰레드(16)는 수신버퍼 메모리 공간에 기록된 프로세스 정보를 읽고(S31), 수신버퍼 메모리 공간에 기록된 프로세스 정보가 존재하는지를 확인하고(S32), 기록된 프로세스 정보가 없이 수신버퍼가 비어있으면 10밀리초 휴면을 하고 다시 수신버퍼 메모리 공간에서 프로세스 정보를 읽는 단계(S31)로 진행한다.
상기 기록된 프로세스 정보가 존재하는지를 확인하는 단계(S32)에서 수신버퍼 메모리 공간에 프로세스 정보가 기록되어 있으면, 상기 프로세스 데이터베이스(32)에 저장된 프로세스 정보를 불러온다(S34).
그리고 상기 수신버퍼 메모리 공간에서 읽은 프로세스 정보가 상기 프로세스 데이터베이스(32)에서 불러온 프로세스 정보의 위협 프로세스 목록에 있는 프로세스인지를 비교하고(S35), 수신버퍼에서 읽어온 프로세스 정보가 프로세스 데이터베이스(32)에 저장된 위협 프로세스 목록에 있는 프로세스일 경우에는 수신버퍼 플래그의 값을 "0"으로 기록한다(S36).
또 수신버퍼에서 읽어온 프로세스 정보가 위협 프로세스 목록에 없을 경우에는 현재 실행하려고 하는 프로세스는 정상 프로세스라고 판단하고 프로세스 목록에 추가하고(S37), 유저모드 애플리케이션(12)의 현재 실행중인 정상 프로세스 리스트에 프로세스 정보를 추가하며, 프로세스 정보가 목록에 추가되면 수신버퍼 플래그의 값을 "1"로 기록한다(S38).
상기와 같이 수신버퍼 플래그의 값으로 "0" 또는 "1"이 기록되면, 이 값은 커널모드 드라이버(14)의 쓰레드의 응답을 기다리는 단계(S23)로 전송되고, 커널모드 드라이버(14)에서는 플래그의 값을 받아 플래그의 값이 무엇인지 판별한 다(S24).
상기 수신버퍼 플래그의 값이 "1"일 경우에는 정상 프로세스로 판단하여 프로세스가 정상적으로 실행하도록 하고(S25), 수신버퍼 플래그의 값이 "0"일 경우에는 위협 프로세스(악성 프로세스)로 판단하여 프로세스의 실행이 금지되도록 후킹한 Ntcreatesection 함수의 결과값을 임의로 바꿔 프로세스가 정상적으로 실행되는 것을 차단한다(S26).
상기 프로세스 데이터베이스(32)에는 시스템 프로세스와 정상 응용프로세스, 악성 프로세스 등의 목록을 저장한다.
상기와 같이 구성되는 본 발명에 따른 악성 프로세스 차단 및 실행정지 시스템의 일실시예에서는 종래 바이러스 백신이나 애드웨어가 실행 프로그램에서 특정한 패턴을 찾아 제거 또는 치료하는 방식과 달리, 실행 프로세스의 종류를 데이터베이스화하여 정상적인 프로세스 테이터베이스, 비정상적인 프로세스 데이터베이스를 유지하고, 계속하여 업데이트하는 것에 의하여 새로운 프로세스가 생성되거나 외부로부터 침입을 위해 실행하는 비정상적인 악성 프로세스를 제거하거나 실행정지(blocking)시키는 것이 가능하다.
상기에서는 본 발명에 따른 악성 프로세스 차단 및 실행정지 시스템의 바람직한 실시예에 대하여 설명하였지만, 본 발명은 이에 한정되는 것이 아니고 특허청구범위와 발명의 상세한 설명 및 첨부한 도면의 범위 안에서 여러가지로 변형하여 실시하는 것이 가능하고, 이 또한 본 발명의 범위에 속한다.
도 1은 본 발명에 따른 악성 프로세스 차단 및 실행방지 시스템의 일실시예를 개략적으로 나타내는 블럭 순서도이다.
도 2는 본 발명에 따른 악성 프로세스 차단 및 실행방지 시스템의 일실시예가 적용되는 컴퓨터의 구성을 나타내는 블럭도이다.

Claims (5)

  1. 삭제
  2. 윈도우 응용프로그램으로 컴퓨터의 대용량 메모리에 저장되어 컴퓨터의 시스템 메모리에서 실행되며 사용자에게 실행되는 프로세스 정보를 상기 대용량 메모리에 저장된 프로세스 데이터베이스에서 불러와서 보여주거나 제어하는 유저모드 애플리케이션과, 상기 유저모드 애플리케이션에서 서비스를 설치하면 시작하여 사용자 컴퓨터에서 프로세스가 생성되는 것을 감지하고 프로세스가 생성될 때 프로세스 정보를 상기 시스템 메모리의 수신버퍼 메모리 공간에 기록하며 상기 대용량 메모리에 저장되어 상기 시스템 메모리에서 실행되는 커널모드 드라이버와, 상기 커널모드 드라이버에서 수신버퍼 메모리 공간에 기록한 프로세스 정보를 읽어 상기 프로세스 데이터베이스에서 불러온 프로세서 정보를 비교하여 정상 프로세스(상기 프로세스 데이터베이스에 있는 프로세스)인지 비정상 프로세스(상기 프로세스 데이터베이스에 없는 프로세스)인지를 확인하여 수신버퍼 플래그의 값을 "0" 또는 "1"로 설정하는 쓰레드를 포함하고,
    상기 커널모드 드라이버에서는 쓰레드로부터 전송되는 수신버퍼 플래그의 값을 판단하여 정상 프로세스인지 비정상 프로세스인지를 확인하여 프로세스의 실행 또는 실행금지를 수행하고,
    상기 유저모드 애플리케이션은 프로그램이 시작되면 사용자의 컴퓨터에서 현재 실행중인 프로세스의 정보를 불러오는 프로세스 로딩단계와, 프로세스 정보를 불러오면 상기 프로세스 데이터베이스에 저장된 프로세스의 정보를 불러오는 데이터베이스 목록 불러오기단계와, 상기 프로세스 데이터베이스에서 불러온 프로세스의 정보와 사용자의 컴퓨터에서 현재 실행중인 프로세스의 정보를 비교하여 시스템 프로세스, 정상 응용프로세스, 악성 응용프로세스로 각 프로세스를 구분하여 해당 리스트에 추가하고 사용자에게 보여주는 프로세스 목록추가단계와, 실행중인 프로세스를 데이터베이스의 목록과 비교하여 사용자에게 보여주고 나면 커널모드 드라이버를 설치하고 드라이버 서비스를 시작하는 커널모드 드라이버 서비스설치단계와, 커널모드 드라이버를 설치하고 시작시키고 난 후 쓰레드를 시작하는 쓰레드시작단계를 포함하는 악성 프로세스 차단 및 실행방지 시스템.
  3. 청구항 2에 있어서,
    상기 커널모드 드라이버는 상기 유저모드 애플리케이션에 의하여 서비스가 시작되면, 운영체제에서 Ntcreatesection 함수가 호출되었는 지를 감시하며 Ntcreatesection 함수의 호출 여부를 후킹하는 단계와,
    상기 Ntcreatesection 함수가 호출되었음을 감지하면 이 함수를 호출한 프로세스의 정보를 수신버퍼에 프로세스 정보로 기록하는 단계와,
    상기 프로세스 정보를 기록한 다음에는 쓰레드로부터의 응답을 기다리는 단계를 포함하는 악성 프로세스 차단 및 실행방지 시스템.
  4. 청구항 3에 있어서,
    상기 쓰레드는 상기 유저모드 애플리케이션의 쓰레드시작단계에서 시작하여 상기 수신버퍼 메모리 공간에 기록된 프로세스 정보를 읽는 단계와,
    상기 수신버퍼 메모리 공간에 기록된 프로세스 정보가 존재하는지를 확인하는 단계와,
    상기 기록된 프로세스 정보가 존재하는지를 확인하는 단계에서 기록된 프로세스 정보가 없이 수신버퍼가 비어있으면 10밀리초 휴면을 하고 다시 수신버퍼 메모리 공간에서 프로세스 정보를 읽는 단계로 진행하는 단계와,
    상기 기록된 프로세스 정보가 존재하는지를 확인하는 단계에서 수신버퍼 메모리 공간에 프로세스 정보가 기록되어 있으면 상기 프로세스 데이터베이스에 저장된 프로세스 정보를 불러오는 단계와,
    상기 수신버퍼 메모리 공간에서 읽은 프로세스 정보가 상기 프로세스 데이터베이스에서 불러온 프로세스 정보의 위협 프로세스 목록에 있는 프로세스인지를 비교하는 단계와,
    상기 수신버퍼에서 읽어온 프로세스 정보가 프로세스 데이터베이스에 저장된 위협 프로세스 목록에 있는 프로세스일 경우에는 수신버퍼 플래그의 값을 "0"으로 기록하는 단계와,
    상기 수신버퍼에서 읽어온 프로세스 정보가 위협 프로세스 목록에 없을 경우에는 현재 실행하려고 하는 프로세스는 정상 프로세스라고 판단하고 프로세스 목록에 추가하는 단계와,
    상기 유저모드 애플리케이션의 현재 실행중인 정상 프로세스 리스트에 프로 세스 정보를 추가하며 프로세스 정보가 목록에 추가되면 수신버퍼 플래그의 값을 "1"로 기록하는 단계를 포함하는 악성 프로세스 차단 및 실행방지 시스템.
  5. 청구항 4에 있어서,
    상기 커널모드 드라이버는 상기 쓰레드에서 상기 수신버퍼 플래그의 값으로 "0" 또는 "1"이 기록되어 이 값이 쓰레드의 응답을 기다리는 단계로 전송되면 상기 플래그의 값을 받아 플래그의 값이 무엇인지 판별하는 단계와,
    상기 수신버퍼 플래그의 값이 "1"일 경우에는 정상 프로세스로 판단하여 프로세스가 정상적으로 실행하도록 하는 단계와,
    상기 수신버퍼 플래그의 값이 "0"일 경우에는 위협 프로세스(악성 프로세스)로 판단하여 프로세스의 실행이 금지되도록 상기 유저모드 애플리케이션에서 후킹한 Ntcreatesection 함수의 결과값을 임의로 바꿔 프로세스가 정상적으로 실행되는 것을 차단하는 단계를 더 포함하는 악성 프로세스 차단 및 실행방지 시스템.
KR1020090004465A 2009-01-20 2009-01-20 악성 프로세스 차단 및 실행방지 시스템 KR101003510B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090004465A KR101003510B1 (ko) 2009-01-20 2009-01-20 악성 프로세스 차단 및 실행방지 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090004465A KR101003510B1 (ko) 2009-01-20 2009-01-20 악성 프로세스 차단 및 실행방지 시스템

Publications (2)

Publication Number Publication Date
KR20100085280A KR20100085280A (ko) 2010-07-29
KR101003510B1 true KR101003510B1 (ko) 2010-12-29

Family

ID=42644218

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090004465A KR101003510B1 (ko) 2009-01-20 2009-01-20 악성 프로세스 차단 및 실행방지 시스템

Country Status (1)

Country Link
KR (1) KR101003510B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101248470B1 (ko) * 2012-03-14 2013-03-27 주식회사 팀스톤 자원 모니터링 컴퓨팅 장치, 방법 및 그 방법을 실행시키기 위한 프로그램을 기록한 기록매체
KR20160082016A (ko) * 2014-12-30 2016-07-08 고려대학교 산학협력단 안드로이드 프로세스간 통신 모니터링을 이용한 개인정보 유출 탐지 기법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102045772B1 (ko) * 2015-02-11 2019-11-19 한국전자통신연구원 악성 코드를 탐지하기 위한 전자 시스템 및 방법
CN108038379B (zh) * 2017-12-29 2020-06-23 北京长御科技有限公司 一种防勒索软件攻击的方法和系统
CN114282217A (zh) * 2021-12-22 2022-04-05 完美世界征奇(上海)多媒体科技有限公司 游戏外挂的检测方法和装置、存储介质、电子装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101248470B1 (ko) * 2012-03-14 2013-03-27 주식회사 팀스톤 자원 모니터링 컴퓨팅 장치, 방법 및 그 방법을 실행시키기 위한 프로그램을 기록한 기록매체
KR20160082016A (ko) * 2014-12-30 2016-07-08 고려대학교 산학협력단 안드로이드 프로세스간 통신 모니터링을 이용한 개인정보 유출 탐지 기법
KR101640033B1 (ko) 2014-12-30 2016-07-15 고려대학교 산학협력단 안드로이드 프로세스간 통신 모니터링을 이용한 개인정보 유출 탐지 기법

Also Published As

Publication number Publication date
KR20100085280A (ko) 2010-07-29

Similar Documents

Publication Publication Date Title
RU2646352C2 (ru) Система и способ для применения индикатора репутации для облегчения сканирования на наличие вредоносных программ
CN109684832B (zh) 检测恶意文件的系统和方法
EP2486507B1 (en) Malware detection by application monitoring
US9021597B2 (en) Security arrangements for extended USB protocol stack of a USB host system
US8959639B2 (en) Method of detecting and blocking malicious activity
US9519782B2 (en) Detecting malicious network content
US8719924B1 (en) Method and apparatus for detecting harmful software
US20080005797A1 (en) Identifying malware in a boot environment
CA3017936A1 (en) System and method for reverse command shell detection
KR100985074B1 (ko) 선별적 가상화를 이용한 악성 코드 사전 차단 장치, 방법 및 그 방법을 실행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
CN107330328B (zh) 防御病毒攻击的方法、装置及服务器
Min et al. Antivirus security: naked during updates
KR101003510B1 (ko) 악성 프로세스 차단 및 실행방지 시스템
US9275231B1 (en) Method and apparatus for securing a computer using an optimal configuration for security software based on user behavior
Min et al. A novel malware for subversion of self‐protection in anti‐virus
US20080028462A1 (en) System and method for loading and analyzing files
US8578495B2 (en) System and method for analyzing packed files
Shan et al. Enforcing mandatory access control in commodity OS to disable malware
Dai et al. Mapmon: A host-based malware detection tool
EP1743228A1 (en) Methods and systems for computer security
US20240111860A1 (en) Systems and methods for preventing hollowing attack
Sulianta Various Malware Handling Technique.
Decloedt et al. Rootkits, Trojans, backdoors and new developments
KR20110055081A (ko) 컴퓨터의 무결성을 보호하는 방법

Legal Events

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

Payment date: 20131206

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee