KR20130027026A - 외부 부팅 장치, 외부 부팅 방법 및 네트워크 통신 시스템 - Google Patents

외부 부팅 장치, 외부 부팅 방법 및 네트워크 통신 시스템 Download PDF

Info

Publication number
KR20130027026A
KR20130027026A KR1020127032446A KR20127032446A KR20130027026A KR 20130027026 A KR20130027026 A KR 20130027026A KR 1020127032446 A KR1020127032446 A KR 1020127032446A KR 20127032446 A KR20127032446 A KR 20127032446A KR 20130027026 A KR20130027026 A KR 20130027026A
Authority
KR
South Korea
Prior art keywords
mbr
loader
information
information processing
external
Prior art date
Application number
KR1020127032446A
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 KR20130027026A publication Critical patent/KR20130027026A/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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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/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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2153Using hardware token as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

USB 메모리(2)는 MBR 기억부(261) 및 분산 처리부(221)를 구비한다. 단말기(1)의 BIOS에 의해 우선하여 구동하도록 설정된, 로더를 읽어 내어 단말기(1)의 구동 메모리 영역(120) 상에 맵핑시키기 위한 MBR로서, 구동 메모리 영역(120)에 설정되어 있는 인터럽트 벡터 테이블(1202)에 대하여 스택 영역(1203)을 벡터(2)의 상위 비트로 중첩하여 위치시키는 프로그램이 MBR 기억부(261)에 기록된다. 분산 처리부(221)는 BMR의 구동에 앞서 로더를 사전에 설정된 개수로 분할함과 동시에 각 분할 로더를 상기 구동 메모리 영역으로 로딩할 때의 맵핑 정보를 작성한다.

Description

외부 부팅 장치, 외부 부팅 프로그램, 외부 부팅 방법 및 네트워크 통신 시스템{EXTERNAL BOOT DEVICE, EXTERNAL BOOT PROGRAM, EXTERNAL BOOT METHOD AND NETWORK COMMUNICATION SYSTEM}
본 발명은 CPU를 구비한 정보처리장치에 장착하여 상기 정보처리장치를 외부 부팅 장치를 통해 부팅하는 부팅 기술에 관한 것이다.
근래, 인터넷 등의 네트워크에 접속된 서버나 단말기(퍼스널 컴퓨터) 등의 정보처리장치에 대하여 각종 바이러스 등이 침입하거나 잠복하여, 이들에 의하여 데이터의 도청, 도난, 변경, 누설 및 공격 등의 피해가 발생하고 있다. 이러한 바이러스 피해에 대하여, 바이러스의 침입을 가급적 저지하기 위하여, 바이러스를 발견하여 구제하는 소프트웨어의 개량 및 개발과 회선 제한(주소 제한) 설정을 하는 등의 대책이 세워지고 있다. 하지만, 신종 바이러스가 발견된 후 치료용 소프트웨어의 개발까지 시간이 오래 걸리는 것을 고려할 때, 바이러스의 침입을 확실하게 저지하는 것은 곤란하다. 또한, 전원을 공급 받아 정보처리장치가 구동하는 동안에 바이러스에 감염될 가능성도 고려될 수 있어, 이러한 기간 동안에 대하여 유효한 바이러스 대책이 요구되고 있다.
특허문헌 1에는 정보처리장치의 하드 디스크 내에 저장된 OS(Operation System) 구동 방법이 기재되어 있다. 보다 상세하게, 정보처리장치의 전원 투입이 검지되면 플래시 메모리에 기억되어 있는 BIOS(Basic Input/Output System)를 구동하여 구동 가능한 부팅 디스크를 검색하고, USB(Universal Serial Bus) 메모리에 격납되어 있는 부팅 OS를 구동하고, 우선, 표시 수단에 패스워드의 입력 화면을 표시시킨다. 다음으로, 상기 입력 화면에 대하여 입력 수단을 통해 패스워드를 입력받는다. 패스워드가 입력되면 입력 패스워드와 USB 메모리에 고유 정보를 연결하여 해시값으로 변환하고, 구동 대상인 하드 디스크의 잠금 해제 패스워드를 생성한다. 그리고, 구동하는 하드 디스크가 보안 설정이 완료되었다고 판단한 경우에는 상기 잠금 해제 패스워드로 상기 하드 디스크의 잠금 상태를 해제하는 한편, 상기 하드 디스크가 보안 설정이 완료되지 않았다고 판단한 경우에는 상기 하드 디스크의 보안을 설정하고 잠금 상태가 해제된 상기 하드 디스크의 MBR(Master Boot Record)을 구동시켜 OS의 부팅 로더를 구동함으로써 OS를 구동하는 방법이다. 이로써, OS 구동 시 보안 인증을 할 수 있게 된다. 또한, 특허문헌 1에는 상기 하드 디스크의 잠금 상태가 해제된 상태로 USB 메모리에 격납되어 있는 바이러스 체크 기능을 사용하여 바이러스를 체크함으로써 하드 디스크의 바이러스를 체크할 수 있는 기술이 기재되어 있다.
또한, 특허문헌 2에는, 구동 프로그램의 실행 방법이 기재되어 있다. 보다 상세하게, 퍼스널 컴퓨터로부터 하드 디스크에 대한 최초의 읽어 들임 요구에 대하여, 구동 프로그램을 격납하는 기억 매체의 구동 섹터에 우선하여 보안 프로그램 등의 임의의 프로그램을 격납한 가(假)구동 섹터를 읽어 내어, 해당 임의 프로그램을 실행시키는 구동 전처리 단계를 가진다. 또한, 상기 보안 프로그램 등의 임의 프로그램의 실행 후 본래의 구동 프로그램을 실행하여 OS를 구동시킨다. 이로써, 퍼스널 컴퓨터의 BIOS나 기억 매체의 구동 섹터(LBA0)를 변경하지 않고, OS 구동에 우선하여 보안 프로그램들의 임의의 프로그램의 실행을 가능하게 한다.
특허문헌1: 일본 특허 공개 공보 특개2007-66123호 특허문헌2: 일본 특허 공개 공보 특개2006-236193호
특허문헌 1은, 패스워드 입력 화면에 대하여 패스워드를 입력하는 형태를 하고 있어 패스워드를 도난 당할 위험이 있기 때문에, USB 메모리의 고유 정보와 결합하여 해쉬값을 작성하고,잠금 해제 정보로 사용하는 개인 인증 기술에 관한 것이다. 또한, 특허문헌 1에는 USB 메모리에 격납되어 있는 바이러스 체크 기능을 사용하여 바이러스를 체크함으로써 하드 디스크의 바이러스를 체크할 수 있게 하는 기술이 기재되어 있지만, 이와 관련하여 전혀 기재되어 있지 않다.
한편, 특허문헌 2는, 하드 디스크 내의 가구동 섹터의 임의의 프로그램이 바이러스 체크 프로그램인 경우라 할지라도, 그 프로그램이 실행되기 전에, 예를 들어 Rootkit의 형태를 가지는 등의 부정 프로그램이 구동되어, 임의의 프로그램으로부터 자신(부정 프로그램)을 은폐할 수 있기 때문에, 바이러스 체크에 대한 신뢰성에 어느 정도 한계가 있다. 또한, 특허문헌 2는 OS 구동 전에 바이러스를 감시하는 구체적인 방법이 전혀 기재되어 있지 않다. 전원 투입 전부터 잠복하고 있었던 바이러스를 설령 발견하였다고 하여도 재구동(OS 구동) 후에는 바이러스를 체크하지 않기 때문에 재구동 중에 침입한 바이러스에 대하여 여전히 무방비 상태에 놓여 있다. 더 나아가, 특허문헌 1 및 2는 퍼스널 컴퓨터 측에서 처리를 담당하는 일반적인 형태를 가지고 있기 때문에, 높은 신뢰성을 확보하기에는 한계가 있다.
또한, 근래 특허문헌 1에 기재된 구동 방법과 같이, 흔히 말하는 USB 메모리 부팅 방식이 알려져 있다. USB 메모리 부팅 방식은, USB 메모리를 단말기에 접속하여 단말기의 전원이 투입된 경우 BIOS로부터 USB 메모리가 우선적으로 지정되어 그 내부에 기록된 OS가 부팅되고, 예를 들어 직장에서 사용하는 단말기를 자신의 PC 환경 하에서 사용할 수 있도록 한 기술이다. 이러한 USB 메모리 부팅 방식의 다른 형태로서, 바이러스 치료 프로그램을 저장해 두어, 이를 우선적으로 구동시켜 단말기 내에 잠복하고 있는 바이러스를 치료할 수 있는 기술도 알려져 있다. 하지만, USB 메모리 자신의 바이러스 감염의 유무나 바이러스 치료 처리가 종료한 다음부터 OS가 구동할 때까지의 바이러스 침입의 유무에 관하여는 어떠한 언급되어 있지 않다.
본 발명의 목적은 바이러스 등의 멀웨어의 움직임을 억제하는 외부 부팅 기술을 제공하는 것이다.
또한, 본 발명의 목적은 구동 중 멀웨어에 관련된 이상 상태를 검출할 때 BIOS를 거치지 않고 정보처리장치를 재구동하는 기술을 제공하는 것이다.
본 발명에 따른 외부 부팅 장치는, CPU를 구비한 정보처리장치에 장착하여 상기 정보처리장치를 부팅하는 외부 부팅 장치로서, 상기 정보처리장치의 BIOS에 의해 우선하여 구동하도록 설정된 MBR이 기록된 기억 수단으로서, 상기 MBR은 로더를 읽어 내어 상기 정보처리장치의 구동 메모리 영역 상에 맵핑시키기 위한 것이고, 상기 MBR은 상기 정보처리장치의 구동 메모리 영역에 설정되어 있는 인터럽트 벡터 테이블에 대하여 스택 영역을 소정의 중첩 관계를 가지고 위치시키는 프로그램을 가지는, 기억 수단; 및 상기 MBR의 구동에 앞서, 상기 로더를 사전에 설정된 개수로 분할함과 동시에 각 분할 로더를 상기 구동 메모리 영역으로 로딩할 때의 맵핑 정보를 작성하는 분산 처리 수단;을 구비하는 것을 특징으로 한다.
또한, 본 발명에 따른 네트워크 통신 시스템은, 상기 외부 부팅 장치와, 상기 외부 부팅 장치를 통하여 상호 통신할 수 있도록 네트워크에 접속된 복수의 정보 처리 단말을 가진다.
또한, 본 발명에 따른 외부 부팅 프로그램은, 컴퓨터가 내장된 외부 부팅 장치가 CPU를 구비한 정보처리장치에 장착되어 상기 외부 부팅 장치에 의해 상기 정보처리장치를 부팅시키는 외부 부팅 프로그램으로서, 상기 정보처리장치의 BIOS에 의해 우선하여 구동하도록 설정된 MBR이 기록된 기억 수단으로서, 상기 MBR은 로더를 읽어 내어 상기 정보처리장치의 구동 메모리 영역 상에 맵핑시키기 위한 것이고, 상기 MBR은 상기 정보처리장치의 구동 메모리 영역에 설정되어 있는 인터럽트 벡터 테이블에 대하여 스택 영역을 소정의 중첩 관계를 가지고 위치시키는 프로그램을 가지는, 기억 수단; 및 상기 MBR의 구동에 앞서, 상기 로더를 사전에 설정된 개수로 분할함과 동시에 각 분할 로더를 상기 구동 메모리 영역으로 로딩할 때의 맵핑 정보를 작성하는 분산 처리 수단;으로서 상기 컴퓨터가 기능하게 하는 외부 부팅 프로그램이다.
또한, 본 발명에 따른 외부 부팅 방법은, CPU를 구비한 정보처리장치에 외부 부팅 장치를 장착하여 상기 외부 부팅 장치에 의해서 상기 정보처리장치를 부팅시키는 외부 부팅 방법으로서, 상기 정보처리장치의 BIOS에 의해 우선하여 구동하도록 설정된 MBR이 상기 외부 부팅 장치의 기억 수단에 기록되는 단계로서, 상기 MBR은 로더를 읽어 내어 상기 정보처리장치의 구동 메모리 영역 상에 맵핑시키기 위한 것이고, 상기 MBR은 상기 정보처리장치의 구동 메모리 영역에 설정되어 있는 인터럽트 벡터 테이블에 대하여 스택 영역을 소정의 중첩 관계를 가지고 위치시키는 프로그램을 가지는, MBR이 상기 외부 부팅 장치의 기억 수단에 기록되는 단계; 및 상기 외부 부팅 장치의 분산 처리 수단이, 상기 MBR의 구동에 앞서, 상기 로더를 사전에 설정된 개수로 분할함과 동시에 각 분할 로더를 상기 구동 메모리 영역으로 로딩할 때의 맵핑 정보를 작성하는 단계;를 특징으로 한다.
이들 발명에 따르면, 퍼스널 컴퓨터(PC) 등의 정보처리장치에 예를 들어 USB(Universal Serial Bus) 메모리 등의 외부 부팅 장치가 장착된 상태로, 정보처리장치에 전원이 들어오면 정보처리장치는 조작 가능한 상태가 되도록 CPU 등에 의해 구동(부팅)된다.
또한, 상기 외부 부팅 장치는 기억 수단을 구비하고, 상기 기억 수단에는 상기 정보처리장치의 BIOS에 의해 우선하여 구동하도록 설정된 MBR(Master Boot Rcord)이 기록되어 있다. MBR은 로더를 읽어 내기 위한 프로그램이다. 또한, MBR은 상기 정보처리장치의 구동 메모리 영역에 사전에 설정되어 있는 인터럽트 벡터 테이블에 대하여 스택 영역을 소정의 중첩 관계를 가지고 위치시키는 프로그램을 가진다. 또한, 상기 외부 부팅 장치의 분산 처리 수단은 상기 MBR의 구동에 앞서 상기 로더를 사전에 설정된 개수로 분할함과 동시에 각 분할 로더가 상기 구동 메모리 영역으로 로딩되는 때의 맵핑 정보를 작성한다.
따라서, 분할된 각 분할 로더는 구동 메모리 영역 내에 적절히 맵핑되면서 로딩된다. 한편, BIOS 내에 멀웨어, 예를 들어 바이러스(또한, 바이러스 본체는 하드 디스크(HDD) 내에 존재함)가 잠복하고 있는 경우, 바이러스는 BIOS의 구동 중 EFLAG 레지스트 내의 트랩 플래그(TF: Trap Flag)를 온(on)으로 하여 프로그램의 실행 순서를 싱글 스탭 모드로 함과 동시에, 인터럽트 벡터 테이블 내의 INT1의 내용을 자기의 바이러스 본체의 잠복 위치로 설정하여 대기한다. 그 후, CPU에 의해 BIOS가 구동하고, MBR에 제어가 옮겨지고, 분할 로더의 로딩이 개시된다. 바이러스는, 싱글 스탭 모드 중 어느 시점에서 MBR 프로그램에서 CPU의 동작 권한을 뺏어 가고, 이 때문에 바이러스의 복사, 데이터의 변경, 파괴 및 유출 등의 각종 악의적인 행위가 실행될 가능성이 있다. 본 발명은, 스택 영역을 인터럽트 벡터 테이블에 중첩시키고, 더 나아가 TF 프래그를 온으로 하여 스택 영역으로의 직전 회귀 정보의 기록을 수행하도록 함으로써, 바이러스가 동작하면 그 즉시 스택 영역의 정보가 갱신됨과 동시에 그 갱신 내용은 인터럽트 벡터의 내용이 갱신되는 것이 된다. 상기 스택 영역의 정보 갱신, 즉 인터럽트 벡터 테이블의 내용이 덮어 쓰여짐으로써, 바이러스 본체의 잠복 위치 정보가 소거되어, 바이러스의 동작이 완전히 억지되게 된다. 이와 같이, 외부 부팅에 의해 바이러스의 움직임이 억제된다.
또한, 본 발명에 따른 외부 부팅 장치는 상기 MBR의 구동 동작에 이상이 발생하였는지 여부를 감시하는 감시 수단과, 상기 이상이 검출된 경우 상기 정보 처리 단말기의 구동 메모리 영역으로 상기 MBR을 읽어 내는 재구동 수단을 구비하는 것을 특징으로 한다.
또한, 본 발명에 따른 외부 부팅 프로그램은 상기 MBR의 구동 동작에 이상이 발생하였는지 여부를 감시하는 감시 수단과, 상기 이상이 검출된 경우 상기 정보 처리 단말기의 구동 메모리 영역으로 상기 MBR을 읽어 내는 재구동 수단으로서 상기 컴퓨터를 기능시킨다.
또한, 본 발명에 따른 외부 부팅 방법은, 상기 외부 부팅 장치의 감시 수단이 상기 MBR의 구동 동작에 이상이 발생하였는지 여부를 감시하고, 상기 감시 수단에 의하여 이상이 검출된 경우 상기 외부 부팅 장치의 재구동 수단이 상기 정보 처리 단말기의 구동 메모리 영역으로 상기 MBR을 읽어 내는 것을 특징으로 한다.
이들 발명에 따르면, 상기 외부 부팅 장치의 감시 수단에 의해 상기 MBR의 구동 동작에 이상이 발생하였는지 여부가 감시된다. 또한, 상기 이상이 검출된 경우 상기 외부 부팅 장치의 재구동 수단에 의해 상기 정보 처리 단말의 구동 메모리 영역으로 상기 MBR이 읽혀 나가게 된다(로딩되게 된다). 따라서, 예를 들어, BIOS의 구동 중 잠복 바이러스가 동작하였고, 그 결과 MBR의 구동 동작에 이상이 발생한 경우 상기 이상이 검출되게 되면 BIOS를 재구동 하지 않고 MBR을 읽어 내어 구동 메모리 영역을 엎어 쓰도록 하여(리셋 하여) 구동 메모리 영역이 클리어 된다. 이와 같이, 멀 웨어가 검출되는 등의 이상이 검출되게 될 때, BIOS를 통하지 않고 정보처리장치가 재구동 되기 때문에, 재구동에 의하여 BIOS와 관련된 멀웨어가 구동 메모리 영역 상에서 배제된다.
본 발명에 따르면, 외부 부팅에 의하여 멀웨어의 움직임이 억제될 수 있다.
또한, 본 발명에 따르면, 구동 중 멀웨어와 관련된 이상을 검출할 때 BIOS를 거치지 않고 정보처리장치의 재구동을 실행할 수 있다.
도 1은 본 발명의 일 실시예에 따른 외부 부팅 장치가 적용된 네트워크 통신 시스템을 나타내는 개요도이다.
도 2는 도 1에 도시된 외부 부팅 장치의 하드웨어 구성의 일 실시예를 도시한 블록도이다.
도 3은 단말기 및 외부 부팅 장치의 부팅에 관련된 기능부를 도시한 블록도이다.
도 4는 단말기의 메모리 맵을 도시한 도면이다.
도 5는 스택 영역을 인터럽트 벡터 테이블에 중첩시키는 방법을 설명하는 도면이다.
도 6은 단말기의 CPU에 의해 실행되는 BIOS의 구동 처리 순서를 설명하는 플로우 차트이다.
도 7은 USB 메모리의 CPU에 의해 실행되는 로더의 분산 처리 순서를 설명하는 플로우 차트이다.
도 8은 단말기의 CPU에 의해 실행되는 MBR의 실행 처리 순서를 설명하는 플로우 차트이다.
도 9는 USB 메모리의 CPU에 의해 실행되는 감시 처리 순서를 설명하는 플로우 차트이다.
도 10은 USB 메모리의 CPU에 의해 실행되는 재구동 처리 순서를 설명하는 플로우 차트이다.
도 11은 단말기의 CPU에 의해 실행되는 재구동 처리 순서를 설명하는 플로우 차트이다.
도 1은 본 발명의 일 실시예에 따른 외부 부팅 장치가 적용된 네트워크 통신 시스템을 도시한 개요도이다. 도 2는 도 1에 도시된 외부 부팅 장치의 하드웨어 구성의 일 실시예를 도시한 블록 다이어그램이다. 도 3은 단말기 및 외부 부팅 장치의 부팅과 관련한 기능부를 도시한 블록 다이어그램이다. 도 4는 단말기의 메모리 맵을 도시한 도면이다.
도 1에 도시된 네트워크 통신 시스템은 예를 들어 퍼스널 컴퓨터를 내장하는 정보처리장치의 일 예인 단말기(1)와, 상기 단말기(1)에 접속된 외부 부팅 장치의 일 예인 USB(Universal Serial Bus) 메모리(2)와, 인터넷 등의 네트워크(3)를 구비하고 있다. 단말기(1)는 프로바이더(ISP)(4)를 통해서 네트워크(3)과 접속되어 있다. 본 실시예에서, 단말기(1)는 그 자체로 네트워크(3)에 연결되거나, 또는 USB 메모리(2)가 장착된 상태에서는, 후술되듯이 USB 메모리(2)를 경유하여 네트워크(3)와 접속되는 구성을 가진다. 네트워크(3) 상에는 복수의 ISP(4)가 배설되어 있고, 각 ISP(4)에는 하나 또는 복수의 단말기(1)나 각종 정보를 제공하는 웹 사이트(도시되지 않음)가 접속되어 있다. USB 메모리(2)는 예를 들어 단말기(1)에서의 조작을 통해서 소정의 서비스를 제공받을 수 있는 권한을 가지는 회원으로 등록 받았을 때에 지급된다. USB 메모리(2)는 내부의 기억부에 회원을 식별하는 정보 및 그 밖의 정보가 기록되어 있다. USB 메모리(2)의 구성 및 기능 등에 관해서는 후술하도록 한다.
단말기(1)는 컴퓨터를 가지고 있고, 도 3에서 도시된 바와 같이, 제어 수단으로서 CPU(Central Processing Unit)(10)를 가진다. CPU(10)는 ROM(Read Only Memory)(11)과 RAM(Random Access Memory)(12)에 접속되어 있다. ROM(11)에는 데이터가 변경될 수 있는 플래시 ROM을 포함한다. 본 실시예에서, ROM(11)은 상기 플래시 ROM, 또는 CMOS(Complementary Metal Oxide Semiconductor) 등을 구비하고, 플래시 ROM(110)(도 4 참조)에 BIOS(Basic Input/Output system)가 저장되어 있다. BIOS를 변경할 수 있도록 함으로써, 구동 시에 MBR(Master Boot Record)의 기억부에 대하여 읽어 내는 우선 순위를 설정할 수 있는 형태로 되어 있다. 또한, CPU(10)에서는, 도 3에 도시된 바와 같이, 조작자가 원하는 지령이나 정보를 입력하는 숫자 입력키 또는 마우스 등을 구비하는 조작부(13), 및 화상을 표시하는 표시부(14)가 접속되어 있다. 표시부(14)는 입력 정보의 확인을 위한 표시나 통신 내용의 표시를 위해 사용된다. 또한, 본 실시예에서, BIOS는 외부 부팅 장치인 USB 메모리(2)가 우선적으로 지정되도록 설정되어 있다. RAM(12)은, 예를 들어 구동 시의 작동 영역인 구동 메모리 영역(120), 통상 처리를 실행하는 경우의 작동 영역 및 필요한 프로그램이나 데이터 종류가 입력되는 하드 디스크(HDD)(121) 등으로 구성되어 있다.
또한, 단말기(1)에는 도 4에 도시된 바와 같이 칩 셋(15)이 구비되어 있다. 칩 셋(15)은 도시되지 않은 메인보드를 구성하는 주요 부품으로서, CPU나 각종 메모리, 그 밖의 하드 디스크(HDD(121), 도 4 참조)나 도시되지 않은 CD-ROM 등의 메인보드에 연결되어 있는 각종 부품 사이에서 데이터의 송수신을 제어한다.
본 네트워크(3)에서는 ISP(4)를 경유하여 하나 또는 소정의 수의 회원 서버(5) 및 복수의 거래처 단말기(6)가 접속되어 있다. 회원 서버(5)는 단말기(1)를 소유 또는 조작하는 회원에 관한 적절한 정보, 예를 들어 회원의 성명, 명칭, 이메일 주소, 주소 등의 회원 정보 등을 회원 단위로 기억한다. 거래처 단말기(6)는 클라이언트인 각 단말기(1)로부터의 거래 요구에 대한 처리, 예를 들어 전자 결제에 의한 처리의 거래 정보를 기억하고 정보 관리를 한다. 회원 서버(5)에는 상기 회원 정보 외에 필요에 따라서 단말기(1)에 제공 가능한 정보, 예를 들어 회원에 제공하는 서비스를 실행하는데 필요한 처리 소프트웨어, 예를 들어 필요 서류를 작성하기 위한 서류 작성 프로그램이나, 더 나아가 대용량 서버에 단말기(1)별로 거래 내용 및 이력 정보가 기억(보관 및 관리)되어 있어도 좋다.
또한, 본 발명에 따른 네트워크 통신 시스템은 이하의 실시예가 일 실시예로서 채용될 수 있다. 단말기(1)는 전용 네트워크에만 접속 가능한 전용 단말기라도 좋고, 인터넷과의 접속 전환을 통해 다른 네트워크에도 접속 가능한 범용 단말기 중 어느 것이어도 좋다. 단말기(1) 내에는 예를 들어 범용 단말기의 경우 일반적인 문서나 도형 작성 소프트웨어를 이용하여 정보의 작성, 가공, 기억, 더 나아가 통신용 소프트웨어를 이용하여 정보의 송수신 등의 일반적인 처리를 각각 실행하는 프로그램 파일(범용 AP(Application Program)이라 함)이 격납되어 있다. 또한, USB 메모리(2)에는 특정 어플리케이션 소프트웨어의 실행에 관련한 처리를 수행하는 프로그램 파일(특정 AP라 함)이 저장되어 있다. 범용 AP는 단말기(1) 내의 본래 MBR, 및 로더에 의해 읽혀지는 OS에 의해 동작될 수 있고, 특정 AP는 USB 메모리(2) 내의 MBR, 로더(또는 재구동 프로그램에 의해 구동된 MBR)를 통해 로딩되는 OS에 의해 동작 가능하게 된다. 보다 구체적으로, 회원인 소비자, 상점 및 기업 등의 단말기(1)에서는 특정 AP로서 상품이나 서비스의 판매, 재고 내지는 청구, 입출금에 관한 (소위 상거래에 관한) 각종 서류의 작성과 통신을 수행하는 소프트웨어, 및 필요에 따라서 소정의 인증 처리를 수행하는 소프트웨어가, 부팅 후 USB 메모리(2)에서 로딩된다. 즉, 단말기(1)는 특정 AP에 의하여 일반적인 상거래에서의 결재, 예를 들어 업자가 점포에서 청구서를 발행 및 수령하거나 구매자측으로부터 청구서 발생처의 계약 금융 기관의 계좌로의 입금(즉, 지급) 지시서, 이에 따른 수령서의 발행 외에, 전자 결제인지 여부를 불문하고 각종 전자 서면에서의 송수신 처리를 가능하게 만든다. 특정 AP는 각종 서류를 텍스트 형식의, 또는 바이터리 형식의 전자 파일로 작성할 수 있다. 전자 파일은 예를 들어 회원 서버(5)를 경유하여 (또는 병행하여) 단말기(1) 사이에서 송수신된다. 각 금융 기관의 단말기(1)에서는, 소비자나 기업의 단말기(1)로부터 온 금융과 관련된 결제 서면에 따른 결제 지시 처리(금융 기관 사이에서의 결제 처리의 지령 등)을 수행하는 특정 AP가 설치되어 있다. 단말기(1)에서는 등록 회원 마다 고유의 정보가 기록된 USB 메모리(2)가 배포된다. 회원은 서비스를 제공 받을 경우, 상기 USB 메모리(2)를 단말기(1)의 USB 포트에 집어 넣어, 적어도 USB의 정당성 인증 처리를, 바람직하게는 추가적으로는 개인 인증(USB 메모리(2)의 정당한 소유자라는 것에 대한 인증) 처리를 받는 것을 조건으로 한다.
회원 서버(5)는 각 회원의 파일 송수신 이력이나 상기 파일의 종류 등을 관리하기 위하여 정보를 기억하는 기억부를 구비하고 있다. 회원 서버(5)는 인증 기능을 구비하고 있어도 좋고, 이 경우 인증 기능은 회원 서버(5)와 단말기(1) 사이에서 주고 받는 파일, 즉 패킷을 열람하여 회원의 정당성의 유무를 인증하는 형태로 하여도 좋다.
또한, 본 네트워크 통신 시스템은 그 밖의 각종 적용예가 고려될 수 있다. 예를 들어, 비밀 정보를 작성, 보관 및 관리하는, 예를 들어 공적 내지 준공적인 기관(민간 기관 포함)인 단체 조직(국가, 자치 단체, 협회, 조합 등을 포함) 외에 있는 단말기(1)와의 사이에서 이루어 지는 정보 통신 및 관리 체제에 적용하는 실시예를 들 수 있다. 단체 조직의 바깥에 존재하는 단말기와의 사이에서 이루어 지는 정보 통신으로서는, 예를 들어 증명서의 발행 및 신청서의 발송 등이 고려될 수 있다.
또한, TCP/IP(Transmission Control Protocol / Internet Protocol) 규약에 따라 형성된 패킷에 의해 문서 파일의 송수신을 수행하는 경우, 수신한 패킷을 원래 파일로 되돌리거나 송신 예정의 파일을 패킷으로 치환하여 송신하거나 한다. 더 나아가, 송신된 각 패킷의 헤더에는 송신처인 단말기(1)의 글로벌 IP 주소 및 수신처인 타 단말기 및 회원 서버의 글로벌 IP 주소가 포함된다.
도 2에서 도시하는 NIC(Network Interface Card)(28)는 라우터에 장착되거나, 라우터와 직렬로 접속되어 있다. 상기 라우터는 예를 들어 송신 신호 내지 수신 신호인 각 패킷의 소정의 위치에 부가되어 있는 수신처를 나타내는 주소 정보가, 인터넷용의 규약에 기초한 글로벌 IP 주소 또는 상기 글로벌 IP 주소의 첨부 방법과는 상이한(글로벌 IP 주소와는 식별 가능한 형태인) 전용 네트워크 용의, 예를 들어, 이더넷(등록상표) 용 등에 준한 소정의 로컬 IP 주소(MAC 주소)를 식별하기 위한 주소 정보(루팅 테이블 또는 arp)(Address Resolution Protocol) 테이블)의 설정을 수행한다. 패킷은 테이블과 조합되어, 주소가 일치한 루트로만 송신되고, 이를 통해서 전송로를 인터넷 경유로 하는지 또는 전용 네트워크 경유로 하는지를 소프트웨어적으로 변환시킬 수 있다.
도 2에 있어서, USB 메모리(2)는 대략 직방체 형상의 관 모양의 몸체 안에 메인 보드(도시되지 않음)를 구비하고, 메인 보드 위에는 각종 회로 소자 및 반도체 소자가 탑재되어 있다. 허브(20)는 USB 메모리(2)의 입출력부에 설치되어, 단말기(1)의 USB 포트를 통해서 단말기(1)와 통신할 수 있도록 접속된다. USB 메모리(2)는 소정의 수의, 예를 들어 3 계통의 신호 라인을 가지고, 입출력부에는 각각 USB 컨트롤러(21)(211, 212, 213)가 설치되어 있다. USB 컨트롤러(21)는 입출력되는 신호의 레벨이나 파형을 형성한다.
USB 컨트롤러(211)에는, CPU(22)가 접속되어 있다. CPU(22)는 외부 부팅을 실행시키는 것으로서, 이를 위하여 소정의 처리 프로그램을 기억하는 ROM(23) 및 처리 내용을 일시적으로 격납하는 RAM(24)에 접속되어 있다. 또한, CPU(22)에는 ROM, 본 실시예에서는 플래시 ROM(25)가 접속되어 있다. 플래시 ROM(25)은 상술한 특정 AP인 어플리케이션 프로그램, 주변 장치를 동작시키는 드라이버라 불리는 프로그램 및 OS를 저장하는 각종 파일 기억부(251)와, 각종 파일 기억부(251)를 단말기(1)에 로딩 시키기 위한 프로그램인 로더를 저장하는 로더 기억부(252)를 가진다.
USB 컨트롤러(212)에는, ROM, 본 실시예에서는 플래시 ROM(26)이 접속되어 있다. 플래시 ROM(26)은 MBR을 기억하는 MBR 기억부(261)를 가진다.
USB 컨트롤러(213)에는 CPU(27)가 접속되어 있다. CPU(27)는 네트워크(3)를 통해서 타 단말기(1) 등과 통신을 수행하는 경우 정보 처리를 실행하는 구성으로서, 이를 위하여 소정의 처리 프로그램을 기억하는 ROM(271) 및 처리 내용을 일시적으로 격납하는 RAM(272)에 접속되어 있다. 또한, 상술한 바와 같이, 네트워크(3)와의 접속을 관리하는 NIC(28)는 도시되지 않은 라우터를 통해서 ISP(4)까지의 공중 통신 회선과 접속되어, 통신망 및 네트워크(3)에 대한 통신 제어를 수행한다. CPU(27)는 플래시 ROM(26)과 접속되어 있어, USB 메모리(2)가 단말기(1)에 접속된 상태에서, MBR 기억부(261)의 내용을 주기적으로 갱신할 수 있다. 갱신은 USB 메모리(2)가 단말기(1)에 접속될 때마다 1회(부팅 전후와 관계 없이)만 하여도 좋다. CPU(27)는 회원 서버(5)에 대하여 MBR의 갱신 요구를 발신하고, 상기 갱신 요구를 받아 회원 서버(5)로부터 NIC(28)를 통해서 새로운 MBR을 수신한다면, MBR 기억부(261)의 MBR을 상기 수신 내용으로 갱신한다.
MBR의 갱신 상태로서, 내용 갱신 외에, 갱신 요구 시 마다 암호 방법이 변경되는 형태로 하여도 좋다. 즉, 회원 서버(5)는 사전에 복수의 암호 및 복호 프로그램을 가지고 있어, 갱신 요구 시 마다, 소정의 규칙에 따라서 또는 무작위로 선정한 암호화 프로그램으로 암호화를 하여, 이에 대응하는 복호화 프로그램을 동시에 또는 시간적으로 조금 늦게 송신함으로써, CPU(27) 측에서 복호 작업을 하여, MBR 기억부(261)에 갱신적으로 기록하는 형태도 좋다. 이와 같이, 갱신에 의하여 MBR을 높은 빈도로 변경할 수 있다.
도 3에 있어서, 단말기(1)의 CPU(10)는, ROM(11) 및 RAM(12)에 기록된 프로그램을 실행함으로써, BIOS를 구동시키는 BIOS 처리부(101), MBR을 구동시키는 MBR 처리부(102), 로더를 구동시키는 로더 처리부(103), 구동 중에 이상이 발생한 경우 재부팅을 수행하는 재구동 처리부(104), USB 메모리(2)와의 사이에서 정보를 주고 받는 입출력 처리부(105), 외부 부팅에 의한 구동 후에 특정 AP를 사용하여 또는 통상 부팅에 의한 구동 후에 범용 AP를 사용하여 문서 작성 및 그 밖의 각종 처리를 실행하는 정보 처리부(106), 및 NIC나 네트워크를 통해서 타 단말기(1), 회원 서버(5) 및 거래처 단말기(6) 사이에서 정보를 주고 받는 네트워크 통신 처리부(107)로서 기능한다.
BIOS 처리부(101)는 단말기(1)로부터 전원을 공급 받아서, 메모리나 주변 기기의 상태를 체크한다. BIOS 프로그램의 가장 마지막 부분은 OS 구동 루틴으로 되어 있어, 상기 BIOS 구동 루팅에 의해서, 부팅 순서, 다시 말해서 우선적으로 구동하도록 설정되어 있는 선두 위치에 기록되어 있는 MBR이 읽혀 진다. USB 포트에 USB 메모리(2)가 장착되어 있는 경우, 우선 순위에 따라서 BIOS 구동 루틴에 의해 MBR의 마스터 부트 프로그램(부팅 스트랩 로더)이 RAM(12)의 구동 시의 워크 영역인 소정의 기억 용량, 여기서는 주소 라인(20) 비트 방법, 다시 말해서 약 1MByte의 구동 메모리 영역에 읽혀 들어간다. 또한, USB 포트에 USB 메모리(2)가 장착되어 있지 않은 경우에는, BIOS 처리부(101)에 의해서 우선 순위의 내림차순에 따라서 예를 들어 HDD(121)에서 MBR의 프로그램이 읽혀 나간다.
BIOS 처리부(101)는 USB 포트에 USB 메모리(2)가 탑재되어 있는 경우, BIOS 구동 루틴에 의해 USB 메모리(2)의 MBR 기억부(261)로부터 MBR의 마스터 부트 프로그램(부팅 스트랩 로더)을 RAM(12)의 구동 메모리 영역(120)으로 읽어 들인다. 그 후, 정상이라면, 다음으로, 읽어 들인 마스터 부트 프로그램으로 제어가 넘겨지게 된다.
MBR 처리부(102)는 읽어 들인 마스터 부트 프로그램에 의해 로더 기억부(252)의 파티션 테이블을 체크하여, 액티브한 상태의 기본 파티션을 검색하고, 상기 파티션의 선두 위치에 있는 파티션 부트 섹터(PBS)를 읽어 들이는 처리를 수행한다. 파티션 부트 섹터는 OS에 따라서 사전에 포맷을 할 때 작성되는 것으로서, 상기 파티션에 인스톨되는 OS 등을 구동하기 위한 부팅 프로그램(이니셜 프로그램 로더:IPL)과 상기 파티션 정보가 저장되어 있다. MBR 처리부(102)는 마스터 부트 프로그램에 의해 상기 IPL을 읽어 들여, 이후 IPL에 제어를 넘겨준다. IPL은 로더 기억부(252)의 최초 기본 파티션 중에서, OS 등을 구동하기 위한 로더를 검색하고, 메모리에 읽어 들여, 로더에 제어를 넘긴다. 또한, 여기서는 이들 일련의 처리를 MBR 처리부(102)가 실행하도록 한다.
또한, 로더는 사전에 복수로 분할된다. 따라서, MBR 처리부(102)는 각 분할 로더를 구동 메모리 영역(120)에 분산 배치(맵핑)시키기 위하여, 맵핑 위치 정보를 USB 메모리(2)에 차례로 요구하고, 이들에 따라서 맵핑 위치 정보를 순차적으로 취득한다.
또한, MBR 처리부(102)는 멀웨어의 움직임을 억제하기 위한 처리를 수행한다. 도 4에 있어서, 마스터 부트 프로그램은, (i) 구동 메모리 영역(120) 내에 있어서, 사전에 BIOS에 의해 작성된 인터럽트 벡터 테이블(1202)의 설정 영역에 스택 영역(1203)을 중첩시켜서, (ii) 칩셋(15) 내 EFLAGS(152)의 트랩 플래그(TF)를 세팅하도록 되어 있다.
로더 처리부(103)는 로더에 의해 OS 등의 구동에 필요한 드라이버 등의 파일을 각종 파일 기억부(251)에서 RAM(12)의 구동 메모리 영역(120)으로 로드한다. 또한, OS 등을 구동시키기 위한 준비를 수행하면서, OS 등의 커널(kernel)을 구동시킨다. 이와 같이 OS 등이 구동된 이후, 제어가 넘겨진 로더에 의해 특정 AP가 RAM(12)으로 읽혀 들어간다. 더 나아가, 읽혀 들어간 특정 AP 내의 통신 제어 프로그램에 의해서, 상술한 라우터(도시되지 않음)에 대하여, 회원의 단말기(1) 등의 사이에서 이루어지는 통신을 허가하는 라우팅 설정이 가해진다. 또한, 이 상태는, 단말기(1)에 로드된 특정 AP에 의해, 또는 USB 메모리(2)의 CPU(22)에 의해 단말기(1)에 USB 메모리(2)가 장착되어 있는지 아닌지를 주기적으로 체크하여, 장착 상태가 계속되어 있는 동안에, 유지되도록 하는 것이 바람직하다. 또는, 단말기(1)에 있어서, 구동 후에 USB 메모리(2)가 뽑혀졌다는 사실을 나타내는 신호가 검출될 때까지, 장착이 유지되고 있다고 간주하여도 좋다.
한편, 단말기(1)는, BIOS에서 시작하여 구동하고 있는 동안에 이상이 감지된다면, MBR 처리부(102)에 의해서 멀웨어가 존재하는 가능성이 높다고 간주하여, 구동 동작을 정지하도록 되어 있다. 한편, 이와 같이 구동을 정지한다면, 일률적으로 단말기(1)가 시작되지 않고, 특정 AP의 사용 환경을 화원에 제공할 수 없다는 문제가 있다.
따라서 본 발명의 경우, 재구동 처리부(104)는 이상이 발생한 경우에 BIOS를 경유하지 않고 MBR 기억부(261)로부터 MBR의 마스터 부트 프로그램을 직접적으로 읽어 내어 재구동 동작을 실행하도록 되어 있다.
이 경우, MBR의 마스터 부트 프로그램을 덮어쓰는 형태로 하여도 좋지만, 이상 상태의 발생을 검지하여, 구동 메모리 영역(120) 또는 후술하는 EFLAGS(152)(도 4 참조)를 초기화한 후, MBR의 마스터 부트 프로그램을 구동 메모리 영역(120)으로 읽어 내도록 하는 것이 바람직하다.
입출력 처리부(105)는 USB 메모리(2)와의 사이에서 정보를 주고 받는 처리를 수행한다.
다음으로, 도 3에 있어서, CPU(22)는, ROM(23)에 기억된 프로그램을 실행함으로써, 로더의 분산 배치(맵핑) 처리를 수행하는 분산 처리부(221), 구동 중에 이상 발생을 검출하는 감시부(222), 이상 발생 후에 재구동을 실행하는 재구동 처리부(223), 로더를 단말기(1)로 읽어 내는 처리를 수행하는 로더 처리부(224), 단말기(1)와의 사이에서 정보의 주고 받음을 처리하는 입출력 처리부(225), 및 외부 부팅에 의한 구동 후에 특정 AP를 사용하여 작성된 파일 등을 NIC(28), 네트워크(3)를 통해서 타 단말기(1), 회원 서버(5) 및 거래처 단말기(6)의 사이에서 주고 받는 네트워크 통신 처리부(226)로서 기능한다.
분산 처리부(221)는 프로그램인 로더를 소정의 복수 개로 분할하는 처리, 각 분할 로더에 대하여 맵핑 정보(구동 메모리 영역(120) 상에서의 맵핑 위치 정보(DI) 및 맵핑 순서 정보(CX) (CX=1, 2, ... , 분할 수))를 대응시켜 RAM(24)에 저장하는 처리, 및 단말기(1)로부터 읽어 내기 요구를 받아서 출력하는 처리를 수행한다. 또한, RAM(24)에 기억된, 각 분할 로더와 맵핑 정보(구동 메모리 영역(120) 상에서의 맵핑 위치 정보(DI) 및 맵핑 순서 정보(CX) 사이의 대응 정보는, 후술하는 감시 처리에서의 대조 기초 정보로서 사용된다.
감시부(222)는 분할 로더의 맵핑 시마다 맵핑 처리가 적정한지 아닌지를 감시하는 처리를 수행하는 것으로서, 단말기(1)로부터 맵핑 요구로서 보내지는 정보와 RAM(24)에 기억되어 있는 대조 기초 정보가 동일한지 상이한지를 비교함으로써 판단한다. 정상으로 판단되는 동안에는 구동 동작이 계속되는 한편, 이상으로 판단되면 재구동한다.
재구동 처리부(223)는 감시부(222)에 의해서 이상으로 판단되거나 단말기(1)로부터 재구동 지시가 있다면 MBR 기억부(261)로부터 MBR의 마스터 부트 프로그램을 직접 읽어 내어 구동 메모리 영역(120)에 출력한다.
로더 처리부(224)는 로더의 분할 정보에 따라서 로더로부터 대응하는 분할 로더 부분을 단말기(1) 측에 출력한다.
ROM(23)은 각 처리부(221 내지 226)에서의 처리를 실행시키기 위한 처리 프로그램을 기억하는 처리 프로그램 기억부(231), 및 상술한 회원을 식별하기 위한 정보를 기억하는 회원 정보 기억부(232)를 구비한다. RAM(24)은 상술한 대조 기초 정보를 기억하는 대조 기초 정보 기억부(241)를 구비한다.
이와 같이, USB 메모리(2)로부터의 프로그램 파일의 읽어 내기 처리는 CPU(22)가 담당하고, 단말기(1) 측에서의 로드 중의 처리 및 로드 후의 처리는 단말기(1)의 CPU(10)가 담당하도록 되어 있다.
다음으로, 도 4에 관하여 설명한다. 칩셋(15)은 CPU(10), 및 각종 레지스터, 예를 들어 처리 데이터를 일시적으로 보관하기 위한 범용 레지스터(151), CPU(10)의 연산 상태를 나타내는 수치인 스테이크스 레지스터의 일종인 EFLAGS(152), 그 외에 도시되지 않은 각종 레지스터 등을 구비하고 있다. 또한, 도 4에서 도시되듯이, 구동 메모리 영역(120)은 USB 메모리(2)로부터 읽어 내진 MBR의 마스터 부트 프로그램의 전개 영역(이하, MBR 전개 영역이라 함)(1201), 인터럽트 벡터 테이블(interrupt vector table)(1202), 스택(stack) 영역(1203), 및 로더 등을 전개하는 프로그램 전개 영역(1204)을 가진다.
인터럽트 벡터 테이블(1202)란, 인터럽트가 발생하는 경우 처리하는 프로그램의 선두의 주소가 격납되어 있는 대응표를 말하며, 테이블의 내용에 의해 인터럽트에 대응한 처리가 실행된다. 인터럽트 벡터 테이블(1202)은, 예를 들어 상위, 하위 각 16 비트로 이루어진 벡터를 복수 개 가지며 구성되어 있다. 각 벡터는 각 처리 프로그램에 대응하고, 예를 들어 벡터(0)는 외부로부터의 인터럽트를 수행하기 위한 INT0이고, 벡터(1)는 INT1이고, 벡터(2)는 INT2이고, 벡터(6)는 무효 오퍼레이션 코드이다. INT 명령의 벡터 영역에는, 인터럽트가 발생한 때에 천이 목적지가 되는 주소, 즉 실행하여야 할 프로그램이 기록되어 있는 주소가 기록되어 있다. 또한, 벡터(6)에는 무효 오퍼레이션 코드의 처리를 실행하기 위한 주소가 기록되어 있어, 상기 주소 위치에는 본 실시예에 있어서, USB 메모리(2)에 재구동 지시 신호를 출력하기 위한 프로그램이 기록되어 있다.
스택 영역(1203)이란, 인터럽트 처리 등을 수행하는 경우, CPU(10)의 레지스터의 내용을 일시적으로 퇴피시켜 두기 위하여 사용하는 메모리 영역으로서, 복수의 내용이 기억될 수 있는 스택 길이를 가지고 있다. 각 내용은 본 실시예에서 16비트로 기록될 수 있도록 되어 있다. 스택 영역(1203)은, 초기 상태에서는 크기가 0이고, 메모리 상의 고정 지점(베이스 포인터(BP)) 및 기록에 따라서 (주소가 작은 쪽으로) 뻗은 쪽의 참조 위치(스택 포인터(SP))로 규정된다. 스택 영역(1203)은, EFLAGS(152)의 트랩 플래그(TF)가 셋팅되어, CPU(10)의 동작이 싱글 스탭 모드로 이행한 경우에 인터럽트 직전의 명령 내용과 관련된 EFLAG, 프로그램 내용 및 그 주소(EFLAG, CS, IP)를 나타내지만, 16비트로 기록되어 일시적으로 퇴피되도록 하기 위한 것이다. 또한, 본 실시예에서는, EFLAG, CS, IP의 기록은 축척되지 않고, 매번 베이스 포인터(BP)로부터 수행되도록 설정되어 있다. 상세한 내용은 후술하도록 한다.
프로그램 전개 영역(1204)은 로더가 맵핑할 수 있는 메모리 영역을 말한다. 즉, RAM(12) 내의 구동 메모리 영역(120)으로서, 상기 영역(1201 내지 1203)을 제외한 영역이다. 분할 로더는 맵핑 위치 정보(DI)에 따라서, 도 4에 도시된 바와 같이, 예를 들어 R1, R2, ... , Rn, ... , Rcx와 같이 분할 수 만큼만 분산 위치(전개)된다. 또한, 분할 로더에 적정 수의 더미 데이터를 추가하는 형태도 좋다. 이 경우, 분산 처리부(221)는 더미 데이터를 포함하여 맵핑 위치 정보(DI), 맵핑 순서 정보(CX)를 설정하면 좋다. 또한, 분할 로더는 예를 들어 최종 비트 위치에 다음 맵핑 위치 정보(DI)가 기록되어 있어, 상기 정보(DI)를 순차 참조함으로써 로딩 후에 본래 로더에 합성된다. 이 경우, 더미 데이터에는 그 취지의 정보가 기록되어 있다면 합성 시에 제거하는 처리가 가능하게 된다.
도 5는 스택 영역(1203)을 인터럽트 벡터 테이블(1202)에 중첩하는 방법을 설명하는 도면이다. 스택 영역(1203)에는 인터럽트 직전의 명령 내용에 관한 EFLAG, CS, IP가 베이스 포인터(BP)로부터 기록된다. 여기서, 상기 베이스 포인터(BP)의 위치가 도면의 화살표에서 나타내는 바와 같이 인터럽트 벡터 테이블(1202)의 벡터(2)의 상위 비트의 위치에 일치하도록 스택 영역(1203)을 위치 설정한다. 따라서, 스택 영역(1203)에 EFLAG, CS, IP을 기록하는 것은, 도 5에 도시된 바와 같이, 인터럽트 벡터 테이블(1202)의 벡터(2)의 상위 비트에 FLAG가, 벡터(1)의 하위 비트에 CS가, 벡터(1)의 상위 비트에 IP가 기록되게 된다. 한편, 벡터(1)는 외부 인터럽트 목적지가 되는 주소를 나타내는 것이기 때문에, 인터럽트가 발생한 CPU(10)가 벡터(1)를 참조하여, 제어가 벡터(1)에 기록되어 있는 주소의 프로그램으로 이행하게 된다면, 스택 영역(1203)에 그 직전의 명령 내용인 EFLAG, CS, IP가 퇴피하여 기록된다. 즉, 인터럽트 벡터 테이블(1202)의 벡터(1)에는 IP, CS의 주소 정보가 기록되게 된다. 벡터(1)에는 그 상위 비트(IP)가, 하위 비트에 CS가 기록되게 된다. 따라서, 그 주소는 구체적으로 IP * 16 + CS가 된다.
즉, 지금 BIOS에 멀웨어가 잠복(또는 BIOS의 구동 중에 외부로부터 침입) 등을 하고 있다고 가정하여, BIOS 구동시에 멀웨어가 동작하여 EFLAGS(152)의 플래그(TF)를 세팅하고, 인터럽트 벡터 테이블(1202)의 벡터(1)에 바이러스 본체가 존재하는 주소가 기록되는 경우를 가정한다. BIOS 구동 후, 전형적으로는 MBR 구동 중에 또는 명령이 실행되고 난 후에, CPU(10)의 제어가 멀웨어에 탈취당했다(멀웨어에 의한 디버그 인터럽트가 발생하였다)고 가정한다. 이 때, 제어는, 벡터(1)에 기록되어 있는 주소로 천이하고, 멀웨어에 의한 동작(멀웨어의 복제, 데이터 변경 또는 파괴 등)이 실행되게 된다. 한편, 멀웨어의 인터럽트에 의하여, 스택 영역(1203), 즉 인터럽트 벡터 테이블(1202)의 벡터(1)에는 직전의 명령 내용을 나타내는 내부의 정보 IP, CS가 기록되게 된다. 따라서, 벡터(1)에 원래 기록되어 있었던 멀웨어의 격납 위치를 나타내는 주소는 덮어 쓰여지게 되어, 소거되게 된다. 즉, 멀웨어는 BIOS 구동 중에 작동하려는 상태에 있게 되어, MBR 구동 후에 한 번이라도 동작하게 되는 순간, 잠복하고 있는 주소를 잃어 버리게 되어 그 후 동작이 억지되게 된다.
이하, MBR의 마스터 부트 프로그램의 일 예에 관하여 설명한다. 마스터 부트 프로그램은,
(1) 인터럽트 벡터 테이블(1202)의 벡터(6)의 주소를 재구동 처리의 프로그램이 기록된 주소로 세팅한다.
(2) 스택 영역(1203)을 인터럽트 벡터 테이블(1202)의 벡터(1)과 벡터(2)의 상위 주소로 세팅한다(중첩한다).
다음으로,
(3) USB 메모리(2)로 다음 분할 로더의 데이터 요청을 출력한다.
(4) USB 메모리(2)로부터 분할 로더를 취득한다.
(5) 취득한 분할 로더를 구동 메모리 영역(120)에 맵핑한다.
그리고, LOOP 명령에 의해서, (3) ~ (5)의 처리가 모든 분할 로더의 로딩 처리에 대하여 완료할 때까지 반복한다.
여기서, (1) 및 (2)의 처리를 수행하여 둠으로써, 다음에 멀웨어에 의한 디버그 예외가 발생한 때에, 이하의 처리가 실행된다. 즉, 멀웨어에 의한 디버그 예외가 발생하였다면, 벡터(1)의 주소가 스택된 정보에 덮어 쓰여지기 때문에, 의도하지 않은 주소(=IP * 16 + CS)가 세팅된다. 그리고, 멀웨어의 동작이 종료하여, 제어가 덮어 쓰여진 벡터(1)의 주소(IP * 16 + CS)에 천이하여, 무효 오퍼레이터 코드의 예외를 발생시킨다. 이렇게 되면, 제어는 무효 오퍼레이터 코드 예외를 규정하는 벡터(6)로 천이하게 된다. 따라서, 제어는 벡터(6)에 세팅되어 있는 주소의 재구동 처리 프로그램으로 천이하기 때문에, 재구동 지시가 내려지게 된다. 이와 같이, 일단 멀웨어에 의한 디버그 예외가 발생한다면, 멀웨어의 소재를 규정하는 주소가 소멸함으로써 동작이 억지된다. 또한, 이러한 이상 상태를 검출함으로써, 재구동이 이루어지기 때문에, 멀웨어 자체를 소거할 수 있게 된다.
계속해서, 마스터 부트 프로그램은,
(6) 트랩 플래그(TF)를 세팅한다. 보다 구체적으로는, 칩셋(15)의 EFLAGS(152) 내의 트랩 플래그(TF)에 1을 세팅한다. 트랩 프래그(TF)를 세팅함으로써, 다음 번 어셈블러 명령 실행 시 디버그 예외가 발생한다.
(7) 천이(점프) 명령에 의하여, 스택 영역(1203)에 임의의 주소가 세팅된다. 그리고, 그 주소 IP : CS로부터 제어를 로더로 넘긴다.
상기 점프 명령이란, 주소 IP(다음 번 실행 예정 주소)를 세팅하는 명령이다. (6)에서 트랩 프래그(TF)가 세팅되어 있기 때문에, 본 점프 명령으로 스택 영역(1203)에 스택이 쌓인다. 쌓인 내용은, [IP], [CS] 및 [FLAGS]이다. 쌓인 IP : CS로 표시되는 주소는, 벡터(1)(디버그 예외 발생 시의 벡터)로 되기 때문에, 세팅된 IP : CS는 벡터(1)의 주소로서 처리가 수행된다.
계속해서, 도 6 내지 도 11에 기초하여, CPU(10), CPU(22)에서의 부팅 처리를 설명한다. 도 6은 단말기(1)의 CPU(10)에 의해 실행되는 BIOS의 구동 처리의 순서를 설명하는 플로우 차트다. 우선, 단말기(1)의 전원이 들어오고(단계(S1)), 즉 메인 보드 상의 클럭 생성기가 전원 공급을 받아 클럭 펄스를 출력하기 시작하면, 메모리나 주변 기기의 장치를 체크한다(단계(S3)). 다음으로, USB 포트에 USB 메모리(2)가 장착되어 있는지 여부가, 예를 들어 공지의 핸드 쉐이크 신호를 주고 받는 등의 방법을 이용하여 확인된다.
또한, 이후 단말기(1)의 USB 포트에 USB 메모리(2)가 장착되어 있다는 것을 전제로 설명한다. 즉, USB 포트에 USB 메모리(2)가 장착되어 있다면, 우선 순위에 따라서 BIOS 구동 루틴에 의해 MBR의 마스터 부트 프로그램이 RAM(12)의 구동 메모리 영역(120)에 읽혀 들어간다(단계(S5)).
계속해서, 이상의 유무가 판단된다(단계(S7)). 이상이란, MBR의 마스터 부트 프로그램을 읽어 들이는 중에 일어나는 멀웨어 등의 활동을 말한다. 이상이 없다면, MBR의 마스터 부트 프로그램을 읽어 들이는 처리가 종료하였는지 여부가 판단되어(단계(S9)), 종료하였다면, MBR의 마스터 부트 프로그램에 제어가 넘어간다(단계(S11)). 한편, MBR의 마스터 부트 프로그램의 읽어 들임 처리가 완료되지 않았다면, 단계(S5)에 돌아가서 동일한 처리를 반복한다. 또한, 단계(S7)에서, 이상이 있다고 판단된 경우, 이상에 따른 이상 대응 처리가 실행된다(단계(S13)).
도 7은 USB 메모리(2)의 CPU(22)에 의해 실행된 로더의 분산 처리의 순서를 설명하는 플로우 차트다. 우선, 단말기(1)의 USB 포트를 통해서 전원 공급을 받아, USB 메모리(2)가 구동하였는지 여부가 판단된다(단계(#1)). 이 판단은 예를 들어 도시되지 않은 클럭 생성기로부터 오는 클럭 펄스의 발생을 검출함으로써 이루어지는 형태여도 좋다.
USB 메모리(2)가 구동한다고 판단된다면, 로더의 분산 처리가 실행된다(단계(#3)). 로더의 분산 처리는, USB 메모리(2)의 회원 정보 기억부(232)에 기록되어 있는 회원 정보를 고유 정보로서 이용하여, 프로그램인 로더를 필요한 수로 분할하는 처리, 분할 로더의 읽어 내기 순서인 맵핑 순서 정보(CX)와 RAM(12)의 구동 메모리 영역(120) 상의 주소(맵핑 위치 정보)(DI)를 설정하는 처리, 및 이들을 대응시켜 대조 기초 정보 기억부(241)에 기억하는 처리이다. 또한, 필요에 따라서, 사전에 준비된 더미 데이터를 도중에 혼재시키도록 하여도 좋다.
이와 같이, USB 메모리(2)가 단말기(1)에 장착된 상태로 단말기(1)의 전원이 투입되는 때마다, 로더의 분산 처리 내용을 고유 정보를 이용하여 변동시킴으로써, 고정식의 경우에 비해서 비밀성을 높일 수 있게 된다. 또한, 로더의 분산 방식은 고유 정보 외에 구동 시의 날짜 정보나 구동 회수 등의 각 요인을 포함한 소정의 규칙에 따라서 설정하여도 좋다. 또는, 무작위 수 발생기로부터의 무작위 수 등을 이용하여 무작위로 설정하는 방법도 좋다. 또한, 각 분할 로더가 구동 메모리 영역(120) 상에서, 그 중 일부가 겹쳐지는 일이 없도록 데이터 길이를 고려하여 맵핑 영역이 설정된다.
도 8은 단말기(1)의 CPU(10)에 의하여 실행되는 MBR의 실행 처리의 순서를 설명하는 플로우 차트이다. 우선, 인터럽트 벡터 테이블의 벡터(6)에 기록된 (천이 목적지를 나타내는) 주소가, [리셋 처리]의 프로그램이 기록된 주소에 세팅된다(단계(S21)). 다음으로, 스택 영역(1203)의 구동 메모리 영역(120) 상에서의 주소(베이스 포인트(BP))가 벡터(2)의 상위 주소와 일치하도록 세팅된다(단계(S23)).
계속해서, USB 메모리(2)로 데이터 요구 등이 출력된다(단계(S25)). 또한, 분산 2회차 이후의 각 회차에 있어서, 직전의 분산 정보가 데이터 요구와 함께 USB 메모리(2)에 되돌려진다. 여기서, USB 메모리(2) 측에서는, 수신한 분산 정보와 대조 정보 기억부(241)에 기억되어 있는 대조 기초 정보가 동일한지 상이한지에 대한 판단을 수행하고, 불일치한다면 이상 신호가 단말기(1) 측에 출력된다.
CPU(10)는 USB 메모리(2)로부터 이러한 이상 신호의 입력을 수신한다면(단계(S27)에서 Y), 로더의 처리 실행을 중지한다(단계(S29)).
한편, 이상 신호를 대신하여, USB 메모리(2)로부터 분할 로더, 해당 맵핑 위치 정보(DI) 및 맵핑 순서 정보(CX) (첫번째 회차라면 CX=1)가 입력된다면(단계(S31)), 분할 로더가 구동 메모리 영역(120) 상의 주소(DI)에 로딩(맵핑)된다(단계(S33)). 분할 로더의 1회 로딩마다, 맵핑 순서 정보(CX)가 분산 처리 시의 분할값에 도달하였는지 여부가 판단되고(단계(S35)), 분할값에 도달하지 않았다면 LOOP 명령을 반복하여 단계(S25)에 되돌아가 동일한 분할 로더의 입력 처리를 반복한다. 한편, LOOP 명령이 종료하였다고 판단된 경우, 트랩 플래그(TF)가 세팅된다(단계(S37)). 다음으로, 점프 명령에 의해 스택 영역에 임의의 주소가 세팅된다(단계(S39)). 계속해서, 재구동 요구가 발생하였는지 여부의 판단이 이루어진다(단계(S41)). 재구동 요구가 발생하지 않는다면, 읽혀진 로더로 제어가 넘어간다(단계(S43)). 한편, 재구동 요구가 발생한 경우에는, 재구동 요구가 USB 메모리(2)에 출력된다(단계(S45)).
도 9는 USB 메모리(2)의 CPU(22)에 의해 실행되는 감시 처리의 순서를 설명하는 플로우 차트이다. 우선 단말기(1)로부터 데이터 요구, 직전의 분산 정보가 입력되었는지 여부가 판단된다(단계(#11)). 데이터 요구 및 직전의 분산 정보가 입력되지 않는다면, 본 플로우를 통과하고, 데이터 요구 및 직전의 분산 정보가 입력된다면, 직전의 분산 정보에 대응한 분산 정보와 대조 기초 정보가 동일한지 상이한지가 대조된다(단계(#13)). 대조 결과가 일치한다면(단계(#15)에서 Y), 다음 맵핑 위치 정보(DI), 맵핑 순서 정보(CX) 및 대응하는 분할 로더가 단말기(1)에 출력된다(단계(#17)). 한편, 대조 결과가 불일치한다면, 이상 신호가 단말기(1)에 출력되고(단계(#19)), 재구동 처리가 실행된다(단계(#21)).
또한, 재구동 처리란, MBR 구동 중에 분할 로더의 실제 맵핑 위치가 대조 기초 정보와 일치하지 않은 상태가 발생한 경우, 그 원인이 후술하게 될 멀웨어가 관련되어 있다고 간주하여, 현재 MBR의 구동 동작을 중지하고, BIOS를 경유하지 않고 직접 MBR 기억부(261)로부터 MBR의 마스터 부트 프로그램을 읽어 내는 구동을 처리하는 것을 의미한다.
어떤 분할 로더가 구동 메모리 영역(120)으로 맵핑 처리를 할 때, 멀웨어에 의한 디버그 인터럽트가 발생한다. 이 경우, CPU(10)에 의해 실행되는 명령이 기록되어 있는 주소는 멀웨어가 기록되어 있는 주소라 할 수 있기 때문에, 이러한 멀웨어가 관련하는 주소는 분할 로더의 맵핑 위치 정보(DI)와는 상이하게 된다. 그 결과, 단말기(1)로부터 되돌아 온 위치 정보(DI)는 명백하게 대조 기초 정보와는 일치하지 않는다. 따라서, 감시부(222)는 단말기(1)로부터 송신되어 오는 정보와 대조 기초 정보 사이의 불일치를 검출하게 되면, RAM(12) 내에 멀웨어가 존재한다고 간주하여, BIOS를 경유하지 않고 MBR의 마스터 부트 프로그램의 구동을 지시하도록 한다.
도 10은 USB 메모리(2)의 CPU(22)에 의해 실행되는 재구동 처리의 순서를 설명하는 플로우 차트이다. 우선, 이상 신호 발생 및 재구동 지시의 유무가 판단된다(단계(#31)). 이 중 어느 것도 아니라면, 본 플로우를 통과하게 되며, 만약 이상 신호 발생이나 재구동 지시 중 어느 하나가 발생한 경우, CPU(22)는 MBR 기억부(261)로부터 MBR의 마스터 부트 프로그램을 읽어 내어 단말기(1)의 RAM(12)에 출력한다(단계(#33)).
도 11은 단말기(1)의 CPU(10)에 의해 실행되는 재구동 처리의 순서를 설명하는 플로우 차트이다. MBR의 마스터 부트 프로그램의 재구동이 개시되면, 우선 재구동 메모리 영역(120)이 초기화 된다(단계(S51)). 이로써, 설령 멀웨어가 존재한다고 하여도 소거되게 된다.
다음으로, 더 나아가 MBR의 마스터 부트 프로그램이 기록되고(단계(S53)), 기록이 종료하면 제어가 MBR로 옮겨지고(단계(S55)), 도 8에서 도시된 바와 같이 MBR이 실행된다(단계(S57)).
본 발명은 이하의 실시예를 채용할 수 있다.
(1) 본 실시예에서는, 외부 장치로서 USB 를 채용하고 있지만, 이에 한정되지 않고 적어도 CPU, ROM 및 RAM을 내장하는 장치라면 관계없다. 예를 들어, IC 카드나, 휴대형의 통신 기기에 내장된 형태라도 좋다.
(2) 또한, 재구동시 읽혀지는 MBR의 마스터 부트 프로그램은 BIOS 구동에 기인하여 읽혀지는 경우의 프로그램과 동일하여도 좋지만, 상이하여도 좋다. 예를 들어, MBR 기억부(261)에 더하여, 재구동용 MBR을 기억하는 기억부를 구비하는 형태도 좋다. 또한, 상기 재구동용 MBR은 예를 들어 소정의 규칙에 따라서 분할 로더를 작성하는 것이어도 좋고, 분할하지 않고 일괄로 로딩하는 것도 좋다.
(3) 또한, 본 발명에서는 트랩 플래그(TF)를 이용한 싱글 스텝 모드에 있어서, 1회의 LOOP 처리를 수행하는 것으로 하였지만, LOOP 처리는 1회에 한정되지 않고, 로더의 데이터 길이 등을 고려하여 복수 회 나누어서 실행하여도 좋다. 또한, 스택 영역(1203)에 기록된 FLAG, CS, IP의 데이터도, LOOP 종료 시점에서 갱신되는 형태로 하였지만, 스택 영역(1203)의 소정의 비트 지점에 이들 데이터가 기록되어 있는 형태라면 LOOP 명령 이외의 명령, 예를 들어 REP(리핏) 명령을 사용한 명령을 사용하여 로더를 구동 메모리 영역(120)에 로딩하는 형태, 또는 DMAC(다이렉트 메모리 액세스 컨트롤러) 칩을 사용하여 로더를 구동 메모리 영역(120)에 로딩하는 형태도 좋다.
(4) 또한, 본 실시예에서는 DI, CX를 사용하여 각 분할 데이터를 RAM(12) 상에 분산 배치하도록 하였지만, 이와는 달리 각 분할 로더의 배치 순번을 설정하여 RAM(12) 상의 소정의 주소로부터 연속하여 읽어 들이도록 하여도 좋다. 이와 같이 하여도 각 분할 로더의 분할 개수 및 배치 순서가 상이하게 되고, 읽어 들임 개시 주소를 적절하게 변경하는 등의 형태를 가짐으로써, 상술한 실시예와는 다른 형태의 분할 로더의 분산 배치가 가능하게 된다.
상술한 바와 같이, 본 발명은 CPU를 구비한 정보처리장치에 장착하여 상기 정보처리장치를 부팅하는 외부 부팅 장치로서, 정보처리장치의 BIOS에 의해 우선하여 구동하도록 설정된 MBR로서, 상기 MBR은 로더를 읽어 내어 상기 정보처리장치의 구동 메모리 영역 상에 맵핑시키기 위한 것으로서, 상기 정보 처리기의 구동 메모리 영역에 설정되어 있는 인터럽트 벡터 테이블에 대하여 스택 영역을 소정의 중첩 관계를 가지고 위치시키는 프로그램을 가지는 MBR이 기억된 기억 수단과, 상기 MBR의 구동에 앞서 상기 로더를 사전에 설정된 개수로 분할함과 동시에 각 분할 로더의 상기 구동 메모리 영역으로의 로딩 시 맵핑 정보를 작성하는 분산 처리 수단을 구비하는 것이 바람직하다.
본 구성에 따르면, 스택 영역을 인터럽트 벡터 테이블에 중첩시키고, 더 나아가 TF 프래그를 온(on)으로 하여 스택 영역으로의 직전 회귀 정보의 기록을 수행하도록 하게 함으로써, 멀웨어가 동작할 때 즉시 스택 영역의 정보가 갱신됨과 동시에 그 갱신 내용은 인터럽트 벡터 테이블의 내용으로 갱신되게 된다. 이러한 스택 영역의 정보 갱신, 즉 인터럽트 벡터 테이블의 내용이 덮어 쓰여지게 됨으로써, 멀웨어 본체의 잠복 위치 정보가 소거되어 멀웨어의 움직임이 완전히 억지되게 된다. 이와 같이, 외부 부팅에 의해 멀웨어의 움직임이 억제된다.
또한, 상기 외부 부팅 장치에 있어서, 상기 소정의 중첩 관계는 상기 스택 영역의 베이스 스택 위치를 상기 벡터 테이블의 INT2의 상위 비트의 위치에 일치시키는 것이 바람직하다. 이 구성에 따르면, 스택 영역에 기록된 정보(CS, IP) 등이 상기 벡터 테이블의 INT2 및 INT1에 기록되게 되기 때문에, 설령 멀웨어에 의한 인터럽트가 발생한 경우를 가정할 때 멀웨어의 소재 정보가 상기 기록에 의하여 손실되기 때문에 멀웨어는 동작 불능에 빠지게 된다.
또한, 상기 외부 부팅 장치에 있어서, 상기 MBR은 상기 분할 로딩 실행 전에 상기 스택 영역의 위치를 결정하는 것이 바람직하다. 본 구성에 따르면, MBR의 구동 개시 시에 스택 영역의 위치를 설정하기 때문에, 멀웨어의 동작에 대응하여 이후의 움직임을 억지할 수 있게 된다.
또한, 상기 외부 부팅 장치에 있어서, 상기 분산 처리 수단은 상기 로더의 상기 구동 메모리 영역으로의 로딩 처리를 소정의 회수마다 루프 명령으로 실행하는 것이 바람직하다. 본 구성에 따르면, 로더가 분산 배치되기 때문에 기록 위치가 분산하는 분할 로더의 맵핑 동작의 도중에 끼어들게 되어 제어를 획득하는 것이 용이하게 된다.
또한, 상기 외부 부팅 장치에 있어서, 상기 MBR은 최초의 루프 명령의 실행 전에 상기 스택 영역의 위치를 결정하는 것이 바람직하다. 본 구성에 따르면, MBR의 구동 개시 시에 스택 영역의 위치를 설정하기 때문에 멀웨어가 동작하는 것에 따라서 이후 움직임을 억지할 수 있게 된다.
또한, 상기 외부 부팅 장치에 있어서, 상기 분산 처리 수단은 상기 구동 메모리 영역 내에서의 상기 맵핑 정보를 부팅할 때 마다 상이하게 하는 것이 바람직하다. 본 구성에 따르면, 분할 로더의 맵핑 위치가 매회 변동하기 때문에, 멀웨어의 인터럽트에 판단 요소를 가지게 함으로써, 인터럽트 동작을 하기 어렵게 만들 수 있다.
또한, 상기 외부 부팅 장치에 있어서, 고유 정보가 기록된 고유 정보 기억 수단을 구비하고, 상기 분산 처리 수단은 상기 맵핑 정보를 상기 고유 정보를 사용하여 생성하는 것이 바람직하다. 본 구성에 따르면, 각 외부 부팅 장치에 따라서 고유의 맵핑 내용이 설정될 수 있게 된다.
또한, 상기 외부 부팅 장치에 있어서, 상기 MBR의 구동 동작에 이상이 발생하였는지 아닌지를 감시하는 감시 수단과, 상기 이상이 검출된 경우에 상기 정보 처리 단말의 구동 메모리 영역으로 상기 MBR을 읽어 내는 재구동 수단을 구비하는 것이 바람직하다. 본 구성에 따르면, 멀웨어가 검출되는 등의 이상이 검출되게 된다면, BIOS를 경유하지 않고 정보처리장치가 재구동 되기 때문에, 재구동에 의해 BIOS에 관련된 멀웨어가 구동 메모리 영역 상에서 제거된다.
또한, 상기 외부 부팅 장치와, 상기 외부 부팅 장치를 통하여 상호 통신을 할 수 있게 네트워크에 접속된 복수의 상기 정보 처리 단말기를 가지는 네트워크 통신 시트템을 구축하는 것이 바람직하다. 본 구성에 따르면, 외부 부팅 장치 및 네트워크를 통한 정보 처리 단말기 사이에서, 멀웨어의 영향을 받지 않는 높은 보안성을 가지는 정보 통신이 실현된다.
1:단말기 10, 22:CPU
11:ROM 12:RAM
101:BIOS 처리부 102:MBR 처리부
103:로더 처리부 104:재구동 처리부
105:입출력 처리부 110:플래시 ROM
12:RAM 120:구동 메모리 영역
1201:MBR 전개 영역 1202:인터럽트 벡터 테이블
1203:스택 영역 1204:프로그램 전개 영역
121:HDD 15:칩셋
2:USB 메모리(외부 부팅 장치) 221:분산 처리부(분산 처리 수단)
222:감시부(감시 수단) 223:재구동 처리부(재구동 수단)
224:로더 처리부 225:입출력 처리부
23:ROM 231:처리 프로그램 기억부
232:회원 정보 기억부 24:RAM
241:대조 기초 정보 기억부 251:각종 파일 기억부
261:MBR 기억부(기억 수단) 3:네트워크

Claims (15)

  1. CPU를 구비한 정보처리장치에 장착하여 상기 정보처리장치를 부팅하는 외부 부팅 장치로서,
    상기 정보처리장치의 BIOS에 의해 우선하여 구동하도록 설정된 MBR이 기록된 기억 수단으로서, 상기 MBR은 로더를 읽어 내어 상기 정보처리장치의 구동 메모리 영역 상에 맵핑시키기 위한 것이고, 상기 MBR은 상기 정보처리장치의 구동 메모리 영역에 설정되어 있는 인터럽트 벡터 테이블에 대하여 스택 영역을 소정의 중첩 관계를 가지고 위치시키는 프로그램을 가지는, 기억 수단; 및
    상기 MBR의 구동에 앞서, 상기 로더를 사전에 설정된 개수로 분할함과 동시에 각 분할 로더를 상기 구동 메모리 영역으로 로딩할 때의 맵핑 정보를 작성하는 분산 처리 수단;을 구비하는 것을 특징으로 하는 외부 부팅 장치.
  2. 제1항에 있어서,
    상기 소정의 중첩 관계는, 상기 스택 영역의 베이스 스택의 위치를 상기 벡터 테이블의 INT2의 상위 비트의 위치에 일치시키는 것임을 특징으로 하는 외부 부팅 장치.
  3. 제1항 또는 제2항에 있어서,
    상기 MBR은 상기 분할 로더의 로딩 실행 전에 상기 스택 영역의 위치를 결정하는 것을 특징으로 하는 외부 부팅 장치.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 분산 처리 수단은 상기 로더의 상기 구동 메모리 영역으로의 로딩을, 소정의 횟수씩 루프 명령으로 실행하는 것을 특징으로 하는 외부 부팅 장치.
  5. 제4항에 있어서,
    상기 MBR은 최초의 상기 루프 명령의 실행 전에 상기 스택 영역의 위치를 결정하는 것을 특징으로 하는 외부 부팅 장치.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 분산 처리 수단은 상기 구동 메모리 영역 내에서의 상기 맵핑 정보를 부팅할 때 마다 서로 다르게 하는 것을 특징으로 하는 외부 부팅 장치.
  7. 제6항에 있어서,
    고유 정보가 기억된 고유 정보 기억 수단을 구비하고,
    상기 분산 처리 수단은 상기 고유 정보를 사용하여 상기 맵핑 정보를 생성하는 것을 특징으로 하는 외부 부팅 장치.
  8. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 MBR의 구동 동작에 이상이 발생하였는지 여부를 감시하는 감시 수단; 및
    상기 이상이 검출된 경우, 상기 정보처리장치의 구동 메모리 영역으로, 상기 MBR을 읽어 내는 재구동 수단;을 구비하는 것을 특징으로 하는 외부 부팅 장치.
  9. 제1항 내지 제8항 중 어느 한 항에 따른 외부 부팅 장치; 및 상기 외부 부팅 장치를 통하여 상호 통신할 수 있도록 네트워크에 접속된 복수의 상기 정보처리장치;를 가지는 네트워크 통신 시스템.
  10. 컴퓨터가 내장된 외부 부팅 장치가 CPU를 구비한 정보처리장치에 장착되어 상기 외부 부팅 장치에 의해 상기 정보처리장치를 부팅시키는 외부 부팅 프로그램으로서,
    상기 정보처리장치의 BIOS에 의해 우선하여 구동하도록 설정된 MBR이 기록된 기억 수단으로서, 상기 MBR은 로더를 읽어 내어 상기 정보처리장치의 구동 메모리 영역 상에 맵핑시키기 위한 것이고, 상기 MBR은 상기 정보처리장치의 구동 메모리 영역에 설정되어 있는 인터럽트 벡터 테이블에 대하여 스택 영역을 소정의 중첩 관계를 가지고 위치시키는 프로그램을 가지는, 기억 수단; 및
    상기 MBR의 구동에 앞서, 상기 로더를 사전에 설정된 개수로 분할함과 동시에 각 분할 로더를 상기 구동 메모리 영역으로 로딩할 때의 맵핑 정보를 작성하는 분산 처리 수단;으로서 상기 컴퓨터가 기능하게 하는 외부 부팅 프로그램.
  11. 제10항에 있어서,
    상기 소정의 중첩 관계는, 상기 스택 영역의 베이스 스택 위치를 상기 벡터 테이블의 INT2의 상위 비트의 위치에 일치시키는 것임을 특징으로 하는 외부 부팅 프로그램.
  12. 제10항 또는 제11항에 있어서,
    상기 MBR의 구동 동작에 이상이 발생하였는지 여부를 감시하는 감시 수단; 및
    상기 이상이 검출된 경우 상기 정보 처리 단말기의 구동 메모리 영역으로 상기 MBR을 읽어 내는 재구동 수단;으로서 상기 컴퓨터가 기능하게 하는 외부 부팅 프로그램.
  13. CPU를 구비한 정보처리장치에 외부 부팅 장치를 장착하여 상기 외부 부팅 장치에 의해서 상기 정보처리장치를 부팅시키는 외부 부팅 방법으로서,
    상기 정보처리장치의 BIOS에 의해 우선하여 구동하도록 설정된 MBR이 상기 외부 부팅 장치의 기억 수단에 기록되는 단계로서, 상기 MBR은 로더를 읽어 내어 상기 정보처리장치의 구동 메모리 영역 상에 맵핑시키기 위한 것이고, 상기 MBR은 상기 정보처리장치의 구동 메모리 영역에 설정되어 있는 인터럽트 벡터 테이블에 대하여 스택 영역을 소정의 중첩 관계를 가지고 위치시키는 프로그램을 가지는, MBR이 상기 외부 부팅 장치의 기억 수단에 기록되는 단계; 및
    상기 외부 부팅 장치의 분산 처리 수단이, 상기 MBR의 구동에 앞서, 상기 로더를 사전에 설정된 개수로 분할함과 동시에 각 분할 로더를 상기 구동 메모리 영역으로 로딩할 때의 맵핑 정보를 작성하는 단계;를 포함하는 것을 특징으로 하는 외부 부팅 방법.
  14. 제13항에 있어서,
    상기 소정의 중첩 관계는, 상기 스택 영역의 베이스 스택 위치를 상기 벡터 테이블의 INT2의 상위 비트의 위치에 일치시키는 것임을 특징으로 하는 외부 부팅 방법.
  15. 제13항 또는 제14항에 있어서,
    상기 외부 부팅 장치의 감시 수단이 상기 MBR의 구동 동작에 이상이 발생하였는지 여부를 감시하고,
    상기 감시 수단에 의하여 이상이 검출된 경우 상기 외부 부팅 장치의 재구동 수단이 상기 정보 처리 단말기의 구동 메모리 영역으로 상기 MBR을 읽어 내는 것을 특징으로 하는 외부 부팅 방법.

KR1020127032446A 2010-05-11 2010-05-11 외부 부팅 장치, 외부 부팅 방법 및 네트워크 통신 시스템 KR20130027026A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/057962 WO2011141997A1 (ja) 2010-05-11 2010-05-11 外部ブートデバイス、外部ブートプログラム、外部ブート方法及びネットワーク通信システム

Publications (1)

Publication Number Publication Date
KR20130027026A true KR20130027026A (ko) 2013-03-14

Family

ID=44914066

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127032446A KR20130027026A (ko) 2010-05-11 2010-05-11 외부 부팅 장치, 외부 부팅 방법 및 네트워크 통신 시스템

Country Status (7)

Country Link
US (1) US20130124846A1 (ko)
EP (1) EP2570956A1 (ko)
JP (1) JPWO2011141997A1 (ko)
KR (1) KR20130027026A (ko)
CN (1) CN102985929A (ko)
SG (1) SG185114A1 (ko)
WO (1) WO2011141997A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160116574A (ko) 2015-03-30 2016-10-10 주식회사 웨인 운영체제와 파일저장 기능이 가능한 이동식 저장장치

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014096126A (ja) * 2012-11-12 2014-05-22 Yec:Kk 外部接続記憶装置
DE102013224365A1 (de) * 2013-11-28 2015-05-28 Siemens Ag Österreich Verfahren für einen sicheren Hochfahrablauf eines elektronischen Systems
CN103942482B (zh) * 2014-05-13 2017-01-18 西安邮电大学 一种基于嵌入式的主机安全保护方法
CN110471675B (zh) * 2019-08-21 2023-06-16 山东比特智能科技股份有限公司 一种程序烧录方法、系统、装置及计算机可读存储介质
CN111026462B (zh) * 2019-12-10 2023-08-29 百度在线网络技术(北京)有限公司 小程序控制方法、装置、设备和介质

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0510244A1 (en) * 1991-04-22 1992-10-28 Acer Incorporated Method and apparatus for protecting a computer system from computer viruses
JPH06230959A (ja) * 1993-02-02 1994-08-19 Otec:Kk コンピュータウイルス防止制御方法及び装置
KR20000009369A (ko) * 1998-07-23 2000-02-15 윤종용 피씨카드를장착가능한컴퓨터시스템및그것의부팅방법
CN1258885A (zh) * 1998-12-28 2000-07-05 神达电脑股份有限公司 可侦测开机型病毒的电脑系统
TW462025B (en) * 1999-06-23 2001-11-01 Micro Star Int Co Ltd BIOS virus protection method
JP4464497B2 (ja) * 1999-10-04 2010-05-19 株式会社アイ・オー・データ機器 外部記憶装置のインターフェイス装置および同装置を内蔵した外部記憶装置
US7930531B2 (en) * 2000-01-06 2011-04-19 Super Talent Electronics, Inc. Multi-partition USB device that re-boots a PC to an alternate operating system for virus recovery
US6711675B1 (en) * 2000-02-11 2004-03-23 Intel Corporation Protected boot flow
US8095783B2 (en) * 2003-05-12 2012-01-10 Phoenix Technologies Ltd. Media boot loader
JP4568489B2 (ja) * 2003-09-11 2010-10-27 富士通株式会社 プログラム保護方法、プログラム保護プログラムおよびプログラム保護装置
US7293166B2 (en) * 2004-03-05 2007-11-06 Hewlett-Packard Development Company, L.P. Method of indicating a format of accessing an operating system contained on a USB memory device
US7383386B1 (en) * 2004-05-21 2008-06-03 Mcm Portfolio Llc Multi partitioned storage device emulating dissimilar storage media
JP2006236193A (ja) 2005-02-28 2006-09-07 Fujitsu Ltd 起動プログラム実行方法、デバイス、記憶媒体及びプログラム
TWI259977B (en) * 2005-05-03 2006-08-11 Novatek Microelectronics Corp Structure of embedded memory unit with loader and system structure and operation method for the embedded memory apparatus
CN100362471C (zh) * 2005-08-16 2008-01-16 中国船舶重工集团公司第七〇九研究所 硬盘主引导区程序病毒的防御方法
JP4793628B2 (ja) 2005-09-01 2011-10-12 横河電機株式会社 Os起動方法及びこれを用いた装置
US20070130454A1 (en) * 2005-12-05 2007-06-07 Bentley Carl M Hardware identification utility
KR100746032B1 (ko) * 2006-01-04 2007-08-06 삼성전자주식회사 마스터 부트 레코드를 관리하는 저장 매체 및 상기 저장매체를 이용한 컴퓨터 시스템의 부팅 방법
US7757112B2 (en) * 2006-03-29 2010-07-13 Lenovo (Singapore) Pte. Ltd. System and method for booting alternate MBR in event of virus attack
US7975304B2 (en) * 2006-04-28 2011-07-05 Trend Micro Incorporated Portable storage device with stand-alone antivirus capability
CN101359356B (zh) * 2007-08-03 2010-08-25 联想(北京)有限公司 删除或隔离计算机病毒的方法及系统
US8510542B2 (en) * 2008-10-01 2013-08-13 Oracle International Corporation Flash memory device having memory partitions and including an embedded general purpose operating system for booting a computing device
JP3158114U (ja) * 2009-12-02 2010-03-18 株式会社ハギワラシスコム 挿抜式ストレージデバイス
US9588829B2 (en) * 2010-03-04 2017-03-07 F-Secure Oyj Security method and apparatus directed at removable storage devices

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160116574A (ko) 2015-03-30 2016-10-10 주식회사 웨인 운영체제와 파일저장 기능이 가능한 이동식 저장장치

Also Published As

Publication number Publication date
CN102985929A (zh) 2013-03-20
SG185114A1 (en) 2012-12-28
EP2570956A1 (en) 2013-03-20
WO2011141997A1 (ja) 2011-11-17
JPWO2011141997A1 (ja) 2013-07-22
US20130124846A1 (en) 2013-05-16

Similar Documents

Publication Publication Date Title
US6223284B1 (en) Method and apparatus for remote ROM flashing and security management for a computer system
RU2385483C2 (ru) Система и способ использования гипервизора, чтобы управлять доступом к предоставляемой в аренду вычислительной машине
JP5992457B2 (ja) オペレーティングシステムのコンフィグレーション値の保護
US7401230B2 (en) Secure virtual machine monitor to tear down a secure execution environment
JP4498735B2 (ja) オペレーティングシステムおよびカスタマイズされた制御プログラムとインタフェースする安全なマシンプラットフォーム
US20050021968A1 (en) Method for performing a trusted firmware/bios update
CN103262092B (zh) 基于存储驱动器的防恶意软件方法和装置
KR101081118B1 (ko) 보안되는 프로그램을 복원하는 컴퓨터 구현 방법, 정보 처리 시스템 및 컴퓨터 판독 가능한 기록 매체
KR20130038304A (ko) 외부 부팅 장치, 외부 부팅 방법, 정보 처리 장치 및 네트워크 통신 시스템
EP2727040B1 (en) A secure hosted execution architecture
TW200414052A (en) Providing a secure execution mode in a pre-boot environment
TW201145041A (en) Provisioning, upgrading and/or changing of hardware
JP2011243231A (ja) サーバ管理コプロセッササブシステム内部のtcpaによる信頼性の高いプラットフォームモジュール機能のカプセル化
WO2002052386A2 (en) Method and system for software integrity control using secure hardware assisting device
US20080244746A1 (en) Run-time remeasurement on a trusted platform
KR20130027026A (ko) 외부 부팅 장치, 외부 부팅 방법 및 네트워크 통신 시스템
US8656190B2 (en) One time settable tamper resistant software repository
JP6951375B2 (ja) 情報処理装置、情報処理方法及びプログラム
WO2013069587A1 (ja) 情報処理空間管理方法、外部デバイス及び情報処理装置
CN115879064A (zh) 一种程序运行方法、装置、处理器、芯片及电子设备
WO2012053053A1 (ja) 外部ブートデバイス及びネットワーク通信システム
Iglio Trustedbox: a kernel-level integrity checker
WO2013061782A1 (ja) 外部ブートデバイス及び外部ブート方法
Petrlic Integrity protection for automated teller machines
Holoubková Rešerše a ukázka zabezpečení platformy (TPM)

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
NORF Unpaid initial registration fee