Information processing apparatus, and information processing method
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- MITSUBISHI ELECTRIC CORP
- Filing Date
- 2024-05-30
- Publication Date
- 2026-05-12
AI Technical Summary
Existing automatic control systems face increased security risks due to sophisticated connections and cooperations with various systems or devices, and relying solely on system call type judgments based on registers or register values is insufficient to prevent security attacks.
An information processing apparatus is designed with a system call unit that includes a main processing unit, a restriction control unit, and a memory data inspection unit. This apparatus traces the data structure of system calls based on memory data addresses and verifies the validity of memory data content, ensuring memory data integrity and enhancing security by preventing unauthorized access.
The solution effectively strengthens the security of information processing apparatuses by tracing system call data structures, verifying memory data validity, and preventing unauthorized access, thus addressing the limitations of existing systems.
Smart Images

Figure 00000036_0000 
Figure 00000036_0001 
Figure 00000036_0002
Abstract
Description
Technical Field
[0001] The technology disclosed in this specification relates to information processing.
Background Art
[0002] An automatic control system is generally a system in which multiple functions cooperate and integrate to perform recognition, judgment, and control.
[0003] For example, an automatic driving system is composed of an automatic driving control unit that generates optimal control parameters from surrounding situations, an engine control unit, a brake control unit, and a steering control unit that respectively realize engine control, brake control, and steering control of a vehicle.
[0004] With the advancement of the autonomy level (e.g., the automatic driving level), an automatic control system constitutes the entire system by network-connecting a plurality of diverse information processing devices. Furthermore, even when adding or updating the services or functions provided by the information processing devices constituting the automatic control system, or when diagnosing the information processing devices, the information processing devices connect to an external system or diagnostic equipment and cooperate to perform processing.
[0005] On the other hand, as the connection and cooperation processing with various systems or devices become more sophisticated, the security risks of the automatic control system also increase. In response, generally, there is an information processing device that has a function of virtually separating the execution environment of software using system software such as an operating system or a container.
[0006] However, even from the programs operating in those execution environments, there remain intentional or accidental risks such as causing the system to malfunction or invading security assets by finding and exploiting vulnerable parts of the system to take over the execution environment.
[0007] In response to such problems, for example, in Patent Document 1, in an application composed of a plurality of programs including a library, a computer, an operation rule application method, and an operating system to which an operation rule for determining whether to permit a system call is applicable are proposed based on which of individual programs (library, application main body) the issued system call belongs to.
[0008] Also, for example, in Patent Document 2, a server computer system control method is proposed in which means for creating an allowable set of system calls by dividing the execution process of a monitored application into processing phases, elapsed time, and other time-dependent elements is provided, and the operating system monitors the execution of a sequence of system calls using the allowable set prepared for each phase in accordance with changes in the processing phase.
Prior Art Documents
Patent Documents
[0009]
Patent Document 1
Patent Document 2
Summary of the Invention
Problems to be Solved by the Invention
[0010] The behavior of a service or function with respect to a system is observed by system calls to system software such as an operating system.
[0011] In Patent Document 1, for system calls issued from an application, the operating system determines whether to process the system call for each program (main body, library) that is the source of the issuance.
[0012] In Patent Document 2, an allowable set of system calls is provided and monitored for each processing phase (each time segment) of an application.
[0013] However, the system calls to be issued are infinite in terms of the content of the arguments defined in their call interfaces and their combinations. Even with these disclosure means, the risk of security attacks using the permitted system calls remains. That is, it is not sufficient to determine the permission of system calls only by judging the system call type based on registers or register values according to the application binary interface (ABI) of the system calls.
[0014] The technology disclosed in the present specification has been made in view of the problems described above, and is a technology for strengthening the security of an information processing apparatus.
Means for Solving the Problems
[0015] An information processing apparatus according to a first aspect of the technology disclosed in the present specification is an information processing apparatus in which system software operates on computer hardware including an arithmetic unit and a main memory device, and the system software includes a system call unit that processes system calls issued when an application uses functions provided by the system software. The system call unit includes a system call main processing unit that processes the system calls, a system call restriction control unit that performs restriction control on the execution of the system calls, and a memory data inspection unit that inspects memory data corresponding to the system calls by tracing the data structure of the system calls from the memory data address passed by the application to the system call unit. and a memory data integrity assurance unit that performs a process of ensuring the integrity of the memory data using a pointer address that traces the data structure of the system call from the memory data address passed by the application to the system call unit 。
Advantages of the Invention
[0016] According to at least the first aspect of the technology disclosed in the present specification, it is possible to trace the data structure of a system call based on the memory data address specified by the argument of the system call and verify the validity of the content of the memory data.
[0017] In addition, the objectives, features, aspects, and advantages related to the technology disclosed in the specification of the present application will become even clearer by the following detailed description and the accompanying drawings.
Brief Description of the Drawings
[0018]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Figure 15
Figure 16
Figure 17
Figure 18
Figure 19
Figure 20
Figure 21
Embodiments for Carrying Out the Invention
[0019] Hereinafter, embodiments will be described with reference to the accompanying drawings. In the following embodiments, detailed features and the like are also shown for the purpose of explaining the technology, but these are examples, and not all of them are necessarily essential features for the embodiments to be practicable.
[0020] Note that the drawings are shown schematically, and for the sake of convenience of explanation, omissions or simplifications of the configuration may be made in the drawings as appropriate. Also, the mutual relationships of the sizes and positions of the configurations shown in different drawings are not necessarily accurately described and may be changed as appropriate. Further, in drawings such as a plan view that is not a cross-sectional view, hatching may be added in order to facilitate understanding of the content of the embodiment.
[0021] Also, in the explanations shown below, the same reference numerals are attached to and illustrated for similar components, and their names and functions are also considered the same. Therefore, detailed explanations thereof may be omitted to avoid duplication.
[0022] Also, in the explanations described in the present specification, when a certain component is described as "including", "containing", or "having", etc., it is not an exclusive expression that excludes the existence of other components, unless otherwise specified.
[0023] Also, in the explanations described in the present specification, even when ordinal numbers such as "first" or "second" are used, these terms are used for convenience in order to facilitate understanding of the content of the embodiment, and the content of the embodiment is not limited to the order or the like that may be caused by these ordinal numbers.
[0024] <First Embodiment> Hereinafter, an information processing apparatus and an information processing method according to the present embodiment will be described.
[0025] <Regarding the Configuration of the Information Processing Apparatus> FIG. 1 is a block diagram showing an example of the configuration of an information processing apparatus 1000 according to the present embodiment.
[0026] The information processing apparatus 1000 includes at least a system software 1100, a computer hardware 1200, a system call restriction control setting unit 1300, and applications 1400 and 1401.
[0027] The system call restriction control setting unit 1300 operates on the system software 1100 and may operate within a virtualized and isolated software execution environment of the system setting control container execution environment 1301. The system call restriction control setting unit 1300 sets information related to the system call restriction setting for the system call restriction control table setting unit 1120 in the system software 1100.
[0028] The applications 1400 and 1401 operate on the system software 1100 and may operate within a virtualized and isolated software execution environment of the application container execution environment 1402.
[0029] The system software 1100 includes at least a system call unit 1110, a system call restriction control table setting unit 1120, a log recording unit 1121, a context management unit 1122, a scheduler 1123, a process state management data 1130, a thread state management data 1140, system call restriction control tables 1150, 1151, 1152, and a watchpoint context table 1160.
[0030] Also, when the system call restriction control setting unit 1300, the application 1400 (user program), and the application 1401 (user program) operate in the container execution environment, they may include container execution environment management data 1170. When not including the container execution environment management data 1170, the system call restriction control table 1152 is not provided.
[0031] The system call unit 1110 processes system calls issued from user programs (system call restriction control setting unit 1300, application 1400, and application 1401) operating on the system software 1100. A system call is issued when an application utilizes functions provided by the system software 1100.
[0032] The system call restriction control table setting unit 1120 sets the system call restriction control tables 1150, 1151, and 1152 based on information regarding system call restriction settings from the system call restriction control setting unit 1300.
[0033] The log recording unit 1121 records at least the information output by the system call unit 1110. The log recording is stored, for example, in the main memory device 1205 and the non-volatile memory device 1206 of the computer hardware 1200. The non-volatile memory device 1206 permanently holds the recorded data.
[0034] The context management unit 1122 manages at least the processes or threads representing the executable states of the system call restriction control setting unit 1300, application 1400, and application 1401 operating on the system software 1100 (in the computer hardware 1200).
[0035] The scheduler 1123 assigns the processes or threads representing the executable states of the system call restriction control setting unit 1300, application 1400, and application 1401 operating on the system software 1100 to the arithmetic cores 1201 and 1202 of the computer hardware 1200 to enable program execution.
[0036] The process state management data 1130 describes, for each process including the process state, information regarding at least the system call restriction control setting unit 1300 operating on the system software 1100, and the processes representing the executable states of the applications 1400 and 1401.
[0037] The thread state management data 1140 describes, for each thread, information regarding at least the system call restriction control setting unit 1300 operating on the system software 1100, and the threads representing the minimum execution units that share the memory space of the process in the processes representing the executable states of the applications 1400 and 1401. The thread state management data 1140 may be held in association with the process state management data 1130. In other words, the process state management data 1130 may be data that manages including the thread state management data 1140.
[0038] The system call restriction control tables 1150, 1151, and 1152 describe information regarding restriction control in the execution of system calls.
[0039] When performing system call restriction control for each execution environment, the system call restriction control table may be held in association with the container execution environment management data 1170 as the system call restriction control table 1152. When performing system call restriction control for each process, the system call restriction control table 1151 may be held in association with the process state management data 1130. When performing system call restriction control for each thread, the system call restriction control table 1150 may be held in association with the thread state management data 1140.
[0040] The watchpoint context table 1160 holds information for setting and controlling the watchpoint mechanisms 1203 and 1204 of the computer hardware 1200. The watchpoint context table 1160 may be held in association with the process state management data 1130 for each user process that shares the memory space.
[0041] The container execution environment management data 1170 is held for each container execution environment that virtually separates the execution environment of the program. The container execution environment management data 1170 holds at least the system call restriction control setting unit 1300 included in the container execution environment (system setting control container execution environment 1301, application container execution environment 1402), and the process state management data 1130 of the applications 1400 and 1401.
[0042] The system call unit 1110 includes at least a system call restriction control unit 1111, a user memory data fetch unit 1112, a system call main processing unit 1113, a memory data inspection unit 1114, a memory data integrity ensuring unit 1115, a memory data permission determination unit 1116, and a user memory data fetch event processing unit 1117.
[0043] The system call restriction control unit 1111 performs restriction control in the execution of system call processing.
[0044] The user memory data fetch unit 1112 follows the data structure based on the memory data address specified by the argument of the system call issued from the system call restriction control setting unit 1300, applications 1400 and 1401 operating on the system software 1100, and performs the process of fetching the data (memory data) of the user memory into the memory within the system software (for example, the kernel program of the operating system).
[0045] The system call main processing unit 1113 executes the processing of system calls issued from the system call restriction control setting unit 1300, the application 1400, and the application 1401 that operate on the system software 1100.
[0046] The memory data inspection unit 1114 traces the data structure of the system call based on the memory data address specified by the argument of the system call passed from the application to the system call unit 1110. Then, the memory data inspection unit 1114 performs a process of verifying the validity of the content of the data (memory data) in the user memory corresponding to the system call.
[0047] The memory data integrity assurance unit 1115 traces the data structure from the memory data address specified by the argument of the system call and performs a process of ensuring the integrity of the content of the data (memory data) in the user memory.
[0048] The memory data permission determination unit 1116 traces the data structure based on the memory data address specified by the argument of the system call and performs a permission determination on the content of the data (memory data) in the user memory.
[0049] When the user memory data import event processing unit 1117 is set to generate an event in the user memory data import unit 1112 after performing a process of importing the data in the user memory into the memory within the system software (for example, the kernel program of the operating system), the user memory data import event processing unit 1117 performs event processing due to the event generation.
[0050] The computer hardware 1200 includes at least the arithmetic core 1201, the arithmetic core 1202, the watchpoint mechanisms 1203 and 1204, the main memory device 1205, the non-volatile storage device 1206, and the peripheral device 1207.
[0051] The arithmetic cores 1201 and 1202 are provided with at least one, and the scheduler 1123 of the system software 1100 performs assignment control on the system call restriction control setting unit 1300, the application 1400, and the application 1401 that operate on the system software 1100 including within the container execution environment (system setting control container execution environment 1301, application container execution environment 1402). Also, the arithmetic cores 1201 and 1202 may include a cache for temporarily holding the data of the main memory device 1205.
[0052] The arithmetic cores 1201 and 1202 may execute programs stored in the main memory device 1205, the non-volatile memory device 1206, an external CD-ROM, an external DVD-ROM, or an external flash memory, etc. That is, for example, it may be a central processing unit (CPU), a microprocessor, a microcomputer, or a digital signal processor (DSP).
[0053] When the arithmetic cores 1201 and 1202 execute programs stored in the main memory device 1205, the non-volatile memory device 1206, an external CD-ROM, an external DVD-ROM, or an external flash memory, etc., the system software 1100 is realized by software, firmware, or a combination of software and firmware in which the programs stored in the main memory device 1205 and the non-volatile memory device 1206 are executed by the arithmetic cores 1201 and 1202.
[0054] Software and firmware may be described as programs and stored in the main memory device 1205 and the non-volatile memory device 1206. In that case, the arithmetic cores 1201 and 1202 realize the above functions by reading and executing the programs stored in the main memory device 1205 and the non-volatile memory device 1206. That is, the main memory device 1205 and the non-volatile memory device 1206 may store programs that, when executed by the arithmetic cores 1201 and 1202, result in the realization of the above functions.
[0055] Also, the arithmetic cores 1201 and 1202 may be dedicated hardware. That is, for example, they may be a single circuit, a composite circuit, a programmed processor, a parallel-programmed processor, an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or a combination of these circuits.
[0056] When the arithmetic cores 1201 and 1202 are dedicated hardware, the system software 1100 is realized by the operation of the arithmetic cores 1201 and 1202. Note that the functions of the system software 1100 may be realized by separate circuits or a single circuit.
[0057] The watchpoint mechanisms 1203 and 1204 may be provided with at least one or more, and may be provided corresponding to each of the arithmetic cores 1201 and 1202. The watchpoint mechanism is hardware that monitors and restricts access to memory data. The watchpoint mechanism may be provided with one or more watchpoints capable of setting access monitoring and access restriction to memory data. The watchpoint may be set via a watchpoint register (not shown here).
[0058] The scheduler 1123 of the system software 1100 performs allocation control for the system call restriction control setting unit 1300, application 1400, and application 1401 that operate on the system software 1100 including within the container execution environment (system setting control container execution environment 1301, application container execution environment 1402).
[0059] The main memory device 1205 stores data for performing arithmetic processing. The storage area of the main memory device 1205 is subject to allocation control by the system call restriction control setting unit 1300, application 1400, and application 1401 that operate on the system software 1100 including within the container execution environment (system setting control container execution environment 1301, application container execution environment 1402).
[0060] The non-volatile storage device 1206 permanently holds the recorded data. The storage area of the non-volatile storage device 1206 is subject to allocation control by the system call restriction control setting unit 1300, application 1400, and application 1401 that operate on the system software 1100 including within the container execution environment (system setting control container execution environment 1301, application container execution environment 1402).
[0061] The main memory device 1205 and the non-volatile memory device 1206 may be, for example, a memory (recording medium) including a volatile or non-volatile semiconductor memory such as a hard disk drive (i.e., HDD), a random access memory (i.e., RAM), a read only memory (i.e., ROM), a flash memory, an erasable programmable read only memory (EPROM), and an electrically erasable programmable read-only memory (EEPROM), a magnetic disk, a flexible disk, an optical disk, a compact disk, a mini disk, or a DVD, or any recording medium to be used in the future.
[0062] The peripheral device 1207 is a peripheral device included in the information processing apparatus 1000. The peripheral device 1207 may include a communication device and a security module device. The peripheral device 1207 performs assignment control on the system call restriction control setting unit 1300, the application 1400, and the application 1401 that operate on the system software 1100 including within the container execution environment (the system setting control container execution environment 1301 and the application container execution environment 1402).
[0063] FIG. 2 is a diagram showing examples of the system call restriction control table 1150, the system call restriction control table 1151, and the system call restriction control table 1152 according to the present embodiment.
[0064] The system call restriction control table 1150, the system call restriction control table 1151, and the system call restriction control table 1152 each include a permitted system call 2000, system call argument information 2001, a permitted set 2002, and capture information 2003 of permitted determination target data.
[0065] The permission system call 2000 describes an identifier of a system call that the system call section 1110 of the system software 1100 permits to execute (permits a system call invocation).
[0066] The system call argument information 2001 describes, for each permission system call 2000, information on the data structure of the arguments of the system call.
[0067] For example, in the permission system call described in the permission system call 2000 (described as syscall_n in FIG. 2), the arguments are composed of a first argument, a second argument, and a third argument, and information on the data structures of the first argument, the second argument, and the third argument is exemplified.
[0068] The information on the data structure of the first argument exemplifies that the register x0 holds a data type (described as unsigned int) that is a 32-bit unsigned integer.
[0069] The information on the data structure of the second argument exemplifies that the register x1 holds a data type (described as char *) that indicates the start address of string data as a memory data address.
[0070] The information on the data structure of the third argument exemplifies that the register x2 holds a data type (described as struct A *) that indicates the address of structure A as a memory data address.
[0071] The information on the data type of structure A of the third argument exemplifies that it holds a data type bool that is a Bool value for a1 indicating a symbol of the data, and a data type (described as struct B *) that indicates the address of structure B data as a memory data address for a2 indicating a symbol of the data.
[0072] The information on the data type of structure B exemplifies that it holds, in b1 indicating the symbol of the data, a data type which is a 32-bit signed integer (described as int), and in b2 indicating the symbol of the data, a data type indicating an array having n 64-bit signed integer data as a memory data address (described as long[n]).
[0073] The allowable set 2002 describes the information on the allowable range of data for each system call argument information 2001. For the description of the allowable range, for example, mathematical expressions and formal expressions such as equal signs, inequality signs, logical formulas, or a set of character strings may be described in a regular expression.
[0074] For example, the data allowable range of the first argument in the permission system call described in the permission system call 2000 (described as syscall_n in FIG. 2) is exemplified as an integer smaller than PATH_MAX (described as x0<PATH_MAX). Note that PATH_MAX may be defined as a positive integer value.
[0075] The data allowable range of the second argument exemplifies that it is "a character string consisting of one or more characters including lowercase letters a to z, uppercase letters A to Z, numbers 0 to 9, and the symbol / as a character string", and "the length of the character string is smaller than PATH_MAX".
[0076] The data allowable range of the third argument exemplifies that there is no setting for the address of structure A (it may be regarded as allowed), and no setting for the data of structure A (it may be regarded as allowed). Also, for the data of structure B, it exemplifies that "b1 which is a 32-bit signed integer is greater than 0", and "the absolute value of each element value of the array having n 64-bit signed integer data is greater than 16".
[0077] The capture information 2003 of the data to be acceptance-determined describes, for each permission system call 2000, at least the order of completion of the capture of the data in the user memory (memory data), the data to be captured, and the size of the captured data. The data to be acceptance-determined corresponds to the memory data that is acceptance-determined using the acceptance set 2002.
[0078] For example, in the permission system call described in the permission system call 2000 (in FIG. 2, it is described as syscall_n), it is exemplified that, first, the data of the structure B is captured by the size of the data of the structure B (using a2 indicating the address symbol of the structure B, it is described as {1, a2, size_a2}). Second, it is exemplified that the data of the string of the second argument is captured by the size of the data of the string (using x1 indicating the address symbol of the structure B, it is described as {2, x1, size_x1}).
[0079] FIG. 3 is a diagram showing an example of the watch point context table 1160 according to the present embodiment.
[0080] The watch point context table 1160 includes a watch point identifier 3000, a thread identifier 3001, an acceptance determination sequence number 3002, a system call identifier 3003, a watch point register setting value 3004, and a watch point state 3005.
[0081] The watch point identifier 3000 describes an identifier indicating the watch points provided by the watch point mechanisms 1203 and 1204.
[0082] For example, it is exemplified that one watch point mechanism includes n watch points indicated by watch point identifiers WP_0 to WP_n - 1.
[0083] The thread identifier 3001 describes an identifier indicating the thread to which the watch point indicated by the watch point identifier 3000 is assigned.
[0084] The allowable determination sequence number 3002 describes the allowable determination order of the data to be determined for setting a watchpoint for each thread identifier 3001. In the allowable determination sequence number 3002, it is shown as at least one set including the thread identifier 3001 and a number indicating the allowable determination order of the data to be determined for setting a watchpoint.
[0085] The system call identifier 3003 describes an identifier indicating a system call (in other words, a system call issued by a thread to which a watchpoint is to be assigned) that is subject to system call restriction control using the watchpoint indicated by the watchpoint identifier 3000.
[0086] The watchpoint register setting value 3004 describes information on the register setting value of the watchpoint indicated by the watchpoint identifier 3000. The watchpoint register setting value 3004 includes at least information corresponding to a memory data address, information corresponding to a size value, and access permission information in order to set a memory area for monitoring and controlling access to memory data.
[0087] The watchpoint state 3005 describes the state of the watchpoint indicated by the watchpoint identifier 3000. The watchpoint state 3005 includes at least in use and free.
[0088] For example, taking FIG. 3 as an example, the watchpoints indicated by the watchpoint identifiers WP_i and WP_j are in use in the system call restriction control of the system call indicated by syscall_n issued by the thread indicated by the thread identifier TID_o. Among them, the watchpoint identifier WP_i has the first allowable determination order, the watchpoint identifier WP_j has the second allowable determination order, and information including an address range with ReadOnly permission as the watchpoint register setting value for each of the watchpoint identifier WP_i and the watchpoint identifier WP_j is exemplified.
[0089] Also, the watchpoint indicated by the watchpoint identifier WP_k is in use in the system call control of the system call indicated by syscall_r issued by the threads indicated by the thread identifier TID_p and the thread identifier TID_q. The allow determination order is the first, and it exemplifies information including an address range with ReadOnly permission as the watchpoint register setting value. As in the example of the watchpoint identifier WP_k, multiple threads may use the same watchpoint register setting value in the system call control of the same system call. If any thread is not using the watchpoint, it may be in an idle state.
[0090] Note that the watchpoint identifier WP_0 and the watchpoint identifier WP_n - 1 exemplify the case where the watchpoint state is idle.
[0091] <Regarding the operation of the information processing apparatus> FIG. 4 is a flowchart showing an example of the operation flow of the system call unit 1110 according to the present embodiment.
[0092] In step ST4000, the system call unit 1110 starts the system call process.
[0093] In step ST4001, the system call unit 1110 executes the process of the system restriction process of the system call restriction control unit 1111.
[0094] In step ST4002, if the determination result of the system call restriction control permits, the system call unit 1110 proceeds to step ST4003. If the determination result of the system call restriction control does not permit, the system call unit 1110 proceeds to step ST4005.
[0095] In step ST4003, the system call unit 1110 executes the data capture process of the user memory data capture unit 1112. If the process is successful, it proceeds to step ST4004. If the process fails, it proceeds to step ST4005.
[0096] In step ST4004, the system call unit 1110 executes the system call process of the system call main process unit 1113.
[0097] In step ST4005, the system call unit 1110 executes the evidence log recording of the log recording unit 1121.
[0098] In step ST4006, the system call unit 1110 executes the post-processing of the system call restriction control of the system call restriction control unit 1111.
[0099] In step ST4007, the system call unit 1110 ends the system call process.
[0100] FIG. 5 is a flowchart showing an example of the operation flow of the system call restriction control unit 1111 according to the present embodiment.
[0101] In step ST5000, the system call restriction control unit 1111 starts the system call restriction control process.
[0102] In step ST5001, the system call restriction control unit 1111 obtains an entry of the permitted system call 2000 that matches the system call issued from the system call restriction control table 1150, the system call restriction control table 1151, the system call restriction control table 1152, the system call restriction control setting unit 1300, the application 1400, and the application 1401 and for which an execution request has been made.
[0103] In step ST5002, the system call restriction control unit 1111 determines whether there is an entry for the permitted system call 2000. If there is an entry for the permitted system call 2000, the process proceeds to step ST5003. If there is no entry for the permitted system call 2000, the process proceeds to step ST5007.
[0104] In step ST5003, the system call restriction control unit 1111 performs a permission determination on the system call argument value. If the result of the permission determination is permission, the process proceeds to step ST5004. If the result of the permission determination is non - permission, the process proceeds to step ST5007. The permission determination of the system call argument value is made by determining whether the argument information (excluding the memory data address) among the system call argument information 2001 corresponding to the permitted system call 2000 is included in the allowable set 2002. For example, in the system call restriction control tables 1150, 1151, and 1152 shown in FIG. 2, among the system call argument information 2001 corresponding to the entry of syscall_n of the permitted system call 2000, the argument information that is not the memory data address becomes the first argument among the first to third arguments, and it is illustrated that it is only necessary to determine whether the first argument is included in the corresponding allowable set 2002.
[0105] In step ST5004, the system call restriction control unit 1111 requests the memory data inspection unit 1114 to execute the process of memory data inspection.
[0106] In step ST5005, if the determination result of the memory data inspection is permission, the system call restriction control unit 1111 proceeds to step ST5006. If the determination result of the memory data inspection is non - permission, the system call restriction control unit 1111 proceeds to step ST5007.
[0107] In step ST5006, the system call restriction control unit 1111 sets the determination result of the system call restriction to permission.
[0108] In step ST5007, the system call control unit 1111 sets the determination result of the system call control to not permitted.
[0109] In step ST5008, the system call control unit 1111 ends the system call control process.
[0110] Figure 6 is a flowchart showing an example of the operation flow of the memory data inspection unit 1114 according to the present embodiment.
[0111] In step ST6000, the memory data inspection unit 1114 starts the memory data inspection process.
[0112] In step ST6001, the memory data inspection unit 1114 executes the memory data integrity ensuring process of the memory data integrity ensuring unit 1115.
[0113] In step ST6002, the memory data inspection unit 1114 executes the memory data permission determination process of the memory data permission determination unit 1116.
[0114] In step ST6003, the memory data inspection unit 1114 ends the memory data inspection process.
[0115] Figure 7 is a flowchart showing an example of the operation flow of the memory data integrity ensuring unit 1115 according to the present embodiment.
[0116] In step ST7000, the memory data integrity ensuring unit 1115 starts the memory data integrity ensuring process.
[0117] In step ST7001, the memory data integrity ensuring unit 1115 acquires the capture information 2003 of the data to be permitted determination from the system call control table 1150, the system call control table 1151, and the system call control table 1152.
[0118] In step ST7002, the memory data integrity assurance unit 1115 attempts to secure, from the watch point context table 1160, entries of the watch point identifier 3000 for which the watch point state 3005 is in the free state, for the number of entries of the data subject to allowance determination. For example, in the system call restriction control tables 1150, 1151, and 1152 shown in FIG. 2, it is exemplified that the number of entries of the data subject to allowance determination is two from the capture information 2003 of the data subject to allowance determination.
[0119] In step ST7003, the memory data integrity assurance unit 1115 assigns the secured entries of the watch point identifier 3000 in the order of data capture completion of the data subject to allowance determination, and sets each corresponding entry (each entry of the thread identifier 3001, the allowance determination sequence number 3002, the system call identifier 3003, and the watch point register setting value 3004) for the entry of the watch point identifier 3000.
[0120] In step ST7004, if the memory data integrity assurance unit 1115 fails to secure entries of the watch point identifier 3000 for the number of entries of the data subject to allowance determination in step ST7002, after the capture process of the data with the last data capture completion order among the data subject to allowance determination for which the entries of the watch point identifier 3000 are assigned in step ST7003, the memory data integrity assurance unit 1115 sets the occurrence of an event in the user memory data capture event processing unit 1117.
[0121] In step ST7005, the memory data integrity assurance unit 1115 repeats steps ST7005, ST7006, ST7007, and ST7008 for each entry of the assigned watch point identifier 3000.
[0122] In step ST7006, when a thread belonging to the same process state management data 1130 as the thread specified by the thread identifier 3001 is being executed on another arithmetic core, the memory data integrity assurance unit 1115 sets the watchpoint registers of the corresponding arithmetic core's watchpoint mechanism 1203 and watchpoint mechanism 1204 according to the watchpoint register setting value 3004. Also, the watchpoint state 3005 entry in the watchpoint context table 1160 is set to in use.
[0123] In step ST7007, for the memory data for which a watchpoint was set in step ST7006, the memory data integrity assurance unit 1115 assigns an authentication code to each pointer address that can trace from the memory data address in the system call argument information 2001 to the memory data address of the watchpoint register setting value.
[0124] For example, in the system call restriction control tables 1150, 1151, and 1152 shown in FIG. 2, in the entry of syscall_n of the permitted system call 2000, for the third argument, the memory data address held in register x2 (described as struct A * indicating the address of structure A) has already been passed to the system call unit 1110, so it may be excluded from the target of authentication code assignment, and each subsequent pointer address becomes the target of authentication code assignment (the address of structure B owned by structure A, a2, and the memory data address described as struct B * are the targets).
[0125] In step ST7008, the memory data integrity assurance unit 1115 determines whether or not to end for the entry of the assigned watchpoint identifier 3000. If it is to end, it proceeds to step ST7009. If it is not to end, it returns to step ST7005.
[0126] In step ST7009, the memory data integrity assurance unit 1115 ends the memory data integrity assurance process.
[0127] FIG. 8 is a flowchart showing an example of the operation flow of the memory data integrity assurance unit 1115 according to the present embodiment.
[0128] In step ST7010, the memory data integrity assurance unit 1115 starts the memory data integrity assurance release process.
[0129] In step ST7011, the memory data integrity assurance unit 1115 releases the authentication code for each pointer address that traces from the memory data address of the system call argument information 2001 to the memory data address of the watchpoint setting, which was performed in step ST7007.
[0130] In step ST7012, if a thread belonging to the same process state management data 1130 as the thread specified by the thread identifier 3001 is being executed on another arithmetic core, the memory data integrity assurance unit 1115 releases the watchpoint setting that was performed in step ST7006.
[0131] In step ST7013, the memory data integrity assurance unit 1115 deletes the entry of the target thread identifier from the thread identifier 3001 entry and the allow determination sequence number 3002 entry in the watchpoint context table 1160. If those entries become empty, the watchpoint state 3005 entry is set to empty.
[0132] In step ST7014, the memory data integrity assurance unit 1115 ends the memory data integrity assurance release process.
[0133] FIG. 9 is a flowchart showing an example of the operation flow of the memory data permission determination unit 1116 according to the present embodiment.
[0134] In step ST8000, the memory data permission determination unit 1116 starts the memory data permission determination process.
[0135] In step ST8001, the memory data permission determination unit 1116 repeats steps ST8001, ST8002, ST8003, ST8004, ST8005, ST8006, and ST8007 for each entry of the assigned watch point identifier 3000.
[0136] In step ST8002, the memory data permission determination unit 1116 acquires the allowable set 2002 of the corresponding memory data from the system call restriction control tables 1150, 1151, and 1152. For example, in the system call restriction control tables 1150, 1151, and 1152 shown in FIG. 2, the allowable set 2002 entry corresponding to the memory data address indicated by the second argument of the system call argument information 2001 and the allowable set 2002 entry corresponding to the "struct B: structure data" traced from the memory data address indicated by the third argument may be acquired.
[0137] In step ST8003, while checking whether the authentication code given in step ST7007 is complete, the memory data permission determination unit 1116 traces from the memory data address in the system call argument information 2001 to the memory data address described in the watch point register setting value 3004 entry set in step ST7003. Note that the reference process of the pointer address including the assignment of the authentication code to the pointer address and the check of whether the assigned authentication code is complete may be performed using instructions supported as hardware functions by the arithmetic cores 1201 and 1202. Also, whether the authentication code is complete can be confirmed, for example, if the value of the authentication code when calculating and assigning the authentication code from the pointer address and the encryption key (e.g., common key) matches the value calculated for the authentication code at the time of confirmation, it can be confirmed that the pointer address is complete (not tampered with). Here, the encryption key (common key) can be managed by the system software, inside the arithmetic core, or the hardware security module.
[0138] If the process of step ST8003 fails, the memory data permission determination unit 1116 disallows the memory data permission determination in step ST8010 and further proceeds to step ST8009. If the process of step ST8003 succeeds, it proceeds to step ST8005. Here, the failure of the process of step ST8003 corresponds to the case where the authentication code is not complete in the process of step ST8003. If the pointer address is tampered with, the check of the authentication code given in step ST7007 fails, and as a result, the process of tracing to the memory data address described in the watch point register setting value 3004 entry fails. On the other hand, the success of the process of step ST8003 corresponds to the case where the authentication code is complete in the process of step ST8003. The process of step ST8003 is considered successful when it is possible to trace from the memory data address in the system call argument information 2001 to the memory data address described in the watch point register setting value 3004 entry set in step ST7003.
[0139] In step ST8005, the memory data permission determination unit 1116 determines whether the memory data within the memory data address range described in the watchpoint register setting value 3004 entry set in step ST7003 is included in the allowable set 2002 acquired in step ST8002. If the memory data within the memory data address range is not included in the allowable set 2002, the memory data permission determination is made not permitted in step ST8010, and the process further proceeds to step ST8009.
[0140] In step ST8007, the memory data permission determination unit 1116 determines whether the entry of the assigned watchpoint identifier 3000 has ended. If it has ended, the process proceeds to step ST8008. If it has not ended, the process returns to step ST8001.
[0141] In step ST8008, the memory data permission determination unit 1116 permits the memory data permission determination.
[0142] In step ST8009, the memory data permission determination unit 1116 ends the memory data permission determination process.
[0143] FIG. 10 is a flowchart showing an example of the operation flow of the user memory data capture event processing unit 1117 according to the present embodiment.
[0144] In step ST9000, the user memory data capture event processing unit 1117 starts the user memory data capture event processing process.
[0145] In step ST9001, the user memory data capture event processing unit 1117 acquires the corresponding watch point identifier 3000 entry in the watch point context table 1160 based on the thread identifier 3001 and the system call identifier 3003 of the user memory data capture event occurrence. Note that the setting of the event occurrence of the user memory data capture event processing unit 1117 is performed in step ST7004.
[0146] In step ST9002, the user memory data capture event processing unit 1117 repeats steps ST9002, ST9003, and ST9004 for each entry of the watch point identifier 3000 acquired in step ST9001.
[0147] In step ST9003, the user memory data capture event processing unit 1117 executes the release of the memory data integrity assurance by the memory data integrity assurance unit 1115 (already described in FIG. 8).
[0148] In step ST9004, the user memory data capture event processing unit 1117 determines whether to end for the entry of the watch point identifier 3000 acquired in step ST9001. If it is to end, it proceeds to step ST9005. If it is not to end, it returns to step ST9002.
[0149] In step ST9005, the user memory data capture event processing unit 1117 executes a memory data inspection (described in FIG. 6) for the entries of the data to be determined for acceptance for which the permission determination has not been performed.
[0150] In step ST9006, the user memory data capture event processing unit 1117 ends the user memory data capture event processing step.
[0151] Here, the process of the system call restriction control post-processing in step ST4006 illustrated in FIG. 4 may be configured to skip step ST9005 illustrated in FIG. 10 and proceed to step ST9000, step ST9001, step ST9002, step ST9003, step ST9004, and then proceed to step ST9006. Also, step ST9001 may be to obtain the corresponding watch point identifier 3000 entry of the watch point context table 1160 based on the thread identifier 3001 that made the system request and the system call identifier 3003, instead of the thread identifier 3001 of the user memory data capture event occurrence.
[0152] FIG. 11 is a flowchart showing an example of the operation flow of the context switch of the context management unit 1122 by the scheduler 1123 according to the present embodiment. Note that the context switch of the context management unit 1122 by the scheduler 1123 may operate on each of the arithmetic cores 1201 and 1202 with respect to its own arithmetic core.
[0153] In step ST10000, the context management unit 1122 starts the context switch process.
[0154] In step ST10001, the context management unit 1122 determines whether the current execution thread is the target of the watch point setting. If it is the target, it proceeds to step ST10002. If it is not the target, it proceeds to step ST10003.
[0155] Regarding the determination method, for example, when the current execution thread belongs to the same process state management data 1130 as the thread specified by the thread identifier 3001 in the watch point context table 1160 and the watch point state 3005 is in use, it may be determined that it is the target of the watch point setting.
[0156] In step ST10002, the context management unit 1122 cancels the setting of the watchpoint indicated by the watchpoint identifier 3000 of the watchpoint mechanism corresponding to the arithmetic core to be context-switched.
[0157] In step ST10003, the context management unit 1122 determines whether the thread to be executed next is the target of watchpoint setting. If it is the target, the process proceeds to step ST10004. If it is not the target, the process proceeds to step ST10005.
[0158] Regarding the determination method, for example, when the thread to be executed next belongs to the same process state management data 1130 as the thread specified by the thread identifier 3001 in the watchpoint context table 1160 and the watchpoint state 3005 is in use, it may be determined that it is the target of watchpoint setting.
[0159] In step ST10004, the context management unit 1122 performs the setting of the watchpoint indicated by the watchpoint identifier 3000 of the watchpoint mechanism corresponding to the arithmetic core to be managed according to the watchpoint register setting value 3004 entry corresponding to the thread identifier 3001.
[0160] In step ST10005, the context management unit 1122 ends the context switch process.
[0161] Note that, for example, when the current execution thread and the thread to be executed next are the same, or when there is no difference in the watchpoint register setting value 3004 between the current execution thread and the thread to be executed next, etc., when the cancellation and setting of the watchpoint are unnecessary, the operation flow of the context switch shown in FIG. 11 may be omitted.
[0162] <Second Embodiment> An information processing apparatus and an information processing method according to the present embodiment will be described. In the following description, components similar to those described in the above-described embodiment will be denoted by the same reference numerals and illustrated, and detailed descriptions thereof will be omitted as appropriate.
[0163] <Regarding the configuration of the information processing apparatus> FIG. 12 is a block diagram showing an example of the configuration of an information processing apparatus 1000A according to the present embodiment. The difference from FIG. 1 is that the information processing apparatus 1000A includes a breakpoint context table 1180 instead of a watchpoint context table 1160, and includes breakpoint mechanisms 1208 and 1209 instead of watchpoint mechanisms 1203 and 1204. However, both a watchpoint context table 1160 and a breakpoint context table 1180 may be provided, or both a watchpoint mechanism 1203, a watchpoint mechanism 1204 and a breakpoint mechanism 1208, a breakpoint mechanism 1209 may be provided.
[0164] The breakpoint context table 1180 holds information for setting and controlling the breakpoint mechanisms 1208 and 1209 of the computer hardware 1200. The breakpoint context table 1180 may be held in association with the process state management data 1130 for each user process. Further, it may be held in association with the thread state management data 1140 for each thread (not shown here).
[0165] The breakpoint mechanisms 1208 and 1209 may be provided with at least one or more, and may be provided corresponding to each of the arithmetic cores 1201 and 1202. The breakpoint mechanism is hardware that monitors the execution of any instruction address of a program deployed in memory and generates an event. The breakpoint mechanism may be provided with one or more breakpoints that enable monitoring and setting of restrictions on instruction addresses. The breakpoint may be set via a breakpoint register (not shown here).
[0166] FIG. 13 is a diagram showing examples of the system call restriction control tables 1150, 1151, and 1152 according to the present embodiment. The difference from FIG. 2 is that a part of the content of the entry of the import information of the data to be subjected to the allowability determination is different.
[0167] The import information 2004 of the data to be subjected to the allowability determination describes, for each permission system call 2000, at least the order of completion of data import from the user memory, the data to be imported, and the import completion processing address of the memory data to be determined allowable using the allowable set 2002.
[0168] FIG. 14 is a diagram showing an example of the breakpoint context table 1180 according to the present embodiment. The difference from FIG. 3 is that there are a breakpoint identifier 3006, a breakpoint register setting value 3007, and a breakpoint state 3008. Here, the thread identifier 3001 indicates the thread that uses the breakpoint. Also, the system call identifier 3003 indicates the system call issued by the thread that uses the breakpoint. Also, the allowability determination sequence number 3002 indicates the allowability determination order of the data to be subjected to the allowability determination that uses the breakpoint.
[0169] The breakpoint identifier 3006 describes an identifier indicating the breakpoint provided in the breakpoint mechanisms 1208 and 1209.
[0170] The breakpoint register setting value 3007 describes the information of the register setting value of the breakpoint indicated by the breakpoint identifier 3006. Since the breakpoint register setting value 3007 is used to monitor the execution of the instruction address and generate an event, it includes at least information corresponding to the address of the user data loading completion process that becomes the instruction address.
[0171] The breakpoint status 3008 describes the status (usage status) of the breakpoint indicated by the breakpoint identifier 3006. The breakpoint status 3008 includes at least "in use" and "available".
[0172] <Regarding the operation of the information processing apparatus> FIG. 15 is a flowchart showing an example of the operation flow of the system call restriction control unit 1111 according to the present embodiment.
[0173] In the operation flow of the system call restriction control unit 1111, the difference from FIG. 5 is that there is no processing for the determination result of the memory data inspection in step ST5005. In other words, in step ST5004, the system call restriction control unit 1111 requests the memory data inspection unit 1114 to execute the process of memory data inspection. Thereafter, in step ST5006, the system call restriction control unit 1111 sets the determination result of the system call restriction control to "permitted".
[0174] FIG. 16 is a flowchart showing an example of the operation flow of the memory data inspection unit 1114 according to the present embodiment.
[0175] In the operation flow of the memory data inspection unit 1114, the difference from FIG. 6 is that there is no memory data permission determination process in step ST6002. In other words, in step ST6001, the memory data inspection unit 1114 executes the memory data integrity assurance process of the memory data integrity assurance unit 1115. Then, in step ST6003, the memory data inspection unit 1114 ends the memory data inspection process.
[0176] FIG. 17 is a flowchart showing an example of the operation flow of the memory data integrity assurance unit 1115 according to the present embodiment.
[0177] In step ST7000, the memory data integrity assurance unit 1115 starts the memory data integrity assurance process.
[0178] In step ST7001, the memory data integrity assurance unit 1115 acquires the capture information 2003 of the data to be permitted determination from the system call restriction control table 1150, the system call restriction control table 1151, and the system call restriction control table 1152.
[0179] Next, in step ST7015, the memory data integrity assurance unit 1115 attempts to secure, from the breakpoint context table 1180, the entries of the breakpoint identifiers 3006 for which the breakpoint state 3008 is in the free state, for the number of entries of the data to be permitted determination.
[0180] In step ST7016, the memory data integrity assurance unit 1115 assigns the entries of the secured breakpoint identifiers 3006 in the order of completion of data capture of the data to be permitted determination, and sets the respective entries (the respective entries of the thread identifier 3001, the permitted determination serial number 3002, the system call identifier 3003, and the breakpoint register setting value 3007) corresponding to the entries of the breakpoint identifier 3006.
[0181] In step ST7017, the memory data integrity assurance unit 1115 repeats steps ST7017, ST7018, and ST7019 for each entry of the assigned breakpoint identifier 3006.
[0182] In step ST7018, the memory data integrity assurance unit 1115 sets a breakpoint for the self - arithmetic core that processes system calls according to the breakpoint register setting value 3007. Also, the breakpoint state 3008 entry in the breakpoint context table 1180 is set to in - use.
[0183] In step ST7019, the memory data integrity assurance unit 1115 determines whether to end for the entry of the assigned breakpoint identifier 3006. If it is time to end, it proceeds to step ST7009. If it is not time to end, it returns to step ST7017.
[0184] In step ST7009, the memory data integrity assurance unit 1115 ends the memory data integrity assurance process.
[0185] Figure 18 is a flowchart showing an example of the operation flow of the memory data integrity assurance unit 1115 according to the present embodiment.
[0186] In step ST7010, the memory data integrity assurance unit 1115 starts the memory data integrity release process.
[0187] In step ST7020, the memory data integrity assurance unit 1115 deletes the entry of the target thread identifier from the thread identifier 3001 entry and the allow - determination sequence number 3002 entry in the breakpoint context table 1180. When those entries become empty, the breakpoint state 3008 entry is set to empty.
[0188] In step ST7014, the memory data integrity assurance unit 1115 ends the memory data integrity assurance release process.
[0189] FIG. 19 is a flowchart showing an example of the operation flow of the memory data permission determination unit 1116 according to the present embodiment.
[0190] In step ST8000, the memory data permission determination unit 1116 starts the memory data permission determination process.
[0191] In step ST8010, the memory data permission determination unit 1116 repeats step ST8010, step ST8002, step ST8011, step ST8006, and step ST8012 for each entry of the breakpoint acquired in the process of step ST9007 described later.
[0192] In step ST8002, the memory data permission determination unit 1116 acquires the allowable set 2002 of the corresponding memory data from the system call restriction control table 1150, the system call restriction control table 1151, and the system call restriction control table 1152. For example, in the system call restriction control table 1150, the system call restriction control table 1151, and the system call restriction control table 1152 shown in FIG. 2, an entry of the allowable set 2002 corresponding to the memory data address indicated by the second argument of the system call argument information 2001 and an entry of the allowable set 2002 corresponding to the "struct B: structure data" traced from the memory data address indicated by the third argument may be acquired.
[0193] In step ST8011, the memory data permission determination unit 1116 determines whether the data to be permitted determination corresponding to the breakpoint is included in the allowable set 2002 acquired in step ST8002. If the data to be permitted determination corresponding to the breakpoint is not included in the allowable set 2002, the memory data permission determination in step ST8010 is not permitted, and the process further proceeds to step ST8009.
[0194] In step ST8012, the memory data permission determination unit 1116 determines whether to end for the entry of the breakpoint acquired in the process of step ST9007 described later. If it is determined to end, the process proceeds to step ST8008. If it is not determined to end, the process returns to step ST8010.
[0195] In step ST8008, the memory data permission determination unit 1116 permits the memory data permission determination.
[0196] In step ST8009, the memory data permission determination unit 1116 ends the memory data permission determination process.
[0197] Figure 20 is a flowchart showing an example of the operation flow of the user memory data capture event processing unit 1117 according to the present embodiment.
[0198] In step ST9000, the user memory data capture event processing unit 1117 starts the user memory data capture event processing process.
[0199] In step ST9007, the user memory data capture event processing unit 1117 acquires the corresponding breakpoint identifier 3006 entry of the breakpoint context table 1180 based on the thread identifier 3001 and the system call identifier 3003 of the user memory data capture event occurrence (event caused by the execution of the instruction address set at the breakpoint). Note that the setting of the event occurrence of the user memory data capture event processing unit 1117 is performed in step ST7018.
[0200] In step ST9008, the user memory data capture event processing unit 1117 executes the memory data permission determination process of the memory data permission determination unit 1116.
[0201] Note that the determination result obtained by executing the memory data permission determination process is associated with whether the data import process of the user memory in step ST4003 shown in FIG. 4 is successful or failed.
[0202] In step ST9009, the user memory data import event processing unit 1117 repeats step ST9009, step ST9003, and step ST9010 for each entry of the acquired breakpoint.
[0203] In step ST9003, the user memory data import event processing unit 1117 executes the release of memory data integrity of the memory data integrity ensuring unit 1115 (already described in FIG. 8).
[0204] In step ST9010, the user memory data import event processing unit 1117 determines whether to end for the entry of the breakpoint. If it is the end, it proceeds to step ST9005. If it is not the end, it returns to step ST9009.
[0205] In step ST9005, the user memory data import event processing unit 1117 executes a memory data inspection (already described in FIG. 6) for entries of the data to be subjected to the permission determination for which the permission determination has not been performed among the data subject to the permission determination.
[0206] In step ST9006, the user memory data import event processing unit 1117 ends the user memory data import event processing step.
[0207] FIG. 21 is a flowchart showing an example of the operation flow of the context switch of the context management unit 1122 by the scheduler 1123 according to the present embodiment.
[0208] In step ST10000, the context management unit 1122 starts the context switch step.
[0209] In step ST10006, the context management unit 1122 determines whether the current execution thread is a target for breakpoint setting. If it is the target, the process proceeds to step ST10007. If it is not the target, the process proceeds to step ST10008.
[0210] Regarding the determination method, for example, when the current execution thread is the thread specified by the thread identifier 3001 in the breakpoint context table 1180 and the breakpoint state 3008 is in use, it may be determined that it is a target for breakpoint setting.
[0211] In step ST10007, the context management unit 1122 cancels the setting of the breakpoint indicated by the breakpoint identifier 3006 of the breakpoint mechanism corresponding to the arithmetic core to be managed.
[0212] In step ST10008, the context management unit 1122 determines whether the next execution thread is a target for breakpoint setting. If it is the target, the process proceeds to step ST10009. If it is not the target, the process proceeds to step ST10005.
[0213] Regarding the determination method, for example, when the next execution thread is the thread specified by the thread identifier 3001 in the breakpoint context table 1180 and the breakpoint state 3008 is in use, it may be determined that it is a target for breakpoint setting.
[0214] In step ST10009, the context management unit 1122 sets the breakpoint indicated by the breakpoint identifier 3006 of the breakpoint mechanism corresponding to the arithmetic core to be managed according to the breakpoint register setting value 3007 entry corresponding to the thread identifier 3001.
[0215] In step ST10005, the context management unit 1122 ends the context switch process.
[0216] In addition, for example, when the current execution thread and the next execution thread are the same, or when there is no difference in the breakpoint register setting value 3007 between the current execution thread and the next execution thread, etc., when it is not necessary to cancel and set the watchpoint, the operation flow of the context switch shown in FIG. 21 may be omitted.
[0217] <Regarding the effects caused by the above-described multiple embodiments> Next, examples of the effects caused by the above-described multiple embodiments are shown. In the following description, the effects are described based on the specific configurations shown in the above-described multiple embodiments. However, within the range where the same effects are produced, they may be replaced with other specific configurations shown in the present specification. That is, hereinafter, for the sake of convenience, only one of the corresponding specific configurations may be representatively described, but the representatively described specific configuration may be replaced with other corresponding specific configurations.
[0218] In addition, such replacement may be made across multiple embodiments. That is, even when the respective configurations shown in different embodiments are combined and the same effects are produced.
[0219] According to the embodiments described above, the information processing apparatus is an information processing apparatus 1000 (or information processing apparatus 1000A) in which system software 1100 operates on computer hardware 1200 including an arithmetic unit and a main memory device 1205. Here, the arithmetic unit corresponds to, for example, an arithmetic core 1201 or an arithmetic core 202. The system software 1100 includes a system call unit 1110 that processes system calls issued when an application 1400 (or application 1401) uses functions provided by the system software 1100. The system call unit 1110 includes a system call main processing unit 1113 that processes system calls, a system call restriction control unit 1111 that performs restriction control on the execution of system call processing, and a memory data inspection unit 1114 that inspects memory data corresponding to the system call by tracing the data structure of the system call from the memory data address passed by the application 1400 (or application 1401) to the system call unit 1110.
[0220] According to such a configuration, it is possible to trace the data structure of the system call based on the memory data address specified by the argument of the system call and verify the validity of the content of the memory data. Further, according to the verification of the validity of the content of the memory data, it is possible to defend against a Time-of-check to time-of-use (TOCTTOU) attack that may occur before the system call processing by the kernel of the operating system modifies the content of the memory data, and prevent unauthorized intrusion into the system, so that the security of the information processing apparatus can be strengthened.
[0221] In addition, when other configurations exemplified in the present specification are appropriately added to the above configuration, that is, even when other configurations in the present specification that are not mentioned as the above configuration are appropriately added, the same effects can be achieved.
[0222] <Regarding modifications of the above-described multiple embodiments> In the above-described multiple embodiments, the dimensions, shapes, relative arrangement relationships, implementation conditions, etc. of each component may be described, but these are all examples in all aspects and are not limiting.
[0223] Therefore, countless variations and equivalents not shown in the examples are envisioned within the scope of the technology disclosed in the specification of this application. For example, it includes cases where at least one component is deformed, added, or omitted, and further includes cases where at least one component in at least one embodiment is extracted and combined with components in other embodiments.
[0224] Also, as long as there is no contradiction, when it is described in the above-described embodiments that a component is provided with "one", the component may be provided with "one or more".
[0225] For example, when the system software is a hypervisor and the system call is a hypercall, or when the system software is a security monitor and the system call is a security monitor call, etc. are included. That is, it includes cases where at least one component is deformed, added, or omitted, and further includes cases where at least one component is extracted and combined with components of other embodiments.
[0226] Furthermore, each component in the above-described embodiments is a conceptual unit, and within the scope of the technology disclosed in the specification of this application, it includes cases where one component consists of multiple structures, cases where one component corresponds to a part of a certain structure, and further includes cases where multiple components are provided in one structure.
[0227] Also, each component in the above-described embodiments includes structures having other structures or shapes as long as they perform the same function.
[0228] Also, the descriptions in this specification are for all purposes related to this technology and none of them are admitted to be prior art.
Description of Reference Numerals
[0229] 1000 Information processing apparatus, 1000A Information processing apparatus, 1100 System software, 1110 System call section, 1111 System call restriction control section, 1112 User memory data capture section, 1113 System call main processing section, 1114 Memory data inspection section, 1115 Memory data integrity assurance section, 1116 Memory data permission determination section, 1117 User memory data capture event processing section, 1120 System call restriction control table setting section, 1121 Log recording section, 1122 Context management section, 1123 Scheduler, 1130 Process state management data, 1140 Thread state management data, 1150 System call restriction control table, 1151 System call restriction control table, 1152 System call restriction control table, 1160 Watchpoint context table, 1170 Container execution environment management data, 1180 Breakpoint context table, 1200 Computer hardware, 1201 Arithmetic core, 1202 Arithmetic core, 1203 Watchpoint mechanism, 1204 Watchpoint mechanism, 1205 Main memory device, 1206 Non-volatile memory device, 1207 Peripheral device, 1208 Breakpoint mechanism, 1209 Breakpoint mechanism, 1300 System call restriction control setting section, 1301 System setting control container execution environment, 1400 Application, 1401 Application, 1402 Application container execution environment, 2000 Permitted system call, 2001 System call argument information, 2002 Permissible set, 2003 Capture information, 2004 Capture information, 3000 Watchpoint identifier, 3001 Thread identifier, 3002 Permission determination sequence number, 3003 System call identifier, 3004 Watchpoint register setting value, 3005 Watchpoint state, 3006 Breakpoint identifier, 3007 Breakpoint register setting value, 3008 Breakpoint state.
Claims
1. An information processing device in which system software runs on computer hardware including an arithmetic unit and main memory, The system software includes a system call unit that processes system calls issued when an application uses a function provided by the system software, The aforementioned system call unit, A system call body processing unit that processes the aforementioned system call, A system call restriction control unit that controls the execution of the system call processing, The system includes a memory data inspection unit that examines the memory data corresponding to the system call by tracing the data structure of the system call from the memory data address that the application passes to the system call unit. Information processing device.
2. The information processing device according to Claim 1, The memory data address is specified in the argument of the system call. Information processing device.
3. An information processing device according to claim 1 or 2, The system call unit further comprises a memory data integrity assurance unit that performs a process to ensure the integrity of the memory data using a pointer address that traverses the data structure of the system call from the memory data address that the application passes to the system call unit. Information processing device.
4. An information processing device according to claim 1 or 2, The system call unit further comprises a memory data permission determination unit that traverses the data structure of the system call from the memory data address that the application passes to the system call unit and performs a permission determination for the memory data. Information processing device.
5. An information processing device according to claim 1 or 2, The aforementioned system software A system call restriction control table that describes information regarding the restriction control in the execution of the system call, The system further comprises a system call restriction control table setting unit that sets the aforementioned system call restriction control table, The information processing device further includes a system call restriction control setting unit that sets information on the system call restriction settings for the system call restriction control table setting unit into the system software. Information processing device.
6. The information processing device according to claim 5, The computer hardware further includes a watchpoint mechanism for monitoring and restricting access to the memory data. The system software further comprises a watchpoint context table that holds information for setting and controlling the watchpoint mechanism. Information processing device.
7. An information processing device according to claim 1 or 2, The aforementioned system call unit, A user memory data acquisition unit that traces the data structure of the system call from the memory data address that the application passes to the system call unit and acquires the memory data into memory managed by the system software, The system further comprises a user memory data acquisition event processing unit that processes events occurring in the user memory data acquisition unit. Information processing device.
8. An information processing device according to claim 1 or 2, The aforementioned computer hardware further comprises a non-volatile storage device that permanently retains the recorded data. The system software further includes a logging unit that records information output by the system call unit. Information processing device.
9. The information processing device according to claim 6, The aforementioned system software A context management unit manages processes or threads that indicate the state when a user program including the aforementioned application is executed on the computer hardware, A scheduler that manages the allocation of processes or threads to the aforementioned computer hardware, Thread state management data that maintains the state and information of the thread for each thread, Process state management data that maintains the state and information of the process for each process, and manages the thread state management data of the threads managed by the process, The system includes container execution environment management data, which is maintained for each container execution environment that virtually isolates the program's execution environment, and which includes the process state management data of the process managed by the container execution environment. The watchpoint context table is configured to be linked to the process state management data, The system call limit control table is configured in association with the thread state management data, the process state management data, or the container execution environment management data. Information processing device.
10. The information processing device according to claim 6, The aforementioned system call restriction control table, The aforementioned system call unit grants permission for system call invocations, System call argument information that shows information about the data structure of the arguments of the aforementioned authorization system call, The set of acceptable data is information about the acceptable range of data for each system call argument information, This includes information on the data to be accepted, which indicates the data to be accepted that is accepted using the accepted set, The acquisition information of the data subject to the acceptance judgment is, Information indicating the memory data to be acquired, The size of the memory data to be acquired, The order in which the aforementioned memory data has been acquired is included, Information processing device.
11. The information processing device according to claim 10, The aforementioned watchpoint context table is The watchpoint identifier that indicates the watchpoint provided by the watchpoint mechanism, A thread identifier indicating the thread to which the aforementioned watchpoint is to be assigned, A system call identifier indicating a system call issued by the thread to which the aforementioned watchpoint is to be assigned, The tolerance judgment sequence number indicates the tolerance judgment order of the data subject to tolerance judgment for which the watchpoint is set, The watchpoint register setting value is information about the register setting value of the aforementioned watchpoint, This includes the watchpoint status, which is information indicating the usage status of the watchpoint, The watchpoint register setting includes information about a memory area that monitors and controls access to the memory data. Information processing device.
12. The information processing device according to claim 10, The aforementioned computer hardware further includes a breakpoint mechanism that monitors the execution of any instruction address in a program and generates an event when an instruction is executed. The system software further comprises a breakpoint context table that holds information for setting and controlling the breakpoint mechanism. Information processing device.
13. The information processing device according to claim 10, The system call restriction control table includes in the data acquisition information of the data subject to acceptance determination the address of the memory data acquisition completion process which is determined to be acceptable using the information of the acceptable set. Information processing device.
14. The information processing apparatus according to claim 12, The aforementioned breakpoint context table is The breakpoint identifier that indicates a breakpoint provided by the breakpoint mechanism, A thread identifier indicating the thread that uses the aforementioned breakpoint, A system call identifier indicating a system call issued by the thread using the aforementioned breakpoint, A tolerance judgment sequence number indicating the tolerance judgment order of the data subject to tolerance judgment using the breakpoint, The breakpoint register setting value is information about the register setting value of the aforementioned breakpoint, This includes the breakpoint status, which is information indicating the usage status of the aforementioned breakpoint. The aforementioned breakpoint register setting includes information about the address of the user data acquisition completion process. Information processing device.
15. The information processing device according to claim 7, The aforementioned computer hardware further comprises a non-volatile storage device that permanently retains the recorded data. The system software further comprises a system call unit and a log recording unit that records information output by the system call unit, The aforementioned system call unit, The system limit processing of the system call limit control unit is executed, If the system restriction processing result of the system call restriction control unit is permitted, the data acquisition processing of the user memory data acquisition unit is executed. If the data acquisition process is successful, the system call body processing unit executes the system call process. If the system restriction processing result of the system call restriction control unit is denied, and if the data acquisition process is successful, the logging unit executes evidence log recording. The system call restriction control unit performs post-processing of the system call restriction control. Information processing device.
16. The information processing device according to claim 6, The system call limit control unit, The entry for an permitted system call is obtained from the aforementioned system call restriction control table. If there is an entry for the aforementioned permitted system call, the permission check for the argument value of the aforementioned system call is performed. If the permission determination for the argument value of the system call is granted, the memory data inspection unit executes the memory data inspection. If the memory data inspection by the memory data inspection unit determines permission to be granted, the result of the system call restriction control is set to permission. If there is no entry for the permitted system call, if the permission determination for the argument value of the system call is denied, and if the computer hardware includes the watchpoint mechanism and the permission determination for the memory data inspection by the memory data inspection unit is denied, the determination result of the system call restriction control is set to denied. Information processing device.
17. The information processing device according to claim 6, The aforementioned system call unit, A memory data integrity assurance unit that performs processing to ensure the integrity of the memory data by traversing the data structure of the system call from the memory data address that the application passes to the system call unit, and the data structure, The system further comprises a memory data permission determination unit that traces the data structure of the system call from the memory data address that the application passes to the system call unit and performs a permission determination for the memory data, The memory data inspection unit, The memory data integrity assurance unit performs memory data integrity assurance, If the computer hardware includes the watchpoint mechanism, the memory data permission determination unit executes the memory data permission determination. Information processing device.
18. The information processing device according to claim 9, The aforementioned system call restriction control table, The aforementioned system call unit grants permission for system call invocations, System call argument information that shows information about the data structure of the arguments of the aforementioned authorization system call, The allowable set is information about the allowable data set for each system call argument information, This includes information on the data to be accepted, which indicates the data to be accepted that is accepted using the accepted set, The acquisition information of the data subject to the acceptance judgment is, Information indicating the memory data to be acquired, The size of the memory data to be acquired, The order in which the aforementioned memory data has been acquired is included, The aforementioned watchpoint context table is The watchpoint identifier that indicates the watchpoint provided by the watchpoint mechanism, A thread identifier indicating the thread to which the aforementioned watchpoint is to be assigned, A system call identifier indicating a system call issued by the thread to which the aforementioned watchpoint is to be assigned, The tolerance judgment sequence number indicates the tolerance judgment order of the data subject to tolerance judgment for which the watchpoint is set, The watchpoint register setting value is information about the register setting value of the aforementioned watchpoint, This includes the watchpoint status, which is information indicating the usage status of the watchpoint, The watchpoint register setting includes information about a memory area that monitors and controls access to the memory data. The aforementioned system call unit, A memory data integrity assurance unit that performs processing to ensure the integrity of the memory data by traversing the data structure of the system call from the memory data address that the application passes to the system call unit, and the data structure, A user memory data acquisition unit that traces the data structure of the system call from the memory data address that the application passes to the system call unit and acquires the memory data into memory managed by the system software, The system further comprises a user memory data acquisition event processing unit that processes events occurring in the user memory data acquisition unit, The memory data integrity assurance unit, The system call limit control table is used to obtain the data to be accepted. From the watchpoint context table, an attempt is made to secure an entry for the watchpoint identifier that is free for the same number of entries as the data subject to acceptance determination. In the order in which the data acquisition of the data subject to the acceptance determination is completed, the reserved entries of the watchpoint identifiers are assigned, and the corresponding entries of the thread identifier, the acceptance determination sequence number, the system call identifier, and the watchpoint register setting value are set. If it is not possible to secure entries for the watchpoint identifier for the same number of entries as the data to be accepted, then, after the data acquisition process for the last data among the data to be accepted that has been assigned an entry for the watchpoint identifier, the event occurrence of the user memory data acquisition event processing unit is set. For each entry of the assigned watchpoint identifier, if a thread belonging to the same process state management data as the thread identified by the thread identifier is running on another computing core, the watchpoint register of the computing core on which the thread belonging to the process state management data is running is set according to the watchpoint register setting value, The watchpoint status entry in the watchpoint context table is set to "in use". For the memory data on which the watchpoint is set, an authentication code is assigned to each pointer address that can be traced from the memory data address indicated in the system call argument information of the system call restriction control table to the memory data address of the watchpoint register setting. Information processing device.
19. The information processing device according to claim 16, The aforementioned system call restriction control table, The aforementioned system call unit grants permission for system call invocations, System call argument information that shows information about the data structure of the arguments of the aforementioned authorization system call, The allowable set is information about the allowable data set for each system call argument information, This includes information on the data to be accepted, which indicates the data to be accepted that is accepted using the accepted set, The acquisition information of the data subject to the acceptance judgment is, Information indicating the memory data to be acquired, The size of the memory data to be acquired, The order in which the aforementioned memory data has been acquired is included, The aforementioned watchpoint context table is The watchpoint identifier that indicates the watchpoint provided by the watchpoint mechanism, A thread identifier indicating the thread to which the aforementioned watchpoint is to be assigned, A system call identifier indicating a system call issued by the thread to which the aforementioned watchpoint is to be assigned, The tolerance judgment sequence number indicates the tolerance judgment order of the data subject to tolerance judgment for which the watchpoint is set, The watchpoint register setting value is information about the register setting value of the aforementioned watchpoint, This includes the watchpoint status, which is information indicating the usage status of the watchpoint, The watchpoint register setting includes information about a memory area that monitors and controls access to the memory data. The system call unit further comprises a memory data permission determination unit that traverses the data structure of the system call from the memory data address that the application passes to the system call unit and performs a permission determination for the memory data. The memory data permission determination unit, For each entry of the assigned watchpoint identifier, the appropriate set of allowed memory data is obtained from the system call limit control table. While verifying whether the assigned authentication code is complete, the system traces from the memory data address of the system call argument information to the memory data address described in the entry of the set watchpoint register setting value. If the process of traversing the memory data address while verifying the integrity of the authentication code fails, the memory data permission determination is denied and the processing of the memory data permission determination unit is terminated. Determine whether the memory data in the memory data address range described in the entry of the set watchpoint register is included in the allowed set. If the memory data is not included in the allowed set, the memory data permission determination is denied and the processing of the memory data permission determination unit is terminated. If the memory data is included in the allowed set, the memory data permission determination is set to permission. Information processing device.
20. The information processing device according to claim 16, The aforementioned system call restriction control table, The aforementioned system call unit grants permission for system call invocations, System call argument information that shows information about the data structure of the arguments of the aforementioned authorization system call, The allowable set is information about the allowable data set for each system call argument information, This includes information on the data to be accepted, which indicates the data to be accepted that is accepted using the accepted set, The acquisition information of the data subject to the acceptance judgment is, Information indicating the memory data to be acquired, The size of the memory data to be acquired, The order in which the aforementioned memory data has been acquired is included, The aforementioned watchpoint context table is The watchpoint identifier that indicates the watchpoint provided by the watchpoint mechanism, A thread identifier indicating the thread to which the aforementioned watchpoint is to be assigned, A system call identifier indicating a system call issued by the thread to which the aforementioned watchpoint is to be assigned, The tolerance judgment sequence number indicates the tolerance judgment order of the data subject to tolerance judgment for which the watchpoint is set, The watchpoint register setting value is information about the register setting value of the aforementioned watchpoint, This includes the watchpoint status, which is information indicating the usage status of the watchpoint, The watchpoint register setting includes information about a memory area that monitors and controls access to the memory data. The aforementioned system call unit, A user memory data acquisition unit that traces the data structure of the system call from the memory data address that the application passes to the system call unit and acquires the memory data into memory managed by the system software, A user memory data acquisition event processing unit that processes events occurring in the user memory data acquisition unit, The application further comprises a pointer address that traverses the data structure of the system call from the memory data address passed to the system call unit by the application, and a memory data integrity assurance unit that traverses the data structure and performs processing to ensure the integrity of the memory data. The user memory data acquisition event processing unit, As a step in the post-processing of system call restriction control, the corresponding watchpoint identifier entry in the watchpoint context table is obtained from the thread identifier of the user memory data ingestion event and the system call identifier. For each entry of the acquired watchpoint identifier, the memory data integrity assurance unit will release the memory data integrity assurance. The memory data check is performed on entries among the data subject to the acceptance determination for which permission determination has not yet been performed. Information processing device.
21. The information processing device according to claim 17, The aforementioned system call restriction control table, The aforementioned system call unit grants permission for system call invocations, System call argument information that shows information about the data structure of the arguments of the aforementioned authorization system call, The allowable set is information about the allowable data set for each system call argument information, This includes information on the data to be accepted, which indicates the data to be accepted that is accepted using the accepted set, The acquisition information of the data subject to the acceptance judgment is, Information indicating the memory data to be acquired, The size of the memory data to be acquired, The order in which the aforementioned memory data has been acquired is included, The aforementioned watchpoint context table is The watchpoint identifier that indicates the watchpoint provided by the watchpoint mechanism, A thread identifier indicating the thread to which the aforementioned watchpoint is to be assigned, A system call identifier indicating a system call issued by the thread to which the aforementioned watchpoint is to be assigned, The tolerance judgment sequence number indicates the tolerance judgment order of the data subject to tolerance judgment for which the watchpoint is set, The watchpoint register setting value is information about the register setting value of the aforementioned watchpoint, This includes the watchpoint status, which is information indicating the usage status of the watchpoint, The watchpoint register setting includes information about a memory area that monitors and controls access to the memory data. The aforementioned system software A context management unit manages processes or threads that indicate the state when a user program, including the aforementioned application, is executed on the computer hardware, A scheduler that manages the allocation of processes or threads to the aforementioned computer hardware, Thread state management data that maintains the state and information of the thread for each thread, Process state management data that maintains the state and information of the process for each process, and manages the thread state management data of the threads managed by the process, The system includes container execution environment management data, which is maintained for each container execution environment that virtually isolates the program's execution environment, and which includes the process state management data of the process managed by the container execution environment. The watchpoint context table is configured to be linked to the process state management data, The system call limit control table is configured to be linked to the thread state management data, the process state management data, or the container execution environment management data. The process of releasing the memory data integrity assurance in the memory data integrity assurance unit is, The authentication code is deactivated for each pointer address traversed from the memory data address indicated in the system call argument information to the memory data address of the watchpoint setting. If a thread belonging to the same process state management data as the thread identified by the thread identifier is running on another computing core, the watchpoint setting is canceled. In the watchpoint context table, the entry for the target thread identifier is removed from the thread identifier entry and the acceptance judgment sequence number entry, and if those entries become empty, the watchpoint status entry is set to empty. Information processing device.
22. The information processing device according to claim 9, The aforementioned system call restriction control table, The aforementioned system call unit grants permission for system call invocations, System call argument information that shows information about the data structure of the arguments of the aforementioned authorization system call, The allowable set is information about the allowable data set for each system call argument information, This includes information on the data to be accepted, which indicates the data to be accepted that is accepted using the accepted set, The acquisition information of the data subject to the acceptance judgment is, Information indicating the memory data to be acquired, The size of the memory data to be acquired, The order in which the aforementioned memory data has been acquired is included, The aforementioned watchpoint context table is The watchpoint identifier that indicates the watchpoint provided by the watchpoint mechanism, A thread identifier indicating the thread to which the aforementioned watchpoint is to be assigned, A system call identifier indicating a system call issued by the thread to which the aforementioned watchpoint is to be assigned, The tolerance judgment sequence number indicates the tolerance judgment order of the data subject to tolerance judgment for which the watchpoint is set, The watchpoint register setting value is information about the register setting value of the aforementioned watchpoint, This includes the watchpoint status, which is information indicating the usage status of the watchpoint, The watchpoint register setting includes information about a memory area that monitors and controls access to the memory data. The context switch processing of the context management unit by the scheduler is Determine whether the current execution thread is subject to watchpoint setting. If the current execution thread is subject to watchpoint setting, the watchpoint setting indicated by the watchpoint identifier of the watchpoint mechanism corresponding to the computation core targeted for context switching is removed. Next, determine whether the thread to be executed is subject to watchpoint settings. If the next thread to be executed is subject to watchpoint setting, the watchpoint is set according to the entry of the watchpoint register setting value corresponding to the thread identifier, and the watchpoint is set indicated by the watchpoint identifier of the watchpoint mechanism corresponding to the arithmetic core targeted for context switching. The determination of whether the execution thread is subject to watchpoint setting is made if the thread belongs to the same process state management data as the thread identified by the thread identifier, and its watchpoint state is in use, then it is determined to be subject to watchpoint setting. Information processing device.
23. The information processing apparatus according to claim 14, The system call unit further comprises a pointer address that traverses the data structure of the system call from the memory data address that the application passes to the system call unit, and a memory data integrity assurance unit that traverses the data structure and performs processing to ensure the integrity of the memory data. The processing of the memory data integrity assurance unit in the information processing device including the breakpoint mechanism in the aforementioned computer hardware, The system call limit control table is used to obtain the data to be accepted. From the aforementioned breakpoint context table, an attempt is made to secure an entry for the breakpoint identifier that is free for the number of entries of data subject to acceptance determination. In the order in which the data acquisition of the data subject to the tolerance determination is completed, the entries of the secured breakpoint identifiers are assigned, and the corresponding entries of the thread identifier, the tolerance determination sequence number, the system call identifier, and the breakpoint register setting value are set. For each entry of the assigned breakpoint identifier, set the breakpoint of the self-processing core that processes the system call according to the breakpoint register setting value. The entry for the breakpoint state in the aforementioned breakpoint context table is in use. Information processing device.
24. The information processing apparatus according to claim 14, The system call unit further comprises a memory data permission determination unit that traverses the data structure of the system call from the memory data address that the application passes to the system call unit and performs a permission determination for the memory data. The processing of the memory data permission determination unit in the information processing device including the breakpoint mechanism in the aforementioned computer hardware, For each entry of the assigned breakpoint identifier, the appropriate set of allowed memory data is obtained from the system call restriction control table. Determine whether the data to be accepted corresponding to the breakpoint is included in the acquired set of accepted data. If the data subject to the permission determination is not included in the permission set, the memory data permission determination is denied and the processing of the memory data permission determination unit is terminated. Information processing device.
25. The information processing apparatus according to claim 14, The aforementioned system call unit, A memory data integrity assurance unit that performs processing to ensure the integrity of the memory data by traversing the data structure of the system call from the memory data address that the application passes to the system call unit, and the data structure, A user memory data acquisition unit that traces the data structure of the system call from the memory data address that the application passes to the system call unit and acquires the memory data into memory managed by the system software, The system further comprises a user memory data acquisition event processing unit that processes events occurring in the user memory data acquisition unit, The processing of the user memory data acquisition event processing unit in the information processing device including the breakpoint mechanism in the aforementioned computer hardware, Based on the thread identifier of the user memory data ingestion event and the system call identifier, the corresponding breakpoint identifier entry in the breakpoint context table is obtained. The permission determination for the aforementioned memory data is performed, For each entry of the acquired breakpoint identifier, the memory data integrity assurance unit performs the release of the memory data integrity assurance, The memory data check is performed on entries among the data subject to the acceptance determination for which permission determination has not yet been performed. Information processing device.
26. The information processing apparatus according to claim 14, The system call unit includes a pointer address that traverses the data structure of the system call from the memory data address that the application passes to the system call unit, and a memory data integrity assurance unit that traverses the data structure and performs processing to ensure the integrity of the memory data. The computer hardware includes a process for releasing the memory data integrity assurance in an information processing device that includes the breakpoint mechanism. In the breakpoint context table, the entry for the target thread identifier is removed from the thread identifier entry and the acceptance judgment sequence number entry, and if those entries become empty, the breakpoint state entry is set to empty. Information processing device.
27. The information processing apparatus according to claim 14, The aforementioned system software A context management unit manages processes or threads that indicate the state when a user program, including the aforementioned application, is executed on the computer hardware, A scheduler that manages the allocation of processes or threads to the aforementioned computer hardware, Thread state management data that maintains the state and information of the thread for each thread, Process state management data that maintains the state and information of the process for each process, and manages the thread state management data of the threads managed by the process, The system includes container execution environment management data, which is maintained for each container execution environment that virtually isolates the program's execution environment, and which includes the process state management data of the process managed by the container execution environment. The watchpoint context table is configured to be linked to the process state management data, The system call limit control table is configured to be linked to the thread state management data, the process state management data, or the container execution environment management data. In the aforementioned computer hardware, the context switching process of the context management unit by the scheduler in the information processing device including the breakpoint mechanism is performed by Determine whether the current execution thread is the target of the breakpoint setting. If the current execution thread is subject to a breakpoint setting, the breakpoint indicated by the breakpoint identifier of the breakpoint mechanism corresponding to the computation core targeted by the context switch is removed. Next, determine whether the thread to be executed is the target of the breakpoint setting. If the next thread to be executed is subject to breakpoint setting, a breakpoint is set according to the entry of the breakpoint register setting value corresponding to the thread identifier, and the breakpoint is indicated by the breakpoint identifier of the breakpoint mechanism corresponding to the arithmetic core targeted for context switching. The determination of whether the execution thread is subject to breakpoint setting is made if the execution thread is the thread identified by the thread identifier in the breakpoint context table and the breakpoint state is in use, then it is determined to be subject to breakpoint setting. Information processing device.
28. An information processing method in which system software runs on computer hardware including an arithmetic unit and main memory, In the aforementioned system software, The system processes system calls issued when an application uses the functions provided by the system software. The system call processing execution is restricted and controlled. The application traverses the data structure of the system call from the memory data address it passes to the system software to examine the memory data corresponding to the system call. Information processing methods.