WO2022145085A1 - 情報処理装置、情報処理システムおよび情報処理装置のファイル処理方法 - Google Patents

情報処理装置、情報処理システムおよび情報処理装置のファイル処理方法 Download PDF

Info

Publication number
WO2022145085A1
WO2022145085A1 PCT/JP2021/031059 JP2021031059W WO2022145085A1 WO 2022145085 A1 WO2022145085 A1 WO 2022145085A1 JP 2021031059 W JP2021031059 W JP 2021031059W WO 2022145085 A1 WO2022145085 A1 WO 2022145085A1
Authority
WO
WIPO (PCT)
Prior art keywords
hash
file
application
application software
information processing
Prior art date
Application number
PCT/JP2021/031059
Other languages
English (en)
French (fr)
Inventor
大樹 山田
孝芳 藤岡
一登 白根
Original Assignee
株式会社日立産機システム
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立産機システム filed Critical 株式会社日立産機システム
Priority to JP2022572903A priority Critical patent/JP7462077B2/ja
Publication of WO2022145085A1 publication Critical patent/WO2022145085A1/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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Definitions

  • the present invention relates to an information processing device, an information processing system, and a file processing method of the information processing device, and in particular, prevents unauthorized application startup and application of abnormal settings even when the main memory is limited.
  • the present invention relates to an information processing device, an information processing system, and a file processing method of the information processing device, which are suitable for reducing the damage of a cyber attack related to the information processing device.
  • Patent Document 1 discloses a technique for detecting falsification using a hash of a program and, when the falsification is detected, activates an old version of a program stored in another area instead of a program having a risk of falsification. Has been done.
  • a pre-installed program is installed in a first storage unit which is a ROM (Read Only Memory), and a program which is normally used in a second storage unit which is a rewritable memory area. To install.
  • edge devices are inexpensive and mass-produced, so the capacity of memory and storage devices is often limited.
  • the information processing apparatus has a sufficient ROM and a rewritable memory area, and it is difficult to apply it to an edge device.
  • Patent Document 1 only the program is targeted for falsification detection, but a set value is required for the operation of the program, and if the set value is not included in the target of falsification detection, the program may operate abnormally. ..
  • An object of the present invention is to prevent unauthorized application startup and application of abnormal settings even when the information processing device has a limited amount of memory, and to reduce the damage of cyber attacks related to the information processing device.
  • the purpose is to provide an information processing device.
  • the configuration of the information processing device of the present invention is preferably an information processing device that executes the function of the application software by the execution file, and the information processing device detects the tampering of the application software and activates the application management.
  • the application management unit holds the hash of the execution file generated by the application management unit, and the application management unit holds the hash when the application software is started.
  • the hash of the application software execution file started by the generator is generated, the hash of the already held execution file is compared with the hash of the generated execution file, and if they do not match, the application is not started. It is a thing.
  • An information processing device can be provided.
  • FIG. It is a functional block diagram of the information processing apparatus which concerns on Embodiment 1.
  • FIG. It is a hardware software block diagram of the information processing apparatus which concerns on Embodiment 1.
  • FIG. It is a figure which shows an example of the application setting selection menu screen. It is a figure which shows an example of an application setting screen. It is a figure which shows an example of the execution file selection screen.
  • It is a flowchart which shows an example of the processing at the time of updating a setting file and an execution file.
  • It is a sequence diagram which shows an example of the processing at the time of updating a setting file and an execution file.
  • FIG. 1 shows an example of the application start process of Embodiment 1.
  • FIG. It is a sequence diagram which shows an example of the application start process of Embodiment 1.
  • FIG. It is a functional block diagram of the information processing apparatus which concerns on Embodiment 2.
  • FIG. It is a figure which shows an example of the data of a file acquisition request.
  • It is a flowchart which shows an example of the application start process of Embodiment 2.
  • It is a flowchart which shows an example of the hash application process of a setting file and an execution file.
  • It is a sequence diagram which shows an example of the process which an information processing apparatus acquires a file from a distribution server.
  • the information processing device of the present embodiment is a device designed to execute an application, and executes an application based on preset setting information or setting information set by a GUI (Graphical User Interface).
  • the information processing apparatus 100 includes a user interface unit 110, an application management unit 120, a hash generation unit 130, and one or more applications 140 (140-1, 140-2, ... In FIG. 1). Notation).
  • the application 140 includes a setting file 141 (denoted as 141-1, 141-2, ... In FIG. 1), a default setting file 142 (denoted as 142-1, 142-2, ... In FIG. 1), and an executable file 143.
  • the setting file 141 is a file that holds setting information about the application 140.
  • the default setting file 142 is a file that holds the setting information about the application 140, and is usually not rewritten unless the application 140 is updated.
  • the executable file 143 is an executable file or a shell file that processes the application 140. It should be noted that a plurality of executable files 143 may be held in one application 140 so that the user can select the executable file 143 to be started.
  • the user interface unit 110 is a functional unit that provides the user 1 with display on the screen and input / output of commands, data, and the like.
  • the user 1 can change the settings of the application via the user interface unit 110, which is reflected in the setting file 141 of the application.
  • the application management unit 120 is a functional unit that processes and manages each application 140.
  • the application management unit 120 includes a falsification detection unit 121, an application activation unit 122, and a sub-function unit of the application setting unit 123.
  • the falsification detection unit 121 is a functional unit that detects falsification by a malicious person regarding the setting file 141 and the execution file 143 related to the application 140.
  • the application activation unit 122 is a functional unit that activates each application 140.
  • the application setting unit 123 is a functional unit that updates the application setting file 141. Falsification is detected by generating hashes from the setting file 141 and the execution file 143 of the application 140 and comparing them with the hashes generated in advance (details will be described later).
  • the application management unit 120 holds the hash file 150 of the setting file 141 (hereinafter referred to as "setting hash”) and the hash file 151 of the executable file 143 (hereinafter referred to as “execution hash”).
  • the application management unit 120 inputs the setting file 141 and the execution file 143 to the hash generation unit 130, creates and holds the setting hash 150 and the execution hash 151, and holds the setting hash 150 when each application 140 is started.
  • the execution hash 151 detects that the setting file 141 of the application 140 to be started has been tampered with, or when the setting file 141 does not exist
  • the application management unit 120 inputs the information of the default setting file 142 of the application 140 to the application 140. Overwrites the setting file 141 of, and starts the application 140.
  • the hash generation unit 130 is a functional unit that generates a hash for the setting file 141 and the execution file 143 of the application 140.
  • a hash is generated by a hash function and is characterized by a fixed length value that ideally returns the same result for the same input. On the contrary, if there are some differences in the input, basically different hashes are generated, so this technology is used for encryption and tampering detection.
  • the present invention may be any hash generation method that can obtain a fixed digest value for a file or data regardless of the algorithm of the hash generation method (MD5, SHA-1, SHA2, etc.).
  • the hardware configuration of the information processing device 100 is realized by, for example, a general information processing device such as the personal computer shown in FIG.
  • a CPU Central Processing Unit
  • main storage device 304 a main storage device 304
  • network I / F InterFace
  • display I / F 308 a display I / F 308
  • input / output I / F 310 a main storage I / F 312
  • auxiliary storage I / F 312 a bus. It is in the form of.
  • the CPU 302 controls each part of the information processing device 100, loads and executes a program required for the main storage device 304.
  • the main storage device 304 is usually composed of a volatile memory such as a RAM, and stores a program executed by the CPU 302 and data to be referred to.
  • the network I / F306 is an interface for connecting to the network 5.
  • the display I / F 308 is an interface for connecting a display device 320 such as an LCD (Liquid Crystal Display).
  • a display device 320 such as an LCD (Liquid Crystal Display).
  • the input / output I / F 310 is an interface for connecting an input / output device.
  • the keyboard 330 and the mouse 332 of the pointing device are connected.
  • the auxiliary storage I / F 312 is an interface for connecting an auxiliary storage device such as an HDD (Hard Disk Drive) 350 or an SSD (Solid State Drive).
  • an HDD Hard Disk Drive
  • SSD Solid State Drive
  • the HDD 350 has a large storage capacity, and stores a program for executing the present embodiment.
  • An application management program 360, a hash generation program 370, and a user interface program 380 are installed in the information processing apparatus 10.
  • the application management program 360, the hash generation program 370, and the user interface program 380 are programs that realize the functions of the application management unit 120, the hash generation unit 130, and the user interface unit 110, respectively.
  • the application management program 360 includes a falsification detection module 361, an application start module 362, and an application setting module 363.
  • the falsification detection module 361, the application activation module 362, and the application setting module 363 are modules that realize the functions of the falsification detection unit 121, the application activation unit 122, and the application setting unit 123, respectively.
  • the HDD 350 includes a setting file 141 (denoted as 141-1, 141-2, ... In FIG. 2), a default setting file 142 (denoted as 142-1, 142-2, ... In FIG. 2), and an executable file.
  • 143 (denoted as 143-1, 143-2, ... in FIG. 2)
  • setting hash 150 (denoted as 150-1, 150-2, ... in FIG. 2)
  • execution hash 151 (151-indicated in FIG. 2). 1, 151-2, ...) is stored.
  • the application setting selection menu screen 200 is a screen for selecting a menu for setting each application 140.
  • User 1 can call and display the application setting screen 202 shown in FIG. 4 by selecting the icon 201 (denoted as 201a, 201b, ... In FIG. 3) corresponding to each application 140.
  • the application setting screen 202 is a screen that accepts input / output for making detailed settings for each application 140.
  • the user 1 can input the setting item 203 (denoted as 203a, 203b, ... In FIG. 4) and select the setting change button 204 to reflect the setting information input by the user in the setting file. ..
  • the user interface unit 110 updates the setting file 141 according to the input of the GUI.
  • the executable file selection screen 206 is a screen for selecting an executable file to be called when the corresponding application 140 is started.
  • the execution file selection screen 206 displays the execution file name 207 stored in the information processing apparatus 100 and the storage date and time.
  • User 1 can change the executable file 143 of the application 140 by selecting the executable file name 207 and selecting the executable file change execution button 208.
  • the executable file name 207 is selected, the color is inverted and the executable file name 207 is in the selected state.
  • the execution file change execution button is selected, the user interface unit 110 sends the information of the execution file name to the application management unit 120.
  • the setting file and the execution file update are updated when the application 140 is first installed and when the user changes the settings of the application 140 after the installation.
  • the user installs the application 140 or the user changes the setting of the application 140 via the user interface unit 110, so that the setting file 141 and the execution file 143 of the application 140, or the setting file 141 is changed.
  • the application management unit 120 passes the changed file information to the hash generation unit 130, and the hash generation unit 130 generates a hash based on the passed file information (S102, A104) and changes the hash. Returns the hash of the file (A105).
  • the application management unit 120 stores the setting file 141 and the execution file 143 as the setting hash 150 and the execution hash 151, respectively, based on the sent hash (S103).
  • the application management unit 120 accesses the setting file 141 and the execution file 143 of the corresponding application 140 when receiving a start instruction by an instruction of a user or an external program (S201 in FIG. 8, A201 in FIG. 9).
  • the application management unit 120 determines whether or not the setting file exists (S202), and if it exists (S202: YES), it goes to S204, and if it does not exist (S202: NO), it goes to S203. ..
  • the application management unit 120 accesses the default setting file 142 and duplicates the default setting file 142 as the setting file 141 (S203).
  • the application management unit 120 sends the information of the setting file 141 and the execution file 143 to the hash generation unit 130 (A202), and the hash generation unit 130 generates a hash corresponding to each file (S204), and the application. Send to management unit 120 (A203).
  • the falsification detection unit 121 of the application management unit 120 compares the received hash with the held setting hash 150 and execution hash 151 (S205), and when the received hash and the execution hash 151 match (S206). : YES), go to S207, and if they do not match (S206: NO), end the process. Further, when the received hash and the retained execution hash 151 do not match, a warning message may be displayed.
  • the application management unit 120 When the setting hash 150 does not match, the application management unit 120 overwrites the information of the default setting file 142 with the setting file 141 (S208).
  • the application management unit 120 sends the information of the setting file 141 changed in S203 to the hash generation unit 130, and the hash generation unit 130 generates a hash of the setting file and sends it to the application management unit 120.
  • the application management unit 120 stores the setting hash 150 based on the information (S209, not shown in FIG. 9).
  • the application management unit 120 instructs the application 140 and starts the application (S210, A204).
  • the hash corresponding to the file is saved as the setting hash 150 and the execution hash 151, and is saved when the application 140 is started.
  • the file By comparing the file with the setting file 141 and the executable file 143 used at the time of startup, it is verified whether or not the setting file 141 and the executable file 143 are legitimate. That is, if the hash is different, it is regarded as not a file edited / changed by an appropriate procedure, and illegal operation is blocked. Therefore, if the setting hash 150 is different, the default setting is replaced, and if the execution hash 151 is different, the file is replaced. , Cancels the startup of application 140. As a result, only legitimate applications 140 of the information processing apparatus 100 are executed, and activation of the application 140 that may be tampered with is prevented.
  • the hash used in this embodiment is a fixed-length bit string, and the ratio to the memory amount of the information processing apparatus 100 can be predicted, and even when a complicated function is realized, a setting file is used. The amount of data is sufficiently small for 141 and the execution file 143, and the memory of the information processing apparatus is not overwhelmed.
  • Embodiment 2 Next, Embodiment 2 of the present invention will be described with reference to FIGS. 10 to 15.
  • the information processing device 100 for preventing file tampering and mixing of invalid files by verifying the validity of the setting file 141 and the execution file 143 using hashes has been described.
  • the information processing device 100 detects the alteration of the setting file 141 and the execution file 143, a data distribution server 700 for downloading the correct setting file 141 and the execution file 143 is provided.
  • the information processing system of the second embodiment is composed of an information processing apparatus 100 and a data distribution server 700, and the information processing apparatus 100 and the data distribution server 700 are connected by a network 5.
  • the network 5 may be a global network such as the Internet, or may be a LAN (Local Area Network).
  • the data distribution server 700 has a distribution management unit 701 as a functional unit and holds a distribution database 710.
  • the distribution management unit 701 acquires necessary data from the distribution database 710 and replies to the inquiry from the application management unit 120 of the information processing apparatus 100.
  • the distribution database 710 is a setting file 711 corresponding to the setting file 141 and the execution file 143 for each application applied to the information processing device 100 referred to by the distribution management unit 701 (711-1 and 711-2 in FIG. 10). , ...) and the executable file 713 (denoted as 713-1, 713-2, ... In FIG. 10) are stored in this database.
  • the information processing apparatus 100 has a server communication unit 124 as a functional unit of the first embodiment.
  • the server communication unit 124 is a functional unit for communicating with the data distribution server 700.
  • the file acquisition request is a process performed by the application management unit 120 of the information processing apparatus 100 to the data distribution server 700 via the network 5 when the application 140 is started (details will be described later).
  • JSON JavaScript Object Notation
  • DeviceID Stores an identifier that can uniquely identify the information processing apparatus 100 that is the transmission source.
  • the distribution management unit 701 manages the setting file 711 and the execution file 713 of each application 140 for each Device ID, and can acquire necessary files from the distribution database 710 based on the Device ID.
  • application A key indicating which application 140 the acquired file applies to. An identifier that identifies the application 140 is stored in this key.
  • FileType A key for designating whether the target to be acquired is the setting file 711 or the executable file 713. In the case of the setting file 711, the setting character string is stored, and in the case of the execution file 713, the execution character string is stored.
  • FIG. S301, S302, and S303 of FIG. 12 are the same as S201, S204, and S205 of FIG. 8 of the first embodiment, respectively.
  • the application management unit 120 instructs the application 140 to start the application (S308).
  • the application management unit 120 requests the data distribution server 700 to acquire the target file having the data structure shown in FIG. 11 via the server communication unit 124 (S401).
  • the application management unit 120 waits for the reception of the target file, and when the target file is received from the data distribution server 700 (S402: YES), goes to S404.
  • the application management unit 120 passes the information of the hash generation unit 130, the hash generation unit 130 generates a hash of the received file (S403), and returns the generated hash to the application management unit 120.
  • the application management unit 120 stores the setting hash 150 and the execution hash 151 of the received file (S404).
  • the application management unit 120 sends the information of the received file to the application 140, and the application 140 registers it as the setting file 141 or the executable file 143 (S405).
  • the data distribution server 700 goes to A502 when it receives a file request from the information processing device 100 via the network 5 (S501: YES, A301).
  • the distribution management unit 701 of the data distribution server 700 analyzes the content of the received file acquisition request shown in FIG. 11 (S502), and queries the distribution database 710 (query) (S503, A302) according to the analysis result. ).
  • the distribution management unit 701 transmits the file acquired via the network 5 to the requesting information processing device 100 (S504, A304) according to the file information of the reply (A304).
  • the application 140 of the information processing apparatus 100 registers the received file as the setting file 141 or the execution file 143 (A305).
  • the information processing apparatus 100 acquires the correct setting file 711 and setting file 743 from the data distribution server even when the setting file 141 and the execution file 143 are tampered with by cooperating with the data distribution server 700.
  • the application 140 can be started without being restricted in function.
  • the communication amount increases because the inquiry is made and the data is acquired every time the application 140 is started.
  • the information processing device 100 and the data distribution server 700 are often connected by an LTE (LongTerm Evolution) network, and it is expected that the amount of data communication will greatly affect the communication charge.
  • lines prepared for industrial use often have a poor communication band due to the nature of connecting a large number of devices. For this reason, when falsification detection is performed for a plurality of applications 140 at once, it is necessary to reduce the number of inquiries and reduce the amount of communication data.
  • the information processing apparatus 100 generates an entire hash from the setting hash 150 and the execution hash 151 of all the applications 140, and notifies the data distribution server 700 to tamper with all the applications 140. Enables detection.
  • the information processing apparatus 100 since an unauthorized access is received, the stored hash may be tampered with, making it difficult to detect the tampering. According to the information processing system of the third embodiment, even when the information processing apparatus 100 receives an unauthorized access, the information processing apparatus 100 originally manages the hash information necessary for verification by the data distribution server 700. Provides a means for acquiring the setting file 711 and the execution file 713 necessary for the operation of.
  • the second embodiment information processing system has a configuration in which a verification database 720 is added to the data distribution server 700.
  • the verification table 800 is stored in the verification database 720.
  • the verification table 800 is a table that the distribution management unit 701 refers to in order to verify the hash transmitted when the file verification request is received from the application management unit 120.
  • the verification table 800 is composed of columns of DeviceID800a, application confirmation condition 800b, and distribution file 800c.
  • the Device ID 800a is a column for storing an identifier that can uniquely identify the information processing apparatus 100.
  • the application confirmation condition 800b is a column for storing a condition for confirming whether the information processing apparatus 100 applies the correct file in the distribution management unit 701.
  • a conditional expression for verifying the entire hash generated from the hashes of the setting file 141 and the execution file 143 of all the applications 140 of the information processing apparatus 100 is stored. ..
  • other conditions such as file generation date and time and file update date and time may be added.
  • the distribution management unit 701 determines that an appropriate file has not been applied to the information processing device 100, and distributes the necessary file to the information processing device 100. It shall be.
  • the distribution file 800c is a column for storing file information to be distributed when the application confirmation condition is false, for example, a file name, a file path, and a URL of the file to be distributed.
  • K201 Device ID: An ID that can uniquely identify the information processing apparatus 100 that is the transmission source.
  • the distribution management unit 701 manages distribution files for each Device ID, and acquires necessary files from the distribution database 710 based on this identifier.
  • Hash Stores all the setting hashes 150 held by the application management unit 120 and the entire hash generated from the execution hash 151.
  • One whole hash is generated for one information processing apparatus 100. Therefore, in order to generate the whole hash, all the setting hash 150 and the execution hash 151 held by the application management unit 120 are combined. Then, it is sent to the hash generation unit 130, and the hash generation unit 130 generates the entire hash from the file in which all the hashes are combined.
  • the information processing apparatus 100 notifies the data distribution server 700 of the entire hash for the purpose of detecting falsification of firmware or the like, but it can also be used for version verification of all applications 140, for example. In addition, it can also be used for the distribution management unit 701 to give an instruction to the application management unit 120 for adding / reducing the application 140.
  • File verification is started when the user 1 operates from the GUI, when the information processing device 100 is started, when the application 140 is started, or when a periodic trigger is triggered.
  • the application management unit 120 of the information processing apparatus 100 transmits a file verification request to the data distribution server 700 via the server communication unit 124 according to the data structure shown in FIG. 18 (S601, A401).
  • the application management unit 120 waits for a response from the data distribution server 700, and when it receives the response (S602: YES, A406), it goes to S603.
  • the distribution management unit 701 of the data distribution server 700 receives the file verification request from the information processing device 100 (S701: YES, A401), it goes to S702.
  • the distribution management unit 701 of the data distribution server 700 queries the verification database 720 (A402, A403), receives the hash information (K202) of the file verification request shown in FIG. 18, and the device ID 800a of the verification table 800 shown in FIG. And, the consistency of the whole hash is verified by the information of the delivery confirmation condition file 800b (S702).
  • the delivery database 710 is queried (A404, A405), and the target file (file in which the distribution file 800c is described) is requested as the request source. (S704, A404,), and when the hash information of the file verification request and the delivery confirmation condition do not match (S703: NO), NUML is transmitted to the requesting information processing device 100 (S704, A404). S705). Then, unless there is interrupt processing or interruption processing (not shown), the process returns to S701.
  • the information processing apparatus 100 generates an entire hash from the setting hash 150 and the execution hash 151 of all the applications 140, and notifies the data distribution server 700 to enable tampering detection for all the applications 140. And.
  • communication between the information processing apparatus 100 and the data distribution server 700 becomes unnecessary every time the application 140 is started, and the amount of communication can be reduced.
  • the amount of data communication can be reduced by collectively compressing and transmitting a plurality of files from the data distribution server 700.
  • the data distribution server 700 manages the hash information required for verification, file verification is possible even when the information processing apparatus 100 is illegally accessed and the validity of the file cannot be verified.
  • hash data which has a significantly smaller amount of data than the original file, is sent to the data distribution server 700 even at the time of verification, the amount of communication data can be reduced without overwhelming the network bandwidth even when the communication bandwidth is poor. It can be suppressed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

情報処理装置は、アプリケーションの改ざんを検知し、アプリケーションを起動するアプリケーション管理部と、ファイルに対するハッシュを生成するハッシュ生成部とを備える。アプリケーション管理部は、ハッシュ生成部により生成された実行ファイルのハッシュを保持し、アプリケーション管理部は、アプリケーションを起動する際に、ハッシュ生成部により起動するアプリケーションの実行ファイルのハッシュを生成し、既に保持された実行ファイルのハッシュと、生成された実行ファイルのハッシュとを比較し、一致しないときには、当該アプリケーションを起動しないようにする。それにより、情報処理装置にメモリ量の制限がある場合にも、不正なアプリケーションの起動や異常な設定の適用を防止し、情報処理装置に関わるサイバー攻撃の被害を低減する。

Description

情報処理装置、情報処理システムおよび情報処理装置のファイル処理方法
 本発明は、情報処理装置、情報処理システムおよび情報処理装置のファイル処理方法に係り、特に、メインメモリの制限がある場合であっても、不正なアプリケーションの起動や異常な設定の適用を防止し、情報処理装置に関わるサイバー攻撃の被害を低減するのに好適な情報処理装置、情報処理システムおよび情報処理装置のファイル処理方法に関する。
 近年、無線ルータなどの通信端末がエッジデバイスとして、データの一次処理や、プロトコル変換など多様な処理を行うケースが増加している。さらに、通信機能を含むこれらのアプリケーションソフトウェア(以下、単に「アプリケーション」という)の更新・追加を実施するFOTA(Firmware Over The Air)の技術が確立されつつある。
 エッジデバイスの機能が向上するに伴い、これらの端末を狙ったサイバー攻撃の手段も高度化されてきており、例えば、DoS(Denial of Service)攻撃のように大量の通信データを投げかけて、装置の機能を停止させるものから、端末の制御を奪って他者に悪意のある攻撃を仕掛けさせるボットネットの一員とする不正プログラムの導入など、サイバー攻撃の手法は多様化が進んでいる。このようなサイバー攻撃を防止するためには、セキュリティに関わる設定を正しく行い、機能を実行するアプリケーションの改ざんを検知し、不正なアプリケーションの混入を防ぐ必要がある。
 このようなソフトウェアのセキュリティに関しては、例えば、特許文献1の記載の技術がある。この特許文献1では、プログラムのハッシュを用いた改ざん検知を行い、改ざんを検知した場合に、改ざんのおそれのあるプログラムではなく、別の領域に格納された旧バージョンのプログラムを起動する技術が開示されている。この特許文献1に記載された情報処理装置では、ROM(Read Only Memory)である第1記憶部にプリインストールプログラムをインストールし、書き換え可能なメモリ領域である第2記憶部に平常時に使用するプログラムをインストールする。そして、第2記憶部に保存されているプログラムに対し改ざん検知を行い、改ざんを検知した場合には、第1記憶部に指定のプログラムの旧バージョンがプリインストールされていればそれを実行する。これにより、プログラムの実行可否を規定したプログラム情報を改ざんされた場合でも、出荷時にプリインストールされたプログラムの利用を可能としユーザの利便性を確保することができるとしている。
特開2015-069403号公報
 一般に、エッジデバイスは安価で大量に生産される背景から、メモリや記憶装置の容量が制限されることが多い。特許文献1に記載された技術の場合には、情報処理装置が十分にROMや書き換え可能なメモリ領域を有することが前提となっており、エッジデバイスでの適用が難しい。また、特許文献1では、プログラムのみを改ざん検知の対象としているが、プログラムの動作には設定値が必要であり、設定値も改ざん検知の対象に含めなければプログラムが異常動作する可能性がある。
 本発明の目的は、情報処理装置にメモリ量の制限がある場合にも、不正なアプリケーションの起動や異常な設定の適用を防止し、情報処理装置に関わるサイバー攻撃の被害を低減することのできる情報処理装置を提供することにある。
 本発明の情報処理装置の構成は、好ましくは、実行ファイルによりアプリケーションソフトウェアの機能を実行する情報処理装置であって、情報処理装置は、アプリケーションソフトウェアの改ざんを検知し、アプリケーションソフトウェアを起動するアプリケーション管理部と、ファイルに対するハッシュを生成するハッシュ生成部とを備え、アプリケーション管理部は、ハッシュ生成部により生成された実行ファイルのハッシュを保持し、アプリケーション管理部は、アプリケーションソフトウェアを起動する際に、ハッシュ生成部により起動するアプリケーションソフトウェアの実行ファイルのハッシュを生成し、既に保持された実行ファイルのハッシュと、生成された実行ファイルのハッシュとを比較し、一致しないときには、当該アプリケーションを起動しないようにしたものである。
 本発明によれば、情報処理装置にメモリ量の制限がある場合にも、不正なアプリケーションの起動や異常な設定の適用を防止し、情報処理装置に関わるサイバー攻撃の被害を低減することのできる情報処理装置を提供することができる。
実施形態1に係る情報処理装置の機能構成図である。 実施形態1に係る情報処理装置のハードウェア・ソフトウェア構成図である。 アプリケーション設定選択メニュー画面の一例を示す図である。 アプリケーション設定画面の一例を示す図である。 実行ファイル選択画面の一例を示す図である。 設定ファイル、実行ファイル更新時処理の一例を示すフローチャートである。 設定ファイル、実行ファイル更新時処理の一例を示すシーケンス図である。 実施形態1のアプリケーション起動処理の一例を示すフローチャートである。 実施形態1のアプリケーション起動処理の一例を示すシーケンス図である。 実施形態2に係る情報処理装置の機能構成図である。 ファイル取得要求のデータの一例を示す図である。 実施形態2のアプリケーション起動処理の一例を示すフローチャートである。 設定ファイル、実行ファイルのハッシュ適用処理の一例を示すフローチャートである。 データ配信サーバにおけるファイル配信処理の一例を示すフローチャートである。 情報処理装置が配信サーバからファイルを取得する処理の一例を示すシーケンス図である。 実施形態3に係る情報処理装置の機能構成図である。 検証テーブルの一例を示す図である。 ファイル検証要求のデータの一例を示す図である。 全体ハッシュの概念について説明する図である。 情報処理装置から発信されるファイル検証依頼処理を示すフローチャートである。 データ配信サーバにおけるファイル検証処理を示すフローチャートである。 ファイル検証処理の一連の流れを示すシーケンス図である。
 以下、本発明に係る各実施形態を、図1ないし図22を用いて説明する。
  〔実施形態1〕
 以下、本発明に係る実施形態1を、図1ないし図9を用いて説明する。
 先ず、図1および図2を用いて実施形態1に係る情報処理装置の構成について説明する。
  本実施形態の情報処理装置は、アプリケーションを実行するために設計された装置であり、予め設定された設定情報、あるいは、GUI(Graphical User Interface)により設定した設定情報に基づいてアプリケーションを実行する。情報処理装置100は、図1に示されるように、ユーザインタフェース部110、アプリケーション管理部120、ハッシュ生成部130と、一つ以上のアプリケーション140(図1では、140-1、140-2、…と表記)からなる。
 アプリケーション140は、設定ファイル141(図1では、141-1、141-2、…と表記)、デフォルト設定ファイル142(図1では、142-1、142-2、…と表記)、実行ファイル143を保持する。設定ファイル141は、アプリケーション140に関する設定情報を保持するファイルである。デフォルト設定ファイル142は、アプリケーション140に関する設定情報を保持するファイルであり、通常、アプリケーション140を更新しない限り書き換えられることはない。実行ファイル143は、アプリケーション140の処理を行う実行形式のファイルまたはシェルファイルである。なお、一つのアプリケーション140に複数の実行ファイル143を保持し、起動する実行ファイル143をユーザが選択できるようにしてもよい。
 ユーザインタフェース部110は、ユーザ1に対して画面に対しての表示やコマンド、データなどの入出力を提供する機能部である。ユーザ1は、ユーザインタフェース部110を介してアプリケーションの設定を変更することができ、それは、アプリケーションの設定ファイル141に反映される。
 アプリケーション管理部120は、各アプリケーション140に関する処理と管理を行なう機能部である。アプリケーション管理部120は、改ざん検知部121、アプリケーション起動部122、アプリケーション設定部123のサブ機能部からなる。
 改ざん検知部121は、アプリケーション140に関する設定ファイル141や実行ファイル143に関する悪意ある者による改ざんを検知する機能部である。アプリケーション起動部122は、各アプリケーション140を起動する機能部である。アプリケーション設定部123は、アプリケーションの設定ファイル141を更新する機能部である。改ざんを検知は、アプリケーション140の設定ファイル141、実行ファイル143からハッシュを生成し、予め生成しておいたそれらのハッシュと比較することにより行なう(詳細は後述)。
 そのため、アプリケーション管理部120は、設定ファイル141のハッシュのファイル150(以下、「設定ハッシュ」という)と、実行ファイル143のハッシュのファイル151(以下、「実行ハッシュ」という)を保持する。アプリケーション管理部120は、設定ファイル141、実行ファイル143をハッシュ生成部130に入力して、設定ハッシュ150、実行ハッシュ151を作成して保持し、各アプリケーション140の起動時に、保持する設定ハッシュ150、実行ハッシュ151により、起動するアプリケーション140の設定ファイル141の改ざんを検知した場合や、設定ファイル141が存在しない場合には、アプリケーション管理部120が、当該アプリケーション140のデフォルト設定ファイル142の情報をアプリケーション140の設定ファイル141に上書きし、アプリケーション140を起動する。
 ハッシュ生成部130は、アプリケーション140の設定ファイル141と実行ファイル143に対するハッシュを生成する機能部である。ハッシュは、ハッシュ関数により生成され、固定長の値で、同一の入力に対し、理想的には同一の結果を返すことを特徴とする。逆に一部でも入力に異なる箇所はあれば、基本的に異なるハッシュが生成されるため、暗号化や改ざん検知に利用されている技術である。なお、本発明は、ハッシュ生成方法(MD5やSHA-1、SHA2など)のアルゴリズムに依らず、ファイルやデータに対し、固定値のダイジェスト値が得られるハッシュ生成方法であればよい。
 次に、図2を用いて情報処理装置10のハードウェア・ソフトウェア構成について説明する。
  情報処理装置100のハードウェア構成としては、例えば、図2に示されるパーソナルコンピュータのような一般的な情報処理装置で実現される。
 情報処理装置100は、CPU(Central Processing Unit)302、主記憶装置304、ネットワークI/F(InterFace)306、表示I/F308、入出力I/F310、補助記憶I/F312が、バスにより結合された形態になっている。
 CPU302は、情報処理装置100の各部を制御し、主記憶装置304に必要なプログラムをロードして実行する。
 主記憶装置304は、通常、RAMなどの揮発メモリで構成され、CPU302が実行するプログラム、参照するデータが記憶される。
 ネットワークI/F306は、ネットワーク5と接続するためのインタフェースである。
 表示I/F308は、LCD(Liquid Crystal Display)などの表示装置320を接続するためのインタフェースである。
 入出力I/F310は、入出力装置を接続するためのインタフェースである。図2の例では、キーボード330とポインティングデバイスのマウス332が接続されている。
 補助記憶I/F312は、HDD(Hard Disk Drive)350やSSD(Solid State Drive)などの補助記憶装置を接続するためのインタフェースである。
 HDD350は、大容量の記憶容量を有しており、本実施形態を実行するためのプログラムが格納されている。情報処理装置10には、アプリケーション管理プログラム360、ハッシュ生成プログラム370、ユーザインタフェースプログラム380がインストールされている。
 アプリケーション管理プログラム360、ハッシュ生成プログラム370、ユーザインタフェースプログラム380は、それぞれアプリケーション管理部120、ハッシュ生成部130、ユーザインタフェース部110の機能を実現するプログラムである。
 アプリケーション管理プログラム360は、改ざん検知モジュール361、アプリケーション起動モジュール362、アプリケーション設定モジュール363からなる。改ざん検知モジュール361、アプリケーション起動モジュール362、アプリケーション設定モジュール363は、それぞれ改ざん検知部121、アプリケーション起動部122、アプリケーション設定部123の機能を実現するモジュールである。
 また、HDD350は、設定ファイル141(図2では、141-1、141-2、…と表記)、デフォルト設定ファイル142(図2では、142-1、142-2、…と表記)、実行ファイル143(図2では、143-1、143-2、…と表記)、設定ハッシュ150(図2では、150-1、150-2、…と表記)、実行ハッシュ151(図2では、151-1、151-2、…と表記)を格納している。
 次に、図3ないし図5を用いて実施形態1に係る情報処理装置が提供するユーザインタフェースについて説明する。
 ユーザ1は、マウスやキーボードを操作することにより、図3に示されるアプリケーション設定選択メニュー画面200を呼び出し、表示することができる。アプリケーション設定選択メニュー画面200は、各アプリケーション140の設定のためのメニューを選択するための画面である。
 ユーザ1は、各アプリケーション140に対応するアイコン201(図3では、201a、201b、…と表記)を選択することにより、図4に示されるアプリケーション設定画面202を呼び出し表示することができる。アプリケーション設定画面202は、各アプリケーション140毎の詳細な設定をするため入出力を受け付ける画面である。
 ユーザ1は、設定項目203(図4では、203a、203b、…と表記)を入力し、設定変更ボタン204を選択することにより、ユーザが入力した設定情報を、設定ファイルに反映することができる。ユーザインタフェース部110は、設定変更ボタン204が選択されると、GUIの入力に従い、設定ファイル141を更新する。
 また、ユーザ1は、実行ファイル変更ボタン205を選択すると、図5に示される実行ファイル選択画面206を呼び出し表示する。実行ファイル選択画面206は、該当するアプリケーション140の起動時に呼び出される実行ファイルを選択する画面である。
 実行ファイル選択画面206には、情報処理装置100に格納された実行ファイル名称207と格納日時が表示されている。ユーザ1は、実行ファイル名称207を選択し、実行ファイル変更実行ボタン208を選択することにより、アプリケーション140の実行ファイル143を変更することができる。実行ファイル名称207は、選択されることにより色が反転し、選択状態となる。そして、ユーザインタフェース部110は、実行ファイル変更実行ボタンが選択されると、実行ファイル名称の情報が、アプリケーション管理部120に送られる。
 次に、図6ないし図9を用いて情報処理装置の処理について説明する。
  先ず、図6および図7を用いて設定ファイル、実行ファイル更新時処理について説明する。
 設定ファイル、実行ファイル更新の更新は、最初にアプリケーション140をインストールしたとき、インストール後に、ユーザがアプリケーション140の設定を変更するときに行われる。
 先ず、ユーザインタフェース部110を介して、ユーザがアプリケーション140をインストールしたり、ユーザがアプリケーション140の設定を変更して、アプリケーション140の設定ファイル141および実行ファイル143、あるいは、設定ファイル141が変更される(図6のS101、図7のA101、A102、A103)。
 次に、アプリケーション管理部120は、変更されたファイル情報を、ハッシュ生成部130に渡して、ハッシュ生成部130は、渡されたファイル情報に基づいて、ハッシュを生成し(S102、A104)、変更したファイルのハッシュを返す(A105)。
 次に、アプリケーション管理部120は、送られてきたハッシュに基づいて、設定ファイル141、実行ファイル143に対して、それぞれ設定ハッシュ150、実行ハッシュ151として格納する(S103)。
 次に、図8および図9を用いて設定ファイル、実行ファイル更新時処理について説明する。
  先ず、アプリケーション管理部120は、ユーザまたは外部プログラムの指示によって、起動指示を受けたとき、該当するアプリケーション140の設定ファイル141、実行ファイル143をアクセスする(図8のS201、図9のA201)。
 次に、アプリケーション管理部120は、設定ファイルが存在しているか否かを判定し(S202)、存在するときには(S202:YES)、S204に行き、存在しないときには(S202:NO)、S203に行く。
 設定ファイルが存在しないときには、アプリケーション管理部120は、デフォルト設定ファイル142をアクセスし、デフォルト設定ファイル142を設定ファイル141として複製する(S203)。
 次に、アプリケーション管理部120は、設定ファイル141、実行ファイル143の情報をハッシュ生成部130に送り(A202)、ハッシュ生成部130は、それぞれのファイルに対応するハッシュを生成し(S204)、アプリケーション管理部120に送る(A203)。
 次に、アプリケーション管理部120の改ざん検知部121は、受取ったハッシュと、保持している設定ハッシュ150、実行ハッシュ151を比較し(S205)、受取ったハッシュと実行ハッシュ151が一致するときには(S206:YES)、S207に行き、一致しないときには(S206:NO)、処理を終了する。また、受取ったハッシュと、保持する実行ハッシュ151が一致しないときには、警告メッセージを表示するようにしてもよい。
 受取ったハッシュと実行ハッシュ151が一致し、設定ハッシュ150が一致するときには(S207:YES)、S210にいき、設定ハッシュ150が一致しないときには(S207:NO)、S208に行く。
 設定ハッシュ150が一致しないときには、アプリケーション管理部120は、デフォルト設定ファイル142の情報を設定ファイル141に上書きする(S208)。
 次に、アプリケーション管理部120は、S203で変更した設定ファイル141の情報をハッシュ生成部130に送り、ハッシュ生成部130は、その設定ファイルのハッシュを生成し、アプリケーション管理部120に送る。アプリケーション管理部120は、その情報に基づいて、設定ハッシュ150を格納する(S209、図9には図示せず)。
 次に、設定ハッシュ150が一致するときには、アプリケーション管理部120は、アプリケーション140に指示し、アプリケーションを起動する(S210、A204)。
 実施形態1によると、新たな設定ファイル141や実行ファイル143が更新される際には、ファイルに対応するハッシュを設定ハッシュ150、実行ハッシュ151として保存しておき、アプリケーション140の起動時には、保存したファイルと、起動時に利用される設定ファイル141や実行ファイル143と比較することにより、その設定ファイル141や実行ファイル143が正当なものであるか否かを検証する。すなわち、ハッシュが異なると、適切な手順で編集・変更されたファイルでないとみなし、不正な動作を遮断するため、設定ハッシュ150が異なる場合はデフォルト設定の置き換えを行い、実行ハッシュ151が異なる場合は、アプリケーション140の起動を中止する。これにより、情報処理装置100のアプリケーション140は、正当なもののみ実行され、改ざんのおそれのあるアプリケーション140の起動は阻止される。
 これにより、ディレクトリトラバーサルやSQLインジェクション、不正な侵入等によって改変された設定ファイル141や実行ファイル143の利用を防止することができる。さらに、機能を悪用したサイバー攻撃への加担(ボットネットやDDoS攻撃、攻撃の踏み台等)も防止することができる。しかも、本実施形態で活用するハッシュは、固定長のビット列であり、情報処理装置100のメモリ量に対して占める割合が予想可能な上、複雑な機能を実現する場合であっても、設定ファイル141や実行ファイル143に対して、十分にデータ量は小さく、情報処理装置のメモリを圧迫することはない。
  〔実施形態2〕
 次に、本発明の実施形態2を、図10ないし図15を用いて説明する。
 実施形態1ではハッシュを用いて、設定ファイル141と実行ファイル143の正当性を検証することにより、ファイルの改ざんや不正なファイルの混在を防止する情報処理装置100について説明した。
 しかしながら、情報処理装置100単体で対策を取ると、設定ファイル141や実行ファイル143の改ざんを検知した場合には、アプリケーシションを起動しない、デフォルト設定へ戻すという対策しかないため、結果として情報処理装置100の機能が制限されてしまう。このことから、実施形態2では、情報処理装置100が設定ファイル141と実行ファイル143の改ざんを検知した際に、正しい設定ファイル141や実行ファイル143をダウンロードするためのデータ配信サーバ700を設ける。
 以下では、実施形態1と異なった所を中心に説明する。
 先ず、図10を用いて実施形態2に係る情報処理システムの全体構成を説明する。
  実施形態2情報処理システムは、図10に示されるように、情報処理装置100とデータ配信サーバ700から構成され、情報処理装置100とデータ配信サーバ700は、ネットワーク5により接続されている。ネットワーク5は、インターネットのようなグローバルネットワークであってもよいし、LAN(Local Area Network)であってもよい。
 データ配信サーバ700は、機能部として配信管理部701を有し、配信データベース710を保持する。配信管理部701は、情報処理装置100のアプリケーション管理部120からの問い合わせに対し、配信データベース710から必要なデータを取得し、返信する。
 配信データベース710は、配信管理部701が参照する情報処理装置100に適用される各アプリケーションごとの設定ファイル141、実行ファイル143にそれぞれ対応する設定ファイル711(図10では、711-1、711-2、…と表記)や実行ファイル713(図10では、713-1、713-2、…と表記)が格納されたデータベースである。
 また、情報処理装置100は、実施形態1の機能部に、サーバ通信部124を有する。サーバ通信部124は、データ配信サーバ700と通信を行うための機能部である。
 次に、図11を用いて実施形態2で使用されるデータ構造について説明する。
  ファイル取得要求は、アプリケーション140の起動時に、情報処理装置100のアプリケーション管理部120が、ネットワーク5を介してデータ配信サーバ700に対して行なう処理である(詳細は後述)。
 ここでは、ファイル取得要求のデータの一例として、JSON(Java Script Object Notation)形式で記述した例について説明する。JSON形式は、{“key”:“value”}のように、{}の中にキーと値をコロンで区切って記述した形式である。
 以下、図11に従い、各キーについて説明する。
  (K101)DeviceID:送信元となる情報処理装置100を一意に特定できる識別子を格納する。配信管理部701は、DeviceIDごとに各アプリケーション140の設定ファイル711、実行ファイル713を管理しており、このDeviceIDに基づき、必要なファイルを配信データベース710から取得できるようになっている。
  (K102)application:取得するファイルがどのアプリケーション140に適用するかを示すキーである。本キーにはアプリケーション140を識別する識別子を格納する。
  (K103)FileType: 取得する対象が設定ファイル711か、実行ファイル713かを指定するキーである。設定ファイル711の場合は、setting、実行ファイル713の場合は、executionの文字列を格納する。
 次に、図12ないし図15を用いて実施形態2に係る情報処理システムの処理について説明する。
 先ず、図12を用いて実施形態2の情報処理システムにおけるアプリケーション起動処理について説明する。
  図12のS301、S302、S303は、それぞれ実施形態1の図8のS201、S204、S205と同様である。
 生成したハッシュと実行ハッシュ151が一致するときには(S304:YES)、S308に行き、一致しないときには(S304:NO)、処理を終了する。
 受取ったハッシュと実行ハッシュ151が一致しないときには、実行ファイルの取得、ハッシュ化適用処理を行う(S305、詳細は図13により後述)。
 次に、生成したハッシュと実行ハッシュ151が一致し、設定ハッシュ150が一致するときには(S306:YES)、S308に行き、設定ハッシュ150が一致しないときには(S306:NO)、S307に行く。
 設定ハッシュ150が一致するときには、設定ファイルの取得、ハッシュ化適用処理を行う(S307、詳細は図13により後述)。
 次に、アプリケーション管理部120は、アプリケーション140に指示し、アプリケーションを起動する(S308)。
 次に、図13を用いて設定ファイル、実行ファイルの取得、ハッシュ化適用処理の詳細について説明する。
  これは、図12のS305、S307に共通の処理である。
 先ず、アプリケーション管理部120は、サーバ通信部124を介して、データ配信サーバ700に、図11に示したデータ構造を有した、対象となるファイルの取得要求を行なう(S401)。
 次に、アプリケーション管理部120は、対象となるファイルの受信を待ちうけ、データ配信サーバ700から対象となるファイルを受信したときには(S402:YES)、S404に行く。
 次に、アプリケーション管理部120は、ハッシュ生成部130の情報を渡し、ハッシュ生成部130は、受信したファイルのハッシュを生成し(S403)、アプリケーション管理部120に生成したハッシュを返す。
 次に、アプリケーション管理部120は、受信したファイルの設定ハッシュ150、実行ハッシュ151を格納する(S404)。
 次に、アプリケーション管理部120は、受信したファイルの情報を、アプリケーション140に送り、アプリケーション140は、設定ファイル141、または、実行ファイル143として登録する(S405)。
 次に、図14および図15を用いてデータ配信サーバのファイル配信処理について説明する。
 先ず、データ配信サーバ700は、情報処理装置100からネットワーク5を介して、ファイル要求を受信したときに(S501:YES、A301)、A502に行く。
 次に、データ配信サーバ700の配信管理部701は、受信した図11に示したファイル取得要求の内容を解析し(S502)、その解析結果に従い、配信データベース710に問い合わせる(query)(S503、A302)。
 そして、配信管理部701は、返答のファイル情報に従って(A304)、ネットワーク5を介して取得したファイルを要求元の情報処理装置100に送信する(S504、A304)。
 その後に、情報処理装置100のアプリケーション140は、受信したファイルを設定ファイル141、または、実行ファイル143として登録する(A305)。
 実施形態2によると、情報処理装置100はデータ配信サーバ700と連携することによって、設定ファイル141や実行ファイル143が改ざんされた場合にも、データ配信サーバから正しい設定ファイル711や設定ファイル743を取得し、機能の制限を受けることなく、アプリケーション140を起動することができる。
  〔実施形態3〕
 実施形態2では、情報処理装置100は、アプリケーション140ごとに設定ファイル141や実行ファイル143の改ざんを検知した場合に、データ配信サーバ700から改ざん前の設定ファイル711や実行ファイル713を取得した。
 しかしながら、不正なアクセスを受けた場合には、可能な全ての範囲にデータの改ざんを適用することが想定される。この場合、実施形態2の情報処理システムでは、アプリケーション140起動のつど問い合わせを行い、データを取得することから、通信量が増加してしまう。特に、産業用途のIoTでは情報処理装置100とデータ配信サーバ700間をLTE(Long Term Evolution)網で接続することが多く、データ通信量が通信料金に大きく影響することが予想される。また、産業用途に用意された回線は、多量の機器を接続する性質から通信帯域が貧弱であることが多い。このことから、複数のアプリケーション140をまとめて改ざん検知を行う場合には、問い合わせ回数を減らし、なおかつ通信データ量を抑える必要がある。
 実施形態3の情報処理システムでは、情報処理装置100が全アプリケーション140の設定ハッシュ150と実行ハッシュ151から全体ハッシュを生成し、データ配信サーバ700へ通知することにより、全てのアプリケーション140を対象として改ざん検知を可能とする。
 さらに、不正なアクセスを受けた場合には、保存されたハッシュも含めて改ざんされてしまうことにより、改ざんの検知が困難になる可能性がある。実施形態3の情報処理システムによれば、情報処理装置100が不正なアクセスを受けた場合にも、検証に必要なハッシュの情報をデータ配信サーバ700で管理することにより、情報処理装置100が本来の動作に必要な設定ファイル711や実行ファイル713を取得する手段を提供する。
 以下、実施形態2比較して異なる所を中心に説明する。
 先ず、図16を用いて実施形態3に係る情報処理システムの全体構成を説明する。
  実施形態2情報処理システムは、図16に示されるように、データ配信サーバ700に、検証データベース720が追加された構成である。検証データベース720には、検証テーブル800が格納されている。検証テーブル800は、配信管理部701が、アプリケーション管理部120からファイル検証要求を受信した際に、送信されてくるハッシュを検証するために参照するテーブルである。
 次に、図17および図18を用いて実施形態2の情報処理システムに用いられるデータ構造について説明する。
 検証テーブル800は、DeviceID800a、適用確認条件800b、配布ファイル800cの各カラムから構成される。
 DeviceID800aは、情報処理装置100を一意に特定可能な識別子を格納するカラムである。適用確認条件800bは、配信管理部701にて、情報処理装置100が正しいファイルを適用しているかを確認する条件を格納するカラムである。図17の例では、”Hash“=”…”として、情報処理装置100の全てのアプリケーション140の設定ファイル141と実行ファイル143のハッシュから生成される全体ハッシュを検証する条件式が格納されている。図では示してないが、ファイル生成日時、ファイル更新日時などのその他の条件を付け加えてもよい。適用確認条件800bを適用して、偽となる場合には、配信管理部701が、情報処理装置100に適切なファイルが適用されていないと判断し、必要なファイルを情報処理装置100に配信するものとする。配布ファイル800cは、適用確認条件が偽となる場合に配布するファイル情報、例えば、配布するファイルのファイル名やファイルパス、URLを格納するカラムである。
 次に、図18を用いてファイル検証要求のデータについて説明する。
  ここでも、ファイル取得要求のデータの一例として、JSON形式で記述した例について説明する。
 以下、図11に従い、各キーについて説明する。
  (K201)DeviceID:送信元となる情報処理装置100を一意に特定できるIDである。配信管理部701は、このDeviceIDごとに配信ファイルを管理しており、この識別子に基づいて、必要なファイルを配信データベース710から取得する。
  (K202)Hash:アプリケーション管理部120の保持する全ての設定ハッシュ150と実行ハッシュ151から生成した全体ハッシュを格納する。
 なお、ファイル検証要求として、その他の検証条件をキーとして付け加えてもよい。
 次に、図19を用いて全体ハッシュの概念について説明する。
  全体ハッシュは、一つの情報処理装置100について一つ生成されるものであり、そのため、全体ハッシュを生成するためには、アプリケーション管理部120が保持する全ての設定ハッシュ150と実行ハッシュ151を結合して、ハッシュ生成部130に送り、ハッシュ生成部130は全ハッシュを結合したファイルから、全体ハッシュを生成する。
 これは、情報処理装置100が、例えば、ルータのような通信装置であれば、全ファームウェアをまとめたハッシュを作るイメージである。
 なお、各アプリケーションごとにファイル検証を行いたいときには、一つのアプリケーションが保持する設定ハッシュ150と実行ハッシュ151の全てを結合して全体ハッシュとしてもよい。
 また、本実施形態ではファームウェアなどの改ざん検知を目的にして、情報処理装置100が、データ配信サーバ700に全体ハッシュを通知したが、例えば、全アプリケーション140のバージョン検証にも使用できる。他にも、アプリケーション140の追加・削減のために配信管理部701がアプリケーション管理部120へ指示を与える用途にも使用することできる。
 次に、図20ないし図22を用いて実施形態3の情報処理システムの処理について説明する。
  先ず、図20および図22を用いて情報処理装置から発信されるファイル検証依頼について説明する。
 ユーザ1のGUIからの操作や、情報処理装置100の起動時、アプリケーション140起動時、周期的なトリガーを契機にファイル検証が開始される。
 先ず、情報処理装置100のアプリケーション管理部120は、サーバ通信部124を介して、図18に示されたデータ構造に従って、データ配信サーバ700に、ファイル検証要求を送信する(S601、A401)。
 そして、アプリケーション管理部120は、データ配信サーバ700から応答を待ちうけ、応答を受信したときには(S602:YES、A406)、S603に行く。
 次に、NULLでないファイルを受信したときは(S603:YES)、S604に行き、NULLを受信したときには(S603:NO)、処理を終了する。
 NULLでないファイルを受信したときは、受信ファイルの取得、ハッシュ化適用処理を行う(S604、A407)。これは、実施形態2の図13の処理と同様である。
 次に、図21および図22を用いてデータ配信サーバにおけるファイル検証処理について説明する。
 データ配信サーバ700の配信管理部701は、情報処理装置100からのファイル検証要求を受信したとき(S701:YES、A401)、S702に行く。
 データ配信サーバ700の配信管理部701は、検証データベース720に問合せ(A402、A403)、受信した図18に示したファイル検証要求のハッシュの情報(K202)と図17に示した検証テーブル800のDeviceID800aと配信確認条件ファイル800bの情報により、全体ハッシュの整合性を検証する(S702)。
 ファイル検証要求のハッシュの情報と配信確認条件が一致するときには(S703:YES)、配信データベース710に問合せ(A404、A405)、対象となるファイル(配布ファイル800cの記載されたファイル)を、要求元の情報処理装置100に配信し(S704、A404、)、ファイル検証要求のハッシュの情報と配信確認条件が一致しないときには(S703:NO)、NULLを、要求元の情報処理装置100に送信する(S705)。そして、割り込み処理や中断処理(図示せず)がない限り、S701に戻る。
 実施形態3によると、情報処理装置100が全アプリケーション140の設定ハッシュ150と実行ハッシュ151から全体ハッシュを生成し、データ配信サーバ700へ通知することにより、全てのアプリケーション140を対象として改ざん検知を可能とする。これにより、アプリケーション140起動毎に、情報処理装置100とデータ配信サーバ700間での通信が不要となり通信量を削減することができる。また、データ配信サーバ700から複数のファイルをまとめて、圧縮し送信することにより、データ通信量を削減できる。さらに、検証に必要なハッシュの情報を、データ配信サーバ700が管理するため、情報処理装置100が不正にアクセスされ、ファイルの正当性を検証不能な場合にも、ファイル検証を可能とする。
 また、検証時においても元のファイルより大幅にデータ量が少ないハッシュのデータを、データ配信サーバ700に送るため、通信帯域が貧弱なときでも、ネットワークの帯域を圧迫することなく、通信データ量を抑えることができる。
1…ユーザ
5…ネットワーク
100…情報処理装置
110…ユーザインタフェース部
120…アプリケーション管理部
130…ハッシュ生成部
140…アプリケーション
141、711…設定ファイル
142…デフォルト設定ファイル
143、713…実行ファイル
150…設定ハッシュ
151…実行ハッシュ
200…アプリケーション設定選択メニュー画面
201…アイコン
202…アプリケーション設定画面
203…設定項目
204…設定変更ボタン
205…実行ファイル変更ボタン
206…実行ファイル選択画面
207…実行ファイル名称
208…実行ファイル変更実行ボタン
700…データ配信サーバ
701…配信管理部
710…配信データベース
720…検証データベース
800…検証テーブル

Claims (9)

  1.  実行ファイルによりアプリケーションソフトウェアの機能を実行する情報処理装置であって、
     前記情報処理装置は、
     アプリケーションソフトウェアの改ざんを検知し、アプリケーションソフトウェアを起動するアプリケーション管理部と、
     ファイルに対するハッシュを生成するハッシュ生成部とを備え、
     前記アプリケーション管理部は、前記ハッシュ生成部により生成された前記実行ファイルのハッシュを保持し、
     前記アプリケーション管理部は、アプリケーションソフトウェアを起動する際に、前記ハッシュ生成部により起動するアプリケーションソフトウェアの実行ファイルのハッシュを生成し、
     既に保持された実行ファイルのハッシュと、生成された実行ファイルのハッシュとを比較し、一致しないときには、当該アプリケーションを起動しないことを特徴とする情報処理装置。
  2.  前記アプリケーション管理部は、アプリケーションソフトウェアの実行ファイルが変更された場合に、保持する前記実行ファイルのハッシュを更新することを特徴とする請求項1の情報処理装置。
  3.  前記アプリケーションソフトウェアは、実行のための設定情報を記憶する設定ファイルを保持し、
     前記アプリケーション管理部は、前記ハッシュ生成部により生成された前記設定ファイルのハッシュを保持し、
     前記アプリケーション管理部は、アプリケーションソフトウェアの設定ファイルが変更された場合に、保持する前記設定ファイルのハッシュを更新することを特徴とする請求項1の情報処理装置。
  4.  前記アプリケーションソフトウェアは、さらに、デフォルトの設定情報を記憶するデフォルト設定ファイルを保持し、
     前記アプリケーション管理部は、アプリケーションソフトウェアを起動する際に、前記ハッシュ生成部により、起動するアプリケーションソフトウェアの設定ファイルのハッシュを生成し、
     既に保持された設定ファイルのハッシュと、生成された設定ファイルのハッシュとを比較し、一致しないときには、前記ハッシュ生成部により前記デフォルト設定ファイルのハッシュを生成し、
     前記アプリケーションソフトウェアの保持する設定ファイルの情報を前記デフォルト設定ファイルの情報により上書きし、
     生成した前記デフォルト設定ファイルのハッシュを、前記アプリケーションソフトウェアの設定ファイルのハッシュとして保持することを特徴とする請求項1記載の情報処理装置。
  5.  実行ファイルによりアプリケーションソフトウェアの機能を実行する情報処理装置と、前記情報処理装置とネットワークにより接続されたデータ配信サーバとを有する情報処理システムであって、
     前記データ配信サーバは、前記情報処理装置のアプリケーションソフトウェアの実行ファイルを保持し、
     前記情報処理装置は、
     アプリケーションソフトウェアの改ざんを検知し、アプリケーションソフトウェアを起動するアプリケーション管理部と、
     ファイルに対するハッシュを生成するハッシュ生成部とを備え、
     前記アプリケーション管理部は、前記ハッシュ生成部により生成された前記実行ファイルのハッシュを保持し、
     前記アプリケーション管理部は、アプリケーションソフトウェアを起動する際に、前記ハッシュ生成部により起動するアプリケーションソフトウェアの実行ファイルのハッシュを生成し、
     既に保持された実行ファイルのハッシュと、生成された実行ファイルのハッシュとを比較し、一致しないときには、前記データ配信サーバに、当該アプリケーションの実行ファイルの取得を要求し、
     前記データ配信サーバは、要求されたアプリケーションソフトウェアの実行ファイルを、前記情報処理装置に送信し、
     前記アプリケーション管理部は、受信したアプリケーションソフトウェアの実行ファイルを新たなアプリケーションソフトウェアの実行ファイルとして登録することを特徴とする情報処理システム。
  6.  前記アプリケーションソフトウェアは、実行のための設定情報を記憶する設定ファイルを保持し、
     前記アプリケーション管理部は、前記ハッシュ生成部により生成された前記設定ファイルのハッシュを保持し、
     前記アプリケーション管理部は、アプリケーションソフトウェアの設定ファイルが変更された場合に、保持する前記設定ファイルのハッシュを更新し、
     前記アプリケーション管理部は、アプリケーションソフトウェアを起動する際に、前記ハッシュ生成部により起動するアプリケーションソフトウェアの設定ファイルのハッシュを生成し、
     既に保持された設定ファイルのハッシュと、生成された設定ファイルのハッシュとを比較し、一致しないときには、前記データ配信サーバに、当該アプリケーションの設定ファイルの取得を要求し、
     前記データ配信サーバは、要求されたアプリケーションソフトウェアの設定ファイルを、前記情報処理装置に送信し、
     前記アプリケーション管理部は、受信したアプリケーションソフトウェアの設定ファイルを新たなアプリケーションソフトウェアの設定ファイルとして登録することを特徴とする情報処理システム。
  7.  さらに、前記データ配信サーバは、前記アプリケーションソフトウェアの設定ファイルのハッシュと実行ファイルのハッシュに関する情報を保持し、
     前記アプリケーション管理部は、前記アプリケーションソフトウェアの検証をする際に、前記ハッシュ生成部により、前記アプリケーション管理部が保持する前記設定ファイルのハッシュと前記実行ファイルのハッシュを合成した全体ハッシュを生成し、前記全体ハッシュを付与したファイル取得要求を前記データ配信サーバにより送信し、
     前記データ配信サーバは、前記ファイル取得要求に付与された全体ハッシュと前記アプリケーションソフトウェアの設定ファイルのハッシュと実行ファイルのハッシュに関する情報を比較して、前記全体ハッシュを検証し、その検証結果に基づいて、前記アプリケーションソフトウェアに関連付けられたファイルを送信することを特徴とする請求項3記載の情報処理システム。
  8.  前記全体ハッシュは、前記情報処理装置にインストールされた全てのアプリケーションソフトウェアの設定ファイルのハッシュと実行ファイルのハッシュを合成したものであることを特徴とする請求項7記載の情報処理システム。
  9.  アプリケーションソフトウェアの機能を実行する情報処理装置のファイル処理方法であって、
     前記情報処理装置は、
     アプリケーションソフトウェアの改ざんを検知し、アプリケーションソフトウェアを起動するアプリケーション管理部と、
     ファイルに対するハッシュを生成するハッシュ生成部とを備え、
     前記アプリケーションソフトウェアは、実行のための設定情報を記憶する設定ファイルと、デフォルトの設定情報を記憶するデフォルト設定ファイルと、アプリケーションソフトウェアの実行のための実行ファイルとを保持し、
     前記アプリケーション管理部が、前記ハッシュ生成部により生成された前記実行ファイルのハッシュと前記設定ファイルのハッシュとを保持するステップと、
     前記アプリケーション管理部が、アプリケーションソフトウェアの実行ファイルが変更された場合に、保持する前記実行ファイルのハッシュを更新するステップと、
     前記アプリケーション管理部が、アプリケーションソフトウェアの設定ファイルが変更された場合に、保持する前記設定ファイルのハッシュを更新するステップと、
     前記アプリケーション管理部が、アプリケーションソフトウェアを起動する際に、前記ハッシュ生成部により起動するアプリケーションソフトウェアの実行ファイルのハッシュを生成し、既に保持された実行ファイルのハッシュと、生成された実行ファイルのハッシュとを比較し、一致しないときには、当該アプリケーションを起動しないステップと、
     前記アプリケーション管理部が、アプリケーションソフトウェアを起動する際に、前記ハッシュ生成部により、起動するアプリケーションソフトウェアの設定ファイルのハッシュを生成し、既に保持された設定ファイルのハッシュと、生成された設定ファイルのハッシュとを比較し、一致しないときには、前記ハッシュ生成部により前記デフォルト設定ファイルのハッシュを生成するステップと、
     前記アプリケーションソフトウェアの保持する設定ファイルの情報を前記デフォルト設定ファイルの情報により上書きするステップと、
     生成した前記デフォルト設定ファイルのハッシュを、前記アプリケーションソフトウェアの設定ファイルのハッシュとして保持するステップとを有することを特徴とする情報処理装置のファイル処理方法。
PCT/JP2021/031059 2020-12-28 2021-08-24 情報処理装置、情報処理システムおよび情報処理装置のファイル処理方法 WO2022145085A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022572903A JP7462077B2 (ja) 2020-12-28 2021-08-24 情報処理装置および情報処理装置のファイル処理方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020219552 2020-12-28
JP2020-219552 2020-12-28

Publications (1)

Publication Number Publication Date
WO2022145085A1 true WO2022145085A1 (ja) 2022-07-07

Family

ID=82259242

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/031059 WO2022145085A1 (ja) 2020-12-28 2021-08-24 情報処理装置、情報処理システムおよび情報処理装置のファイル処理方法

Country Status (2)

Country Link
JP (1) JP7462077B2 (ja)
WO (1) WO2022145085A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019096271A (ja) * 2017-11-28 2019-06-20 株式会社東芝 プログラム実行装置、プログラムおよびプログラム実行方法
JP2019215754A (ja) * 2018-06-13 2019-12-19 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
WO2020075303A1 (ja) * 2018-10-12 2020-04-16 三菱電機株式会社 ソフトウェア検証装置、ソフトウェア検証方法およびソフトウェア検証プログラム
JP2020082441A (ja) * 2018-11-20 2020-06-04 キヤノン株式会社 画像形成装置、その制御方法、及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019096271A (ja) * 2017-11-28 2019-06-20 株式会社東芝 プログラム実行装置、プログラムおよびプログラム実行方法
JP2019215754A (ja) * 2018-06-13 2019-12-19 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
WO2020075303A1 (ja) * 2018-10-12 2020-04-16 三菱電機株式会社 ソフトウェア検証装置、ソフトウェア検証方法およびソフトウェア検証プログラム
JP2020082441A (ja) * 2018-11-20 2020-06-04 キヤノン株式会社 画像形成装置、その制御方法、及びプログラム

Also Published As

Publication number Publication date
JP7462077B2 (ja) 2024-04-04
JPWO2022145085A1 (ja) 2022-07-07

Similar Documents

Publication Publication Date Title
US10574698B1 (en) Configuration and deployment of decoy content over a network
US10445504B2 (en) Secure remote kernel module signing
US10432594B2 (en) Primitive functions for use in remote computer management
US8799441B2 (en) Remote computer management when a proxy server is present at the site of a managed computer
US7836121B2 (en) Dynamic executable
US8645520B2 (en) Remote computer management using network communications protocol that enables communication through a firewall and/or gateway
Falliere et al. Zeus: King of the bots
US20110078676A1 (en) Use of a dynamicaly loaded library to update remote computer management capability
US20080072324A1 (en) Restricting a processing system being compromised with a threat
JP2014525639A (ja) クラウド技術を用いたマルウェアの動的駆除
US20140344914A1 (en) Authentication of remote host via closed ports
US20160212104A1 (en) Preventing Misuse of Code Signing Certificates
US8140642B1 (en) Network connection-independent updating system and method
CN103888948B (zh) 一种智能终端移动应用的安全控制方法和装置
JP2002063140A (ja) ネットワーク上のアクセス管理方法及びシステム
JP2012008732A (ja) インストール制御装置およびプログラム
Anghel et al. A note on different types of ransomware attacks
WO2022145085A1 (ja) 情報処理装置、情報処理システムおよび情報処理装置のファイル処理方法
KR20200000576A (ko) 블록체인 기반 모바일 위조 앱 검출 방법
JP2014021929A (ja) 情報処理装置および制御方法
US20200137044A1 (en) System, server and method
JP2019016281A (ja) セキュアエレメント、コンピュータプログラム、デバイス、サーバ及びトラステッドアプリケーションのインストレーション方法
JP6464544B1 (ja) 情報処理装置、情報処理方法、情報処理プログラム、及び情報処理システム
CN115623013A (zh) 一种策略信息同步方法、系统及相关产品
JP6562370B1 (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: 21914946

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022572903

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21914946

Country of ref document: EP

Kind code of ref document: A1