https://www.checkmarx.com/2014/11/13/the-ultimate-list-of-open-source-static-code-analysis-security-tools/

Doing security the right way demands an army – of developers, security teams, and the tools that each uses to help create and maintain secure code.

With the increasingly important mindset of creating quality, secure code from the start, we’ve seen a greater shift towards the adoption of tools designed to detect flaws as quickly as possible in the software development lifecycle (SDLC).

One of those tools is static code analysis. The true strength of static source code analysis (SCA) is in quickly and automatically checking everything “under the hood” without actually executing the code. Because it works to discover issues that can be hard to discover manually, it’s a perfect companion to the human eye. Even the most senior security people still miss security flaws. After all – we are still human, so the combination of machine and man make for better coverage.

It takes a strong source code analysis tool (and probably several for full coverage, especially if we’re talking open source) to help get the job of securing an application done. While we would normally have a perfect product for these sorts of issues (hint, hint), commercial tools just aren’t for everyone, for any number of reasons. Whether you’re a developer or part of a security team, there is an array of open source static source code analysis options out there, but only a few are really good.

To help those searching for an open source static source code analysis tool (quite a mouthful!), we’ve compiled a list of the best tools for different languages. Before you start the hunt, though, there are some things to consider.

Questions to ask yourself when choosing an open-source static code analysis tool:

  • Does the tool support your language (s)?
  • What types of vulnerabilities and code issues do you need to look for in your code?
  • Will this tool work within your IDE for immediate feedback and faster remediation?
  • What’s the learning curve involved with the tool?
  • Will you and/or your developers have time to learn, fine-tune and customize the tool to its full potential? Consider: Time is money, and the more time you have to spend learning how to configure and use a tool can lead to lots of lost $.
  • How much support are you looking for from the tool’s developers? Note: As many of these open source tools are passion/side projects, they may not be the best idea if you’re interested in receiving a certain level of support.
  • Will this tool supplement your other tools or will it take a lot of work integrating them together?
  • What’s the rate of false positives associated with the tool?
  • Finally, keep in mind that the majority of the tools developers and security minds around the world will tell you that one of these tools is not enough to do the job needed and release a secure product. If you’re looking into open-source options, it’s worth it to find a few solutions that work best for all your needs.

For a nice guide through the process, the WASC (Web Application Security Consortium) also offers an invaluable evaluation checklist for choosing the tool best suited for your needs.

The 9 Most Popular Open Source Static Source Code Analysis Tools for Developers & Security Teams:

Multiple Languages

VisualCodeGrepper

This automated code security tool works with C++, C#, VB, PHP and Java to identify insecurities and other issues in the code.  Developed by Nick Dunn (@N1ckDunn), the tool quickly scans and describes – in detail – the issues it finds, offering an easy-to-use interface.

The Good:

  • Allows for custom configurations for your own queries
  • Tells you the security level of the vulnerabilities it finds
  • Searches intelligently for specific violations of OWASP recommendations
  • Consistently updated since its creation in 2012

The Not-As-Good:

  • While it can analyze many languages, you have to tell it the language you’re scanning
  • Scans for a set list of vulnerabilities that cannot be modified
  • Isn’t fully automated

YASCA

YASCA (Yet Another Source Code Analyzer) analyzes Java, and C/C++ primarily, with other languages and JavaScript for security flaws and other bugs. Its’ creator, Michael Scovetta, aggregated many other popular static analysis tools and made it easy-to-integrate with a variety of other tools, including others on this list: FindBugs, CppCheck, and more. The tool was created in 2008 to help developers in looking for security bugs by automating part of their code review and finding the “low hanging fruit.”

For more info on Yasca, check out this presentation that the creator, Michael Scovetta gave at the NY PHP Conference in ’09.  The latest version, 3.0.4, was released in 2012. See the GitHub repository here.

The Good:

  • The fact that YASCA is an aggregated tool from other powerful tools, it took the best parts of each and combined for broader coverage

The Not-As-Good:

  • Broader does not mean deeper: Keep in mind that this tool was built to look for low-hanging fruits like SQL injections and XSS, so be wary of missing more serious issues.

JAVA

source: owasp.org

OWASP LAPSE+

The tool, which names stands for Lightweight Analysis for Program Security in Eclipse, is an OWASP security scanner, developed as an Eclipse plugin, which detects vulnerabilities in Java EE Applications. LAPSE+ is liscenced under the GNU General Public License v.3 and was originally developed by Stanford University.

The Good:

  • Tests validation logic without compiling your code
  • Offers results as three steps: Vulnerability Source, Vulnerability Sink and Provenance Tracker

The Not-As-Good:

  • Doesn’t identify  compilation errors
  • Limited to Eclipse IDE’s only
  • Project was taken over in early 2014 but no new version since 2012

PHP

source: rips-scanner.sourceforge.net/

RIPS

This tool, developed by Johannes Dahse, tokenizes and parses source code to detect sinks and other vulnerabilities including SQLi, XSS, RCE and more. Check out Johannes’ presentation on the tool for further info.

The Good:

  • Fast results with range of security controls
  • Nice reporting with visualizations makes fixing vulnerabilities faster

The Not-as-Good:

  • Can be limited with regards to data flow
  • As of this year RIPS 0.5 development has been abandoned with a re-write of the tool on deck but still unavailable

DevBug

Created by ethical hacker Ryan Dewhurst (@ethicalhack3r) for his undergraduate thesis, DevBug is a very simple online PHP static code analysis tool. Written in JavaScript, it was designed to make SCA easy and pulls inspiration (as well as Taint Analysis data) from RIPS.

The Good:

  • Easy to use with instant results
  • Nice use of OWASP wiki page links for more info on any found vulnerability

The Not-As-Good:

  • Simplistic and is only meant for light analysis

C/C++

Flawfinder

Designed to be simple and easy to use, FlawFinder reports well-known security issues in applications written in C, sorted by risk level. Developed by open-source and secure software expert David Wheeler, the tool itself is written in Python and uses a command line interface. FlawFinder is officially CWEcompatible.

The Good:

  • Ability to check only the changes made to code for faster, more accurate results
  • Long history, released in 2001 with consistent updates

The Not-As-Good:

  • A number of false positives
  • Requires Python 1.5

source: code.google.com

CPPCheck

This tool, available under a GNU General Public License, was developed to check non-standard code that compilers would normally not detect. Created by Daniel Marjamäki, CPPCheck offers a command line mode as well as a GUI mode and has a number of possibilities for environment integration.

The Good:

  • Plugins and integrations for a number of IDEs: Eclipse, Hudson, Jenkins, Visual Studio.
  • Daniel’s plan is to release a new version every other month or so, and he’s been keeping up with that goal.
  • Available in many world languages, including English, Dutch, Finnish, Swedish, German, Russian, Serbian and Japanese.

The Not-As-Good:

  • Doesn’t detect a large number of bugs (as with most of the other tools)
  • Customization requires good deal of effort
  • Results take longer than other tools

Ruby on Rails

Brakeman

This tool, developed in 2010 by Justin Collins (@presidentbeef) is specifically for finding vulnerabilities and security issues in Ruby on Rails apps at any development stage.

Brakeman is used by the likes of Twitter (where Justin is employed), GitHub, and Groupon to look for vulnerabilities.  Justin gave a talk at RailsConf 2012 that’s worth watching describing the value of using SCA early on and how Brakeman accomplishes that.

The Good:

  • Easy setup and configuration and fast scans.
  • Because it’s specifically built for Ruby on Rails apps, it does a great job at checking configuration settings for best practices.
  • With the ability to check only certain subsets, each code analysis is able to be customizable to specific issues.
  • The developer has been maintaining and updating the tool on a regular basis since its first release.

The Not-So-Good:

  • Because of its suspicious nature, the tool can show a high rate of false positives
  • As written on the tool’s FAQ page, just because a report shows zero warnings doesn’t mean your application is flaw-free; “There may be vulnerabilities Brakeman does not test for or did not discover. No security tool has 100% coverage.”

The Ultimate List of Open Source Static Code Analysis Security Tools的更多相关文章

  1. Top 40 Static Code Analysis Tools

    https://www.softwaretestinghelp.com/tools/top-40-static-code-analysis-tools/ In this article, I have ...

  2. Comparison of Static Code Analysis Tools for Java

    http://www.sw-engineering-candies.com/blog-1/comparison-of-findbugs-pmd-and-checkstyle https://stack ...

  3. Using Open Source Static Libraries in Xcode 4

    Using Open Source Static Libraries in Xcode 4 Xcode 4.0.1 allows us to more easily create and use th ...

  4. PMD -- An extensible cross-language static code analyzer.

    PMD An extensible cross-language static code analyzer. https://github.com/pmd/pmd 跨语言静态代码分析工具.可以查找通用 ...

  5. Cppcheck - A tool for static C/C++ code analysis

    cppcheck是一个个检测源码的工具,对编译工具的一个补充,mark Cppcheck - A tool for static C/C++ code analysis Syntax: cppchec ...

  6. Pure C static coding analysis tools

    Cppcheck - A tool for static C/C++ code analysiscppcheck.sourceforge.netCppcheck is a static analysi ...

  7. 静态时序分析(static timing analysis)

    静态时序分析(static timing analysis,STA)会检测所有可能的路径来查找设计中是否存在时序违规(timing violation).但STA只会去分析合适的时序,而不去管逻辑操作 ...

  8. static timing analysis 基础

    此博文依据 特权同学在电子发烧友上的讲座PPT进行整理而成. static timing analysis   静态时序分析基础 过约束:有不必要的约束,或者是约束不能再某一情况下满足.——约束过头了 ...

  9. 二十五、详述 IntelliJ IDEA 提交代码前的 Code Analysis 机制

    在我们用 IntelliJ IDEA 向 SVN 或者 Git 提交代码的时候,IntelliJ IDEA 提供了一个自动分析代码的功能,即Perform code analysis: 如上图所示,当 ...

随机推荐

  1. 第一节,学习cocos2d-x的前期准备

    1,我用的mac系统,在mac系统上装上cocos2d-x的模板 2,用doxygen工具装上API,这个非常重要,没有API的开发不叫开发,因此我们要习惯看API 3,知道怎么查看cocos2d-x ...

  2. base64 图片编码之再优化

    首先进入网站: http://b64.io/ 最多可减少图片体积容量近70%,建议不要优化base 64 图片格式为gif , 已实测如果用gif的话会增加容量.

  3. Linux系统Domino704升级为901 64位的步骤及注意事项

     [背景] 随便系统业务量的不断增大,应用数据库越来越多.与第三方接口的需求越来越多.文档量越来越多,32位的domino对server的利用率已无法满足系统需求的日益增长,低版本号的domino ...

  4. maven Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4

      maven Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4 CreateTime--201 ...

  5. centos7 卸载 gitlab

    标黑的就是关键命令,先停止gitlab服务,然后rpm -e卸载,然后查看剩余gitlab进程,然后杀死主进程,然后删除所有相关目录 1 [liuyx@MiWiFi-R3L-srv ~]$ sudo ...

  6. SSO之安装CAS Server

    JA-SIG CAS(Central Authentication Service)为Web应用系统提供了单点登录服务.它的特性包括:一个开放和具有很好文档支持的协议:一个Java开源服务器组件:提供 ...

  7. Linux磁盘分区及链接文件的特点

    系统分区 传统的分区fdisk 最大支持2T的硬盘分区 对存储,多分区使用的parted 主分区:最多只能有4个 扩展分区 最多只能有1个 主分区加扩展分区最多有4个 不能写入数据,只能包含逻辑分区 ...

  8. HighCharts/Highstock使用小结,使用汉化及中文帮助文档

       此文档是本人在开发过程图形报表时使用HighCharts所遇到的问题及解决方案 .最后附上有HighCharts中文帮助文档 HighCharts  版本:Highcharts-3.0.1 Hi ...

  9. Tomcat路径下目录的介绍

           本文转自:http://blog.csdn.net/u013132035/article/details/54949593 下图是TOMCAT的路径下目录的截图. 目录有:backup. ...

  10. MFC图形绘制——绘制直尺和坐标系

    一.实验目的 1.掌握建立MFC应用程序的方法: 2.掌握映射模式. 二.实验内容 1.在MFC中绘制直尺,直尺需要有刻度,类似于日常学生使用的透明塑料直尺,需要建立四个直尺,分别分布在屏幕客户区的上 ...