WO2013069587A1 - 情報処理空間管理方法、外部デバイス及び情報処理装置 - Google Patents

情報処理空間管理方法、外部デバイス及び情報処理装置 Download PDF

Info

Publication number
WO2013069587A1
WO2013069587A1 PCT/JP2012/078575 JP2012078575W WO2013069587A1 WO 2013069587 A1 WO2013069587 A1 WO 2013069587A1 JP 2012078575 W JP2012078575 W JP 2012078575W WO 2013069587 A1 WO2013069587 A1 WO 2013069587A1
Authority
WO
WIPO (PCT)
Prior art keywords
area
access
loader
external device
information
Prior art date
Application number
PCT/JP2012/078575
Other languages
English (en)
French (fr)
Inventor
杉中順子
Original Assignee
Suginaka Junko
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 Suginaka Junko filed Critical Suginaka Junko
Publication of WO2013069587A1 publication Critical patent/WO2013069587A1/ja

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
    • 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

Definitions

  • the present invention relates to a high-security information processing space management technology for information processing devices built in computers such as terminals and servers that perform information processing.
  • Patent Document 1 describes an OS (Operation System) startup method stored in a hard disk of an information processing apparatus. More specifically, when a power-on of the information processing apparatus is detected, a bootable device is searched by starting up a BIOS (Basic Input / Output System) stored in the flash memory, and a USB (Universal Serial Bus) ) Start the boot OS stored in the memory, and first display the password input screen on the display means. Next, an input of a password from the input means is accepted for this input screen. When the password is input, the input password and information unique to the USB memory are concatenated and converted into a hash value, and an unlock password for the hard disk to be activated is generated.
  • BIOS Basic Input / Output System
  • USB Universal Serial Bus
  • Patent Document 1 describes that the virus check of the hard disk can be performed by performing a virus check using a virus check function stored in the USB memory in a state where the hard disk is unlocked. Has been.
  • Patent Document 2 describes a method for executing a startup program. More specifically, in response to an initial read request from the personal computer to the hard disk, a temporary startup sector storing an arbitrary program such as security is read prior to the startup sector of the storage medium storing the startup program, and the arbitrary program is executed. It has an activation preprocessing step. Then, after execution of an arbitrary program such as security, the original boot program is executed to start the OS. As a result, it is possible to execute an arbitrary program such as security prior to OS startup without changing the BOIS of the personal computer or the startup sector (LBA0) of the storage medium.
  • Patent Document 3 describes a computer device in which an operating system privilege mode is set in an operating system, a user privilege mode is set in a user application, and anti-virus measures are taken using a virtual machine and the privilege mode.
  • the computer device further includes a virtual machine monitor (VMM) in which the virtual machine monitor privilege mode is set and a protection agent (VM) in which the protection agent privilege mode is set.
  • VMM virtual machine monitor
  • VM protection agent
  • the strength of access right is set in the order of privilege mode, protection agent privilege mode, operating system privilege mode, and user privilege mode. Therefore, even if the malware created by the Service-to-Self and sent to the operating system accesses a protection agent whose privilege mode is higher, it does not accept such access and prevents the contents of the protection agent from being altered. ing.
  • the malware detects a change in resources in the operating system (SSDT, GDT, IDT, etc.) or a change in the protection agent resource, the system is shut down and rebooted to reset the change. .
  • Patent Document 1 is a mode in which a password is input on a password input screen, there is a risk of password theft. Therefore, an individual who creates a hash value by combining with unique information of a USB memory and uses it as unlock information Authentication technology. Patent Document 1 describes that a virus check of a hard disk can be performed by performing a virus check using a virus check function stored in a USB memory, but there is no specific description. .
  • Patent Document 2 even when an arbitrary program in the temporary startup sector in the hard disk is a virus check program, an illegal program having, for example, a Rootkit form is started before the program is executed. Since it is possible to conceal itself (unauthorized program) from the program, there is a certain limit to the reliability against virus checking. Patent Document 2 does not describe any specific method for monitoring a virus before the OS is started. Even if a hidden virus can be found before the power is turned on, no virus check is performed after the restart (OS startup), so that the virus that enters during the restart is still defenseless. Furthermore, since Patent Documents 1 and 2 are general modes for carrying out processing on the personal computer side, there is a limit to securing high reliability even in this respect.
  • Patent Document 3 uses a virtual machine monitor and a protection agent that sequentially set different privilege levels to prevent unauthorized access of malware entering from the operating system.
  • Patent Document 3 only describes access prevention using a difference between a virtual machine and a privilege level, and does not describe anything about a memory map of a computer device memory, and can detect modification of contents. It cannot be said that the mechanism is disclosed.
  • Patent Document 3 is intended for operating system malware, but in other types, mainly when the computer device is hidden in, for example, BIOS or MBR before the start of the computer device, for example, the upper part of the operating system. However, it can be modified by the latent malware at the time of activation, but nothing is shown about the countermeasure in such a case. In particular, there is no description regarding the installation method of the virtual machine monitor and the protection agent, and it is unclear how to secure the security itself. Furthermore, even if the internal resource can be shut down and rebooted, it does not completely improve the deficiencies.
  • An object of the present invention is a high-security information processing space that is loaded into a partial area of the main memory in conjunction with the activation of the information processing apparatus and has high access authority from the operating system and restricts unauthorized access to this partial area. To provide management technology.
  • An information processing space management method includes a dedicated loader loading step of loading a dedicated loader from an external device to a startup memory area of a main memory in response to startup of a BIOS, and a partial first area of the main memory. And a management file for monitoring access to the first area of an OS (Operating System) loaded to a second area different from the first area and the startup memory area of the main memory.
  • an access protection information setting step for setting in the second area.
  • An external device includes a dedicated loader that loads a startup memory area of the main memory in response to the startup of the BIOS and a part of the main memory in the external device that loads a file to the connected information processing apparatus.
  • Access privilege to the first area of the OS (Operating System) loaded to a second area different from the first area and the startup memory area of the main memory A management file loaded in the first area, and access protection information having an access authority lower than the protection privilege, loaded between the loading of the management file and the loading of the OS. And an access protection information setting file set in the second area.
  • the information processing apparatus includes a main memory that is a work memory, and the information processing apparatus loads a predetermined file from a connected external device to the main memory.
  • a dedicated loader load unit for loading a dedicated loader from the device into the startup memory area of the main memory, a protection privilege is set for a first area of a part of the main memory, and the first area of the main memory and Management for loading a management file for monitoring access to the first area of an OS (Operating System) loaded to a second area different from the startup memory area from the external device to the first area by the dedicated loader
  • the access right lower than the protection privilege between the file load processing means and the load of the management file to the load of the OS Is characterized in that the access protection information and an access protection information setting means for setting the second region of.
  • the BIOS when the information processing apparatus is powered on, the BIOS is activated.
  • a dedicated loader is loaded into the activation memory area of the main memory from an external device connected to the information processing apparatus.
  • a protection privilege is set for a part of the first area of the main memory.
  • the OS Operating System
  • the second area is changed to the first area.
  • a management file for monitoring whether access has been made is loaded from the external device into the first area by the dedicated loader.
  • access protection information having an access authority lower than the protection privilege is set in the second area from the loading of the management file to the loading of the OS.
  • the dedicated loader is loaded from the external device in response to the activation of the BIOS. Therefore, the behavior of the malware hidden in the BIOS or MBR in the information processing apparatus is suppressed, and the dedicated loader is activated. It becomes possible to load the area cleanly. Since the management file is loaded from the external device by a clean dedicated loader, proper setting of protection privileges and proper monitoring of unauthorized access are ensured. Therefore, even if an OS program infected with malware attempts to access and intrudes into the first area from the second area for the purpose of copying, it is reliably hooked (detected) by the difference in access protection information, Such unauthorized access is disabled.
  • FIG. 1 is a schematic diagram showing an embodiment of a network communication system to which an external device according to the present invention is applied. It is a block diagram which shows an example of the hardware constitutions of the external device shown in FIG. It is a block diagram which shows an example of the function part relevant to the boot of a terminal and an external device. It is a figure which shows an example of the memory map of RAM of the terminal in the real mode by booting of a dedicated loader. It is a figure which shows an example of the memory map of RAM of a terminal in the protection mode in booting of a dedicated loader. It is a flowchart explaining the procedure of the starting process of the system BIOS performed by CPU of a terminal.
  • step S3 It is a flowchart explaining the procedure of the POST process (step S3) of the system BIOS executed by the CPU of the terminal. It is a flowchart explaining the procedure of the monitoring process I performed by CPU of an external device. It is a flowchart explaining the procedure of the monitoring process II performed by CPU of an external device. It is a flowchart explaining the procedure of the expansion BIOS process performed by CPU of a terminal. It is explanatory drawing for demonstrating the procedure of the monitoring process III performed by CPU and expansion BIOS of an external device. It is a flowchart explaining the partial procedure of the monitoring process III performed by CPU of a terminal side. It is a flowchart explaining the partial procedure of the monitoring process III performed by CPU of the external device side.
  • the OS loader 131 is created in a state where the contents of 0 MB to 1 MB (substantially the dedicated loader and the system BIOS newly loaded from the external device 2) are copied to the 100 MB to 101 MB area, and at a predetermined position in the same area. It is a memory map of a state.
  • FIG. 1 is a schematic diagram showing an embodiment of a network communication system to which an external device according to the present invention is applied.
  • FIG. 2 is a block diagram illustrating an example of a hardware configuration of the external device illustrated in FIG.
  • FIG. 3 is a block diagram illustrating an example of functional units related to booting and management of terminals and external devices.
  • FIG. 4 is a diagram showing an example of a memory map of the terminal RAM in the real mode when the dedicated loader is booted.
  • FIG. 5 is a diagram illustrating an example of a memory map of the RAM of the terminal in the protect mode when the dedicated loader is booted.
  • the network communication system shown in FIG. 1 includes, for example, a terminal 1 that is an example of an information processing apparatus incorporating a personal computer, an external device 2 of, for example, a PCI (Peripheral Component) Interconnect type that is connectable to the terminal 1, And a network 3 such as the Internet.
  • the terminal 1 is connected to the network 3 via a provider (ISP) 4.
  • the PCI as an example of the external device 2 has a cassette-type casing having a predetermined size, an external I / O port for connecting to the terminal 1, and an internal CPU and expansion as will be described later.
  • a storage unit that stores BIOS and the like and a NIC (Network Interface Card) that enables communication with the network 3 are provided.
  • the terminal 1 is connected to the network 3 as it is, and when the external device 2 is attached, the terminal 1 is connected to the network 3 via the external device 2 as will be described later.
  • a plurality of ISPs 4 are arranged on the network 3, and each ISP 4 is connected to one or a plurality of terminals 1 and an unillustrated website that provides various types of information.
  • the external device 2 is provided, for example, when receiving registration as a member having authority to receive provision of a predetermined service through an operation from the terminal 1.
  • information for identifying a member and other information are recorded in an internal storage unit.
  • the terminal 1 has a computer and, as shown in FIGS. 3, 4 and 5, has a CPU (Central Processing Unit) 10 as control means.
  • the CPU 10 is connected to a ROM (Read Only Memory) 11 and a RAM (Random Access Memory) 12.
  • the ROM 11 includes a flash ROM in which data can be rewritten.
  • the ROM 11 includes the flash ROM, CMOS (Complementary Metal Oxide Semiconductor), and the like, and BIOS (Basic Input / Output System) is written in the flash ROM 11A.
  • the BIOS of the terminal 1 is hereinafter referred to as the system BIOS
  • the BIOS of the external device 2 is referred to as the expansion BIOS. Distinguish between the two.
  • the CPU 10 is connected with an operation unit 13 including a keyboard and a mouse having a numeric keypad for inputting necessary commands and information by an operator, and a display unit 14 for displaying an image.
  • the display unit 14 is used for displaying input information and displaying communication contents.
  • the system BIOS is set to preferentially specify the external device 2 that is a device having an extended BIOS.
  • the RAM 12 has a predetermined storage capacity, generally 4 GB (B: byte) in a 32-bit manner.
  • a startup memory area 120 which is a work area in the real mode at the time of startup. It becomes. Further, in this embodiment, a predetermined area in which a management file (management program or the like) to be described later for OS management is expanded, in this embodiment, 1 MB to 100 MB, and the remaining areas perform normal processing after startup. This is the work area for execution.
  • 0 MB to 100 MB are set as the first area, and 0 MB to 1 MB of the start memory area 120 is a part of the first area, and 100 MB to 4 GB is set as the second area.
  • a hard disk (HD) 12A or the like in which various programs and data such as the system BIOS are stored.
  • the terminal 1 is provided with a chip set 15 as shown in FIGS. 4 and 5, for example.
  • the chipset 15 is a main component constituting the unillustrated motherboard, and controls data exchange between all components connected to the motherboard such as a CPU, various memories, a hard disk (HD), an unillustrated CD-ROM, and the like. Is. Details will be described later.
  • the network 3 is connected to one or a predetermined number of member servers 5 and a plurality of customer terminals 6 via the ISP 4.
  • the member server 5 stores appropriate information related to members who own the terminal 1 or can control the operation, for example, member information such as a member's name, name, e-mail address, and address in units of members.
  • the supplier terminal 6 stores a transaction request information, a process for a transaction request from each terminal 1 as a client, for example, a process by electronic settlement, and manages information.
  • information that can be provided to the terminal 1 as necessary for example, processing software necessary for executing a service provided to the member, for example, required documents are created.
  • Transaction details and history information for each terminal 1 may be stored (stored and managed) in a document creation program or even in a large-capacity server.
  • the network communication system in FIG. 1 can employ the following modes as an example.
  • the terminal 1 may be a dedicated terminal that can be connected only to a dedicated network, or may be any general-purpose terminal that can be connected to another network by switching to the Internet.
  • a program file (hereinafter simply referred to as AP (application program)) for executing general processes such as transmission and reception is stored.
  • the external device 2 stores a program file (referred to as a specific AP) that performs processing related to execution of specific application software as necessary.
  • the general-purpose AP is operable by the OS read by the OS loader in the terminal 1, and the specific AP is the OS read by the loader (or the loader activated by the restart program) in the external device 2.
  • each terminal 1 such as a consumer, a store, or a company that is a member creates, as a specific AP, the creation of each document (related to so-called commercial transactions) related to buying and selling of goods and services, estimation or billing, and deposits and withdrawals.
  • software for communicating with each other and, if necessary, software for predetermined authentication processing are loaded from the external device 2 after booting.
  • the terminal 1 uses a specific AP to make a settlement in a general commercial transaction, for example, issue and receive an invoice from a merchant store, and deposit from a purchaser to an account of a contract financial institution that issues the invoice (that is, payment). )
  • various electronic documents can be sent and received regardless of electronic payment.
  • the specific AP can create various documents as text-format or binary-format electronic files. This electronic file is exchanged between the terminals 1 via the external device 2 via, for example, the member server 5 (or in parallel).
  • a specific AP that performs a payment instruction process (such as an instruction for a payment process between financial institutions) according to a financial payment document from the terminal 1 of a consumer or company is also installed in each financial institution terminal 1. .
  • the external device 2 in which unique information is written for each registered member is distributed.
  • the member inserts the external device 2 into the port 1a of the terminal 1, and at least performs authentication processing of the validity of the external device 2, preferably further personal authentication (being a valid owner of the external device 2) )) Processing.
  • the member server 5 includes a storage unit for storing each member's file transmission / reception history and its files for management.
  • the member server 5 may have an authentication function.
  • the authentication function browses a file exchanged between the member server 5 and the terminal 1, that is, a packet to check whether the member is valid or not. It is good also as a mode which performs authentication.
  • various other application examples can be considered for the network communication system shown in FIG.
  • information communication with the terminal 1 outside a group organization (including country, local government, association, association, etc.) that is a public or quasi-public (including private sector) organization that creates and stores confidential information ⁇ Give examples of application to management systems.
  • information communication with a terminal outside the organization for example, issuance of a certificate, shipping of an application form, and the like are assumed.
  • the present invention can be similarly applied to a LAN system.
  • the received packet is returned to the original file, or the file to be sent is replaced with the packet.
  • the header of each packet to be transmitted includes the global IP address of the terminal 1 that is the transmission source, and the global IP addresses of other terminals that are the transmission destination and the member server.
  • the NIC 26 shown in FIG. 2 is equipped with a router (not shown) or is connected to the router serially.
  • the address information indicating the transmission destination added to a predetermined position of each packet as a transmission signal or a reception signal is a global IP address based on the Internet protocol or the global IP address is attached.
  • Address information for identifying whether it is a predetermined local IP address (MAC address) according to, for example, Ethernet (registered trademark) for a dedicated network that is different from the private network (in a form that can be distinguished from a global IP address) (Routing table and arp (Address Resolution Protocol) table) are set.
  • the packet is checked against the table and transmitted only to the route with the matching address, so that the transmission path can be switched via the Internet or a dedicated network by software.
  • the external device 2 includes a mother board (not shown) in a housing, and various circuit elements and semiconductor elements are mounted on the mother board.
  • the external device 2 includes a CPU 20 as control means.
  • a ROM 21 and a RAM 22 are connected to the CPU 20.
  • the CPU 20 is connected to an expansion BIOS storage unit 23 such as a ROM for storing the expansion BIOS and a DMAC (Direct Memory Access controller) 24 mounted on the motherboard, and further includes a ROM here, a flash ROM 25 and a NIC 26. It is connected.
  • an expansion BIOS storage unit 23 such as a ROM for storing the expansion BIOS and a DMAC (Direct Memory Access controller) 24 mounted on the motherboard, and further includes a ROM here, a flash ROM 25 and a NIC 26. It is connected.
  • the I / O interface 27 is provided in the input / output unit of the external device 2 and is configured to be attachable / detachable to / from the port 1a of the terminal 1, and can be communicated and supplied with power through a predetermined number of lines in the attached state.
  • the extended BIOS storage unit 23 and the DMAC 24 are connected to the I / O interface 27, but can communicate with the CPU 20.
  • the external device 2 is for loading a management file for monitoring the OS in the activated terminal 1 and monitoring the OS. Further, the extended BIOS may be stored in the flash ROM 25.
  • the ROM 21 stores various processing programs to be executed as the external device 2 and a processing program storage unit 211 in which various processing programs to be executed as the external device are stored. Information for identifying at least a member And a reference time storage unit 213 for storing reference time information for monitoring the presence / absence of malware, which will be described later.
  • the RAM 22 temporarily stores data being processed and transfer data.
  • the CPU 20 reads and executes a necessary processing program from the ROM 21 when the terminal 1 is activated and operated.
  • the CPU 10 starts up the system BIOS, executes necessary self-diagnosis processing, and then initializes available peripheral devices, which is processing performed before booting. Move on to execution of Self Test.
  • the POST process it is searched whether or not there is an external device that stores a so-called extended BIOS. Then, when an external device storing the extended BIOS is searched, an expansion BIOS fetch process of the external device is performed.
  • the extended BIOS is a program that is read into the terminal 1 and started after the control is transferred, and allows the external device 2 to take in predetermined information, in this embodiment, a dedicated loader described later.
  • the DMAC 24 is a bus master type controller (circuit) that forcibly transfers information by managing the bus control between the terminal 1 and the external device 2 without being controlled by the CPU 10.
  • the request from the CPU 10 and the operation status of the CPU 20 in the external device 2 are monitored, and the DMA transfer is performed between both devices according to the monitoring result.
  • the flash ROM 25 stores various types of information read into the terminal 1.
  • the dedicated loader storage unit 251 stores a dedicated loader (R) that is a program that is transferred by the DMAC 24 and read into the RAM 12 when the RAM 12 is in the real mode state, as will be described later.
  • the dedicated loader storage unit 252 returns a dedicated loader (P), which is a program that is returned to the real mode and transferred by the DMAC 24 and read into the RAM 12 when the RAM 12 is in the protected mode as described later.
  • P dedicated loader
  • the interrupt ID table register IDTR InterruptDescriptor Table Register
  • the interrupt vector table cannot be used.
  • the extended BIOS is configured such that the real mode return process for rewriting the register IDTR to the real mode interrupt vector table is performed first.
  • the dedicated loader (R) has an information amount of 1 MB and is expanded in the activation memory area 120.
  • the dedicated loader (P) has an information amount of 4 GB, and is expanded on the entire RAM 12 by being overwritten.
  • the program contents of the loader instruction portions of the dedicated loaders (R) and (P) are common, and the contents of the other information portions are information used for overwriting (resetting) the activation memory area 120 and the RAM 12, for example, Data “0” or the like.
  • the information content of the dedicated loader (R) may be shared with the dedicated loader (P).
  • the management file storage unit 253 stores a program for monitoring an illegal operation described later of an OS (or AP) contaminated with malware and invalidating the operation.
  • the system table storage unit 254 stores IDT (Interrupt Descriptor Table), GDT (Global Descriptor Table), TSS (Task State Segment), etc., which are resources of the management file.
  • IPL Intelligent Program Loader
  • An IPL Initial Program Loader
  • an OS loader storage unit 255 that stores an OS loader here, is a program for loading the OS from the HD 12A to the RAM 12.
  • the system BIOS storage unit 256 is the same program as the system BIOS stored in the flash ROM 11A.
  • the system BIOS stored in the system BIOS storage unit 256 is loaded into the startup memory area 120 after the dedicated loader is loaded because the system BIOS stored in the HD 12A may be contaminated with malware. belongs to.
  • the specific OS / AP storage unit 257 stores an OS or the like (including an I / O control driver of each I / O device and a specific AP) as a program.
  • Each I / O device is a peripheral device such as an operation unit 13, a display unit 14, or a printer (not shown).
  • the dedicated loader (P) is provided with a 1 MB size file and logic for clearing 1 MB or more in the dedicated loader (P), and the CPU 10 of the terminal 1 is executed when the dedicated loader (P) is executed.
  • a technique of performing a 1 MB read process and a clear process may be employed. According to this method, an improvement in performance can be expected as compared with the transfer of 4 GB.
  • the NIC 26 performs information processing when communicating with another terminal 1 or the like via the network 3.
  • the NIC 26 stores a ROM for storing a predetermined processing program and a RAM for temporarily storing processing contents (both shown in FIG. Abbreviation). Further, as described above, the NIC 26 that manages the connection with the network 3 is connected to a public communication line up to the ISP 4 via a router (not shown), and performs communication control for the network and the network 3.
  • the I / O interface 27 has a line for supplying power in addition to a line for exchanging information with the external device 2 via the port 1a.
  • the terminal 1 has a power supply circuit (not shown).
  • the external device 2 is attached to the terminal 1, the external device 2 is connected from the charging circuit via the port 1a and the I / O interface 27 of the external device 2.
  • the power supply of the external device 2 is activated by supplying current to a charging circuit (not shown).
  • the CPU 10 of the terminal 1 executes a processing program read from the ROM 11, the flash ROM 11 ⁇ / b> A, the HD 12 ⁇ / b> A, and the flash ROM 25 to the RAM 12, thereby executing a dedicated loader load processing unit that executes the extended BIOS from the start of the system BIOS. 101, a dedicated loader processing unit 102 for executing the loaded dedicated loader, a management file loaded by execution of the dedicated loader and a management file operating environment creating unit 103 for creating its operating environment, and an OS loader ( OS loader 104 for loading IPL), OS loader processor 105 for creating the loaded OS loader and its operating environment, and monitoring of the OS boot by the OS loader or the operation after the boot under the management file.
  • OS loader 104 for loading IPL
  • OS loader processor 105 for creating the loaded OS loader and its operating environment
  • OS operation supervision Unit 106 information processing unit 107 that executes document creation and other various processes using a specific AP or general-purpose AP
  • terminal 1 communicates with general terminal 1 or website server via network 3
  • NIC 26 connects to network 3.
  • a network communication processing unit 108 that exchanges information with other member's terminal 1, member server 5 and customer terminal 6 via the network, for example, a general-purpose OS according to a specific operation from the operation unit 13 It functions as an operating environment switching unit 109 that switches between an environment and a specific OS environment.
  • the dedicated loader load processing unit 101 receives power on the terminal 1, executes self-diagnosis processing, and then checks the status of the memory and peripheral devices by POST processing. Next, the extended BIOS is activated from the device set in the BIOS, in this embodiment, the external device 2 in which the extended BIOS is stored.
  • the dedicated loader load processing unit 101 performs processing for reading the extended BIOS read by the dedicated loader load processing unit 201 on the external device 2 side into a predetermined area in the activation memory area 120 of the RAM 12. If the external device 2 is not attached, an MBR (Master Boot Record) program is read from the ROM, for example, in order of priority, and control is then transferred to the read master boot program.
  • MBR Master Boot Record
  • the dedicated loader load processing unit 101 executes the extended BIOS after the extended BIOS is read into the activation memory area 120 of the RAM 12 and is given control by the system BIOS.
  • the extended BIOS reads various instruction codes from the external device 2 to the activation memory area 120 of the RAM 12, and passes control to each instruction.
  • a predetermined plurality of instruction codes are set. That is, an initialization process for a driver of a necessary device is executed in order to prepare an environment in which the specific AP can be executed in the terminal 1 using a certain instruction code.
  • Necessary devices are a keyboard and a mouse constituting the display unit 14 and the operation unit 13. Further, the IRQ and interrupt vector table (INT) of the external device 2 are registered in the redirection table 1501 (see FIG.
  • the I / O APIC 150 is an interrupt controller that can support multiprocessors, and can set the priority order of hardware interrupts in a redirection table 1501 for notifying the CPU 10 of received interrupts.
  • IRQ is an interrupt request
  • the interrupt number is rank information indicating the priority order when a hardware interrupt is generated at the same time.
  • a certain instruction code causes the external device 2 to transmit a data transfer request signal for accepting data transfer using the DMAC 24.
  • Data requested to be transferred by the data transfer request signal is a loader of about 1 MB (including an interrupt vector table).
  • the dedicated loader load processing unit 101 is executed by an instruction command for setting to the real mode transmitted from the external device 2 as described later after the control is transferred to the expansion BIOS. For the setting to the real mode, which is issued when it is determined that the terminal 1 is set in the protect mode or it is determined that the terminal 1 is set in the real mode during the startup operation of the system BIOS. In response to the instruction command, the dedicated loader load processing unit 101 executes a part of the processing for setting the mode back to the real mode.
  • the process of returning the register IDTR to the interrupt vector table in the real mode, the process of registering the IRQ and interrupt number of the external device 2 in the redirection table 1501 of the I / OAPIC 150, and the process of outputting the data transfer request signal It is.
  • the mode determination process is executed on the external device 2 side as described later so as not to be affected by malware.
  • the CPU 20 executes a program stored in the ROM 21, thereby loading the dedicated loader load processing unit 201 that reads the expansion BIOS for loading the dedicated loader to the terminal 1, and loading the dedicated loader.
  • the monitoring unit 202 that monitors the operation and issues an instruction according to the monitoring content, the management file load processing unit 203 that reads the management file to the terminal 1 side, and the terminal 1 from the external device 2 side that is part of the OS loader OS loader load processing unit 204 for reading the load part to the server, and the file created using the specific AP after activation by external boot via the NIC 26 and the network 3, the other terminal 1, the member server 5 and the business partner It functions as a network communication processing unit 205 that exchanges data with the terminal 6.
  • the monitoring unit 202 includes the following three monitoring methods, and checks the monitoring mode by the time measuring unit, the monitoring mode by the mode determination unit that determines the mode state of the real mode or the protected mode, and the mode. This is a monitoring mode by mode check means.
  • the dedicated loader load processing unit 201 receives the read instruction by the POST process in the terminal 1 and executes the process of reading the extended BIOS to the RAM 12.
  • the dedicated loader load processing unit 201 activates the DMAC 24 (instructs transfer) in order to transfer the loader (R) in the real mode state according to the monitoring contents of the monitoring unit 202, In order to transfer the loader (P) to the RAM 12 in the protected mode, the DMAC 24 is activated (transfer request (instruction) is performed).
  • the timing means of the monitoring unit 202 starts timing from the time when the external device 2 reaches a level at which the external device 2 is activated by receiving power supply from the terminal 1, and the system BIOS of the terminal 1 passes control to the expansion BIOS and the instruction code is In response to being sent to the external device 2, the time measurement operation is stopped to measure the required time.
  • the mode determining means of the monitoring unit 202 compares the time (time and short) of the time measured by the time measuring means with the reference time information stored in the reference time storage unit 213 of the ROM 21, and the time measured exceeds the reference time. If it is, the instruction code for resetting to the real mode (rewriting) is transmitted to the terminal 1 assuming that the mode is set to the protect mode by the malware.
  • the reference time is set as follows. That is, first, power is turned on to the terminal 1, the system BIOS is activated, the POST process is executed, the expanded BIOS is expanded in the RAM 12, and further, the time required for the malware to operate is transferred to the expanded BIOS. If it is normal, the time is almost preset.
  • the terminal 1 side directly determines the mode contents. Instead of the determination method, the determination is made on the external device 2 side.
  • FIG. 4 shows the contents of the RAM 12 in the real mode
  • FIG. 5 shows the contents of the RAM 12 in the protect mode
  • the chip set 15 includes, in addition to the I / O APIC 150, a chip set including a register group 152 including various registers such as a local APIC 151, EFLAGS, and general-purpose registers for each CPU 10 in a mode in which there are a plurality of CPUs 10. 15a-15n.
  • a boot memory area 120 of 0 MB to 1 MB is expanded with a system BIOS 121, an extended BIOS 122, a dedicated loader 123 including an interrupt vector table, and a temporary GDT 124.
  • the dedicated loader 123 is expanded over the entire startup memory area 120, and appropriately includes a program part that functions as a loader, dummy data supplemented to create transfer data for 1 MB, and the like.
  • the temporary GDT 124 is created by the dedicated loader 123, and is used for addressing for loading the management file from 1 MB to 100 MB in the unreal mode (Unreal mood) by the dedicated loader 123.
  • the unreal mode means that only data access is 1 MB or more, that is, access to the outside of the startup memory area 120 by changing the access limit of the data segment register (not shown) in the chipset 15 to 4 GB in the real mode environment. Refers to a special state that has been made possible.
  • the address of the interrupt descriptor table (IDT) is stored in the register group 152 and is referred to by the CPU 10 as a register IDTR (InterruptDescriptor Table).
  • Register Interrupt descriptor table register.
  • an interrupt vector table 123 ′, a system BIOS 121, and an extended BIOS 122 in a dedicated loader are expanded for an arbitrary area of the 4 GB RAM 12, and an IDT (Interrupt Descriptor Table) for configuring a protect mode in the arbitrary area.
  • FIG. 5 shows the result of the environment setting for showing to the external device 2 created by malware as if the same space as in FIG. 4 exists in the RAM 12.
  • the malware creates each program as shown in FIG. 5 and expands it to a suitable place on the RAM 12, and then expands the control. It will be passed to the BIOS. Furthermore, the malware main body program needs to be expanded in the RAM 12, and these data must be mainly acquired from the hard disk (HD 12A) which is an external medium. Therefore, the time required from the activation of the terminal 1 to the transfer of control to the extended BIOS 122 must be considerably longer than that in the case of FIG. Therefore, an appropriate time between the required time in the real mode in FIG. 4 and the required time in the protect mode in FIG. 5 is set as the reference time.
  • HD 12A hard disk
  • the mode check unit of the monitoring unit 202 is an embodiment that performs monitoring by a method different from the monitoring mode by the time measuring unit and the monitoring mode by the mode determination unit. That is, after the system BIOS passes control to the expansion BIOS, the external device 2 issues an instruction code. The DMAC 24 is activated by this instruction code, and reads all the contents of the RAM 12 by transfer and takes them into the external device 2 without being controlled by the CPU 10. The mode check means of the monitoring unit 202 checks the contents of the read RAM 12 and determines whether or not the protected mode environment is present.
  • the determination method may use information unique to the protection mode in the data of the RAM 12, for example, the presence or absence of a management table such as GDT, IDT, or TSS described above. In this way, it is determined not on the terminal 1 side whether it is in the protected mode space but on the external device 2 side.
  • a management table such as GDT, IDT, or TSS described above.
  • the mode check means of the monitoring unit 202 sends an instruction code for resetting to the real mode to the terminal 1 when the mode is determined to be the protect mode by the malware.
  • FIG. 6 is a flowchart for explaining the procedure of the system BIOS activation process executed by the CPU 10 of the terminal 1.
  • the system BIOS is checked (step S1), and then the POST process is executed (step S3).
  • FIG. 7 is a flowchart for explaining the procedure of the POST process (step S3) of the system BIOS executed by the CPU 10 of the terminal 1.
  • a PCI is mounted as a device connected to the terminal 1 (step S11). If the PCI is not mounted, the system BIOS executes a normal startup process (step S13). . On the other hand, when the PCI is mounted, the BIOS of the device, that is, the extended BIOS is searched (step S15), and this extended BIOS is loaded into the RAM 12 (step S17). Next, when loading is completed, a load completion signal is output by the system BIOS (step S19).
  • FIG. 8 is a flowchart for explaining the procedure of the monitoring process I executed by the CPU 20 of the external device 2.
  • step # 1 it is determined whether or not the power of the external device 2 is turned on. If it is turned on (step # 1), the time measuring operation of the monitoring unit 202 is started (step # 3).
  • step # 3 the time measuring operation of the monitoring unit 202 is started (step # 3).
  • step # 5 the time measuring operation of the monitoring unit 202 is started.
  • the timing operation is stopped (step # 7).
  • step # 9 it is judged (compared) whether or not the measured time is shorter than the reference time (time time ⁇ reference time) (step # 9). If the measured time is shorter than the reference time, it is determined that the terminal 1 is not set to the protect mode environment, that is, the CPU 10 of the terminal 1 is not set to the protect mode by at least the malware, and this flow is exited. On the other hand, if the measured time is equal to or longer than the reference time, it is determined that the CPU 10 of the terminal 1 may be set in the protect mode environment, that is, the environment of the CPU 10 of the terminal 1 is set in the protect mode by at least malware. Since there is a possibility that the instruction code has been set, a command code for resetting the CPU 10 of the terminal 1 to the real mode is returned (step # 11), and the process exits from this flow.
  • FIG. 9 is a flowchart for explaining the procedure of the monitoring process II executed by the CPU 20 of the external device 2.
  • the control of the CPU 10 is transferred from the system BIOS to the expansion BIOS
  • it is determined whether or not the above-described instruction code is received from the expansion BIOS (step # 21). If this instruction code is not received, this flow is passed.
  • this instruction code is received, it is determined that the control of the terminal 1 is in the extended BIOS, and the DMAC 24 is activated and the RAM 12 to be transferred by the DMAC 24 is designated (step # 23).
  • the contents of the RAM 12 are taken into the RAM 22 of the external device 2 via the DMAC 24. Even at this time, all the contents (4 GB in this case) of the RAM 12 are taken away from the control of the CPU 10 of the terminal 1 so as not to be affected at all by the mode of the CPU 10.
  • step # 25 it is checked whether or not there is a content specific to the protect mode, specifically, a specific management table such as the IDT, GDT, or TSS described above with respect to the content of the fetched RAM 12 (step # 25). . If the RAM 12 does not contain the contents specific to the protect mode, it is determined that the real mode is set, and the present flow is exited.
  • a content specific to the protect mode specifically, a specific management table such as the IDT, GDT, or TSS described above with respect to the content of the fetched RAM 12 (step # 25).
  • the CPU 10 of the terminal 1 may be set in the protect mode environment, that is, at least the malware of the CPU 10 of the terminal 1 is set by malware. Assuming that there is a possibility that the environment is set to the protect mode, an instruction code for resetting the CPU 10 of the terminal 1 to the real mode is returned (step # 29), and this flow is exited.
  • FIG. 10 is a flowchart for explaining the procedure of the extended BIOS process executed by the CPU 10 of the terminal 1.
  • the extended BIOS to which the control of the CPU 10 is passed first determines whether or not an instruction code for resetting to the real mode has been received from the external device 2 (step S31). If this instruction code is not received within a predetermined time prepared for reception, initialization is performed for a predetermined device (the display unit 14, the keyboard, and the mouse described above) connected to the terminal 1. POST processing is performed (step S33). Next, an I / O APIC process (step S35) and a data transfer request signal output process (step S37) are executed.
  • step S39 the loader (R) is transferred from the dedicated loader storage unit 251 to the terminal 1, and is overwritten on the activation memory area 120 of the RAM 12 (step S39).
  • the transfer end signal whether the transfer is completed (Yes in step S41)
  • a hardware interrupt is generated, the control of the CPU 10 is transferred to the loader (step S43), and this flow is exited. .
  • step S31 when an instruction code for resetting to real mode is received in step S31, real mode return processing (step S45), I / OAPIC processing (step S47), data for rewriting the register IDTR to the interrupt vector table A transfer request signal output process (step S49) is executed. Subsequently, the DMAC 24 is activated, the loader (P) is transferred from the dedicated loader storage unit 252 to the terminal 1 side, and is overwritten on the entire area of the RAM 12 (step S51). Then, when it is confirmed by the transfer end signal whether the transfer is completed (Yes in step S53), a hardware interrupt is generated, the control of the CPU 10 is transferred to the loader (step S55), and this flow is exited.
  • an appropriate system BIOS is overwritten from the system BIOS storage unit 256 to an area that does not affect the loader portion of the dedicated loader.
  • the system BIOS of the system BIOS storage unit 256 is previously included in a part of the dedicated loaders (R) and (P), and the activation memory area 120 is overwritten by loading the dedicated loaders (R) and (P).
  • An aspect may be sufficient. As will be described later, this system BIOS is used when the OS is loaded.
  • FIG. 11 is an explanatory diagram for illustrating a procedure of the monitoring process III executed by the CPU 20 and the extended BIOS of the external device 2.
  • FIG. 12 is a flowchart for explaining a partial procedure of the monitoring process III executed by the CPU 10 on the terminal 1 side.
  • FIG. 13 shows a partial procedure of the monitoring process III executed by the CPU 20 on the external device 2 side. It is a flowchart explaining these.
  • the external device 2 needs to have the following configuration.
  • the ROM 21 or the flash ROM 25 of the CPU 20 functions as a storage unit that stores IOAPIC.
  • the IO APIC 150 is registered on the terminal 1 side by the hardware interrupt IRQ set in the register of the external device 2 during the POST process, and an interrupt number associated with the IRQ number is automatically set.
  • the ROM 21 or the flash ROM 25 of the CPU 20 functions as a storage unit that stores the interrupt vector table and the contents of the interrupt handler.
  • the DMAC 24 performs processing for transferring the contents of the interrupt vector table 123 ′ and the interrupt handler 124 ′ to the terminal 1 side without the control of the CPU 10.
  • the monitoring unit 206 has a function of monitoring the presence / absence of an execution result signal of an interrupt handler 124 ′ described later. Further, after the transfer request is issued, the monitoring unit 206 uses the DMAC 24 to generate an interrupt vector table 123 ′ and an interrupt handler 124 ′ corresponding to a predetermined vector in the interrupt vector table 123 ′ by the bus master method. And a function unit for determining the presence / absence of an execution result signal from the interrupt handler 124 ′.
  • INT0 is set as the hardware interrupt (IRQ10).
  • IRQ10 is used as the hardware interrupt, but the IRQ is not limited to “10” and may be any number that is associated in advance to specify a device.
  • the interrupt handler 124 ' refers to a program waiting on a memory for executing interrupt processing. Furthermore, in INT0 of the interrupt vector table 123 ', the start address of the program that is the interrupt handler 124', the address 1000 in the example of FIG. 11, is set.
  • step S61 it is first determined whether or not control has passed from the system BIOS to the extended BIOS (step S61). If control has not been passed to the extended BIOS, this flow is passed. On the other hand, if the control has passed to the extended BIOS, a request signal indicating that the control has passed to the extended BIOS is transmitted to the external device 2 (see step S63, arrow [1] in FIG. 11). Next, it is determined whether or not a hardware interrupt (IRQ10) instruction is issued (step S65).
  • IRQ10 hardware interrupt
  • a hardware interrupt (IRQ10) instruction is issued within a predetermined time from the time of transmission of the request signal
  • INT0 is specified
  • the INT0 instruction is issued
  • the interrupt handler 124 'for the corresponding address is executed (see step S67, arrow [4] in FIG. 11).
  • an execution result signal of the interrupt handler 124 ' is returned to the external device 2 (see step S69, arrow [5] in FIG. 11). It is more preferable from the point of secrecy to change the execution result signal of the interrupt handler 124 'every time.
  • the execution result signal is created according to a predetermined rule using, for example, boot date / time information and member information in the member information storage unit 212 of the external device 2.
  • step # 41 it is first determined whether or not a request signal has been received (step # 41). If no request signal has been received, this flow is passed. On the other hand, when the request signal is received, activation of the DMAC 24 and processing for specifying a storage area to be transferred are performed (see step # 43, arrow [2] in FIG. 11), and the information to be transferred is block transferred. Is transferred to the terminal 1 side without being controlled by the CPU 10.
  • the information to be transferred is the contents of the IOAPIC 150 (the redirection table 1501), the interrupt vector table 123 ', and the interrupt handler 124'.
  • step # 45 it is determined whether or not there is a transfer end signal output from the CPU 20 upon completion of the transfer operation.
  • a hardware interrupt (IRQ10) instruction is issued, It is transmitted to the terminal 1 (see step # 47, arrow [3] in FIG. 11).
  • step # 49 it is determined whether or not an interrupt handler execution result signal has been received within a predetermined time from the time when the hardware interrupt (IRQ10) instruction is issued (step # 49).
  • the interrupt handler execution result signal is received as a result of the monitoring, the CPU 10 is in the real mode, and it is determined that the boot has been normally performed, and this flow is finished.
  • the bus 10 transfer using the DMAC 24 causes the CPU 10 to set the INT0 address of the interrupt vector table 123 ′ and the start address of the interrupt handler 124 ′ before this transfer. Therefore, the address of INT0 set by the malware cannot be associated with the start address of the interrupt handler 124 ′.
  • the contents of INT0 and the start address of the interrupt handler 124 ' may be set randomly according to a predetermined rule on the side of the external device 2 or by operating a random number generator for each boot process. preferable.
  • the interrupt handler 124 ′ is not executed, and it is determined that there is a high possibility that the interrupt handler execution result signal is not generated as a result of monitoring, that is, the boot is not normally performed. Then, a command code for resetting the CPU 10 of the terminal 1 to the real mode is returned (step # 51), and this flow is exited. After exiting the process of FIG. 13, the terminal 1 performs the process of FIG.
  • the activation of the DMAC 24 and the designation of the contents to be transferred may be managed by the CPU 10 hijacked by the malware (that is, even if a certain process is not performed, for example). Regardless, there is a process in which only a signal indicating that the process has been performed is generated and output in a pseudo manner), but by providing the DMAC 24 on the external device 2 side, it is possible to eliminate the control of the CPU 10. It becomes possible.
  • FIG. 4 and FIGS. 14 to 17 are diagrams showing changes in the memory map of the RAM 12 from loading of the dedicated loader to OS operation monitoring.
  • FIG. 4 shows the state of data creation from the loading of the dedicated loader 123 to the creation of the temporary GDT 124, that is, in the startup memory area 120, as described above. Since the system BIOS 121 is once erased by loading the dedicated loader 123, it is newly loaded from the external device 2 as described above. Alternatively, it may be included in the dedicated loader 123 in advance, and loaded simultaneously when the dedicated loader is loaded. This is because the dedicated loader 123 and the system BIOS 121 will be required later when loading the OS, as will be described later. In that sense, the extended BIOS 122 does not necessarily need to be reloaded. In FIG. 4, the loading of the system BIOS from the external device 2 may be overwritten on the dummy data portion in the dedicated loader 123.
  • FIG. 14 is a memory map in a state where the management file 125, the management GDT 126, and the management IDT 127 are expanded in the area of 1 MB to 100 MB.
  • the dedicated loader processing unit 102 in FIG. 3 is a loader process that is executed when the control of the CPU 10 is transferred to the dedicated loader 123 in response to the occurrence of a hardware interrupt from the external device 2 that has received a request from the extended BIOS 122. .
  • the dedicated loader processing unit 102 stores the management file 125 in the management file storage unit 253 of the external device 2 read by the management file load processing unit 203 from 1 MB to 100 MB in the RAM 12 of the terminal 1. Processing to read at a predetermined position and processing related thereto are performed.
  • the dedicated loader processing unit 102 first performs processing for enabling access to 1 MB to 100 MB of the RAM 12, for example, creation of a temporary GDT 124 as shown in FIG. 4, various registers in the chipset Set for.
  • the temporary GDT 124 sets “0” (so-called ring “0”) to DPL (Description Privilege Level), which is a privilege level, for all (segment descriptors) of the programs and management tables constituting the management file 125.
  • DPL Delivery Privilege Level
  • the management file 125 can be loaded at the highest privilege level at a predetermined position of 1 MB to 100 MB, and all the information set in this area is loaded with DPL “0”.
  • DPL describes the privilege level of the memory space, and there are four ranks from DPL “0” to DPL “3”.
  • the lower the DPL value the higher the privilege level.
  • a program that operates in a space described as a relatively large value of the DPL value cannot access the space side described as a value having a smaller DPL value. That is, in this case, a general protection exception (#GP) or page fault (#PF) described later is issued as a privilege level violation, and access is invalidated.
  • a program operating in a space described as a relatively small value of the DPL value can access or browse the space side where the DPL value is described as a larger value. This makes it possible to determine in advance whether or not the access is inappropriate.
  • the dedicated loader processing unit 102 sets a flag for the register CR0 of the management registers so as to access the 1 MB to 100 MB area in the protected mode, and separately in the real mode, the temporary GDT 124
  • the segment limit is set to 1M or more, here 4G, thereby enabling operation in the unreal mode.
  • the management file 125 and the interrupt handler 130 are loaded, then the management GDT 126 is loaded, and the management IDT (management interrupt vector table) 127 is loaded (see FIG. 14).
  • Each segment descriptor of the management GDT 126 and the management IDT 127 is created in advance up to the table portion required at that time, and is loaded by the dedicated loader processing unit 102.
  • the dedicated loader processing unit 102 passes (jumps) the control of the CPU 10 to the management file 125 after loading the necessary information.
  • FIG. 15 is a memory map in a state where a TSS 128, a PTE (Page Table Entry) 129, and a management interrupt handler 130 are created in an area of 1 MB to 100 MB. Although not shown in the figure, an LDT (Local Descriptor Table) for each task is created as necessary.
  • the management file operation environment creation unit 103 creates a TSS 128, a PTE (Page Table Entry) 129, a management interrupt handler 130, and a necessary LDT by the program of the management file 125.
  • the TSS 128 and the PTE 129 operate in a management (protect) mode table for monitoring tasks (mainly OS loading from the HD 12A) that operate at 101 MB or more, and operate from 100 MB to 101 MB. And a table for VM8086 mode for monitoring the task to be performed.
  • a management (protect) mode table for monitoring tasks (mainly OS loading from the HD 12A) that operate at 101 MB or more, and operate from 100 MB to 101 MB.
  • a table for VM8086 mode for monitoring the task to be performed.
  • the TSS 128 is created in association with each management program (task) in the management file 125. In other words, the TSS 128 can be restored to the current state by transferring the execution state to the necessary program by a task switch and contexting the processing contents of the immediately preceding program to the corresponding TSS in order to run the program according to the operation state. I have to.
  • the PTE 129 is for converting a linear address created by the GDT 126 into a physical address, and is provided corresponding to each piece of information (each program code, each data, each stack).
  • the address is determined using the segment value and the offset value, and, as is well known, a value obtained by shifting the segment value by 4 bits
  • a maximum address (linear address) up to (1 MB + 64 KB) can be immediately calculated as a physical address.
  • the protect mode is adopted for addresses higher than that, and for example, in the mode of operation with a 32-bit program, it is possible to specify addresses up to 4 GB. Since a virtual address space can be set by setting a different address for each piece of information (task), the information (task) can be stored separately for each required data amount.
  • FIG. 18 corresponds to such an information storage mode, and shows an overall outline of the GDT 126 indicating the storage location of information.
  • the GDT 126 is a list of segment descriptors for managing the storage location of each information in units of 8 bytes, for example.
  • Each segment descriptor has four attributes.
  • the attributes are “type” of information (program code, data, stack), “base address”, “limit”, and “DPL”.
  • the “base address” indicates a storage reference (start) address of information in the RAM 12.
  • “Limit” indicates an access range of information.
  • DPL indicates the privilege level described above.
  • the segment descriptor adopted in the addressing is selected via the information of the segment selector used for conversion from the linear address.
  • Whether or not task access is permitted is determined by whether CPL (Current Privilege Level) and RPL (Requested Privilege) in one of the registers CS, DS, and SS written in the chipset at the time of access request. Level) and the corresponding segment descriptor of GDT 126 are determined.
  • FIG. 19 shows a PTE memory map.
  • Each page data is divided into a predetermined amount of data, for example, every 4 KB, and each page data is set with a physical address and an access attribute.
  • Each page data includes program code, data, and stack type.
  • the physical address is for moving the linear address to a predetermined position in the RAM 12.
  • the access attribute corresponds to a privilege level, and has “supervisor” and “user”. “Supervisor” corresponds to privilege level DPL “0” to DPL “2”, and “user” corresponds to privilege level DPL “3”.
  • NX-Bit Non eXecut Bit
  • an exception interrupt general protection exception (#GP) is issued.
  • a page fault (#PF) is issued. Is done. In either case, processing for invalidating access is executed via the interrupt handler 130.
  • the invalidation of access includes a mode of shutting down access itself and a mode of rewriting a modified privilege level value to a correct value.
  • FIG. 20 illustrates a conversion method for converting a linear address to a physical address.
  • a linear address for accessing certain information created by the CPU 10 is converted into a physical address using the segment selector and base address of the GDT 126 and further the physical address of the PTE 129.
  • FIG. 21 shows an example of the relationship between the linear address and the physical address in the protect mode.
  • linear addresses 0 MB to 1 MB correspond to physical addresses 0 MB to 1 MB. This range is a 16-bit specification, and they are the same.
  • the PTE 129 is prepared for management (area of 100 MB or less) and for VM8086 (area of 100 MB to 101 MB).
  • the linear addresses 0 MB to 1 MB correspond to the physical addresses 100 MB to 101 MB.
  • a predetermined value of 100 MB (or 101 MB) or more of the physical address is set in the physical address field of each task in the management side table in the PTE 129.
  • all the tasks of PTE 129 typically OS loading or OS execution
  • FIG. 16 shows a state where the contents of 0 MB to 1 MB (substantially the dedicated loader and the system BIOS newly loaded from the external device 2) are copied to the area of 100 MB to 101 MB, and the OS loader 131 at a predetermined position in the same area. Is a memory map in a state where is created. For example, the OS loader 131 may overwrite the position where the dummy data is written or the position where the extended BIOS is written.
  • the information writing process to 100 MB to 101 MB is performed in the VM8086 mode. Note that the VM8086 mode means that if the process for switching to the real mode is performed during the execution of the protect mode, the efficiency will be reduced if the complexity of management is taken into consideration.
  • the VM bit of the EFLAGS register is switched to perform the address calculation in the real mode. This makes it possible to execute a 16-bit program. During this period, access to information from 0 MB to 100 MB from the area is invalidated by paging.
  • the OS loader load processing unit 104 loads the contents of 0 MB to 1 MB, which are copied by the OS loader load processing unit 204 on the external device 2 side and read to the terminal 1 side, into the 100 MB to 101 MB of the RAM 12, and loads the OS loader. Perform the process.
  • the OS loader is created from the MBR read from the HD 12A and the boot program code to be described later read from the external device 2. More specifically, the OS loader load processing unit 104 is a program in the management file 125 for causing the OS to be loaded and started from the MBR partition table read from the 0th sector of the HD 12A. Read PBR (Partition Boot Record), which is a program, and OS storage address information in the HD 12A.
  • Partition Boot Record Partition Boot Record
  • the PBR includes a BPB (BIOS Parameter Block) and a boot program code.
  • BPB BIOS Parameter Block
  • boot program code prepared in advance in the external device 2 is loaded and used.
  • the OS loader load processing unit 104 combines the BPB and the boot program code loaded from the external device 2 to create an OS loader (also referred to as IPL (Initial Program Loader)) 131.
  • IPL Intelligent Program Loader
  • FIG. 17 is a memory map showing a state in which the OS is loaded in an area of 101 MB or more.
  • OS GDT 132 and OS IDT 133 indicated by broken lines indicate a situation in which the OS is trying to create a table for describing its own behavior.
  • the OS loader processing unit 105 first sets the physical address in the control register CR3 in the state set in the VM8086 mode (that is, CPL “3”), starts the OS loader, and loads each program constituting the OS from the HD 12A.
  • the RAM 12 is sequentially loaded into an area of 101 MB or more.
  • the OS loaded from the HD 12A issues an LGDT request to rewrite the contents of the chip set register GDTR in order to create the OS GDT 132 describing its own motion.
  • the OS operation monitoring unit 106 protects this access with general protection as an exception interrupt.
  • An exception (#GP) is issued.
  • the general protection exception is transferred to the interrupt handler in the management file 125 via the IDT 127.
  • the OS operation monitoring unit 106 makes an unauthorized access request through the interrupt handler 2 by referring to a register EIP indicating a storage location of an instruction (program) to be executed next by the CPU 10 using a program counter.
  • An interrupt handler process such as rewriting the modified privilege level to the original value is executed for the illegal program, while rewriting the register GDTR is prohibited.
  • the OS operation monitoring unit 106 adds the unauthorized program as a new segment descriptor to the GDT 126, sets DPL “2” in the privilege level item, and sets a new paging table in the management table of the PTE 129.
  • a predetermined address value of at least 101M (or 100M) or more is set as a physical address.
  • the access right of GDT 126 is set to DPL “2”, so that access from 0 MB to 100 MB from the OS side is invalidated as an illegal access, and a physical address of 100 M or less from the OS by PTE129. Conversion is impossible.
  • the management file 125 loads a specific AP stored in advance in the external device 2 with DPL “0” within 1 MB to 100 MB.
  • the specific AP the device driver of the operation unit 13 and the device driver of the display unit 14 are controlled so that an information processing operation can be executed in a specific mode environment, and communication with a specific member is performed as necessary.
  • the device driver of the NIC 26 of the external device 2 is controlled. In the case where the terminal 1 is a server, it is sufficient that the device driver of the NIC 26 of the external device 2 is at least executed.
  • the information processing unit 107 switches the device driver to execute processing in the general-purpose AP mode and processing in the specific AP mode.
  • the network communication processing unit 108 switches and controls communication from the terminal 1 and communication between members from the NIC 26 of the external device 2 and communication between specific servers using a device driver.
  • the operating environment switching processing unit 109 switches processing in the general-purpose OS environment and processing in the specific OS environment.
  • the switching instruction can be performed by a specific operation on the terminal 1. For example, by pressing a specific key (one or more) on the keyboard, a mode switching instruction can be cyclically performed, or individually by separate operations. A mode in which each environment is indicated may be used.
  • FIG. 22 is a flowchart showing the processing of the dedicated loader 123 executed by the CPU 10.
  • step S101 it is determined whether or not there is a hardware interrupt corresponding to the end of loading of the dedicated loader 123 (step S101). If there is no hardware interrupt, this flow is exited. On the other hand, if there is a hardware interrupt, the register group is initialized and the control register CR0 is set to the real mode (step S103).
  • the temporary GDT 124 is created by the dedicated loader 123 (step S105), and then the control register CR0 is set to the protect mode (step S107). Then, the contents of the distributor with the segment limit value of the temporary GDT 124 set to 4 GB are registered in the segment register of the chip set (step S109). As a result, an address of 1 MB or more can be designated. Subsequently, the control register CR0 is set to the real mode (step S111). That is, the control register CR0 is changed to the real mode, and the unreal mode in which 1 MB or more can be accessed in the real mode can be set corresponding to the fact that the segment limit value of the temporary GDT 124 is set to 4G.
  • the management file 125 and the management interrupt handler (which may be included in the management file) are loaded from the external device 2 into the 1 MB to 100 MB area by the dedicated loader 123 (step S113). Thereafter, the management GDT 126 is loaded from the external device 2 (step S115).
  • the CPU 10 sets the control register CR0 to the protect mode (step S117), jumps to the management file 125, and the management file 125 is activated.
  • FIG. 23 is a flowchart showing the processing of the management file 125 executed by the CPU 10.
  • GDT 126, IDT 127, and TSS 128 are created at predetermined positions of 1 MB to 100 MB at privilege level DPL “0” (step S131).
  • the TSS 128 is created for management (area of 100 MB or more) and for VM8086 (area of 100 MB to 101 MB).
  • the PTE 129 is created (step S133). As described above, the PTE 129 is created for management and for the VM8086.
  • step S135 the contents of the 0 MB to 1 MB area are copied (copied) to 100 MB to 101 MB (step S135). Thereby, the system BIOS necessary for OS loading is loaded. Further, an OS loader is created at an appropriate place between 100 MB and 101 MB (step S137). Thereafter, the CPU 10 jumps to a program for processing (monitoring and managing) loading of the OS in the management file 125 (step S139).
  • the MBR is loaded into a predetermined position of 100 MB to 101 MB from the head sector of the HD 12A (step S151).
  • the storage address of the OS (each program constituting the OS) is acquired from the active partition table in the MBR (step S153).
  • the PBR is loaded from 100 MB to 101 MB from the HD 12A (step S155), and then the boot program code portion of the PBR is rewritten with the boot program code loaded from the external device 2 (step S157), and the BPB of the PBR Are combined with the rewritten boot program code (step S159).
  • an OS loader corresponds to a so-called IPL, and this IPL is for loading a loader program for loading the OS main body in real mode in advance as is well known.
  • the OS main body is divided and loaded, for example, by the loader program for loading the OS main body.
  • the OS loader sequentially loads the programs obtained by dividing the OS main body.
  • FIG. 25 is a flowchart showing processing of the management file 125 after the OS loader is created, which is executed by the CPU 10.
  • the management file 125 sets the VM 8086 mode for monitoring and managing the loading of the OS, that is, automatically sets the privilege level to DPL “3” (step S171). Therefore, information (in this case, the OS program to be loaded) accessed in an area of 101 MB or more in this state is handled at the privilege level CPL “3”.
  • step S173 it is determined whether or not there is access to the chip set register GDTR or the like (GDTR rewrite request LGDT or the like) by the OS GDT, IDT, and PTE creation instructions (step S173). If there is an access to the register GDTR or the like, the legitimacy of the access right is checked against this access, but since it is an access from CPL “3”, a general protection exception is issued (step S175), A jump from the management IDT 127 to the interrupt handler 130 corresponding to the general protection exception is executed (step S177). As a result, the interrupt handler 130 executes processing for loading the next jump destination temporarily stored for the EIP (step S179). Also, by this task, access to the register GDTR and the like is denied, and so-called invalidation processing is executed.
  • a segment descriptor corresponding to the OS program loaded this time is added to the management GDT 126 and the management PTE 129 (step S181). Further, the privilege level DPL “0” of the management GDT 126 and the management PTE 129 is rewritten to DPL “2”, and a predetermined value larger than 101M (or 100M) is set in the physical address of the management PTE 129. For example, the address received in the exception is set with a shift of 100 M (step S183).
  • step S185 it is determined whether or not the next program constituting the OS has been loaded from the HD 12A (step S185), and if the next program constituting the OS is not loaded, the present flow is exited. On the other hand, if the next program constituting the OS has been loaded, the process returns to step S173, the same processing is repeated, and added as new segment descriptors to the management GDT 126 and the management PTE 129.
  • step S189 if there is an access in step S189, the process proceeds to step S157, where a general protection exception is issued, and based on this, the interrupt handler as described above is executed (steps S159, S161).
  • the AP program is loaded by the OS program, the same processing is performed. Since the AP is set to the privilege level DPL “3”, it is not necessary to rewrite the privilege level of the newly added segment descriptor, but the DPL “3” may be actively written. . Also for the AP to be loaded, a predetermined value larger than 101M (or 100M) is set in the physical address field of the management PTE 129 by the management file 125.
  • FIG. 26 is a flowchart showing the processing of the management file 125 after the OS boot executed by the CPU 10.
  • the management GDT 126 is accessed from the OS (or AP) program from 0 MB to 100 MB (step S201). If there is no access to the management GDT 126, this flow is exited. On the other hand, if the management GDT 126 is accessed, a general protection example is issued by collating the privilege level of the OS that has been accessed with the privilege level of the register GDTR (step S203). Then, a jump from the management IDT 127 to the interrupt handler 130 corresponding to the general protection exception is executed (step S205). As a result, the processing of the interrupt handler 130 is executed (step S207). The processing of the interrupt handler 130 here may be processing of rewriting to normal contents on the assumption that access to the management GDT 126 is denied or accessed.
  • FIG. 27 is a flowchart showing processing environment switching processing executed by the CPU 10.
  • Processing environment switching refers to switching between work in a general-purpose OS environment and work in a specific OS environment. While the terminal 1 is in operation, it is determined whether or not there is an instruction to switch to the specific OS environment (step S221), and if there is no switching instruction, the process proceeds to step S227. Note that step S221 may be an interrupt process in a permitted state. Then, in step S227, it is determined whether or not there is an instruction to switch to the general-purpose OS environment.
  • step S221 if there is an instruction to switch to the specific OS environment in step S221, it is determined whether or not the current use environment is a general-purpose OS environment (step S223). Then, a process for switching to the specific OS environment is executed (step S225). As a result, operations for information processing and device driver control are performed in a specific OS environment within 0 MB to 100 MB. This distinguishes it from the general-purpose OS environment, and malware does not enter. On the other hand, if the current use environment is already the specific OS environment, the switching instruction is ignored and this flow ends.
  • step S227 If there is an instruction to switch to the general-purpose OS environment in step S227, it is determined whether or not the current use environment is a specific OS environment (step S229). Then, a process for switching to the general-purpose OS environment is executed (step S231). On the other hand, if the current use environment is already a general-purpose OS environment, the switching instruction is ignored and this flow ends.
  • the present invention can adopt the following modes.
  • PCI Peripheral Component Interconnect
  • ROM read-only memory
  • RAM Random Access Memory
  • Any device having a DMAC may be used.
  • a USB (Universal Serial Bus) memory chip and an improved IC card may be supported, or a mode incorporated in a portable communication device may be used.
  • PCI is described as an external device.
  • the present invention is not limited to this, and an embodiment in which DMAC is used as a loading method of a dedicated loader from 0 MB to 1 MB (the present inventors) Is not limited to PCT / JP2010 / 58552) already proposed.
  • a mode in which the dedicated loader is forcibly loaded into the startup memory area by applying the PCT / JP2009 / 57962, PCT / JP2010 / 68346, and Japanese Patent Application 2011-235386 already proposed by the present inventor may be used.
  • PCT / JP2009 / 57962 discloses an external boot method that is mounted on an information processing apparatus including a CPU and boots the information processing apparatus with an external device such as a USB memory.
  • the storage unit of the external device reads the loader set to be preferentially started by the BIOS of the information processing apparatus and maps it to the start memory area (0 MB to 1 MB) of the main memory of the information processing apparatus.
  • an MBR having a program for positioning the stack area with a predetermined superposition relationship with respect to the interrupt vector table set in the activation memory area of the information processing apparatus is stored.
  • the loader is divided into a predetermined number by the distributed processing means of the external device prior to starting the MBR, and mapping information at the time of loading each divided loader into the startup memory area is created. .
  • FIG. 28 is a diagram illustrating a method of superimposing the stack area 1203 on the interrupt vector table 1202.
  • EFLAG, CS, and IP related to the instruction content immediately before the interrupt are written from the base pointer BP. Therefore, the stack area 1203 is positioned so that the position of the base pointer BP coincides with the position of the upper bit of the vector 2 in the interrupt vector table 1202 as indicated by the arrow in the figure. Therefore, when EFLAG, CS, and IP are written to the stack area 1203, FLAG is written into the upper bits of the vector 2 of the interrupt vector table 1202, CS is written into the lower bits of the vector 1, and IP is written into the upper bits of the vector 1. It will be.
  • vector 1 indicates an address to be an external interrupt destination
  • CPU 10 refers to vector 1 and control shifts to a program at an address written in vector 1.
  • EFLAG, CS, and IP which are the contents of the immediately preceding instruction, are saved and written in the stack area 1203. That is, IP and CS address information is written in the vector 1 of the interrupt vector table 1202. In vector 1, IP is written in the upper bits and CS is written in the lower bits. Therefore, the address is specifically IP ⁇ 16 + CS.
  • malware operates when the BIOS starts up, sets the flag TF of the EFLAGS of the chipset, and generates an interrupt vector.
  • the address where the virus body exists is written in the vector 1 of the table 1202. It is assumed that a certain instruction is executed after the BIOS is started, typically during MBR startup, and then the control of the CPU 10 is taken over by the malware (a debug interrupt is generated by the malware). At this time, the control shifts to the address written in the vector 1, and the operation by malware (malware duplication, data falsification, destruction, etc.) is executed.
  • the information IP and CS indicating the previous instruction contents are written in the stack area 1203, that is, the vector 1 of the interruption vector table 1202. Therefore, the address indicating the storage location of the malware originally written in the vector 1 is rewritten and erased.
  • the malware loses the latent address as soon as it operates once after the MBR is started in the state where the device is set up while the BIOS is started, and the subsequent operation is suppressed.
  • the loader is mapped in the boot memory area 120 in the RAM 12 except for the areas 1202 and 1203 and the MBR area.
  • the divided loaders are distributed and deployed as many as the number of divisions according to the mapping position information.
  • an appropriate number of dummy data may be added to the split loader.
  • the next mapping position information is written at the last bit position.
  • the divided loaders are combined with the original loader after the loader. In this case, if information indicating that is written in the dummy data, it is possible to omit the process at the time of synthesis. In this way, the loader, that is, the dedicated loader in the present invention is properly loaded to 0 MB to 1 MB.
  • PCT / JP2010 / 68346 describes an external device that is attached to an information processing apparatus including a CPU and boots the information processing apparatus.
  • the external device is a startup program that is set so that the BIOS of the information processing apparatus is written into the startup memory area of the information processing apparatus by the CPU, and is based on one instruction from the CPU after writing.
  • a first program that is executed and overwrites an interrupt vector table with a dummy code for a predetermined number of bits to generate a general protection exception, and a normal reset program for normal reset processing that is executed when the general protection exception occurs Is provided with a startup program storage unit in which a startup program consisting of a second program for setting as an interrupt handler is stored.
  • FIG. 29 is a diagram for explaining the dummy code interrupt vector table overwriting process and the normal reset process based on the general protection exception.
  • the significance of overwriting a dummy code to a predetermined vector, particularly vectors 0, 1, and 13 will be described. It is conceivable that the data in the interrupt vector table is falsified by the malware temporarily taking control of the CPU 10 during the BIOS operation, and in particular the vector 1 data defining INT1 is rewritten to describe the latent position of the malware. Further, it is conceivable that an abnormal program that activates the malware is arranged in the activation memory area 120 during the BIOS operation period.
  • the vector 1 in the interrupt vector table it is necessary to rewrite the contents that may have been rewritten to perform a process of suppressing the behavior of the malware.
  • the vector 13 it is necessary to perform a process for reliably starting an interrupt handler for normal reset processing, in which the abnormal program on the startup memory area 120 is erased by overwriting predetermined data.
  • the process for reliably starting the interrupt handler is to write the start address of the interrupt handler area 12031 in the vector 13 and to create a mechanism for generating a general protection exception as described later.
  • a mechanism for automatically shifting the processing from the vector 13 to the interrupt handler area 12031 is constructed. That is, (i) the flag DF of the EFLAGS of the chip set is set to 1 in order to read the write addresses of the dummy code in descending order, and (ii) the write address in descending order is the left end address “0x0000” of the interrupt vector table 12021 It causes a general protection exception by generating unauthorized access below. Furthermore, for (ii), it is necessary to generate write addresses in the direction from vector 1 to vector 0, that is, in descending order.
  • the number of bits of the dummy code is three vectors 0, 1, and 13, and at least 1 for generating unauthorized access. A bit is enough.
  • the vector 13, the vectors 1, 0, and the illegal access are discontinuous, and the overwrite position of the dummy code in the interrupt vector table tends to become clear. Therefore, as a more preferable aspect, in this embodiment, a dummy code having a data amount of at least one bit of vectors 13 to 0 and unauthorized access is created, and a write address is started from a predetermined vector of 13 or more. In order to finally cause unauthorized access, it is specified in descending order.
  • FIG. 29 shows this state, where the dummy code has a predetermined number of bits, here 512 bits (bit), and the start address is the 500th bit.
  • the data string having 512 bits is the amount of data that can be read by the USB memory 2 through a series of operations (REP INS). That is, when addresses are generated in descending order as indicated by an arrow (A), an illegal access occurs during the 501st access (assuming that each address is generated in this embodiment), and a general protection exception occurs. . When the general protection exception occurs, the CPU 10 moves to the vector 13 as indicated by an arrow (B).
  • the CPU 10 reads the stored contents of the vector 13, and moves to the address of the activation memory area 120 that matches the read contents, that is, the head address of the interrupt handler area 12031 as shown by the arrow (C). Then, the CPU 10 executes an interrupt handler to perform normal reset processing.
  • This dummy code overwriting process is performed in the REP INS process by one instruction from the CPU 10, and the normal reset process is performed by the interrupt handler in succession to the dummy code overwriting process.
  • both processes are completed with the instruction, so that there is no opportunity for malware to intervene in the CPU 10 during that time.
  • the malware operates during the BIOS startup, sets the EFLAGS flag TF, and the vector of the interrupt vector table 12021 Assume that 1 is rewritten to an address where the malware body exists. It is assumed that a certain instruction is executed after the BIOS is started, typically during MBR startup, and then the control of the CPU 10 is taken over by the malware (a debug interrupt is generated by the malware). At this time, the control shifts to the address written in the vector 1, and the operation by malware (malware duplication, data falsification, destruction, etc.) is executed.
  • the contents of the vector necessary for normal reset among the vectors in the interrupt vector table are rewritten with a dummy code, so that the address information existing in the malware body is substantially deleted.
  • the startup memory area 120 is also normally reset, and the latent malware itself is deleted. In other words, even if the malware sets a behavior for the behavior during the BIOS startup, when the MBR is started, all the information for the behavior is deleted, and as a result, the subsequent behavior is suppressed. It will be.
  • Japanese Patent Application No. 2011-235386 includes a CPU and a main memory in which a program executed by the CPU is expanded, and performs data communication by hardware between the main memory and the outside.
  • An external device is described in which an information processing apparatus provided with a controller is activated by writing data required for activation into the main memory via the controller.
  • This external device includes data transfer instruction information that is read preferentially to a bootable memory area that can be addressed and is a part of the main memory when the BIOS of the information processing apparatus is executed by the CPU.
  • a first storage unit that stores a primary loader; and at least an interrupt vector table and a secondary loader that are read as division control data sequentially divided into the startup memory area in response to the data transfer instruction from the primary loader
  • a second storage unit that stores predetermined control data including the address data to be a writing position when the division control data is written to the activation memory area; and the activation that is started after reading to the activation memory area
  • the division control data corresponding to each of the division control data is sent from the second storage unit.
  • a data transfer unit that sequentially reads out to the main memory via the controller in accordance with the address data, and the interrupt that has been read out of the hardware interrupt instruction signal into the startup memory area upon completion of the data transfer process
  • a hardware interrupt instructing section for making a transition to a vector table and issuing a hardware interrupt to activate the secondary loader is provided.
  • FIG. 30 briefly explains the flow of booting.
  • the flow of information and the procedure at the time of booting are indicated by arrows in FIG.
  • the CPU 10 activates the BIOS, and takes in the external MBR 1211 from the USB memory 2 by BIOS processing.
  • the processing of the CPU 10 is passed to the external MBR 1211, and the master boot record of the external MBR 1211 functions as a primary loader.
  • the first divided TD data table TD [1] 1212 is created (arrow (1) in FIG. 30).
  • the external MBR 1211 issues an interrupt transfer start command (command) to the USB host controller (arrow (2) in FIG. 30).
  • the address data in the first row of the divided TD data table TD [1] is acquired by the USB host controller, and the address data and the dummy data 1213 which is the divided data transferred first are MCH (Memory Controller Hub), It is sent to the RAM 12 via ICHICH (I / O Controller Hub) (arrow (3) in FIG. 30) and written to the address (arrow (4) in FIG. 30). Thereafter, the divided data can be sequentially fetched from the USB memory 2 between the USB host controller and the USB target controller without being controlled by the CPU 10, and the fifth row of the divided TD data table TD [1] is obtained.
  • MCH Memory Controller Hub
  • ICHICH I / O Controller Hub
  • the address data is acquired by the USB host controller, and the address data and the divided TD data table TD [2] which is the fifth transferred data are sent to the RAM 12 via the MCH, and the address data outside the activation memory area 120 are sent. It is written at the address “0x40000” (arrow (5) in FIG. 30).
  • the divided data corresponding to the address data of each row of the divided TD data table TD [2] is sequentially read from the USB memory 2 and developed in the activation memory area 120.
  • the USB host controller Each time the divided TD data table TD is transferred, the USB host controller temporarily stores the address data contained in the divided TD data table, associates the address data with the divided control data to be transferred next, and sends it to the MCH. Like to do.
  • the MCH acquires address data from the transferred data, and writes the division control data 1215 to this address.
  • the interrupt vector table 1214 is read from the USB memory 2 and written corresponding to the address data in the first row of the divided TD data table TD [2] (arrow (6) in FIG. 30). Then, the divided TD data table TD [i] is developed sequentially (arrow (7) in FIG. 30), and the divided data corresponding to the address data in the bottom row of the last divided TD data table TD [n] is stored in the USB memory 2. Is loaded into the startup memory area 120, a hardware interrupt instruction signal is simultaneously transmitted to INT “XX” of the interrupt vector table via the MCH (without going through the CPU 10) (FIG. 30). (8)).
  • the CPU 10 jumps the interrupt command to the reference address of the division control data (first) 1215 in which the first division data of the divided specific OS loader is expanded ( The arrow (9) in FIG. 30), thereby starting execution of the specific OS loader.
  • the specific OS loader (control data) in this embodiment corresponds to the dedicated loader in the present invention.
  • each dedicated loader is performed from an external device. Even if malware is hidden in the BIOS or MBR with respect to the boot memory area 120, it is possible to delete the malware and perform the process, thereby making the boot memory area 120 a clean environment.
  • a dedicated loader (including a table necessary for loading the dedicated loader as necessary) can be loaded into the area 120 from an external device. Then, after the dedicated loader is loaded from the external device into the boot memory area 120, the highest privilege level or the relatively highest privilege level is set in the management file placement area loaded by the dedicated loader (set to the OS and AP load areas) The management file can be activated and maintained in a clean environment.
  • the secure area (privilege level DPL “0”) for storing the management file 125 and the like is set to 1 MB to 100 MB.
  • the present invention is not limited to this, and the management file 125 and other necessary files It is sufficient if there is a memory capacity capable of storing the management table or the like.
  • the memory capacity may be 1 MB to several MB.
  • the areas 0 MB to 1 MB are also set as secure areas (privilege level DPL “0”), 0 MB to 100 MB can be handled as homogeneous secure areas.
  • the secure area is constructed from 0 MB to 100 MB, it is possible to effectively prevent the invasion of so-called stealth viruses that are difficult to detect infection.
  • a specific OS environment is set in a secure area and specific information processing is possible.
  • anti-virus software for detecting malware is loaded and 100 MB to 4 GB. It is also possible to adopt a mode of monitoring up to.
  • the information processing space management method includes a dedicated loader loading step of loading a dedicated loader from an external device to a startup memory area of the main memory in response to startup of the BIOS, and a part of the main memory.
  • a protection privilege is set for the first area, and an OS (Operating System) loaded to a second area different from the first area and the startup memory area of the main memory is accessed to the first area.
  • An external device includes a dedicated loader that loads a startup memory area of the main memory in response to the startup of the BIOS and a part of the main memory in the external device that loads a file to the connected information processing apparatus.
  • Access privilege to the first area of the OS (Operating System) loaded to a second area different from the first area and the startup memory area of the main memory A management file loaded in the first area, and access protection information having an access authority lower than the protection privilege, loaded between the loading of the management file and the loading of the OS. It is preferable that an access protection information setting file set in the second area is included.
  • the information processing apparatus includes a main memory that is a work memory, and the information processing apparatus loads a predetermined file from a connected external device to the main memory.
  • a dedicated loader load unit for loading a dedicated loader from the device into the startup memory area of the main memory, a protection privilege is set for a first area of a part of the main memory, and the first area of the main memory and Management for loading a management file for monitoring access to the first area of an OS (Operating System) loaded to a second area different from the startup memory area from the external device to the first area by the dedicated loader
  • OS Operating System
  • the dedicated loader is loaded from the external device in response to the activation of the BIOS, the behavior of the malware hidden in the BIOS or MBR in the information processing apparatus is suppressed, and the dedicated loader is activated in the memory area. It becomes possible to load with clean. Since the management file is loaded from the external device by a clean dedicated loader, proper setting of protection privileges and proper monitoring of unauthorized access are ensured. Therefore, even if an OS program infected with malware attempts to access and intrudes into the first area from the second area for the purpose of copying, it is reliably hooked (detected) by the difference in access protection information, Such unauthorized access is disabled.
  • the dedicated loader loading step updates the dedicated loader into the boot memory area. According to this configuration, even if the malware is hidden in the startup memory area or the address for the hook is described, overwriting the dedicated loader on these will eventually suppress the behavior of the malware. It becomes possible.
  • the dedicated loader is forcibly loaded to the entire startup memory area of the main memory. According to this configuration, the dedicated loader is forcibly loaded over the entire starting scale area, so that the behavior of the latent malware can be suppressed.
  • the same protection privilege is set for the first area and the startup memory area. According to this configuration, a high protection privilege is set for the dedicated loader.
  • the startup memory area is preferably 0 MB to 1 MB. According to this configuration, the present technology can be applied not only to a dedicated information processing apparatus but also to a general-purpose information processing apparatus (personal computer or servers).
  • the management file has a GDT (Global Descriptor Table) in which access protection information of each program in the OS is registered, and is accessed from the second area to the first area. It is preferable to include a process of issuing the general protection exception with reference to the access protection information registered in the GDT for the program in the OS. According to this configuration, the general protection exception can be issued by referring to the access protection information of the GDT segment descriptor corresponding to the program in the OS that has been accessed, thereby invalidating the unauthorized access. Is done.
  • GDT Global Descriptor Table
  • the management file issues the general protection exception to the access of the program in the OS from the second area to the first area, and generates an IDT (Interrupt Descriptor Table). ) To invalidate the access by an interrupt handler. According to this configuration, access to the first area by the OS is uniformly invalidated.
  • the linear address generated by the GDT is converted into a physical address using PTE (Page (Table Entry), and the PTE is converted to the linear address generated by the GDT. It is preferable that at least the address value in the second area to be added is set. According to this configuration, since the physical address is always in the second area by paging, access from the second area to the first area is impossible.
  • access level attribute information for each program of the OS is registered in the PTE, and access to the OS program from the second area is performed via the PTE. It is preferable to issue a page fault and invalidate the access by the interrupt handler via IDT. According to this configuration, the OS program accessed from the second area issues a page fault depending on the difference from the access level attribute information of the segment descriptor in the PTE corresponding to the program, and the IDT and interrupt handler. Such access is disabled via.
  • the access protection information is set to a value of 0 for the first area, a value of 2 for the OS, and an AP (Application (Program) operated by the OS. ) Is preferably set to a value of 3. According to this configuration, access to the first area from the OS and AP is invalidated due to the difference in access protection. As a result, the first area is held as a secure area.
  • the information processing space management method includes an unauthorized access handling step of issuing a general protection exception for accessing the OS program from the second area after loading the OS and invalidating the access. It is preferable. According to this configuration, even after an OS is loaded, even if an OS program that has been infected or hidden by malware makes unauthorized access to the first area, the first area is properly managed as a secure area. Therefore, a general protection exception is always issued.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

 BIOSの起動に応じてPCI(2)からRAM(12)の0MB~1MBに専用ローダ(123)をロードする専用ローダロードステプと、RAM(12)の1MB~100MBにDPL"0"を設定し、かつRAM(12)の101MB~4GBへロードされるOSの1MB~100MBへのアクセスを監視するための管理ファイル(125)を専用ローダ(123)によってPCI(2)から1MB~100MBにロードする管理ファイルロードステップと、管理ファイル(125)のロードからOSのロードまでの間に、DPL"2"又はDPL"3"を101MB~4GBに設定するアクセス保護情報設定ステップとを備えた。BIOS起動に応じて主メモリ内の第1領域にセキュア領域を構築すると共にアクセス保護情報に差を持たせて、第2領域からの不当なアクセスを無効化し、主メモリ内にセキュア領域を確保する。

Description

情報処理空間管理方法、外部デバイス及び情報処理装置
 本発明は、情報処理を行う端末、サーバ等のコンピュータ内蔵の情報処理装置等に対する、高セキュリティの情報処理空間管理技術に関する。
 近年、インターネット等のネットワークに接続されたサーバや端末(パーソナルコンピュータ)等の情報処理装置に対して各種のウイルス等が侵入し、乃至は潜伏し、それによってデータの盗聴、盗難、改竄、漏洩及び攻撃等の被害が生じている。かかるウイルス被害に対し、ウイルスの侵入を可及的に阻止する目的で、ウイルスを発見し乃至は駆除するソフトウエアの改良乃至は開発、回線制限(アドレス制限)の設定を行う等の対策が講じられている。しかし、ウイルスの新種発見から駆除用のソフトウエアの開発までの時間遅れ等を考慮すれば、ウイルスの侵入を確実に阻止することは困難である。また、電源投入を受けて情報処理装置が立ち上がる間にウイルス感染する虞も考えられ、かかる期間内に対する有効なウイルス対策も望まれる。
 特許文献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を起動させるものである。これにより、パーソナルコンピュータのBOISや記憶媒体の起動セクタ(LBA0)を変更することなく、OS起動に先立ってセキュリティ等の任意のプログラムの実行を可能としている。
 特許文献3には、オペレーティングシステムにオペレーティングシステム特権モードを設定すると共にユーザアプリケーションにユーザ特権モードを設定し、仮想マシン及び特権モードを用いてウイルス対策が講じられたコンピュータデバイスが記載されている。このコンピュータデバイスには、さらに、仮想マシンモニタ特権モードが設定された仮想マシンモニタ(VMM)及び保護エージェント特権モードが設定された保護エージェント(VM)が設けられており、特権レベルは、仮想マシンモニタ特権モード、保護エージェント特権モード、オペレーティングシステム特権モード、ユーザ特権モードの順でアクセス権の強さが設定されている。従って、悪意者によって作成され、オペレーティングシステムに送り込まれたマルウエアが、特権モードが上位である保護エージェントに対してアクセスしても、かかるアクセスを受け付けず、保護エージェントの内容を改変することを阻止している。そして、マルウエアによってオペレーティングシステム内の資源(SSDT、GDT、IDT等)の改変、また保護エージェントの資源の改変が検知されると、システムをシャットダウンし、リブートすることで改変をリセットするようにしていた。
特開2007-66123号公報 特開2006-236193号公報 特表2010-517164号公報
 特許文献1は、パスワード入力画面に対してパスワードを入力する態様であるためパスワードの盗難の虞があることから、USBメモリの固有情報と結合してハッシュ値を作成し、ロック解除情報とする個人認証技術である。また、特許文献1には、USBメモリに格納されているウイルスチェック機能を用いてウイルスチェックを行うことでハードディスクのウイルスチェックを可能とすることが記載されているが、具体的な記載は一切ない。
 一方、特許文献2では、ハードディスク内の仮起動セクタの任意プログラムがウィルスチェックプログラムである場合においても、そのプログラムが実行される前に、例えばRootkitの形態を有するような不正プログラムが起動され、任意プログラムから自身(不正プログラム)を隠蔽することも可能であるため、ウイルスチェックに対する信頼性に一定の限界がある。また、特許文献2にはOS起動前にウイルスを監視する具体的な方法は一切記載されていない。電源投入前から潜伏していたウイルスを仮に発見し得るとしても、再起動(OS起動)後にはウイルスチェックは行われていないため、再起動中に侵入するウイルス対して依然として無防備の状態にある。さらに、特許文献1、2はパーソナルコンピュータ側で処理を担う一般的態様であるから、この点からしても高い信頼性を確保するには限界がある。
 また、特許文献3は、順次異なる特権レベルを設定してオペレーティングシステムから侵入するマルウエアの不正アクセスを阻止する仮想マシンモニタ及び保護エージェントを利用したものである。しかしながら、特許文献3には、仮想マシン及び特権レベルの差を利用したアクセス阻止が説明されているのみで、コンピュータデバイスメモリのメモリマップに関しては何等記載されておらず、内容の改変が検出可能な仕組みまで開示されているとはいえない。また、特許文献3はオペレーティングシステムのマルウエアを対象としているが、その他の種類、主にはコンピュータデバイスの起動前から例えばBIOSやMBRに潜伏していた場合等には、例えばオペレーティングシステムより上位の部分が、起動時に潜伏マルウエアによって改変され得るが、かかる場合の対策に関しては何等示されていない。特に、仮想マシンモニタ及び保護エージェントのインストール方法に関しては何等記載がなく、これら自体のセキュリティ性の確保は不明である。さらに、内部資源が改変された場合にシャットダウンし、リブートし得たとしても、それで不備の事情が完全に改善されるものでもない。
 本発明の目的は、情報処理装置の起動に連動して主メモリの一部領域にロードされ、オペレーティングシステムからアクセス権限の高い、この一部領域への不当アクセスを制限した高セキュリティの情報処理空間管理技術を提供することにある。
 本発明に係る情報処理空間管理方法は、BIOSの起動に応じて外部デバイスから主メモリの起動メモリ領域に専用ローダをロードする専用ローダロードステップと、前記主メモリの一部の第1領域に対して保護特権を設定し、かつ前記主メモリの前記第1領域及び起動メモリ領域とは異なる第2領域へロードされるOS(Operating System)の前記第1領域へのアクセスを監視するための管理ファイルを前記専用ローダによって前記外部デバイスから前記第1領域にロードする管理ファイルロードステップと、前記管理ファイルのロードから前記OSのロードまでの間に、前記保護特権より低いアクセス権限のアクセス保護情報を前記第2領域に設定するアクセス保護情報設定ステップとを備えたことを特徴とするものである。
 また、本発明に係る外部デバイスは、接続された情報処理装置にファイルのロードを行う外部デバイスにおいて、BIOSの起動に応じて主メモリの起動メモリ領域にロードする専用ローダと、主メモリの一部の第1領域に対して保護特権を設定し、かつ前記主メモリの前記第1領域及び前記起動メモリ領域とは異なる第2領域へロードされるOS(Operating System)の前記第1領域へのアクセスを監視するためのファイルであって前記第1領域にロードされる管理ファイルと、前記管理ファイルのロードから前記OSのロードまでの間にロードされ、前記保護特権より低いアクセス権限のアクセス保護情報を前記第2領域に設定するアクセス保護情報設定ファイルとを含むことを特徴とするものである。
 また、本発明に係る情報処理装置は、ワークメモリである主メモリを有し、接続された外部デバイスから所定のファイルを前記主メモリにロードする情報処理装置において、BIOSの起動に応じて前記外部デバイスから前記主メモリの起動メモリ領域に専用ローダをロードする専用ローダロード部と、前記主メモリの一部の第1領域に対して保護特権を設定し、かつ前記主メモリの前記第1領域及び起動メモリ領域とは異なる第2領域へロードされるOS(Operating System)の前記第1領域へのアクセスを監視するための管理ファイルを前記専用ローダによって前記外部デバイスから前記第1領域にロードする管理ファイルロード処理手段と、前記管理ファイルのロードから前記OSのロードまでの間に、前記保護特権より低いアクセス権限のアクセス保護情報を前記第2領域に設定するアクセス保護情報設定手段とを備えたことを特徴とするものである。
 これらの発明によれば、情報処理装置の電源が投入されると、BIOSが起動する。このBIOSの起動に応じて、情報処理装置に接続されている外部デバイスから主メモリの起動メモリ領域に専用ローダがロードされる。次いで、前記主メモリの一部の第1領域に対して保護特権が設定される。かつ前記主メモリの前記第1領域及び起動メモリ領域とは異なる第2領域へロードされるOS(Operating System)が、例えばマルウエアに感染しているような場合に、第2領域から第1領域へアクセスがあったかどうかを監視するための管理ファイルが前記専用ローダによって前記外部デバイスから前記第1領域にロードされる。そして、前記管理ファイルのロードから前記OSのロードまでの間に、前記保護特権より低いアクセス権限のアクセス保護情報が前記第2領域に設定される。すなわち、本発明は、BIOSの起動に応じて外部デバイスから専用ローダをロードするようにしたので、情報処理装置内のBIOSやMBRに潜伏しているマルウエアの挙動を抑止して専用ローダを起動メモリ領域にクリーンのままロードすることが可能となる。そして、クリーンな専用ローダによって管理ファイルが同外部デバイスからロードされるので、保護特権の適正な設定及び不当アクセスの適正な監視が確保される。従って、マルウエアに感染したOSのプログラムが複製を行う等の目的でアクセスを企てて第2領域から第1領域に侵入してきても、アクセス保護情報の差によって、確実にフック(検知)され、かかる不当なアクセスは無効にされる。
 本発明によれば、BIOS起動に応じて主メモリ内の第1領域にセキュア領域を構築すると共にアクセス保護情報に差を持たせることで、第2領域からの不当なアクセスを無効化し、主メモリ内にセキュア領域を確保することができる。
本発明に係る外部デバイスが適用されるネットワーク通信システムの一実施形態を示す概要図である。 図1に示す外部デバイスのハードウエア構成の一例を示すブロック図である。 端末及び外部デバイスのブートに関連する機能部の一例を示すブロック図である。 専用ローダのブートでのリアルモードにおける端末のRAMのメモリマップの一例を示す図である。 専用ローダのブートでのプロテクトモードにおける端末のRAMのメモリマップの一例を示す図である。 端末のCPUによって実行されるシステムBIOSの起動処理の手順を説明するフローチャートである。 端末のCPUによって実行されるシステムBIOSのPOST処理(ステップS3)の手順を説明するフローチャートである。 外部デバイスのCPUによって実行される監視処理Iの手順を説明するフローチャートである。 外部デバイスのCPUによって実行される監視処理IIの手順を説明するフローチャートである。 端末のCPUによって実行される拡張BIOS処理の手順を説明するフローチャートである。 外部デバイスのCPU及び拡張BIOSによって実行される監視処理IIIの手順を示すための説明図である。 端末側のCPUによって実行される監視処理IIIの一部手順を説明するフローチャートである。 外部デバイス側のCPUによって実行される監視処理IIIの一部手順を説明するフローチャートである。 1MB~100MBの領域に管理ファイル125、管理用GDT126及び管理用IDT127が展開された状態のメモリマップである。 1MB~100MBの領域にTSS128、PTE(Page Table Entry)129及び管理用割込ハンドラ130が作成された状態のメモリマップである。 100MB~101MBの領域に0MB~1MBの内容(実質的に専用ローダと外部デバイス2から新たにロードされたシステムBIOS)がコピーされた状態、及び同領域の所定位置にOSローダ131が作成された状態のメモリマップである。 101MB以上の領域にOSがロードされる状態を示すメモリマップである。 情報の格納箇所を示すGDT126の全体概要を示す図である。 PTEのメモリマップを示す図である。 リニアアドレスから物理アドレスに変換する変換方法を図で示した図である。 プロテクトモードにおけるリニアアドレスと物理アドレスとの関係の一例を示す図である。 端末のCPUによって実行される専用ローダ123の処理を示すフローチャートである。 端末のCPUによって実行される管理ファイル125の処理を示すフローチャートである。 端末のCPUによって実行される管理ファイル125のOSローダ作成処理を示すサブルーチンである。 端末のCPUによって実行される、OSローダ作成後における管理ファイル125の処理を示すフローチャートである。 端末のCPUによって実行される、OSブート後における管理ファイル125の処理を示すフローチャートである。 端末のCPUによって実行される、処理環境の切替処理を示すフローチャートである。 スタック領域1203を割込ベクタテーブル1202に重畳する方法を説明する図である。 ダミーコードの割込ベクタテーブルへの上書き処理、及び一般保護例外に基づく正常リセット処理を説明する図である。 ブートの流れを簡単に説明する図である。
 図1は、本発明に係る外部デバイスが適用されるネットワーク通信システムの一実施形態を示す概要図である。図2は、図1に示す外部デバイスのハードウエア構成の一例を示すブロック図である。図3は、端末及び外部デバイスのブート及び管理に関連する機能部の一例を示すブロック図である。図4は、専用ローダのブートでのリアルモードにおける端末のRAMのメモリマップの一例を示す図である。図5は、専用ローダのブートでのプロテクトモードにおける端末のRAMのメモリマップの一例を示す図である。
 図1に示すネットワーク通信システムは、例えばパーソナルコンピュータを内蔵する情報処理装置の一例である端末1と、この端末1に接続可能にされた、例えばPCI(Peripheral Component Interconnect)タイプの外部デバイス2と、インターネット等のネットワーク3とを備えている。端末1はプロバイダ(ISP)4を介してネットワーク3と接続されている。外部デバイス2の一例としてのPCIは、所定サイズからなるカセット型の筐体を有し、外部に端末1と接続するためのI/Oポートを有し、内部に、後述するようにCPU、拡張BIOS等を記憶する記憶部及びネットワーク3との通信を可能にするNIC(Network Interface Card)を備えている。本実施形態では、端末1はそのままネットワーク3に接続される一方、外部デバイス2が装着された状態では、後述するように外部デバイス2を経由してネットワーク3と接続される構成を有する。ネットワーク3上には複数のISP4が配設されており、各ISP4には、1又は複数の端末1や各種の情報を提供する図略のWebサイトが接続されている。外部デバイス2は、例えば、端末1からの操作を通して所定のサービスの提供を受ける権限を持つ会員として登録を受ける際に支給される。外部デバイス2は、内部の記憶部に会員を識別する情報及びその他の情報が記録されている。
 端末1は、コンピュータを有しており、図3,図4及び図5に示すように、制御手段としてのCPU(Central Processing Unit)10を有する。CPU10は、ROM(Read Only Memory)11とRAM(Random Access Memory)12とに接続されている。ROM11には、データが書き換え可能なフラッシュROMを含む。本実施形態では、ROM11は、このフラッシュROM、またCMOS(Complementary Metal OxideSemiconductor)等を備え、フラッシュROM11Aには、BIOS(Basic Input/Output System)が書き込まれている。なお、本実施形態では、外部デバイス2にも後述するようにBIOSを格納していることから、以後、端末1のBIOSをシステムBIOSと呼称し、外部デバイス2のBIOSを拡張BIOSと呼称して、両者を区別する。
 また、CPU10には、図3に示すように、操作者が必要な指令や情報を入力するテンキーを有するキーボードやマウス等を備える操作部13及び画像を表示する表示部14が接続されている。表示部14は、入力情報の確認のための表示や通信内容の表示のために用いられる。なお、システムBIOSは、拡張BIOSを有するデバイスである外部デバイス2を優先的に指定するように設定されている。RAM12は、所定の記憶容量、一般的には32ビット態様で4GB(B:byte)の記憶容量を有する。4GBを有するRAM12のうち、例えば16ビット態様の1MB(正確には1MB+64KBであるが、説明の便宜上、1MBと表記する。)分は、起動時のリアルモードでのワークエリアである起動メモリ領域120となる。また、本実施形態では、OSの管理のための後述する管理ファイル(管理プログラム等)が展開される所定の領域、本実施形態では1MB~100MB、そして、残りの領域が起動後の通常処理を実行する場合のワークエリアとなる。本実施形態では、0MB~100MBを第1領域とし、そのうちの0MB~1MBの起動メモリ領域120を第1領域の一部とし、100MB~4GBを第2領域としている。更に、別のメモリ部分として、システムBIOS他の種々のプログラムやデータ類が格納されるハードディスク(HD)12A等を有する。
 また、端末1には、例えば図4、図5に示すように、チップセット15が設けられている。チップセット15は、図略のマザーボードを構成する主要部品で、CPUや各種メモリ、その他ハードディスク(HD)や図略のCD-ROM等、マザーボードに繋がっているあらゆる部品間のデータのやり取りをコントロールするものである。詳細は、後述する。
 本ネットワーク3には、ISP4を介して、1又は所定数の会員サーバ5及び複数の取引先端末6が接続されている。会員サーバ5は、端末1を所有する乃至は操作を支配し得る会員に関する適宜な情報、例えば会員の氏名、名称、電子メールアドレス、住所等の会員情報等を会員単位で記憶するものである。取引先端末6は、クライアントである各端末1からの取引要求に対する処理、例えば電子決済による処理、取引情報を記憶しかつ情報管理を行うものである。会員サーバ5には、前記会員情報の他、必要に応じて端末1に提供可能な情報、例えば会員に提供するサービスを実行する上で必要な処理ソフトウエア、例えば所要の書類を作成するための書類作成プログラムとか、さらには大容量サーバに端末1毎の取引内容及び履歴情報が記憶(保管及び管理)されていてもよい。
 なお、図1のネットワーク通信システムは、以下の態様が一例として採用可能である。端末1は、専用のネットワークにのみ接続可能な専用端末としてもよいし、インターネットとの切り替えで他のネットワークにも接続可能な汎用端末のいずれでもよい。端末1のHD12A内には、例えば汎用端末の場合、一般的な文書や図形の作成ソフトウエアを利用しての情報の作成、加工、記憶、更に通信用のソフトウエアを利用しての情報の送受信等の一般的な各処理を実行するプログラムファイル(以下、単にAP(application program)という)が格納されている。また、外部デバイス2内には、必要に応じて特定のアプリケーションソフトウエアの実行に関連する処理を行うプログラムファイル(特定APという)が記憶されている。汎用のAPは、端末1内のOSローダによって読み込まれるOSによって動作可能にされるものであり、特定APは、外部デバイス2内のローダ(または再起動プログラムによって起動されたローダ)によって読み込まれるOSによって動作可能にされるものである。より具体的には、会員間である消費者、商店及び企業等の端末1には、特定APとして、商品やサービスの売買、見積もり乃至は請求、入出金に関する(いわゆる商取引に関する)各書類の作成と通信とを行うソフトウエア、及び必要に応じて所定の認証処理のソフトウエアが、ブート後に外部デバイス2からロードされる。すなわち、端末1は、特定APによって、一般的な商取引における決済、例えば業者店舗からの請求書の発行、受領や、購買者側から請求書発行元の契約金融機関の口座への入金(すなわち支払い)指示書、その受領書の発行の他、電子決済の如何を問わず種々の電子書面での送受信処理を可能とするものである。特定APは、各種書類をテキスト形式の、またバイナリー形式の電子ファイルとして作成可能である。この電子ファイルは、例えば会員サーバ5を中継して(あるいは並行して)外部デバイス2経由で端末1間で授受される。各金融機関の端末1には、消費者や企業の端末1からの金融的な決済書面に従った決済指示処理(金融機関間での決済処理の指令等)を行う特定APもインストールされている。登録会員毎に固有の情報が書き込まれた外部デバイス2が配布される。会員はサービスの提供を受ける場合、この外部デバイス2を端末1のポート1aに差し込み、少なくとも外部デバイス2の正当性の認証処理を、好ましくはさらに個人認証(外部デバイス2の正当所持者であることの認証)処理を受けた場合を条件としている。
 会員サーバ5は、各会員のファイル送受信履歴やそのファイル類等を管理用に記憶する記憶部を備えている。会員サーバ5は、認証機能を備えていてもよく、この場合、認証機能は、会員サーバ5と端末1との間で授受されるファイル、すなわちパケットを閲覧して、会員の正当性の有無の認証を行う態様としてもよい。
 また、図1に示すネットワーク通信システムは、他に種々の適用例が考えられる。例えば秘密情報を作成、保管管理する、例えば公的乃至は準公的(民間含む)な機関である団体組織(国、自治体、協会、組合等含む)外にある端末1との間における情報通信・管理体制に適用する例を挙げることができる。団体組織外にある端末との間における情報通信としては、例えば証明書の発行、申請書の発送などが想定される。また、LANシステムにも同様に適用可能である。
 なお、TCP/IP(transmission control protocol/internet protocol)規約に沿って形成されたパケットによって文書ファイルの送受信を行う場合、受信したパケットを元のファイルに戻したり、送信予定のファイルをパケットに置換して送信したりする。さらに、送信される各パケットのヘッダには、送信元である端末1のグローバルのIPアドレス、送信先である他の端末及び会員サーバのグローバルのIPアドレスが含まれる。
 図2に示すNIC26には図略のルータが装備され、乃至ルータとシリアルに接続されている。このルータは、例えば、送信信号乃至は受信信号としての各パケットの所定位置に付加されている送信先を示すアドレス情報が、インターネット用の規約に基づくグローバルIPアドレスか、このグローバルIPアドレスの付し方とは異なる(グローバルIPアドレスとは識別可能な形態である)専用ネットワーク用の、例えばイーサネット(登録商標)用等に準じた所定のローカルIPアドレス(MACアドレス)かを識別するためのアドレス情報(ルーティングテーブルやarp(Address Resolution Protocol)テーブル)の設定を行うものである。パケットは、テーブルと照合されて、アドレスの一致したルートへのみ送信され、これにより伝送路をインターネット経由か、専用ネットワークかにソフトウエア的に切り換えることができる。
 図2において、外部デバイス2は、筐体内にマザーボード(図略)を備え、マザーボード上には各種の回路素子及び半導体素子が搭載されている。外部デバイス2は、制御手段であるCPU20を備える。CPU20には、ROM21及びRAM22が接続されている。また、CPU20には、マザーボード上に搭載された、拡張BIOSを記憶するROM等の拡張BIOS記憶部23及びDMAC(Direct Memory Access controller)24が接続され、更に、ROMここではフラッシュROM25、及びNIC26が接続されている。I/Oインターフェース27は、外部デバイス2の入出力部に設けられ、端末1のポート1aと装着脱可能に構成され、装着された状態で、所定数のラインを介して通信、電源供給が可能にされている。なお、I/Oインターフェース27には拡張BIOS記憶部23及びDMAC24が接続されているが、CPU20との間で通信可能とされている。外部デバイス2は、起動された端末1におけるOSの監視を行う管理ファイルのロード及びOSの監視を行うためのものである。また、拡張BIOSはフラッシュROM25に格納された態様でもよい。
 図3に示すように、ROM21は、外部デバイス2として実行するべき各種の処理プログラム及び外部デバイスとして実行するべき各種の処理プログラムが格納される処理プログラム記憶部211、少なくとも会員を識別するための情報を記憶する会員情報記憶部212、及び後述するマルウエア有無監視のための基準時間情報を記憶する基準時間記憶部213を備えている。RAM22は、処理途中のデータや転送データを一時的に格納するものである。
 CPU20は、端末1の起動時及び操作時に、ROM21から必要な処理プログラムを読み出して実行するものである。CPU10は、電源が投入されると、システムBIOSを起動し、必要な自己診断処理を実行した後、ブートの前に行われる処理である、利用可能な周辺機器の初期化を行うPOST(Power On Self Test)処理の実行に移行する。POST処理では、接続されている外部デバイスに対して、いわゆる拡張BIOSを格納したものがあるか否かが検索される。そして、拡張BIOSを格納した外部デバイスが検索されると、当該外部デバイスの拡張BIOSの取り込み処理が行われる。
 拡張BIOSは、端末1に読み込まれ、制御が渡された後に起動し、外部デバイス2との間で所定の情報、本実施形態では、後述する専用ローダの取り込みを行わせるプログラムである。
 DMAC24は、CPU10の制御を受けることなく、端末1と外部デバイス2間のバスの制御を管理することによって情報の授受を強制的に行うバスマスタ方式のコントローラ(回路)をいう。ここでは、CPU10のからの要求、外部デバイス2内のCPU20の動作状況を監視し、監視結果に応じて、両デバイス間で前記DMA転送を行うものである。
 図2において、フラッシュROM25は、端末1に読み込まれる各種の情報を格納している。専用ローダ記憶部251は、後述するようにRAM12がリアルモードの状態にあるときに、DMAC24によって転送されてRAM12に読み込まれるプログラムである専用ローダ(R)を格納するものである。専用ローダ記憶部252は、後述するようにRAM12がプロテクトモードの状態にあるときに、後述するようにリアルモードに戻してDMAC24によって転送されてRAM12に読み込まれる、プログラムである専用ローダ(P)を格納するものである。専用ローダ(P)の読み込み時点で割込ベクタテーブルのレジスタIDTR(InterruptDescriptor Table Register)がプロテクトモード用になっているので、リアルモードに戻さないまま専用ローダ(P)を展開した場合、リアルモード時の割込ベクタテーブルが使用できなくなる。そこで、拡張BIOSは、レジスタIDTRをリアルモード用の割込ベクタテーブルに書き換えるリアルモード戻し処理が先に行われるようになっている。
 なお、専用ローダ(R)は1MBの情報量を有するもので、起動メモリ領域120に展開される。専用ローダ(P)は、4GBの情報量を有するもので、RAM12の全体に上書きで展開される。専用ローダ(R)、(P)のローダ命令部分のプログラム内容は共通しており、その他の情報部分の内容は、起動メモリ領域120、RAM12を上書き(リセット)するために使用される情報、例えばデータ“0”等である。なお、専用ローダ(R)の情報内容を専用ローダ(P)と共通にしてもよい。
 管理ファイル記憶部253は、マルウエアに汚染されたOS(乃至はAP)の後述する不正な動作を監視し、その動作を無効にするプログラムを記憶するものである。システムテーブル記憶部254は、管理ファイルの資源となるIDT(InterruptDescriptor Table)、GDT(Global Descriptor Table)、TSS(Task State Segment)等を記憶するものである。IPL(Initial Program Loader)すなわちここではOSローダを記憶するOSローダ記憶部255は、HD12AからOSをRAM12にロードするためのプログラムである。システムBIOS記憶部256は、フラッシュROM11Aに格納されているシステムBIOSと同一のプログラムである。システムBIOS記憶部256に記憶されたシステムBIOSは、HD12Aに格納されているシステムBIOSがマルウエアに汚染される可能性があることから、専用ローダがロードされた後に、起動メモリ領域120にロードするためのものである。特定OS,AP記憶部257は、プログラムであるOS等(各I/OデバイスのI/O制御ドライバ、特定APを含む)を格納するものである。各I/Oデバイスは、例えば操作部13、表示部14、図略のプリンタ等の周辺機器である。
 また、専用ローダ(P)を、1MBのサイズのファイルと、その専用ローダ(P)内で1MB以上をクリアするロジックとを備えたものとし、専用ローダ(P)の実行時に、端末1のCPU10で、1MBの読み込み処理と、クリア処理とを行わせる態様という手法を採用してもよい。この方法によれば、4GBの転送に比してパフォーマンス面の向上が期待できる。
 NIC26は、ネットワーク3を介して他の端末1等と通信を行う場合の情報処理を実行するもので、そのための所定の処理プログラムを記憶するROM及び処理内容を一時的に格納するRAM(共に図略)を有する。また、前述したように、ネットワーク3との接続を管理するNIC26は、図略のルータを介してISP4までの公衆通信回線と接続され、その網及びネットワーク3に対する通信制御を行うものである。
 I/Oインターフェース27は、ポート1aを介して外部デバイス2との間で情報の授受を行うラインの他、電源供給を行うラインも有する。端末1は図略の電源回路を有しており、外部デバイス2が端末1に装着されると、この充電回路からポート1a、外部デバイス2のI/Oインターフェース27を経由して、外部デバイス2内の図略の充電回路に電流が供給されることで外部デバイス2の電源起動が行われる。
 図3において、端末1のCPU10は、ROM11、フラッシュROM11A、HD12A及びフラッシュROM25からRAM12に読み出された処理プログラムを実行することによって、システムBIOSの起動から拡張BIOSの実行を行う専用ローダロード処理部101、ロードされた専用ローダを実行させる専用ローダ処理部102、専用ローダの実行によってロードされる管理ファイル及びその動作環境を作成する管理ファイル動作環境作成部103、管理ファイルの準備終了後にOSローダ(IPL)をロードするOSローダロード処理部104、ロードされたOSローダ及びその動作環境を作成するOSローダ処理部105、管理ファイルの下にOSローダによるOSのブート乃至ブート後の動作の監視を行うOS動作監視部106、特定APあるいは汎用APを用いて文書作成その他種々の処理を実行する情報処理部107、端末1からネットワーク3を介して一般の端末1やウエブサイトサーバと通信し、またNIC26からネットワーク3を介して他の会員の端末1、会員サーバ5及び取引先端末6との間で情報の授受を行うネットワーク通信処理部108、例えば操作部13からの特定の操作に応じて動作環境を汎用OS環境と特定OS環境との間で切り替える動作環境切替部109として機能する。
 専用ローダロード処理部101は、端末1の電源投入を受けて、自己診断処理を実行し、次いで、POST処理によってメモリや周辺機器の状態をチェックするものである。次いで、BIOSに設定されたデバイス、本実施形態では拡張BIOSが格納されている外部デバイス2から、この拡張BIOSを起動するようになっている。
 専用ローダロード処理部101は、外部デバイス2側の専用ローダロード処理部201によって読み出される拡張BIOSをRAM12の起動メモリ領域120内の所定の領域に読み込む処理を行うものである。なお、外部デバイス2が装着されていない場合には、優先順位の順に、例えばROMからMBR(マスターブートレコード)のプログラムが読み出され、次いで読み込まれたマスターブートプログラムに制御が渡される。
 専用ローダロード処理部101は、拡張BIOSがRAM12の起動メモリ領域120に読み込まれ、システムBIOSによって制御を渡された後に、拡張BIOSを実行するものである。拡張BIOSは、各種の命令コードを外部デバイス2からRAM12の起動メモリ領域120に読み出して各命令に制御を渡すようにしている。命令コードとしては、ここでは、所定の複数が設定されている。すなわち、ある命令コードによって、端末1内に特定APが実行可能な環境を準備するべく、必要なデバイスのドライバに対する初期化処理を実行する。必要なデバイスとしては、表示部14、操作部13を構成するキーボードやマウスである。また、ある命令コードによって、I/OAPIC150のリダイレクションテーブル1501(図4参照)に外部デバイス2のIRQと割込ベクタテーブル(INT)とを登録する。なお、この登録時のIRQの番号を割込番号として言い換えている。また、I/OAPIC150は、マルチプロセッサ対応可能で、受け取った割込をCPU10に通知するためのリダイレクションテーブル1501でハードウエア割り込みでの優先順位が設定可能な割込コントローラである。ここに、IRQとは割込要求であり、割込番号とは同時にハードウエア割り込みが発生した時の優先順を指す順位情報である。
 また、ある命令コードは、外部デバイス2に対して、DMAC24を使用してデータ転送を受け付けるためのデータ転送要求信号を送信させるものである。このデータ転送要求信号によって転送が要求されるデータは、略1MBのローダ等(割込ベクタテーブルを含む)である。拡張BIOSによって実行される専用ローダのローダ処理に、DMAバスマスタ転送方式を採用して少なくともCPU10の関与を外すことで、仮にこの間、CPU10がマルウエアに乗っ取られていたとしても、データの転送自体を正常に行わせることができる。従って、専用ローダ(R)をRAM12の起動メモリ領域120に強制的(CPU10の制御を受けることなく)に、直前のデータを消しながら、すなわち上書きすることで、マルウエアによって起動メモリ領域120内にウイルス等が複製されたとしても、これらを確実に消去することが可能となる。なお、必要に応じて、SMRAM制御レジスタのD_LCKビットをセットして、SMRAMを書き込み禁止(アクセス禁止)させる命令コードを採用する態様であってもよい。このように、アクセス禁止のためのロックをかけることで、全てのメモリに自由にアクセスできる最上位権限であるSMM(システムマネージメントモード)という特権モードを悪用させないようにすることが可能となる。
 ところで、システムBIOSから立ち上がる起動の間に、プロテクトモードの動作状態にあることが検知されると、マルウエアが存在する可能性が高いと見なして、起動動作を中止することが考えられる。この場合には、システムBIOSを書き換えたり、ワクチンによってシステムBIOS内に潜伏するウイルスを駆除する対処方法が考えられる。これによって、マルウエアが存在する環境下で情報処理を行うことによる危険は回避される。一方、このように起動を中断すれば、対処するまでの間、一律に端末1の立ち上げができず、特定APの使用環境を円滑に会員に提供できないといった不便さがあり、問題がないではない。そこで、プロテクトモードによる異常が発生した場合には、リセット処理を実行させて、リアルモードに設定し直すようにしている。
 専用ローダロード処理部101は、拡張BIOSに制御が移行された後に、後述するように外部デバイス2から送信されてくる、リアルモードへの設定のための命令コマンドによって、実行されるものである。システムBIOSの起動動作中に、端末1がプロテクトモードに設定されていると判断、あるいはリアルモードに設定されていることが疑わしいと判断された場合に発せられる、前記リアルモードへの設定のための命令コマンドを受けて、専用ローダロード処理部101は、モードをリアルモードに設置し直すための処理の一部を実行するものである。本実施例では、前述のレジスタIDTRをリアルモードの割込ベクタテーブルに戻す処理、I/OAPIC150のリダイレクションテーブル1501に外部デバイス2のIRQと割込番号を登録する処理、データ転送要求信号の出力処理である。かかるモード判断処理は、マルウエアの影響を受けないようにするべく、後述するように外部デバイス2側で実行される。
 次に、図3において、CPU20は、ROM21に記憶されたプログラムを実行することによって、専用ローダをロードするための拡張BIOSの端末1への読み出しを行う専用ローダロード処理部201、専用ローダのロード動作を監視し、監視内容に応じた指示を発する監視部202、管理ファイルの端末1側への読み出しを行わせる管理ファイルロード処理部203、OSローダの一部である外部デバイス2側から端末1へのロード部分の読み出し行わせるOSローダロード処理部204、及び外部ブートによる起動後に特定APを用いて作成されたファイル等をNIC26及びネットワーク3を介して他の端末1、会員サーバ5及び取引先端末6との間で授受するネットワーク通信処理部205として機能する。監視部202は、ここでは後述の3態様の監視方法が含まれており、計時手段による監視態様、リアルモードかプロテクトモードかのモード状態を判断するモード判断手段による監視態様、及びモードをチェックするモードチェック手段による監視態様である。
 専用ローダロード処理部201は、端末1でのPOST処理によって読み出し指示を受けてRAM12へ拡張BIOSの読み出し処理を実行するものである。また、専用ローダロード処理部201は、監視部202の監視内容に応じて、リアルモードの状態においてローダ(R)を転送するべく、DMAC24を起動する(転送指示を行う)ものであり、一方、プロテクトモードの状態においてローダ(P)をRAM12に転送するべく、DMAC24を起動する(転送要求(指示)を行う)ものである。
 監視部202の計時手段は、端末1からの電源供給を受けて外部デバイス2が起動するレベルに達した時点から計時をスタートし、端末1のシステムBIOSが拡張BIOSに制御を渡して命令コードが外部デバイス2に送出されたことを受けて計時動作をストップすることで、その間の所要時間を計測するものである。
 監視部202のモード判断手段は、計時手段で計時された時間と、ROM21の基準時間記憶部213に記憶されている基準時間情報との大小(長短)を比較し、計時時間が基準時間を超えている場合には、マルウエアによってモードがプロテクトモードになっていると見なしてリアルモードへの設定し直し(書き換え)のための命令コードを端末1に送出するものである。なお、基準時間とは、以下のようにして設定されている。すなわち、まず、端末1に電源が投入され、システムBIOSが起動してPOST処理が実行され、RAM12に拡張BIOSが展開され、さらに、拡張BIOSに制御が渡されるまでに要する時間は、マルウエアが動作せず正常の場合、ほぼ予め設定された時間となる。
 一方、システムBIOSにマルウエアが潜伏しており、あるいはシステムBIOS起動中にマルウエアが侵入してきて、RAM12上にプロテクトモード環境を構築する場合には、前記の正常な場合での設定時間に比してより大きな時間を要することとなる。そこで、端末1の起動、すなわち外部デバイス2の起動から拡張BIOSへの制御移管までの経過時間によってRAM12がリアルモード空間にあるか、プロテクトモード空間にあるかを、端末1側で直接モード内容を判断する方法ではなく、外部デバイス2側で判断するようにしている。
 図4は、リアルモードにおけるRAM12の内容であり、図5はプロテクトモードにおけるRAM12の内容である。図4に示すように、チップセット15は、I/OAPIC150の他、CPU10が複数ある態様では、CPU10毎に、ローカルAPIC151、EFLAGSや汎用レジスタ等の各種のレジスタからなるレジスタ群152を含むチップセット15a~15nを有する。また、RAM12のうち、0MB~1MBの起動メモリ領域120には、システムBIOS121、拡張BIOS122、割込ベクタテーブルを含む専用ローダ123、一時的GDT124が展開されている。なお、専用ローダ123は起動メモリ領域120の全域に展開されるもので、ローダとして機能するプログラム部分と、1MB分の転送データを作成するために補充されたダミーデータ等を適宜含む。なお、一時的GDT124は専用ローダ123によって作成されたもので、専用ローダ123によって1MB~100MBに管理ファイルをアンリアルモード(Unreal mood)でロードするためのアドレッシング用である。ここにアンリアルモードとは、リアルモード環境においてチップセット15内の図略のデータセグメントレジスタのアクセスリミットを4GBに変更することによって、データアクセスのみ1MB以上、すなわち起動メモリ領域120外に対してアクセスを可能にした特殊な状態を指す。
 一方、プロテクトモードでは、図5に示すように、各チップセット15a~15nには、レジスタ群152に、割込ディスクリプタテーブル(IDT)のアドレスが格納され、CPU10によって参照されるレジスタIDTR(InterruptDescriptor Table Register:割込ディスクリプタテーブルレジスタ)も含まれている。また、4GBのRAM12の任意の領域について、専用ローダ内の割込ベクタテーブル123’、システムBIOS121、拡張BIOS122が展開され、さらに任意の領域にはプロテクトモードを構成するための、IDT(InterruptDescriptor Table)、GDT(Global Descriptor Table)、さらにPGM(Program)1~i及びPGM1~i毎のTSS(Task State Segment)の各管理テーブル(但し、PGMは除く)が形式的に作成されている。すなわち、図5は、RAM12に、あたかも図4と同様な空間が存在するかのように、マルウエアによって作成された、外部デバイス2に見せるための環境設定の結果である。
 マルウエアは、システムBIOSの動作中に、プロテクトモードの環境をRAM12上に展開するために、図5に示すようなそれぞれのプログラムを作成し、RAM12上の適所に展開し、その後に、制御を拡張BIOSに渡すことになる。さらに、マルウエアの本体プログラムをRAM12内に展開する必要があり、これらのデータは外部媒体である、ハードディスク(HD12A)から主に取得しなければならない。従って、端末1の起動から拡張BIOS122に制御を渡すまでの所要時間は、図4の場合に比してかなり大きな時間にならざるを得ないことになる。そこで、図4のリアルモードにおける場合の所要時間と、図5のプロテクトモードにおける場合の所要時間との間の適当な時間を基準時間として設定している。
 図3に戻って、監視部202のモードチェック手段について説明する。監視部202のモードチェック手段は、計時手段による監視態様やモード判断手段による監視態様とは別の方法で監視を行う実施態様である。すなわち、システムBIOSが拡張BIOSに制御を渡した後、外部デバイス2が命令コードを発するようにしている。DMAC24はこの命令コードによって起動され、RAM12の内容を、CPU10の制御を受けることなく、全て転送によって読み取り、外部デバイス2に取り込む。監視部202のモードチェック手段は、読み込まれたRAM12の内容をチェックして、プロテクトモード環境にあるか否かの判断を行う。判断手法は、RAM12のデータ中に、プロテクトモードに固有の情報、例えば前述したGDT,IDT又はTSS等の管理テーブルの有無を判断材料としてもよい。このように、プロテクトモード空間にあるかを、端末1側で判断する方法ではなく、外部デバイス2側で判断するようにしている。
 さらに、監視部202のモードチェック手段は、マルウエアによってモードがプロテクトモードになっている判断すると、リアルモードへの設定し直しのための命令コードを端末1に送出するものである。
 続いて、図6~図10により、CPU10、CPU20におけるブート処理を説明する。図6は、端末1のCPU10によって実行されるシステムBIOSの起動処理の手順を説明するフローチャートである。まず、端末1の電源投入後、システムBIOSのチェックが行われ(ステップS1)、次いでPOST処理が実行される(ステップS3)。そして、POST処理によって外部デバイス2から拡張BIOSの読み込みが終了したか否かが判断される(ステップS5)。拡張BIOSの読み込みが終了していなければ読み取りが継続され、読み取りが終了したのであれば、拡張BIOSへ制御が渡される(ステップS7)。
 なお、以降においては、端末1のポート1aに外部デバイス2の一例としてPCIが装着されているという前提で述べる。すなわち、端末1のポート1aにPCIである外部デバイス2が装着されていると、POST処理によって、システムBIOSの起動ルーチンによって拡張BIOSがRAM12に読み込まれる。
 図7は、端末1のCPU10によって実行されるシステムBIOSのPOST処理(ステップS3)の手順を説明するフローチャートである。まず、端末1に接続されているデバイスとしてPCIが装着されているか否かが判断され(ステップS11)、PCIが装着されていなければ、システムBIOSは通常の起動処理が実行される(ステップS13)。一方、PCIが装着されていると、デバイスのBIOS、すなわち拡張BIOSが検索されて(ステップS15)、この拡張BIOSがRAM12にロードされる(ステップS17)。次いで、ロードが終了すると、システムBIOSによってロード終了信号が出力される(ステップS19)。
 図8は、外部デバイス2のCPU20によって実行される監視処理Iの手順を説明するフローチャートである。まず、外部デバイス2の電源がオンしたか否かが判断され、オンしたのであれば(ステップ#1)、監視部202の計時手段によって計時動作がスタートされる(ステップ#3)。次いで、システムBIOSから命令コードが受信されるまで待機し(ステップ#5でNo)、命令コードが受信されると、計時動作がストップされる(ステップ#7)。
 次いで、計測した計時時間が基準時間より短い(計時時間<基準時間)か否かが判断(比較)され(ステップ#9)。計時時間が基準時間より短ければ、端末1はプロテクトモード環境に設定されていないと判断し、すなわち少なくともマルウエアによって端末1のCPU10がプロテクトモードに設定されていないとして、本フローを抜ける。一方、計時時間が基準時間と等しいか長ければ、端末1のCPU10はプロテクトモード環境に設定されている可能性があると判断し、すなわち、少なくともマルウエアによって端末1のCPU10の環境がプロテクトモードに設定されている可能性があるとして、端末1のCPU10をリアルモードへ設定し直すための命令コードを返信して(ステップ#11)、本フローを抜ける。
 図9は、外部デバイス2のCPU20によって実行される監視処理IIの手順を説明するフローチャートである。まず、(端末1側において、システムBIOSから拡張BIOSにCPU10の制御が渡されて)、拡張BIOSから前述した命令コードが受信されたか否かが判断される(ステップ#21)。この命令コードが受信されていなければ、本フローをスルーする。一方、この命令コードが受信されたのであれば、端末1の制御が拡張BIOSにあると判断して、DMAC24の起動及びDMAC24による転送対象であるRAM12の指定を行う(ステップ#23)。これによりDMAC24を介してRAM12の内容が外部デバイス2のRAM22に取り込まれる。この時点においても、端末1のCPU10の制御から離れてRAM12の全ての内容(ここでは4GB)を取り込むようにして、CPU10のモードの如何による影響を全く受けないようにしている。
 次いで、取り込んだRAM12の内容に対して、プロテクトモードに固有の内容、具体的には前述したIDT、GDT、TSS等の固有の管理テーブルが存在するか否かがチェックされる(ステップ#25)。RAM12内にプロテクトモード固有の内容が含まれていなければ、リアルモードであると判断して、本フローを抜ける。
 一方、RAM12内にプロテクトモード固有の内容が含まれている場合には、端末1のCPU10はプロテクトモード環境に設定されている可能性があると判断し、すなわち、少なくともマルウエアによって端末1のCPU10の環境がプロテクトモードに設定されている可能性があるとして、端末1のCPU10をリアルモードへ設定し直すための命令コードを返信して(ステップ#29)、本フローを抜ける。
 図10は、端末1のCPU10によって実行される拡張BIOS処理の手順を説明するフローチャートである。CPU10の制御が渡された拡張BIOSは、まず、外部デバイス2からリアルモードへの設定し直しのための命令コードが受信されたか否かが判断される(ステップS31)。受信のために準備された所定の時間内に、この命令コードが受信されなければ、端末1に接続されている所定のデバイス(前述した表示部14、キーボード、マウス)に対して初期化のためのPOST処理が施される(ステップS33)。次いで、I/OAPIC処理(ステップS35)、データ転送要求信号出力処理(ステップS37)が実行される。続いて、DMAC24が起動されて、専用ローダ記憶部251からローダ(R)が端末1側に転送され、RAM12の起動メモリ領域120に上書きされる(ステップS39)。そして、転送が終了したかどうかが転送終了信号によって確認されると(ステップS41でYes)、ハードウエア割込が発生され、CPU10の制御がローダに渡されて(ステップS43)、本フローを抜ける。
 一方、ステップS31で、リアルモードへの設定し直しの命令コードが受信されると、レジスタIDTRを割込ベクタテーブルに書き換えるリアルモード戻し処理(ステップS45)、I/OAPIC処理(ステップS47)、データ転送要求信号出力処理(ステップS49)が実行される。続いて、DMAC24が起動されて、専用ローダ記憶部252からローダ(P)が端末1側に転送され、RAM12の全域に上書きされる(ステップS51)。そして、転送が終了したかどうかが転送終了信号によって確認されると(ステップS53でYes)、ハードウエア割り込みが発生され、CPU10の制御がローダに渡されて(ステップS55)、本フローを抜ける。なお、専用ローダ(R),(P)のロードの終了に引き続いて、システムBIOS記憶部256から適正なシステムBIOSを専用ローダのローダ部分に影響しない領域に上書きするようにしている。あるいは、専用ローダ(R),(P)の一部にシステムBIOS記憶部256のシステムBIOSを予め含めておいて、専用ローダ(R),(P)のロードで起動メモリ領域120に上書きされる態様でもよい。このシステムBIOSは後述するように、OSのローダの際に用いられる。
 また、専用ローダのロード処理に関しては、監視処理I、IIに代えて、図11~図13に示す態様を採用したものでもよい。図11は、外部デバイス2のCPU20及び拡張BIOSによって実行される監視処理IIIの手順を示すための説明図である。また、図12は、端末1側のCPU10によって実行される監視処理IIIの一部手順を説明するフローチャートであり、図13は、外部デバイス2側のCPU20によって実行される監視処理IIIの一部手順を説明するフローチャートである。
 図11に示す監視処理IIIを実行するためには、外部デバイス2は以下の構成を備えている必要がある。CPU20のROM21又はフラッシュROM25は、IOAPICを記憶する記憶手段として機能する。このIO APIC150は、POST処理時に、外部デバイス2のレジスタに設定されたハードウエア割込IRQにて端末1側に登録されて、当該IRQの番号に紐付く割込番号が自動設定される。同様にCPU20のROM21又はフラッシュROM25は、割込ベクタテーブル、及び割込ハンドラの内容を記憶する記憶手段として機能する。また、DMAC24は、割込ベクタテーブル123’、及び割込ハンドラ124’の内容をCPU10の制御抜きで、端末1側に転送する処理を行う。また、監視部206は、後述する割込ハンドラ124’の実行結果信号の有無を監視する機能を備える。また、この監視部206は、前記転送要求が発せられた後、DMAC24により、バスマスタ方式で割込ベクタテーブル123’と前記割込ベクタテーブル123’の所定のベクタに対応する割込ハンドラ124’との前記起動メモリ領域への転送を行い、さらに割込ハンドラ124’からの実行結果信号の有無を判断する機能部を備えている。
 そして、拡張BIOSは、以下の手順を実行する。なお、IOAPIC150のリダイレクションテーブル1501内には、ハードウエア割込(IRQ10)に、例えばINT0が設定されている。また、ここでは、ハードウエア割込としてIRQ10としたが、IRQは“10”に限定されず、デバイスを指定するべく予め対応付けされた番号であればよい。また、割込ハンドラ124’とは、割り込み処理を実行するためのメモリ上に待機しているプログラムをいう。さらに、割込ベクタテーブル123’のINT0には、割込ハンドラ124’であるプログラムの先頭アドレス、図11の例ではアドレス1000が設定されている。
 次に、図12において、まず、システムBIOSから拡張BIOSに制御が渡ったか否かが判断され(ステップS61)、拡張BIOSに制御が渡っていなければ、本フローをスルーする。一方、拡張BIOSに制御が渡ったのであれば、拡張BIOSに制御が渡った旨のリクエスト信号が外部デバイス2に送信される(ステップS63、図11の矢印[1]参照)。次いで、ハードウエア割込(IRQ10)命令の発行の有無が判断され(ステップS65)、例えばリクエスト信号の送信時点から所定時間内に、ハードウエア割込(IRQ10)命令の発行が確認されると、INT0が指定されてINT0命令が発行され、該当アドレスの割込ハンドラ124’が実行される(ステップS67、図11の矢印[4]参照)。そして、割込ハンドラ124’の実行結果信号が外部デバイス2へ返信される(ステップS69、図11の矢印[5]参照)。なお、割込ハンドラ124’の実行結果信号を毎回変更することが秘匿性の点からはより好ましい。実行結果信号は、例えば、ブートの日時情報や外部デバイス2の会員情報記憶部212の会員情報を用いて所定のルールに従って作成される。
 図13においては、まず、リクエスト信号の受信の有無が判断され(ステップ#41)、リクエスト信号が受信されていなければ、本フローをスルーする。一方、リクエスト信号が受信されていると、DMAC24の起動及び転送対象となる記憶領域の指定処理が行われて(ステップ#43、図11の矢印[2]参照)、転送対象の情報がブロック転送によってCPU10の制御を受けない状態で、端末1側に転送される。ここに、転送対象の情報とは、IOAPIC150(のリダイレクションテーブル1501)、割込ベクタテーブル123’及び割込ハンドラ124’の各内容である。
 次いで、転送動作の終了を受けてCPU20から出力される転送終了信号の有無が判断され(ステップ#45)、転送終了信号が確認されると、ハードウエア割込(IRQ10)命令が発行されて、端末1に送信される(ステップ#47、図11の矢印[3]参照)。次いで、監視処理として、ハードウエア割込(IRQ10)命令の発行時点から所定時間内に、割込ハンドラ実行結果信号の受信の有無が判断される(ステップ#49)。監視の結果、割込ハンドラ実行結果信号が受信されると、CPU10はリアルモードの状態にあって、ブートが正常に行われたと判断されて、本フローを終了する。
 一方、CPU10がマルウエアによってプロテクトモードの状態にされた場合、DMAC24を利用したバスマスタ転送によって、この転送前に、CPU10は割込ベクタテーブル123’のINT0のアドレスと割込ハンドラ124’の先頭アドレスとを知ることはできないから、マルウエアによって設定されるINT0のアドレスと割込ハンドラ124’の先頭アドレスとを対応させることはできない。特に、INT0の内容と割込ハンドラ124’の先頭アドレスの設定を、ブート処理毎に外部デバイス2側で所定のルールによって、あるいは乱数発生部を作動させて無作為に設定するようにすることが好ましい。
 従って、プロテクトモードの状態にある場合、割込ハンドラ124’は実行されず、監視の結果、割込ハンドラ実行結果信号が生成されない、すなわちブートが正常に行われていない可能性が高いと判断して、端末1のCPU10をリアルモードへ設定し直すための命令コードを返信し(ステップ#51)、本フローを抜ける。図13の処理を抜けて、端末1は、図10の処理を行う。
 このように、DMACを端末1側に設けた場合には、DMAC24の起動や転送対象内容の指定が、マルウエアに乗っ取られたCPU10によって管理される虞(すなわち、例えばある処理を行っていないにも拘わらず、処理を行った旨の信号のみを擬似的に生成して出力するような処理)があるが、DMAC24を外部デバイス2側に設けることで、CPU10の制御を受けることを排除することが可能となる。
 次に、図4、図14~図17は、専用ローダのロードからOSの動作監視までのRAM12のメモリマップの変遷を示す図である。図4は、前述したように、専用ローダ123のロードから一時的GDT124の作成まで、すなわち起動メモリ領域120内に対するデータ作成状態を示している。なお、システムBIOS121は専用ローダ123のロードによって一旦消去されるので、前述したように外部デバイス2から新たにロードされる。あるいは専用ローダ123内に予め含めておき、専用ローダのロード時に同時にロードされるようにしてもよい。これは、専用ローダ123及びシステムBIOS121は後述するように、後にOSのロードにおいて必要となるからである。その意味では、拡張BIOS122は必ずしも再度ロードする必要はない。また、図4において、外部デバイス2からのシステムBIOSのロードは専用ローダ123内のダミーデータ部分に上書きするようにすればよい。
 図14は、1MB~100MBの領域に管理ファイル125、管理用GDT126及び管理用IDT127が展開された状態のメモリマップである。図3の専用ローダ処理部102は、拡張BIOS122のリクエストを受けた外部デバイス2からのハードウエア割込の発生に応じて専用ローダ123にCPU10の制御が移されることによって実行されるローダ処理である。専用ローダ処理部102は、図14に示すように、管理ファイルロード処理部203によって読み出された、外部デバイス2の管理ファイル記憶部253内の管理ファイル125を端末1のRAM12の1MB~100MBの所定位置に読み込む処理及びこれに関連する処理を行う。より詳細には、専用ローダ処理部102は、まず、RAM12の1MB~100MBへのアクセスを可能にするための処理、例えば図4で示したような一時的GDT124の作成、チップセット内の各種レジスタに対する設定を行う。一時的GDT124は、管理ファイル125を構成するプログラムや管理テーブルの全て(のセグメントディスプリクタ)に対して特権レベルであるDPL(Description Privilege Level)に“0”(いわゆるリング“0”)を設定することによって、管理ファイル125を1MB~100MBの所定位置に最も高い特権レベルでロード可能にしている他、この領域に設定される情報に対して全てDPL“0”でのロードを実現している。DPLとは、公知のように、メモリ空間の特権レベルを記述するもので、DPL“0”からDPL“3”までの4ランクがある。DPL値が相対的に小さい程、特権のレベルが高い。例えば、DPL値の相対的に大きい値として記述された空間で動作するプログラムはDPL値がそれより小さい値で記述された空間側にアクセスすることはできない。すなわち、この場合は特権レベル違反として、後述する一般保護例外(#GP)あるいはページフォルト(#PF)が発行され、アクセスは無効とされる。一方、DPL値の相対的に小さい値として記述された空間で動作するプログラムはDPL値がそれより大きい値で記述された空間側にアクセスしたり閲覧したりすることができる。これによって、不適当なアクセスか否かの判断が事前に可能となる。
 また、専用ローダ処理部102は、管理レジスタのうちのレジスタCR0に対してフラグを設定することで、1MB~100MBの領域へのアクセスをプロテクトモードで行う他、別途、リアルモードにおいて、一時的GDT124のセグメントリミットを1M以上、ここでは4Gに設定したことで、アンリアルモードでの動作を可能としている。このアンリアルモードで、管理ファイル125及び割込ハンドラ130がロードされ、次いで管理用GDT126がロードされ、また管理用IDT(管理用割込ベクタテーブル)127がロードされる(図14参照)。管理用GDT126、管理用IDT127の各セグメントディスクリプタは、当該時点で必要なテーブル部分までが予め作成されており、専用ローダ処理部102によってロードされる。専用ローダ処理部102は、これら必要な情報のロード後、CPU10の制御を管理ファイル125に渡す(ジャンプする)。
 図15は、1MB~100MBの領域にTSS128、PTE(Page Table Entry)129及び管理用割込ハンドラ130が作成された状態のメモリマップである。また、図には示していないが、必要に応じてタスク毎のLDT(Local Descriptor Table)が作成される。管理ファイル動作環境作成部103は、管理ファイル125のプログラムによって、TSS128、PTE(Page Table Entry)129、管理用割込ハンドラ130及び必要なLDTを作成する。なお、TSS128及びPTE129は、後述するように、101MB以上で動作するタスク(主に、HD12AからのOSのロード)を監視するための管理用(プロテクト)モード用のテーブルと、100MB~101MBで動作するタスクを監視するVM8086モード用のテーブルとを備えている。モードを図略のタスクスイッチで適宜切り替えることで、OSを構成する各プログラムのロードと当該OSの各プログラムのセグメントディスプリクタを管理用GDT,IDTにそれぞれ追加する処理が可能となる。
 TSS128は、管理ファイル125内の各管理用のプログラム(タスク)の各々に対応付けて作成されている。すなわち、TSS128は動作状態に応じたプログラムを稼働させるべく、タスクスイッチによって必要なプログラムに実行状態を移し、かつ直前のプログラムの処理内容を対応する個々のTSSにコンテキストすることで、現状復帰を可能にしている。PTE129は、GDT126で作成されたリニアアドレスを物理アドレスに変換するためのもので、各情報(各プログラムコード、各データ、各スタック)について対応して設けられている。
 ここで、図18~図21を用いて、GDT126及びPTE129と、リニアアドレスから物理アドレスへの変換との関係を説明する。まず、端末1が起動する際のモードである16ビットのプログラムで動作するリアルモードでは、セグメント値とオフセット値とを用いてアドレスが決定され、公知のように、セグメント値を4ビットずらした値(16倍した値)にオフセット値を加算することで、最大、(1MB+64KB)までのアドレス(リニアアドレス)が直ちに物理アドレスとして算出できる。一方、それ以上のアドレスに対しては、プロテクトモードが採用されており、例えば32ビットのプログラムで動作する態様では、4GBまでアドレス指定が可能となる。なお、それぞれの情報(タスク)毎に、異なるアドレスを設定することで、仮想アドレス空間が設定できることから、情報(タスク)を所要データ量ずつに分けて、格納することが可能である。
 図18は、かかる情報格納態様に対応するもので、情報の格納箇所を示すGDT126の全体概要を示している。GDT126は、例えば8バイト単位で各情報の格納箇所を管理するセグメントディスクリプタのリストである。各セグメントディスクリプタは、4つの属性を有している。属性は、情報の「種別」(プログラムコード、データ、スタック)と、「ベースアドレス」と、「リミット」と、「DPL」である。「ベースアドレス」は、情報のRAM12内における格納基準(スタート)アドレスを示している。「リミット」は、情報のアクセス範囲を示す。DPLは、前述した特権レベルを示す。アドレッシングにおいて採用されるセグメントディスクリプタは、リニアアドレスからの変換に際して使用されるセグメントセレクタの情報を介して選択される。また、タスクのアクセスが許可されるものか否かは、アクセス要求時に、チップセット内に書き込まれたレジスタCS,DS,SSのいずれかのレジスタ内のCPL(Current Privilege Level)及びRPL(Requested Privilege Level)と、GDT126の対応するセグメントディスクリプタとを照合することで決定される。
 図19は、PTEのメモリマップを示す。各ページデータは所定のデータ量、例えば4KB毎に分割されており、各ページデータは、物理アドレスとアクセス属性とが設定されている。各ページデータは、プログラムコード、データ、スタックの種類が含まれる。物理アドレスは、リニアアドレスをRAM12内の所定の位置に移動させるためのものである。アクセス属性は、特権レベルに相当するもので、「スーパーバイザー」と「ユーザ」とを有する。「スーパーバイザー」は特権レベルDPL“0”~DPL“2”に該当し、「ユーザ」は特権レベルDPL“3”に該当する。また、データに該当するページにNX-Bit(Non eXecute Bit)を保有し、当該ページからCPU10に命令コードが発行できなくする。そして、CPU10からのアクセスが特権レベル違反となる場合には、例外割込の一般保護例外(#GP)が発行され、一方、アクセス属性違反となる場合には、ページフォルト(#PF)が発行される。いずれの場合にも、割込ハンドラ130を経てアクセスを無効とする処理が実行される。なお、アクセスの無効とは、アクセス自体をシャットダウンする態様、改変された特権レベル値を正しい値に書き直す態様を含む。
 図20は、リニアアドレスから物理アドレスに変換する変換方法を図で示したものである。CPU10で作成された、ある情報をアクセスするためのリニアアドレスは、GDT126のセグメントセレクタとベースアドレス、さらにPTE129の物理アドレスとを用いて物理アドレスに変換されることとなる。図21は、プロテクトモードにおけるリニアアドレスと物理アドレスとの関係の一例を示すものである。まず、リアルモードでは、リニアアドレスの0MB~1MBは、物理アドレスの0MB~1MBに対応する。この範囲は16ビット仕様であり、両者は一致する。ところで、PTE129は、後述するように管理用(100MB以下の領域)とVM8086用(100MB~101MBの領域)とが準備される。ここでは、プロテクトモードにおける管理用のアドレッシングについて説明する。すなわち、リニアアドレスの0MB~1MBを、物理アドレスの100MB~101MBに対応するようにしている。このように、物理アドレスの100MB(あるいは101MBでもよい)以上の所定の値をPTE129内の管理用側のテーブルの各タスクの物理アドレスの項に設定するようにしている。この物理アドレスの設定により、PTE129のタスク(代表的にはOSのロード、あるいはOSの実行)は、全て100MB(あるいは101MB)以上の設定アドレスにロード、あるいは展開されることになる。換言すれば、PTE129によって100MB(あるいは101MB)以上のあるアドレスにページングされる結果、管理ファイル125及びGDT126、IDT127,TSS128、PTE129、割込ハンドラ130が配置されている100MB以下にアクセスされることはなく、従って、GDT126その他のテーブル内の内容の改変はできず、かつそもそも100MB以下は見えない(存在しない)ことと等価となる。
 図16は、100MB~101MBの領域に0MB~1MBの内容(実質的に専用ローダと外部デバイス2から新たにロードされたシステムBIOS)がコピーされた状態、及び同領域の所定位置にOSローダ131が作成された状態のメモリマップである。OSローダ131は、例えばダミーデータが書き込まれている位置に、あるいは拡張BIOSが書き込まれている位置に上書きする態様でよい。この100MB~101MBへの情報の書込処理はVM8086モードで行われる。なお、VM8086モードとは、プロテクトモード実行中に、リアルモードに切り替える処理を行うと管理の煩雑さ等を考慮すれば効率が低下することから、EFLAGSレジスタのVMビットを切り替えてリアルモードのアドレス演算を行うようにし、16ビット用のプログラムを実行可能にするものである。この期間において、当該領域から0MB~100MBの情報へのアクセスをページングによって無効にしている。
 OSローダロード処理部104は、外部デバイス2側のOSローダロード処理部204によってコピーされ、端末1側に読み出される0MB~1MBの内容をRAM12の100MB~101MBにロードする処理、及びOSローダをロードする処理を行う。OSローダは、HD12Aから読み取ったMBRと、外部デバイス2から読み取った、後述するブートプログラムコードとから作成される。より具体的には、OSローダロード処理部104は、管理ファイル125内のプログラムであって、HD12Aの0セクタ目から読み出されたMBRのパーティションテーブルから、OSのロード及び起動を行わせるためのプログラムであるPBR(Partition Boot Record)、及びHD12A内のOSの格納アドレス情報を読み取る。また、PBRは、BPB(BIOS Parameter Block)とブートプログラムコードとを含んでいる。この内、BPBはHD12AからOSを読み出すための情報であることから、改変される可能性はなく、そのまま利用する一方、ブートプログラムコートは、固定的で共通であり、また改変の可能性があることから、予め外部デバイス2に準備しているブートプログラムコードをロードして用いるようにしている。そして、OSローダロード処理部104は、BPBと外部デバイス2からロードされたブートプログラムコードとを結合してOSローダ(IPL(Initial Program Loader)とも言う。)131を作成する。この後、専用ローダ処理部102は、CPU10の制御をOSローダ処理部105に渡す(ジャンプする)。
 図17は、101MB以上の領域にOSがロードされる状態を示すメモリマップである。なお、図17中、破線で示すOS用GDT132、OS用IDT133は、OSが自己の挙動を記述するためのテーブルを作成しようとしている状況を示している。
 OSローダ処理部105は、まず、VM8086モード(すなわちCPL“3”)に設定した状態で、制御レジスタCR3に物理アドレスを設定して、OSローダを起動させてHD12AからOSを構成する各プログラムを順次RAM12の101MB以上の領域にロードするものである。HD12AからロードされてきたOSは、自己の動きを記述するOS用GDT132を作成するべく、チップセットのレジスタGDTRの内容を書き換えようとするLGDT要求を出す。一方、チップセットのレジスタGDTRへのアクセス(書き替え要求)はCPL“0”でのみ許可されるものであるから、OS動作監視部106は、このアクセスに対して、例外割込としての一般保護例外(#GP)を発行する。そして、この一般保護例外は、IDT127を介して、管理ファイル125内の割込ハンドラに移行する。OS動作監視部106は、割込ハンドラ2を介して、プログラムカウンタを用いてCPU10が次に実行するべき命令(プログラム)の格納場所を指すレジスタEIPを参照して、不当なアクセス要求をしているプログラムのアクセスを特定し、レジスタGDTRの書き替えを禁止すると共に、当該不当なプログラムに対し、改変された特権レベルを元の値に書き直す等の割込ハンドラ処理を実行する。また、OS動作監視部106は、この不当なプログラムをGDT126に新たなセグメントディスクリプタとして追加し、特権レベルの項目にDPL“2”を設定し、かつPTE129の管理用のテーブルに新たなページングテーブルとして追加し、物理アドレスとして少なくとも101M(あるいは100M)以上の所定のアドレス値を設定する。これにより、GDT126のアクセス権にDPL“2”に設定されることで、以後、OS側から0MB~100MB内へのアクセスは不当アクセスとして無効にされ、かつPTE129によってOSからは100M以下の物理アドレス変換が不可能となる。
 なお、管理ファイル125は、外部デバイス2が予め格納している特定APを1MB~100MB内にDPL“0”でロードするようにしている。特定APとしては、操作部13のデバイスドライバ、表示部14のデバイスドライバを制御して特定モード環境で情報処理操作を実行可能にすると共に、必要に応じて特定の会員に対して通信を行うべく外部デバイス2のNIC26のデバイスドライバを制御する。なお、端末1がサーバの場合、外部デバイス2のNIC26のデバイスドライバが少なくとも実行される態様であればよい。
 情報処理部107は、前記デバイスドライバを切り替えて汎用のAPモードでの処理と特定APモードでの処理を実行させるものである。ネットワーク通信処理部108は、端末1からの通信と外部デバイス2のNIC26からの会員間、特定サーバ間と通信をデバイスドライバを用いて切替制御するものである。動作環境切替処理部109は、汎用OS環境での処理と特定OS環境での処理とを切り替えるものである。切替指示は、端末1に対する特定操作で行うことができ、例えばキーボード上の特定キー(1又は複数)を押下することで、サイクリックにモード切替指示が可能であり、あるいは個別に別々の操作で各環境を指示する態様でもよい。
 続いて、図22~図27を用いて、端末1の処理手順について説明する。図22は、CPU10によって実行される専用ローダ123の処理を示すフローチャートである。まず、専用ローダ123のロード終了に応じたハードウエア割込の有無が判断され(ステップS101)、ハードウエア割込がなければ、本フローを抜ける。一方、ハードウエア割込があれば、レジスタ群の初期化が行われ、かつ制御レジスタCR0がリアルモードに設定される(ステップS103)。
 そして、まず、専用ローダ123によって一時的GDT124が作成され(ステップS105)、次いで、制御レジスタCR0がプロテクトモードに設定される(ステップS107)。そして、一時的GDT124のセグメントリミット値を4GBにしたディスプリクタの内容がチップセットのセグメントレジスタに登録される(ステップS109)。これにより、1MB以上のアドレスが指定可能な状態にされる。続いて、制御レジスタCR0がリアルモードに設定される(ステップS111)。すなわち、制御レジスタCR0をリアルモードに変更すると共に、一時的GDT124のセグメントリミット値を4Gとしたことに対応させてリアルモードの中で1MB以上をアクセス可能にするアンリアルモードが設定できる。
 そして、専用ローダ123によって、管理ファイル125、管理用割込ハンドラ(管理ファイル内に含まれている態様でよい)が外部デバイス2から1MB~100MBの領域にロードされる(ステップS113)。この後、管理用GDT126が外部デバイス2からロードされる(ステップS115)。かかる処理が終了すると、CPU10は制御レジスタCR0をプロテクトモードに設定して(ステップS117)、管理ファイル125にジャンプし、管理ファイル125が起動する。
 図23は、CPU10によって実行される管理ファイル125の処理を示すフローチャートである。まず、特権レベルDPL“0”で1MB~100MBの所定位置に、GDT126、IDT127、TSS128が作成される(ステップS131)。前述したように、TSS128は管理用(100MB以上の領域)とVM8086用(100MB~101MBの領域)とが作成される。次いで、PTE129が作成される(ステップS133)。PTE129も前述したように、管理用とVM8086用とが作成される。
 続いて、0MB~1MBの領域の内容が100MB~101MBに複製(コピー)される(ステップS135)。これにより、OSロードに必要なシステムBIOSがロードされる。さらに、100MB~101MBの適所にOS用ローダが作成される(ステップS137)。この後、CPU10は、管理ファイル125内のOSのロードを処理(監視及び管理)するプログラムにジャンプする(ステップS139)。
 図24は、HD12Aの先頭セクタからMBRが100MB~101MBの所定位置にロードされる(ステップS151)。次いで、MBR内のアクティブなパーティションテーブルからOS(OSを構成する各プログラム)の格納アドレスが取得される(ステップS153)。
 そして、HD12AからPBRが100MB~101MBへロードされ(ステップS155)、次いで、PBRのブートプログラムコードの部分が外部デバイス2からロードされてきたブートプログラムコードと書き替えられ(ステップS157)、PBRのBPBと、書き替えられたブートプログラムコードとが結合される(ステップS159)。このようにして、OSローダが作成される。なお、OSローダは所謂IPLに相当し、このIPLは、周知のようにOS本体をロードする部分のローダプログラムを事前にリアルモードでロードするためのものである。そして、このOS本体をロードするローダプログラムによってOS本体が、例えば分割等されてロードされるが、ここでは、OSローダがOS本体を分割したプログラムを順次ロードするものとして説明する。
 図25は、CPU10によって実行される、OSローダ作成後における管理ファイル125の処理を示すフローチャートである。管理ファイル125は、OSローダが作成されると、直ちにOSのロードを監視及び管理するVM8086モードに設定、すなわち特権レベルをDPL“3”に自動的に設定する(ステップS171)。従って、この状態で101MB以上の領域にアクセスされる情報(ここではロードされるOSのプログラム)は、特権レベルCPL“3”で扱われる。
 次いで、OS用GDT、IDT及びPTEの作成命令による、チップセットのレジスタGDTR等へのアクセス(GDTRの書き替え要求LGDT等)の有無が判断される(ステップS173)。レジスタGDTR等へのアクセスがあれば、かかるアクセスに対して、アクセス権の正当性が照合されるが、CPL“3”からのアクセスであることから、一般保護例外が発行され(ステップS175)、管理用IDT127から一般保護例外に対応する割込ハンドラ130へのジャンプが実行される(ステップS177)。その結果、割込ハンドラ130でEIPに対して、一時保管された次のジャンプ先がロードされる処理が実行される(ステップS179)。また、このタスクによって、前記レジスタGDTR等へのアクセスが拒否され、いわゆる無効処理が実行される。
 続いて、管理用GDT126、管理用PTE129に、今回ロードされてきたOSのプログラムに対応するセグメントディスクリプタが追加される(ステップS181)。さらに、管理用GDT126及び管理用PTE129の特権レベルDPL“0”がDPL“2”に書き替えられ、また、管理用PTE129の物理アドレスの項に101M(あるいは100M)より大きな所定の値が設定、例えば当該例外で受け取ったアドレスを100Mずらして設定される(ステップS183)。
 続いて、HD12AからOSを構成する次のプログラムがロードされてきたか否かが判断され(ステップS185)、OSを構成する次のプログラムのロードがなければ、本フローを抜ける。一方、OSを構成する次のプログラムがロードされてきたのであれば、ステップS173に戻って、同様な処理が繰り返され、新しいセグメントディスクリプタとして、管理用GDT126、管理用PTE129に追加される。
 一方、ステップS189で、アクセスがあれば、ステップS157に進んで、一般保護例外が発行され、これに基づいて、前述したような割込ハンドラが実行される(ステップS159,S161)。なお、同様に、OSのプログラムによって、APのプログラムがロードされる場合にも同様に処理される。なお、APは特権レベルDPL“3”に設定されているから、新たに追加されるセグメントディスクリプタの特権レベルは、書き替える必要はないが、DPL“3”を積極的に書き込むようにしてもよい。また、ロードされるAPについても、管理ファイル125によって、管理用PTE129の物理アドレスの項に101M(あるいは100M)より大きな所定の値が設定される。
 図26は、CPU10によって実行される、OSブート後における管理ファイル125の処理を示すフローチャートである。まず、0MB~100MBにOS(あるいはAP)のプログラムから管理用GDT126にアクセスがなされたか否かが判断される(ステップS201)。管理用GDT126にアクセスがなければ、本フローを抜ける。一方、管理用GDT126にアクセスがあれば、アクセスしてきたOSの特権レベルとレジスタGDTRの特権レベルとの照合によって一般保護例が発行される(ステップS203)。そして、管理用IDT127から一般保護例外に対応する割込ハンドラ130へのジャンプが実行される(ステップS205)。その結果、割込ハンドラ130の処理が実行される(ステップS207)。ここでの割込ハンドラ130の処理は、管理用GDT126へのアクセスの拒否、あるいはアクセスされたことを想定して、正常な内容に書き直す処理を行うようにしてもよい。
 図27は、CPU10によって実行される、処理環境の切替処理を示すフローチャートである。処理環境の切替とは、汎用OS環境での作業と特定OS環境での作業との間の切替をいう。端末1の稼働中において、特定OS環境への切替指示の有無が判断され(ステップS221)、切替指示がなければ、ステップS227に進む。なお、ステップS221は、許可された状態での割込処理としてもよい。そして、ステップS227で、汎用OS環境への切替指示の有無が判断され、切替指示がなければ、本フローを抜ける。
 一方、ステップS221で、特定OS環境への切替指示があったのであれば、現在の使用環境が汎用OS環境か否かが判断され(ステップS223)、現在の使用環境が汎用OS環境であれば、特定OS環境に切り替える処理が実行される(ステップS225)。これによって、0MB~100MB内において特定OS環境の下での情報処理のための操作及びデバイスドライバの制御が行われる。これによって汎用OS環境と区別され、マルウエアが侵入することはない。逆に、現在の使用環境が既に特定OS環境であれば、切替指示は無視されて、本フローが終了する。
 また、ステップS227で、汎用OS環境への切替指示のあったのでれば、現在の使用環境が特定OS環境か否かが判断され(ステップS229)、現在の使用環境が特定OS環境であれば、汎用OS環境に切り替える処理が実行される(ステップS231)。逆に、現在の使用環境が既に汎用OS環境であれば、切替指示は無視されて、本フローが終了する。
 本発明は、以下の態様を採用することが可能である。
(1)本実施形態では、外部デバイスとしてPCIを想定したもので説明したが、これに限定されず、少なくとも、CPU及びROM、RAMを内蔵したものであればよい。また、DMACを備えているデバイスであればよい。例えばUSB(Universal Serial Bus)メモリチップ、ICカードを改良した対応でもよいし、携帯型の通信機器に内蔵された態様であってもよい。
(2)本実施形態では、外部デバイスとしてPCIで説明したが、本発明は、これに限定されず、また、0MB~1MBへの専用ローダのロード方式もDMACを採用する実施形態(本発明者が既に提案したPCT/JP2010/58552)に限定されない。例えば、本発明者が既に提案した、PCT/JP2009/57962、PCT/JP2010/68346、日本特許出願2011-235386を適用して専用ローダを強制的に起動メモリ領域にロードする態様でもよい。
 上記のうち、PCT/JP2009/57962には、CPUを備える情報処理装置に装着して前記情報処理装置をUSBメモリ等の外部デバイスによってブートする外部ブート方法を開示している。この方法は、外部デバイスの記憶手段に、情報処理装置のBIOSによって優先して起動するように設定された、ローダを読み出して情報処理装置の主メモリの起動メモリ領域(0MB~1MB)にマッピングさせるためのMBRであって、情報処理装置の起動メモリ領域に設定されている割込ベクタテーブルに対してスタック領域を所定の重畳関係を有して位置付けるプログラムを有するMBRが記憶されている。そして、ローダは、外部デバイスの分散処理手段によって、MBRの起動に先立って予め設定された個数に分割されていると共に各分割ローダの前記起動メモリ領域へのロードの際のマッピング情報が作成される。
 例えば図28を用いて説明すると、図28は、スタック領域1203を割込ベクタテーブル1202に重畳する方法を説明する図である。スタック領域1203には、割込直前の命令内容に関するEFLAG,CS,IPがベースポインタBPから書き込まれる。そこで、このベースポインタBPの位置を、図の矢印で示すように、割込ベクタテーブル1202のベクタ2の上位ビットの位置に一致するように、スタック領域1203を位置設定する。従って、スタック領域1203へのEFLAG,CS,IPの書き込みは、割込ベクタテーブル1202のベクタ2の上位ビットにFLAGが、ベクタ1の下位ビットにCSが、ベクタ1の上位ビットにIPが書き込まれることになる。一方、ベクタ1は、外部割込先となるアドレスを示すものであるから、割込が発生してCPU10がベクタ1を参照し、制御が、ベクタ1に書き込まれているアドレスのプログラムに移行すると、スタック領域1203にその直前の命令内容であるEFLAG,CS,IPが退避して書き込まれる。すなわち、割込ベクタテーブル1202のベクタ1には、IP,CSのアドレス情報が書き込まれることになる。ベクタ1には、その上位ビットにIPが、下位ビットにCSが書き込まれることになる。従って、そのアドレスは、具体的には、IP×16+CSとなる。
 すなわち、今、BIOSにマルウエアが潜伏等(あるいはBIOSの立ち上げ中に外部から侵入)していたとして、BIOS起動時にマルウエアが動作して、チップセットのEFLAGSのフラグTFをセットし、割込ベクタテーブル1202のベクタ1にウイルス本体の存在するアドレスが書き込まれている場合を想定する。BIOS起動後、典型的にはMBR起動中に、ある命令が実行され、その後に、CPU10の制御がマルウエアに乗っ取られた(マルウエアによるデバッグ割込が発生した)と想定する。このとき、制御は、ベクタ1に書き込まれているアドレスに遷移し、マルウエアによる動作(マルウエアの複製、データ改竄や破壊等)が実行されることになる。一方、マルウエアの割込によって、スタック領域1203すなわち割込ベクタテーブル1202のベクタ1には、直前の命令内容を示す内の、情報IP,CSが書き込まれることになる。従って、ベクタ1に元々書き込まれていたマルウエアの格納位置を示すアドレスは書き換えられ、消去されたことになる。かかる方法によれば、マルウエアは、BIOS起動中に仕掛けをした状態において、MBR起動後に一度でも動作した途端、潜伏先のアドレスを失う結果となり、その後の動作が抑止されることになる。次いで、RAM12内の起動メモリ領域120内であって、前記領域1202,1203及びMBR領域を除いた領域にローダがマッピングされる。分割されたローダは、マッピング位置情報に従って、分割数だけ分散配置(展開)される。なお、分割ローダに適宜数のダミーデータを加える態様としてもよい。各分割ローダは、例えば最終ビット位置に、次のマッピング位置情報が書き込まれており、このマッピング位置情報を順次参照することで、ローダ後に元のローダに合成される。この場合、ダミーデータには、その旨の情報が書き込まれておれば、合成時に省く処理が可能となる。このようにして、ローダ、すなわち本発明における専用ローダが適正に0MB~1MBにロードされる。
 また、PCT/JP2010/68346には、CPUを備える情報処理装置に装着して前記情報処理装置をブートする外部デバイスを記載している。この外部デバイスは、前記情報処理装置のBIOSが前記CPUによって前記情報処理装置の起動メモリ領域に書き込まれるように設定された起動プログラムであって、書込後に前記CPUからの一つの命令に基づいて実行され、所定ビット数分のダミーコードを割込ベクタテーブルに上書きして一般保護例外を発生させる第1のプログラム、及び前記一般保護例外の発生によって実行される正常リセット処理のための正常リセットプログラムを割込ハンドラとして設定するための第2のプログラムからなる起動プログラムが記憶された起動プログラム記憶部を備えたものでる。
 例えば図29は、ダミーコードの割込ベクタテーブルへの上書き処理、及び一般保護例外に基づく正常リセット処理を説明する図である。まず、ダミーコードを所定のベクタ、特にベクタ0,1,13に上書きする意義について説明する。BIOS動作中にCPU10の制御を一時的に奪ったマルウエアによって割込ベクタテーブルのデータが改竄、特にINT1を規定するベクタ1のデータが書き換えられて、マルウエアの潜伏位置を記述することが考えられる。また、BIOSの動作期間中に、起動メモリ領域120にマルウエアを起動させる異常プログラムが配置されることが考えられる。そこで、割込ベクタテーブルのベクタ1については、書き換えられた可能性のある内容を書き直してマルウエアの挙動を抑止する処理を行わせる必要がある。また、ベクタ13については、起動メモリ領域120上の前記異常プログラムを所定のデータの上書きによって消去するという、正常リセット処理のための割込ハンドラを確実に起動させる処理を行わせる必要がある。割込ハンドラを確実に起動させる処理は、ベクタ13に割込ハンドラ領域12031の先頭アドレスを書き込むこと、及び後述するような一般保護例外を発生させる仕組みを作ることである。
 すなわち、ベクタ13の一般保護例外を利用することで、ベクタ13から割込ハンドラ領域12031に自動的に処理が移行する仕組みを構築する。すなわち、(i)ダミーコードの書込アドレスを降順に読み出すためにチップセットのEFLAGSのフラグDFを1にセットし、(ii)降順の書込アドレスが割込ベクタテーブル12021の左端アドレス“0x0000”を下回る不正なアクセスを発生させて一般保護例外を引き起こすようにしている。さらに、(ii)のためには、ベクタ1からベクタ0の方向への、すなわち降順に書込アドレスを生成させる必要がある。そこで、ベクタ0,1,13を含み、かつ不正アクセス用のアドレスを生成させるためには、ダミーコードのビット数は、ベクタ0,1,13の3個のベクタ及び不正アクセスを発生させる少なくとも1ビット分で足りる。なお、ベクタ13とベクタ1,0及び不正アクセス分とは不連続であり、かつダミーコードの割込ベクタテーブルに対する上書き位置が明白となる傾向にある。そこで、より好ましい態様として、本実施形態では、ベクタ13~0及び不正アクセスの少なくとも1ビット分のデータ量を有するダミーコードを作成し、書込アドレスをベクタ13以上の所定のベクタからスタートさせて、最終的に不正アクセスが発生するように降順に指定するようにしている。
 図29は、この状態を示しており、ダミーコードは、所定のビット数、ここでは512ビット(bit)を有するものとし、スタートアドレスは500ビット目としている。なお、512ビットを有するデータ列は、USBメモリ2が一連の動作(REP INS)で読み出し可能なデータ量である。すなわち、矢印(A)で示すように降順にアドレスが生成されていくと、(本実施例では、1アドレスずつ生成するとして)501回目のアクセス時に不正アクセスが発生し、一般保護例外が発生する。一般保護例外が発生すると、CPU10は、矢印(B)に示すようにベクタ13に移動する。ここで、CPU10はベクタ13の記憶内容を読み取り、読み取った内容に一致する起動メモリ領域120のアドレス、すなわち矢印(C)に示すように割込ハンドラ領域12031の先頭アドレスに移動する。そして、CPU10は、割込ハンドラを実行して、正常リセット処理を行う。このダミーコードの上書き処理は、CPU10からの1つの命令によってREP INS処理で行われ、かつ正常リセット処理は、ダミーコードの上書き処理に連続して割込ハンドラによって行われるため、CPU10からの1回の命令で両方の処理が済み、従って、その間、マルウエアがCPU10に介入する機会はない。
 今、BIOSにマルウエアが潜伏等(あるいはBIOSの立ち上げ中に外部から侵入)していたとして、BIOS起動中にマルウエアが動作して、EFLAGSのフラグTFをセットし、割込ベクタテーブル12021のベクタ1をマルウエア本体の存在するアドレスに書き換えた場合を想定する。BIOS起動後、典型的にはMBR起動中に、ある命令が実行され、その後に、CPU10の制御がマルウエアに乗っ取られた(マルウエアによるデバッグ割込が発生した)と想定する。このとき、制御は、ベクタ1に書き込まれているアドレスに遷移し、マルウエアによる動作(マルウエアの複製、データ改竄や破壊等)が実行されることになる。その後、CPU10の制御がBIOSからMBRに渡されると、割込ベクタテーブルのベクタのうち、正常リセットに必要なベクタの内容をダミーコードで書き換えるので、マルウエア本体の存在するアドレス情報は実質削除される。さらに、一般保護例外によって、起動メモリ領域120も正常リセット処理され、仮に潜伏しているマルウエア自身も消去されることになる。すなわち、マルウエアは、BIOS起動中に挙動のための仕掛けをしたとしても、MBRが起動されると、その挙動のための情報が全て消去されることとなり、この結果、その後の挙動が抑止されることになる。
 また、日本特許出願2011-235386には、CPU及び前記CPUが実行するプログラムが展開される主メモリを備えると共に、前記主メモリと外部との間でハードウエアによるデータ通信を行う、チップセット内のコントローラを備えた情報処理装置を、前記コントローラを経由して起動に要するデータを前記主メモリに書き込んで起動させる外部デバイスを記載している。
 この外部デバイスは、前記情報処理装置のBIOSが前記CPUによって実行されることによって前記主メモリの一部であるアドレス指定が可能な起動メモリ領域に優先して読み出される、データ転送の指示情報を含む1次ローダを記憶する第1の記憶部と、前記1次ローダによる前記データ転送指示を受けて前記起動メモリ領域に順次分割された分割制御データとして読み出される少なくとも割込ベクタテーブル及び2次ローダを含む所定の制御データと前記分割制御データが前記起動メモリ領域に書き込まれる際の書込位置となるアドレスデータとを記憶する第2の記憶部と、前記起動メモリ領域への読出後に起動される前記1次ローダから前記データ転送の指示を受けて、前記第2の記憶部から前記各分割制御データを対応する前記アドレスデータに従って前記コントローラを経由して前記主メモリに順番に読み出すデータ転送部と、前記データ転送処理の終了を受けて前記ハードウエア割込指示信号を前記起動メモリ領域に読み出された前記割込ベクタテーブルに遷移し、前記2次ローダを起動させるべくハードウエア割込を発行させるハードウエア割込指示部とを備えたものである。
 例えば図30は、ブートの流れを簡単に説明する。ブート時における情報の流れ及びその手順は、図30中に矢印で示されている。まず、情報処理装置(端末)1の電源投入を受けて、CPU10は、BIOSを起動し、BIOSの処理によってUSBメモリ2から外部MBR1211を取り込む。外部MBR1211の取込が終了すると、CPU10の処理が外部MBR1211に渡されて、外部MBR1211のマスターブートレコードが1次ローダとして機能する。まず、1番目の分割TDデータテーブルTD[1]1212が作成される(図30の矢印(1))。次に、外部MBR1211は、USBホストコントローラに対してインターラプト転送の開始指示(コマンド)を行う(図30の矢印(2))。まず、分割TDデータテーブルTD[1]の1行目のアドレスデータがUSBホストコントローラで取得され、当該アドレスデータと1番目に転送される分割データであるダミーデータ1213とがMCH(MemoryController Hub)、ICHICH(I/O Controller Hub)を経てRAM12に送られて(図30の矢印(3))、当該アドレスに書き込まれる(図30の矢印(4))。以後、CPU10の制御を受けることなく、USBホストコントローラとUSBターゲットコントローラとの間で、USBメモリ2から、分割データを順次取り込むことが可能となり、分割TDデータテーブルTD[1]の5行目のアドレスデータがUSBホストコントローラで取得され、当該アドレスデータと5番目に転送される分割データである分割TDデータテーブルTD[2]とがMCHを経てRAM12に送られて、起動メモリ領域120外の当該アドレス“0x40000”に書き込まれる(図30の矢印(5))。
 この分割TDデータテーブルTD[2]の各行のアドレスデータに対応する分割データがUSBメモリ2から順次読み込まれて、起動メモリ領域120に展開される。USBホストコントローラは、分割TDデータテーブルTDが転送される毎に、その分割TDデータテーブルに含まれるアドレスデータを一時保管し、次に転送される分割制御データにアドレスデータを対応付けてMCHに送出するようにしている。MCHは、転送されてきたデータからアドレスデータを取得し、このアドレスに分割制御データ1215を書き込ませる。
 ここでは、分割TDデータテーブルTD[2]の1行目のアドレスデータに対応して割込ベクタテーブル1214がUSBメモリ2から読み取られて書き込まれる(図30の矢印(6))。そして、順次、分割TDデータテーブルTD[i]が展開され(図30の矢印(7))、最後の分割TDデータテーブルTD[n]の最下行のアドレスデータに対応する分割データがUSBメモリ2から読み込まれ、起動メモリ領域120に展開されると、同時にMCH経由(CPU10を経由することなく)で、ハードウエア割込指示信号が割込ベクタテーブルのINT“XX”に送信される(図30の矢印(8))。CPU10は、このハードウエア割込指示信号を受けて、割込のコマンドを、分割された特定OSローダの先頭の分割データが展開されている分割制御データ(先頭)1215の基準アドレスにジャンプし(図30の矢印(9))、これによって特定OSローダの実行が開始される。以上の処理によって、インターラプト転送前の起動メモリ領域120に存在するマルウエア等は全て消去される。なお、この実施例における特定OSローダ(制御データ)が、本発明における専用ローダに相当する。
 以上の各専用ローダのロード方法は、外部デバイスから行われるものである。そして、起動メモリ領域120に対して、BIOSやMBR内に仮にマルウエアが潜伏していても、かかるマルウエアを消去して行うことを可能にするもので、これによって起動メモリ領域120をクリーンな環境とし、かつこの領域120に外部デバイスから専用ローダ(必要に応じて専用ローダをロードするために必要なテーブル等を含む)をロードすることができる。そして、外部デバイスから起動メモリ領域120に専用ローダがロードされた後、この専用ローダによってロードされる管理ファイルの配置領域に特権レベルの最高乃至は相対的に最高(OS、APのロード領域に設定される特権レベルと比較した場合)を設定することで、管理ファイルをクリーンな環境で起動及び稼働維持させることが可能となる。
(3)本実施形態では、管理ファイル125等を格納するためのセキュア領域(特権レベルDPL“0”)を1MB~100MBと設定したが、これに限定されず、管理ファイル125及び他の必要な管理テーブル等の格納が可能なメモリ容量分があればよく、例えば1MB~数MBのメモリ容量であってもよい。また、領域0MB~1MBについてもセキュア領域(特権レベルDPL“0”)としたことで、0MB~100MBを同質のセキュア領域として扱うことができる。
(4)本実施形態によれば、0MB~100MBにセキュア領域を構築したので、感染の検知が困難な、いわゆるステルス型ウイルスの侵入を効果的に阻止できる。また、セキュアな領域内で特定OS環境を設定し、特定の情報処理を可能としたが、これに代えて、あるいはこれに加えて、マルウエアを検知するアンチウイルスソフトウエアをロードし、100MB~4GBまでを監視する態様とすることも可能である。
 以上説明したように、本発明に係る情報処理空間管理方法は、BIOSの起動に応じて外部デバイスから主メモリの起動メモリ領域に専用ローダをロードする専用ローダロードステップと、前記主メモリの一部の第1領域に対して保護特権を設定し、かつ前記主メモリの前記第1領域及び起動メモリ領域とは異なる第2領域へロードされるOS(Operating System)の前記第1領域へのアクセスを監視するための管理ファイルを前記専用ローダによって前記外部デバイスから前記第1領域にロードする管理ファイルロードステップと、前記管理ファイルのロードから前記OSのロードまでの間に、前記保護特権より低いアクセス権限のアクセス保護情報を前記第2領域に設定するアクセス保護情報設定ステップとを備えることが好ましい。
 また、本発明に係る外部デバイスは、接続された情報処理装置にファイルのロードを行う外部デバイスにおいて、BIOSの起動に応じて主メモリの起動メモリ領域にロードする専用ローダと、主メモリの一部の第1領域に対して保護特権を設定し、かつ前記主メモリの前記第1領域及び前記起動メモリ領域とは異なる第2領域へロードされるOS(Operating System)の前記第1領域へのアクセスを監視するためのファイルであって前記第1領域にロードされる管理ファイルと、前記管理ファイルのロードから前記OSのロードまでの間にロードされ、前記保護特権より低いアクセス権限のアクセス保護情報を前記第2領域に設定するアクセス保護情報設定ファイルとを含むことが好ましい。
 また、本発明に係る情報処理装置は、ワークメモリである主メモリを有し、接続された外部デバイスから所定のファイルを前記主メモリにロードする情報処理装置において、BIOSの起動に応じて前記外部デバイスから前記主メモリの起動メモリ領域に専用ローダをロードする専用ローダロード部と、前記主メモリの一部の第1領域に対して保護特権を設定し、かつ前記主メモリの前記第1領域及び起動メモリ領域とは異なる第2領域へロードされるOS(Operating System)の前記第1領域へのアクセスを監視するための管理ファイルを前記専用ローダによって前記外部デバイスから前記第1領域にロードする管理ファイルロード処理手段と、前記管理ファイルのロードから前記OSのロードまでの間に、前記保護特権より低いアクセス権限のアクセス保護情報を前記第2領域に設定するアクセス保護情報設定手段とを備えることが好ましい。
 これらによれば、BIOSの起動に応じて外部デバイスから専用ローダをロードするようにしたので、情報処理装置内のBIOSやMBRに潜伏しているマルウエアの挙動を抑止して専用ローダを起動メモリ領域にクリーンのままロードすることが可能となる。そして、クリーンな専用ローダによって管理ファイルが同外部デバイスからロードされるので、保護特権の適正な設定及び不当アクセスの適正な監視が確保される。従って、マルウエアに感染したOSのプログラムが複製を行う等の目的でアクセスを企てて第2領域から第1領域に侵入してきても、アクセス保護情報の差によって、確実にフック(検知)され、かかる不当なアクセスは無効にされる。
 また、前記情報処理空間管理方法において、前記専用ローダロードステップは、前記起動メモリ領域に更新的に前記専用ローダをロードすることが好ましい。この構成によれば、起動メモリ領域にマルウエアが潜伏し、あるいはフックのためのアドレスが記述されていても、これらの上に専用ローダを上書き等することで、結果的にマルウエアの挙動を抑止することが可能となる。
 また、前記情報処理空間管理方法において、前記専用ローダのロードは前記主メモリの前記起動メモリ領域の全体に強制的に行うことが好ましい。この構成によれば、専用ローダは起動目盛領域の全域に対して強制的にロードされるので、潜伏マルウエアの挙動を抑止することが可能となる。
 また、前記情報処理空間管理方法において、前記第1領域と前記起動メモリ領域とは同一の保護特権が設定されていることが好ましい。この構成によれば、これにおり、専用ローダについても高い保護特権が設定されることとなる。
 また、前記情報処理空間管理方法において、前記起動メモリ領域は、0MB~1MBであることが好ましい。この構成によれば、本技術は専用の情報処理装置に限らず、汎用の情報処理装置(パーソナルコンピュータやサーバ類)にも適用可能となる。
 また、前記情報処理空間管理方法において、前記管理ファイルは、前記OS内の各プログラムのアクセス保護情報が登録されたGDT(Global Descriptor Table)を有し、前記第2領域から前記第1領域へアクセスされた前記OS内のプログラムに対して、前記GDTに登録されているアクセス保護情報を参照して前記一般保護例外を発行する処理を含むことが好ましい。この構成によれば、アクセスされてきたOS内のプログラムに対応するGDTのセグメントディスクリプタのアクセス保護情報を参照することで、一般保護例外を発行することができ、これによって当該不当なアクセスは無効化される。
 また、前記情報処理空間管理方法において、前記管理ファイルは、前記第2領域から前記第1領域への前記OS内のプログラムのアクセスに対して、前記一般保護例外を発行し、IDT(Interrupt Descriptor Table)を介して割込ハンドラによって前記アクセスを無効にする処理を含むことが好ましい。この構成によれば、OSによる第1領域へのアクセスが一律に無効化される。
 また、前記情報処理空間管理方法において、前記GDTで生成されたリニアアドレスはPTE(Page Table Entry)を用いて物理アドレスに変換されるもので、前記PTEは、前記GDTで生成されたリニアアドレスに加算される、少なくとも前記第2領域内アドレス値が設定されたものであることが好ましい。この構成によれば、ページングによって物理アドレスは必ず第2領域内となるので、第2領域から第1領域へのアクセス自体が不可能となる。
 また、前記情報処理空間管理方法において、前記PTEは、前記OSの各プログラムに対するアクセスレベル属性情報が登録されており、前記第2領域からの前記OSのプログラムのアクセスに対して前記PTEを介してページフォルトを発行し、IDTを介して前記割込ハンドラによって前記アクセスを無効にすることが好ましい。この構成によれば、第2領域からアクセスされてきたOSのプログラは、当該プログラムに対応するPTE内のセグメントディスクリプタのアクセスレベル属性情報との差によってページフォルトが発行されて、IDT、割込ハンドラを介してかかるアクセスは無効化される。
 また、前記情報処理空間管理方法において、前記アクセス保護情報は、前記第1領域に対して値0が設定され、前記OSに対して値2が設定され、前記OSによって稼働されるAP(Application Program)に対して値3が設定されていることが好ましい。この構成によれば、アクセス保護の差によってOS,APから第1領域へのアクセスは無効にされル。この結果、第1領域がセキュア領域として保持される。
 また、前記情報処理空間管理方法において、前記OSのロード後、前記第2領域からの前記OSのプログラムのアクセスに対して一般保護例外を発行し、前記アクセスを無効にする不正アクセス対応ステップを含むことが好ましい。この構成によれば、OSロード後において、マルウエアに感染し、あるいは潜伏していたOSのプログラムが第1領域に不当なアクセスを行っても、第1領域が適正にセキュア領域として管理されているため、必ず一般保護例外が発行される。
 1 端末(情報処理装置)
 10,20 CPU
 11,21 ROM
 101 専用ローダロード処理部
 102 専用ローダ処理部(管理ファイルロード処理手段)
 103 管理ファイル動作環境作成部(管理ファイルロード処理手段)
 104 OSローダロード処理部
 105 OSローダ処理部
 106 OS動作監視部106
 12 RAM(主メモリ)
 12A ハードディスク(HD)
 120 起動メモリ領域
 13 操作部
 2 PCI(外部デバイス)
 201 専用ローダロード処理部
 202 監視部
 203 管理ファイルロード処理部
 204 OSローダロード処理部
 251 専用ローダ記憶部
 252 専用ローダ記憶部
 253 管理ファイル記憶部
 254 システムテーブル記憶部
 255 OSローダ記憶部
 24 DMAC(専用ローダロード部)

Claims (13)

  1. BIOSの起動に応じて外部デバイスから主メモリの起動メモリ領域に専用ローダをロードする専用ローダロードステップと、
     前記主メモリの一部の第1領域に対して保護特権を設定し、かつ前記主メモリの前記第1領域及び起動メモリ領域とは異なる第2領域へロードされるOS(Operating System)の前記第1領域へのアクセスを監視するための管理ファイルを前記専用ローダによって前記外部デバイスから前記第1領域にロードする管理ファイルロードステップと、
     前記管理ファイルのロードから前記OSのロードまでの間に、前記保護特権より低いアクセス権限のアクセス保護情報を前記第2領域に設定するアクセス保護情報設定ステップとを備えたことを特徴とする情報処理空間管理方法。
  2. 前記専用ローダロードステップは、前記起動メモリ領域に更新的に前記専用ローダをロードすることを特徴とする請求項1に記載の情報処理空間管理方法。
  3. 前記専用ローダのロードは前記主メモリの前記起動メモリ領域の全体に強制的に行うことを特徴とする請求項2記載の情報処理空間管理方法。
  4. 前記第1領域と前記起動メモリ領域とは同一の保護特権が設定されていることを特徴とする請求項1~3のいずれかに記載の情報処理空間管理方法。
  5. 前記起動メモリ領域は、0MB~1MBであることを特徴とする請求項1~4のいずれかに記載の情報処理空間管理方法。
  6. 前記管理ファイルは、前記OS内の各プログラムのアクセス保護情報が登録されたGDT(Global Descriptor Table)を有し、前記第2領域から前記第1領域へアクセスされた前記OS内のプログラムに対して、前記GDTに登録されているアクセス保護情報を参照して前記一般保護例外を発行する処理を含むことを特徴とする請求項1~5のいずれかに記載の情報処理空間管理方法。
  7. 前記管理ファイルは、前記第2領域から前記第1領域への前記OS内のプログラムのアクセスに対して、前記一般保護例外を発行し、IDT(Interrupt Descriptor Table)を介して割込ハンドラによって前記アクセスを無効にする処理を含むことを特徴とする請求項6に記載の情報処理空間管理方法。
  8. 前記GDTで生成されたリニアアドレスはPTE(Page Table Entry)を用いて物理アドレスに変換されるもので、前記PTEは、前記GDTで生成されたリニアアドレスに加算される、少なくとも前記第2領域内アドレス値が設定されたものであることを特徴とする請求項1~7のいずれかに記載の情報処理空間管理方法。
  9. 前記PTEは、前記OSの各プログラムに対するアクセスレベル属性情報が登録されており、前記第2領域からの前記OSのプログラムのアクセスに対して前記PTEを介してページフォルトを発行し、IDTを介して前記割込ハンドラによって前記アクセスを無効にすることを特徴とする請求項8記載の情報処理空間管理方法。
  10. 前記アクセス保護情報は、前記第1領域に対して値0が設定され、前記OSに対して値2が設定され、前記OSによって稼働されるAP(Application Program)に対して値3が設定されていることを特徴とする請求項1~9のいずれかに記載の情報処理空間管理方法。
  11. 前記OSのロード後、前記第2領域からの前記OSのプログラムのアクセスに対して一般保護例外を発行し、前記アクセスを無効にする不正アクセス対応ステップを含むことを特徴とする請求項1~10のいずれかに記載の情報処理空間管理方法。
  12. 接続された情報処理装置にファイルのロードを行う外部デバイスにおいて、
     BIOSの起動に応じて主メモリの起動メモリ領域にロードする専用ローダと、
     主メモリの一部の第1領域に対して保護特権を設定し、かつ前記主メモリの前記第1領域及び前記起動メモリ領域とは異なる第2領域へロードされるOS(Operating System)の前記第1領域へのアクセスを監視するためのファイルであって前記第1領域にロードされる管理ファイルと、
     前記管理ファイルのロードから前記OSのロードまでの間にロードされ、前記保護特権より低いアクセス権限のアクセス保護情報を前記第2領域に設定するアクセス保護情報設定ファイルとを含むことを特徴とする外部デバイス。
  13. ワークメモリである主メモリを有し、接続された外部デバイスから所定のファイルを前記主メモリにロードする情報処理装置において、
     BIOSの起動に応じて前記外部デバイスから前記主メモリの起動メモリ領域に専用ローダをロードする専用ローダロード部と、
     前記主メモリの一部の第1領域に対して保護特権を設定し、かつ前記主メモリの前記第1領域及び起動メモリ領域とは異なる第2領域へロードされるOS(Operating System)の前記第1領域へのアクセスを監視するための管理ファイルを前記専用ローダによって前記外部デバイスから前記第1領域にロードする管理ファイルロード処理手段と、
     前記管理ファイルのロードから前記OSのロードまでの間に、前記保護特権より低いアクセス権限のアクセス保護情報を前記第2領域に設定するアクセス保護情報設定手段とを備えたことを特徴とする情報処理装置。
PCT/JP2012/078575 2011-11-09 2012-11-05 情報処理空間管理方法、外部デバイス及び情報処理装置 WO2013069587A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011245631A JP2013101550A (ja) 2011-11-09 2011-11-09 情報処理空間管理方法、外部デバイス及び情報処理装置
JP2011-245631 2011-11-09

Publications (1)

Publication Number Publication Date
WO2013069587A1 true WO2013069587A1 (ja) 2013-05-16

Family

ID=48289961

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/078575 WO2013069587A1 (ja) 2011-11-09 2012-11-05 情報処理空間管理方法、外部デバイス及び情報処理装置

Country Status (3)

Country Link
JP (1) JP2013101550A (ja)
TW (1) TW201333748A (ja)
WO (1) WO2013069587A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220004633A1 (en) * 2020-07-01 2022-01-06 Nokia Technologies Oy Apparatus, method and computer program for detecting malware
TWI767266B (zh) * 2020-06-30 2022-06-11 神雲科技股份有限公司 基於記憶體對映輸入輸出的記憶體空間自動分配方法
US11550619B2 (en) 2020-09-23 2023-01-10 Kabushiki Kaisha Toshiba Information processing device and processing method

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6370098B2 (ja) 2014-05-16 2018-08-08 杉中 順子 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
JP2019003349A (ja) * 2017-06-13 2019-01-10 ロゴヴィスタ株式会社 個別命令の処理時間計測によるウィルスの監視方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050005076A1 (en) * 2003-07-03 2005-01-06 M-Systems Flash Disk Pioneers, Ltd. Mass storage device with boot code
JP2008269288A (ja) * 2007-04-20 2008-11-06 Hewlett-Packard Development Co Lp 起動システム、起動プログラムおよびその方法。
WO2009113394A1 (ja) * 2008-03-14 2009-09-17 三菱電機株式会社 マルチオペレーティングシステム(os)起動装置及びマルチos起動プログラム及び記録媒体及びマルチos起動方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050005076A1 (en) * 2003-07-03 2005-01-06 M-Systems Flash Disk Pioneers, Ltd. Mass storage device with boot code
JP2008269288A (ja) * 2007-04-20 2008-11-06 Hewlett-Packard Development Co Lp 起動システム、起動プログラムおよびその方法。
WO2009113394A1 (ja) * 2008-03-14 2009-09-17 三菱電機株式会社 マルチオペレーティングシステム(os)起動装置及びマルチos起動プログラム及び記録媒体及びマルチos起動方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI767266B (zh) * 2020-06-30 2022-06-11 神雲科技股份有限公司 基於記憶體對映輸入輸出的記憶體空間自動分配方法
US20220004633A1 (en) * 2020-07-01 2022-01-06 Nokia Technologies Oy Apparatus, method and computer program for detecting malware
US11989297B2 (en) * 2020-07-01 2024-05-21 Nokia Technologies Oy Apparatus, method and computer program for detecting malware
US11550619B2 (en) 2020-09-23 2023-01-10 Kabushiki Kaisha Toshiba Information processing device and processing method

Also Published As

Publication number Publication date
JP2013101550A (ja) 2013-05-23
TW201333748A (zh) 2013-08-16

Similar Documents

Publication Publication Date Title
JP5512610B2 (ja) 非ファームウェアエージェントからメモリへのアクセスを許可または阻止する方法、システム、および機械可読記憶媒体
WO2011145199A1 (ja) 外部ブートデバイス、外部ブート方法、情報処理装置及びネットワーク通信システム
US7739517B2 (en) Hardware-based authentication of a software program
JP4486288B2 (ja) コンピュータにおいてトラステッドコア初期化プロセスを安全に実行するためのプログラム、方法、メモリコントローラ、装置及びコンピュータ
US7127579B2 (en) Hardened extended firmware interface framework
CN105122258B (zh) 对系统进行配置的方法、计算系统以及物品
US20080034350A1 (en) System and Method for Checking the Integrity of Computer Program Code
US20070276969A1 (en) Method and device for controlling an access to peripherals
JP4249779B2 (ja) デバイス制御装置
CN102271153A (zh) 用于虚拟化tpm访问的系统、方法以及装置
CN103718165A (zh) Bios闪存攻击保护和通知
US20080244746A1 (en) Run-time remeasurement on a trusted platform
JP6370098B2 (ja) 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
WO2013069587A1 (ja) 情報処理空間管理方法、外部デバイス及び情報処理装置
WO2011141997A1 (ja) 外部ブートデバイス、外部ブートプログラム、外部ブート方法及びネットワーク通信システム
JP2020042341A (ja) プロセッシングデバイス及びソフトウェア実行制御方法
EP1843250B1 (en) System and method for checking the integrity of computer program code
CN113268447A (zh) 计算机架构及其内的访问控制、数据交互及安全启动方法
WO2012053053A1 (ja) 外部ブートデバイス及びネットワーク通信システム
WO2013080848A1 (ja) ファイル通信処理方法及び外部デバイス
WO2013061782A1 (ja) 外部ブートデバイス及び外部ブート方法
JP2018036695A (ja) 情報処理監視装置、情報処理監視方法、監視プログラム、記録媒体及び情報処理装置
JP6085320B2 (ja) プロセッサ、プログラム、システム及び方法
JP2014112304A (ja) 情報処理装置、及びファイルのインストール方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12847992

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205N DATED 28/08/2014)

122 Ep: pct application non-entry in european phase

Ref document number: 12847992

Country of ref document: EP

Kind code of ref document: A1