A method, implemented by a computing system on-board a vehicle, differentiates whether an anomaly originating from a hardware component of the vehicle is caused by a cybersecurity threat, by a degradation of the performance of the hardware component, or by both. states of the respective nodes in a first group of nodes of the first hardware component are compared with a stored table of sets of states of nodes in the first group. A determination is made of whether the anomaly associated with the first hardware component is caused by a cybersecurity threat or by health degradation of the first hardware component based on the comparison of the states of the nodes of the first group with the sets of possible states of the respective nodes where each set is associated with one of a cybersecurity threat and health degradation.
|
1. A method, implemented by a computing system on-board a vehicle in motion, identifies cybersecurity threats originating from hardware components of the vehicle, the method comprising the steps of:
receiving electronic data from sensors associated with the hardware components;
representing at least some of the hardware components of the vehicle in motion where each of the at least hardware components is represented as a group of related nodes, where each node in the group of nodes for each hardware component has a state stored in memory of the computing system that represents a current condition of an attribute of the hardware component;
applying an algorithm by the computing system to the electronic data to determine the existence of an anomaly;
receiving an indication of a behavioral anomaly associated with a first hardware component, the state determined by the data associated with the respective hardware component;
determining current states originated by the first hardware component of the respective nodes in a first group of nodes;
comparing the current states of the nodes in the first group of nodes with first and second stored sets of states of nodes in the first group, where the first and second stored sets are associated with cybersecurity threats and health degradation, respectively;
providing indicia that the anomaly associated with the first hardware component is caused by one of a cybersecurity threat and a health degradation based on whether the comparison of the states of the nodes of the first group corresponds to the first or second stored sets.
6. A computer program product, comprising a computer usable tangible non-transitory medium having a computer readable program code embodied therein, said computer readable program code adapted to be executed to implement a method for identifying cybersecurity threats originating from hardware components on-board a vehicle in motion, said method comprising:
representing at least some of the hardware components of the vehicle in motion where each of the at least hardware components is represented as a group of related nodes, where each node in the group of nodes for each hardware component has a state stored in memory of the computing system that represents a current condition of an attribute of the hardware component, the current condition based on electronic data received from sensors associated with the hardware components;
using an algorithm resident in the computing system to determine the existence of an anomaly based on the electronic data;
determining current states originated by the first hardware component of the respective nodes in a first group of nodes upon receipt of an indication of a behavioral anomaly associated with a first hardware component;
comparing the current states of the nodes in the first group of nodes with first and second stored sets of states of nodes in the first group, where the first and second stored sets are associated with cybersecurity threats and health degradation, respectively;
providing indicia that the anomaly associated with the first hardware component is caused by one of a cybersecurity threat and a health degradation based on whether the comparison of the states of the nodes of the first group corresponds to the first or second stored sets.
2. The method of
3. The method of
4. The method of
5. The method of
7. The computer program product of
8. The computer program product of
9. The computer program product of
10. The computer program product of
|
This application is a continuation of U.S. patent application Ser. No. 17/358,758 entitled, “ADAPTIVE CYBERSECURITY FOR VEHICLES”, filed Jun. 25, 2021, the entire contents of which are incorporated herein by reference.
Embodiments of the present invention are related to providing cybersecurity at a component level for complex vehicles, e.g., aircraft. The embodiments are especially, but not exclusively, adapted to identify cybersecurity associated with hardware components.
Providing cybersecurity for complex systems, such as vehicles, aircraft, spacecraft and other systems, represents a technical challenge as well as a significant cost. Cybersecurity measures are typically oriented towards threats to the software utilized to provide instructions to a microprocessor. For example, cybersecurity associated with software used to control/operate a vehicle is described in U.S. Pat. No. 10,089,214 entitled “AUTOMATED DETECTION OF FAULTS IN TARGET SOFTWARE AND TARGET SOFTWARE RECOVERY FROM SOME FAULTS DURING CONTINUING EXECUTION OF TARGET SOFTWARE”, granted Oct. 2, 2018.
Complex vehicles, such as aircraft, are made up of hundreds if not thousands of hardware components, e.g., line replacement units (LRU), and subsystems. As used herein, “hardware” subsystems/components refer to physical specialized apparatus that perform a task associated with the physical apparatus as opposed to components that have a primary function of controlling other components. For example, hardware components for an aircraft include water and fuel pumps, landing gear, engine components, mechanical control units such as for actuators, ailerons and flaps, etc. On-aircraft operational systems that include a microprocessor, e.g., a flight control computer, that have a primary function of controlling other components are not hardware as used herein.
It is increasingly common for hardware components to also contain a microprocessor that operate under the control of software stored in the hardware component to provide control of the functionality of the hardware component. An aircraft fuel pump is an example of such a hardware component. Internal sensors associated with various parameters, e.g., fuel flowing through the pump, power supplied to the pump motor, heat of the motor and bearings, etc., provide data that allows the self-contained microprocessor to determine the operational status of the pump and generate instructions to other fuel pump elements to regulate the flow of fuel by controlling the power to the fuel pump motor which controls the revolutions-per-minute of the driven impeller. The self-contained microprocessor in the fuel pump, in response to instructions received from the flight control system requesting more engine thrust, increases the flow of fuel output from the fuel pump to accommodate the requested increase of engine thrust. The self-contained microprocessor of the fuel pump may also contain locally stored instructions associated with monitoring the operational health of the fuel pump by monitoring for operating conditions that fall outside normal parameters, e.g., heat of the motor and bearings, flow rate versus power to the motor, etc. Each hardware component provides its own function in the overall operation of the vehicle. In the case of an aircraft, failure of some hardware components may seriously impair the ability of the aircraft to remain in flight.
Cybersecurity is becoming an increasing concern for hardware components, and especially for those hardware components that contain microprocessors. A malicious actor that obtains access to the hardware component, directly or remotely via data communication, could alter the microprocessor instructions stored in the hardware component to cause abnormal operation or a functional failure under certain conditions or at predetermined times, or report to the flight control system and an Integrated Vehicle Health Management (IVHM) system, if one is available, that the hardware component is functioning in an abnormal manner while the hardware component is actually functioning normally. This abnormal operation would be recognized by an IVHM system as a false alarm or a potential failure but not as a cybersecurity event. For a military aircraft, this could cause a mission to be aborted or cause a significant failure of the hardware component and potentially seriously impair the flight of the aircraft. Similar concerns exist for other types of vehicles, e.g., cars especially with self-driving capabilities, etc. Therefore, there exists a need for improved cybersecurity for hardware components associated with complex vehicles.
Additionally, the configuration of all hardware elements, including integral associated software, if any, on an aircraft is an additional factor. Unauthorized changes in configuration may be caused by a malicious actor, i.e., bit encryption in hardware elements and input/output values in hardware and integral software. Thus, there exists a need for protection of hardware against cybersecurity threats.
One aspect of embodiments of the present invention is to minimize the possibility of an undetected malicious cybersecurity breach associated with a hardware component in a complex hardware structure such as a vehicle, especially but not limited to, an aircraft.
Another aspect of one embodiment of the present invention is the identification of unauthorized changes in configuration of hardware elements including integral software on a vehicle.
Another aspect of one embodiment of the present invention is to identify a potentially malicious cybersecurity breach associated with a hardware component in a vehicle by distinguishing whether an anomaly associated with the hardware component is due to a cybersecurity threat or is a naturally occurring degraded performance of the hardware component such as due to wear.
An embodiment of a method, implemented by a computing system on-board a vehicle, differentiates whether an anomaly originating from a hardware component of the vehicle is caused by a cybersecurity threat, by a degradation of the performance of the hardware component, or by both. States of the respective nodes in a first group of nodes of the first hardware component are compared with a stored table of sets of states of nodes in the first group. A determination is made of whether the anomaly associated with the first hardware component is caused by a cybersecurity threat or by health degradation of the first hardware component based on the comparison of the states of the nodes of the first group with the sets of possible states of the respective nodes where each set is associated with one of a cybersecurity threat and health degradation.
In another aspect, a computer program product is provided having a computer usable tangible non-transitory medium having a computer readable program code embodied therein. The computer readable program code adapted to be executed to implement a method for identifying cybersecurity threats originating from hardware components on-board a vehicle. The implemented method includes representing at least some of the hardware components of the vehicle where each of the at least hardware components is represented as a group of related nodes, where each node in the group of nodes for each hardware component generates a state that represents a current condition of an attribute of the hardware component. The implemented method further includes determining the states originated by the first hardware component of the respective nodes in a first group of nodes upon receipt of an indication of a behavioral anomaly associated with a first hardware component. The states of the nodes in the first group of nodes are compared with first and second stored sets of states of nodes in the first group, where the first and second stored sets are associated with cybersecurity threats and health degradation, respectively. The implemented method further includes determining that the anomaly associated with the first hardware component is caused by one of a cybersecurity threat and a health degradation based on whether the comparison of the states of the nodes of the first group corresponds to the first or second stored sets.
Exemplary embodiments of the present invention are described below with reference to the accompanying drawings in order to better understand the operation of the embodiments of the present invention in which:
Inputs 130 contain information represented as data obtained from a variety of sources associated with the operation of the aircraft containing the onboard avionics system 100. For example, the inputs 130 would include real-time sensor data associated with a plurality of different components, built-in test (BIT) data, parametric data, information from analog and discrete devices, as well as operational information such as mission parameters. A data fusion module 135 transforms the various input data formats and data rates into a standardized data output provided to the data message interface 140. A description of exemplary data fusion is provided in U.S. Pat. No. 10,725,463, which is incorporated herein by reference. The data message interface 140 integrates the output from data fusion 135 with other inputs and outputs as shown in
The data message interface 140 also provides alarms and analyzed data to the pilot display 190 on either manned aircraft for viewing by the on-board pilot or unmanned mission display to the ground control mission operator via 165 and COMMS 170. The mission manager 192 transmits mission profiles and mission data to the data message interface 140 to be formatted for compatibility and transmission to the CCExec 105, prognostics engine/module 145 and the diagnostics engine/module 150. The data message interface 140 receives analyzed data and passes equipment failure and degradation data and associated security risks to the onboard/offboard (for manned/unmanned aircrafts) flight control 194 system. BIT and warnings, cautions or advisories (WCA) data from the flight control 194 are transmitted by the data message interface 140 to the diagnostics module 150 and the prognostics module 145 for comparison. This confirmation produces better accuracy on anomalous events. Similarly, payload manager 196 passes sensor data related to payloads, e.g., radar, weapons, etc., to the data message interface 140 for transmission to the CCExec 105, prognostics module 145 and diagnostics module 150. The payload manager 196 receives analyzed data from those modules for the potential issuance of control and/or alert commands dependent on the received alarms and risks contained in the analyzed data.
Prior to focusing on the hardware CCMBR module 115, it will be observed from
Alarms are received by Results Analysis Combination Module 240 from Alarm Generator 275 while analyzed data cybersecurity data is received from MBR Analysis System Module 202. Module 240 receives analyzed discrimination data between IVHM and cybersecurity faults and failures. It also receives risk analysis data from Risk Manager Module 245. Module 240 determines the next course of action to be performed on the infected target software of the hardware and/or hardware. For instance, these actions could include delete memory contents from volatile memory in a specific address range(s) and continue with target HW/SW operations, delete infected relevant files from non-volatile memory, disinfect non-volatile and volatile memories, delete verified viruses, worms, and Trojans from non-volatile and volatile memory, limit I/O to specified design parameters (i.e., allocated design variables) at software function and class level, restricted channel bandwidth communication, restricted API usage, inform and record/store all actions to mission operators and maintainers, and others. The risk assessment & classification performed in Module 245 (i.e., by the process and determinations in Risk Evaluation & Estimate Risk Level 725 (see
The risk manager 245 receives information from the CCMBR analysis system 202 performs a risk assessment and vulnerability analysis on sensed attacks. It is a case-based manager that stores information on cases of known/existing vulnerabilities and adds new vulnerabilities as they are discovered. Existing vulnerabilities and corresponding recovery actions are stored in database 155 and transmitted by data interface 140 to the CCMBR analysis system 202 for the implementation of corresponding recovery actions. New vulnerability cases are also stored in database 155 via data interface 140 from the risk manager 245. Audit logs 250 are stored to provide a record of actions taken by the risk manager 245.
Risk Manager 245 performs risk assessment & vulnerability analysis on system breaches and attacks. It is a case-based manager, and provides information on cases of existing vulnerabilities to defend against and register new cases to defend against. Existing/prior vulnerability cases & risks are provided to Modules 110 & 115 for analysis of actionable response & recovery from Module 155 Stored Analysis via 140 Data Message Interface. New cases (threat situations) are formed within Module 245 and immediately distributed to Modules 110 & 115 and they are also stored in Module 155 via Module 140. These cases are developed during a human assisted modeling/design process.
The general process of risk determination and management is performed in 245 Risk Manager and is described in
A summation module 335 makes a determination of whether the respective residues are zero or an acceptably small value. A YES determination at output 340 indicates the analysis of the LRU to be an expected result, i.e., the zero or nearly zero respective residues indicating that the LRU does not have a detectable cybersecurity anomaly/risk and operating at acceptable performance, i.e., no undue degradation or anomalous behavior. A NO determination at output 345 from module 335 is indicative of: a potentially detectable cybersecurity risk, potential operational degradation/fault/failure or both. This information is coupled by the data interface 140 to storage in database 155, and is also transmitted to the risk manager 245.
Database 155 represents a plurality of cybersecurity-related information relevant to the subject hardware element, e.g., LRU, under analysis. The CCMBR LRU model 315 is implemented by the CCMBR Analysis System 202. Referring to
The LRU model 310 in one exemplary implementation operates as described in the text associated with FIG. 27 of U.S. Pat. No. 10,814,883, which is incorporated herein by reference. That is, the output 2750 shown in
The residue result from Op and Op1 can be represented mathematically as:
A residue output of R(p)=0 implies that there were no unexpected signatures extracted from the anomalous behavior of the aircraft hardware/software elements. This means that cybersecurity output Op(p) is zero. On the other hand, a degradation/fault/failure output Op1(p) of zero implies that the anomalous behavior cannot be represented as IVHM (module 310) fault or failure or degradation event. Of course, a non-zero value of one of these outputs while the other output is zero provides a direct conclusion that the output with the non-zero value is the cause.
In the case when both Op(p) and Op1(p) outputs are non-zero, the residue R(p) will be nonzero resulting in additional analysis being required to determine the root cause of the fault and/or failure and/or degradation event. This implies that the root cause of the equipment fault and/or failure is due to security issues, IVHM (fault/failure/degradation) issues, or both.
In
Graphical nodal analysis of the Function Node “AFT Engine Planning” 420D shows a failure (bold outline), i.e., not-mission-capable, since the AFT Engine 410 cannot be started with the starter fuel ignitor function 420E (i.e., not operating in the manner as prescribed) and is due to cybersecurity related issue 460C. The Sensor Node 440C is operational and provides the correct voltage to the Starter Component 450C, however, a cybersecurity attack is preventing the starter from functioning properly. For example, every time the starter relay element wants to engage, the cybersecurity attack prevents this engagement by sending an alternate command to force the relay switch to an “OFF” mode. This causes the Function Node “AFT Engine Starter Func.’ 420E to fail while the Component Node “AFT Starter” 430C shows no fault/failure. Thus, nodal analysis of AFT engine 410 identified that a problem (non-zero residue) was caused by a cybersecurity cause. If both of these problems with FWD engine 405 and AFT engine 410 were to occur simultaneously, the nodal analysis of each can determine that two independent anomalies are occurring for two different causes, one a health degradation cause and the other a cybersecurity cause. With both the FWD and AFT Engines (405 and 410 respectively) being non-functional in this example for different causes, the simultaneous failure of both engines could lead to a catastrophic event for the aircraft, if in flight. Thus, graphical nodal analysis can identify whether a health degradation or cybersecurity threat is the root cause for a non-zero residue, and can also identify simultaneously occurring health degradation/fault/failures and cybersecurity threat problems that each contribute to a non-zero residue by identifying the existence of a health degradation and an independent cybersecurity threat that caused respective contributions to a non-zero residue. The graphical nodal analysis is performed by module 204 with inputs from modules 206 and 208.
An example of levels of risk are shown below in TABLE 1.
Risk
Security Posture
Level
Component/Condition
IVHM
Protect
Monitor
Response
Recover
1
Fuel Pump/Anomaly
Trigger
Posture to
Trigger
Detection
component
search for
Level
VWT
2
Fuel Pump/Fault
No
Posture to
Evidence
Trigger
Recover
Evidence
component
of VWT
response
component
Level
effecting
via
if possible
pump
Modules
via Modules
relay
110 & 115
100, 115,
control
240, 245,
(possibly
flight &
spoofing)
mission
control
3
Fuel Pump/VWT
No
Posture to
VWT -
Message to
Catastrophic
Evidence
component
No fuel
flight
event or
Level
available
control to
near safe or
and
initiate
safe landing
unable to
emergency
gain relay
procedures
control
for flight
termination
For a risk level 1, a fuel pump anomaly is detected by the health management system with results in the triggering of a search for a potential VWT signature. As shown for risk level 2, a fuel pump fault has been detected, but with no evidence from the health management system of degradation or failure. Evidence is determined that a VWT signature may exist which could affect the pump relay control, or possibly spoofing of this. This gives rise to triggering a response from CCMBR 110 and 115 with the objective to recover the component, if possible. In risk level 3, the fuel pump failure is determined to be caused by an identified VWT signature with the health management system finding no evidence of a degradation-type fault. The VWT signature is associated with no fuel being available and an inability to gain control of the fuel pump relay. In this situation a response initiates a message to the flight control to initiate emergency procedures for flight termination, if and flight. With recovery of the fault not being possible, this event for an in-flight aircraft could result in a catastrophic event (i.e., loss of the aircraft) or a possible immediate near safe or safe landing depending on mission management and flight control systems response.
In
Line 911 represents an XML declaration describing general properties of the document that indicates to an XML processor that an XML parser is needed to interpret the document. The character encoding, e.g. basic tags, in this example are in UTF-8 format. This information allows the XML parser to correctly interpret the specification information. Line 912 is an upper level XML tag that separates other upper level tags within the file. In the illustrated example, all information shown in specification 900 is part of the same level tag. Other levels of tags could, for example, describe an operating system, and software/firmware utilized. In line 913 a first hardware element is identified with its corresponding description (which includes configuration), attributes, behaviors, and actions. Examples of information contained could include: id_LCN would contain data that represents a logistics control number (LCN) given to the hardware element by the logistics group. serial_number would contain data that represents a manufacturer's serial number, name would contain data that represents a product name, description would contain data that represents a product description, version would contain data that represents the version number, firmware_version would contain data that represents the firmware driver version number, date_first_installed would contain data that represents the date the hardware element was installed on the aircraft, date_reinstalled would contain data that represents the date it was reinstalled post repair, date_updated would contain data that represents the date the hardware element was replaced by another equivalent unit, spec_version would contain data that represents a configuration item that provides the version on the specification document associated with the hardware element, and spec_last_update would contain data that represents the date when the specification was 1st updated. Line 914 for “dimension” represents the length, width and height of the hardware element given as respective floating-point numbers. Line 914A “IC list” contains information about the corresponding IC as a whole, and includes internal data bus widths, specification file name, and a list of the memory and register blocks in the IC. Line 915 “block_list” is a memory block list containing the registers and memory blocks in the IC with information specific to that block. Information may include the block size, i.e. address space, the type of memory, bit width of access to the block, and a list of registers in the block. “Register” is a list of all the registers in the IC. The entries contain information specific to each register, such as, parent register block, reset value, and a text description of the register. It may also contain a list of the bit fields in the register as “bit_field_list”. Included information is bit field name, size, position, and access type (read-only, write, etc.). Additional functional information may include functionality of bit fields. For example, a certain bit field may act as a write enable bit for a register or for a different bit field. Line 916 “calibration” represents floating-point values determined to properly calibrate parameters of the hardware element for appropriate operation in the particular aircraft system. Line 917 “target_config” represents all the attributes pertinent to the specific aircraft environment required to house/contain the hardware element. This may include electrical pin connections with various avionics buses, inter-connections with other hardware elements, mechanical and/or chemical interfaces, place and position in the avionics bay, etc. Line 918 “input_interface” represents the various input data interfaces of the hardware element. Line 919 “output_interface” represents output data interfaces of the hardware element. As will be seen by “hardware_element_#”, similar information, as indicated for hardware_element_1, is provided for each of the respective hardware elements. Line 920 “/hardware_spec” is the XML ending block of the hardware element specifications on the aircraft. This denotes an end of the specification for all of the hardware elements.
The specifications 902 and 903 may reside as XML files which identify aircraft software elements, which can range from several hundred to several thousand on the aircrafts. This software information is parsed by an XML parser contained in the software CCMBR 110 to extract the necessary software security and configuration information. Similarly, the hardware information is parsed by an XML parser contained in the hardware CCMBR 115 to extract the necessary hardware security and configuration information. These XML files are generated by a modeling process by a modeling engineer based on information available from the manufacturer and data obtained by testing in various environments.
Line 921 defines the start of the <Target Software System Module> XML tag & block which is also the start of the software installed in various avionics computers in the aircraft. There is expected to be hundreds to thousands of these software systems. Line 922 shows the start of the first software system <SW_1> installed on an avionics computer in which: id=“ ”, name=“ ”, description=“ ”, version=“ ”, date_first_installed=“ ”, date_reinstalled=“ ”, date_updated=“ ”, spec_version=“ ”, spec_last_pdate=“ ”, language=“ ”, configuration_info=“ ”, SLOC=“ ”, in which corresponding data associated with SW_1 is stored. The description contains info on the avionics computers or other controllers on which SW_1 is installed. SLOC is the source lines of code in SW_1. Line 923 represents the <class> (object) definition of SW_1. The implementation of <class> is represented by its object. It has id=“ ” and name=“ ” information. Line 924 contains data for the <method> for the class and includes model=“ ”, id=“ ”, name=“ ”, and function=“ ” information. Line 925 contains data for each <class><method> such as the <input_interface> with <address> . . . </address> in memory and associated <data> . . . </data> in I/O interfaces. Line 926 contains data for each <class><method> such as the <output_interface> with <address> . . . </address> in memory and associated <data> . . . </data> in I/O interfaces. Line 927, for each <class><method>, defines <states> . . . </states> that represent the APIs, object methods, and object functions all called I/O interfaces states (i.e., invariant, modified, static, dynamic). The states of I/O interfaces must always be invariant whether reflecting static or dynamic class object behaviors. If the interfaces have modified inputs and outputs, i.e., the I/O interfaces are non-invariant (function as were designed), this is a cause for alarm. Modified I/O interfaces inputs and outputs may occur due to viruses acting upon these changing their behavior and data from that originally designed and implemented. Line 928, for each <class><method>, has <modes> . . . </modes> that refer to the visibility of the class object (an object is an implementation of the class in memory). These are private (methods within the class only), protected (classes & methods within a package/directory), and public (by all classes & methods within the program no matter which package/directory they reside). Line 929, for each <class>, contains <constraint> . . . </constraint> that are various types of constraints, i.e., actor-based, class-based, concurrent, prototype-based; by separation of concerns: aspect-based, subject-oriented, recursive, symbolic, value-level, function-level; as well as constraint logic programming. Line 930, for each <class>, contains <rules> . . . </rules> which are correctness of language syntax, safety, security, correctness of common conventions, object-oriented, extensibility, and portability.
Line 931 labeled <runtime> specifies the runtime behavior of SW_1 in an operating system (OS) and is at the level of <class> in the XML file. It has an attribute id=“ ”. Line 932, <runtime><requires>, are an input list (i.e., atomized table, runtime variables, multicore processing, distributed computing) for an OS. Any dynamic changes in the input runtime variable is a cause for alarm unless required by designed for dynamic data bindings. Outputs are monitored for any design specification changes observed during operations (i.e., interconnections with other systems on the aircraft, OS services such as volatile & nonvolatile memory reading & writing, multicore processing, and distributed computing needs). Line 933, <runtime><properties>, are runtime requested properties that may include verification, time, scheduling, and contexts. Verification includes techniques as runtime monitoring, variable & model checking, reflection, runtime analysis (dynamic, symbolic, trace, log file, audit file). Line 934, <runtime><dependencies>, are runtime dependencies that may include methods of compiling, linking, building, shared/dynamic library, native libraries, plugins, and linkages with other software objects. Line 935, <runtime><behaviors>, refers to data for methods devised for optimization including computation performance, volatile & nonvolatile memory utilization, and communication (internal & external). Line 936, <runtime><deterministic>, refers to data for runtime sequential processing of scheduled tasks in a deterministic way; meaning that each task must complete in a preset scheduled time. Otherwise, not meeting the time schedules may lead to catastrophic failure of the aircraft (especially for flight control systems). Real-time OS such as VxWorks and Integrity (as may be used for avionics computers), are able to meet time scheduled deterministic program tasks. Line 937, <runtime><eventdriven>, refer to operating systems (such as Windows, Linux, Mac OS) that perform tasks based on program triggers or events. An event driven OS does not have to meet time schedules unless scheduled by timers and concurrent processes. GUI applications are specific to event driven OS. Line 938, </runtime>, is an XML end block of the runtime specification of SW_1. As indicated, there will be hundreds if not thousands of software specifications associated with different elements in an aircraft.
Line 939, <OS_spec>, is the beginning XML, tag/block for the operating system specification. An OS is a software specification that has hardware and software component definitions. It is the core program that provides communication between system hardware (computation elements on the motherboard), motherboard support packages, firmware, and other software components running on it. It allows access to hardware, applications, and users. Line 940, <OS_spec><definitions>, contains the name of OS and refers to all the hardware and software component services available for the OS, i.e., board chip level services, multicore access, access to peripherals, access to reduced instruction set (RISC), firmware, and other software program services. Line 941, <OS_spec><definitions><types>, refers to details of OS, e.g., whether it embedded real-time, event driven, its bit structure (8, 16, 32, 64-bits), the target hardware on which it can operate, graphical or command based, and its hardware and software architecture. Line 942, <OS_spec><definitions><interfaces>, defines the interfaces for board support packages, APIs for chip level I/O programming, general processor chip level APIs for application programming, APIs for graphical processor programming. Line 943, <OS_spec><definitions><bindings>, defines data bindings that are either statically compiled or available dynamically at runtime for the OS. Line 944, <OS_spec><definitions><services>, lists all hardware and software services available on the OS. For instance, software services may include batch processing, multi-tasking, timeshared processing, distributed processing, algorithms (neural-nets) for better CPU performance, etc. Hardware services may include plug-and-play services, etc. Line 945, <OS-spec><properties>, identifies various elements required to run applications on the OS, such as little-endian or big-endian, spooling (I/O processes), etc. Line 946, </OS_spec>, is the XML end block of the SW_1 OS specification. Line 947, <SW_2> . . . </SW_2>, is the next XML block for the next software element containing all the XML elements given for SW_1, i.e. Lines 922-947. Line 948, <SW_N> . . . </SW_N>, is the last software element “N” XML block. Line 949, </Target Software System Module>, is the XML end block for all software elements/specification for the aircraft.
Line 1011 is the start of the <cybersecurity_spec> XML tag & block which is also the start of the software/hardware related cybersecurity domain knowledge of the aircraft when in operation and when at rest (data at rest). The specification can be installed in multiple avionics computers in the aircraft or on a few avionics computers and controllers in a centralized computation architecture. The computers that implement the cybersecurity specification may be dedicated to only that task or may support multiple timeshared additional functions. Line 1012, <cybersecurity_spec><signatures>, is the start of a list of known VWTs that will have signatures that define their properties and their destructive effect on the system, as well as their methods for infecting the system. Line 1013, <cybersecurity_spec><signatures><virus_1>, is the first virus registered in a signature table in CM & Security Postures & Signatures Library database 230. Note that “virus” is general term used for VWT. These signatures are continually updated in the database for their effect on the system. Note that in Line 1014 <properties> the name of this first virus is “flame”. It was designed for system attack functions and is being used for cyber espionage by certain countries. There are other viruses, to name a few: “boost” is a virus that functions for information gathering, “munch” is a virus that installs and propagates throughout the system affecting all software systems, etc. Line 1014, <cybersecurity_spec><signatures><properties>, has data corresponding to configuration attributes: name=“flame”, id_config_key=“ ”, time_config_key=“ ”, log_percentage=“ ”, version_key_config=“ ”, IP_time_config=“ ”, P_check_key=“ ”, BPS_config=“ ”, BPS_key=“ ”, proxy_server_key=“ ”, getVirusId=function( ) These parameters define characteristics of the VWTs that could infect the system. The actual parameters utilized in the system are compared in real time by hardware/software CCMBR with the corresponding signature parameters to determine if a particular VWT is present, followed by actions leading to disinfection the VWTs from the system. Line 1015, <cybersecurity_spec><signatures></properties>, is the XML, end-of-block for <properties>. Line 1016, <cybersecurity_spec><signatures> <behaviors>, identifies various possible modes of malware infections, some of which are: espionage, internet bandwidth consumption, computational consumption, hardware/software destruction, fast propagation infecting other software, and so on. <actions> . . . </actions> are the corresponding methods & algorithms necessary to disinfect the VWTs, once found, and bring the system back to its original uninfected functionality. Line 1017, <cybersecurity_spec><signatures><virus_N> . . . <virus_N>, is the last virus in the signature table in CM & Security Postures & Signatures Library database 230. Line 1018, <cybersecurity_spec></signatures>, is the XML end-of-block for <signatures>.
Line 1019, <cybersecurity_spec><postures>, begins parameters that are defined to protect, monitor, respond, and recover from a detected cybersecurity threat. These parameters are determined by a cybersecurity team. Line 1020, <protect>, contains rules/instructions for the protection of system assets, especially hardware elements, and artifacts. These rules are for safeguarding confidentiality, integrity, availability, authenticity, and non-repudiation. Line 1021, <monitor>, contains rules for monitoring system assets and artifacts in operation, e.g. aircraft systems in operation, and at rest. Line 1022, <respond>, contains rules for a time-critical response against a detected VWT attack. Line 1023, <recover>, contains rules for a time-critical recovery of the system assets and artifacts to their original state or at least to a stable state not subject to the detected VWT attack. Line 1024, <CCExec_self_health>, is a self-health diagnostics capability of the software and hardware CCMBRs 110, 115 and provides for the generation of an alarm conveyed to the Pilot Display 190 where a self-health anomaly decision is made by the pilot. Line 1025, <CCExec_self-health><properties>, includes algorithms for detection, identification, isolation, false alarms detection and root cause analysis associated with a self-health anomaly. Line 1026, <CCExec_self_health><behaviors>, includes algorithms and rules for monitoring for anomalous behaviors and corresponding countermeasure actions where an interface with the CCMBRs exhibit anomalous behavior. Line 1027, <CCExec_self_health><operations>, include algorithms and rules for corrective actions upon identification of faults in the CCMBRs. Line 1028, <CCExec_self_health><health>, defines the start for the monitoring of the CCMBRs for continuous operation. Line 1029, </heartbeat>, monitors the CCMBRs functionality every 1 second (variable) and sends the output to the Pilot Display 190. An alarm is generated when CCMBRs fails to generate 5 consecutive heartbeats. Line 1030, <CCExec_self_health></health>, is the XML end-of-block indicia for the <health> section starting at line 768. Line 1031, </CCExec_self_health>, is the XML end-of-block indicia for <CCExec_self_health> starting at line 1024. Line 1032, </cybersecurity_spec>, is the XML end-of-block indicia for the <cybersecurity_spec> starting at line 1011.
As will be understood by those skilled in the art, the ROM 1110 and/or nonvolatile storage device 1120 will store an operating system by which the microprocessor 1105 is enabled to communicate information to and from the peripherals as shown and with external devices via I/O 1125. More specifically, data is received through the I/O 1125, stored in memory, and then processed in accordance with stored program instructions to achieve the detection and comparison of anomalies and states/values of the devices represented as nodes in
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
10235523, | May 10 2016 | Nokomis, Inc.; NOKOMIS, INC | Avionics protection apparatus and method |
10666767, | Jan 30 2018 | State Farm Mutual Automobile Insurance Company | Systems and methods for vehicle configuration verification using smart contracts |
10805087, | Sep 28 2018 | Amazon Technologies, Inc | Code signing method and system |
11138314, | Sep 24 2019 | Muinin Corporation p.b.c.; MUININ CORPORATION P B C | Software and firmware verification by distributed ledger and intrusion detection systems |
11379213, | Dec 06 2019 | EQUINIX, INC.; EQUINIX, INC | Decentralized identifiers for securing device registration and software updates |
8949611, | Jun 22 2011 | The Boeing Company | Methods, apparatus and computer program products for authenticating and determining integrity of a software part of an air vehicle |
9245116, | Mar 21 2013 | General Electric Company | Systems and methods for remote monitoring, security, diagnostics, and prognostics |
20090138873, | |||
20130318357, | |||
20150271208, | |||
20170039370, | |||
20180048473, | |||
20180176229, | |||
20190373472, | |||
20190384586, | |||
20200057630, | |||
20200089487, | |||
20200175171, | |||
20200264864, | |||
20210021428, | |||
20210103658, | |||
20210218710, | |||
20210256113, | |||
20220067162, | |||
20220179636, | |||
20230009023, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jun 24 2021 | DIXIT, SUNIL | Northrop Grumman Systems Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 060356 | /0609 | |
Jun 29 2022 | Northrop Grumman Systems Corporation | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Jun 29 2022 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Date | Maintenance Schedule |
Aug 29 2026 | 4 years fee payment window open |
Mar 01 2027 | 6 months grace period start (w surcharge) |
Aug 29 2027 | patent expiry (for year 4) |
Aug 29 2029 | 2 years to revive unintentionally abandoned end. (for year 4) |
Aug 29 2030 | 8 years fee payment window open |
Mar 01 2031 | 6 months grace period start (w surcharge) |
Aug 29 2031 | patent expiry (for year 8) |
Aug 29 2033 | 2 years to revive unintentionally abandoned end. (for year 8) |
Aug 29 2034 | 12 years fee payment window open |
Mar 01 2035 | 6 months grace period start (w surcharge) |
Aug 29 2035 | patent expiry (for year 12) |
Aug 29 2037 | 2 years to revive unintentionally abandoned end. (for year 12) |