静态分析测试工具.docx
- 文档编号:30301895
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:16
- 大小:19.30KB
静态分析测试工具.docx
《静态分析测试工具.docx》由会员分享,可在线阅读,更多相关《静态分析测试工具.docx(16页珍藏版)》请在冰豆网上搜索。
静态分析测试工具
静态代码分析、测试工具汇总
静态代码扫描,借用一段网上的原文解释一下(这里叫静态检查):
“静态测试包括代码检查、静态结构分析、代码质量度量等。
它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。
代码检查代码检查包括代码走查、桌面检查、代码审查等,主要检查代码和设计的一致性,代码对标准的遵循、可读性,代码的逻辑表达的正确性,代码结构的合理性等方面;可以发现违背程序编写标准的问题,程序中不安全、不明确和模糊的部分,找出程序中不可移植部分、违背程序编程风格的问题,包括变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等容。
”。
我看了一系列的静态代码扫描或者叫静态代码分析工具后,总结对工具的看法:
静态代码扫描工具,和编译器的某些功能其实是很相似的,他们也需要词法分析,语法分析,语意分析...但和编译器不一样的是他们可以自定义各种各样的复杂的规则去对代码进行分析。
以下将会列出的静态代码扫描工具,会由于实现方法,算法,分析的层次不同,功能上会差异很大。
有的可以做SQL注入的检查,有的则不能(当然,由于时间问题还没有对规则进行研究,但要检查复杂的代码安全漏洞,是需要更高深分析算法的,所以有的东西应该不是设置规则库就可以检查到的,但在安全方面的检查,一定程度上也是可以通过设置规则进行检查的)。
工具名
静态扫描语言
开源/付费
厂商
介绍
主页网址
ounec5.0
VB.Net、C、C++和C#,
还支持Java。
付 费
OunceLabs
\
.ouncelabs./
CoverityPrevent
C/C++,C#,JAVA
付费
Coverity
还有其他辅助工具:
1.CoverityThreadAnalyzerforJava
2.CoveritySoftwareReadinessManagerforJava
3.CoverityArchitectureAnalyzer
.coverity./index.html
stakeSmartRisk™
Analyzer
C/C++,Java
付费
Symantec
Corporation
stakeSmartRisk™Analyzerharnessesthepowerof
staticanalysisofbinaryexecutables(C,C++,andJava)to
identify,categorizeandprioritizesecurity。
注:
在Symantec没有搜到此产品?
!
.symantec./business/index.jsp
RationalPurify
C/C++,Java
付费
IBM
Providesmemoryleakandmemorycorruptiondetectionfor
Windows,Runtime?
!
-01.ibm./software/awdtools/purify/
PREfix
\
\
microsoft
微软用的静态分析工具,但暂时没有找到下载,
现在好像在考虑发布中!
\
Jtext
Java
付费
parasoft
同时还有其他静态分析代码的产品,如:
C++Test...
详细请查询官网
.parasoft./jsp/cn/support.jsp
flawfinder
C/C++
开源
\
用Python编写的c、c++程序安全审核工具,
可以检查潜在的安全风险。
.dwheeler./flawfinder/
StaticCode
Analyzer
C/C++,C#,JAVA
付费
Fortify
\
.fortify./
KlocworkInsight
C/C++,Java
付费
Klocwork
\
.klocwork./products/insight.asp
PolySpace
Client/Server
C/C++、Ada语言
付费
MathWorks
\
rats
C/C++,Python,
Perl,
PHP代码进行安全审核的工具
开源
\
\
.fortify./security-resources/rats.jsp
LAPSE
Java
开源
\
LAPSEstandsforaLightweightAnalysisforProgram
SecurityinEclipse.LAPSEisdesignedtohelpwith
thetaskofauditingJavaJ2EEapplicationsforcommon
typesofsecurityvulnerabilitiesfoundinWebapplications.
LAPSEwasdevelopedbyBenjaminLivshitsaspartofthe
GriffinSoftwareSecurityProject.
.owasp.org/index.php/Category:
OWASP_LAPSE_Project
Fluid
java
开源
\
Wehaveexploredpropertiesincluding:
*raceconditionsandlockingpolicies,
*uniquereferencesandotherprogrammer-significant
aliasingproperties,
*effects,
*appropriatetyping,
*realtimethreadingpolicies,and
*single-threadingpolicies.
.fluid.cs.cmu.edu:
8080/Fluid
Splint
C
开源
Universityof
Virginia,
Departmentof
Computer
Science
静态检测针对C语言的安全工具和漏洞检测。
.splint.org/
cqual
C/C++
开源
马里兰大学
轻量级的静态扫描器,在类Linux系统下运行。
.cs.umd.edu/~jfoster/cqual/
MOPS
C
开源
berkeley大学
MOPSisatoolforfindingsecuritybugsinCprograms
andforverifyingconformancetorulesofdefensiveprogramming
.cs.berkeley.edu/~daw/mops/
BOON
C
开源
berkeley大学
BOONisatoolforautomaticallyfindingbufferoverrun
vulnerabilitiesinCsourcecode.Bufferoverrunsareone
ofthemostcommontypesofsecurityholes,andwehope
thatBOONwillenablesoftwaredevelopersandcodeauditors
toimprovethequalityofsecurity-criticalprograms.
.cs.berkeley.edu/~daw/boon/
BLAST
C
开源
TheBLAST
2.0Team
BLASTisasoftwaremodelcheckerforCprograms.
ThegoalofBLASTistobeabletocheckthatsoftware
satisfiesbehavioralpropertiesoftheinterfacesituses.
BLASTusescounterexample-drivenautomaticabstraction
refinementtoconstructanabstractmodelwhichismodel
checkedforsafetyproperties.Theabstractionisconstructed
on-the-fly,andonlytotherequiredprecision.
mtc.epfl.ch/software-tools/blast/
SpikeWAMP
Php
开源
\
foranalyzingPHPprograms
developer.spikesource./wiki/index.php/SpikeWAMP
Pixy
Php
开源
\
FindingXSSandSQLIvulnerabilities
pixybox.seclab.tuwien.ac.at/pixy/
Mike
Java
开源
\
JavasourcecodesecurityscannerbuiltontopofOrizon.
TheyareconnectedtoOWASP.
Smatch
C
开源
\
\
Oink
C++
开源
\
C++StaticAnalysisTools
.cubewano.org/oink
Frama-C
C
开源
\
staticanalyzersfortheClanguage.
frama-c.cea.fr/
RTL-check
\
开源
\
RTL-checkisanextensibleandpowerfulabstractinterpretation
frameworkforstaticanalysisofprogramsfromasafetyand
securityperspective
PMD
Java
开源
\
PMDscansJavasourcecodeandlooksforpotentialproblemslike:
*Possiblebugs-emptytry/catch/finally/
switchstatements
*Deadcode-unusedlocalvariables,parameters
andprivatemethods
*Suboptimalcode-wastefulString/StringBufferusage
*Overcomplicatedexpressions-unnecessaryifstatements,
forloopsthatcouldbewhileloops
*Duplicatecode-copied/pastedcodemeanscopied/pastedbugs
FindBugs
Java
开源
马里兰大学
usesstaticanalysistolookforbugsinJavacode.
注意:
提供Eclipse插件。
ITS4
C\C++
开源
\
CigitaldevelopedITS4tohelpautomatesourcecode
reviewforsecurity.
.cigital./its4/
QJ-Pro
Java
开源
\
QJ-Proisacomprehensivesoftwareinspectiontooltargeted
towardsthesoftwaredeveloper.
QJ-Prochecks:
*conformancetocodingstandards,
*misuseoftheJavalanguage,
*bestpracticeconformence
*codestructureand
*potentialbugsattheearlieststagesofdevelopment.
注意:
提供各种IDE插件!
Jint
Java
开源
\
JlintwillcheckyourJavacodeandfindbugs,inconsistencies
andsynchronizationproblemsbydoingdataflowanalysisand
buildingthelockgraph.
artho./jlint/
Hammurapi
Java
开源
\
codereviewsystemcapturescodingbestpracticesanddelivers
themtodevelopers'fingertips.Italsogeneratesconsolidated
reportsforleaddevelopers,architects,andmanagersto
monitorcodebasequalityandevolution.
.hammurapi.biz/hammurapi-biz/ef/xmenu/hammurapi-group/index.html
DoctorJ
Java
开源
\
Amongwhatitdetects:
*misspelledwords
*parameterandexceptionnames:
omissing
omisordered
omisspelled
*Javadoctags:
oinvalid
omisordered
omissingexpectedarguments
oinvalidarguments
omissingdescriptions
*undocumentedclasses,methods,fields,
parameters
.incava.org/projects/java/doctorj/index.html
DependencyFinder
Java
开源
\
DependencyFinderisasuiteoftoolsforanalyzing
compiledJavacode.Atthecoreisapowerfuldependency
analysisapplicationthatextractsdependencygraphsand
minesthemforusefulinformation.Thisapplicationcomes
inmanyformsforyoureaseofuse,includingcommand-line
tools,aSwing-basedapplication,awebapplicationready
tobedeployedinanapplicationserver,andasetofAnt
tasks.
Checkstyle
Java
开源
\
Checkstyleisadevelopmenttooltohelpprogrammers
writeJavacodethatadherestoacodingstandard.
ItautomatestheprocessofcheckingJavacodetospare
humansofthisboring(butimportant)task.Thismakes
itidealforprojectsthatwanttoenforceacodingstandard.
注意:
提供多种IDE的插件。
Classycle
Java
开源
\
Classycle'sAnalyseranalysesthestaticclassandpackage
dependenciesinJavaapplicationsorlibraries.
JDepend
Java
开源
\
JDependtraversesJavaclassfiledirectoriesandgenerates
designqualitymetricsforeachJavapackage.
JDependallowsyoutoautomaticallymeasurethequality
ofadesignintermsofitsextensibility,reusability,
andmaintainabilitytomanagepackagedependencieseffectively.
.clarkware./software/JDepend.html
JCSC
Java
开源
\
JCSCisapowerfultooltochecksourcecodeagainstahighly
definablecodingstandardandpotentialbadcode.
......
以下是直接提供代码检查/相关帮助的厂商:
Fortify:
.fortify./
ASPECT:
.aspectsecurity./
OWASP:
.owasp.org/index.php/Main_Page
securitycompass:
.securitycompass./resources.shtml
参考资料:
1. .dwheeler./flawfinder/
2. .java2s./Product/Java/Byte-Source-Code/Source-Analysis-Diagram.htm
3.
4.
5. .cs.cmu.edu/~aldrich/courses/654/tools/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 静态 分析 测试 工具