网络安全软件代码扫描工具

扫描工具自然是IBM AppScan

http://edu.aqniu.com/

http://www.nxadmin.com/tools/675.html

Appscan是web应用程序渗透测试舞台上使用最广泛的工具之一.它是一个桌面应用程序,它有助于专业安全人员进行Web应用程序自动化脆弱性评估。本文侧重于配置和使用Appcan,分析扫描结果将在下一篇文章中讨论.

Appscan的主要特点:

Appscan 8.5标准版有很多新的功能,其中大部分将在我下面的概要中涵盖:

Flash支持: 8.0 Appscan相对早期的版本增加了flash支持功能,它可以探索和测试基于Adobe的Flex框架的应用程序,也支持AMF协议。

Glass box testing::Glass box testing是Appscan中引入的一个新的功能.这个过程中,安装一个代理服务器,这有助于发现隐藏的URL和其它的问题。

Web服务扫描:Web服务扫描是Appscan中具有有效自动化支持的一个扫描功能。

Java脚本安全分析:Appscan中介绍了JavaScript安全性分析,分析抓取html页面漏洞,并允许用户专注于不同的客户端问题和DOM(文档对象模型)为基础的XSS问题。

报告:根据你的要求,可以生成所需格式的报告。

修复支持:对于确定的漏洞,程序提供了相关的漏洞描述和修复方案.

可定制的扫描策略:Appscan配备一套自定义的扫描策略,你可以定制适合你需要的扫描策略。

工具支持:它有像认证测试,令牌分析器和HTTP请求编辑器等,方便手动测试漏洞.

Ajax和Dojo框架的支持。
现在,让我们继续学习更多有关安装和使用Rati??onal AppScan扫描Web应用程序的过程。


--Nmap

NMap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包

其基本功能有三个,一是探测一组主机是否在线;其次是扫描 主机端口,嗅探所提供的网络服务;还可以推断主机所用的操作系统 。Nmap可用于扫描仅有两个节点的LAN,直至500个节点以上的网络。Nmap 还允许用户定制扫描技巧。通常,一个简单的使用ICMP协议的ping操作可以满足一般需求;也可以深入探测UDP或者TCP端口,直至主机所 使用的操作系统;还可以将所有探测结果记录到各种格式的日志中, 供进一步分析操作。
进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测):
nmap -sP 192.168.1.0/24
仅列出指定网络上的每台主机,不发送任何报文到目标主机:
nmap -sL 192.168.1.0/24
探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80):
nmap -PS 192.168.1.234
使用UDP ping探测主机:
nmap -PU 192.168.1.0/24
使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快:
nmap -sS 192.168.1.0/24
当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描:
nmap -sT 192.168.1.0/24
UDP扫描用-sU选项,UDP扫描发送空的(没有数据)UDP报头到每个目标端口:
nmap -sU 192.168.1.0/24
确定目标机支持哪些IP协议 (TCP,ICMP,IGMP等):
nmap -sO 192.168.1.19
探测目标主机的操作系统:
nmap -O 192.168.1.19
nmap -A 192.168.1.19
另外,nmap官方文档中的例子:
nmap -v scanme.
这个选项扫描主机scanme中 所有的保留TCP端口。选项-v启用细节模式。
nmap -sS -O scanme./24
进行秘密SYN扫描,对象为主机Saznme所在的“C类”网段 的255台主机。同时尝试确定每台工作主机的操作系统类型。因为进行SYN扫描 和操作系统检测,这个扫描需要有根权限。
nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127
进行主机列举和TCP扫描,对象为B类188.116网段中255个8位子网。这 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 打开,将使用版本检测来确定哪种应用在运行。
nmap -v -iR 100000 -P0 -p 80
随机选择100000台主机扫描是否运行Web服务器(80端口)。由起始阶段 发送探测报文来确定主机是否工作非常浪费时间,而且只需探测主机的一个端口,因 此使用-P0禁止对主机列表。
nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20
扫描4096个IP地址,查找Web服务器(不ping),将结果以Grep和XML格式保存。
host -l | cut -d -f 4 | nmap -v -iL -
进行DNS区域传输,以发现中的主机,然后将IP地址提供给 Nmap。上述命令用于GNU/Linux -- 其它系统进行区域传输时有不同的命令。
其他选项:
-p (只扫描指定的端口)
单个端口和用连字符表示的端口范 围(如 1-1023)都可以。当既扫描TCP端口又扫描UDP端口时,可以通过在端口号前加上T: 或者U:指定协议。 协议限定符一直有效直到指定另一个。 例如,参数 -p U:53,111,137,T:21-25,80,139,8080 将扫描UDP 端口53,111,和137,同时扫描列出的TCP端口。
-F (快速 (有限的端口) 扫描)


-- openvas http://www.openvas.org/

OpenVAS是开放式漏洞评估系统,也可以说它是一个包含着相关工具的网络扫描器


其架构如下图所示:
用户需要一种自动测试的方法,并确保正在运行一种最恰当的最新测试。OpenVAS包括一个中央服务器和一个图形化的前端。这个服务器准许用户运行 几种不同的网络漏洞测试(以Nessus攻击脚本语言编写),而且OpenVAS可以经常对其进行更新。OpenVAS所有的代码都符合GPL规范。
建立架构
OpenVAS是一个客户端/服务器架构,它由几个组件组成。在服务器上(仅限于Linux),用户需要四个程序包:
OpenVAS-Server: 实现基本的扫描功能
OpenVAS-Plugins: 一套网络漏洞测试程序
OpenVAS-LibNASL 和OpenVAS-Libraries: 实现服务器功能所需要的组件
而在客户端上(Windows或Linux均可),用户仅需要OpenVAS客户端。
openvas图册


--coverity对代码的检查侧重于代码质量
使用了Coverity代码静态检测工具。功能很强大,超乎我的期望。主要功能如下:

列出不会被执行到的代码
列出没被初始化的类成员变量
列出没有被捕获的异常
列出没有给出返回值的return语句
某个函数虽然有返回值,但调用该函数的地方没有用到它的返回值,这也会被列出来
列出没有被回收的new出来的对象
列出没有被关闭的句柄
精确定位到代码行,并提供逐层展开函数的功能
列出可能的数值类型溢出。例如,无符号int数做 ++ 操作,可能导致int溢出,都会被检测到。
什么地方该用&位运算,而不应该用|位运算,都能定位出来并作出建议
ostream在一个函数中被修改了格式,但退出该函数之后没有将ostream恢复成先前的格式,也会被检测到
……

--fortify侧重于代码的安全漏洞。

Fortify SCA 2016是一款专门用于检测软件源码安全性的软件,软件功能强大,操作简单。由于很多不正规的源码都是藏毒的...小编这里给大家带来最新破解版的Fortify Sca,让大家都能放心使用人家贡献的源码


--findbugs 代码扫描
FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析。

--checkstyle 代码重复度扫描


现在很多开源工具都可以对代码进行规范审核,比较流行的有以下几款,大致给个简单介绍。

PMD:是一款采用BSD协议发布的Java程序代码检查工具,可以做到检查Java代码中是否含有未使用的变量、是否含有空的抓取块、是否含有不必要的对象等。
FindBugs:是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。
Checkstyle:是一个静态分析工具,检查Java程序代码。
Cppcheck是一种C/C++代码缺陷静态检查工具。
  PC-Lint也是一种静态代码检测工具,检查C或C++。

目前,中心使用的是Checkstyle工具。我个人觉得PMD和Checkstyle很类似,都可以以插件的形式集成到Eclipse或是MyEclipse开发环境中。下面就Checkstyle在Eclipse中的使用详细介绍下,同时,也欢迎大家继续补充。

1 Checkstyle的下载和安装

1.1 Checkstyle的下载

Checkstyle可以从其官网http://checkstyle.sourceforge.net/中下载。官网中还提供了Checkstyle的相关文档,如配置文件、代码检查项等,内容比较丰富,覆盖面也较齐全。可依据自身需要,参考官网上的相关资料。进入Checkstyle的官网后,进入Download页面,可以下载Checkstyle。目前,大多数开发项目使用Eclipse或是MyEclipse的集成开发环境,因此我推荐进入http://en.sourceforge.jp/projects/sfnet_eclipse-cs/releases/下载,该网站上有EclipseCheckstyle Plug-in的各种版本。下文的介绍中,我采用的是net.sf.eclipsecs-updatesite_5.5.0.201111092104-bin.zip版本的Checkstyle插件。

1.2 Checkstyle的安装

以下的安装过程,基于Eclipse SDK-3.7.2。

(1)打开eclipse,在help中选择install software。

(2)点击add, 选择中Checkstyle安装包net.sf.eclipsecs-updatesite_5.5.0.201111092104-bin.zip;



(3)点击OK,进入下一步;

(4)重启Eclipse。

确认安装成功的步骤:

打开eclipse,选择window->preferences->左边导航栏中Checkstyle,如果出现checkstyle说明你安装成功。


2 Checkstyle的配置

Checkstyle默认提供的配置文件有两个:一是Sun Checks,对应的配置文件是sun_checks.xml文件,含义是Checkstyle configuration that checks the sun coding conventions;一般Checkstyle默认的设置就是sun_checks.xml配置文件。另一个是Sun Checks(Eclipse),对应的配置文件是sun_checks_eclipse.xml,含义是Slightly modified version of Sun Checks that better matches the default code formatter setting of Eclipse.

一般Sun Checks的检查项限定得较为严格,我们实际项目中并不要求那么完美的编程规范,那么可以自己定义检查的配置文件,最后将Checkstyle的配置文件设定为我们自定义的文件即可。关于检查项的设定,我会是下面章节中讲解。先来看看Checkstyle如何快速使用吧。

3 Checkstyle的快速入门使用

Checkstyle安装好之后,就可以使用它来检查我们的代码啦。

3.1 使用Checkstyle检查单个java文件

选中文件,右击选择Checkstyle,选择Check Code with Checkstyle。


此时,看看原文件的变化吧。原文件上会在不符合规范的地方出现黄颜色!号,鼠标停留在叹号处,可以看到信息提示。或者,在Console控制台一栏,可以看到Checkstyle violations 的视图,里面会有信息提示。


选择Checksty violations chart视图,会把每种不规范的信息做下统计,绘制成图表,够人性化吧,哈哈哈。


3.2 使用Checkstyle检查整个项目

在项目名上,右击选择Checkstyle,选择Check Code with Checkstyle。


查看不规范的信息,方法同3.1节一样。


Checkstyle 也可以检查整个包的文件,或者某一代码段的文件。具体的,大家可以依据需要,我不再一一介绍。

4、Checkstyle的各种检查项

前面说到用户可以自定义各种检查项,下面给大家介绍下Checkstyle中各种常用的检查项。在第五部分中,我会介绍如何依据检查的需求来定制检查文件。

因篇幅局限,为了让大家不至于看得太累,也为讲得更透彻,我把Checkstyle的检查项配置内容单独写为一篇博客。有兴趣的读者可浏览《Checkstyle的检查项配置详解
》一文。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值