Threat Modeling Tool For Mac

Posted on
Threat Modeling Tool For Mac 9,5/10 1475 votes
(Redirected from Threat modelling)

Threat modeling is a process by which potential threats, such as structural vulnerabilities or the absence of appropriate safeguards, can be identified, enumerated, and mitigations can be prioritized. The purpose of threat modeling is to provide defenders with a systematic analysis of what controls or defenses need to be included, given the nature of the system, the probable attacker's profile, the most likely attack vectors, and the assets most desired by an attacker. Threat modeling answers questions like “Where am I most vulnerable to attack?”, “What are the most relevant threats?”, and “What do I need to do to safeguard against these threats?”.

Conceptually, most people incorporate some form of threat modeling in their daily life and don't even realize it. Commuters use threat modeling to consider what might go wrong during the morning drive to work and to take preemptive action to avoid possible accidents. Children engage in threat modeling when determining the best path toward an intended goal while avoiding the playground bully. In a more formal sense, threat modeling has been used to prioritize military defensive preparations since antiquity.

Threat modeling works to identify, communicate, and understand threats and mitigations within the context of protecting something of value. Threat modeling can be applied to a wide range of things, including software, applications, systems, networks, distributed systems, things in the Internet of things, business processes, etc. The tool can work with any data source and visualization. The tool enables you for agile development and flexible product design. It is a business intelligence platform and will serve as a service. Website: GoodData #19) Pentaho: This tool is for data integration, data mining, and information dashboards. It also provides OLAP services.

Evolution of IT-based threat modeling[edit]

Shortly after shared computing made its debut in the early 1960s individuals began seeking ways to exploit security vulnerabilities for personal gain.[1] As a result, engineers and computer scientists soon began developing threat modeling concepts for information technology systems.

Early IT-based threat modeling methodologies were based on the concept of architectural patterns[2] first presented by Christopher Alexander in 1977. In 1988 Robert Barnard developed and successfully applied the first profile for an IT-system attacker.

In 1994, Edward Amoroso put forth the concept of a “threat tree” in his book, “Fundamentals of Computer Security Technology.[3]” The concept of a threat tree was based on decision tree diagrams. Threat trees graphically represent how a potential threat to an IT system can be exploited.

Independently, similar work was conducted by the NSA and DARPA on a structured graphical representation of how specific attacks against IT-systems could be executed. The resulting representation was called “attack trees.” In 1998 Bruce Schneier published his analysis of cyber risks utilizing attack trees in his paper entitled “Toward a Secure System Engineering Methodology.[4]” The paper proved to be a seminal contribution in the evolution of threat modeling for IT-systems. In Schneier's analysis, the attacker's goal is represented as a “root node,” with the potential means of reaching the goal represented as “leaf nodes.” Utilizing the attack tree in this way allowed cybersecurity professionals to systematically consider multiple attack vectors against any defined target.

In 1999, Microsoft cybersecurity professionals Loren Kohnfelder and Praerit Garg developed a model for considering attacks relevant to the Microsoft Windows development environment. (STRIDE[5] is an acrostic for Spoofing identity, Tampering with data, Repudiation, Information disclosure, Denial of service, Elevation of privilege) The resultant mnemonic helps security professionals systematically determine how a potential attacker could utilize any threat included in STRIDE.

In 2003, OCTAVE[6] (Operationally Critical Threat, Asset, and Vulnerability Evaluation) method, an operations-centric threat modeling methodology, was introduced with a focus on organizational risk management.

In 2004, Frank Swiderski and Window Snyder wrote “Threat Modeling,” by Microsoft press. In it they developed the concept of using threat models to create secure applications.

In 2014 Ryan Stillions expressed the idea that cyber threats should be expressed with different semantic levels, and proposed the DML (Detection Maturity Level) model.[7] An attack is an instantiation of a threat scenario which is caused by a specific attacker with a specific goal in mind and a strategy for reaching that goal. The goal and strategy represent the highest semantic levels of the DML model. This is followed by the TTP (Tactics, Techniques and Procedures) which represent intermediate semantic levels. The lowest semantic levels of the DML model are the tools used by the attacker, host and observed network artefacts such as packets and payloads, and finally atomic indicators such as IP addresses at the lowest semantic level. Current SIEM tools typically only provide indicators at the lowest semantic levels. There is therefore a need to develop SIEM tools that can provide threat indicators at higher semantic levels.[8]

Threat modeling methodologies for IT purposes[edit]

Conceptually, a threat modeling practice flows from a methodology. Numerous threat modeling methodologies are available for implementation. Typically, threat modeling has been implemented using one of four approaches independently, asset-centric, attacker-centric, and software-centric. Based on volume of published online content, the methodologies discussed below are the most well known.

STRIDE methodology[edit]

The STRIDE approach to threat modeling was introduced in 1999 at Microsoft, providing a mnemonic for developers to find 'threats to our products'.[9] STRIDE, Patterns and Practices, and Asset/entry point were amongst the threat modeling approaches developed and published by Microsoft. References to 'the' Microsoft methodology commonly mean STRIDE and Data Flow Diagrams.

P.A.S.T.A.[edit]

The Process for Attack Simulation and Threat Analysis (PASTA) is a seven-step, risk-centric methodology.[10] It provides a seven-step process for aligning business objectives and technical requirements, taking into account compliance issues and business analysis. The intent of the method is to provide a dynamic threat identification, enumeration, and scoring process. Once the threat model is completed security subject matter experts develop a detailed analysis of the identified threats. Finally, appropriate security controls can be enumerated. This methodology is intended to provide an attacker-centric view of the application and infrastructure from which defenders can develop an asset-centric mitigation strategy.

Trike[edit]

The focus of the Trike methodology[11] is using threat models as a risk-management tool. Within this framework, threat models are used to satisfy the security auditing process. Threat models are based on a “requirements model.” The requirements model establishes the stakeholder-defined “acceptable” level of risk assigned to each asset class. Analysis of the requirements model yields a threat model from which threats are enumerated and assigned risk values. The completed threat model is used to construct a risk model based on asset, roles, actions, and calculated risk exposure.

Generally accepted IT threat modeling processes[edit]

All IT-related threat modeling processes start with creating a visual representation of the application and / or infrastructure being analyzed. The application / infrastructure is decomposed into various elements to aid in the analysis. Once completed, the visual representation is used to identify and enumerate potential threats. Further analysis of the model regarding risks associated with identified threats, prioritization of threats, and enumeration of the appropriate mitigating controls depends on the methodological basis for the threat model process being utilized. The identification and enumeration of threats (or of mitigation objectives), can either be carried out in an attack-centric way or in an asset-centric way. The former focuses on the types of possible attacks that shall be mitigated, whereas the latter focuses on the assets that shall be protected.

Visual representations based on data flow diagrams[edit]

The Microsoft methodology, PASTA, and Trike each develop a visual representation of the application-infrastructure utilizing data flow diagrams (DFD). DFDs were developed in the 1970s as tool for system engineers to communicate, on a high level, how an application caused data to flow, be stored, and manipulated by the infrastructure upon which the application runs. Traditionally, DFDs utilize only four unique symbols: data flows, data stores, processes, and interactors. In the early 2000s, an additional symbol, trust boundaries, were added to allow DFDs to be utilized for threat modeling. How to download chemdraw.

Once the application-infrastructure system is decomposed into its five elements, security experts consider each identified threat entry point against all known threat categories. Once the potential threats are identified, mitigating security controls can be enumerated or additional analysis can be performed.

Threat modeling tools[edit]

There are currently a number of software tools available to help threat modeling:

  • IriusRisk offers both a community and a commercial version of the tool. This tool focuses on the creation and maintenance of a live Threat Model throughout the entire SDLC. It drives the process by using fully customizable questionnaires and Risk Pattern Libraries, with flow diagramming and integration with DevSecOps (OWASP ZAP, BDD-Security, Threadfix..) to empower automation.[12]
  • Microsoft’s free threat modeling tool – the Threat Modeling Tool (formerly SDL Threat Modeling Tool).[13] This tool also utilizes the Microsoft threat modeling methodology, is DFD-based, and identifies threats based on the STRIDE threat classification scheme. It is intended primarily for general use.
  • MyAppSecurity offers a commercially available threat modeling tool - ThreatModeler[14] It utilizes the VAST methodology, is PFD-based, and identifies threats based on a customizable comprehensive threat library.[15] It is intended for collaborative use across all organizational stakeholders.
  • PyTM is an open-source Pythonic framework for threat modeling. It encodes threat information in python code, and processes that code into a variety of forms.[16]
  • securiCAD is a threat modeling and risk management tool by the Scandinavian company foreseeti. It is intended for company cyber security management, from CISO, to security engineer, to technician. securiCAD conducts automated attack simulations to current and future IT architectures, identifies and quantifies risks holistically including structural vulnerabilities, and provides decision support based on the findings. securiCAD is offered in both commercial and community editions.[17]
  • SD Elements by Security Compass is a software security requirements management platform that includes automated threat modeling capabilities. A set of threats is generated by completing a short questionnaire about the technical details and compliance drivers of the application. Countermeasures are included in the form of actionable tasks for developers that can be tracked and managed throughout the entire SDLC.[18]
  • Tutamantic 'Automated Design Analysis' is an interesting tool which provides microservices for threat modeling. In contrast to integrated tools, users upload a Visio file, and receive a spreadsheet of threats.[19]
  • OWASP Threat Dragon Project. A free, open source, online threat modeling web application including system diagramming and a rule engine to auto-generate threats/mitigations.[20]
  • Mozilla SeaSponge. A free, open source, accessible threat modeling tool from Mozilla. (Last updated in 2015) [21]
  • OVVL the 'Open Weakness and Vulnerability Modeller'. A free, open source threat modelling tool based on STRIDE with a particular focus on providing support for later stages in the secure development lifecycle.[22]

Further fields of application[edit]

Threat modeling is being applied not only to IT but also to other areas such as vehicle,[23][24]building and home automation.[25] In this context, threats to security and privacy like information about the inhabitant's movement profiles, working times, and health situations are modeled as well as physical or network-based attacks. The latter could make use of more and more available smart building features, i.e., sensors (e.g., to spy on the inhabitant) and actuators (e.g., to unlock doors).[25]

References[edit]

  1. ^McMillan, Robert (2012). 'The World's First Computer Password? It Was Useless Too'. Wired Business.
  2. ^Shostack, Adam (2014). 'Threat Modeling: Designing for Security'. John Wiley & Sons Inc: Indianapolis.
  3. ^Amoroso, Edward G (1994). 'Fundamentals of Computer Security Technology'. AT&T Bell Labs. Prentice-Hall: Upper Saddle River.
  4. ^Schneier, Bruce; et al. (1998). 'Toward A Secure System Engineering Methodology'(PDF). National Security Agency: Washington.
  5. ^'The STRIDE Threat Mode'. Microsoft. 2016.
  6. ^Alberts, Christopher (2003). 'Introduction to the OCTAVE® Approach'(PDF). Software Engineering Institute, Carnegie Mellon: Pittsburg.
  7. ^Stillions, Ryan (2014). 'The DML Model'. Ryan Stillions security blog. Ryan Stillions.
  8. ^Bromander, Siri (2016). 'Semantic Cyberthreat Modelling'(PDF). Semantic Technology for Intelligence, Defence and Security (STIDS 2016).
  9. ^Kohnfelder, Loren; Garg, Praerit. 'Threats to Our Products'. Microsoft. Retrieved 20 September 2016.
  10. ^Ucedavélez, Tony and Marco M. Morana (2015). 'Risk Centric Threat Modeling: Process for Attack Simulation and Threat Analysis'. John Wiley & Sons: Hobekin.
  11. ^Eddington, Michael, Brenda Larcom, and Eleanor Saitta (2005). 'Trike v1 Methodology Document'. Octotrike.org.
  12. ^'Irius Risk Threat Modeling Tool'. IriusRisk. 2016.
  13. ^'What's New with Microsoft Threat Modeling Tool 2016'. Microsoft Secure Blog. Microsoft. 2015.
  14. ^'ThreatModeler Home'. ThreatModeler.
  15. ^Agarwal, Anurag “Archie,” etal. Comprehensive Threat Library. Various Interviews. Transformational Opportunities: Prescott Valley. 2016
  16. ^Tarandach. 'A Pythonic framework for threat modeling'. Retrieved 12 March 2019.
  17. ^'Cyber Threat Modeling and Risk Management - securiCAD by foreseeti'. foreseeti.
  18. ^'SD Elements by Security Compass'. www.securitycompass.com. Retrieved 2017-03-24.
  19. ^'Tutamen Features'. Tutamantic. Retrieved 12 March 2019.
  20. ^'OWASP Threat Dragon Project'. www.owasp.org. Retrieved 2019-03-11.
  21. ^'Mozilla SeaSponge Threat Modeling tool'. www.mozilla.org. Retrieved 2019-03-11.
  22. ^Schaad, Andreas; Reski, Tobias (2019). ''Open Weakness and Vulnerability Modeler' (OVVL): An Updated Approach to Threat Modeling'. Proceedings of the 16th International Joint Conference on E-Business and Telecommunications. Prague, Czech Republic: SCITEPRESS - Science and Technology Publications: 417–424. doi:10.5220/0007919004170424. ISBN978-989-758-378-0.
  23. ^http://publications.lib.chalmers.se/records/fulltext/252083/local_252083.pdf
  24. ^Hamad, Mohammad; Prevelakis, Vassilis; Nolte, Marcus (November 2016). 'Towards Comprehensive Threat Modeling for Vehicles'(PDF). Publications Institute of Computer and Network Engineering. doi:10.24355/dbbs.084-201806251532-0. Retrieved 11 March 2019.Cite journal requires journal= (help)
  25. ^ abMeyer, D.; Haase, J.; Eckert, M.; Klauer, B. (2016-07-01). 'A threat-model for building and home automation'. 2016 IEEE 14th International Conference on Industrial Informatics (INDIN): 860–866. doi:10.1109/INDIN.2016.7819280. ISBN978-1-5090-2870-2.
Retrieved from 'https://en.wikipedia.org/w/index.php?title=Threat_model&oldid=997843464'
- 3 mins

I’ve spent a good amount of time lately trying to find a good tool for threat model diagramming. I defined a couple of requirements and started assessing what was out there:

  • Support for Data Flow Diagrams (DFD) and Attack Trees: I believe these are essential for threat modeling. Sequence Diagrams are a plus too.
  • Enjoyable and easy to use: It must be easy to create diagrams and no weird bugs to make it clunky or cumbersome to work with. This is important, not only for my own sanity, but also for getting developers to adopt the practice. If you don’t provide them with a good tool, they probably won’t do it.
  • Free and cross-platform: It must be free and work on Windows, Mac and Linux. If the tool only works on Windows or you have to juggle licenses, it makes it much harder to introduce threat modeling in an organization.
  • Not web or “Cloud” based: It should feel like a proper desktop application and storage should be good old local files. Cloud (a.k.a. someone else’s computer) can be nice, but not for threat modeling. File based storage also makes it easy to check the diagrams into version control and make it live next to the code.

I checked out quite a lot of different tools but none of them fulfilled the requirements. Many didn’t have elements for DFDs and Attack Trees, Microsoft Threat Modeling Tool only runs on Windows, Threat Modeler is web based, Threat Dragon felt awkward to work with, and Dia is old, clunky and buggy.

I was pretty dissapointed with what I found, so I scratched my own itch and started work on a new Electron based app which I hoped would be the perfect fit for me, and hopefully many others. Doing the initial research for this, I came across the mxgraph project which seemed to be the perfect core diagramming component. Then I saw that it was used as part of a tool called draw.io and that luckily turned out to be the perfect fit, with a bit of configuration and customization…

DFD and Attack Trees in draw.io

Draw.io doesn’t come with dedicated libraries for DFDs and attack trees, but it has all the elements. They are just spread across several different libraries. After playing around with the tool for a bit, I discovered that it’s super easy to customize elements and adding them to custom libraries which can be exported for easy reuse. I created two new libraries with all you need for DFD and attack trees and put them up on Github.

Data Flow Diagrams

These are the elements available in the dfd.xml library:

Apart from the classic DFD elements, the library also contains a note element, labels for assets, threat actors, security controls, and convenient tables for documenting them directly in the diagram.

To show you how it all works together, I’ve created a diagram of a simple, ficticious system:

A DFD of a simple, ficticious system.

Attack Trees

These are the elements available in the attack-tree.xml library:

To show you how these work together, I have recreated the classic Open Safe attack tree:

An attack tree exploring how to open a safe.

Threat Modeling Tool For Mac Osx

Getting set up

  1. Download and install draw.io for your operating system
  2. Clone or download the Github repository
  3. Open draw.io application and create a new blank diagram
  4. Click the File menu and then click Open Library…
  5. Navigate to where you put the Github repository and open one of the XML files

Ms Threat Modeling Tool Mac

/download-ninja-gaiden-2-for-android.html. Congratulations! You are now ready to threat model. To make draw.io even nicer, I can recommend turning on the Minimal theme by clicking the Extras menu and selecting the Minimal theme. This makes the UI cleaner and gives more space for actual diagramming.

Threat Modeling Tool For Mac Os

I hope that you will find this helpful and make it easier and more joyful to threat model for you and your team.