Skip to main content
banner image
venafi logo

Where Exactly Are Code Signing Machine Identities Used?

Where Exactly Are Code Signing Machine Identities Used?

where-are-code-signing-identities-used
April 13, 2022 | Alexa Hernandez

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!

 

Are your code signing machine identities secured? Find out now!
Securing software shipped externally  

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. 

Securing internal software infrastructure  

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. 

Securing software build and delivery processes  

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. 
 

What Are Some Code Signing Use Cases?  
  • Firmware and embedded software  
    Computing devices contain software in many nooks and crannies. Chips and devices (such as a hard drive, mouse, or memory controller) contain embedded software known as firmware. Code signing authenticates that an update to that firmware comes from where it says it comes from and that it hasn’t been modified by a third party. 

 

  • Software drivers and updates  
    Device drivers are privileged processes that run close to a computer’s system kernel, controlling and communicating with hardware components. Code signing machine identities can also be used to secure hardware drivers and operating systems. Signing software drivers protects them against cybercriminals embedding malware on them during the update process.  

 

  • Application software  
    If you intend to distribute software or any type of file over the internet, code signing helps with convenient distribution, confirms the author, and guarantees that the application hasn’t been altered or corrupted since it was signed. Code signing provides peace of mind and builds trust with end-users, making them much more likely to install applications on their machines. It leads to more downloads, more users, and an improved reputation and brand image.  
     
  • IoT devices  
    Today, IoT devices and the software that runs them are involved in almost all aspects of life. And software for these devices is updated frequently over the internet. Without code signing, you can’t trust and verify updates to IoT devices, and that would make unverified devices an easy entry point for attackers.  

 

  • Containers  
    Using containers—such as Kubernetes or Docker—for deploying applications is now a common practice, and the list of container and container orchestration technologies grows regularly. However, the reality is that most containers aren’t particularly well protected. To better protect containers, you should sign the code that runs in the container as well as the container itself. 

 

  • IT infrastructure, including scripting  
    When you digitally sign your scripts and other IT infrastructure with a trusted code signing certificate, you can protect them against inappropriate modification. It’s the best way to give people who use your scripts confidence that you authored them and that they haven’t been tampered with.  

 

  • CI/CD pipelines  
    Developers use continuous integration and continuous deployment (CI/CD) solutions to deliver incremental software improvements and updates. These technologies allow developers to move software through the pipeline from source code to production ready releases. Intermediate artifacts such as source code, third-party libraries, open-source code, build scripts and recipes, and software tools should all be signed to ensure only vetted, authorized versions are being used.  
     
    Although the signing of code is usually automated in some fashion, the securing of code signing credentials, keys, and certificates is not—potentially leaving an organization vulnerable to a wide range of attacks. 
     
What Happens If Code Doesn’t Get Signed? 

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.  

 Related Posts 

Like this blog? We think you will love this.
difference-between-public-and-private-keys
Featured Blog

What Is the Difference Between a Public Key and a Private Key?

Symmetric and asymmetric encryption

Read More
Subscribe to our Weekly Blog Updates!

Join thousands of other security professionals

Get top blogs delivered to your inbox every week

Subscribe Now

See Popular Tags

You might also like

TLS Machine Identity Management for Dummies
eBook

TLS Machine Identity Management for Dummies

Certificate-Related Outages Continue to Plague Organizations
White Paper

CIO Study: Certificate-Related Outages Continue to Plague Organizations

About the author

Alexa Hernandez
Alexa Hernandez

Alexa is the Web Marketing Specialist at Venafi.

Read Posts by Author
get-started-overlay close-overlay cross icon
get-started-overlay close-overlay cross icon

How can we help you?

Thank you!

Venafi will reach out to you within 24 hours. If you need an immediate answer please use our chat to get a live person.

In the meantime, please explore more of our solutions

Explore Solutions

learn more

Email Us a Question

learn more

Chat With Us

learn more