The year is 2019, and the number of reported data breaches is up 54% compared to midyear 2018 and is set to be the “worst year on record,’ according to RiskBased Security research. Nearly 31 million records have been exposed in the 13 most significant data breaches of the first half of this year. Exposed documents included personal health information (PHI), personally identifiable information (PII) and financial data. Most of these data breaches were caused by one common flaw: poor technical and human controls that could have easily been mitigated if an essential security process were followed. This simple and essential security process is known as threat modeling.
What is threat modeling?
Threat modeling is the process of identifying and communicating potential risks and threats, then creating countermeasures to respond to those threats. Threat modeling can be applied to multiple areas such as software, systems, networks, and business processes. When threat modeling, you must ask and answer questions about the systems you are working to protect.
Per OWASP, threat model methodologies answer one or more of the following questions:
- What are we building?
- Architecture diagrams
- Dataflow transitions
- Data classifications
- What can go wrong?
- What are we going to do about that?
- Actionable tasks to address your findings.
- Did we do an acceptable job?
- Review the quality, feasibility, process, and planning of the work you have done.
These questions require that you step out of your day-to-day responsibilities and holistically consider systems and processes surrounding them. When done right, threat modeling provides a clear view of the project requirements and helps justify security efforts in language everyone in the organization can understand.
Who should be included in threat modeling?
The short answer is, everyone. Threat modeling should not be conducted in a silo by just the security team but should be worked on by a diverse group made up of representatives across the organization. Representatives should include application owners, administrators, architects, developers, product team members, security engineers, data engineers, and even users. Everyone should come together to ask questions, flag concerns and discuss solutions.
A security checklist is essential
In addition to asking and answering general system and process questions, a security checklist should be used for facilitating these discussions. Without a defined and agreed-upon list, your team may overlook critical security controls and won’t be able to evaluate and continually improve standards.
Here’s a simple example of a security checklist:
Authentication and Authorization
☐ Are actors required to authenticate so that there is a guarantee of non-repudiation?
☐ Do all operations in the system require authorization?
☐ Is access granted in a role-based fashion?
☐ Are all access decisions relevant at the time the request is performed?
☐ Can you clearly identify where the levels of trust change in your model?
☐ Can you map those to authentication, authorization and access control?
Accounting and Auditing
☐ Are all operations being logged?
☐ Can you guarantee there is no PII, ePHI or secrets being logged?
☐ Are all audit logs adequately tagged?
When should I start threat modeling?
“The sooner the better, but never too late.” – OWASP
How often should threat modeling occur?
Threat modeling should occur during system design, and anytime systems or processes change. Ideally, threat modeling is tightly integrated into your development methodology and is performed for all new features and modifications prior to those changes being implemented. By tightly integrating with your development process, you can catch and address issues early in the development lifecycle before they’re expensive and time-consuming to resolve.
Threat modeling: critical for a secure and compliant microservice environment
Securing distributed microservice systems is difficult. The attack surface is substantially larger than an equivalent single system architecture and is often much more difficult to fully comprehend all of the ways data flows through the system. Given that microservices can be short-lived and replaced on a moment’s notice, the complexity can quickly compound. This is why it is critical that threat modeling is tightly integrated into your development process as early as possible.
Aspen Mesh makes it easier to implement security controls determined during threat modeling
Threat modeling is only one step in a series of steps required to secure your systems. Thankfully, Aspen Mesh makes it trivial to implement security and compliance controls with little to no custom development required, thus allowing you to achieve your security and compliance goals with ease. If you would like to discuss the most effective way for your organization to secure their microservice environments, grab some time to talk through your use case and how Aspen Mesh can help solve your security concerns.