Cyber Focus: What Should I Trust in Modern Software?

Print

There was a time when you could buy software from a trusted vendor and have confidence that everything in the system was created from a safe source.  However, modern software is the product of a code supply chain. Creating and maintaining software built from scratch is simply too inefficient to sustain in a competitive time sensitive market. As a result, the following trends have been observed in commercially available software products:

                                  *Sources: Sonatype, Crowdstrike, Grand View Research

Meanwhile, software vendors are not exactly eager to share the “secret sauce” of how their products are assembled. Software consumers are under increasing pressure to protect their organizations from a rising accumulation of threats.  How does one assess the risk exposure of deploying someone else’s code? Even for software that you have paid for. This post will provide some ideas for managing software supply chain trust.

Managing Trust

The first step towards minimizing the risk of threat exposure is to understand your organization’s code supply chain. The automobile, electronic manufacturing, and pharmaceutical industries have long understood the need for provenance and veracity in their supply chains. Who are your vendors? What open source products do you use? What do you build on your own? Most importantly, what could come back to bite you?

Scope out your supply chain by investigating and understanding how source code, configuration items, and packages get into your deployment pipeline.  This might be done by creating a simple diagram of the deployment architecture and then marking the accessible entry points. Once you have identified the vulnerable spots, create clear policies for those who have access and then enforce them. These policies should focus on:

Repository Management: Create and enforce rules surrounding what is allowed to be stored in your software repositories, and how each repository is to be curated.

Vulnerability Management: Constantly scan and assess for risks arising from third-party components and custom code libraries. Code should be scanned continuously throughout each stage of the life-cycle. We can recommend a number of quality scanning tools for each of type of artifact.

Configuration Management: Create and enforce rules surrounding access management, passwords and secrets, audit logging, code promotion, deployment, and automated orchestration.

The operations team must work closely with development and security to effectively review alerts and respond accordingly.  There is no substitute for active risk assessment and policy enforcement.

Modeling and Simulation

Even in an ideal setup, your system of security alerts and policy violations can only provide a reactive, rearview picture of what has already happened within your software pipeline. Some challenges to a SIEM-only based compliance approach include:

By the time you are able to respond, the attack is already underway. The total damage inflicted becomes a function of how quickly you respond to and contain the attack once you have detected it.

Modeling and simulation solutions form the proactive arm of your security strategy.  This approach has been used for many years in practical applications such as weather forecasting, power grid management, automotive engineering, structural architecture design, forensics analysis, flight training, and medical procedures.

How Does it Work?

The process starts by creating a replica of your environment. This will typically include representative constructs for the system infrastructure, applied security controls, known vulnerabilities, architecture components, and threats. For example, you might want to create a malware attack model where you include:

Another example might be to create an insider threat model where you include

Once a suitable model is in place, executing simulated attack scenarios allows you to safely assess the preparedness of your system.  The use of simulation technology affords the ability to run numerous complex attack scenarios quickly. The results of which will highlight the probability of compromise and potential damage associated with an attack.

Now that we have actionable intelligence regarding potential attacks we can take the following proactive steps:

Answer: Don't Trust Anything

The question posed in the title of this post is largely in jest. For modern software, it’s almost never wise to implicitly trust anything in your supply chain. Validate the trustworthiness of every element. Nothing should ever be allowed to move through your system without restriction. It’s true that a zero trust model can be complex to implement. However, the days of being able to take chances with external and internal threats have gone by the wayside.

Conclusion

Open source software is a powerful engine for innovation, and the best developers in the world leverage it effectively. However, as responsible IT leaders within organizations that rely on us to keep them safe, we simply can’t ignore the associated security concerns. Through continuous monitoring and automated assessment, organizations are finding ways to stay ahead of cyber threats and are managing to significantly reduce the risk of being exposed. Risk modeling and attack simulation technologies allow us as IT professionals to visualize and simulate the interaction of our system with a potential attack. By repeating the analysis frequently, organizations are minimizing their overall risk while protecting their core business and most sensitive data.

, ,