华为WEB应用系统安全规范v5.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《华为WEB应用系统安全规范v5.docx》由会员分享,可在线阅读,更多相关《华为WEB应用系统安全规范v5.docx(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、DKBA华为技术有限公司内部技术规范DKBA 1606-XXXX.XWeb应用安全开发规范 V1.52013年XX月XX日发布 2013年XX月XX日实施华为技术有限公司Huawei Technologies Co., Ltd.版权所有 侵权必究All rights reserved编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第39页 共39页修订声明Revision declaration本规范拟制与解释部门:网络安全能力中心&电信软件与核心网网络安全工程部本规范的相关系列规范或文件:C&C+语言安全编程规范Java语言安全编程规范相关国际规范或文件一致性:无替代或作废
2、的其它规范或文件:无相关规范或文件的相互关系:产品网络安全红线和电信软件与核心网业务部安全能力基线中的Web安全要求引用了本规范的内容,如果存在冲突,以本规范为准。规范号主要起草部门专家主要评审部门专家修订情况DKBA 1606-2007.4安全解决方案:赵武42873,杨光磊57125,万振华55108软件公司设计管理部:刘茂征11000,刘高峰63564,何伟祥33428安全解决方案:刘海军12014,吴宇翔18167,吴海翔57182接入网:彭东红27279无线:胡涛46634核心网:吴桂彬 41508,甘嘉栋 33229,马进 32897,谢秀洪 33194,张毅 27651,张永锋
3、40582业软:包宜强56737,丁小龙63583,董鹏越60793,傅鉴杏36918,傅用成30333,龚连阳18753,胡海60017320,胡海华52463,李诚37517,李大锋54630,李战杰21615,刘创文65632,刘飞46266,刘剑51690,栾阳62227,罗仁钧65560,罗湘武06277,马亮60009259,孟咏喜22499,潘海涛27360,孙林46580,王福40317,王锦亮36430,王美玲60011866,王谟磊65558,王玉龙24387,杨娟60019875,张锋43381,张健60005645,张轶57143,邹韬51591V1.0何伟祥33428
4、刘高峰 63564,龚连阳 00129383,许汝波 62966,吴宇翔 00120395,王欢 00104062,吕晓雨 56987V1.2增加了Web Service、Ajax和上传和下载相关的安全规范。何伟祥00162822V1.3增加了防止会话固定和防止跨站请求伪造的安全规范。何伟祥00162822V1.4增加了“规则3.4.1”的实施指导;删除了“建议3.4.1”;修改了“6 配套CBB介绍”的内容和获取方式。增加了“3.9 DWR”何伟祥 00162822吴淑荣 00197720魏建雄 00222906谢和坤 00197709李田 00042091孙波 00175839朱双红 00
5、051429王伟 00207440陈伟 00141500V1.5增加“规则3.3.9、规则3.6.5、规则4.7.1、建议4.7.2、4.8 PHP”增加“3.8 RESTful Web Service”修改“规则3.2.2.8、规则3.2.2.3、规则3.4.1、规则4.6.1”删除“3.2.1口令策略”和“规则3.1.3、规则3.2.3.8、规则4.7.1”附件文档作为对象直接插入主文档目 录 Table of Contents1概述71.1背景简介71.2技术框架81.3使用对象91.4适用范围91.5用词约定92常见WEB安全漏洞103WEB设计安全规范113.1Web部署要求113.
6、2身份验证123.2.1口令123.2.2认证123.2.3验证码153.3会话管理163.4权限管理173.5敏感数据保护183.5.1敏感数据定义183.5.2敏感数据存储183.5.3敏感数据传输203.6安全审计213.7Web Service223.8RESTful Web Service233.9DWR244WEB编程安全规范254.1输入校验254.2输出编码304.3上传下载304.4异常处理314.5代码注释314.6归档要求324.7其他334.8PHP345WEB安全配置规范366配套CBB介绍376.1WAF CBB376.2验证码CBB387附件387.1附件1 To
7、mcat配置SSL指导387.2附件2 Web Service 安全接入开发指导387.3附件3 客户端IP鉴权实施指导387.4附件4 口令安全要求387.5附件5 Web权限管理设计规格说明书39Web应用安全开发规范 V1.51 概述1.1 背景简介在Internet大众化及Web技术飞速演变的今天,Web安全所面临的挑战日益严峻。黑客攻击技术越来越成熟和大众化,针对Web的攻击和破坏不断增长,Web安全风险达到了前所未有的高度。许多程序员不知道如何开发安全的应用程序,开发出来的Web应用存在较多的安全漏洞,这些安全漏洞一旦被黑客利用将导致严重甚至是灾难性的后果。这并非危言耸听,类似的网
8、上事故举不胜举,公司的Web产品也曾多次遭黑客攻击,甚至有黑客利用公司Web产品的漏洞敲诈运营商,造成极其恶劣的影响。本规范就是提供一套完善的、系统化的、实用的Web安全开发方法供Web研发人员使用,以期达到提高Web安全的目的。本规范主要包括三大内容:Web设计安全、Web编程安全、Web配置安全,配套CBB,多管齐下,实现Web应用的整体安全性;本规范主要以JSP/Java编程语言为例。1.2 技术框架图1 典型的Web安全技术框架图1 显示了典型的Web安全的技术框架和安全技术点,这些安全技术点,贯穿整个Web设计开发过程。上图各个区域中存在任何一点薄弱环节,都容易导致安全漏洞。由于HT
9、TP的开放性,Web应用程序必须能够通过某种形式的身份验证来识别用户,并确保身份验证过程是安全的,同样必须很好地保护用于跟踪已验证用户的会话处理机制。为了防止一些恶意输入,还要对输入的数据和参数进行校验。另外还要考虑Web系统的安全配置,敏感数据的保护和用户的权限管理,以及所有操作的安全审计。当然还要考虑代码安全,以及其他方面的威胁。表 1 列出了一些Web缺陷类别,并针对每类缺陷列出了由于设计不当可能会导致的潜在问题。针对这些潜在的问题,本规范中有相应的解决措施。表1 Web 应用程序缺陷和由于不良设计可能导致的问题缺陷类别由于不良设计可能导致的问题身份验证身份伪造、口令破解、权限提升和未授
10、权访问。会话管理通过捕获导致会话劫持和会话伪造。权限管理访问机密或受限数据、篡改和执行未授权操作。配置管理未授权访问管理界面、更新配置数据、访问用户帐户和帐户配置文件。敏感数据机密信息泄漏和数据篡改。加密技术未授权访问机密数据或帐户信息。安全审计未能识别入侵征兆、无法证明用户的操作,以及在问题诊断中存在困难。输入检验通过嵌入查询字符串、窗体字段、Cookie 和 HTTP 标头中的恶意字符串所执行的攻击。包括命令执行、跨站点脚本编写 (XSS)、SQL 注入和缓冲区溢出攻击等。参数操作路径遍历攻击、命令执行、此外还有跳过访问控制机制、导致信息泄露、权限提升和拒绝服务。异常管理拒绝服务和敏感的系
11、统级详细信息泄露。1.3 使用对象本规范的读者及使用对象主要为Web相关的需求分析人员、设计人员、开发人员、测试人员等。1.4 适用范围本规范的制定考虑了公司各种Web应用开发的共性,适合于公司绝大部分Web产品,要求Web产品开发必须遵循。对于嵌入式系统(如ADSL Modem、硬件防火墙)中的Web应用,由于其特殊性(CPU、内存、磁盘容量有限,没有成熟的Web容器),不强制遵循本规范的所有内容,只需遵循以下章节的规则要求:3.2身份验证3.3会话管理3.5敏感数据保护4.1输入校验4.2输出编码4.3上传下载4.5代码注释4.6归档要求1.5 用词约定 规则:强制必须遵守的原则 建议:需
12、要加以考虑的原则 说明:对此规则或建议进行相应的解释 实施指导:对此规则或建议的实施进行相应的指导2 常见Web安全漏洞Web应用的安全漏洞有很多,无法穷举。针对众多的Web漏洞,OWASP的专家们结合各自在各领域的应用安全工作经验及智慧,提出了十大Web应用程序安全漏洞,帮助人们关注最严重的漏洞。(OWASP即开放Web应用安全项目,是一个旨在帮助人们理解和提高Web应用及服务安全性的项目组织。)表2 十大Web应用程序安全漏洞列表序号漏洞名称漏洞描述1注入注入攻击漏洞,例如SQL、OS命令以及LDAP注入。这些攻击发生在当不可信的数据作为命令或者查询语句的一部分,被发送给解释器的时候。攻击
13、者发送的恶意数据可以欺骗解释器,以执行计划外的命令或者访问未被授权的数据。2跨站脚本当应用程序收到含有不可信的数据,在没有进行适当的验证和转义的情况下,就将它发送给一个网页浏览器,这就会产生跨站脚本攻击(简称XSS)。XSS允许攻击者在受害者的浏览器上执行脚本,从而劫持用户会话、危害网站、或者将用户转向至恶意网站。3失效的身份认证和会话管理与身份认证和会话管理相关的应用程序功能往往得不到正确的实现,这就导致了攻击者破坏密码、密匙、会话令牌或攻击其他的漏洞去冒充其他用户的身份。4不安全的直接对象引用当开发人员暴露一个对内部实现对象的引用时,例如,一个文件、目录或者数据库密匙,就会产生一个不安全的
14、直接对象引用。在没有访问控制检测或其他保护时,攻击者会操控这些引用去访问未授权数据。5跨站请求伪造一个跨站请求伪造攻击迫使登录用户的浏览器将伪造的HTTP请求,包括该用户的会话cookie和其他认证信息,发送到一个存在漏洞的Web应用程序。这就允许了攻击者迫使用户浏览器向存在漏洞的应用程序发送请求,而这些请求会被应用程序认为是用户的合法请求。6安全配置错误好的安全需要对应用程序、框架、应用程序服务器、Web服务器、数据库服务器和平台,定义和执行安全配置。由于许多设置的默认值并不是安全的,因此,必须定义、实施和维护所有这些设置。这包括了对所有的软件保护及时地更新,包括所有应用程序的库文件。7失败
15、的URL访问权限限制许多Web应用程序在显示受保护的链接和按钮之前会检测URL访问权限。但是,当这些页面被访问时,应用程序也需要执行类似的访问控制检测,否则攻击者将可以伪装这些URL去访问隐藏的网页。8未经验证的重定向和前转Web应用程序经常将用户重定向和前转到其他网页和网站,并且利用不可信的数据去判定目的页面。如果没有得到适当验证,攻击者可以将受害用户重定向到钓鱼网站或恶意网站,或者使用前转去访问未经授权的网页。9不安全的加密存储许多Web应用程序并没有使用恰当的加密措施或Hash算法保护敏感数据,比如信用卡、社会安全号码(SSN)、认证凭据等。攻击者可能利用这种弱保护数据实行身份盗窃、信用
16、卡欺骗或或其他犯罪。10传输层保护不足应用程序时常没有身份认证、加密措施,甚至没有保护敏感网络数据的保密性和完整性。而当进行保护时,应用程序有时采用弱算法、使用过期或无效的证书,或不正确地使用这些技术。3 Web设计安全规范3.1 Web部署要求规则3.1.1:如果 Web 应用对 Internet 开放,Web服务器应当置于DMZ区,在Web服务器与Internet之间,Web服务器与内网之间应当有防火墙隔离,并设置合理的策略。规则3.1.2:如果 Web 应用对 Internet 开放,Web服务器应该部署在其专用的服务器上,应避免将数据库服务器或其他核心应用与Web服务器部署在同一台主机
17、上。说明:Web服务器比较容易被攻击,如果数据库或核心应用与Web服务器部署在同一台主机,一旦Web服务器被攻陷,那么数据库和核心应用也就被攻击者掌控了。规则3.1.3:Web站点的根目录必须安装在非系统卷中。说明:Web站点根目录安装在非系统卷,如单独创建一个目录/home/Web作为Web站点根目录,能够防止攻击者使用目录遍历攻击访问系统工具和可执行文件。建议3.1.1:Web服务器与应用服务器需物理分离(即安装在不同的主机上),以提高应用的安全性。建议3.1.2:如果Web应用系统存在不同的访问等级(如个人帐号使用、客户服务、管理),那么应该通过不同的Web服务器来处理来自不同访问等级的
18、请求,而且Web应用应该鉴别请求是否来自正确的Web服务器。说明:这样便于通过防火墙的访问控制策略和Web应用来控制不同访问等级的访问,比如通过防火墙策略控制,只允许内网访问管理Portal。建议3.1.3:对于“客户服务”和“管理”类的访问,除了普通的认证,还应该增加额外的访问限制。说明:额外的访问限制,可以限制请求来自企业内网,可以建立VPN,或采用双向认证的SSL;或采用更简单的办法,通过IP地址白名单对客户端的IP地址进行过滤判断,实施参考附件3客户端IP鉴权实施指导。3.2 身份验证3.2.1 口令关于Web应用及容器涉及到的口令,请遵循产品网络安全红线的口令安全要求(详细内容请见:
19、附件4 口令安全要求.xlsx)。3.2.2 认证规则3.2.2.1:对用户的最终认证处理过程必须放到应用服务器进行。说明:不允许仅仅通过脚本或其他形式在客户端进行验证,必须在应用服务器进行最终认证处理(如果采用集中认证,那么对用户的最终认证就是放在集中认证服务器进行)。规则3.2.2.2:网页上的登录/认证表单必须加入验证码。说明:使用验证码的目的是为了阻止攻击者使用自动登录工具连续尝试登录,从而降低被暴力破解的可能。如果觉得验证码影响用户体验,那么可以在前3次登录尝试中不使用验证码,3次登录失败后必须使用验证码。验证码在设计上必须要考虑到一些安全因素,以免能被轻易地破解。具体实现细节请查看
20、3.2.3验证码。如图:图2 验证码实施指导:建议使用电信软件与核心网网络安全工程部提供的验证码CBB。备注:对于嵌入式系统,如果实现验证码比较困难,可以通过多次认证失败锁定客户端IP的方式来防止暴力破解。规则3.2.2.3:用户名、密码和验证码必须在同一个请求中提交给服务器,必须先判断验证码是否正确,只有当验证码检验通过后才进行用户名和密码的检验,否则直接提示验证码错误。说明:如果验证码和用户名、密码分开提交,攻击者就可以绕过验证码校验(如:先手工提交正确的验证码,再通过程序暴力破解),验证码就形同虚设,攻击者依然可以暴力破解用户名及口令。规则3.2.2.4:所有登录页面的认证处理模块必须统
21、一。说明:可以存在多个登录页面,但是不允许存在多个可用于处理登录认证请求的模块,防止不一致的认证方式。规则3.2.2.5:所有针对其他第三方开放接口的认证处理模块必须统一。规则3.2.2.6:认证处理模块必须对提交的参数进行合法性检查。说明:具体输入校验部分请查看4.1输入校验。规则3.2.2.7:认证失败后,不能提示给用户详细以及明确的错误原因,只能给出一般性的提示。说明:可以提示:“用户名或者口令错误,登录失败”;不能提示:“用户名不存在”、“口令必须是 6 位”等等。规则3.2.2.8:最终用户portal和管理portal分离。说明:最终用户portal和管理portal分离,防止相互
22、影响,防止来自用户面的攻击影响管理面。实施指导:将最终用户portal和管理portal分别部署在不同的物理服务器;如果为了解决成本合设(部署在同一台物理服务器上),那么,必须做到端口分离(通过不同的端口提供Web服务),一般的Web容器(如tomcat)支持为不同的Web应用创建不同的端口。规则3.2.2.9:禁止在系统中预留任何的后门帐号或特殊的访问机制。规则3.2.2.10:对于重要的管理事务或重要的交易事务要进行重新认证,以防范会话劫持和跨站请求伪造给用户带来损失。说明:重要的管理事务,比如重新启动业务模块;重要的交易事务,比如转账、余额转移、充值等。重新认证,比如让用户重新输入口令。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华为 WEB 应用 系统安全 规范 v5
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内