• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            S.l.e!ep.¢%

            像打了激速一樣,以四倍的速度運(yùn)轉(zhuǎn),開(kāi)心的工作
            簡(jiǎn)單、開(kāi)放、平等的公司文化;尊重個(gè)性、自由與個(gè)人價(jià)值;
            posts - 1098, comments - 335, trackbacks - 0, articles - 1
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            靜態(tài)代碼分析工具匯總

            Posted on 2011-01-27 10:30 S.l.e!ep.¢% 閱讀(5561) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C++
            靜態(tài)代碼掃描,借用一段網(wǎng)上的原文解釋一下(這里叫靜態(tài)檢查):“靜態(tài)測(cè)試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量等。它可以由人工進(jìn)行,充分發(fā)揮人的邏輯思維優(yōu)勢(shì),也可以借助軟件工具自動(dòng)進(jìn)行。代碼檢查代碼檢查包括代碼走查、桌面檢查、代碼審查等,主要檢查代碼和設(shè)計(jì)的一致性,代碼對(duì)標(biāo)準(zhǔn)的遵循、可讀性,代碼的邏輯表達(dá)的正確性,代碼結(jié)構(gòu)的合理性等方面;可以發(fā)現(xiàn)違背程序編寫(xiě)標(biāo)準(zhǔn)的問(wèn)題,程序中不安全、不明確和模糊的部分,找出程序中不可移植部分、違背程序編程風(fēng)格的問(wèn)題,包括變量檢查、命名和類型審查、程序邏輯審查、程序語(yǔ)法檢查和程序結(jié)構(gòu)檢查等內(nèi)容。”。

            我看了一系列的靜態(tài)代碼掃描或者叫靜態(tài)代碼分析工具后,總結(jié)對(duì)工具的看法:靜態(tài)代碼掃描工具,和編譯器的某些功能其實(shí)是很相似的,他們也需要詞法分析,語(yǔ)法分析,語(yǔ)意分析
            ...但和編譯器不一樣的是他們可以自定義各種各樣的復(fù)雜的規(guī)則去對(duì)代碼進(jìn)行分析。

            以下將會(huì)列出的靜態(tài)代碼掃描工具,會(huì)由于實(shí)現(xiàn)方法,算法,分析的層次不同,功能上會(huì)差異很大。有的可以做SQL注入的檢查,有的則不能( 當(dāng)然,由于時(shí)間問(wèn)題還沒(méi)有對(duì)規(guī)則進(jìn)行研究,但要檢查復(fù)雜的代碼安全漏洞,是需要更高深分析算法的,所以有的東西應(yīng)該不是設(shè)置規(guī)則庫(kù)就可以檢查到的,但在安全方面的檢查,一定程度上也是可以通過(guò)設(shè)置規(guī)則進(jìn)行檢查的 )

              以下我在網(wǎng)上搜集到的分析工具,我整理了以下挑了一些出來(lái),這里只是一部分,另外一些可以到參考鏈接上看一下:
            工具名 靜態(tài)掃描語(yǔ)言 開(kāi)源/付費(fèi) 廠商 介紹 主頁(yè)網(wǎng)址
            ounec5.0 VB.Net、C、C++和C#,
            還支持Java。
            付? 費(fèi) Ounce Labs \ http://www.ouncelabs.com/
            Coverity Prevent C/C++,C#,JAVA 付費(fèi) Coverity 還有其他輔助工具:
            1.Coverity Thread Analyzer for Java
            2.Coverity Software Readiness Manager for Java
            3.Coverity Architecture Analyzer
            http://www.coverity.com/index.html
            @stake SmartRisk?
            Analyzer
            C/C++,Java 付費(fèi) Symantec
            Corporation
            @stake SmartRisk? Analyzer harnesses the power of
            static analysis of binary executables (C, C++, and Java) to
            identify, categorize and prioritize security。
            注:在Symantec沒(méi)有搜到此產(chǎn)品?!
            http://www.symantec.com/business/index.jsp
            Rational Purify C/C++,Java 付費(fèi) IBM Provides memory leak and memory corruption detection for
            Windows,Runtime?!
            http://www-01.ibm.com/software/awdtools/purify/
            PREfix \ \ microsoft 微軟用的靜態(tài)分析工具,但暫時(shí)沒(méi)有找到下載,
            現(xiàn)在好像在考慮發(fā)布中!
            \
            Jtext Java 付費(fèi) parasoft 同時(shí)還有其他靜態(tài)分析代碼的產(chǎn)品,如:C++Test...
            詳細(xì)請(qǐng)查詢官網(wǎng)
            http://www.parasoft.com/jsp/cn/support.jsp
            flawfinder C/C++ 開(kāi)源 \ 用Python編寫(xiě)的c、c++程序安全審核工具,
            可以檢查潛在的安全風(fēng)險(xiǎn)。
            http://www.dwheeler.com/flawfinder/
            Static Code
            Analyzer
            C/C++,C#,JAVA 付費(fèi) Fortify \ http://www.fortify.com/
            Klocwork Insight C/C++ ,Java 付費(fèi) Klocwork \ http://www.klocwork.com/products/insight.asp
            PolySpace
            Client/Server
            C/C++、Ada語(yǔ)言 付費(fèi) MathWorks \ http://www.mathworks.cn/
            rats C/C++, Python,
            Perl,
            PHP代碼進(jìn)行安全審核的工具
            開(kāi)源 \ \ http://www.fortify.com/security-resources/rats.jsp
            LAPSE Java 開(kāi)源 \ LAPSE stands for a Lightweight Analysis for Program
            Security in Eclipse. LAPSE is designed to help with
            the task of auditing Java J2EE applications for common
            types of security vulnerabilities found in Web applications.
            LAPSE was developed by Benjamin Livshits as part of the
            Griffin Software Security Project.
            http://www.owasp.org/index.php/Category:OWASP_LAPSE_Project
            Fluid java 開(kāi)源 \ We have explored properties including:

            ? ? * race conditions and locking policies,
            ? ? * unique references and other programmer-significant
            aliasing properties,
            ? ? * effects,
            ? ? * appropriate typing,
            ? ? * realtime threading policies, and
            ? ? * single-threading policies.
            http://www.fluid.cs.cmu.edu:8080/Fluid
            Splint C 開(kāi)源 University of
            Virginia,
            Department of
            Computer
            Science
            靜態(tài)檢測(cè)針對(duì)C語(yǔ)言的安全工具和漏洞檢測(cè)。 http://www.splint.org/
            cqual C/C++ 開(kāi)源 馬里蘭大學(xué) 輕量級(jí)的靜態(tài)掃描器,在類Linux系統(tǒng)下運(yùn)行。 http://www.cs.umd.edu/~jfoster/cqual/
            MOPS C 開(kāi)源 berkeley大學(xué) MOPS is a tool for finding security bugs in C programs
            and for verifying conformance to rules of defensive programming
            http://www.cs.berkeley.edu/~daw/mops/
            BOON C 開(kāi)源 berkeley大學(xué) BOON is a tool for automatically finding buffer overrun
            vulnerabilities in C source code. Buffer overruns are one
            of the most common types of security holes, and we hope
            that BOON will enable software developers and code auditors
            to improve the quality of security-critical programs.
            http://www.cs.berkeley.edu/~daw/boon/
            BLAST C 開(kāi)源 The BLAST
            2.0 Team
            BLAST is a software model checker for C programs.?
            The goal of BLAST is to be able to check that software
            satisfies behavioral properties of the interfaces it uses.
            BLAST uses counterexample-driven automatic abstraction
            refinement to construct an abstract model which is model
            checked for safety properties. The abstraction is constructed
            on-the-fly, and only to the required precision.
            http://mtc.epfl.ch/software-tools/blast/
            SpikeWAMP Php 開(kāi)源 \ for analyzing PHP programs http://developer.spikesource.com/wiki/index.php/SpikeWAMP
            Pixy Php 開(kāi)源 \ Finding XSS and SQLI vulnerabilities http://pixybox.seclab.tuwien.ac.at/pixy/
            Mike Java 開(kāi)源 \ Java source code security scanner built on top of Orizon.
            They are connected to OWASP.
            http://milk.sourceforge.net/download.html
            Smatch C 開(kāi)源 \ \ http://smatch.sourceforge.net/
            Oink C++ 開(kāi)源 \ C++ Static Analysis Tools http://www.cubewano.org/oink
            Frama-C C 開(kāi)源 \ static analyzers for the C language. http://frama-c.cea.fr/
            RTL-check \ 開(kāi)源 \ RTL-check is an extensible and powerful abstract interpretation
            framework for static analysis of programs from a safety and
            security perspective
            http://rtlcheck.sourceforge.net/
            PMD Java 開(kāi)源 \ PMD scans Java source code and looks for potential problems like:

            ? ? * Possible bugs - empty try/catch/finally/
            switch statements
            ? ? * Dead code - unused local variables, parameters
            and private methods
            ? ? * Suboptimal code - wasteful String/StringBuffer usage
            ? ? * Overcomplicated expressions - unnecessary if statements,
            for loops that could be while loops
            ? ? * Duplicate code - copied/pasted code means copied/pasted bugs
            http://pmd.sourceforge.net/
            FindBugs Java 開(kāi)源 馬里蘭大學(xué) uses static analysis to look for bugs in Java code.
            注意:提供Eclipse插件
            http://findbugs.sourceforge.net/
            ITS4 C\C++ 開(kāi)源 \ Cigital developed ITS4 to help automate source code
            review for security.
            http://www.cigital.com/its4/
            QJ-Pro Java 開(kāi)源 \ QJ-Pro is a comprehensive software inspection tool targeted
            towards the software developer.

            QJ-Pro checks:
            ? ? * conformance to coding standards,
            ? ? * misuse of the Java language,
            ? ? * best practice conformence
            ? ? * code structure and
            ? ? * potential bugs at the earliest stages of development.
            注意:提供各種IDE插件!
            http://qjpro.sourceforge.net/
            Jint Java 開(kāi)源 \ Jlint will check your Java code and find bugs, inconsistencies
            and synchronization problems by doing data flow analysis and
            building the lock graph.
            http://artho.com/jlint/
            Hammurapi Java 開(kāi)源 \ code review system captures coding best practices and delivers
            them to developers' fingertips. It also generates consolidated
            reports for lead developers, architects, and managers to
            monitor codebase quality and evolution.
            http://www.hammurapi.biz/hammurapi-biz/ef/xmenu/hammurapi-group/index.html
            DoctorJ Java 開(kāi)源 \ Among what it detects:

            ? ? * misspelled words
            ? ? * parameter and exception names:
            ? ? ? ? ? o missing
            ? ? ? ? ? o misordered
            ? ? ? ? ? o misspelled
            ? ? * Javadoc tags:
            ? ? ? ? ? o invalid
            ? ? ? ? ? o misordered
            ? ? ? ? ? o missing expected arguments
            ? ? ? ? ? o invalid arguments
            ? ? ? ? ? o missing descriptions
            ? ? * undocumented classes, methods, fields,
            parameters
            http://www.incava.org/projects/java/doctorj/index.html
            Dependency Finder Java 開(kāi)源 \ Dependency Finder is a suite of tools for analyzing
            compiled Java code. At the core is a powerful dependency
            analysis application that extracts dependency graphs and
            mines them for useful information. This application comes
            in many forms for your ease of use, including command-line
            tools, a Swing-based application, a web application ready
            to be deployed in an application server, and a set of Ant
            tasks.
            http://depfind.sourceforge.net/
            Checkstyle Java 開(kāi)源 \ Checkstyle is a development tool to help programmers
            write Java code that adheres to a coding standard.
            It automates the process of checking Java code to spare
            humans of this boring (but important) task. This makes
            it ideal for projects that want to enforce a coding standard.
            注意:提供多種IDE的插件。
            http://checkstyle.sourceforge.net/
            Classycle Java 開(kāi)源 \ Classycle's Analyser analyses the static class and package
            dependencies in Java applications or libraries.
            http://classycle.sourceforge.net/
            JDepend Java 開(kāi)源 \ JDepend traverses Java class file directories and generates
            design quality metrics for each Java package.
            JDepend allows you to automatically measure the quality
            of a design in terms of its extensibility, reusability,
            and maintainability to manage package dependencies effectively.
            http://www.clarkware.com/software/JDepend.html
            JCSC Java 開(kāi)源 \ JCSC is a powerful tool to check source code against a highly
            definable coding standard and potential bad code.
            http://jcsc.sourceforge.net/

            ......

            以下是直接提供代碼檢查/相關(guān)幫助的廠商:

            Fortify:  

            http://www.fortify.com/

            ASPECT: 

            http://www.aspectsecurity.com/

            OWASP:? ?

            http://www.owasp.org/index.php/Main_Page

            securitycompass:

            http://www.securitycompass.com/resources.shtml


            參考資料:

            1. http://www.dwheeler.com/flawfinder/
            2. http://www.java2s.com/Product/Java/Byte-Source-Code/Source-Analysis-Diagram.htm
            3. http://www.softwarelist.cn/?fsid=53&cid=530&cpath=ABAN
            4. http://www.hacker.com.cn/article/view_14804.html
            5. http://www.cs.cmu.edu/~aldrich/courses/654/tools/

            注:以上鏈接列舉了大量相關(guān)工具

            亚洲一区二区三区日本久久九| 欧美亚洲国产精品久久| 久久成人国产精品| 久久精品国产亚洲AV电影| 99久久777色| 亚洲国产精品成人久久蜜臀 | 精品久久久久久无码不卡| 伊人色综合久久天天人手人婷 | 久久久久久青草大香综合精品| 久久毛片免费看一区二区三区| 久久国产免费直播| 99久久www免费人成精品| 国内精品九九久久精品 | 国内精品久久久人妻中文字幕| 91久久九九无码成人网站| 久久亚洲中文字幕精品一区| 久久精品国产91久久麻豆自制| 四虎影视久久久免费观看| 久久久无码精品亚洲日韩按摩 | 久久福利片| 激情伊人五月天久久综合| 2021国内久久精品| 亚洲国产精品久久久久网站| 伊人久久大香线蕉亚洲| 久久精品这里只有精99品| 久久国产精品一区二区| 麻豆成人久久精品二区三区免费 | 一本色综合网久久| 国产真实乱对白精彩久久| 国产V亚洲V天堂无码久久久| 久久久午夜精品| 综合久久一区二区三区 | 国内精品久久久久影院亚洲| 国产精品一区二区久久精品无码 | 久久91精品国产91久久户| 99久久国产综合精品女同图片| 久久久WWW成人免费精品| 精品熟女少妇aⅴ免费久久| 亚洲一区二区三区日本久久九| 久久99国产精品二区不卡| 久久精品毛片免费观看|