顾名思义,OWASP(开放式web应用程序安全项目)关注web应用程序的安全。OWASP这个项目最有名的,也许就是它的"十大安全隐患列表"。这个列表不但总结了web应用程序最可能、最常见、最危险的十大安全隐患,还包括了如何消除这些隐患的建议。(另外,OWASP还有一些辅助项目和指南来帮助IT公司和开发团队来规范应用程序开发流程和测试流程,提高web产品的安全性。)这个"十大"差不多每隔三年更新一次。
>>对应的工具
安全风险
应对工具
第一位: 注入式风险
SQL Inject Me
第二位: 跨站点脚本 (简称XSS)
ZAP
第三位: 无效的认证及会话管理功能
HackBar
第四位: 对不安全对象的直接引用
Burp
第五位: 伪造的跨站点请求(简称CSRF)
Tamper Data
第六位: 安全配置错误
Watobo
第七位: 加密存储方面的不安全因素
N/A
第八位: 不限制访问者的URL
Nikto/Wikto
第九位: 传输层面的保护力度不足
Calomel
第十位: 未经验证的重新指向及转发
Watcher
[了解详细]
SQL注入攻击
SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
大多数人都对SQL注入攻击有所了解,因为它既普遍存在,又影响巨大。火狐浏览器的附加组件SQL Inject Me,作为WTF插件集合中的一部分,在检测你正在浏览中的应用程序方面非常实用。通过它你可以检测全部架构或选中的参数所能受到的各种攻击方式,或者是检测该工具中预设的九种常见攻击类型。进入工具下载页面
XSS-跨站点脚本
XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常忽略其危害性。
ZAP公司拥有对其所发布工具的长效及对未来版本的明确发展路线;在后续产品中,功能性无疑将得到进一步加强。该工具的1.2.0版本包含了拦截代理、自动处理、被动处理、暴力破解以及端口扫描等功能,除此之外,蜘蛛搜索功能也被加入了进去。正是因为ZAP具备对网页应用程序的各种安全问题进行检测的能力,在这里我们将在它的帮助下对跨站点脚本(简称XSS)项目进行测试。进入工具下载页面
无效的认证及会话管理功能
无效的认证及会话管理功能会导致一种通病,即在会话ID保护方面的薄弱。它们一般来说既不具备SSL/TLS的保护,存储方式简陋低劣(未进行加密),又暴露在来自URL的改写风险之下。
如果攻击者发动的是中间人攻击或是通过XSS漏洞获取到会话ID,那么在假设这一过程不可逆的前提下,我们将可以使用火狐的插件HackBar加以应对。HackBar插件在安装之后,可以通过按下功能键F9的方式调出,然后选择加密,接下来是选择MD5加密或SHA1加密,最后将攻击检测结果发出。进入工具下载页面
对不安全对象的直接引用
所谓“不安全的对象直接引用”,即Insecure direct object references,意指一个已经授权的用户,通过更改访问时的一个参数,从而访问到了原本其并没有得到授权的对象。Web应用往往在生成Web页面时会用它的真实名字,且并不会对所有的目标对象访问时来检查用户权限,所以这就造成了不安全的对象直接引用的漏洞。
Burp Suite是一个Web应用程序集成攻击平台,包含了一系列burp工具,这些工具之间有大量接口可以互相通信,之所以这样设计的目的是为了促进和提高整个攻击的效率。它可共享同一robust框架,以便统一处理HTTP请求,持久性,认证,上游代理,日志记录,报警和可扩展性。它允许攻击者结合手工和自动技术去枚举、分析、攻击Web应用程序。这些不同的burp工具通过协同工作,有效的分享信息,支持以某种工具中的信息为基础供另一种工具使用的方式发起攻击。进入工具下载页面
伪造的跨站点请求-CSRF
跨站请求伪造,也被称成为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。
在Tamper Data运行的同时(在火狐中:点选工具项,再选择Tamper Data),我进行了自己的GalleryApp测试实践。为了验证CSRF的漏洞,我首先创建了一个额外的用户,并在Tamper Data中选择开始篡改,最后选择点击删除来分析该过程中被传输及提交的参数。进入工具下载页面
安全配置错误
事实上,这个问题可能存在于Web应用的各个层次,譬如平台、Web服务器、应用服务器,系统框架,甚至是代码中。开发人员需要和网络管理人员共同确保所有层次都合理配置,有很多自动化的工具可以用于查找是否缺少补丁,错误的安全配置,缺省用户是否存在,不必要的服务等等。
Watobo是以代理工具的角度运行的,并且需要调用Ruby中的部分内容,因此你需要在自己的系统中安装Ruby解释程序。将FoxyProxy进行设置,以使其将网络数据流通过8081端口导入Watobo。通过你所选择的浏览器,你将需要定义一个项目,然后定义会话,最后是浏览你的目标站点。进入工具下载页面
不限制访问者的URL
这个漏洞事实上也是与认证相关的,与我们前面提到的Top4不安全的直接对象引用也是类似的,不同在于这个漏洞是说系统已经对URL的访问做了限制,但这种限制却实际并没有生效。常见的错误是,我们在用户认证后只显示给用户认证过的页面和菜单选项,而实际上这些仅仅是表示层的访问控制而不能真正生效,攻击者能够很容易的就伪造请求直接访问未被授权的页面。
Nikto,cirt.net出品,是一款"网页服务扫描工具,支持同时就多个项目对网页服务器进行全方位测试,其中包括检测超过六千四百种具有潜在危险或版本已过于陈旧的文件或公共网关接口脚本,检测超过一千种过时的服务器版本,以及二百七十多种针对不同类型服务器的安全隐患。"进入工具下载页面
Wikto是一款检查网页服务器漏洞的工具。它和Nikto类似,但是添加了很多其它功能,如整合了Google的后台发掘器。Wikto工作于.NET环境下。进入工具下载页面
传输层面的保护力度不足
这是一种缺少了对敏感数据保护的漏洞。不同在于这种漏洞更多关注的是数据在网络上的传输,造成这个漏洞的原因往往如下:未能识别所有的敏感数据;未能识别敏感数据发送的所有位置;未能在每个位置对敏感数据提供合理的保护。
Calomel将会对SSL连接及安全等级等信息进行验证,并改变对应工具栏按钮的颜色,这取决于加密强度的高低,从红色(强度低)到绿色(强度高)。所有证书的状态细节都可以在对应的下拉菜单中进行查询。进入工具下载页面
未经验证的重新指向及转发
或解释为未验证的重定向和转发,我们知道,在Web应用中重定向是极为普遍的,并且通常重定向所引向的目的是带有用户输入参数的目的URL,而如果这些重定向未被验证,那么攻击者就可以引导用户访问他们所要用户访问的站点。同样,转发也是极为普遍的,本质上转发是在同一个应用中对一个新页面发送请求,并且有时是用参数来定义目标页面的。同样,如果参数未被验证,那么攻击者就可以利用其来绕过认证或是授权检查。而最终造成的后果,重定向会使得用户访问钓鱼网站或是恶意网站,而转发则会让攻击者利用先前安全检查过的请求来绕过认证或是授权。
Watcher是Chris Weber开发的 Fiddler 附加组件(只支持IE核心),而且其在被动分析方面的表现好得难以置信。为了打造能够解决上述问题的健康的信息传输层,Watcher还要求你在自己的浏览器上同时运行Fiddler。一旦与Fiddler同时被安装,Watcher的使用就变得如同利用Fiddler来管理IE的网络数据流那么简单,这时Watcher已经在Fiddler中开始发挥作用。进入工具下载页面
  • OWASP十大安全威胁中,你最常遇到哪个?
  • 注入式风险
  • 跨站点脚本 (简称XSS)
  • 无效的认证及会话管理功能
  • 对不安全对象的直接引用
  • 伪造的跨站点请求(简称CSRF)
  • 安全配置错误
  • 加密存储方面的不安全因素
  • 不限制访问者的URL
  • 传输层面的保护力度不足
  • 未经验证的重新指向及转发

    我们常说数据的安全性是极为重要的,而在程序人员的编程过程中,由于有些需求或是设计的问题,往往会造成特别是机密数据的安全性得不到保证,常见的不安全的数据存储包括:

    未能识别全部的机密数据;

    对某个机密数据未能识别其所有的存放地;(数据库、文件、目录、日志文件……)

    未对数据的每个存放地进行合理的保护

    那么显然,这样造成的后果是极为严重的:

    攻击者能够取得或是篡改机密的或是私有的信息;

    攻击者通过这些秘密的窃取从而进行进一步的攻击;

    造成企业形象破损,用户满意度下降,甚至会有法律诉讼等;

    一般来说,我们采用以下的方法来避免这个漏洞的存在:

    验证你的结构:

    ◆识别所有的敏感数据;

    ◆识别这些数据存放的所有位置;

    ◆确保所应用的威胁模型能够应付这些攻击;

    ◆使用加密手段来应对威胁

    使用一定的机制来进行保护:

    ◆文件加密;数据库加密;数据元素加密

    正确的使用这些机制:

    ◆使用标准的强算法;

    ◆合理的生成,分发和保护密钥;

    ◆准备密钥的变更

    验证实现方法:

    ◆确保使用了标准的强算法;

    ◆确保所有的证书、密钥和密码都得到了安全的存放;

    ◆有一个安全的密钥分发和应急处理的方案;

 
验证码: (点击刷新验证码) 匿名发表
 

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i