WEB应用系统安全规范文档样本_第1页
WEB应用系统安全规范文档样本_第2页
WEB应用系统安全规范文档样本_第3页
WEB应用系统安全规范文档样本_第4页
WEB应用系统安全规范文档样本_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WEB应用系统安全规范目录WEB应用系统安全规范 11 概述 41.1 目 41.2 合用范畴 42 范畴 43 名词解释 44 Web开发安全规范 54.1 Web应用程序体系构造和安全 54.2 Web安全编码规范 74.2.1 区别公共区域和受限区域 74.2.2 对身份验证cookie内容进行加密 74.2.3 限制会话寿命 74.2.4 使用SSL保护会话身份验证Cookie 74.2.5 保证顾客没有绕过检查 74.2.6 验证从客户端发送所有数据 84.2.7 不要向客户端泄漏信息 84.2.8 记录详细错误信息 84.2.9 捕获异常 84.2.10 不要信任HTTP头信息 84.2.11 不要使用HTTP-GET合同传递敏感数据 84.2.12 不要在永久性cookie中存储敏感数据 84.2.13 对数据进行加密或保证通信通道安全 94.2.14 SQL语句参数应以变量形式传入 94.2.15 页面中非源代码内容应通过URI编码 94.2.16 页面中拼装脚本应校验元素来源合法性 94.2.17 页面祈求解决应校验参数最大长度 94.2.18 登录失败信息错误提示应一致 104.2.19 避免页面上传任意扩展名文献 104.2.20 避免接受页面中主机磁盘途径信息 104.2.21 第三方产品合法性 105 系统布置安全规范 105.1 布置架构和安全 105.1.1 网络基本构造组件 115.1.2 布置拓扑构造 125.2 布置操作安全规范 125.2.1 保证管理界面安全 125.2.2 保证配备存储安全 125.2.3 单独分派管理特权 125.2.4 使用至少特权进程和服务帐户 125.2.5 尽量避免存储机密 135.2.6 不要在代码中存储机密 135.2.7 不要以纯文本形式存储数据库连接、密码或密钥 135.2.8 限制主机上WEB系统启动顾客权限 135.2.9 隐藏后台调试信息 135.2.10 密码加密存储 135.2.11 隐藏重要配备参数信息 145.2.12 隐藏日记文献 145.2.13 禁用WebDAV,或者禁止不需要HTTP办法 145.2.14 保证管理平台、测试账号口令强度 145.2.15 定期核查文献上传途径、日记途径中与否存在木马 145.2.16 及时删除应用系统暂时文献 145.2.17 重要系统隔离 146 安全审计 156.1 审核并记录跨应用层访问 156.2 考虑标记流 156.3 记录核心事件 156.4 保证日记文献安全 156.5 定期备份和分析日记文献 167 规范更新机制 168 规范执行 169 参照资料 17概述目为规范我司JavaWeb应用编码和布置安全控制和管理,特制定本规范,并作为安全检查及考核参照根据。合用范畴本规范合用于我司所有在线Java业务系统、测试系统WEB应用。本规范可作为其她非WEB应用编码和布置安全办法参照。范畴本规范中列出是常用安全办法和高风险漏洞,在系统开发与系统布置过程中,对本规范未能尽述必要安全办法,仍应予以采用。本规范每年复审一次,其他时候也可以依照需要进行修订并发布。本规范解释权和修改权归属信息技术部。名词解释验证:通讯实体(例如,客户端和服务器)彼此验证,以通过访问授权特定标记为根据。资源访问控制:资源交互仅限于某些顾客或程序集合,其目是对完整性,保密性或可用性实行强制约束。数据完整性:检查信息与否被第三方(非信息源其他实体)修改。例如,处在开放网络环境中数据接受方必要可以检测并丢弃那些在传递过程中被修改过消息。机密性或数据隐私:保证信息仅对通过访问授权顾客可用。不可否认:对顾客进行检查,让她无法否认自己进行过活动。审核:捕获一种安全有关事件防篡改记录,目是评估安全方略和机制有效性。Web开发安全规范Web应用程序体系构造和安全HTTP是无国界,这意味着跟踪每位顾客会话状态将成为应用程序责任。应用程序必要可以通过某种形式身份验证来辨认顾客。由于所有后续授权决策都要基于顾客标记,因而,身份验证过程必要是安全,同样必要较好地保护用于跟踪已验证顾客会话解决机制。设计安全身份验证和会话管理机制仅仅是Web应用程序设计人员和开发人员所面临众多问题中两个方面。由于输入和输出数据要在公共网络上进行传播,因而还会存在其她挑战。防止参数操作和敏感数据泄漏也是此外某些重要问题。Web应用程序安全设计是依照应用程序漏洞类别进行组织。实际经验表白,如果这些领域设计存在薄弱环节,将会导致安全漏洞。下表列出了漏洞类别,每个类别都突出显示了由于设计不当也许会导致潜在问题。漏洞类别由于设计不当而引起潜在问题输入验证嵌入到查询字符串、表单字段、cookie和HTTP头中恶意字符串袭击。这些袭击涉及命令执行、跨站点脚本(XSS)、SQL注入和缓冲区溢出袭击。身份验证标记欺骗、密码破解、特权提高和未经授权访问。授权访问保密数据或受限数据、篡改数据以及执行未经授权操作。配备管理对管理界面进行未经授权访问、具备更新配备数据能力以及对顾客帐户和帐户配备文献进行未经授权访问。敏感数据泄露保密信息以及篡改数据。会话管理捕获会话标记符,从而导致会话劫持及标记欺骗。加密访问保密数据或帐户凭据,或两者均能访问。参数操作途径遍历袭击、命令执行以及绕过访问控制机制,从而导致信息泄漏、特权提高和回绝服务。异常管理回绝服务和敏感系统级详细信息泄漏。审核和记录不能发现入侵迹象、不能验证顾客操作,以及在诊断问题时浮现困难。针对上述漏洞应用程序设计指南如下表:类别规范指南输入验证不要信任输入;应考虑集中式输入验证。

不要依赖于客户端验证。注意原则化问题。限制、回绝和净化输入。验证类型、长度、格式和范畴。身份验证将站点分割为匿名区域、标记区域和通过身份验证区域。使用强密码。支持密码有效期和帐户禁用。不要存储凭据(应使用带有salt单向哈希)。加密通信通道,以保护身份验证令牌。仅通过HTTPS连接传递表单身份验证cookie。授权使用至少特权帐户。考虑授权粒度。实行分别授权。限制顾客访问系统级资源。配备管理使用至少特权进程和服务帐户。不要以纯文本形式存储凭据。在管理界面上使用强身份验证和授权。不要使用LSA。远程管理时要保证通信通道安全。避免在Web空间中存储敏感数据。敏感数据避免存储机密。对网络上传播敏感数据进行加密。保证通信通道安全。对敏感数据存储提供强访问控制。不要在永久性cookie中存储敏感数据。不要使用HTTP-GET合同传递敏感数据。会话管理限制会话寿命。保证通道安全。对身份验证cookie内容进行加密。保护会话状态,以防止未经授权访问。加密不要自创加密算法。使用可靠并通过测试平台功能。将未加密数据存储在算法附近。使用对的算法和密钥大小。避免密钥管理(使用DPAPI)。定期回收密钥。在受限区域存储密钥。参数操作对敏感cookie状态加密。不要信任客户端可以操作字段(如查询字符串、表单字段、cookie或HTTP头)。验证从客户端发送所有数据。异常管理使用构造化异常解决机制。不要泄漏敏感应用程序实行细节。不要记录保密数据,如密码。考虑使用集中式异常管理框架。审核和记录辨认怀有恶意行为。理解好数据流应当是什么样子。在所有应用层中审核和记录活动。保证日记文献访问安全。定期备份和分析日记文献。Web安全编码规范区别公共区域和受限区域站点公共区域容许任何顾客进行匿名访问。受限区域只能接受特定顾客访问,并且顾客必要通过站点身份验证。考虑一种典型零售网站。您可以匿名浏览产品分类。当您向购物车中添加物品时,应用程序将使用会话标记符验证您身份。最后,当您下订单时,即可执行安全交易。这需要您进行登录,以便通过SSL验证交易。将站点分割为公共访问区域和受限访问区域,可以在该站点不同区域使用不同身份验证和授权规则,从而限制对SSL使用。使用SSL会导致性能下降,为了避免不必要系统开销,在设计站点时,应当在规定验证访问区域限制使用SSL。对身份验证cookie内容进行加密虽然使用SSL,也要对cookie内容进行加密。如果袭击者试图运用XSS袭击窃取cookie,这种办法可以防止袭击者查看和修改该cookie。在这种状况下,袭击者依然可以使用cookie访问应用程序,但只有当cookie有效时,才干访问成功。限制会话寿命缩短会话寿命可以减少会话劫持和重复袭击风险。会话寿命越短,袭击者捕获会话cookie并运用它访问应用程序时间越有限。使用SSL保护会话身份验证Cookie不要通过HTTP连接传递身份验证cookie。在授权cookie内设立安全cookie属性,以便批示浏览器只通过HTTPS连接向服务器传回cookie。保证顾客没有绕过检查保证顾客没有通过操作参数而绕过检查。最后顾客可以通过浏览器地址文本框操作URL参数。例如,URL地址http://www.<YourSite>/<YourApp>/sessionId=10包括一种值10,通过将该值更改为其她随机数字,可以得到不同输出。应保证在服务器端代码中执行上述检查,而不是在客户端JavaScript中检查,由于可以在浏览器中禁用JavaScript。验证从客户端发送所有数据限制可接受顾客输入字段,并对来自客户端所有值进行修改和验证。如果表单字段中包括预定义值,顾客可以更改这些值,并将其传回服务器,以得到不同成果。只接受已知有益数据。例如,如果输入字段面向一种州,那么只有与该州邮政编码匹配输入才干被接受。不要向客户端泄漏信息发生故障时,不要暴露将会导致信息泄漏消息。例如,不要暴露涉及函数名以及调试内部版本时出问题行数(该操作不应在生产服务器上进行)堆栈跟踪详细信息。应向客户端返回普通性错误消息。记录详细错误信息向错误日记发送详细错误消息。应当向服务或应用程序客户发送至少量信息,如普通性错误消息和自定义错误日记ID,随后可以将这些信息映射到事件日记中详细消息。保证没有记录密码或其她敏感数据。捕获异常使用构造化异常解决机制,并捕获异常现象。这样做可以避免将应用程序置于不协调状态,这种状态也许会导致信息泄漏。它尚有助于保护应用程序免受回绝服务袭击。拟定如何在应用程序内部广播异常现象,并着重考虑在应用程序边界会发生什么事情。不要信任HTTP头信息HTTP头在HTTP祈求和响应开始时发送。应保证Web应用程序任何安全决策都不是基于HTTP头中包括信息,由于袭击者很容易操作HTTP头。例如,HTTP头中“referer”字段包括发出祈求网页URL。不要基于“referer”字段值作出任何安全决策,以检查发出祈求页面与否由该Web应用程序生成,由于该字段很容易伪造。不要使用HTTP-GET合同传递敏感数据应避免使用HTTP-GET合同存储敏感数据,由于该合同使用查询字符串传递数据。使用查询字符串不能保证敏感数据安全性,由于查询字符串经常被服务器记录下来。不要在永久性cookie中存储敏感数据避免在永久性cookie中存储敏感数据。如果存储是纯文本数据,最后顾客可以看到并修改该数据。如果对其加密,必要考虑密钥管理。例如,如果用于加密cookie中数据密钥已过期且已被回收,则新密钥不能对客户端通过浏览器传递永久性cookie进行解密。对数据进行加密或保证通信通道安全如果在网络上向客户端发送敏感数据,应对数据进行加密或保证通信通道安全。普通做法是在客户端与Web服务器之间使用SSL。服务器间通信普通使用IPSec。要保证通过多重中间件传播敏感数据安全性,如Web服务简朴对象访问合同(SOAP)消息,应使用消息级加密。SQL语句参数应以变量形式传入(一)在对数据库进行查询与各类操作时,SQL语句中参数应以变量形式传播给服务器,不应直接将参数值拼接到SQL语句文本中。(二)参数类型涉及所有数据类型,而不但是字符串类型。(三)参数值来源涉及但不限于:顾客输入数据、从数据库中读出数据、从配置文献中读出数据、从外部系统中获得数据、其他程序逻辑计算得出数据,等等。(四)SQL语句执行位置涉及但不限于:代码中SQL语句,数据库存储过程、触发器、定期器等。(五)应用程序在解决顾客非法URL祈求,触发后台应用程序SQL错误时,应返回解决后错误页面提示,禁止直接抛出数据库SQL错误,如浮现ORA-xxx等等。页面中非源代码内容应通过URI编码(一)页面中非源代码内容,应当以URI编码后字符浮现,避免特殊字符直接出当前页面中。(二)内容来源涉及但不限于:在服务器端由程序生成页面内容、在浏览器端由脚本生成页面内容(如:javascript中document.write函数)。(三)页面中隐藏内容、页面格式控制等,也应受本公约束。页面中拼装脚本应校验元素来源合法性(一)在浏览器端拼装并运营(如:运用javascripteval函数执行)脚本,应校验拼装元素来源合法性,拟定其中没有危害性内容。(二)校验范畴涉及但不限于:变量名元素应符合标记符规则、整型元素只包括数字、元素中不包括特殊字符。页面祈求解决应校验参数最大长度(一)WEB服务器在接受页面祈求时,应校验参数最大长度,截断超过最大长度范畴。登录失败信息错误提示应一致(一)WEB服务器在接受顾客登录祈求时,不应区别登录失败提示信息(如:顾客名不存在、密码错误、密码已过期等),应采用统一失败提示信息(如:错误顾客名或密码)。避免页面上传任意扩展名文献(一)WEB服务器在接受页面上传文献时,应对文献名进行过滤,仅接受指定范畴文献(如:图片,.zip文献等),同步,要修改上传后文献名,不应接受也许存在危险文献(如:.jsp,.sh,.war,.jar文献等)。(二)如果出于业务需要(如:网盘等)必要接受任意扩展名文献,则应自动修改上传文献扩展名,并注意采用统一无风险扩展名命名规则。避免接受页面中主机磁盘途径信息(一)WEB服务器接受页面祈求中任何内容,不得作为主机磁盘途径(涉及相对途径)解决,特别不得在程序中提取磁盘上目录、文献内容传送到页面。第三方产品合法性(一)应选取合法第三方产品,在使用第三方产品前,需要进行安全评估和版本筛选。

系统布置安全规范布置架构和安全下图显示了需在程序设计阶段考虑几种程序布置问题。在应用程序设计阶段,应考虑我司安全方略和程序,以及布置应用程序基本构造。普通,目的环境是固定不变,应用程序设计必要要反映这些限制条件。有时需要折衷考虑设计方案,例如,由于存在合同和端口限制,或是特定布置拓扑构造规定。要在设计初期拟定存在哪些限制条件,以避免日后在开发过程中浮现意外;此外,应邀请网络和基本构造工作构成员参加此过程。网络基本构造组件保证您理解目的环境提供网络构造,并理解网络基本安全规定,如筛选规则、端口限制、支持合同等等。拟定防火墙和防火墙方略也许会如何影响应用程序设计和布置。在面向Internet应用程序和内部网络之间也许存在防火墙将其隔开。也许还存在用于保护数据库其她防火墙。这些防火墙影响了可用通信端口,因而会影响Web服务器到远程应用程序和数据库服务器身份验证选项。例如,Windows身份验证需要附加端口。在设计阶段,需要考虑容许哪些合同、端口和服务从外围网络中Web服务器访问内部资源。还应拟定应用程序设计所需合同和端口,并分析打开新端口或使用新合同会带来哪些潜在威胁。交流并记录所有关于网络和应用层安全设想,以及哪些组件将解决哪些问题。这样,当开发人员和网络管理人员都以为对方会解决安全问题时,可以防止安全控制失败。注意网络为应用程序提供安全防范办法。设想如果更改网络设立,也许会带来哪些安全隐患。如果实现特定网络构造更改,将会浮现多少安全漏洞?布置拓扑构造应用程序布置拓扑构造和与否具备远程应用层是设计阶段必要考虑核心问题。如果具备远程应用层,需要考虑如何保护服务器之间网络以减少网络窃听威胁,以及如何保护敏感数据保密性和完整性。此外,还要考虑标记符流,并拟定在应用程序连接到远程服务器时将用于网络身份验证帐户。一种常用办法是使用最小特权进程帐户,并在远程服务器上创立一种具备相似密码帐户副本(镜像)。另一种办法是使用域进程帐户,此类帐户管理以便,但会带来更大安全问题,由于很难限制该帐户在网络上使用。未建立信任关系介入防火墙和单独域使应用本地帐户成为唯一选取。布置操作安全规范保证管理界面安全配备管理功能只能由通过授权操作员和管理员访问,这一点是非常重要。核心一点是要在管理界面上实行强身份验证,如使用证书。如果有也许,限制或避免使用远程管理,并规定管理员在本地登录。如果需要支持远程管理,应使用加密通道,如SSL或VPN技术,由于通过管理界面传递数据是敏感数据。此外,还要考虑使用IPSec方略限制对内部网络计算机远程管理,以进一步减少风险。保证配备存储安全基于文本配备文献、注册表和数据库是存储应用程序配备数据惯用办法。如有也许,应避免在应用程序Web空间使用配备文献,以防止也许浮现服务器配备漏洞导致配备文献被下载。无论使用哪种办法,都应保证配备存储访问安全,如使用WindowsACL或数据库权限。还应避免以纯文本形式存储机密,如数据库连接字符串或帐户凭据。通过加密保证这些项目安全,然后限制对包括加密数据注册表项、文献或表访问权限。单独分派管理特权如果应用程序配备管理功能所支持功能性基于管理员角色而变化,则应考虑使用基于角色授权方略分别为每个角色授权。例如,负责更新站点静态内容人员不必具备更改客户信贷限额权限。使用至少特权进程和服务帐户应用程序配备一种重要方面是用于运营Web服务器进程进程帐户,以及用于访问下游资源和系统服务帐户。应保证为这些帐户设立至少特权。如果袭击者设法控制一种进程,则该进程标记对文献系统和其她系统资源应当具备极有限访问权限,以减少也许导致危害。尽量避免存储机密在软件中以完全安全方式存储机密是不也许。可以接触到服务器系统管理员可以访问这些数据。例如,当您所要做仅仅是验证顾客与否懂得某个机密时,则没有必要存储该机密。在这种状况下,可以存储代表机密哈希值,然后使用顾客提供值计算哈希值,以验证该顾客与否懂得该机密。不要在代码中存储机密不要在代码中对机密进行硬编码。虽然不将源代码暴露在Web服务器上,但从编译过可执行文献中依然可以提取字符串常量。配备漏洞也许会容许袭击者检索可执行文献。不要以纯文本形式存储数据库连接、密码或密钥避免以纯文本形式存储诸如数据库连接字符串、密码和密钥之类机密。使用加密,并存储通过加密字符串。限制主机上WEB系统启动顾客权限(一)应将WEB系统启动顾客权限限制在最小范畴内,禁止该顾客访问其他不必要途径(如:/etc/、/root)。隐藏后台调试信息(一)WEB系统、数据库等报告异常信息、调试信息不应当出当前页面上。密码加密存储(一)WEB系统中存储密码应采用一定加密算法,以密文形式存储。此处所指密码涉及但不限于:1.配备文献中主机、网络、数据库、邮箱密码;2.数据库中顾客资料密码;(二)加密算法选取应依照实际需要,首选不对称加密算法,次选破解难度高对称加密算法。隐藏重要配备参数信息(一)对于重要配备参数信息,应采用必要隐藏办法,详细技术请遵循《我司敏感参数保护规范》(二)此处所指配备参数涉及但不限于:1.重要顾客名、密码;2.重要设备内网地址(如:数据库、存储设备);隐藏日记文献(一)不应将日记文献途径设立在页面可达位置,顾客通过页面应当无法访问到系统产生日记文献。禁用WebDAV,或者禁止不需要HTTP办法(一)在无特定需求状况下,应只开放GET,HEAD,POST等安全HTTP办法,禁用PUT,DELETE,OPTIONS等具备操作性质HTTP办法。保证管理平台、测试账号口令强度(一)WEB系统管理平台、测试账号口令应具备足够强度。详细规定请遵循《我司公司系统帐号口令管理办法》。

定期核查文献上传途径、日记途径中与否存在木马(一)应定期对不也许出当代码途径进行检查,及时发现与排除也许存在木马。(二)需要检查途径涉及但不限于:顾客文献上传途径、日记文献途径。及时删除应用系统暂时文献(一)WEB系统中不应当具有不必要文献。涉及但不限于:.CVS文献夹、.svn文献夹、暂时备份文献等等。(二)对于WEB页面备份文献,不要以.bak文献存储(如index.jsp.bak等)重要系统隔离(一)在布置WEB系统时,应依照实际状况,尽量使重要系统之间互相隔离、重要系统与其他系统之间隔离。(二)隔离办法涉及但不限于:主机分离、数据库分离、网段隔离。安全审计应当审核和记录跨应用层活动。使用日记,可以检测到踪迹可疑活动。这普通能较早地发现成

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论