WO2015097760A1 - 情報処理装置およびデータフィルタリングプログラム - Google Patents

情報処理装置およびデータフィルタリングプログラム Download PDF

Info

Publication number
WO2015097760A1
WO2015097760A1 PCT/JP2013/084528 JP2013084528W WO2015097760A1 WO 2015097760 A1 WO2015097760 A1 WO 2015097760A1 JP 2013084528 W JP2013084528 W JP 2013084528W WO 2015097760 A1 WO2015097760 A1 WO 2015097760A1
Authority
WO
WIPO (PCT)
Prior art keywords
condition
control command
command
unit
additional condition
Prior art date
Application number
PCT/JP2013/084528
Other languages
English (en)
French (fr)
Inventor
勇夫 舟木
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to EP13900529.2A priority Critical patent/EP3088255B1/en
Priority to JP2015554341A priority patent/JP6296064B2/ja
Priority to PCT/JP2013/084528 priority patent/WO2015097760A1/ja
Publication of WO2015097760A1 publication Critical patent/WO2015097760A1/ja
Priority to US15/174,367 priority patent/US9809116B2/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60KARRANGEMENT OR MOUNTING OF PROPULSION UNITS OR OF TRANSMISSIONS IN VEHICLES; ARRANGEMENT OR MOUNTING OF PLURAL DIVERSE PRIME-MOVERS IN VEHICLES; AUXILIARY DRIVES FOR VEHICLES; INSTRUMENTATION OR DASHBOARDS FOR VEHICLES; ARRANGEMENTS IN CONNECTION WITH COOLING, AIR INTAKE, GAS EXHAUST OR FUEL SUPPLY OF PROPULSION UNITS IN VEHICLES
    • B60K35/00Instruments specially adapted for vehicles; Arrangement of instruments in or on vehicles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R25/00Fittings or systems for preventing or indicating unauthorised use or theft of vehicles
    • B60R25/20Means to switch the anti-theft system on or off
    • B60R25/24Means to switch the anti-theft system on or off using electronic identifiers containing a code not memorised by the user
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2325/00Indexing scheme relating to vehicle anti-theft devices
    • B60R2325/10Communication protocols, communication systems of vehicle anti-theft devices
    • B60R2325/101Bluetooth
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2325/00Indexing scheme relating to vehicle anti-theft devices
    • B60R2325/20Communication devices for vehicle anti-theft devices
    • B60R2325/205Mobile phones

Definitions

  • the present invention relates to an information processing apparatus and a data filtering program.
  • the in-vehicle device receives control information including operation information indicating the operation content for controlling the in-vehicle device and information for specifying the mobile terminal, for example, from the mobile terminal.
  • control information including operation information indicating the operation content for controlling the in-vehicle device and information for specifying the mobile terminal, for example, from the mobile terminal.
  • the in-vehicle device determines whether or not to accept the operation specified by the operation information on the condition that the portable terminal that has transmitted the control information is a portable terminal that allows keyless entry. The process according to the operation information is executed.
  • the conventional in-vehicle apparatus has a problem that even if the data transmitted from the outside is malicious data, if the transmission source is recognized, the process according to the data is executed.
  • the in-vehicle device is specified by the operation information if the mobile terminal that has transmitted the control information including the operation information and information for specifying the mobile terminal is a mobile terminal that allows keyless entry.
  • the function for which the operation is permitted is executed according to the operation information. Therefore, even if the operation information is malicious information, the in-vehicle device executes a function for which the operation specified by the operation information is permitted if the operation information is approved by the transmission source mobile terminal. End up.
  • the objective is to improve the reliability of execution related to data transmitted from the outside.
  • the control command is the first command.
  • An analysis unit that analyzes whether the content includes an additional condition related to the condition, and if the control instruction is analyzed by the analysis unit as content including an additional condition related to the first condition, An additional condition determining unit that determines whether or not the control instruction satisfies an additional condition; and when the additional condition determining unit determines that the additional condition is satisfied, determines whether or not the control instruction satisfies a second condition And a processing unit that executes processing according to the determination of the second determination unit.
  • the reliability of execution related to data transmitted from the outside can be improved.
  • FIG. 1 is a block diagram illustrating the configuration of the data filtering system according to the embodiment.
  • FIG. 2 is a block diagram illustrating the configuration of the information processing apparatus according to the embodiment.
  • FIG. 3 is a diagram illustrating an example of a data structure of the filtering condition storage unit according to the embodiment.
  • FIG. 4 is a diagram illustrating an example of a data structure of the log storage unit according to the embodiment.
  • FIG. 5 is a flowchart illustrating the data filtering process according to the embodiment.
  • FIG. 6 is a diagram illustrating an example of a computer that executes a data filtering program.
  • FIG. 1 is a block diagram illustrating the configuration of the data filtering system according to the embodiment.
  • the data filtering system 9 includes an information processing device 1, a terminal device 2, and a vehicle device 3.
  • the data filtering system 9 establishes a communication connection between the terminal device 2 and the information processing device 1 and executes various communications from the information processing device 1 to the vehicle device 3.
  • Examples of the communication connection between the terminal device 2 and the information processing device 1 include a connection by short-range wireless communication such as Bluetooth (registered trademark).
  • the vehicle device 3 is a device mounted on the vehicle, and includes, for example, a driver's seat, a handle, an accelerator, a brake, a meter, and the like.
  • the terminal device 2 has an operation function and a communication function, and corresponds to a portable terminal device such as a tablet, a smartphone, a mobile phone, a PHS (Personal Handyphone System), a PDA (Personal Digital Assistance), etc. . That is, the terminal device 2 may be a terminal device that has a communication function and can be brought into the vehicle.
  • a portable terminal device such as a tablet, a smartphone, a mobile phone, a PHS (Personal Handyphone System), a PDA (Personal Digital Assistance), etc.
  • the terminal device 2 may be a terminal device that has a communication function and can be brought into the vehicle.
  • the control application 21 is installed in the terminal device 2.
  • the control application 21 is an application for controlling the vehicle device 3.
  • the control application 21 is an application that controls a driver's seat, an application that controls a steering wheel, or an application that controls an accelerator. That is, in the data filtering system 9, for example, a driver who drives a vehicle brings the terminal device 2 into the vehicle and uses the terminal device 2 as a vehicle control panel via the control application 21.
  • the driver activates the control application 21 using an operation button mounted on the terminal device 2.
  • a control instruction corresponding to the operation is output to the information processing apparatus 1.
  • the control application 21 is downloaded from, for example, the site of a legitimate manufacturer that produced the vehicle.
  • control application 21 may be falsified due to virus infection.
  • the control application 21 may execute malicious data on the vehicle device 3 according to the contents of the tampering. Therefore, when the control application 21 is falsified, the information processing apparatus 1 described later filters (selects) malicious data.
  • the control application 21 demonstrated that a driver
  • the control application 21 may reside in the memory at the timing when the terminal device 2 is turned on.
  • the information processing apparatus 1 verifies the sequence of data and the state of the vehicle, and filters malicious data when executing data operated from outside the vehicle on the vehicle.
  • the data sequence here refers to, for example, the behavior of the manipulated data from the past to the present.
  • data operated from outside the vehicle will be referred to as a “control command”.
  • FIG. 2 is a block diagram illustrating the configuration of the information processing apparatus according to the embodiment.
  • the information processing apparatus 1 includes communication control I / F units 11 and 12, a storage unit 13, and a control unit 14.
  • the communication control I / F unit 11 is an interface that controls communication with the terminal device 2.
  • the communication control I / F unit 12 is an interface that controls communication with the vehicle device 3.
  • the storage unit 13 corresponds to a storage device such as a nonvolatile semiconductor memory element such as a flash memory (Flash Memory) or an FRAM (registered trademark) (Ferroelectric Random Access Memory).
  • the storage unit 13 includes a filtering condition storage unit 131 and a log storage unit 132.
  • the filtering condition storage unit 131 stores a plurality of patterns of conditions for selecting (filtering) control commands operated from the outside. That is, the filtering condition storage unit 131 stores conditions used for detecting malicious control commands. For example, the filtering condition storage unit 131 is downloaded from the download source of the control application 21 at the timing when the control application 21 is downloaded to the terminal device 2. The data structure of the filtering condition storage unit 131 will be described later.
  • the log storage unit 132 stores a control command operated from the outside as a log.
  • the log storage unit 132 is stored by a filtering unit 142 described later.
  • the data structure of the log storage unit 132 will be described later.
  • the control unit 14 has an internal memory for storing programs and control data that define various processing procedures, and executes various processes using these. And the control part 14 respond
  • the control unit 14 includes a vehicle state detection unit 141, a filtering unit 142, an execution processing unit 143, and an abnormality processing unit 144.
  • the vehicle state detection unit 141 detects the vehicle state of the vehicle device 3. For example, the vehicle state detection unit 141 determines whether the vehicle is stopped, parked, accelerated, decelerated, left-turned, or right-turned as the vehicle state. Etc. are detected.
  • the filtering unit 142 refers to the log and vehicle state stored in the log storage unit 132 based on the filtering condition stored in the filtering condition storage unit 131, and filters the control command operated from the outside.
  • the filtering unit 142 includes a first determination unit 142a, an analysis unit 142b, an additional condition determination unit 142c, and a second determination unit 142d.
  • FIG. 3 is a diagram illustrating an example of a data structure of the filtering condition storage unit according to the embodiment.
  • the filtering condition storage unit 131 stores a first condition 131b and an additional condition 131c as sequence conditions in association with a command ID (identification) 131a.
  • the filtering condition storage unit 131 stores the second condition 131d as the vehicle condition in association with the command ID 131a.
  • the filtering condition storage unit 131 stores the execution permission / refusal 131e in association with the command ID 131a.
  • the command meaning 131f in FIG. 3 is a supplementary explanation indicating what the command has.
  • the command ID 131a is an identifier of a control command operated from the terminal device 2.
  • the command ID 131a is different for each operation.
  • a condition that may be malicious is set for the command indicated by the command ID 131a.
  • the additional condition 131c as a sequence condition is a condition related to the first condition 131b.
  • the additional condition 131c is set with a condition that may be malicious regarding the command sequence (behavior) indicated by the command ID 131a.
  • the execution permission / rejection 131e is permission / rejection of execution of the command indicated by the command ID 131a.
  • the execution permission / refusal 131e is set to either “OK” indicating that execution is permitted or “NG” indicating that execution is not permitted.
  • the filtering unit 142 which will be described later, sets the execution permission / rejection 131e when the additional condition 131c is set and the command indicated by the command ID 131a satisfies all of the first condition 131b, the additional condition 131c, and the second condition 131d. Perform the appropriate process.
  • the filtering unit 142 executes a process according to the execution permission / refusal 131e if the command indicated by the command ID 131a satisfies all of the first condition 131b and the second condition 131d. . For example, if the execution permission / refusal 131e is “NG”, the execution is stopped.
  • the vehicle device 3 is not “not parked” (parking If so, execution proceeds. In other words, even if the “move seat position forward or backward” command is accepted “more than 3 times / second”, it is safe to move the seat position if the vehicle is parked. It is determined that the command is not.
  • the command meaning 131f is interpreted as “handle movement”.
  • the conditions of the sequence “moving the steering angle 45 degrees to the left and right” is stored as the first condition 131b, and “3 times / second or more” is stored as the additional condition 131c.
  • the condition of the vehicle state “when traveling at a speed of 4 km / h or more” is stored as the second condition 131d. “NG” is stored as the execution permission / refusal 131e.
  • the command “640” indicated by the command ID 131a is a command “moves the steering angle 45 degrees to the left and right” and is accepted “3 times / second or more”, and the vehicle device 3 “runs at a speed of 4 km / h or more” If "time", execution is aborted.
  • the command “move the steering angle 45 degrees to the left and right” is accepted “3 times / second or more”
  • the command is a malicious command on the condition that the vehicle is traveling at a speed of 4 km / h or more. It is judged that. This is because it is dangerous to move the steering angle of the steering wheel 45 degrees to the left and right many times while the vehicle is traveling at 4 km / h or more.
  • first condition 131b, the additional condition 131c, and the second condition 131d stored in the filtering condition storage unit 131 illustrated in FIG. 3 are examples, and are not limited thereto.
  • FIG. 4 is a diagram illustrating an example of a data structure of the log storage unit according to the embodiment.
  • the log storage unit 132 stores a command reception time 132a, a command ID 132b, a data length 132c, and a data body 132d in association with each other.
  • the command ID meaning 132e and the command meaning 132f in FIG. 4 are supplementary explanations indicating the intent of the entire command, and are not actual data structures.
  • the command reception time 132a is the time when the control command operated from the terminal device 2 is received.
  • the command ID 132 b is an identifier of a control command operated from the terminal device 2 and corresponds to the command ID 131 a in the filtering condition storage unit 131.
  • a command ID included in the control command is set in the command ID 132b.
  • the data length 132c is the length (bytes) of data in the control command.
  • the data body 132d is a body of data in the control command. In the data body 132d, the body of data included in the control command is set.
  • the data body means a detailed processing operation, and is represented by an operand, for example.
  • command reception time 132a is “20131130, 15: 32: 32.177” (January 30, 2013, 15:32:32 seconds 177 milliseconds)
  • “639” is stored as the command ID 132b.
  • “2” (bytes) is stored as the data length 132c
  • “0000” is stored as the data body 132d. This means an operation of “sheet movement” and “frontmost movement”.
  • the first determination unit 142a determines whether or not the control command operated from the terminal device 2 satisfies the first condition. For example, the first determination unit 142a determines whether or not the command ID 131a of the received control command is set in the filtering condition storage unit 131. If the command ID 131a of the received control command is set, the first determination unit 142a determines whether the control command satisfies the first condition 131b corresponding to the set command ID 131a.
  • the filtering condition storage unit 131 shown in FIG. Assume that the command ID of the received control command is “639” (sheet movement) and the text of the control command data is “0000” indicating “frontmost movement”. Then, since the first condition 131b corresponding to the command ID 131a of “639” is “move the sheet position forward or backward”, the first determination unit 142a sets “move frontmost” as the text of the data. It is determined that the control command satisfies the first condition 131b. If the control command operated from the terminal device 2 does not satisfy all the first conditions 131b shown in FIG. 3, the first determination unit 142a corresponds to the control command to the execution processing unit 143 described later. Execute the process. This may be configured such that the execution processing unit 143 is not executed unless any of the conditions is satisfied, depending on the setting contents of the conditions in the filtering condition storage unit 131.
  • the analysis unit 142b analyzes whether the control command includes content including an additional condition related to the first condition. For example, the analysis unit 142b analyzes whether the additional condition 131c corresponding to the command ID 131a of the control command that satisfies the first condition 131b is set in the filtering condition storage unit 131. If the additional condition 131c is set, the analysis unit 142b analyzes that the control command includes the additional condition 131c related to the first condition 131b. On the other hand, if the additional condition 131c is not set, the analysis unit 142b analyzes that the control command has contents that do not include the additional condition 131c related to the first condition 131b.
  • the filtering condition storage unit 131 shown in FIG. If the command ID 131a of the control command that satisfies the first condition 131b is “639” or “640”, the additional condition 131c is set, and therefore the additional condition 131c related to the first condition 131b is set. It is analyzed that the content contains. On the other hand, if the command ID 131a of the control command satisfying the first condition 131b is “641” to “646”, the additional condition 131c is not set, so that the control command is added related to the first condition 131b. It is analyzed that the content does not include the condition 131c.
  • the additional condition determination unit 142c determines whether or not the control command satisfies the additional condition when it is analyzed that the control command includes the additional condition related to the first condition. For example, the additional condition determination unit 142c uses a log stored in the log storage unit 132, and the control command analyzed by the analysis unit 142c as content including the additional condition 131c is a control command that has been operated in the past. It is determined whether or not the additional condition 131c is satisfied in the relationship.
  • the additional condition determination unit 142c refers to the log storage unit 132 retroactively, and the command ID is “639”. Since the control commands satisfying the first condition 131b are “... 14: 20: 0.499” and “... 14: 20: 00.000” three times or more per second, the additional condition determination unit 142c Determines that the additional condition 131c “3 times / second or more” is satisfied. If all the control commands shown in FIG. 3 do not satisfy the additional condition 131c, the additional condition determining unit 142c causes the execution processing unit 143 described later to execute processing corresponding to the control command. This may be configured such that the execution processing unit 143 is not executed unless any of the conditions is satisfied, depending on the setting contents of the conditions in the filtering condition storage unit 131.
  • the second determination unit 142d determines whether the control command satisfies the second condition. For example, the second determination unit 142d uses the vehicle state detected by the vehicle state detection unit 141, and the control condition determined to satisfy the additional condition 131c is the second condition 131d to which the filtering condition storage unit 131 corresponds. It is determined whether or not the above is satisfied.
  • the filtering condition storage unit 131 shown in FIG. Assume that the command ID of the received control command is “639” (sheet movement) and the text of the control command data is “0000” indicating “frontmost movement”. Further, it is assumed that the vehicle state detected by the vehicle state detection unit 141 is “other than parked”. Then, the second determination unit 142d determines that the second condition 131d corresponding to the command ID 131a of “639” is “non-parking” and the vehicle state detected by the vehicle state detection unit 141 is “parked”. Since it is “other than”, it is determined that the control command “639” satisfies the second condition 131d. If all the control commands shown in FIG.
  • the second determination unit 142d causes the execution processing unit 143 described later to execute a process corresponding to the control command. This may be configured such that the execution processing unit 143 is not executed unless any of the conditions is satisfied, depending on the setting contents of the conditions in the filtering condition storage unit 131.
  • the second determination unit 142d determines that the control command satisfies the second condition 131d when the analysis unit 142b analyzes that the control command includes the additional condition 131c related to the first condition 131b. It is determined whether or not. If the control command does not satisfy the second condition 131d, the second determination unit 142d causes the execution processing unit 143 described later to execute processing corresponding to the control command. This may be configured such that the execution processing unit 143 is not executed unless any of the conditions is satisfied, depending on the setting contents of the conditions in the filtering condition storage unit 131.
  • the execution processing unit 143 executes the control command on the vehicle device 3. For example, the execution processing unit 143 outputs a control command to the corresponding vehicle device 3. This may be configured such that the execution processing unit 143 is not executed unless any of the conditions is satisfied, depending on the setting contents of the conditions in the filtering condition storage unit 131.
  • the abnormality processing unit 144 stops the execution of the control command when it is determined that the control command satisfies the second condition. In addition, the abnormality processing unit 144 outputs that the control command is abnormal. As an example, the abnormality processing unit 144 outputs a warning signal indicating that the control command operated from the terminal device 2 is abnormal to a warning lamp connected to the vehicle device 3. As another example, the abnormality processing unit 144 displays a warning text indicating that the control command operated from the terminal device 2 is abnormal on a monitor connected to the information processing device 1.
  • FIG. 5 is a flowchart illustrating the data filtering process according to the embodiment.
  • the filtering unit 142 determines whether a control command operated from the terminal device 2 has been received (step S11). When it is determined that the control command has not been received (step S11; No), the filtering unit 142 repeats the determination process until the control command is received.
  • the filtering unit 142 determines whether or not the received control command is valid (step S12). For example, the filtering unit 142 determines whether or not the command ID of the received control command is a predetermined executable command ID. Further, the filtering unit 142 determines whether the data body included in the received control command is an executable data body corresponding to the command ID.
  • the filtering unit 142 causes the abnormality processing unit 144 to output a warning (step S13). For example, the abnormality processing unit 144 stops execution of the control command. Then, the abnormality processing unit 144 outputs a warning signal indicating that the control command is abnormal to the warning lamp. Then, the abnormality processing unit 144 ends the data filtering process.
  • the filtering unit 142 records the content of the received control command in the log storage unit 132 (step S14).
  • the first determination unit 142a determines whether or not the command ID 131a for the received control command is set in the filtering condition storage unit 131 (step S15). When the command ID 131a for the control command is not set (step S15; No), the first determination unit 142a determines that the command is not a malicious control command, and causes the execution processing unit 143 to execute the control command (step S16). Then, the first determination unit 142a ends the data filtering process.
  • the first determination unit 142a performs the following processing. That is, the first determination unit 142a determines whether or not the first condition 131b for the control command is set in the filtering condition storage unit 131 (step S17). When the first condition 131b for the control command is not set (step S17; No), the first determination unit 142a proceeds to step S23 to determine whether or not to execute.
  • the first determination unit 142a determines whether or not the control command satisfies the first condition 131b (step S17). S18). For example, the first determination unit 142a refers to the data body included in the control command and determines whether or not the control command matches the first condition 131b.
  • step S18 When the control command does not satisfy the first condition 131b (step S18; No), the first determination unit 142a determines that the control command is not a malicious control command, and proceeds to step S16 to execute the control command. . Then, the first determination unit 142a ends the data filtering process.
  • step S18 when the control command satisfies the first condition 131b (step S18; Yes), the analysis unit 142b determines whether or not the additional condition 131c for the control command is set in the filtering condition storage unit 131 ( Step S19). When the additional condition 131c for the control command is not set (step S19; No), the analysis unit 142b proceeds to step S21 so as to determine the second condition.
  • the additional condition determining unit 142c determines whether or not the control command satisfies the additional condition 131c (step S20).
  • the additional condition determination unit 142c refers to the log stored in the log storage unit 132, and determines whether the control command operated this time satisfies the additional condition 131c in relation to the control command operated in the past. judge.
  • the additional condition 131c for the control command is “3 times / second or more”. If the content of the control command is stored in the log storage unit 132 three or more times per second, it is determined that the additional condition 131c is satisfied. On the other hand, if the content of the control command is not stored in the log storage unit 132 three or more times per second, it is determined that the additional condition 131c is not satisfied.
  • step S20 If the control command does not satisfy the additional condition 131c (step S20; No), the additional condition determination unit 142c determines that the control command is not a malicious control command, and proceeds to step S16 to execute the control command. Then, the additional condition determination unit 142c ends the data filtering process.
  • step S20 when the control command satisfies the additional condition 131c (step S20; Yes), the second determination unit 142d determines whether or not the second condition 131d for the control command is set in the filtering condition storage unit 131. Determination is made (step S21). When the second condition 131d for the control command is not set (step S21; No), the second determination unit 142d proceeds to step S23 to determine whether or not to execute.
  • the second determination unit 142d determines whether or not the control command satisfies the second condition 131d (step S21). S22). For example, the second determination unit 142d uses the vehicle state detected by the vehicle state detection unit 141 to determine whether or not the control command satisfies the second condition 131d.
  • step S22 When the control command does not satisfy the second condition 131d (step S22; No), the second determination unit 142d determines that the control command is not a malicious control command, and proceeds to step S16 to execute the control command. . Then, the second determination unit 142d ends the data filtering process.
  • the second determination unit 142d determines whether or not the execution permission / refusal 131e for the control command is “NG” (step S23). .
  • the second determination unit 142d determines that the control command is a malicious control command, and causes the abnormality processing unit 144 to output a warning ( Step S24). For example, the abnormality processing unit 144 stops execution of the control command. Then, the abnormality processing unit 144 outputs a warning signal indicating that the control command is abnormal to the warning lamp. Then, the abnormality processing unit 144 ends the data filtering process.
  • step S23 determines that the execution permission / refusal 131e for the control command is not “NG” (step S23; No).
  • the second determination unit 142d determines that the control command is not a malicious control command, and proceeds to step S16 to execute the control command. Transition. Then, the second determination unit 142d ends the data filtering process.
  • the information processing apparatus 1 that executes the control command operated from the terminal device 2 has the additional condition related to the first condition when the control command satisfies the first condition. Analyzes whether the content contains Then, when it is analyzed that the control command has contents including an additional condition related to the first condition, the information processing apparatus 1 determines whether the control command satisfies the additional condition. Then, when it is determined that the additional condition is satisfied, the information processing apparatus 1 determines whether the control command satisfies the second condition. Then, the information processing apparatus 1 executes processing according to the determination as to whether or not the control command satisfies the second condition.
  • the information processing apparatus 1 uses the additional condition related to the first condition and the condition including the execution history of the command using the second condition for the control command transmitted from the outside. Since the determination process is executed, the reliability of execution of the control command can be improved. For example, when the additional condition is a condition indicating the number of control commands satisfying the first condition in a predetermined time, the information processing apparatus 1 can verify the validity of the control command in consideration of the sequence of the control command. The reliability of the command can be improved. In addition, the information processing apparatus 1 determines whether the terminal device 2 itself is valid or not, but if the control application 21 installed in the terminal device 2 has been tampered with, the information processing apparatus 1 can prevent the vehicle from being threatened as a result of tampering. Can be protected.
  • the information processing apparatus 1 stops the execution of the control command when it is determined that the control command satisfies the second condition. According to this configuration, the information processing apparatus 1 can suppress execution of a malicious control command, for example.
  • the information processing apparatus 1 uses the control command history stored every time the control command operated from the terminal device 2 is received, and controls the control command operated this time in the past. It is determined whether or not the additional condition is satisfied in relation to the command. According to this configuration, the information processing apparatus 1 can verify the legitimacy of the control command operated this time by using the history of the control command, so that the reliability of the control command can be improved. .
  • the first condition, the additional condition, and the second condition are conditions under which the control command is considered malicious.
  • the information processing apparatus 1 can suppress execution of a control command that is regarded as malicious using the first condition, the additional condition, and the second condition. Furthermore, it is possible to set only the conditions for which the control command is considered to be good intentions in the first condition, the additional condition, and the second condition, and to suppress the execution of the control command that does not meet these conditions.
  • the driver who drives the vehicle brings the terminal device 2 into the vehicle and uses the terminal device 2 as a vehicle control panel via the control application 21.
  • the vehicle here means a small electric vehicle, but is not limited thereto, and may be a vehicle that travels on a road such as an automobile, a light vehicle, and a motorbike. Moreover, a rail vehicle may be sufficient.
  • the information processing apparatus 1 selects a control command operated from the terminal apparatus 2 based on a condition used for detecting a malicious control command stored in the filtering condition storage unit 131.
  • the information processing device 1 is not limited to this, and after confirming the validity of the terminal device 2 that transmits the control command, the control command is selected using the conditions stored in the filtering condition storage unit.
  • the information processing device 1 can protect the vehicle from the threat of the malicious terminal device 2 itself.
  • the information processing apparatus 1 has functions such as a vehicle state detection unit 141, a filtering unit 142, an execution processing unit 143, and an abnormality processing unit 144 described above on a known personal computer, workstation, or the like. It can be realized by mounting.
  • each component of the illustrated apparatus does not necessarily need to be physically configured as illustrated.
  • the specific mode of device distribution / integration is not limited to that shown in the figure, and all or part of the device is functionally or physically distributed / integrated in an arbitrary unit according to various loads or usage conditions. Can be configured.
  • the analysis unit 142b and the additional condition determination unit 142c may be integrated as one unit.
  • the storage unit 13 may be connected as an external device of the information processing apparatus 1 via a network.
  • FIG. 6 is a diagram illustrating an example of a computer that executes a data filtering program.
  • the computer 200 includes a CPU 203 that executes various arithmetic processes, an input device 215 that receives input of data from the user, and a display control unit 207 that controls the display device 209.
  • the computer 200 also includes a drive device 213 that reads a program or the like from a storage medium, and a communication control unit 217 that exchanges data with another computer via a network.
  • the computer 200 also includes a memory 201 that temporarily stores various types of information and an HDD 205.
  • the memory 201, CPU 203, HDD 205, display control unit 207, drive device 213, input device 215, and communication control unit 217 are connected by a bus 219.
  • the drive device 213 is a device for the removable disk 211, for example.
  • the HDD 205 stores a data filtering program 205a and data filtering processing related information 205b.
  • the CPU 203 reads the data filtering program 205a, expands it in the memory 201, and executes it as a process. Such a process corresponds to each functional unit of the information processing apparatus 1.
  • the data filtering processing related information 205b corresponds to the filtering condition storage unit 131 and the log storage unit 132.
  • the removable disk 211 stores information such as the data filtering program 205a.
  • the data filtering program 205a is not necessarily stored in the HDD 205 from the beginning.
  • the program is stored in a “portable physical medium” such as a flexible disk (FD), a CD-ROM, a DVD disk, a magneto-optical disk, or an IC card inserted into the computer 200. Then, the computer 200 may read and execute the data filtering program 205a from these.
  • a “portable physical medium” such as a flexible disk (FD), a CD-ROM, a DVD disk, a magneto-optical disk, or an IC card inserted into the computer 200.
  • the computer 200 may read and execute the data filtering program 205a from these.

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Transportation (AREA)
  • Debugging And Monitoring (AREA)
  • Traffic Control Systems (AREA)

Abstract

 情報処理装置(1)が、端末装置(2)から操作された制御命令が第1の条件を満たす場合、制御命令が第1の条件に関連した追加条件を含む内容であるかを解析する解析部(142b)と、制御命令が第1の条件に関連した追加条件を含む内容であると解析された場合、制御命令が追加条件を満たすか否かを判定する追加条件判定部(142c)と、追加条件を満たすと判定された場合、制御命令が第2の条件を満たすか否かを判定する第2の判定部(142d)と、第2の判定部の判定に応じた処理を実行する処理部(143、144)と、を有するので、外部から送信された制御命令に関わる実行の信頼性を向上させることができる。

Description

情報処理装置およびデータフィルタリングプログラム
 本発明は、情報処理装置およびデータフィルタリングプログラムに関する。
 従来から、異なるネットワーク間の接続装置としての機能を有する車載装置が存在することが知られている(例えば、特許文献1参照)。かかる技術では、車載装置は、例えば携帯端末より、車載装置を制御するための操作内容を示す操作情報と携帯端末を特定する情報とを含む制御情報を受信する。そして、車載装置は、制御情報を送信してきた携帯端末が、キーレスエントリが認められている携帯端末であることを条件として、操作情報で特定される操作を受け付けるか否かを判別し、受け付ける場合、操作情報に従った処理を実行する。
特開2013-148435号公報
 しかしながら、従来の車載装置では、外部から送信されたデータが悪意のあるデータであっても、送信元が認められたデータであればデータに従った処理を実行してしまうという問題がある。例えば、従来技術では、車載装置は、操作情報と携帯端末を特定する情報とを含む制御情報を送信してきた携帯端末が、キーレスエントリが認められている携帯端末であれば、操作情報で特定される操作が許可されている機能を、操作情報に従って実行する。したがって、車載装置は、操作情報が悪意を有する情報であっても、送信元の携帯端末が認められた操作情報であれば、操作情報で特定される操作が許可されている機能を実行してしまう。
 1つの側面では、外部から送信されたデータに関わる実行の信頼性を向上させることを目的とする。
 1つの案では、情報処理装置は、端末装置から操作された制御命令を実行する情報処理装置において、端末装置から操作された制御命令が第1の条件を満たす場合、前記制御命令が前記第1の条件に関連した追加条件を含む内容であるかを解析する解析部と、前記解析部によって前記制御命令が前記第1の条件に関連した追加条件を含む内容であると解析された場合、前記制御命令が追加条件を満たすか否かを判定する追加条件判定部と、前記追加条件判定部によって追加条件を満たすと判定された場合、前記制御命令が第2の条件を満たすか否かを判定する第2の判定部と、前記第2の判定部の判定に応じた処理を実行する処理部と、を有する。
 1つの態様によれば、外部から送信されたデータに関わる実行の信頼性を向上させることができる。
図1は、実施例に係るデータフィルタリングシステムの構成を示すブロック図である。 図2は、実施例に係る情報処理装置の構成を示すブロック図である。 図3は、実施例に係るフィルタリング条件記憶部のデータ構造の一例を示す図である。 図4は、実施例に係るログ記憶部のデータ構造の一例を示す図である。 図5は、実施例に係るデータフィルタリング処理のフローチャートを示す図である。 図6は、データフィルタリングプログラムを実行するコンピュータの一例を示す図である。
 以下に、本願の開示する情報処理装置およびデータフィルタリングプログラムの実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
[データフィルタリングシステムの構成]
 図1は、実施例に係るデータフィルタリングシステムの構成を示すブロック図である。図1に示すように、データフィルタリングシステム9は、情報処理装置1と、端末装置2と、車両機器3とを有する。データフィルタリングシステム9は、端末装置2と情報処理装置1との間で通信接続を確立し、情報処理装置1から車両機器3へ種々の通信を実行する。端末装置2と情報処理装置1との間の通信接続には、例えば、Bluetooth(登録商標)のような近距離無線通信による接続が挙げられる。
 車両機器3は、車両に搭載された機器であり、例えば、ドライバーズシート、ハンドル、アクセル、ブレーキおよびメータ等が含まれる。
 端末装置2は、操作機能と通信機能を備え、例えば、携帯型コンピュータを示すタブレット、スマートフォン、携帯電話、PHS(Personal Handyphone System)、PDA(Personal Digital Assistance)等の携帯用の端末装置に対応する。すなわち、端末装置2は、通信機能を備え、車両に持ち込み可能な端末装置であれば良い。
 端末装置2には、制御アプリ21がインストールされる。制御アプリ21は、車両機器3を制御するためのアプリケーションである。一例として、制御アプリ21は、ドライバーズシートを制御するアプリケーションであったり、ハンドルを制御するアプリケーションであったり、アクセルを制御するアプリケーションであったりする。つまり、データフィルタリングシステム9では、例えば車両を運転する運転者が、車両に端末装置2を持ち込んで、端末装置2を、制御アプリ21を介して車両のコントロールパネルとして利用する。運転者は、例えば、端末装置2に搭載された操作ボタンにより、制御アプリ21を起動する。制御アプリ21が起動されると、操作に応じた制御指示を情報処理装置1へ出力する。ここで、制御アプリ21は、例えば、車両を生産した正当なメーカーのサイトからダウンロードされる。ところが、この制御アプリ21が、ウィルス感染して、改竄される場合がある。制御アプリ21が改竄されると、例えば、改竄された制御アプリ21は、改竄の内容に応じて、悪意のあるデータを車両機器3に対して実行するおそれがある。そこで、制御アプリ21が改竄された場合に、後述する情報処理装置1は、悪意のあるデータをフィルタリング(選別)する。なお、制御アプリ21は、運転者が端末装置2に搭載された操作ボタンにより起動されるものと説明したが、これに限定されない。制御アプリ21は、端末装置2の電源がONされたタイミングでメモリに常駐するようにしても良い。
 情報処理装置1は、車両の外部から操作されたデータを車両に実行する際、データのシーケンスと車両の状態とを検証して、悪意のあるデータをフィルタリングする。ここでいうデータのシーケンスとは、例えば、操作されたデータの過去から現在までの振る舞いのことをいう。なお、車両の外部から操作されたデータを、以降では、「制御コマンド」というものとする。
[情報処理装置の構成]
 図2は、実施例に係る情報処理装置の構成を示すブロック図である。図2に示すように、情報処理装置1は、通信制御I/F部11,12と、記憶部13と、制御部14とを有する。通信制御I/F部11は、端末装置2との通信を制御するインタフェースである。通信制御I/F部12は、車両機器3との通信を制御するインタフェースである。
 記憶部13は、例えばフラッシュメモリ(Flash Memory)やFRAM(登録商標)(Ferroelectric Random Access Memory)等の不揮発性の半導体メモリ素子等の記憶装置に対応する。また、記憶部13は、フィルタリング条件記憶部131と、ログ記憶部132とを有する。
 フィルタリング条件記憶部131は、外部から操作された制御コマンドを選別(フィルタリング)する条件を複数パターン記憶する。すなわち、フィルタリング条件記憶部131は、悪意のある制御コマンドを検知するために用いられる条件を記憶する。フィルタリング条件記憶部131は、例えば、制御アプリ21が端末装置2にダウンロードされるタイミングで、制御アプリ21のダウンロード元からダウンロードされる。なお、フィルタリング条件記憶部131のデータ構造は、後述する。
 ログ記憶部132は、外部から操作された制御コマンドをログとして記憶する。ログ記憶部132は、後述するフィルタリング部142によって記憶される。なお、ログ記憶部132のデータ構造は、後述する。
 制御部14は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。そして、制御部14は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路の電子回路に対応する。または、制御部14は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路に対応する。また、制御部14は、車両状態検知部141と、フィルタリング部142と、実行処理部143と、異常処理部144とを有する。
 車両状態検知部141は、車両機器3の車両状態を検知する。例えば、車両状態検知部141は、車両状態として、車両が停車中であるか、駐車中であるか、加速中であるか、減速中であるか、左折中であるか、右折中であるか等を検知する。
 フィルタリング部142は、フィルタリング条件記憶部131に記憶されたフィルタリング条件に基づいて、ログ記憶部132に記憶されたログおよび車両状態を参照して、外部から操作された制御コマンドをフィルタリングする。また、フィルタリング部142は、第1の判定部142aと、解析部142bと、追加条件判定部142cと、第2の判定部142dとを有する。
 ここで、フィルタリング条件記憶部131のデータ構造を、図3を参照して説明する。図3は、実施例に係るフィルタリング条件記憶部のデータ構造の一例を示す図である。図3に示すように、フィルタリング条件記憶部131は、シーケンスの条件として第1の条件131bおよび追加条件131cを、コマンドID(identification)131aと対応付けて記憶する。また、フィルタリング条件記憶部131は、車両状態の条件として第2の条件131dを、コマンドID131aと対応付けて記憶する。さらに、フィルタリング条件記憶部131は、実行許否131eをコマンドID131aと対応付けて記憶する。なお、図3のコマンドの意味131fは、このコマンドがどんな意図を持ったものかを示す補足説明である。
 コマンドID131aは、端末装置2から操作された制御コマンドの識別子である。コマンドID131aは、操作毎に異なる。シーケンスの条件としての第1の条件131bには、コマンドID131aが示すコマンドについて、悪意の可能性がある条件が設定される。シーケンスの条件としての追加条件131cは、第1の条件131bに関連した条件である。追加条件131cには、コマンドID131aが示すコマンドのシーケンス(振る舞い)に関し、悪意の可能性がある条件が設定される。
 車両状態の条件としての第2の条件131dには、車両機器3の状態に関し、コマンドID131aが示すコマンドが受け付けられた時の悪意の可能性がある条件が設定される。実行許否131eは、コマンドID131aが示すコマンドの実行の許否である。例えば、実行許否131eには、実行が許されることを示す「OK」、実行が許されないことを示す「NG」のどちらか一方が設定される。なお、後述するフィルタリング部142は、追加条件131cが設定されている場合、コマンドID131aが示すコマンドが、第1の条件131b、追加条件131cおよび第2の条件131dを全て満たせば、実行許否131eに応じた処理を実行する。例えば、実行許否131eが「NG」であれば、実行が中止される。また、フィルタリング部142は、追加条件131cが設定されていない場合、コマンドID131aが示すコマンドが、第1の条件131bおよび第2の条件131dを全て満たせば、実行許否131eに応じた処理を実行する。例えば、実行許否131eが「NG」であれば、実行が中止される。
 一例として、コマンドID131aが「639」である場合、コマンドの意味131fとして「シート移動」と記憶している。シーケンスの条件について、第1の条件131bとして「シート位置を前又は後に動かすこと」、追加条件131cとして「3回/秒以上」と記憶している。車両状態の条件について、第2の条件131dとして「駐車中以外」と記憶している。実行許否131eとして「NG」と記憶している。すなわち、コマンドID131aが示す「639」のコマンドが、「シート位置を前又は後に動かす」コマンドであって、「3回/秒以上」受け付けられ、車両機器3が「駐車中以外」であれば、当該コマンドの実行が中止される。つまり、「シート位置を前又は後に動かす」コマンドが「3回/秒以上」受け付けられていれば、車両が走行していることを条件に、当該コマンドが悪意のあるコマンドであると判断される。車両が動作中にシート位置が何度も移動すると、危険であるからである。一方、「639」のコマンドが、「シート位置を前又は後に動かす」コマンドであっても、「3回/秒以上」受け付けられていなければ、実行が進行される。つまり、「シート位置を前又は後に動かす」コマンドが「3回/秒以上」受け付けられていなければ、シート位置が移動しても危険ではないので、当該コマンドが悪意のあるコマンドでないと判断される。また、「639」のコマンドが、「シート位置を前又は後に動かす」コマンドであって、「3回/秒以上」受け付けられていても、車両機器3が「駐車中以外」でなければ(駐車中であれば)、実行が進行される。つまり、「シート位置を前又は後に動かす」コマンドが「3回/秒以上」受け付けられていても、車両が駐車していれば、シート位置が移動しても安全であるので、当該コマンドが悪意のあるコマンドでないと判断される。
 他の例として、コマンドID131aが「640」である場合、コマンドの意味131fとして「ハンドル移動」と解釈している。シーケンスの条件について、第1の条件131bとして「ハンドル舵角を左右に45度動かすこと」、追加条件131cとして「3回/秒以上」と記憶している。車両状態の条件について、第2の条件131dとして「時速4km以上での走行時」と記憶している。実行許否131eとして「NG」と記憶している。すなわち、コマンドID131aが示す「640」のコマンドが、「ハンドル舵角を左右に45度動かす」コマンドであって、「3回/秒以上」受け付けられ、車両機器3が「時速4km以上での走行時」であれば、実行が中止される。つまり、「ハンドル舵角を左右に45度動かす」コマンドが「3回/秒以上」受け付けられていれば、車両が時速4km以上で走行中であることを条件に、当該コマンドが悪意のあるコマンドであると判断される。車両が時速4km以上で走行中にハンドル舵角を左右に45度に何度も移動すると、危険であるからである。一方、「640」のコマンドが、「ハンドル舵角を左右に45度動かす」コマンドであっても、「3回/秒以上」受け付けられていなければ、実行が進行される。つまり、「ハンドル舵角を左右に45度動かす」コマンドが「3回/秒以上」受け付けられていなければ、当該コマンドが悪意のあるコマンドでないと判断される。また、「640」のコマンドが、「ハンドル舵角を左右に45度動かす」コマンドであって、「3回/秒以上」受け付けられていても、車両機器3が「時速4km以上での走行時」でなければ、実行が進行される。つまり、「ハンドル舵角を左右に45度動かす」コマンドが「3回/秒以上」受け付けられていても、車両が時速4km以上で走行中でなければ、当該コマンドが悪意のあるコマンドでないと判断される。これは車庫入れやクランクでの切り返しを想定したものである。
 なお、図3で示したフィルタリング条件記憶部131に記憶された第1の条件131b、追加条件131cおよび第2の条件131dは、例示であり、これに限定されるものでない。
 次に、ログ記憶部132のデータ構造を、図4を参照して説明する。図4は、実施例に係るログ記憶部のデータ構造の一例を示す図である。図4に示すように、ログ記憶部132は、コマンド受信時刻132a、コマンドID132b、データ長132cおよびデータ本文132dを対応付けて記憶する。なお、図4のコマンドIDの意味132eおよびコマンドの意味132fは、このコマンド全体の意図を示す補足説明であり、データ構造の実体ではない。コマンド受信時刻132aは、端末装置2から操作された制御コマンドが受信された時刻である。コマンドID132bは、端末装置2から操作された制御コマンドの識別子であり、フィルタリング条件記憶部131のコマンドID131aに対応する。コマンドID132bには、制御コマンドに含まれるコマンドIDが設定される。データ長132cは、制御コマンド内のデータの長さ(バイト)である。データ本文132dは、制御コマンド内のデータの本文である。データ本文132dには、制御コマンドに含まれるデータの本文が設定される。なお、データ本文とは、詳細な処理動作のことをいい、例えばオペランドで表される。
 一例として、コマンド受信時刻132aが「20131130,15:32:32.177」(2013年11月30日,15時32分32秒177ミリ秒)である場合、コマンドID132bとして「639」と記憶している。データ長132cとして「2」(バイト)、データ本文132dとして「0000」と記憶している。これは「シート移動」で「最前部移動」という動作を意味している。
 図2に戻って、第1の判定部142aは、端末装置2から操作された制御コマンドが第1の条件を満たすか否かを判定する。例えば、第1の判定部142aは、フィルタリング条件記憶部131に、受信された制御コマンドのコマンドID131aが設定されているか否かを判定する。第1の判定部142aは、受信された制御コマンドのコマンドID131aが設定されていれば、当該制御コマンドが、設定されたコマンドID131aに対応する第1の条件131bを満たすか否かを判定する。
 一例として、図3で示すフィルタリング条件記憶部131を用いて説明する。受信された制御コマンドのコマンドIDが「639」(シート移動)であって、当該制御コマンドのデータの本文が「最前部移動」であることを示す「0000」であったとする。すると、第1の判定部142aは、「639」のコマンドID131aに対応する第1の条件131bが「シート位置を前又は後に動かすこと」であるので、「最前部移動」をデータの本文とする当該制御コマンドが、第1の条件131bを満たすと判定する。なお、第1の判定部142aは、端末装置2から操作された制御コマンドが図3で示す全ての第1の条件131bを満たさなければ、後述する実行処理部143に、当該制御コマンドに対応する処理を実行させる。これはフィルタリング条件記憶部131の条件の設定内容により、どれかの条件を満たさなければ実行処理部143に実行させない、という構成としてもよい。
 解析部142bは、制御コマンドが第1の条件を満たす場合、当該制御コマンドが第1の条件に関連した追加条件を含む内容であるかを解析する。例えば、解析部142bは、フィルタリング条件記憶部131に、第1の条件131bを満たした制御コマンドのコマンドID131aに対応する追加条件131cが設定されているかを解析する。解析部142bは、追加条件131cが設定されていれば、制御コマンドが第1の条件131bに関連した追加条件131cを含む内容であると解析する。一方、解析部142bは、追加条件131cが設定されていなければ、制御コマンドが第1の条件131bに関連した追加条件131cを含まない内容であると解析する。
 一例として、図3で示すフィルタリング条件記憶部131を用いて説明する。第1の条件131bを満たした制御コマンドのコマンドID131aが「639」や「640」であれば、追加条件131cが設定されているので、当該制御コマンドが第1の条件131bに関連した追加条件131cを含む内容であると解析される。一方、第1の条件131bを満たした制御コマンドのコマンドID131aが「641」~「646」であれば、追加条件131cが設定されていないので、当該制御コマンドが第1の条件131bに関連した追加条件131cを含まない内容であると解析される。
 追加条件判定部142cは、制御コマンドが第1の条件に関連した追加条件を含む内容であると解析された場合、当該制御コマンドが追加条件を満たすか否かを判定する。例えば、追加条件判定部142cは、ログ記憶部132に記憶されたログを用いて、解析部142cによって追加条件131cを含む内容であると解析された制御コマンドが過去に操作された制御コマンドとの関係において当該追加条件131cを満たすか否かを判定する。
 一例として、図3で示すフィルタリング条件記憶部131および図4で示すログ記憶部132を用いて説明する。「20131201、14:20:00.000」の時点であった場合、受信された制御コマンドのコマンドIDが「639」(シート移動)であって、当該制御コマンドのデータの本文が「最前部移動」であることを示す「0000」である。このとき追加条件判定部142cは、過去に遡ってログ記憶部132を参照すると、第1の条件131bを満たす制御コマンド「639」が1秒間に3回以上ないので、追加条件131cを満たさないと判定する。「20131201、14:20:00.499」の時点であった場合も、追加条件判定部142cは、追加条件131cを満たさないと判定する。しかし、「20131201、14:20:00.999」の時点である場合、追加条件判定部142cは、過去に遡ってログ記憶部132を参照すると、コマンドIDが「639」の制御コマンドであって第1の条件131bを満たす制御コマンドが「・・・14:20:00.499」、「・・・14:20:00.000」と1秒間に3回以上あるので、追加条件判定部142cは、追加条件131cである「3回/秒以上」を満たすと判定する。なお、追加条件判定部142cは、図3で示す全ての制御コマンドが追加条件131cを満たさなければ、後述する実行処理部143に、当該制御コマンドに対応する処理を実行させる。これはフィルタリング条件記憶部131の条件の設定内容により、どれかの条件を満たさなければ実行処理部143に実行させない、という構成としてもよい。
 第2の判定部142dは、制御コマンドが追加条件を満たすと判定された場合、当該制御コマンドが第2の条件を満たすか否かを判定する。例えば、第2の判定部142dは、車両状態検知部141によって検知された車両状態を用いて、追加条件131cを満たすと判定された制御コマンドがフィルタリング条件記憶部131の該当する第2の条件131dを満たすか否かを判定する。
 一例として、図3で示すフィルタリング条件記憶部131を用いて説明する。受信された制御コマンドのコマンドIDが「639」(シート移動)であって、当該制御コマンドのデータの本文が「最前部移動」であることを示す「0000」であったとする。また、車両状態検知部141によって検知された車両状態が「駐車中以外」であったとする。すると、第2の判定部142dは、は、「639」のコマンドID131aに対応する第2の条件131dが「駐車中以外」であり、車両状態検知部141によって検知された車両状態が「駐車中以外」であるので、「639」の制御コマンドが第2の条件131dを満たすと判定する。なお、第2の判定部142dは、図3で示す全ての制御コマンドが第2の条件131dを満たさなければ、後述する実行処理部143に、当該制御コマンドに対応する処理を実行させる。これはフィルタリング条件記憶部131の条件の設定内容により、どれかの条件を満たさなければ実行処理部143に実行させない、という構成としてもよい。
 なお、第2の判定部142dは、解析部142bによって制御コマンドが第1の条件131bに関連した追加条件131cを含む内容であると解析された場合に、制御コマンドが第2の条件131dを満たすか否かを判定する。そして、第2の判定部142dは、制御コマンドが第2の条件131dを満たさなければ、後述する実行処理部143に、当該制御コマンドに対応する処理を実行させる。これはフィルタリング条件記憶部131の条件の設定内容により、どれかの条件を満たさなければ実行処理部143に実行させない、という構成としてもよい。
 実行処理部143は、制御コマンドが第1の条件、追加条件または第2の条件を満たさないと判定された場合、当該制御コマンドを車両機器3に対して実行する。例えば、実行処理部143は、制御コマンドを、該当する車両機器3に対して出力する。これはフィルタリング条件記憶部131の条件の設定内容により、どれかの条件を満たさなければ実行処理部143に実行させない、という構成としてもよい。
 異常処理部144は、制御コマンドが第2の条件を満たすと判定された場合、当該制御コマンドの実行を中止する。加えて、異常処理部144は、当該制御コマンドが異常であることを出力する。一例として、異常処理部144は、端末装置2から操作された制御コマンドが異常であることを示す警告信号を、車両機器3に接続された警告ランプに出力する。別の例として、異常処理部144は、端末装置2から操作された制御コマンドが異常であることを示す警告文を、情報処理装置1に接続されたモニタに表示する。
[データフィルタリング処理のフローチャート]
 次に、実施例に係るデータフィルタリング処理のフローチャートを、図5を参照して説明する。図5は、実施例に係るデータフィルタリング処理のフローチャートを示す図である。
 図5に示すように、フィルタリング部142は、端末装置2から操作された制御コマンドを受信したか否かを判定する(ステップS11)。制御コマンドを受信していないと判定した場合(ステップS11;No)、フィルタリング部142は、制御コマンドを受信するまで、判定処理を繰り返す。
 制御コマンドを受信したと判定した場合(ステップS11;Yes)、フィルタリング部142は、受信した制御コマンドが妥当であるか否かを判定する(ステップS12)。例えば、フィルタリング部142は、受信した制御コマンドのコマンドIDが予め定められた実行可能なコマンドIDであるか否かを判定する。また、フィルタリング部142は、受信した制御コマンドに含まれるデータ本文がコマンドIDに対応した実行可能なデータ本文であるか否かを判定する。
 受信した制御コマンドが妥当でないと判定した場合(ステップS12;No)、フィルタリング部142は、異常処理部144に、警告を出力させる(ステップS13)。例えば、異常処理部144は、制御コマンドの実行を中止する。そして、異常処理部144は、制御コマンドが異常であることを示す警告信号を、警告ランプに出力する。そして、異常処理部144は、データフィルタリング処理を終了する。
 一方、受信した制御コマンドが妥当であると判定した場合(ステップS12;Yes)、フィルタリング部142は、受信した制御コマンドの内容を、ログ記憶部132に記録する(ステップS14)。
 続いて、第1の判定部142aは、フィルタリング条件記憶部131に、受信した制御コマンドに対するコマンドID131aが設定されているか否かを判定する(ステップS15)。制御コマンドに対するコマンドID131aが設定されていない場合(ステップS15;No)、第1の判定部142aは、悪意のある制御コマンドでないと判断し、当該制御コマンドを実行処理部143に実行させる(ステップS16)。そして、第1の判定部142aは、データフィルタリング処理を終了する。
 一方、制御コマンドに対するコマンドID131aが設定されている場合(ステップS15;Yes)、第1の判定部142aは、以下の処理を行う。すなわち、第1の判定部142aは、フィルタリング条件記憶部131に、当該制御コマンドに対する第1の条件131bが設定されているか否かを判定する(ステップS17)。制御コマンドに対する第1の条件131bが設定されていない場合(ステップS17;No)、第1の判定部142aは、実行許否を判定すべく、ステップS23に移行する。
 一方、制御コマンドに対する第1の条件131bが設定されている場合(ステップS17;Yes)、第1の判定部142aは、当該制御コマンドが第1の条件131bを満たすか否かを判定する(ステップS18)。例えば、第1の判定部142aは、制御コマンドに含まれるデータ本文を参照し、当該制御コマンドが第1の条件131bに合致するか否かを判定する。
 制御コマンドが第1の条件131bを満たさない場合(ステップS18;No)、第1の判定部142aは、悪意のある制御コマンドでないと判断し、当該制御コマンドを実行させるべく、ステップS16に移行する。そして、第1の判定部142aは、データフィルタリング処理を終了する。
 一方、制御コマンドが第1の条件131bを満たす場合(ステップS18;Yes)、解析部142bは、フィルタリング条件記憶部131に、当該制御コマンドに対する追加条件131cが設定されているか否かを判定する(ステップS19)。制御コマンドに対する追加条件131cが設定されてない場合(ステップS19;No)、解析部142bは、第2の条件を判定させるべく、ステップS21に移行する。
 一方、制御コマンドに対する追加条件131cが設定されている場合(ステップS19;Yes)、追加条件判定部142cは、当該制御コマンドが追加条件131cを満たすか否かを判定する(ステップS20)。例えば、追加条件判定部142cは、ログ記憶部132に記憶されたログを参照し、今回操作された制御コマンドが過去に操作された制御コマンドとの関係において追加条件131cを満たしているか否かを判定する。一例として、制御コマンドに対する追加条件131cが「3回/秒以上」であるとする。制御コマンドの内容がログ記憶部132に、1秒間に3回以上記憶されていれば、追加条件131cが満たされていると判定される。一方、制御コマンドの内容がログ記憶部132に、1秒間に3回以上記憶されていなければ、追加条件131cが満たされていないと判定される。
 そして、制御コマンドが追加条件131cを満たさない場合(ステップS20;No)、追加条件判定部142cは、悪意のある制御コマンドでないと判断し、当該制御コマンドを実行させるべく、ステップS16に移行する。そして、追加条件判定部142cは、データフィルタリング処理を終了する。
 一方、制御コマンドが追加条件131cを満たす場合(ステップS20;Yes)、第2の判定部142dは、フィルタリング条件記憶部131に、当該制御コマンドに対する第2の条件131dが設定されているか否かを判定する(ステップS21)。制御コマンドに対する第2の条件131dが設定されてない場合(ステップS21;No)、第2の判定部142dは、実行許否を判定すべく、ステップS23に移行する。
 一方、制御コマンドに対する第2の条件131dが設定されている場合(ステップS21;Yes)、第2の判定部142dは、当該制御コマンドが第2の条件131dを満たすか否かを判定する(ステップS22)。例えば、第2の判定部142dは、車両状態検知部141によって検知された車両状態を用いて、当該制御コマンドが第2の条件131dを満たすか否かを判定する。
 制御コマンドが第2の条件131dを満たさない場合(ステップS22;No)、第2の判定部142dは、悪意のある制御コマンドでないと判断し、当該制御コマンドを実行させるべく、ステップS16に移行する。そして、第2の判定部142dは、データフィルタリング処理を終了する。
 一方、制御コマンドが第2の条件131dを満たす場合(ステップS22;Yes)、第2の判定部142dは、制御コマンドに対する実行許否131eが「NG」であるか否かを判定する(ステップS23)。制御コマンドに対する実行許否131eが「NG」である場合(ステップS23;Yes)、第2の判定部142dは、悪意のある制御コマンドであると判断し、異常処理部144に、警告を出力させる(ステップS24)。例えば、異常処理部144は、制御コマンドの実行を中止する。そして、異常処理部144は、制御コマンドが異常であることを示す警告信号を、警告ランプに出力する。そして、異常処理部144は、データフィルタリング処理を終了する。
 一方、制御コマンドに対する実行許否131eが「NG」でない場合(ステップS23;No)、第2の判定部142dは、悪意のある制御コマンドでないと判断し、当該制御コマンドを実行させるべく、ステップS16に移行する。そして、第2の判定部142dは、データフィルタリング処理を終了する。
[実施例の効果]
 上記実施例によれば、端末装置2から操作された制御命令を実行する情報処理装置1は、当該制御コマンドが第1の条件を満たす場合、当該制御コマンドが第1の条件に関連した追加条件を含む内容であるかを解析する。そして、情報処理装置1は、制御コマンドが第1の条件に関連した追加条件を含む内容であると解析された場合、制御コマンドが追加条件を満たすか否かを判定する。そして、情報処理装置1は、追加条件を満たすと判定された場合、制御コマンドが第2の条件を満たすか否かを判定する。そして、情報処理装置1は、制御コマンドが第2の条件を満たすか否かの判定に応じた処理を実行する。かかる構成によれば、情報処理装置1は、外部から送信された制御コマンドについて、第1の条件に関連した追加条件および第2の条件を用いてコマンドの履歴とその実行する状況を含めた条件判定の処理を実行するので、制御コマンドの実行の信頼性を向上させることが可能となる。例えば、追加条件が第1の条件を満たす制御コマンドの所定時間における回数を示す条件である場合、情報処理装置1は、制御コマンドのシーケンスを考慮して制御コマンドの正当性を検証できるので、制御コマンドの信頼性を向上させることができる。また、情報処理装置1は、端末装置2自体が正当であろうがなかろうが、当該端末装置2にインストールされた制御アプリ21が改竄されてしまった場合に、改竄の結果起こり得る脅威から車両を守ることができる。
 また、上記実施例によれば、情報処理装置1は、制御コマンドが第2の条件を満たすと判定された場合、制御コマンドの実行を中止する。かかる構成によれば、情報処理装置1は、例えば、悪意のある制御コマンドの実行を抑止できる。
 また、上記実施例によれば、情報処理装置1は、端末装置2から操作された制御コマンドを受け取る都度記憶する制御コマンドの履歴を用いて、今回操作された制御コマンドが過去に操作された制御コマンドとの関係において追加条件を満たすか否かを判定する。かかる構成によれば、情報処理装置1は、制御コマンドの履歴を用いることで、今回操作された制御コマンドの正当性を過去に遡って検証できるので、制御コマンドの信頼性を向上させることができる。
 また、上記実施例によれば、第1の条件、追加条件および第2の条件は、制御コマンドが悪意とみなされる条件である。かかる構成によれば、情報処理装置1は、第1の条件、追加条件および第2の条件を用いて、悪意とみなされる制御コマンドの実行を抑止できる。さらに第1の条件、追加条件および第2の条件に、制御コマンドが善意とされる条件のみを設定し、これらの条件に合わない制御コマンドの実行を抑止することもできる。
[その他]
 なお、実施例に係るデータフィルタリングシステム9では、例えば車両を運転する運転者が、車両に端末装置2を持ち込んで、端末装置2を、制御アプリ21を介して車両のコントロールパネルとして利用すると説明した。ここでいう車両とは、小型の電気自動車を意味するが、これに限定されず、自動車、軽車両、原動機付き自転車等の道路上を走行する車であれば良い。また、鉄道車両であっても良い。
 また、実施例に係る情報処理装置1は、フィルタリング条件記憶部131に記憶された悪意のある制御コマンドを検知するために用いられる条件に基づいて、端末装置2から操作された制御コマンドを選別すると説明した。しかしながら、情報処理装置1は、これに限定されず、制御コマンドを送信する端末装置2の正当性を確認してから、フィルタリング条件記憶部に記憶された条件を使って当該制御コマンドを選別するようにしても良い。かかる構成によれば、情報処理装置1は、悪意のある端末装置2自体の脅威から車両を守ることができる。
 また、実施例に係る情報処理装置1は、既知のパーソナルコンピュータ、ワークステーション等の装置に、上記した車両状態検知部141、フィルタリング部142、実行処理部143および異常処理部144等の各機能を搭載することによって実現することができる。
 また、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、解析部142bと追加条件判定部142cとを1個の部として統合しても良い。また、記憶部13を情報処理装置1の外部装置としてネットワーク経由で接続するようにしても良い。
 また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図2に示した情報処理装置1と同様の機能を実現するデータフィルタリングプログラムを実行するコンピュータの一例を説明する。図6は、データフィルタリングプログラムを実行するコンピュータの一例を示す図である。
 図6に示すように、コンピュータ200は、各種演算処理を実行するCPU203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209を制御する表示制御部207とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、ドライブ装置213、入力装置215、通信制御部217は、バス219で接続されている。
 ドライブ装置213は、例えばリムーバブルディスク211用の装置である。HDD205は、データフィルタリングプログラム205aおよびデータフィルタリング処理関連情報205bを記憶する。
 CPU203は、データフィルタリングプログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスは、情報処理装置1の各機能部に対応する。データフィルタリング処理関連情報205bは、フィルタリング条件記憶部131、ログ記憶部132に対応する。そして、例えばリムーバブルディスク211が、データフィルタリングプログラム205a等の各情報を記憶する。
 なお、データフィルタリングプログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらからデータフィルタリングプログラム205aを読み出して実行するようにしても良い。
 1 情報処理装置
 11,12 通信制御I/F部
 13 記憶部
 131 フィルタリング条件記憶部
 132 ログ記憶部
 14 制御部
 141 車両状態検知部
 142 フィルタリング部
 142a 第1の判定部
 142b 解析部
 142c 追加条件判定部
 142d 第2の判定部
 143 実行処理部
 144 異常処理部
 2 端末装置
 21 制御アプリ
 3 車両機器
 9 データフィルタリングシステム

Claims (5)

  1.  端末装置から操作された制御命令を実行する情報処理装置において、
     前記端末装置から操作された制御命令が第1の条件を満たす場合、前記制御命令が前記第1の条件に関連した追加条件を含む内容であるかを解析する解析部と、
     前記解析部によって前記制御命令が前記第1の条件に関連した追加条件を含む内容であると解析された場合、前記制御命令が追加条件を満たすか否かを判定する追加条件判定部と、
     前記追加条件判定部によって追加条件を満たすと判定された場合、前記制御命令が第2の条件を満たすか否かを判定する第2の判定部と、
     前記第2の判定部の判定に応じた処理を実行する処理部と、
     を有することを特徴とする情報処理装置。
  2.  前記処理部は、前記第2の判定部によって前記制御命令が前記第2の条件を満たすと判定された場合、前記制御命令の実行を中止する
     ことを特徴とする請求項1に記載の情報処理装置。
  3.  前記追加条件判定部は、前記端末装置から操作された制御命令を受け取る都度記憶する制御命令の履歴を用いて、前記端末装置から操作された制御命令が過去に操作された制御命令との関係において追加条件を満たすか否かを判定する
     ことを特徴とする請求項1に記載の情報処理装置。
  4.  前記第1の条件、前記追加条件および前記第2の条件は、前記制御命令が悪意とみなされる条件である
     ことを特徴とする請求項1に記載の情報処理装置。
  5.  端末装置から操作された制御命令を実行するコンピュータに、
     前記端末装置から操作された制御命令が第1の条件を満たす場合、前記制御命令が前記第1の条件に関連した追加条件を含む内容であるかを解析し、
     前記解析する処理によって前記制御命令が前記第1の条件に関連した追加条件を含む内容であると解析された場合、前記制御命令が追加条件を満たすか否かを判定し、
     前記判定する処理によって追加条件を満たすと判定された場合、前記制御命令が第2の条件を満たすか否かを判定し、
     前記判定に応じた処理を実行する
     処理を実行させることを特徴とするデータフィルタリングプログラム。
PCT/JP2013/084528 2013-12-24 2013-12-24 情報処理装置およびデータフィルタリングプログラム WO2015097760A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP13900529.2A EP3088255B1 (en) 2013-12-24 2013-12-24 Information processing device and data filtering program
JP2015554341A JP6296064B2 (ja) 2013-12-24 2013-12-24 情報処理装置およびデータフィルタリングプログラム
PCT/JP2013/084528 WO2015097760A1 (ja) 2013-12-24 2013-12-24 情報処理装置およびデータフィルタリングプログラム
US15/174,367 US9809116B2 (en) 2013-12-24 2016-06-06 Information processing apparatus and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/084528 WO2015097760A1 (ja) 2013-12-24 2013-12-24 情報処理装置およびデータフィルタリングプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/174,367 Continuation US9809116B2 (en) 2013-12-24 2016-06-06 Information processing apparatus and recording medium

Publications (1)

Publication Number Publication Date
WO2015097760A1 true WO2015097760A1 (ja) 2015-07-02

Family

ID=53477703

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/084528 WO2015097760A1 (ja) 2013-12-24 2013-12-24 情報処理装置およびデータフィルタリングプログラム

Country Status (4)

Country Link
US (1) US9809116B2 (ja)
EP (1) EP3088255B1 (ja)
JP (1) JP6296064B2 (ja)
WO (1) WO2015097760A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08280069A (ja) * 1995-02-08 1996-10-22 Honda Motor Co Ltd 車両用データ通信方法および装置
JP2003195909A (ja) * 2001-12-27 2003-07-11 Denso Corp インターフェイス装置
JP2004178559A (ja) * 2002-11-11 2004-06-24 Canon Inc コンピュータ周辺装置およびその制御方法
JP2013148435A (ja) 2012-01-18 2013-08-01 Jvc Kenwood Corp 車載装置、車載装置の制御方法、及び、プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3800025B2 (ja) * 2001-04-27 2006-07-19 日産自動車株式会社 車両用走行制御装置
US20070043489A1 (en) * 2005-08-19 2007-02-22 Alrabady Ansaf I System and method for controlling access to mobile devices
US20100233957A1 (en) * 2009-03-11 2010-09-16 Delphi Technologies, Inc. Vehicle Personalization Using A Near Field Communications Transponder
JP2011239143A (ja) * 2010-05-10 2011-11-24 Denso Corp 記録システム、車載機及び携帯機

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08280069A (ja) * 1995-02-08 1996-10-22 Honda Motor Co Ltd 車両用データ通信方法および装置
JP2003195909A (ja) * 2001-12-27 2003-07-11 Denso Corp インターフェイス装置
JP2004178559A (ja) * 2002-11-11 2004-06-24 Canon Inc コンピュータ周辺装置およびその制御方法
JP2013148435A (ja) 2012-01-18 2013-08-01 Jvc Kenwood Corp 車載装置、車載装置の制御方法、及び、プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3088255A4

Also Published As

Publication number Publication date
JP6296064B2 (ja) 2018-03-20
US9809116B2 (en) 2017-11-07
EP3088255A1 (en) 2016-11-02
EP3088255A4 (en) 2016-12-28
US20160280070A1 (en) 2016-09-29
EP3088255B1 (en) 2017-09-20
JPWO2015097760A1 (ja) 2017-03-23

Similar Documents

Publication Publication Date Title
CA2953144C (en) Method and apparatus for providing vehicle security
Koscher et al. Experimental security analysis of a modern automobile
US10326793B2 (en) System and method for guarding a controller area network
Checkoway et al. Comprehensive experimental analyses of automotive attack surfaces
KR101600460B1 (ko) 보안기능을 갖는 ecu 업그레이드시스템 및 그 방법
WO2013161202A1 (ja) 車載制御システムおよび車載制御装置
US10118592B2 (en) Diagnostic port protection to body control module
CN105793121B (zh) 用于关停被非法使用的车辆的系统和方法
CN106537463B (zh) 用于提高车辆安全性的方法和装置
US20210089024A1 (en) Method for controlling a motor vehicle remotely
JP6650041B2 (ja) 車両における1つ以上の機能をトリガする方法
CN111051159A (zh) 车辆用控制系统
JP6296064B2 (ja) 情報処理装置およびデータフィルタリングプログラム
Weimerskirch Automotive and industrial data security
Halahan et al. Wireless security within new model vehicles
Dürrwang et al. Security hardening with plausibility checks for automotive ECUs
Apvrille et al. Design and verification of secure autonomous vehicles
EP3121753B1 (en) System for controlling the communication between a main device and an auxiliary device and associated main device and auxiliary device used in the system
JP2011118691A (ja) Etc車載装置
CN115515097A (zh) 一种对抗对车内网络的入侵的方法和装置
CN104158621B (zh) 待传输数据序列的安全传输
Nisch Security Issues in Modern Automotive Systems
JP2021082050A (ja) 車両制御システム
Rumez et al. Security hardening of automotive networks through the implementation of attribute-based plausibility checks
Ward Aligning safety and security systems for connected vehicles

Legal Events

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

Ref document number: 13900529

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2013900529

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2013900529

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2015554341

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE