第三方APP的开发和运营应该遵守腾讯应用安全规范。本文档详细说明了常见的安全漏洞的定义以及可能造成的危害,并给出了安全漏洞的评定标准。
第三方APP在开发过程中,应该规避这些漏洞,提高代码安全。
目录
1 1 专业术语约定
1.1 1.1XSS漏洞
1.2 1.2 CSRF漏洞
1.3 1.3 INFO漏洞
1.4 1.4 JSON-hijacking漏洞
1.5 1.5 SQL注入漏洞
1.6 1.6 并发漏洞
1.7 1.7 高危端口漏洞
2 2 漏洞危害等级评定标准
3 3 安全开发运营规范
3.1 3.1 Flash跨域策略文件安全性
3.2 3.2 CSRF漏洞
3.3 3.3 测试页面泄漏在外网漏洞
3.4 3.4 XSS漏洞
3.5 3.5 泄漏后台默认文件漏洞
3.6 3.6 泄漏员工漏洞以及分机号码
3.7 3.7 cookie安全性
3.8 3.8 跳转漏洞
3.9 3.9 header注入漏洞
3.10 3.10 源代码泄漏漏洞
3.11 3.11 Frame-proxy攻击漏洞
3.12 3.12 SQL注入攻击漏洞
3.13 3.13 并发漏洞
3.14 3.14 高危端口漏洞
4 4 安全测试检查点
1 专业术语约定
1.1XSS漏洞
英文原文:Cross-site Scripting
定义:
/wiki/Cross-site_scripting
/index.php/Cross-site_Scripting_%28XSS%29
可造成危害:
XSS(Cross-site scripting)漏洞最早可以追溯到1996年,那时电子商务才刚刚起步。 XSS的出现“得益”于JavaScript编程语言的流行,JavaScript的出现(包括AJAX技术)给互联网带来更丰富的用户交互体验的同时也带来了巨大的安全隐患。
2005年10月,国外知名网络社区MySpace出现了一个叫Samy的XSS蠕虫,在24小时内感染了超过1百万个网页。百度也出现过XSS蠕虫。而国内主要银行的前些年也被轮番被XSS漏洞篡改页面导致一定的公关危机。
从此业界终于对XSS漏洞的危害开始有更深层次的认识了。
1.2 CSRF漏洞
英文原文:Cross Site Request Forgery
定义:
/wiki/Cross-site_request_forgery
/index.php/Cross-Site_Request_Forgery_%28CSRF%29
可造成危害:
CSRF是Cross Site Request Forgery的缩写(也缩写为XSRF),直译过来就是跨站请求伪造的意思。
即在用户会话下对某个CGI做一些GET/POST的事情,这些事情用户未必知道和愿意做,所以可以把它看做为HTTP会话劫持。
1.3 INFO漏洞
英文原文:Information leakage
定义:
/wiki/Information_leakage
可造成危害:
泄漏后台信息,透露后台架构。
1.4 JSON-hijacking漏洞
英文原文:JSON-Hijacking
定义:
haacked/archive/2009/06/25/json-hijacking.aspx
可造成危害:
泄漏用户敏感信息,甚至泄漏用户登陆态
1.5 SQL注入漏洞
英文原文: SQL Injection
定义:
http:/
/
/wiki/SQL_injection
可造成危害:
泄漏、篡改数据库信息。
1.6 并发漏洞
英文原文: Concurrency Attack
可造成危害:
可实现在应用中多次获奖、多次收获、多次获赠等非正常逻辑所能触发的效果。
1.7 高危端口漏洞
高危端口是指存在高安全隐患的端口,主要包括:
国内源代码网站TCP端口(1-1024),
UDP端口( 1-1024),
MySQL端口(3306),
SQL Server端口(1433、1434),
SSH端口(36000、56000),
Windows管理端口(3389),
以及memcache,proxy类服务(http-proxy, ftp-proxy,ccproxy-http),rsync,nfs。
2 漏洞危害等级评定标准
为了减少主观臆测对漏洞等级评定的影响,我们根据ebay公司的WEB漏洞安全模型为蓝本稍做修改,作为腾讯开放平台第三方应用安全漏洞的评定标准。
危险等级评分步骤:
1. 对“潜在危险” “可重现性” “可利用性” “影响用户” “可发现性”这5项,根据高、中、低标准进行打分(分别是3,2,1分)。
2. 然后5项得分累加即得总分。
3. 如果总分是 5-7 分,则是低风险; 8-11分,则是中等风险;12-15分,则是高风险。
评定标准如下表所示:
高(3分)  中(2分)  低(1分)
潜在危险  获取完全验证权限,执行管理员操作,非法上传文件  泄露敏感信息  泄露其他信息
可重现性  攻击者可以随意再次攻击  攻击者可以重复攻击,但是有时间限制  攻击者很难重复攻击过程
可利用性  初学者在短期内能掌握攻击方法  熟练的攻击者才能完成这次攻击  漏洞利用条件非常苛刻
影响用户  所有用户,缺省配置,关键用户  部分用户,非缺省配置  极少数用户,匿名用户
可发现性  漏洞很显眼,攻击条件很容易获得  有私有区域,部分人能看到,需要深入挖掘漏洞  发现其漏洞及其困难
3 安全开发运营规范
3.1 Flash跨域策略文件安全性
漏洞等级:中
安全隐患:限制过于宽松存在被第三方网站加载敏感信息、私有信息的可能性
建议:采用严格的域名限制,禁止出现所有域名都可以加载的情况。
示例:
Flash_kyclwjaqx.jpg
Flash_kyclwjaqx2.jpg
3.2 CSRF漏洞
漏洞等级:高
安全隐患:用户信息被无辜篡改,可能导致用户因为丢失其帐号信息而无法登陆
建议:部署anti-CSRF token
示例:
Google的web应用,对于写操作都有一个anti-CSRF token。如下图是某操作的前台页面源码,里面通
过一个隐藏的input框来记录一个token GALX,当用户点击提交的时候就会通过POST方式自动带上这个参数。
CSRF.jpg
与此同时,该页面的cookie值里面有GALX一个值,当用户点击提交的时候这个cookie的值也
会随着请求到达后台
CSRF2.jpg
后台会接收到写请求后会拿POST过来的GALX参数与cookie里面的GALX值做比较。如果相等,则认为是用户的合法请求;如果不相等或者POST参数里面没有GALX字段,则认为是CSRF攻击所发送的请求。考虑到接入腾讯开放平台的第三方应用是通过openkey来做状态校验的,实际应用当中可以把openkey做hash后用于token的部署。
也可以参照业界的一些方案,比如:
/articles/cross-site-request-forgeries
3.3 测试页面泄漏在外网漏洞
漏洞等级:低
安全隐患:由于这些测试页面也有可能是黑客遗留的,所以有被竞争对手炒作打压的隐患
(OSVDB-3092 /3092 )
建议:删除测试页面,例如i,phpinfo.php,info.pho, .svn/entries等。
示例:
1. parts.baby.qzoneapp/
csymxlzwwld_1.jpg
2. parts.baby.qzoneapp/test.php
csymxlzwwld_2.jpg
3. other.baby.qzoneapp
csymxlzwwld_3.jpg
3.4 XSS漏洞
漏洞等级:中或高
安全隐患:执行恶意脚本、构造蠕虫传播、篡改页面实施钓鱼攻击等
建议:对参数做html转义过滤(要过滤的字符包括:单引号、双引号、大于号、小于号),防止脚本执行
示例:
比如用户输入内容:’<u>a</u>”的时候,合法的显示是: ’<u>a</u>” ,合法的显示的源码是:
Xss_1.jpg
而存在漏洞的页面显示却是:’a”
源码是:
Xss_2.jpg
3.5 泄漏后台默认文件漏洞
漏洞等级:低
安全隐患:会泄漏后台服务配置信息,给入侵黑客提供有价值的渗透线索(OSVDB-3233 /3233)
建议:删除默认文件
示例:
比如某大型网站曾经存在过如下漏洞,把一个系统默认的说明文件放到web的根目录,导致外网用户可以访问。
xlhtmrwjld.jpg
3.6 泄漏员工漏洞以及分机号码
漏洞等级:低
安全隐患:泄漏员工内部以及分机号码相当于泄漏了员工内部ID,可以为黑客进行社会工程
学攻击提供有价值的材料,同时也为黑客暴力破解后台服务提供重要的帐号信息。
建议:删除页面注释等地方中出现腾讯员工以及分机号码的地方
3.7 cookie安全性
漏洞等级:高
安全隐患:cookie的属性设置不当可能会造成其他SNS游戏的运行出错等隐患。
建议:对cookie字段的domain属性做严格的设定,openkey以及openid的domain只能设置到子域,禁止设置父域qzoneapp。
合法示例:
Cookies_safe.jpg
3.8 跳转漏洞
漏洞等级:中
安全隐患:可以欺骗用户跳转去钓鱼网站,偷取用户信息
建议:跳转url做合法性校验
示例:
比如国内某知名网站曾经出现过这个跳转漏洞,导致其
用户被钓鱼网站所欺骗,造成经济损失:
www.XXXXXX/university/classroom.php?from=www.baidu
这个php本来是要跳转回XXXXXX域名下的某个页面的,但是由于没有对from参数做严格校验,所以设置成其他网站一样可以跳转成功。
3.9 header注入漏洞
漏洞等级:高
安全隐患:可以造成xss攻击、欺骗用户下载恶意可执行文件等攻击。
漏洞版本:另外根据国际安全组织司acunetix统计,以下apache存在header injection漏洞:1.3.34/2.0.57/2.2.1。
建议:不采用有漏洞版本的apache服务器,同事对参数做合法性校验以及长度限制,谨慎的根据用户所传入参数做http返回包的header设置。
漏洞参考:
/wiki/HTTP_header_injection
/HTTP-Response-Splitting
示例:
比如国内某著名网站曾经出现过header注入漏洞,如下url:
www.YYYYYYYYY/YYYYWeb/jsp/website/agentInvoke.jsp?agentid=%0D%0AX-foo:%20bar
抓包时发现:
Header_insertion.jpg
3.10 源代码泄漏漏洞
漏洞等级:高
安全隐患:泄漏源代码可以让黑客完全了解后台开发语言、架构、配置信息等
建议:删除bak的源码文件
示例: 国内某著名网站曾经出现过源代码泄漏的漏洞,如下图:
431px_ydmxlld.jpg
3.11 Frame-proxy攻击漏洞
漏洞等级:高
安全隐患:在一些老版本浏览器(比如IE6)下,Frame-proxy攻击可以把非常驻XSS漏洞以常驻型的方式做攻击。
建议 qzoneapp域名下的应用不能再通过iframe嵌入qq域名下页面。
原理:
如下图所示,假设域名xiaoyou.qq底下没有任何xss漏洞,然后xiaoyou.qq通过iframe嵌入了一个xxx.qzoneapp域名。
假设qq的某个子域vul.qq存在一个非常驻的xss漏洞,那么当xxx.qzoneapp通过iframe嵌入vul.qq时,访问xiaoyou.qq域名的用户将受到常驻型XSS漏洞的攻击。
14.jpg
3.12 SQL注入攻击漏洞
漏洞等级:高
安全隐患:攻击者通过http请求获取、修改、删除数据库内容。
建议 :
1. 接入腾讯TTC(腾讯缓存服务器);
2. 对与数据库进行交互的用户请求数据,要先做过滤,防止SQL注入。
3.13 并发漏洞
漏洞等级:高
安全隐患:攻击者通过并发HTTP请求而达到在应用中获得多次获奖、多次收获、多次获赠等非正常逻辑所能触发的效果。
建议 :对数据库操作加锁。
3.14 高危端口漏洞
漏洞等级:高
安全隐患:黑客可能访问相关高危端口来进行高危操作。
建议 :关闭这些高位端口。
对于部署在腾讯服务器上的应用,目前默认给应用开通的端口为80,443,843,8001 - 8010,其中8001~8010同时支持TCP和UD
P协议。
原则上高危端口不允许申请开
放,如果有特殊需要,请通过企业QQ联系运维支持,提出申请。
开发者不得私自开通其他端口,否则将按照腾讯社区开放平台应用运营管理办法中的规定进行处理。
4 安全测试检查点
针对以上安全规范,第三方应用测试人员应该按照下列checklist进行安全性检查。
NO  检查点
1  Flash跨域策略文件l 安全性检查
2  CSRF漏洞 安全性检查
3  测试页面(例如i,phpinfo.php,info.pho, .svn/entries等)泄漏在外网漏洞 安全性检查
4  XSS漏洞 安全性检查
5  泄漏后台默认文件漏洞 安全性检查
6  泄漏员工漏洞以及分级号码 安全性检查
7  Cookie安全性检查
8  跳转漏洞 安全性检查
9  Header注入漏洞 安全性检查
10  源代码泄漏漏洞 安全性检查
11  Frame-proxy攻击漏洞 安全性检查
12  SQL注入攻击漏洞 安全性检查
13  并发漏洞 安全性检查
14  严禁在自己系统处理用户Login,必须采用腾讯公司统一提供的登陆接口或者参数openid/openkey登录
15  脏话过滤必须采用腾讯公司统一函数和脏话库,提示语必须符合公司规范。
16  敏感内容,如可能造成腾讯公司公关、媒体危机等相关内容,必须符合腾讯公司规范。
17  通过WEB页面发起的临时会话,必须检查临时会话窗口的所有显示内容。
18  避免Flash注入javascript或者actionscript脚本在浏览器或者flash中执行跨站攻击
19  高危端口检查,避免开放高危端口。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。