静态扫描操作手册

静态扫描操作手册

前言

静态源代码扫描是近年被人提及较多的软件应用安全解决方案之一。它是指在软件工程中,程序员在写好源代码后,无需经过编译器编译,而直接使用一些扫描工具对其进行扫描,找出代码当中存在的一些语义缺陷、安全漏洞的解决方案。目前的静态扫描技术已经从90年代时候的,编码规则匹配这种由编译技术拓展过来的分析技术向程序模拟全路径执行的方向发展,由此,这种模拟执行相对的执行路径比动态执行更多,能够发现很多动态测试难以发现的缺陷。

目前工作中,我们主要面对的可分为两类:eclipse开发代码,studio开发代码,针对这两种工具开发的代码我们分别运用eclipse及studio安装各自的fingbugs插件,再进行代码静态扫描,并对问题进行分析。


工具

主工具:Eclipse、Android Studio;

其他辅助插件:findbugs插件、maven插件、Jdk;


三、环境准备

安装JDK

安装JDK

双击exe文件进入安装向导界面,点击“下一步”。

进入JDK安装设置界面,是否需要更改路径由安装者而定。点击“下一步”。

进入JDK安装设置界面,是否需要更改路径由安装者而定。点击“下一步”。

等待Java安装完毕,回到JDK安装界面提示“已安装成功”,点击“关闭”。

如何配置java环境变量?

Java环境变量配置分“相对路径”和“绝对路径”两种方式。

若未配置java环境变量,在window命令提示符输入java或javac,将会提示不是内部或外部命令,也不是可运行的程序。

a. 使用相对路径方式配置Java环境变量:

新建系统变量JAVA_HOME,变量值为JDK安装路径,如:

D:\Program Files (x86)\Java\jdk1.8.0_25;

配置路径为“我的电脑→属性→高级系统设置→高级→环境变量→系统变量→新建→填写变量名JAVA_HOME,变量值JDK安装路→确定”。

再新建系统变量CLASSPATH;

变量值为:“.\;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”或只填“.\“。

注:点号表示当前目录,分号用于隔开路径与路径。

在系统变量Path变量值中添加JDK安装路径下的bin目录。

变量值:“;%JAVA_HOME%\bin”;

b. 使用绝对路径方式配置java环境变量。

新增系统变量CLASSPATH,变量值为:

“.\;D:\Program Files (x86)\Java\jdk1.8.0_25\lib\dt.jar;D:\Program Files (x86)\lib\tools.jar”或“.\”

系统变量Path所需添加变量值为:

“;D:\Program Files (x86)\Java\jdk1.8.0_25\bin”;


安装maven插件及eclipse配置maven

下载maven的bin,在apache官方网站可以下载。

下载下来之后,解压,找个路径放进去,把bin的位置设在环境变量里,新建环境变量MAVEN_HOME

在PATH里加入maven的bin的路径

由于Maven依赖Java运行环境,因此使用Maven之前需要配置Java的运行环境。下载并安装JDK,配置JDK的环境变量JAVA_HOME,否则maven将无法使用;

配置完毕后,在Windows命令提示符下,输入mvn -v测试一下,配置成功显示如图:

配置成功后开始在Eclipse中配置Maven,点击eclipse菜单栏Help->Eclipse Marketplace搜索关键字maven到插件Maven

Integration for Eclipse 并点击安装即可,如下图:

安装完毕后,点击重启eclipse;

重启后,为了使得Eclipse中安装的Maven插件,同windows中安装的那个相同,需要让eclipse中的maven重新定位一下,点击Window -> Preference -> Maven -> Installation -> Add进行设置:

设置成功即安装完成。


安装fingbugs插件

Eclipse安装fingbugs:

点击“Help->InstallNew Software”,如下图:


点击“Add”,然后在弹出框“Name”输入“findBugs”,“Location”输入“http://findbugs.cs.umd.edu/eclipse”,点击“OK”,如下图:

选择对应插件,然后点击“next->next->finish”。

完成安装之后重启eclipse,右击项目文件或目录,会发现多了Findbugs的菜单,如下图:


Android Studio安装fingbugs:

在线安装,首先打开Android studio的设置中的插件,输入findbugs,如下图所示,点击Browse查找


结果如下图所示,选择第一个安装,如下图:

安装完毕之后重启Android studio,然后你就能看到一个愤怒的小鸟图标,恭喜你,完成安装,接下来就能进行使用了;

四、测试执行

工程导入

eclipse中导入工程步骤:

将工程包下载到本地

FileàimportàMaven(existing Maven projects)

(根据具体的开发工程进行选择,可咨询开发)

Android Studio中导入工程步骤:

将工程包下载到本地

Fileànewàimport projects


代码扫描

选择对应的扫描规则及颗粒度(eclipse,Android无)

右击工程名,选择propertiesàfindbugs

选择对应的扫描的工程名右击,点击findbugs按钮,直至扫描完成

Eclipse:

可能遇到的问题:遇到找不到findbugs按钮

定位:工程导入有问题

解决方法:重新导入,删除eclipse工程并保留本地文件,再次导入(再不行就求助对应项目的开发)


Android Studio:

问题分析

Eclipse:

Android Studio:

根据问题代码的规则名称,在fingbugs扫描规则问题分析手册中查找具体分析。

问题分析请结合具体问题代码分析,且在实际项目扫描过程中可能会遇到一些问题不在扫描规则文档(见附录)里面,进行百度搜索或根据问题描述及问题代码自行分析。


问题记录格式如下:


注:如遇到不在文档中且对项目比较有影响的问题请根据规则问题分析表中格式规则记录维护到分析表中。


五、附录

1、Findbugs插件安装教程参考:

参考:http://blog.csdn.net/gaofuqi/article/details/22679609

参考:http://blog.csdn.net/atangsir/article/details/50731550

2、findbugs扫描规则问题分析.docx

3、静态扫描测试报告

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容