This repository lists static analysis tools for all
programming languages, build tools, config files and more.
The official website,
analysis-tools.dev is based on
this repository and adds rankings, user comments, and additional resources
like videos for each tool.
What is Static Analysis?
Static program analysis is the analysis of computer software that is
performed without actually executing programs —
Wikipedia
The most important thing I have done as a programmer in recent years is
to aggressively pursue static code analysis. Even more valuable than the
hundreds of serious bugs I have prevented with it is the change in
mindset about the way I view software reliability and code quality. —
John Carmack (Creator of Doom)
Sponsors
This project would not be possible without the generous support of our
sponsors.
If you also want to support this project, head over to our
Github sponsors page.
Meaning of Symbols:
:copyright: stands for proprietary software. All other tools are Open
Source.
:information_source: indicates that the community does not recommend to
use this tool for new projects anymore. The icon links to the discussion
issue.
:warning: means that this tool was not updated for more than 1 year, or
the repo was archived.
abaplint - Linter for ABAP, written
in TypeScript.
abapOpenChecks - Enhances
the SAP Code Inspector with new and customizable checks.
Ada
Codepeer :copyright: -
Detects run-time and logic errors.
Polyspace for Ada
:copyright: - Provide code verification that proves the absence of
overflow, divide-by-zero, out-of-bounds array access, and certain other
run-time errors in source code.
SPARK :copyright: -
Static analysis and formal verification toolset for Ada.
Assembly
STOKE - A programming-language
agnostic stochastic optimizer for the x86_64 instruction set. It uses
random search to explore the extremely high-dimensional space of all
possible program transformations.
Awk
gawk –lint
- Warns about constructs that are dubious or nonportable to other awk
implementations.
C
Astrée :copyright:
- Astrée automatically proves the absence of runtime errors and invalid
concurrent behavior in C/C++ applications. It is sound for
floating-point computations, very fast, and exceptionally precise. The
analyzer also checks for MISRA/CERT/CWE/Adaptive Autosar coding rules
and supports qualification for ISO 26262, DO-178C level A, and other
safety standards. Jenkins and Eclipse plugins are available.
CBMC - Bounded model-checker
for C programs, user-defined assertions, standard assertions, several
coverage metric analyses.
clazy - Qt-oriented static
code analyzer based on the Clang framework. clazy is a compiler plugin
which allows clang to understand Qt semantics. You get more than 50 Qt
related compiler warnings, ranging from unneeded memory allocations to
misusage of API, including fix-its for automatic refactoring.
CMetrics -
Measures size and complexity for C files.
CPAchecker - A tool for
configurable software verification of C programs. The name CPAchecker
was chosen to reflect that the tool is based on the CPA concepts and is
used for checking software programs.
CScout - Complexity and
quality metrics for for C and C preprocessor code.
ESBMC - ESBMC is an open source,
permissively licensed, context-bounded model checker based on
satisfiability modulo theories for the verification of single- and
multi-threaded C/C++ programs.
flint++ -
Cross-platform, zero-dependency port of flint, a lint program for C++
developed and used at Facebook.
Frama-C - A sound and extensible static
analyzer for C code.
Helix QAC
:copyright: - Enterprise-grade static analysis for embedded software.
Supports MISRA, CERT, and AUTOSAR coding standards.
IKOS - A sound static
analyzer for C/C++ code based on LLVM.
Joern - Open-source code analysis
platform for C/C++ based on code property graphs
LDRA :copyright: - A tool suite including
static analysis (TBVISION) to various standards including MISRA C &
C++, JSF++ AV, CWE, CERT C, CERT C++ & Custom Rules.
PC-lint :copyright: - Static
analysis for C/C++. Runs natively under Windows/Linux/MacOS. Analyzes
code for virtually any platform, supporting C11/C18 and C++17.
Phasar - A LLVM-based static analysis
framework which comes with a taint and type state analysis.
Polyspace Bug Finder
:copyright: - Identifies run-time errors, concurrency issues, security
vulnerabilities, and other defects in C and C++ embedded software.
Polyspace Code Prover
:copyright: - Provide code verification that proves the absence of
overflow, divide-by-zero, out-of-bounds array access, and certain other
run-time errors in C and C++ source code.
scan-build
- Analyzes C/C++ code using LLVM at compile-time.
splint - Annotation-assisted static
program checker.
SVF - A static tool that
enables scalable and precise interprocedural dependence analysis for C
and C++ programs.
vera++
- Vera++ is a programmable tool for verification, analysis and
transformation of C++ source code.
C#
.NET Analyzers - An
organization for the development of analyzers (diagnostics and code
fixes) using the .NET Compiler Platform.
ArchUnitNET - A C#
architecture test library to specify and assert architecture rules in C#
for automated testing.
Code Analysis Rule Collection
:warning: - Contains a set of diagnostics, code fixes and refactorings
built on the Microsoft .NET Compiler Platform “Roslyn”.
code-cracker - An analyzer
library for C# and VB that uses Roslyn to produce refactorings, code
analysis, and other niceties.
CSharpEssentials
- C# Essentials is a collection of Roslyn diagnostic analyzers, code
fixes and refactorings that make it easy to work with C# 6 language
features.
Designite :copyright: -
Designite supports detection of various architecture, design, and
implementation smells, computation of various code quality metrics, and
trend analysis.
Gendarme
- Gendarme inspects programs and libraries that contain code in ECMA CIL
format (Mono and .NET).
Infer# -
InferSharp (also referred to as Infer#) is an interprocedural and
scalable static code analyzer for C#. Via the capabilities of Facebook’s
Infer, this tool detects null pointer dereferences and resource leaks.
NDepend :copyright: - Measure,
query and visualize your code and avoid unexpected issues, technical
debt and complexity.
Puma Scan - Puma Scan provides
real time secure code analysis for common vulnerabilities (XSS, SQLi,
CSRF, LDAPi, crypto, deserialization, etc.) as development teams write
code in Visual Studio.
Roslynator - A
collection of 190+ analyzers and 190+ refactorings for C#, powered by
Roslyn.
VSDiagnostics -
A collection of static analyzers based on Roslyn that integrates with
VS.
Astrée :copyright:
- Astrée automatically proves the absence of runtime errors and invalid
concurrent behavior in C/C++ applications. It is sound for
floating-point computations, very fast, and exceptionally precise. The
analyzer also checks for MISRA/CERT/CWE/Adaptive Autosar coding rules
and supports qualification for ISO 26262, DO-178C level A, and other
safety standards. Jenkins and Eclipse plugins are available.
CBMC - Bounded model-checker
for C programs, user-defined assertions, standard assertions, several
coverage metric analyses.
clazy - Qt-oriented static
code analyzer based on the Clang framework. clazy is a compiler plugin
which allows clang to understand Qt semantics. You get more than 50 Qt
related compiler warnings, ranging from unneeded memory allocations to
misusage of API, including fix-its for automatic refactoring.
CMetrics -
Measures size and complexity for C files.
CScout - Complexity and
quality metrics for for C and C preprocessor code.
ESBMC - ESBMC is an open source,
permissively licensed, context-bounded model checker based on
satisfiability modulo theories for the verification of single- and
multi-threaded C/C++ programs.
flint++ -
Cross-platform, zero-dependency port of flint, a lint program for C++
developed and used at Facebook.
Frama-C - A sound and extensible static
analyzer for C code.
Helix QAC
:copyright: - Enterprise-grade static analysis for embedded software.
Supports MISRA, CERT, and AUTOSAR coding standards.
IKOS - A sound static
analyzer for C/C++ code based on LLVM.
Joern - Open-source code analysis
platform for C/C++ based on code property graphs
LDRA :copyright: - A tool suite including
static analysis (TBVISION) to various standards including MISRA C &
C++, JSF++ AV, CWE, CERT C, CERT C++ & Custom Rules.
PC-lint :copyright: - Static
analysis for C/C++. Runs natively under Windows/Linux/MacOS. Analyzes
code for virtually any platform, supporting C11/C18 and C++17.
Phasar - A LLVM-based static analysis
framework which comes with a taint and type state analysis.
Polyspace Bug Finder
:copyright: - Identifies run-time errors, concurrency issues, security
vulnerabilities, and other defects in C and C++ embedded software.
Polyspace Code Prover
:copyright: - Provide code verification that proves the absence of
overflow, divide-by-zero, out-of-bounds array access, and certain other
run-time errors in C and C++ source code.
scan-build
- Analyzes C/C++ code using LLVM at compile-time.
splint - Annotation-assisted static
program checker.
SVF - A static tool that
enables scalable and precise interprocedural dependence analysis for C
and C++ programs.
vera++
- Vera++ is a programmable tool for verification, analysis and
transformation of C++ source code.
Clojure
clj-kondo - A linter
for Clojure code that sparks joy. It informs you about potential errors
while you are typing.
CoffeeScript
coffeelint - A style checker
that helps keep CoffeeScript code clean and consistent.
Fix Insight
:copyright: - A free IDE Plugin for static code analysis. A
Pro edition includes a command line tool for automation
purposes.
Pascal Analyzer
:copyright: - A static code analysis tool with numerous reports. A free
Lite version is available with limited reporting.
Pascal Expert
:copyright: - IDE plugin for code analysis. Includes a subset of Pascal
Analyzer reporting capabilities and is available for Delphi versions
2007 and later.
Dlang
D-scanner -
D-Scanner is a tool for analyzing D source code.
Elixir
credo - A static code
analysis tool with a focus on code consistency and teaching.
dialyxir - Mix tasks
to simplify use of Dialyzer in Elixir projects.
sobelow -
Security-focused static analysis for the Phoenix Framework.
Elm
elm-analyse - A tool
that allows you to analyse your Elm code, identify deficiencies and
apply best practices.
elm-review
- Analyzes whole Elm projects, with a focus on shareable and custom
rules written in Elm that add guarantees the Elm compiler doesn’t give
you.
Erlang
dialyzer - The
DIALYZER, a DIscrepancy AnaLYZer for ERlang programs. Dialyzer is a
static analysis tool that identifies software discrepancies, such as
definite type errors, code that has become dead or unreachable because
of programming error, and unnecessary tests, in single Erlang modules or
entire (sets of) applications. Dialyzer starts its analysis from either
debug-compiled BEAM bytecode or from Erlang source code. The file and
line number of a discrepancy is reported along with an indication of
what the discrepancy is about. Dialyzer bases its analysis on the
concept of success typings, which allows for sound warnings (no false
positives).
Primitive Erlang Security Tool (PEST)
- A tool to do a basic scan of Erlang source code and report any
function calls that may cause Erlang source code to be insecure.
errcheck - Check that
error return values are used.
errwrap - Wrap and fix Go
errors with the new %w verb directive. This tool analyzes fmt.Errorf()
calls and reports calls that contain a verb directive that is different
than the new %w verb directive introduced in Go v1.13. It’s also capable
of rewriting calls to use the new %w wrap verb directive.
flen - Get info on length
of functions in a Go package.
go tool vet –shadow
- Reports variables that may have been unintentionally shadowed.
go vet - Examines Go source
code and reports suspicious.
go-consistent -
Analyzer that helps you to make your Go programs more consistent.
go-critic - Go
source code linter that maintains checks which are currently not
implemented in other linters.
go/ast - Package ast
declares the types used to represent syntax trees for Go packages.
HLint - HLint is a
tool for suggesting possible improvements to Haskell code.
Stan - Stan is a
command-line tool for analysing Haskell projects and outputting
discovered vulnerabilities in a helpful way with possible solutions for
detected problems.
Weeder - A tool for
detecting dead exports or package imports in Haskell code.
Haxe
Haxe Checkstyle
- A static analysis tool to help developers write Haxe code that adheres
to a coding standard.
checkstyle - Checking Java source
code for adherence to a Code Standard or set of validation rules (best
practices).
ck - Calculates
Chidamber and Kemerer object-oriented metrics by processing the source
Java files.
ckjm - Calculates
Chidamber and Kemerer object-oriented metrics by processing the bytecode
of compiled Java files.
CogniCrypt - Checks
Java source and byte code for incorrect uses of cryptographic APIs.
DesigniteJava
:copyright: - DesigniteJava supports detection of various architecture,
design, and implementation smells along with computation of various code
quality metrics.
Doop - Doop is a
declarative framework for static analysis of Java/Android programs,
centered on pointer analysis algorithms. Doop provides a large variety
of analyses and also the surrounding scaffolding to run an analysis
end-to-end (fact generation, processing, statistics, etc.).
Error-prone - Catch common Java
mistakes as compile-time errors.
fb-contrib - A plugin
for FindBugs with additional bug detectors.
forbidden-apis
- Detects and forbids invocations of specific method/class/field (like
reading from a text stream without a charset). Maven/Gradle/Ant
compatible.
qulice - Combines a few
(pre-configured) static analysis tools (checkstyle, PMD, Findbugs, …).
Soot - A framework for
analyzing and transforming Java and Android applications.
Spoon - Spoon is a
metaprogramming library to analyze and transform Java source code (incl
Java 9, 10, 11, 12, 13, 14). It parses source files to build a
well-designed AST with powerful analysis and transformation API. Can be
integrated in Maven and Gradle.
SpotBugs - SpotBugs is
FindBugs’ successor. A tool for static analysis to look for bugs in Java
code.
JavaScript
aether - Lint, analyze, normalize,
transform, sandbox, run, step through, and visualize user JavaScript, in
node or the browser.
Closure Compiler
- A compiler tool to increase efficiency, reduce size, and provide code
warnings in JavaScript files.
ClosureLinter
:warning: - Ensures that all of your project’s JavaScript code follows
the guidelines in the Google JavaScript Style Guide. It can also
automatically fix many common errors.
complexity-report
:warning: - Software complexity analysis for JavaScript projects.
DeepScan :copyright: - An analyzer for
JavaScript which targets runtime errors and quality issues rather than
coding conventions.
diktat - Strict coding
standard for Kotlin and a linter that detects and auto-fixes code
smells.
ktlint - An anti-bikeshedding
Kotlin linter with built-in formatter.
Lua
luacheck - A tool for
linting and static analysis of Lua code.
lualint - lualint
performs luac-based static analysis of global variable usage in Lua
source code.
Luanalysis
- An IDE for statically typed Lua development.
MATLAB
mlint
:copyright: - Check MATLAB code files for possible problems.
Nim
DrNim - DrNim
combines the Nim frontend with the Z3 proof engine in order to allow
verify / validate software written in Nim.
nimfmt - Nim
code formatter / linter / style checker
Ocaml
Sys - A static/symbolic
Tool for finding bugs in (browser) code. It uses the LLVM AST to find
bugs like uninitialized memory access.
VeriFast - A tool for
modular formal verification of correctness properties of single-threaded
and multithreaded C and Java programs annotated with preconditions and
postconditions written in separation logic. To express rich
specifications, the programmer can define inductive datatypes, primitive
recursive pure functions over these datatypes, and abstract separation
logic predicates.
PHP
churn-php - Helps
discover good candidates for refactoring.
PHP Coding Standards Fixer - Fixes
your code according to standards like PSR-1, PSR-2, and the Symfony
standard.
PHP Insights - Instant PHP quality
checks from your console. Analysis of code quality and coding style as
well as overview of code architecture and its complexity.
PhpDeprecationDetector
- Analyzer of PHP code to search issues with deprecated functionality in
newer interpreter versions. It finds removed objects (functions,
variables, constants and ini-directives), deprecated functions
functionality, and usage of forbidden names or tricks (e.g. reserved
identifiers in newer versions).
phpdoc-to-typehint
- Add scalar type hints and return types to existing PHP projects using
PHPDoc annotations.
phpDocumentor - Analyzes PHP source
code to generate documentation.
phploc - A
tool for quickly measuring the size and analyzing the structure of a PHP
project.
twig-lint - twig-lint
is a lint tool for your twig files.
WAP
- Tool to detect and correct input validation vulnerabilities in PHP
(4.0 or higher) web applications and predicts false positives by
combining static analysis and data mining.
PL/SQL
ZPA - Z PL/SQL Analyzer
(ZPA) is an extensible code analyzer for PL/SQL and Oracle SQL. It can
be integrated with SonarQube.
Perl
Perl::Critic -
Critique Perl source code for best-practices.
Python
bandit - A tool to
find common security issues in Python code.
bellybutton -
A linting engine supporting custom project-specific rules.
Bowler - Safe code refactoring for
modern Python. Bowler is a refactoring tool for manipulating Python at
the syntax tree level. It enables safe, large scale code modifications
while guaranteeing that the resulting code compiles and runs. It
provides both a simple command line interface and a fluent API in Python
for generating complex code modifications in code.
cohesion - A tool
for measuring Python class cohesion.
Dlint - A tool for
ensuring Python code is secure.
fixit - A framework for
creating lint rules and corresponding auto-fixes for source code.
InspectorTiger - IT,
Inspector Tiger, is a modern python code review tool / framework. It
comes with bunch of pre-defined handlers which warns you about
improvements and possible bugs. Beside these handlers, you can write
your own or use community ones.
jedi -
Autocompletion/static analysis library for Python.
linty fresh - Parse
lint errors and report them to Github as comments on a pull request.
pylint - Looks for
programming errors, helps enforcing a coding standard and sniffs for
some code smells. It additionally includes pyreverse (an
UML diagram generator) and symilar (a similarities
checker).
pyre-check - A fast, scalable type
checker for large Python codebases.
pyright - Static type
checker for Python, created to address gaps in existing tools like mypy.
pyroma - Rate how well a
Python project complies with the best practices of the Python packaging
ecosystem, and list issues that could be improved.
Pysa - A tool
based on Facebook’s pyre-check to identify potential security issues in
Python code identified with taint analysis.
PyT - Python Taint
:warning: - A static analysis tool for detecting security
vulnerabilities in Python web applications.
C2Rust - C2Rust helps you migrate
C99-compliant code to Rust. The translator (or transpiler) produces
unsafe Rust code that closely mirrors the input C code.
cargo udeps - Find
unused dependencies in Cargo.toml. It either prints out a “unused
crates” line listing the crates, or it prints out a line saying that no
crates were unused.
cargo-deny - A
cargo plugin for linting your dependencies. It can be used either as a
command line too, a Rust crate, or a Github action for CI. It checks for
valid license information, duplicate crates, security vulnerabilities,
and more.
cargo-expand -
Cargo subcommand to show result of macro expansion and #[derive]
expansion applied to the current crate. This is a wrapper around a more
verbose compiler command.
cargo-inspect -
Inspect Rust code without syntactic sugar to see what the compiler does
behind the curtains.
cargo-spellcheck
- Checks all your documentation for spelling and grammar mistakes with
hunspell (ready) and languagetool (preview)
clippy - A code
linter to catch common mistakes and improve your Rust code.
dylint
- A tool for running Rust lints from dynamic libraries. Dylint makes it
easy for developers to maintain their own personal lint collections.
electrolysis - A tool
for formally verifying Rust programs by transpiling them into
definitions in the Lean theorem prover.
herbie - Adds
warnings or errors to your crate when using a numerically unstable
floating point expression.
linter-rust -
Linting your Rust-files in Atom, using rustc and cargo.
MIRAI - And
abstract interpreter operating on Rust’s mid-level intermediate
language, and providing warnings based on taint analysis.
prae - Provides a
convenient macro that allows you to generate type wrappers that promise
to always uphold arbitrary invariants that you specified.
Prusti - A
static verifier for Rust, based on the Viper verification
infrastructure. By default Prusti verifies absence of panics by proving
that statements such as unreachable!() and panic!() are unreachable.
Rudra :copyright: -
Rust Memory Safety & Undefined Behavior Detection. It is capable of
analyzing single Rust packages as well as all the packages on crates.io.
Rust Language Server
- Supports functionality such as ‘goto definition’, symbol search,
reformatting, and code completion, and enables renaming and
refactorings.
rust-analyzer - Supports
functionality such as ‘goto definition’, type inference, symbol search,
reformatting, and code completion, and enables renaming and
refactorings.
rust-audit - Audit
Rust binaries for known bugs or security vulnerabilities. This works by
embedding data about the dependency tree (Cargo.lock) in JSON format
into a dedicated linker section of the compiled executable.
rustfix - Read and
apply the suggestions made by rustc (and third-party lints, like those
offered by clippy).
rustfmt - A tool for
formatting Rust code according to style guidelines.
RustViz - RustViz is a
tool that generates visualizations from simple Rust programs to assist
users in better understanding the Rust Lifetime and Borrowing mechanism.
It generates SVG files with graphical indicators that integrate with
mdbook to render visualizations of data-flow in Rust programs.
warnalyzer - Show
unused code from multi-crate Rust projects
SQL
dbcritic - dbcritic
finds problems in a database schema, such as a missing primary key
constraint in a table.
sqlcheck -
Automatically identify anti-patterns in SQL queries.
SQLFluff - Multiple dialect SQL
linter and formatter.
TSqlRules - TSQL
Static Code Analysis Rules for SQL Server.
Visual Expert :copyright: -
Code analysis for PowerBuilder, Oracle, and SQL Server Explores,
analyzes, and documents Code
Scala
linter - Linter is a
Scala static analysis compiler plugin which adds compile-time checks for
various possible bugs, inefficiencies, and style problems.
Scalastyle - Scalastyle examines
your Scala code and indicates potential problems with it.
scapegoat - Scala
compiler plugin for static code analysis.
Test Design Studio
:copyright: - A full IDE with static code analysis for Micro Focus
Unified Functional Testing VBScript-based automated tests.
Vim Script
vint - Fast and Highly
Extensible Vim script Language Lint implemented by Python.
Multiple languages
ale - Asynchronous Lint Engine
for Vim and NeoVim with support for many languages.
Android Studio -
Based on IntelliJ IDEA, and comes bundled with tools for Android
including Android Lint.
AppChecker
:copyright: - Static analysis for C/C++/C#, PHP and Java.
Application Inspector
:copyright: - Commercial Static Code Analysis which generates exploits
to verify vulnerabilities.
ApplicationInspector
- Creates reports of over 400 rule patterns for feature detection
(e.g. the use of cryptography or version control in apps).
APPscreener :copyright: -
Static code analysis for binary and source code - Java/Scala, PHP,
Javascript, C#, PL/SQL, Python, T-SQL, C/C++, ObjectiveC/Swift, Visual
Basic 6.0, Ruby, Delphi, ABAP, HTML5 and Solidity.
ArchUnit - Unit test your Java or
Kotlin architecture.
Atom-Beautify -
Beautify HTML, CSS, JavaScript, PHP, Python, Ruby, Java, C, C++, C#,
Objective-C, CoffeeScript, TypeScript, Coldfusion, SQL, and more in Atom
editor.
Axivion Bauhaus Suite
:copyright: - Tracks down error-prone code locations, style violations,
cloned or dead code, cyclic dependencies and more for C/C++, C#/.NET,
Java and Ada 83/Ada 95.
Better Code Hub :copyright: -
Better Code Hub checks your GitHub codebase against 10 engineering
guidelines devised by the authority in software quality, Software
Improvement Group.
brakeman - A static analysis
security vulnerability scanner for Ruby on Rails applications.
cargo-bloat -
Find out what takes most of the space in your executable. supports ELF
(Linux, BSD), Mach-O (macOS) and PE (Windows) binaries.
CAST Highlight
:copyright: - Commercial Static Code Analysis which runs locally, but
uploads the results to its cloud for presentation.
ciocheck - Linter,
formatter and test suite helper. As a linter, it is a wrapper around
pep8, pydocstyle, flake8, and
pylint.
ClassGraph - A
classpath and module path scanner for querying or visualizing class
metadata or class relatedness.
Clayton :copyright: -
AI-powered code reviews for Salesforce. Secure your developments,
enforce best practice and control your technical debt in real-time.
coala - Language independent framework
for creating code analysis - supports
over 60 languages by default.
Codacy :copyright: - Code Analysis
to ship Better Code, Faster.
Code Inspector :copyright:
- Code quality and technical debt management platform that supports 10+
languages.
Code Intelligence
:copyright: - CI/CD-agnostic DevSecOps platform which combines
industry-leading fuzzing engines for finding bugs and visualizing code
coverage
Codeac
:copyright: - Automated code review tool integrates with GitHub,
Bitbucket and GitLab (even self-hosted). Available for JavaScript,
TypeScript, Python, Ruby, Go, PHP, Java, Docker, and more. (open-source
free)
codeburner - Provides
a unified interface to sort and act on the issues it finds.
codechecker -
A defect database and viewer extension for the Clang Static Analyzer
with web GUI.
CodeFactor :copyright: - Automated
Code Analysis for repos on GitHub or BitBucket.
CodeFlow :copyright: -
Automated code analysis tool to deal with technical depth. Integrates
with Bitbucket and Gitlab. (free for Open Source Projects)
CodeIt.Right
:copyright: - CodeIt.Right™ provides a fast, automated way to ensure
that your source code adheres to (your) predefined design and style
guidelines as well as best coding practices.
CodePatrol
:copyright: - Automated SAST code reviews driven by security, supports
15+ languages and includes security training.
codeql - Deep code
analysis - semantic queries and dataflow for several languages with
VSCode plugin support.
Coderrect :copyright: - Advanced
static analyzer for multi-threaded software. Supports OpenMP, Pthreads,
std::thread, and GPU/CUDA.
CodeRush
:copyright: - Code creation, debugging, navigation, refactoring,
analysis and visualization tools that use the Roslyn engine in Visual
Studio 2015 and up.
CodeScan :copyright: - Code
Quality and Security for Salesforce Developers. Made exclusively for the
Salesforce platform, CodeScan’s code analysis solutions provide you with
total visibility into your code health.
CodeScene :copyright: - CodeScene is
a quality visualization tool for software. Prioritize technical debt,
detect delivery risks, and measure organizational aspects. Fully
automated.
CodeSonar from GrammaTech
:copyright: - Advanced, whole program, deep path, static analysis of C,
C++, Java and C# with easy-to-understand explanations and code and path
visualization.
Corrode :warning: -
Semi-automatic translation from C to Rust. Could reveal bugs in the
original implementation by showing Rust compiler warnings and errors.
Superseded by C2Rust.
Coverity
:copyright: - Synopsys Coverity supports 20 languages and over 70
frameworks including Ruby on rails, Scala, PHP, Python, JavaScript,
TypeScript, Java, Fortran, C, C++, C#, VB.NET.
cqc - Check your code
quality for js, jsx, vue, css, less, scss, sass and styl files.
dawnscanner - A
static analysis security scanner for ruby written web applications. It
supports Sinatra, Padrino and Ruby on Rails frameworks.
DeepCode :copyright: - DeepCode
finds bugs, security vulnerabilities, performance and API issues based
on AI. DeepCode’s speed of analysis allow us to analyse your code in
real time and deliver results when you hit the save button in your IDE.
Supported languages are Java, C/C++, JavaScript, Python, and TypeScript.
Integrations with GitHub, BitBucket and Gitlab.
DeepSource :copyright: - In-depth
static analysis to find issues in verticals of bug risks, security,
anti-patterns, performance, documentation and style. Native integrations
with GitHub, GitLab and Bitbucket. Less than 5% false positives.
Depends -
Analyses the comprehensive dependencies of code elements for Java,
C/C++, Ruby.
DevSkim - Regex-based
static analysis tool for Visual Studio, VS Code, and Sublime Text -
C/C++, C#, PHP, ASP, Python, Ruby, Java, and others.
Embold :copyright: - Intelligent
software analytics platform that identifies design issues, code issues,
duplication and metrics. Supports Java, C, C++, C#, JavaScript,
TypeScript, Python, Go, Kotlin and more.
Enlightn - A static and
dynamic analysis tool for Laravel applications that provides
recommendations to improve the performance, security and code
reliability of Laravel apps. Contains 120 automated checks.
ESLint - An extensible
linter for JS, following the ECMAScript standard.
exakat - An automated code reviewing
engine for PHP.
Find Security Bugs - The
SpotBugs plugin for security audits of Java web applications and Android
applications. (Also work with Kotlin, Groovy and Scala projects)
flake8 - A wrapper around
pyflakes, pycodestyle and mccabe.
Fortify
:copyright: - A commercial static analysis platform that supports the
scanning of C/C++, C#, VB.NET, VB6, ABAP/BSP, ActionScript, Apex,
ASP.NET, Classic ASP, VB Script, Cobol, ColdFusion, HTML, Java, JS, JSP,
MXML/Flex, Objective-C, PHP, PL/SQL, T-SQL, Python (2.6, 2.7), Ruby
(1.9.3), Swift, Scala, VB, and XML.
Go Meta Linter
:warning: - Concurrently run Go lint tools and normalise their output.
Use golangci-lint for new projects.
gokart - Golang
security analysis with a focus on minimizing false positives. It is
capable of tracing the source of variables and function arguments to
determine whether input sources are safe.
Hopper :warning: - A
static analysis tool written in scala for languages that run on JVM.
Hound CI - Comments on style
violations in GitHub pull requests. Supports Coffeescript, Go, HAML,
JavaScript, Ruby, SCSS and Swift.
imhotep - Comment
on commits coming into your repository and check for syntactic errors
and general lint warnings.
include-gardener
- A multi-language static analyzer for C/C++/Obj-C/Python/Ruby to create
a graph (in dot or graphml format) which shows all
#include relations of a given set of files.
Infer - A static analyzer for Java, C
and Objective-C
InsiderSec - A open source Static
Application Security Testing tool (SAST) written in GoLang for Java
(Maven and Android), Kotlin (Android), Swift (iOS), .NET Full Framework,
C# and Javascript (Node.js).
Kiuwan
:copyright: - Identify and remediate cyber threats in a blazingly fast,
collaborative environment, with seamless integration in your SDLC.
Python, C++, Java, C#, PHP and more.
Klocwork
:copyright: - Quality and Security Static analysis for C/C++, Java and
C#.
LGTM.com :copyright: - Deep code analysis
for GitHub and Bitbucket to find security vulnerabilities and critical
code quality issues (using Semmle QL). Automatic code review for pull
requests; free for public repositories.
lizard - Lizard is an
extensible Cyclomatic Complexity Analyzer for many programming languages
including C/C++ (doesn’t require all the header files or Java imports).
It also does copy-paste detection (code clone detection/code duplicate
detection) and many other forms of static code analysis. Counts lines of
code without comments, CCN (cyclomatic complexity number), token count
of functions, parameter count of functions.
Mega-Linter -
Mega-Linter can handle any type of project thanks to its 70+ embedded
Linters, its advanced reporting, runnable on any CI system or locally,
with assisted installation and configuration, able to apply formatting
and fixes
multilint - A
wrapper around flake8, isort and
modernize.
Nitpick CI :copyright: - Automated
PHP code review.
NodeJSScan - A static security
code scanner for Node.js applications powered by libsast and semgrep
that builds on the njsscan cli tool. It features a UI with various
dashboards about an application’s security status.
oclint - A static source code analysis
tool to improve quality and reduce defects for C, C++ and Objective-C.
ocular :copyright: -
Enables code auditors and security teams to interactively investigate
their unique code bases to find business logic flaws and technical
vulnerabilities that traditional SASTs cannot. This is done by enabling
the analyst to write their own custom queries. Can find hard-coded
secrets, authentication issues, and malicious code like rootkits and
backdoors.
Offensive 360 :copyright: -
Commercial Static Code Analysis system doesn’t require building the
source code or pre-compilation.
parasoft :copyright: - Automated
Software Testing Solutions for unit-, API-, and web UI testing. Complies
with MISRA, OWASP, and others.
pfff
:warning: - Facebook’s tools for code analysis, visualizations, or
style-preserving source transformation for many languages.
PMD - A source code analyzer for
Java, Salesforce Apex, Javascript, PLSQL, XML, XSL and others.
Polymer-analyzer
- A static analysis framework for Web Components.
pre-commit - A framework for
managing and maintaining multi-language pre-commit hooks.
Pronto - Quick
automated code review of your changes. Supports more than 40 runners for
various languages, including Clang, Elixir, JavaScript, PHP, Ruby and
more.
prospector - A wrapper
around pylint, pep8, mccabe and
others.
PT.PM
:warning: - An engine for searching patterns in the source code, based
on Unified AST or UST. At present time C#, Java, PHP, PL/SQL, T-SQL, and
JavaScript are supported. Patterns can be described within the code or
using a DSL.
pylama - Code
audit tool for Python and JavaScript. Wraps pycodestyle, pydocstyle,
PyFlakes, Mccabe, Pylint, and more
quality - Runs quality
checks on your code using community tools, and makes sure your numbers
don’t get any worse over time.
QuantifiedCode
:warning: - Automated code review & repair. It helps you to keep
track of issues and metrics in your software projects, and can be easily
extended to support new types of analyses.
Refactoring Essentials
- The free Visual Studio 2015 extension for C# and VB.NET refactorings,
including code best practice analyzers.
relint - A static file
linter that allows you to write custom rules using regular expressions
(RegEx).
ReSharper :copyright:
- Extends Visual Studio with on-the-fly code inspections for C#, VB.NET,
ASP.NET, JavaScript, TypeScript and other technologies.
Reshift :copyright: - A
source code analysis tool for detecting and managing Java security
vulnerabilities.
Reviewdog - A tool
for posting review comments from any linter in any code hosting service.
RIPS :copyright: - A static
source code analyser for vulnerabilities in PHP scripts.
Rome - Rome is a linter, compiler,
bundler, and
more for
JavaScript, TypeScript, JSON, HTML, Markdown, and CSS.
Roslyn Analyzers
- Roslyn-based implementation of FxCop analyzers.
Roslyn Security Guard
- Project that focuses on the identification of potential
vulnerabilities such as SQL injection, cross-site scripting (XSS), CSRF,
cryptography weaknesses, hardcoded passwords and many more.
Scrutinizer :copyright: - A
proprietary code quality checker that can be integrated with GitHub.
Security Code Scan -
Security code analyzer for C# and VB.NET. Detects various security
vulnerability patterns: SQLi, XSS, CSRF, XXE, Open Redirect, etc.
Integrates into Visual Studio 2015 and newer. Detects various security
vulnerability patterns: SQLi, XSS, CSRF, XXE, Open Redirect, etc.
Semgrep - A fast, open-source, static
analysis tool for finding bugs and enforcing code standards at editor,
commit, and CI time. Its rules look like the code you already write; no
abstract syntax trees or regex wrestling. Supports 17+ languages.
Semmle QL and LGTM :copyright: - Find
security vulnerabilities, variants, and critical code quality issues
using queries over source code. Automatic PR code review; free for
public GitHub/Bitbucket repo: LGTM.com.
ShiftLeft :copyright: - Identify
vulnerabilities that are unique to your code base before they reach
production. Leverages the Code Property Graph (CPG) to run its analyses
concurrently in a single graph of graphs. Automatically finds business
logic flaws in dev like hardcoded secrets and logic bombs
ShiftLeft Scan - Scan is a free
open-source DevSecOps platform for detecting security issues in source
code and dependencies. It supports a broad range of languages and CI/CD
pipelines.
shipshape :warning: -
Static program analysis platform that allows custom analyzers to plug in
through a common interface.
shisho - A lightweight static
code analyzer designed for developers and security teams. It allows you
to analyze and transform source code with an intuitive DSL similar to
sed, but for code.
Similarity Tester
- A tool that finds similarities between or within files to support you
encountering DRY principle violations.
Snyk :copyright: - Vulnerability scanner
for dependencies of node.js apps (free for Open Source Projects).
SonarCloud :copyright: -
Multi-language cloud-based static code analysis. History, trends,
security hot-spots, pull request analysis and more. Free for open
source.
SonarLint for Visual Studio -
SonarLint is an extension for Visual Studio 2015 and 2017 that provides
on-the-fly feedback to developers on new bugs and quality issues
injected into .NET code.
SonarQube - SonarQube is an open
platform to manage code quality.
Sonatype :copyright: - Reports
known vulnerabilities in common dependencies and recommends updated
packages to minimize breaking changes
Soto Platform
:copyright: - Suite of static analysis tools consisting of the three
components Sotoarc (Architecture Analysis), Sotograph (Quality
Analysis), and Sotoreport (Quality report). Helps find differences
between architecture and implementation, interface violations
(e.g. external access of private parts of subsystems, detection of all
classes, files, packages and subsystems which are strongly coupled by
cyclical relationships and more. The Sotograph product family runs on
Windows and Linux.
SourceMeter :copyright: -
Static Code Analysis for C/C++, Java, C#, Python, and RPG III and RPG IV
versions (including free-form).
standard - An npm module that checks
for Javascript Styleguide issues.
Super-Linter -
Combination of multiple linters to install as a GitHub Action.
Symfony Insight :copyright: -
Detect security risks, find bugs and provide actionable metrics for PHP
projects.
Synopsys
:copyright: - A commercial static analysis platform that allows for
scanning of multiple languages (C/C++, Android, C#, Java, JS, PHP,
Python, Node.JS, Ruby, Fortran, and Swift).
Teamscale :copyright: - Static
and dynamic analysis tool supporting more than 25 languages and direct
IDE integration. Free hosting for Open Source projects available on
request. Free academic licenses available.
todocheck -
Linter for integrating annotated TODOs with your issue trackers
trivy - A Simple
and Comprehensive Vulnerability Scanner for Containers and other
Artifacts, Suitable for CI. Trivy detects vulnerabilities of OS
packages (Alpine, RHEL, CentOS, etc.) and application dependencies
(Bundler, Composer, npm, yarn, etc.). Checks containers and
filesystems.
TscanCode - A fast
and accurate static analysis solution for C/C++, C#, Lua codes provided
by Tencent. Using GPLv3 license.
Undebt -
Language-independent tool for massive, automatic, programmable
refactoring based on simple pattern definitions.
Understand :copyright: - Code
visualization tool that provides code analysis, standards testing,
metrics, graphing, dependency analysis and more for Ada, VHDL, and
others.
Unibeautify - Universal code
beautifier with a GitHub app. Supports HTML, CSS, JavaScript,
TypeScript, JSX, Vue, C++, Go, Objective-C, Java, Python, PHP, GraphQL,
Markdown, and more.
Upsource :copyright: -
Code review tool with static code analysis and code-aware navigation for
Java, PHP, JavaScript and Kotlin.
Veracode
:copyright: - Find flaws in binaries and bytecode without requiring
source. Support all major programming languages: Java, .NET, JavaScript,
Swift, Objective-C, C, C++ and more.
Viezly :copyright: - Code review tool
with dependency diagrams. Improve your team’s code reviews with better
navigation and code analysis
Violations Lib
- Java library for parsing report files from static code analysis. Used
by a bunch of Jenkins, Maven and Gradle plugins.
WALA - Static analysis
capabilities for Java bytecode and related languages and for JavaScript.
WhiteHat Application Security Platform
:copyright: - WhiteHat Scout (for Developers) combined with WhiteHat
Sentinel Source (for Operations) supporting WhiteHat Top 40 and OWASP
Top 10.
Wotan - Pluggable
TypeScript and JavaScript linter.
Xanitizer :copyright: - Xanitizer
finds security vulnerabilities in web applications. It supports Java,
Scala, JavaScript and TypeScript.
XCode :copyright: -
XCode provides a pretty decent UI for
Clang’s static
code analyzer (C/C++, Obj-C).
Other
Ansible
kics - Find security vulnerabilities,
compliance issues, and infrastructure misconfigurations in your
infrastructure-as-code. Supports Terraform, Kubernetes, Docker, AWS
CloudFormation and Ansible
Azure Resource Manager
AzSK - Secure DevOps kit
for Azure (AzSK) provides security IntelliSense, Security Verification
Tests (SVTs), CICD scan vulnerabilities, compliance issues, and
infrastructure misconfiguration in your infrastructure-as-code. Supports
Azure via ARM.
Binaries
angr - Binary code analysis
tool that also supports symbolic execution.
binbloom - Analyzes
a raw binary firmware and determines features like endianness or the
loading address. The tool is compatible with all architectures. Loading
address: binbloom can parse a raw binary firmware and determine its
loading address. Endianness: binbloom can use heuristics to determine
the endianness of a firmware. UDS Database: binbloom can parse a raw
binary firmware and check if it contains an array containing UDS command
IDs.
BinSkim - A binary
static analysis tool that provides security and correctness results for
Windows portable executables.
Black Duck :copyright: -
Tool to analyze source code and binaries for reusable code, necessary
licenses and potential security aspects.
bloaty - Ever wondered
what’s making your binary big? Bloaty McBloatface will show you a size
profile of the binary so you can understand what’s taking up space
inside. Bloaty performs a deep analysis of the binary. Using custom ELF,
DWARF, and Mach-O parsers, Bloaty aims to accurately attribute every
byte of the binary to the symbol or compileunit that produced it. It
will even disassemble the binary looking for references to anonymous
data. F
cwe_checker -
cwe_checker finds vulnerable patterns in binary executables.
Ghidra - A software reverse
engineering (SRE) suite of tools developed by NSA’s Research Directorate
in support of the Cybersecurity mission
Jakstab - Jakstab is an
Abstract Interpretation-based, integrated disassembly and static
analysis framework for designing analyses on executables and recovering
reliable control flow graphs.
JEB Decompiler :copyright: -
Decompile and debug binary code. Break down and analyze document files.
Android Dalvik, MIPS, ARM, Intel x86, Java, WebAssembly & Ethereum
Decompilers.
Manalyze - A
static analyzer, which checks portable executables for malicious
content.
Nauz File Detector
- Static Linker/Compiler/Tool detector for Windows, Linux and MacOS.
Twiggy - Analyzes a
binary’s call graph to profile code size. The goal is to slim down wasm
binary size.
VMware chap - chap analyzes
un-instrumented ELF core files for leaks, memory growth, and corruption.
It is sufficiently reliable that it can be used in automation to catch
leaks before they are committed. As an interactive tool, it helps
explain memory growth, can identify some forms of corruption, and
supplements a debugger by giving the status of various memory locations.
zydis - Fast and lightweight x86/x86-64
disassembler library
PostCSS - A tool for transforming
styles with JS plugins. These plugins can lint your CSS, support
variables and mixins, transpile future CSS syntax, inline images, and
more.
cfn_nag - A linter
for AWS CloudFormation templates.
checkov - Static analysis tool for
Terraform files (tf>=v0.12), preventing cloud misconfigs at build
time.
cookstyle - Cookstyle
is a linting tool based on the RuboCop Ruby linting tool for Chef
cookbooks.
Datree - A CLI tool to prevent
Kubernetes misconfigurations by ensuring that manifests and Helm charts
follow best practices as well as your organization’s policies
foodcritic - A lint tool that
checks Chef cookbooks for common problems.
kics - Find security vulnerabilities,
compliance issues, and infrastructure misconfigurations in your
infrastructure-as-code. Supports Terraform, Kubernetes, Docker, AWS
CloudFormation and Ansible
Puppet Lint - Check
that your Puppet manifests conform to the style guide.
terraform-compliance - A
lightweight, compliance- and security focused, BDD test framework
against Terraform.
terrascan -
Collection of security and best practice tests for static code analysis
of Terraform templates.
tflint - A Terraform
linter for detecting errors that can not be detected by
terraform plan.
tfsec - Terraform static
analysis tool that prevents potential security issues by checking cloud
misconfigurations at build time and directly integrates with the HCL
parser for better results. Checks for violations of AWS, Azure and GCP
security best practice recommendations.
Containers
anchore - Discover, analyze, and
certify container images. A service that analyzes Docker images and
applies user-defined acceptance policies to allow automated container
image validation and certification
clair - Vulnerability
Static Analysis for Containers.
collector - Run
arbitrary scripts inside containers, and gather useful information.
dagda - Perform
static analysis of known vulnerabilities in docker images/containers.
Datree - A CLI tool to prevent
Kubernetes misconfigurations by ensuring that manifests and Helm charts
follow best practices as well as your organization’s policies
Haskell Dockerfile Linter
- A smarter Dockerfile linter that helps you build best practice Docker
images.
kics - Find security vulnerabilities,
compliance issues, and infrastructure misconfigurations in your
infrastructure-as-code. Supports Terraform, Kubernetes, Docker, AWS
CloudFormation and Ansible
kube-score - Static code analysis
of your Kubernetes object definitions.
KubeLinter -
KubeLinter is a static analysis tool that checks Kubernetes YAML files
and Helm charts to ensure the applications represented in them adhere to
best practices.
kubeval - Validates your
Kubernetes configuration files and supports multiple Kubernetes
versions.
OpenSCAP - Suite of automated
audit tools to examine the configuration and known vulnerabilities
following the NIST-certified Security Content Automation Protocol
(SCAP).
Qualys Container Security
:copyright: - Container native application protection to provide
visibility and control of containerized applications.
sysdig :copyright: - A secure DevOps
platform for cloud and container forensics. Built on an open source
stack, Sysdig provides Docker image scanning and created Falco, the open
standard for runtime threat detection for containers, Kubernetes and
cloud.
Vuls - Agent-less Linux vulnerability
scanner based on information from NVD, OVAL, etc. It has some container
image support, although is not a container specific tool.
Continuous Integration
actionlint - Static
checker for GitHub Actions workflow files. Provides an online version.
AzSK - Secure DevOps kit
for Azure (AzSK) provides security IntelliSense, Security Verification
Tests (SVTs), CICD scan vulnerabilities, compliance issues, and
infrastructure misconfiguration in your infrastructure-as-code. Supports
Azure via ARM.
Code Climate - The open and
extensible static analysis platform, for everyone.
PullRequest :copyright: - Code
review as a service with built-in static analysis. Increase velocity and
reduce technical debt through quality code review by expert engineers
backed by best-in-class automation.
Nu Html Checker -
Helps you catch problems in your HTML/CSS/SVG
JSON
Spectral - A
flexible JSON/YAML linter, without of the box support for OpenAPI v2/v3
and AsyncAPI v2.
Kubernetes
Datree - A CLI tool to prevent
Kubernetes misconfigurations by ensuring that manifests and Helm charts
follow best practices as well as your organization’s policies
kics - Find security vulnerabilities,
compliance issues, and infrastructure misconfigurations in your
infrastructure-as-code. Supports Terraform, Kubernetes, Docker, AWS
CloudFormation and Ansible
LaTeX
ChkTeX - A linter for LaTex
which catches some typographic errors LaTeX oversees.
lacheck - A tool for
finding common mistakes in LaTeX documents.
TeXLab - A Language Server
Protocol implementation for TeX/LaTeX, including lint capabilities.
mdl - A tool to
check Markdown files and flag style issues.
remark-lint - Pluggable Markdown
code style linter written in JavaScript.
Mobile
Android Lint - Run
static analysis on Android projects.
android-lint-summary
- Combines lint errors of multiple projects into one output, check lint
results of multiple sub-projects at once.
FlowDroid
- Static taint analysis tool for Android applications.
iblessing
- iblessing is an iOS security exploiting toolkit. It can be used for
reverse engineering, binary analysis and vulnerability mining.
Oversecured :copyright: - A mobile
app vulnerability scanner, designed for security researchers and bug
bounty hackers. It also allows integrations into the DevOps process for
businesses.
paprika - A
toolkit to detect some code smells in analyzed Android applications.
qark - Tool to look for
several security related Android application vulnerabilities.
redex - Redex provides a framework for
reading, writing, and analyzing .dex files, and a set of optimization
passes that use this framework to improve the bytecode. An APK optimized
by Redex should be smaller and faster.
Node.js
lockfile-lint -
Lint an npm or yarn lockfile to analyze and detect security issues
njsscan - A static application
testing (SAST) tool that can find insecure code patterns in your node.js
applications using simple pattern matcher from libsast and syntax-aware
semantic code pattern search tool semgrep.
Packages
lintian - Static analysis tool
for Debian packages.
rpmlint
- Tool for checking common errors in rpm packages.
Protocol Buffers
protolint -
Pluggable linter and fixer to enforce Protocol Buffer style and
conventions.
Security/SAST
Attackflow Extension
:copyright: - Attackflow plugin for Visual Studio, which enables
developers to find critical security bugs at real time in the source
code without any prior knowledge.
AzSK - Secure DevOps kit
for Azure (AzSK) provides security IntelliSense, Security Verification
Tests (SVTs), CICD scan vulnerabilities, compliance issues, and
infrastructure misconfiguration in your infrastructure-as-code. Supports
Azure via ARM.
Datree - A CLI tool to prevent
Kubernetes misconfigurations by ensuring that manifests and Helm charts
follow best practices as well as your organization’s policies
Gitleaks - A SAST
tool for detecting hardcoded secrets like passwords, api keys, and
tokens in git repos.
iblessing
- iblessing is an iOS security exploiting toolkit. It can be used for
reverse engineering, binary analysis and vulnerability mining.
kics - Find security vulnerabilities,
compliance issues, and infrastructure misconfigurations in your
infrastructure-as-code. Supports Terraform, Kubernetes, Docker, AWS
CloudFormation and Ansible
lockfile-lint -
Lint an npm or yarn lockfile to analyze and detect security issues
njsscan - A static application
testing (SAST) tool that can find insecure code patterns in your node.js
applications using simple pattern matcher from libsast and syntax-aware
semantic code pattern search tool semgrep.
Oversecured :copyright: - A mobile
app vulnerability scanner, designed for security researchers and bug
bounty hackers. It also allows integrations into the DevOps process for
businesses.
PT Application Inspector
:copyright: - Identifies code flaws and detects vulnerabilities to
prevent web attacks. Demonstrates remote code execution by presenting
possible exploits.
Qualys Container Security
:copyright: - Container native application protection to provide
visibility and control of containerized applications.
scorecard - Security
Scorecards - Security health metrics for Open Source
SearchDiggity
:copyright: - Identifies vulnerabilities in open source code projects
hosted on Github, Google Code, MS CodePlex, SourceForge, and more. The
tool comes with over 130 default searches that identify SQL injection,
cross-site scripting (XSS), insecure remote and local file includes,
hard-coded passwords, etc.
tfsec - Terraform static
analysis tool that prevents potential security issues by checking cloud
misconfigurations at build time and directly integrates with the HCL
parser for better results. Checks for violations of AWS, Azure and GCP
security best practice recommendations.
Tsunami Security Scanner
- A general purpose network security scanner with an extensible plugin
system for detecting high severity RCE-like vulnerabilities with high
confidence. Custom detectors for finding vulnerabilities (e.g. open
APIs) can be added.
Smart Contracts
mythril - A symbolic
execution framework with batteries included, can be used to find and
exploit vulnerabilities in smart contracts automatically.
MythX :copyright: - MythX is an easy to
use analysis platform which integrates several analysis methods like
fuzzing, symbolic execution and static analysis to find vulnerabilities
with high precision. It can be integrated with toolchains like Remix or
VSCode or called from the command-line.
slither - Static
analysis framework that runs a suite of vulnerability detectors, prints
visual information about contract details, and provides an API to easily
write custom analyses.
solhint - Solhint is
an open source project created by https://protofire.io. Its goal is to
provide a linting utility for Solidity code.
solium - Solium
is a linter to identify and fix style and security issues in Solidity
smart contracts.
Support
LibVCS4j - A
Java library that allows existing tools to analyse the evolution of
software systems by providing a common API for different version control
systems and issue trackers.
haml-lint - Tool for
writing clean and consistent HAML.
slim-lint - Configurable
tool for analyzing Slim templates.
yamllint - Checks YAML
files for syntax validity, key repetition and cosmetic problems such as
lines length, trailing spaces, and indentation.
Terraform
kics - Find security vulnerabilities,
compliance issues, and infrastructure misconfigurations in your
infrastructure-as-code. Supports Terraform, Kubernetes, Docker, AWS
CloudFormation and Ansible
Translation
dennis - A set of
utilities for working with PO files to ease development and improve
quality.
Vue.js
Vetur
- Vue tooling for VS Code, powered by vls (vue language server). Vetur
has support for formatting embedded HTML, CSS, SCSS, JS, TypeScript, and
more. Vetur only has a “whole document formatter” and cannot format
arbitrary ranges.
Webassembly
Twiggy - Analyzes a
binary’s call graph to profile code size. The goal is to slim down wasm
binary size.
Wikipedia
- A list of tools for static code analysis.
License
To the extent possible under law,
Matthias Endler has waived all copyright
and related or neighboring rights to this work. The underlying source code
used to format and display that content is licensed under the MIT license.