Historically, code signing has been used to protect Windows, Mac OS X, iOS, and Android computing. In the modern enterprise, it is also being used to secure containers, Internet of Things (IoT) software updates, and even software installed on airplanes. In general, code signing is used any place a developer wants a user to be sure of the authenticity of a piece of software.
Indeed, code signing is what allows users to be sure they’re downloading a file from the right author or publisher instead of an attacker who wants to take your information and data. Essentially, code signing lets you know that the code hasn’t been changed by a cybercriminal, so you know it’s safe to install and run on your machine.
Unlike Transport Layer Security (TLS) certificates, which have short expirations and are tied to specific web addresses, code signing certificates and private keys are like a passkey to your entire organization. This means that if unauthorized individuals get access to a private code signing key, they can sign anything and make it appear to come from your organization. Even if you were to revoke a code signing certificate, executables signed with it would still be trusted.
Recently, due to increased occurrences of software supply chain attacks by cybercriminals, code signing has been expanded to include the components that software developers use to build their software. These components include things like source code, third-party software libraries, open-source software, software build automation scripts, and even the tools that the developers use.
Where throughout your network are code signing machine identities being used? Read on to find out!
Signing software before shipping is important because it’s how customers know they can trust the software when they download it from the internet and install. They need to know that it comes from you and not some third-party masquerading as you. And they need to know that it has not been altered during its lifetime by a third party, such as having malware inserted.
A properly signed piece of software informs users whether the software they’ve downloaded and are trying to install can be trusted. It answers the question of where the software comes from and if it has been tampered with since it was signed. Figure 1-2 demonstrates this process.
Your organization relies on many outside software packages for daily operations. But how do you know you can trust all software that’s installed? You need a process for vetting software before users install it. Ideally, you’ll be able to whitelist software and only allow for that software to be installed on your computing resources. Code signing approved third-party software with your own private code signing certificate is a great way to protect it against intrusion or abuse.
In addition, IT teams and other groups may rely on shell scripts to automate critical business functions such as onboarding new employees, backing up critical databases, or performing network security functions. These scripts that developers use can also be considered software, and a malicious third party could modify them to breach sensitive data. Therefore, these types of automation scripts should also be protected by being signed.
The software your company uses, including the software that your employees install, could’ve had malware inserted along the way. Sure, your company has anti-malware scanners and antivirus software, but cybercriminals are still finding a way through. Code signing is proven to effectively deter this.
Some savvy cybercriminals are now software developers and have gotten smarter with their attacks. Being thwarted by code signing of final software executables, they are now targeting the software build infrastructure, inserting their malware before it’s assembled into a final software executable. This, along with the fact that most organizations now follow DevOps and digital transformation initiatives where business relies on more software, released faster than ever, makes most organizations vulnerable to these types of attacks.
If your software teams haven’t started securing their software build environments with code signing, act now. These types of attacks are becoming more prevalent. Work with your software teams and explain the dangers of not protecting their build automation scripts, source code, and other tools used to build their software.
If your organization doesn’t sign code, you can expose your business to significant risk of cybercriminal attacks that could harm your brand reputation, impact your sales, and create legal or regulatory liability.
If you aren’t properly securing your code signing processes, cybercriminals who infiltrate your network could sign your software with their own code signing certificates and use it for nefarious purposes. You’ll be increasing organizational risk if you’re not properly code signing all software in your organization, and you could inadvertently open your organization to malicious software running undetected in your environment. This is why a solution such as Venafi CodeSign Protect is so important for your organization.