Threat modeling often includes the analysis of a data flow diagram. Data flow diagrams describe the movement of information in an information system such as a software system, the sources of information, what processes occur on the information, where the information is stored, and where the information eventually flows. Data flow diagrams should be simple but complete. However, it is often difficult to fully describe the context of the information system being modeled without adding elements that are not the focus of the model. For example, the information system being modeled may comprise one process that is designed to exchange data with a plurality of other processes, or the system may represent one small component of an application, an operating system, or other larger system. The relationship between the information system being modeled and other entities may not be obvious from the data flow diagram of just the information system.
To provide a larger view of the information system, modelers describe the context and environment of the information system in the data flow diagram. However, by including the context and environment, the complexity of the analysis of the threats and mitigations of the data flow diagram increases significantly because each element in the data flow diagram is considered a threat target. Referred to as a threat explosion or proliferation, the threat analysis produces a proliferation of irrelevant threats that distract the modeler and model reviewers from the potential threats associated with the information system.
Embodiments of the invention enable elements in a data flow diagram to be excluded from a threat analysis. In some embodiments, one or more elements in the data flow diagram are marked as informational. In response to a request for a threat model, the elements marked as informational are excluded from the generation of the threat model or excluded from the threat model report. In some embodiments, the informational elements are distinguishable from the other elements in a visual representation of the data flow diagram.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Corresponding reference characters indicate corresponding parts throughout the drawings.
Embodiments of the invention enable elements 105 in a data flow diagram 104 to be excluded from a threat analysis. In some embodiments, one or more of the elements 105 such as element #1 through element #N are designated, selected, tagged, marked, or otherwise indicated as informational elements, where N is a positive integer value. The informational elements represent elements 105 that are contextual or for informational purposes in the data flow diagram 104. In some embodiments, the informational elements are visually distinguishable from other elements 105 in a visual representation of the data flow diagram 104. In a testing environment such as shown in
While aspects of the invention are described with reference to threat modeling for application programs, aspects of the invention are operable generally with information systems including software systems having one or more application programs, processes, and/or data stores.
Referring next to
While the operations in
Referring again to
The propagation component 216 indicates or marks the data flow elements as informational based on the determination by the decision component 214. For example, aspects of the invention mark one of the elements 105 as informational when the element 105 is a data flow element, is adjacent to an informational element, and does not cross a trust boundary. In contrast, aspects of the invention will mark one of the elements 105 as “not informational” (or leave the element 105 unmarked) when the element 105 is a data flow element, is adjacent to an element 105 marked “not informational,” and does not cross a trust boundary.
In some embodiments, the propagation component 216 indicates the data flow elements as “informational” or “not informational” by setting a property value for each of data flow elements in an object model. Appendix A includes an example excerpt of extensible markup language (XML) code in which a property labeled “informational” is set to TRUE or FALSE.
The report component 218 generates a threat model for each of the plurality of elements 105. The interface component 210 provides the data flow diagram 104 and/or the generated threat model to the user 106 for display. In some embodiments, the elements 105 indicated to be informational are visually distinguished in the threat model and/or the data flow diagram 104 from the other elements 105. For example, the informational elements may be a different color, grayed-out, or the like.
Referring next to
A request for a threat model is received from the user 106 at 412. Alternatively, the threat model may be automatically created (e.g., upon accessing the data flow diagram 104, or at a predefined time). A subset of the plurality of elements 105 in the data flow diagram 104 is created at 414 by excluding the informational elements. That is, the subset contains all the elements 105 in the data flow diagram 104 except for the informational elements. The subset of elements 105 is provided to the threat modeling system 102 at 416. The threat modeling system 102 generates the threat model using the subset of elements 105.
Referring next to
Referring next to
Referring next to
Referring next to
While the example user interface 802 of
Referring next to
Referring next to
Referring next to
Referring next to
A computer or computing device 202 such as described herein has one or more processors or processing units, system memory, and some form of computer readable media. By way of example and not limitation, computer readable media comprise computer storage media and communication media. Computer storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Communication media typically embody computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media. Combinations of any of the above are also included within the scope of computer readable media.
The computer may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer. Although described in connection with an exemplary computing system environment, embodiments of the invention are operational with numerous other general purpose or special purpose computing system environments or configurations. The computing system environment is not intended to suggest any limitation as to the scope of use or functionality of any aspect of the invention. Moreover, the computing system environment should not be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with aspects of the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, mobile telephones, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
Embodiments of the invention may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices. The computer-executable instructions may be organized into one or more computer-executable components or modules. Generally, program modules include, but are not limited to, routines, programs, objects, components, and data structures that perform particular tasks or implement particular abstract data types. Aspects of the invention may be implemented with any number and organization of such components or modules. For example, aspects of the invention are not limited to the specific computer-executable instructions or the specific components or modules illustrated in the figures and described herein. Other embodiments of the invention may include different computer-executable instructions or components having more or less functionality than illustrated and described herein. Aspects of the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
The embodiments illustrated and described herein as well as embodiments not specifically described herein but within the scope of aspects of the invention constitute exemplary means for identifying the informational elements in the data flow diagram 104, and exemplary means for excluding from a threat model the informational elements in the data flow diagram 104.
The order of execution or performance of the operations in embodiments of the invention illustrated and described herein is not essential, unless otherwise specified. That is, the operations may be performed in any order, unless otherwise specified, and embodiments of the invention may include additional or fewer operations than those disclosed herein. For example, it is contemplated that executing or performing a particular operation before, contemporaneously with, or after another operation is within the scope of aspects of the invention.
When introducing elements of aspects of the invention or the embodiments thereof, the articles “a,” “an,” “the,” and “said” are intended to mean that there are one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements.
Having described aspects of the invention in detail, it will be apparent that modifications and variations are possible without departing from the scope of aspects of the invention as defined in the appended claims. As various changes could be made in the above constructions, products, and methods without departing from the scope of aspects of the invention, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.
The extensible markup language (XML) excerpt listed below includes a property identifying the element as an informational element.
The following operations describe an exemplary process for generating a threat model from a data flow diagram. Aspects of the invention are not limited to the operations or order of operations described herein. Rather, the process below merely provides an exemplary description of one method for generating the threat model. Other methods are contemplated.
a. Identify a threat element by:
b. Assign a type to the threat element which corresponds exactly with the shape.
c. Threat elements are stored in memory in a temporary set.
a. For each threat classification which applies:
a. Fill out a prototype threat with data.
b. Add additional threats and associate them to a threat element, provided they are of an allowed threat classification for the threat element's type. For example, the allowable threat classifications for an External Interactor are Spoofing (S) and Repudiation (R). A threat with a threat classification of Information Disclosure (D) could not be associated with an External Interactor, in some embodiments.
c. Remove threats or prototype threats, except that there must be at least one threat of each applicable threat classification associated with each element. If it would not make sense to have such a threat, users may certify the classification for that element.
d. Certify that a threat classification does not apply to a particular threat element. This happens in cases where it would not make sense. For example, the application threat classifications for a Data Store threat are Tampering, Repudiation, Information Disclosure, and Denial of Service. If a particular data store does not maintain records of specific transactions, it is not a log, then Repudiation threats would be meaningless and so the threat classification for Repudiation may be certified not to apply by a user, eliminating or hiding any threats or threat prototypes which may have been applied (erroneously or extraneously) to the data store.
e. Mark threat elements Informational.
An exemplary threat classification chart is shown in Table B1.
Examples software architecture components and their correspondence to data flow diagram elements are listed below.
External entity—people, systems out of scope, clouds, code not owned
Process—DLL/EXE, COM object, component service, code owned.
Data flow—function call, network traffic, shared memory, LPC and RPC.
Data Store—registry, file system, database, XML file
Trust boundary—machine boundary, process boundary, file system
Exemplary threat classifications corresponding to threat elements are shown in Table B2.
Appendix C includes an example of a data flow diagram and the threat model automatically generated from it.
Exemplary threat classifications that apply to common data flow diagram elements are shown below.
Data flow elements: tampering, information disclosure, and denial of service
Data store elements: tampering, repudiation, information disclosure, and denial of service
External interactor elements: spoofing, repudiation
Process elements: spoofing, tampering, repudiation, information disclosure, denial of service, and elevation of privilege
The exemplary threat model report for the sample data flow diagram in
Exemplary threats and mitigations based on
The exemplary threat model report lists the following element names and corresponding threat types.