Secure coding

Secure coding — Top 15 code analysis tools

Beth Osborne
March 18, 2019 by
Beth Osborne

Keeping code secure is a top objective for any software company. And to ensure secure coding, you need to perform code analysis during the development life cycle.

While manual review of code was once the only option, now there are plenty of tools that can take care of this in an automated fashion. This is referred to as static code analysis, and the technique works quickly, scanning each line of code to identify any security flaws or gaps.

Learn Secure Coding

Learn Secure Coding

Build your secure coding skills in C/C++, iOS, Java, .NET, Node.js, PHP and other languages.

The use of code analysis tools offers many advantages. Automation saves time and resources so that coders can focus on other aspects during the life cycle. By adopting static code analysis procedures, organizations can ensure they are delivering secure and reliable software. By implementing the process early, security issues are found sooner and resolved.

Let’s look at 15 code analysis tools, their capabilities and why they might be something you’ll want to use.

The top 15

VisualCodeGrepper

  • Open-source
  • Works with C++, C#, VB, PHP, Java and PL/SQL
  • Tracks insecurities in code

VisualCodeGrepper is a must-use tool because it works fast, so if you don’t have a lot of time, it can be a lifesaver. Plus, it has a config file for each language that allows users to add bad functions for which to search. At the end of the scan, you’ll get a handy pie chart showing what the scan found.

Download it here.

Coverity

  • Open-source
  • Works with C, C++, C#, Objective-C, Java, JavaScript, node JS, Ruby, PHP and Python
  • Supports 100 compilers
  • Delivers a clear description of root causes of code issues
  • Vulnerabilities scanned for include resources leaks, NULL pointers, incorrect usage of APIs, use of uninitialized data, memory corruptions, buffer overruns, control flow, error handling, concurrency, insecure data, unsafe use of signed values and use of resources that have been freed

One of the best things about Coverity is that it finds the root cause of errors so you can easily make the changes needed. It also uses static analysis to find code defects, but the code under examination isn’t executed.

Sign up here.

Veracode

  • Commercial
  • SaaS model
  • Finds security flaws in application binary code, compiled or byte code
  • Tests multiple applications at once
  • Automates disparate workflows
  • Works with .NET (C#, ASP.NET, VB.NET), Java (Java SE, Java EE, JSP), C/C++, JavaScript (including AngularJS, Node.js and jQuery), Python, PHP, Ruby on Rails, ColdFusion, Classic ASP, including mobile applications on the iOS and Android platforms and written in JavaScript cross-platform frameworks

Veracode belongs in your suite of tools because it enables you to manage your complete application security program on one platform. This is especially important if you need to scale your process. Veracode provides visibility into application status across all testing types.

Learn more here.

Cppcheck

  • Open-source
  • Supports the entire C language family
  • Identified bugs that compilers don’t recognize
  • Reveals specific mistakes in code
  • Modes: command line mode and graphic user interface

This tool assists coders with command line interface and graphical interface. It specializes in detecting undefined behavior. The focus for this tool is on bugs rather than stylistic issues.

Check it out here.

Clang

  • Works with C, C++ and objective-C
  • Open-source
  • Expressive diagnostics
  • Fast compiles and low memory use
  • GCC compatible
  • Scans for bugs and code errors

You can use Clang as a standalone tool or within Xcode. It uses a collection of algorithms and techniques to analyze source code in order to find bugs faster and more comprehensively.

See how it works here.

RIPS

  • Detects security vulnerabilities for PHP codes
  • Provides an integrated code audit framework
  • Open-source
  • Tokenizes and parses all source code
  • Finds sensitive vulnerabilities that can be tainted by user input

Use RIPS to find security issues in minutes, not days. You’ll receive meaningful findings, so you aren’t wasting precious time. It easily integrates into DevOps tools as well. You can use an on-premises version or a SaaS version, depending on your specific needs. You can also track your application security progress, identify risks and fix them early.

Take a product tour here.

Flawfinder

  • Reports possible threats and sorts by risk level
  • Open-source, written in Python
  • Uses a command line interface
  • Supports C/C++
  • Common Weakness Enumeration compatible
  • Works by using a built-in database of C/C++ functions with well-known problems

Flawfinder is another static analysis tool known for its speed and reporting features. Flawfinder is easy to install, and you can use a pre-packaged version to simplify the process further. You can use your own Web browser to display results as well.

Download it here.

DevBug

  • Written in JavaScript
  • Open-source
  • Supports PHP codes
  • Checks codes for any errors

DevBug is specific to PHP static code analysis. You can use the platform to scan code to find errors, but you can also write code directly within it. DevBug has a code editor and informational panel, if you prefer to have two panels when checking code.

Find it here.

SonarQube

  • Open-source
  • Supports ABAP, Android (Java), C, C++, CSS, Objective-C, COBOL, C#, Flex, Forms, Groovy, Java, JavaScript, Natural, PHP, PL/SQL, Swift, Visual Basic 6, Web, XML, Python and several plug-ins
  • Offers metrics about your code
  • Provides continuous inspection
  • Code analyzers are equipped with path sensitive dataflow engines to identify null-pointer derefences, logic errors, resource leaks, “smelly” code, security vulnerabilities and more

SonarQube is based on continuous inspection. It allows you to check the health of an application while also identifying new issues. It has a Quality Gate, which lets you fix problems and improve the overall quality of code and workflows. Even the trickiest issues won’t get past this tool! You’ll be able to centralize activities so that there is a shared vision of code and it integrates with DevOps systems.

Download it here.

PVS-Studio

  • Commercial
  • Supports C, C++, C# and Java
  • Wide range of code checks; also searches for misprints and copy-paste errors
  • Can integrate into Visual Studio development environments

PVS-Studio is a robust tool that looks for many types of issues, including searching for misprints and copy-paste errors. This tool integrates into Visual Studio development for ease of use. PVS-Studio for Windows, Linux and macOS offers extra help by gathering information about compiler launches and can analyze source code intended for 32-bit, 64-bit and embedded ARM platforms.

Try it out here.

Kiuwan

  • Commercial
  • SAST and SCA platform
  • DevSecsOps approach
  • Scalable
  • Scans and identifies vulnerabilities, including coverage of integrations

The biggest advantage of Kiuwan is that it helps eliminate security bottlenecks. You don’t have to analyze code on central servers; instead, Kiuwan has a distributed engine with remarkable speed. It’s highly scalable, too, so it’s perfect for large enterprises with lots of developers.

Start a free trial here.

Kritika

  • Commercial
  • Checks for code style, code “smells,” complexity and duplications
  • Integrates with GitHub, BitBucket and GitLab
  • Analyzing opens source projects if free; progressive pricing depending on the amount of code
  • Supports Perl5, PHP, Python, Java, JavaScript, JSX, TypeScript, C, C++, Bash, Markdown, SQL and Text

Kritika has many features that are beneficial to coders. You can create an organization and add collaborators to include your team. The number of users also doesn’t impact the price. There is a free version, but it doesn’t allow for private repositories. This tool detects bad smells, best practices violations, errors and more with each violation attached to the specific line of code, which is very useful when you have a lot of code.

Learn more here.

Gamma

  • Commercial
  • Prioritizes “hotspots” in the code and offers clear visualizations
  • Multi-vector diagnostic technology
  • Identifies critical performance issues, such as changeability, sustainability, reusability and accuracy
  • Integrates with IDEs
  • Supports C, C++, C#, Java, Objective-C, JavaScript, TypeScript, Python, PHP, Go, Kotlin and Solidity

Gamma leads with anti-pattern detection algorithms that then identify structural issues in your code. Gamma also prides itself on delivering a great user experience, so it’s not clunky like some tools can be. They use dashboards and infographics to help you better understand your results.

Get a free account here.

Code Compare

  • Resolves merge conflicts and deploys source code changes
  • Open-source
  • Free version available or paid version
  • Integrates with TFS, SVN, Git, Mercurial and Perforce
  • Standalone diff tool or Visual Studio extension
  • Supports C#, C++, Visual Basic, JavaScript, Java and XML

Code Compare is slightly different kind of tool, so it’s worth adding to your collection. It’s designed to compare and merge files and folders. You can use it as a standalone tool or as a Visual Studio extension. When identifying issues, you’ll see colored blocks for inserted, deleted or modified text. You can edit files on the fly and click for a quick merge.

Download it here.

Parasoft

  • Commercial
  • Versions for C/C++, Java, .NET and more
  • 35 patents in software testing
  • 30 years in the business

Parasoft is somewhat different than other static analysis testing tools. That’s because it supports various types of static analysis techniques, including pattern-based, flow-based, third-party analysis, and metrics and multivariate analysis. It also has a feature that prevents defects.

Try it out here.

Learn Secure Coding

Learn Secure Coding

Build your secure coding skills in C/C++, iOS, Java, .NET, Node.js, PHP and other languages.

Conclusion

With so many tools to choose from, you’ll want to evaluate your needs and choose tools that have the specific features you need. While it may be tempting to stick with free tools, you may opt to use both a free and paid tool for a more comprehensive analysis.

Beth Osborne
Beth Osborne