A mere three months later, a brand new sort of assault materialized that didn’t match inside the present typology. A brand new assault sort referred to as “dependency confusion” was coined when safety researcher Alex Birsan self-published a Medium article sub-titled “How I Hacked into Apple, Microsoft, and Dozens of Different Firms.” What was intelligent about this new assault sort is the way it took benefit of the non-intuitive conduct of package deal managers, permitting an attacker to trick builders into downloading malicious code from an exterior package deal registry relatively than, as deliberate, an inner package deal registry. Whereas just like typosquatting, which was already a minor class in our typology, this assault didn’t really contain a typo. Our authentic definition of software program provide chain safety had already been stretched. We added one other minor class and moved on.
Then in December 2021, Log4shell occurred and the “web was on fireplace.” Now our typology suffered a mortal wound. The sooner typology centered solely on the insertion of malicious code, however the Log4shell vulnerability didn’t contain malicious code. However, Log4shell clearly represented a widespread vulnerability within the software program provide chain. It was an simply exploited and extreme vulnerability, launched by a flaw in a extensively common open supply Java logging library. The episode revealed a vital flaw in our present definition of software program provide chain safety: unintentional safety flaws in extensively used open supply software program had no place. That authentic typology, for the needs of my profession, was lifeless solely 18 months after invention.
Upon reflection, the “provide chain” side of software program provide chain safety suggests the essential ingredient of an improved definition. Software program producers, like producers, have a provide chain. And software program producers, like producers, require inputs after which carry out a producing course of to construct a completed product. In different phrases, a software program producer makes use of parts, developed by third events and themselves, and applied sciences to put in writing, construct, and distribute software program. A vulnerability or compromise of this chain, whether or not executed through malicious code or through the exploitation of an unintentional vulnerability, is what defines software program provide chain safety. I ought to point out {that a} comparable, rival information set maintained by the Atlantic Council makes use of this broader definition. (Full disclosure: I’m now a non-resident fellow on the Atlantic Council. Should you can’t beat ‘em, be a part of ‘em.)