SBIR/STTR Award attributes
CoreGuard from Dover Microsystems blocks the exploitation of mistakes (aka “bugs”) in software. CoreGuard micropolicies precisely define the allowed and disallowed behavior of a system in terms of metadata. Metadata is maintained for every word in a system and can encode a wide range of security- related attributes, such as “is this value confidential?”, “where did this value come from?”, “is this value a pointer to memory, and if so, where is it allowed to read or write?”, “is this value an executable instruction?”, etc. With this general approach, CoreGuard blocks 94% of severe CVEs (vulnerabilities) as identified by MITRE (https://cve.mitre.org/), more than any other security approach. As we know, and despite our best attempts, no significant software system, either in the Air Force or in the commercial world, is free of errors. While we strongly endorse every attempt to rule out errors in software before deployment, we also believe that we must continue to closely monitor systems for misbehavior even after deployment, to prevent malicious, and potentially deadly, exploitation of software bugs. CoreGuard monitors all software running on a system at a very fine grain – checking each instruction and each access to memory. This allows CoreGuard to detect, block, and respond to attacks immediately, before any damage is done. Until now, CoreGuard has been targeted at embedded devices, which are relatively small, simple computing devices running a bare bones software stack. After numerous discussions with potential Air Force customers, it is clear to Dover that many security-critical DAF systems rely on more complex hardware and on general purpose operating systems such as Linux. For example, any cloud-based computing resources are likely running Linux, as well as command and control systems, many network infrastructure nodes and mobile computing devices. It arguably more important for CoreGuard to be integrated into larger, Linux-class systems, because there is typically a much larger, and less trusted, stack of software running on these large systems than on typical embedded systems.