MESSAGE SOURCE DETECTION IN A VEHICLE BUS SYSTEM
20200394341 ยท 2020-12-17
Assignee
Inventors
- Charly Bitton (Pardes Hana, IL)
- Alexander Fok (Rehovot, IL)
- Eyal Kamir (Ganei Tikva, IL)
- Yoni MALKA (Aley Zahav (Leshem), IL)
- Orit Fredkof (Rishon LeZion, IL)
- Liran Zwickl (Or Yehuda, IL)
- Meni Dali (Petah Tikva, IL)
- Uriel Friedman (Aley Zahav, IL)
Cpc classification
G06F21/85
PHYSICS
G06F21/64
PHYSICS
International classification
G06F21/85
PHYSICS
G06F21/64
PHYSICS
Abstract
Systems and methods for identifying the source of a message transmitted on the CAN bus of a vehicle, by creating a unique signature for each ECU. The system is further configured to detest malicious activities on a CAN bus system having a given physical configuration. The signature of an ECU is created based on the non-linearity of the CAN bus, by determining from at least one pulse of a read message a training-signature that includes a pair of sub-signatures: a rising-sub-signature of the rising response, and a falling-sub-signature of the falling response, as viewed by said message generating ECU. By reading a plurality of messages from the ECUs operationally integrated on the CAN bus system, a classification & prediction methodology is used to create, for each message generating ECU, from the respective training-signatures, a unique ECU-signature.
Claims
1. A method for creating an ECU-signature for an Electronic Control Unit (ECU), the ECU being integrally operating within a CAN-bus sub-system of a vehicle, the CAN-bus sub-system having at least two ECUs, the method comprising the steps of: a) reading and storing into a memory storage a plurality of CAN-bus messages, wherein each of said CAN-bus message is generated by an ECU of said at least two ECUs; b) based on the non-linearity of the CAN bus, determining from at least one pulse of each of said read message a training-signature, wherein each of said training-signatures comprises a pair of sub-signatures: i) a rising-sub-signature of the rising response, being the impulse response of the rising section of said at least one pulse of the CAN bus system, as viewed by said message generating ECU; and ii) a falling-sub-signature of the falling response, being the impulse response of the falling section of said at least one pulse of the CAN bus system, as viewed by said message generating ECU; and c) for each of said message generating ECUs, determine a unique ECU-signature from said respective training-signatures.
2. The ECU-signature creating method of claim 1, wherein said creating of an ECU-signature is performed for all ECUs operating in the CAN-bus sub-system of the vehicle, and wherein said method further comprises the steps of: d) extracting from each of said read CAN-bus messages a respective training message-ID; e) associating each of said training message-ID with a respective training signature that correspond to a mutual read message; f) recording each of said associated pair of a training signature and a training message-ID; and g) classifying all of said pairs of said respective training message-IDs and training signatures, yielding K trained-classes, each of said trained-class having a unique signature-vector, wherein each of said trained-classes represents an ECU of said at least two ECUs, and said unique signature-vector is the ECU-signature of that ECU.
3. The ECU-signature creating method of claim 2, further comprising the steps of: h) recording said triplets of ECU-features, each comprising a training signature, a training message-ID and respective ECU-ID, in a non-volatile memory storage.
4. The ECU-signature creating method of claim 1, wherein said read messages are stored in a temporary memory storage.
5. The ECU-signature creating method of claim 1, wherein the CAN-bus sub-system is replaced by a vehicle bus sub-system selected from the group including Can-FD, Flexray, and Automotive Ethernet Standards.
6. A system for creating a unique ECU-signature for an ECU, the ECU being integrally operating within a CAN-bus sub-system of a vehicle, the CAN-bus sub-system having at least two ECUs, the system comprises a classifier comprising: a) a controller; b) a listening-sensor; and c) a temporary memory storage, wherein, during a training stage, said classifier is configured to: a) by said listening-sensor, read from the CAN-bus a plurality of CAN-bus messages, wherein each of said CAN-bus message is generated by an ECU of said at least two ECUs, and store said read CAN-bus messages in said temporary memory storage; b) based on the non-linearity of the CAN bus, determining from at least one pulse of each of said read message a training-signature, wherein each of said training-signatures comprises a pair of sub-signatures: i) a rising-sub-signature of the rising response, being the impulse response of the rising section of said at least one pulse of the CAN bus system, as viewed by said message generating ECU; and ii) a falling-sub-signature of the falling response, being the impulse response of the falling section of said at least one pulse of the CAN bus system, as viewed by said message generating ECU; and c) for each of said message generating ECUs, determine by said controller a unique ECU-signature from said respective training-signatures.
7. The ECU-signature creating system of claim 6, wherein, during the training stage, said classifier is further configured to: d) extract from each of said read CAN-bus messages a respective training message-ID; e) associate each of said training message-ID with a respective training signature that correspond to a mutual read message; f) store each of said ECU-IDs in a non-volatile memory storage, wherein said stored ECU-ID is associated with a single ECU-signature and with one or more message-IDs; and g) classify all of said pairs of said respective training message-IDs and training signatures, yielding K trained-classes, each of said trained-class having a unique signature-vector, wherein each of said trained-classes represents an ECU of said at least two ECUs, and said unique signature-vector is the ECU-signature of that ECU.
8. The ECU-signature creating system of claim 7, wherein during the training stage, said classifier is further configured to: h) store said triplets of ECU-features, each comprising a training signature, a training message-ID and respective ECU-ID, in a non-volatile memory storage.
9. The ECU-signature creating system of claim 6, wherein said classifier is an ECU.
10. The ECU-signature creating system of claim 6, wherein the CAN-bus sub-system is replaced by a vehicle bus system selected from the group including Can-FD, Flexray, and Automotive Ethernet Standards.
11. A method for detecting unauthorized messages on a CAN bus system of a vehicle, comprising: during a training stage: a) creating of an ECU-signature for all ECUs operating in the CAN-bus sub-system of the vehicle, as in claim 3; and during real-time operation: b) reading a CAN-bus message generated by an unknown ECU; c) extracting from said read CAN-bus message a real-time message-ID; d) based on the non-linearity of the CAN bus, determining from at least one pulse of said read CAN-bus message a real-time-signature, wherein said real-time-signature comprises a pair of sub-signatures: i) a rising-sub-signature of the rising response, being the impulse response of the rising section of said at least one pulse of the CAN bus system, as viewed by said message generating ECU; and ii) a falling-sub-signature of the falling response, being the impulse response of the falling section of said at least one pulse of the CAN bus system, as viewed by said message generating ECU; e) determining a class.sub.X of said K trained-classes, to which said real-time-signature belongs; f) identifying the ECU.sub.X associated with class.sub.X; g) if no class.sub.X is found, then it is determined that an unauthorized message was sent from an ECU that was installed without authorization; h) extracting the one or more training message-IDs associated with ECU.sub.X; i) comparing said real-time message-ID with any one of said extracted training message-IDs; j) if a match is detected, go back to step (b) for reading a next message; and k) if no match is found, then: i) it is concluded that an unauthorized actor took control of an ECU; ii) taking a preconfigured appropriate action; and iii) go back to step (b) for reading a next message.
12. The method for detecting unauthorized messages of claim 11, wherein said taking an appropriate action comprises issuing an alert for an unauthorized message.
13. The method for detecting unauthorized messages of claim 12, wherein said unauthorized message is a malicious message.
14. The method for detecting unauthorized messages of claim 11, wherein the CAN-bus sub-system is replaced by a vehicle bus system selected from the group including Can-FD, Flexray, and Automotive Ethernet Standards.
15. A system for detecting unauthorized messages on a CAN bus system of a vehicle, the CAN-bus sub-system having at least two ECUs, the system comprises a classifier comprising: a) a controller; b) a listening-sensor; and c) a temporary memory storage; wherein, during a training stage, said classifier is configured to: a) create of an ECU-signature for all ECUs operating in the CAN-bus sub-system of the vehicle, as in claim 8; and during real-time operation, said classifier is configured to: b) read a CAN-bus message generated by an unknown ECU; c) extract from said read CAN-bus message a real-time message-ID; d) based on the non-linearity of the CAN bus, determine from at least one pulse of said read CAN-bus message a real-time-signature, wherein said real-time-signature comprises a pair of sub-signatures: i) a rising-sub-signature of the rising response, being the impulse response of the rising section of said at least one pulse of the CAN bus system, as viewed by said message generating ECU; and ii) a falling-sub-signature of the falling response, being the impulse response of the falling section of said at least one pulse of the CAN bus system, as viewed by said message generating ECU; e) determine a class.sub.X of said K trained-classes, to which said real-time-signature belongs; f) identify the ECU.sub.X associated with class.sub.X; g) extract the one or more training message-IDs associated with ECU.sub.X; h) compare said real-time message-ID with any one of said extracted training message-IDs; i) if a match is found, go back to step (b) for a next message; and j) if a match is found, then: i) conclude that said read CAN-bus message is an unauthorized message; ii) take a preconfigured appropriate action; and iii) go back to step (b) for a next message.
16. The system for detecting unauthorized messages of claim 15, wherein said classifier is an ECU.
17. The system for detecting unauthorized messages of claim 15, wherein said unauthorized message is a malicious message.
18. The system for detecting unauthorized messages of claim 15, wherein if no class.sub.X is found, it is determined that an unauthorized message was sent from an ECU that was installed without authorization.
19. The system for detecting unauthorized messages of claim 15, wherein if no match found when comparing said real-time message-ID with any one of said extracted training message-IDs, it is concluded that an unauthorized actor took control of an ECU.
20. The system for detecting unauthorized messages of claim 15, wherein the CAN-bus sub-system is replaced by a vehicle bus system selected from the group including Can-FD, Flexray, and Automotive Ethernet Standard.
21. A method for detecting unauthorized messages on a CAN bus system of a vehicle, wherein arbitration noise exists on the CAN bus, the method comprising: during a training stage: a) creating of an ECU-signature for all ECUs operating in the CAN-bus sub-system of the vehicle, as in claim 3; and during real-time operation: b) reading a CAN-bus message generated by an unknown ECU; c) if reached the end of the message, then: i) it is concluded that an unauthorized actor took control of an ECU; ii) taking a preconfigured appropriate action; and iii) exit; d) selecting the next pulse of said read CAN-bus message; e) based on the non-linearity of the CAN bus, determining from said selected pulse of said read CAN-bus message a real-time-signature, wherein said real-time-signature comprises a pair of sub-signatures: i) a rising-sub-signature of the rising response, being the impulse response of the rising section of said at least one pulse of the CAN bus system, as viewed by said message generating ECU; and ii) a falling-sub-signature of the falling response, being the impulse response of the falling section of said at least one pulse of the CAN bus system, as viewed by said message generating ECU; f) determining a class.sub.X of said K trained-classes, to which said real-time-signature belongs; g) if no class.sub.X is found, then go back to step (d) to select the next pulse; h) extracting from said read CAN-bus message a real-time message-ID; i) identifying the ECU.sub.X associated with class.sub.X; j) extracting the one or more training message-IDs associated with ECU.sub.X; k) comparing said real-time message-ID with any one of said extracted training message-IDs; l) if a match is detected, go back to step (b) for reading a next message; and m) if no match is found, then: i) it is concluded that an unauthorized actor took control of an ECU; ii) taking a preconfigured appropriate action; and iii) go back to step (b) for reading a next message.
22. The method for detecting unauthorized messages of claim 21, wherein said taking an appropriate action comprises issuing an alert for an unauthorized message.
23. The method for detecting unauthorized messages of claim 22, wherein said unauthorized message is a malicious message.
24. The method for detecting unauthorized messages of claim 21, wherein the CAN-bus sub-system is replaced by a vehicle bus system selected from the group including Can-FD, Flexray, and Automotive Ethernet Standards.
25. A system for detecting unauthorized messages on a CAN bus system of a vehicle, the CAN-bus sub-system having at least two ECUs, the system comprises a classifier comprising: a) a controller; b) a listening-sensor; and c) a temporary memory storage; wherein, during a training stage, said classifier is configured to: a) create of an ECU-signature for all ECUs operating in the CAN-bus sub-system of the vehicle, as in claim 8; and during real-time operation, said classifier is configured to: b) read a CAN-bus message generated by an unknown ECU; c) if reached the end of the message, then: i) it is concluded that an unauthorized actor took control of an ECU; ii) take a preconfigured appropriate action; and iii) exit; d) select the next pulse of said read CAN-bus message e) based on the non-linearity of the CAN bus, determine from at least one pulse of said read CAN-bus message a real-time-signature, wherein said real-time-signature comprises a pair of sub-signatures: i) a rising-sub-signature of the rising response, being the impulse response of the rising section of said at least one pulse of the CAN bus system, as viewed by said message generating ECU; and ii) a falling-sub-signature of the falling response, being the impulse response of the falling section of said at least one pulse of the CAN bus system, as viewed by said message generating ECU; f) determine a class.sub.X of said K trained-classes, to which said real-time-signature belongs; g) if no class.sub.X is found, then go back to step (d) to select the next pulse; h) extract from said read CAN-bus message a real-time message-ID; i) identify the ECU.sub.X associated with class.sub.X; j) extract the one or more training message-IDs associated with ECU.sub.X; k) compare said real-time message-ID with any one of said extracted training message-IDs; l) if a match is found, go back to step (b) for a next message; and m) if a match is found, then: i) conclude that said read CAN-bus message is an unauthorized message; ii) take a preconfigured appropriate action; and iii) go back to step (b) for a next message.
26. The system for detecting unauthorized messages of claim 25, wherein said classifier is an ECU.
27. The system for detecting unauthorized messages of claim 25, wherein said unauthorized message is a malicious message.
28. The system for detecting unauthorized messages of claim 25, wherein if no class.sub.X is found, it is determined that an unauthorized message was sent from an ECU that was installed without authorization.
29. The system for detecting unauthorized messages of claim 25, wherein if no match found when comparing said real-time message-ID with any one of said extracted training message-IDs, it is concluded that an unauthorized actor took control of an ECU.
30. The system for detecting unauthorized messages of claim 25, wherein the CAN-bus sub-system is replaced by a vehicle bus system selected from the group including Can-FD, Flexray, and Automotive Ethernet Standard.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0137] In the drawings:
[0138]
[0139]
[0140]
[0141]
[0142]
[0143]
[0144]
[0145]
[0146]
[0147]
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
[0148] The following description of the disclosed invention is not necessarily limited in its application to the details of construction and the arrangement of the components and/or methods/processes set forth in the following description and/or illustrated in the drawings. The disclosed invention is capable of other embodiments or of being practiced or carried out in various ways.
[0149] As will be appreciated by one skilled in the art, aspects of the present disclosure may be embodied as a system, methods/processes or computer program or products. Accordingly, aspects of the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a circuit, module or system. Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more non-transitory computer readable (memory storage) medium(s) having computer readable program code embodied thereon.
[0150] An embodiment is an example or implementation of the disclosed invention. The various appearances of one embodiment, an embodiment or some embodiments do not necessarily all refer to the same embodiment. Although various features of the disclosed invention may be described in the context of a single embodiment, the features may also be provided separately or in any suitable combination. Conversely, although the disclosed invention may be described herein in the context of separate embodiments for clarity, the disclosed invention may also be implemented in a single embodiment.
[0151] Reference in the specification to one embodiment, an embodiment, some embodiments or other embodiments means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least one embodiment, but not necessarily all embodiments, of the disclosure. It is understood that the phraseology and terminology employed herein are not to be construed as limiting and are for descriptive purpose only.
[0152] Throughout this document, numerous textual and graphical references are made to trademarks, and domain names. These trademarks and domain names are the property of their respective owners, and are referenced only for explanation purposes herein.
[0153]
[0154] Sub-system 10 includes a plurality of ECUs (also known as nodes) 11a-11n, each controlling or monitoring one or more devices or schemes of the vehicle, such as the gas pedal, the brakes pedal, the steering wheel, the cabin temperature monitoring and setting, the air bags, the gear states, etc. The vehicle may include tens of such ECUs 11a-11n, while the ECUs 11a-11n communicate with one another and with the relevant controlled or monitored devices or schemes via CAN-bus 13. All the nodes 11 of the CAN bus 13 are typically connected to the bus through a two-wires 13a and 13b connection. The wires (13a and 13b) are typically a twisted pair with a 120 (nominal) characteristic impedance.
[0155] The communication via CAN-bus 13 uses a message-based protocol. Reference is also made to
[0156] As noted above, a significant method by which a malicious actor may exploit the system is by acquiring control of an existing (valid) ECU, and may then send via this ECU malicious messages, while substituting within each of these messages a disguised message-ID (namely, a message-ID that is typically used by another valid ECU), to thereby pretend that these messages are validly sent via that another valid ECU.
[0157] Another a malicious actor may add a new and malicious ECU to the system (for example, during maintenance of the vehicle at an unauthorized car shop), and may then send malicious messages via this newly-added ECU.
[0158] Such malicious messages, when sent by either of the two methods or some other methods, can perform substantially any of the vehicle's activities, for example, causing acceleration of the vehicle, activation of the brakes, activation of the steering wheel, change of a gear state, turn ON or OFF the lights, and a variety of other actions.
[0159]
[0160] When linearity is assumed for CAN bus 13, from circuit theory it is known that:
s(t)=h(t)*x(t)
where x(t) is the originally transmitted ideal pulse 52 (in the present disclosure a substantially square pulse 52), h(t) is the impulse response of the system (in the present case, the system is the entire CAN bus 13, as seen by the transmitting ECU) 11, and s(t) is the resulting pulse on CAN bus 13. In the assumption of linearity, h(t) can be found, for example, by applying Fourier transform, or Laplace transform to move to the frequency domain, dividing S() by X() (or S(s) by X(s) respectively), and converting the result back to the time domain, or other known methods.
[0161] However, the assumption of linearity of CAN bus 13 sub-system 10 is incorrect. As a matter of fact, there is a significant difference in the patterns and therefor in the signatures, between the impulse response of the rising portion 54 and the impulse response of the falling portion 56 of a pulse 52.
[0162] The embodiments of the present disclosure utilize the non-linearity characteristic of the CAN bus system 13 to obtain a pair of sub-signatures from each message, wherein the sub-signatures are respectively associated with the rising response portion and falling response portion the pulses 52. This pair of sub-signatures (of the rising response and the falling response sub-signatures) forms a unique signature of the transmitting ECU 11, which signature enables to identify the message originator ECU 11, irrespective of the message content. In fact, as all the impulse responses of the pulses 52 of each message, that were originated by a specific ECU 11, are substantially the same (differing only by their duration), it is sufficient to obtain the pair of sub-signatures from the impulse response of a single pulse 52 of each message. In order to obtain the pair, the pulse 52 is divided to its rising and falling portions (54 and 56), accordingly. Two pseudo impulse responses of the non-linear system are calculated separately for the rising and falling portions (54 and 56) of the pulse 52 by applying the technique above, resulting in a pair of sub-signatures that distinguishably characterize each transmitting ECU 11. A pair of the sub-signatures is uniquely associated with a particular transmitting ECU 11 and is non-imitable.
[0163]
[0164]
[0165]
[0166]
[0167] During the training stage, classifier 115 is activated to record a flow of messages over CAN-bus 113. More specifically, listening-sensor 119 listens to the flow of information over CAN-bus 113 during a period T.sub.1 of, for example only, with no limitations, 1 hour. The flow of the messages during period T.sub.1 is recorded by controller 117, and stored, for example, within temporary memory storage 121. Next, still during the training stage, controller 117 begins to calculate, in a manner as described above, a pair of sub-signatures (R, F) for each message-ID 23 (the message-ID 23 is determined from the message content). As noted above, a single ECU 111 may validly send messages having different message-IDs (23). Moreover, two messages having a same message-ID (23) are not expected to be sent, under normal operational circumstances, via two different ECUs 111.
[0168] In view of the fact that each ECU 111 issues a different signature, the classifier 115, during the training stage, determines N different signature classes, wherein each class represents a different ECU 111, and is associated with a single unique signature. The ECUs 111 are then arbitrarily number, regardless of different functionality of each ECU 111. Hence, classifier 115 defines the number of ECUs 111 operating on CAN-bus 113, in accordance to the number of different classes of signatures that classifier 115 has found (wherein each signature includes a pair of sub-signatures R and F), and the classifier 115 respectively associates each different signature with a respective different ECU 111 and stores that association, for example, with no limitations, in a signatures-table, as shown in Table 1.
[0169] It should be noted that the signatures-table is given as an example of a common format of storing N calculated signatures (for use in the real-time stage), and the set of N calculated signatures may be stored in any other storage format, such as in a database or and other defined data-set.
[0170] The present disclosure will be described here on as the defined data-set being a table, but the present disclosure is not limited to tables only, and any defined data-set known in the art may be used.
TABLE-US-00001 TABLE 1 ECU number Message-ID SIGNATURE 1 one or more message-IDs S.sub.1R, S.sub.1F 2 one or more message-IDs S.sub.2R, S.sub.2F 3 one or more message-IDs S.sub.3R, S.sub.3F . . . . . . i one or more message-IDs Si.sub.R, Si.sub.F . . . . . . N one or more message-IDs Sn.sub.R, Sn.sub.F
[0171] The classifier 115 further associates each message-ID 23 in the example table with the respective signature, which signature is also associated with the respective ECU 111. It should be noted that several different message-IDs may be associated with a single ECU 111, if their respective signature is the same. As a result, at the end of the training stage, each ECU 111 in the signatures-table is associated with a single signature, and with one or more respective message-IDs 23. Therefore, upon completion of the training stage, the controller 117 stores the signatures-table within a non-volatile memory storage 123. It should be noted that temporary memory storage 121 and non-volatile storage 123 may in practice be portions of a same memory.
[0172] More specifically, during the training, stage controller 117 of classifier 115 analyses the data accumulated during period T.sub.1 within the temporary memory storage 121, and associates with each ECU number a specific signature that consists of a pair of sub-signatures (such as, S.sub.2R, S.sub.2F for the ECU number 2 and S.sub.iR, S.sub.iF for the ECU number Each of the sub-signatures is stored in digital form of the respective curve (such the R and F curves of the sub-signatures, respectively, shown in
EXAMPLE
[0173] The following is an example table that has been prepared by a classifier according to the invention for Renault Zoe, 2018 (the specific signatures and their sub-signatures are not shown):
TABLE-US-00002 TABLE 2 ECU number Message-ID SIGNATURE 1 1015, 1074 S.sub.11, S.sub.12 2 860, 1362, 1502, 1503, 1518, 1519 S.sub.21, S.sub.22 3 1272 S.sub.31, S.sub.32 4 504, 1081, 1498 S.sub.41, S.sub.42 5 697, 1588 S.sub.51, S.sub.52 6 304, 530, 536, 1274, 1649, 1784 S.sub.61, S.sub.62 7 913 S.sub.71, S.sub.72 8 1675 S.sub.81, S.sub.82 9 378, 382, 390, 394, 502 S.sub.91, S.sub.92
[0174] As shown in Table 2 above, a CAN bus 113 of the Renault Zoe accommodates 9 ECUs 111 that are indicated in Table 2 as ECU1-ECU9. Several of the ECUs 111 (such as ECU 7) can issue messages having only a single message-ID 23, while others may issue messages with several different message-IDs 23 (for example, ECU 4 can issue 3 different message-IDs 23). However, it can be seen that each specific message-ID 23 can be issued by only a single specific ECU 111.
[0175]
[0182] Steps 204, 206 and 208 are repeated for all of the read CAN bus messages that are stored in the temporary memory storage 121. At the end of this sub-process, a group of paired message-IDs and respective training signatures are stored in memory storage 121.
[0183] The training procedure now proceeds with step 210, wherein classifier 115 performs a classification process of the signature vectors accumulated in memory storage 121, each associated with a message-ID. In view of the fact that each ECU 111 issues a different signature, the classifier 115, determines K different signature classes, wherein each class represents a different ECU 111, and is associated with a single unique signature. The ECUs 111 are then arbitrarily number, regardless of different functionality of each ECU 111. Hence, classifier 115 defines the number of ECUs 111 operating on CAN-bus 113, in accordance to the number of different classes of signatures that classifier 115 has found (wherein each signature includes a pair of sub-signatures R and F), and the classifier 115 respectively associates each different signature with a respective different ECU 111 and stores that association in step 212, for example, with no limitations, in a non-volatile memory storage 123.
[0184] Hence, the training stage yields a single and unique signature vector for each respective ECU, wherein each different ECU 111 is associated with a unique ECU-signature, and is associated with one or more message-IDs, all of which are stored as a defined data-set, such as a table, in a non-volatile memory storage 123, for later use in the real-time stage.
[0185] It should be noted that the classification process may use any common classification & prediction method such as, with no limitations, Support Vector Machine (SVM), Neural Network (NN) and Bagged Decision Tree (BDT).
[0186]
[0187] In step 302 of an unauthorized messages detection method 300, a message 20 on the CAN bus 113 is read and inspected in real-time. In step 304, the real-time (indicated by RT) message-ID 23 is determined. The RT_message-ID 23 is in fact defined by several relatively early pulses of the message sequence of pulses 52. In step 306, based on RT_message-ID 23, a RT_signature-vector, having a pair of sub-signatures: a rising-sub-signature and a falling-sub-signature, is determined.
[0188] In step 308, unauthorized messages detection method 300 determines a class.sub.X of the K trained-classes, to which RT_signature-vector.sub.X belongs. It should be noted that the classification process may use any common classification & prediction method such as, with no limitations, Support Vector Machine (SVM), Neural Network (NN) and Bagged Decision Tree (BDT).
[0189] In step 310, unauthorized messages detection method 300 checks if the RT_message-ID can be found in the group of message-IDs associated with the signature-vector.sub.X. If procedure 300 determines that RT_message-ID cannot be found in the group of message-IDs associated with the signature-vector.sub.X, an alert is issued in step 312, and/or any other preconfigured, appropriate action is taken to indicate that the message is improper and possibly malicious. Unauthorized messages detection method 300 then proceed with reading and inspecting the next real-time message. If procedure 300 determines that RT_message-ID is found in the group of message-IDs associated with the signature-vector.sub.X, method 300 proceed with reading and inspecting the next real-time message.
[0190] It should be noted that the process 300 as described above can detect at least of the following unauthorized (malicious) manipulations: [0191] (a) Sending of a malicious message from an ECU a, while using, within the message sent, a disguised message-ID, pretending that the message was sent from an ECU b. Such a manipulation may occur when the malicious actor succeeds in gaining control of an ECU that is part of an existing CAN bus system (indicated in this case as ECU a). In this case, the real-time comparison will show a mismatch failure, as the real-time signature of ECU a (as determined from the real-time message) is different from the signature associated with ECU b (as found in the table, based on the message-ID); [0192] (b) Sending of a malicious message from a newly, invalidly installed ECU c, while indicating in the message a disguised message-ID pretending that it was sent from ECU b. Such a manipulation may occur when the malicious actor succeeds in installing the new ECU c on the CAN bus. Such a manipulation will change the physical configuration of CAN bus sub-system 100. Therefore, a real-time comparison will show a mismatch failure for some or all ECUs 111, of sub-system 100.
[0193] It should be noted that the procedures of
[0194] It should be further noted that the system 100 of the disclosure can easily issue an alert, in the case of a mismatch as described in items (a) and (b) above. In the case of a mismatch, the system of the disclosure may also manipulate the current message on the CAN bus in order to either: (c) cause the message to be invalid in view of introduction of six sequential 1 bits, or with six sequential 0 bits to within the message. These six sequential 1 bits, or six sequential 0 bits may be introduced to within the real-time message by the classifier 115, upon detection of the mismatch; or (d) cause the message-transmitting ECU to view a transmission error by causing it to see a sequence of bit monitoring errors, in a manner as described in PCT/IL2018/050858 (WO/2019/026077). Clearly, the taking of the actions as in (c) or (d) involve more real-time requirements, compared to the alternative of just issuing of an alert.
[0195]
[0196] Returning now to
[0205] It should be appreciated that when two or more ECUs transmit, simultaneously, a respective message, the respective messages are overlaid, affecting the rising and falling of overlaid pulses and the impulse response of the overlaid pulses. Thereby the real times signatures of the overlaid pulses are affected such that classifier 115 cannot reliably find an appropriate class, class.sub.X, in the K trained-classes. Therefore, in the example above, an appropriate class.sub.X can be found in the K trained-classes only in pulses commencing at or after bit t.sub.8.
[0206] Following the above example and the well-defined arbitration procedure logic, the following addresses the integration of the arbitration procedure with a real-time stage procedure of identifying the signature associated with a transmitter ECU as described, for example, with relation to real-time stage method 500.
[0207]
[0208] In step 502 of an unauthorized messages detection method 500, a message 20 on the CAN bus 113 is read and inspected in real-time. In step 504, the classifier 115 determines if reached the end of the message. If reached the end of the messagean alert is issued in step 524, else proceed with next step (506). In step 506, the next pulse is selected. In step 508, based on one or more read pulses 52, a RT_signature-vector, having a pair of sub-signatures: a rising-sub-signature and a falling-sub-signature, is determined.
[0209] In step 510, unauthorized messages detection method 500 determines a class.sub.X of the K trained-classes, to which RT_signature-vector.sub.X belongs. It should be noted that the classification process may use any common classification & prediction method such as, with no limitations, Support Vector Machine (SVM), Neural Network (NN) and Bagged Decision Tree (BDT).
[0210] In step 515, unauthorized messages detection method 500 checks if a class.sub.X has been found in the group of message-IDs associated with the signature-vector.sub.X. If a class.sub.X has not been found in the group of message-IDs associated with the signature-vector.sub.X, go back to step 504 select the next pulse. If a class.sub.X has been found in the group of message-IDs associated with the signature-vector.sub.X, proceed with next step (520). In step 520, the real-message-ID 23 of the read message 20 is determined.
[0211] In step 522, unauthorized messages detection method 500 checks if the RT_message-ID can be found in the group of message-IDs associated with the signature-vector.sub.X. if the RT_message-ID can be found in the group of message-IDs associated with the signature-vector.sub.X, go to step 502 and read the next message.
[0212] If procedure 500 determines that RT_message-ID cannot be found in the group of message-IDs associated with the signature-vector.sub.X, an alert is issued in step 524, and/or any other preconfigured, appropriate action is taken to indicate that the message is improper and possibly malicious. Unauthorized messages detection method 500 then proceed with reading and inspecting the next real-time message. If procedure 500 determines that RT_message-ID is found in the group of message-IDs associated with the signature-vector.sub.X, method 500 proceed with reading and inspecting the next real-time message.
[0213] While some of the embodiments of the disclosure have been described by way of illustration, it will be apparent that the disclosure can be carried into practice with many modifications, variations and adaptations, and with the use of numerous equivalents or alternative solutions that are within the scope of a person skilled in the art, without departing from the spirit of the invention, or the scope of the claims.