应用系统安全开发技术规范培训资料15982.docx
《应用系统安全开发技术规范培训资料15982.docx》由会员分享,可在线阅读,更多相关《应用系统安全开发技术规范培训资料15982.docx(80页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、应用系统统安全开发发技术规范范(版本号号 VV1.3)朗新科技技股份有有限公司司二一五五年十二月 更改履历历版本号修改编号号更改时间间更改的图表和章章节号更改简要要描述更改人批准人0.520133-111-244初稿施伟施伟1.020155-111-199修改宋月欣陈志明1.120155-111-300修改宋月欣陈志明1.220155-122-3修改宋月欣施伟1.320155-122-3修改施伟注:更改改人除形形成初稿稿,以后后每次修修改在未未批准确确认前均均需采用用修订的的方式进进行修改改。 目录1背景与与目标112安全编编程概念念12.1安安全编程程12.2结结构化编编程22.3脆脆弱性2
2、22.4可可信计算算22.5安安全可信信模块332.6不不可信任任模块332.7敏敏感信息息32.8特特权32.9信信息隐藏藏32.100中间件件32.111死锁42.122可信边边界42.133元字符符42.144参数化化查询442.155UNIIX JJAILL环境442.166临时文文件42.177信息熵熵52.188SSLL52.199TLSS52.200HTTTPS552.211Htttp会话话52.222Coookiee62.233HtttpOnnly Coookiee63安全编编程原则则63.1统统一的安安全规范范63.2模模块划分分63.3最最小化功功能73.4最最小化特特权7
3、3.5对对多任务务、多进进程加以以关注773.6界界面输出出最小化化73.7使使代码简简单、最最小化和和易于修修改83.8避避免高危危的服务务、协议议83.9数数据和代代码分离离83.100关键数数据传输输保护883.111禁止赋赋予用户户进程特特权83.122使用适适当的数数据类型型93.133使用经经过验证证的安全全代码993.144使用应应用中间间件93.155设计错错误、 异常处处理机制制93.166提供备备份机制制93.177检查传传递变量量的合法法性93.188检查所所有函数数返回代代码93.199修改面面向用户户的操作作的反馈馈缺省描描述93.200文件操操作的要要求1003.2
4、11其他编编码原则则104应用安安全分析析114.1安安全需求求114.2安安全威胁胁114.2.1Weeb安全全漏洞1114.2.2拒绝绝服务攻攻击1224.2.3嗅探探攻击1124.2.4中间间人攻击击124.3安安全约束束135安全编编程要求求135.1输输入处理理135.1.1建立立可信边边界1335.1.2验证证各种来来源的输输入1445.1.3保证证所有的的输入信信息是被被验证过过的1445.1.4对输输入内容容进行规规范化处处理后再再进行验验证1555.1.5选择择合适的的数据验验证方式式155.1.6防范范元字符符攻击1155.1.7拒绝绝验证失失败的数数据1555.1.8在服
5、服务端进进行验证证155.1.9建立立统一的的输入验验证接口口165.1.10控控制写入入日志的的信息1165.1.11从从服务器器端提取取关键参参数1665.2输输出处理理165.2.1限制制返回给给客户的的信息1165.2.2建立立错误信信息保护护机制1165.3数数据库访访问1665.3.1合理理分配数数据库访访问权限限165.3.2合理理存放数数据库连连接帐号号和密码码信息1175.3.3使用用参数化化请求方方式1775.3.4对 SQLL 语句句中来自自于不可可信区域域的输入入参数进进行验证证185.3.5对数数据库操操作的返返回数据据进行验验证1885.3.6分次次提取数数据188
6、5.3.7通过过 roow(行行)级别别的访问问控制来来使用数数据库1185.3.8确保保数据库库资源被被释放1185.4文文件操作作195.4.1对上上传文件件进行限限制1995.4.2把文文件名以以及文件件内容作作为不可可信的输输入对待待195.4.3安全全的使用用文件名名195.4.4使用用文件系系统访问问控制1195.4.5注意意文件访访问竞争争条件1195.4.6安全全使用临临时文件件205.4.7确保保文件系系统资源源被释放放206安全特特征2006.1关关注应用用的对象象重用2206.2用用户访问问控制信信息的机机密性2206.3不不要在客客户端存存放敏感感数据2206.4避避免
7、内存存溢出2216.5可可配置数数据保护护216.6禁禁止在源源代码中中写入口口令2116.7随随机数2216.8使使用可信信的密码码算法2226.9异异常管理理227应用安安全设计计规范2237.1应应用安全全规划2237.2数数据安全全等级划划分2337.3数数据库规规划2337.3.1用户户权限2237.3.2数据据源设计计237.3.3外部部系统访访问2337.4角角色划分分247.5UURL规规划2447.6程程序文件件目录规规划2447.6.1数据据及程序序分离2247.6.2静态态程序资资源2447.6.3程序序文件分分类2447.7CCookkie2247.8文文件安全全257
8、.8.1文件件存储2257.8.2文件件操作2257.8.3文件件类型2257.9第第三方组组件安全全257.9.1组件件兼容性性257.9.2组件件安全及及成熟度度257.9.3组件件配置2257.100Webb Seerviice2257.111RESSTfuul WWeb Serrvicce2667.122应用安安全关注注点2777.133应用安安全限制制应对方方案2997.133.1外外网隔离离297.133.2外外网文件件操作2297.133.3正正向和反反向隔离离装置(国国网系统统)2998应用安安全开发发规范3308.1JJavaa及Weeb安全全编程规规范3008.1.1不信信
9、任未知知308.1.2数据据层开发发308.1.3会话话管理3328.1.4Coookiie3338.1.5输入入验证3338.1.6输入入文件名名的验证证348.1.7输出出处理3348.1.8敏感感信息处处理3668.1.9异常常信息处处理3778.1.10特特殊页面面跳转3378.1.11文文件操作作378.1.12资资源释放放388.1.13内内存控制制388.1.14外外部程序序调用漏漏洞3888.1.15整整数溢出出398.2CC+安安全编程程规范3398.2.1不信信任未知知398.2.2免缓缓存区溢溢出4008.2.3免缓缓整数溢溢出4228.2.4域名名合法性性检查4458.
10、2.5检查查返回值值468.2.6产生生随机数数478.2.7验证证输入文文件名4488.2.8类设设计注意意事项4488.2.9外部部程序调调用漏洞洞508.2.10临临时文件件处理550应用系统安全开发技术规范1 背景与目目标在Intternnet大大众化及及Webb技术飞飞速演变变的今天天,Weeb安全全所面临临的挑战战日益严严峻。黑黑客攻击击技术越越来越成成熟和大大众化,针针对Weeb的攻攻击和破破坏不断断增长,WWeb安安全风险险达到了了前所未未有的高高度。许多程序序员不知知道如何何开发安安全的应应用程序序,开发发出来的的Webb应用存存在较多多的安全全漏洞,这这些安全全漏洞一一旦被
11、黑黑客利用用将导致致严重甚甚至是灾灾难性的的后果。这这并非危危言耸听听,类似似的网上上事故举举不胜举举,公司司的Weeb产品品也曾多多次遭黑黑客攻击击,甚至至有黑客客利用公公司Weeb产品品的漏洞洞敲诈运运营商,造造成极其其恶劣的的影响。本规范为为解决Weeb应用用系统安全全问题,对主要要的应用用安全问问题进行行分析,并并有针对对性的从从设计及开开发规范范、开发管管理、安安全组件件框架、安全测试方面提供整体的安全解决方案。使本组织织能以标标准的、规规范的方方式设计计和编码码。通过过建立编编码规范范,以使使每个开开发人员员养成良良好的编编码风格格和习惯惯;并以以此形成成开发小小组编码码约定,提提
12、高程序序的可靠靠性、可可读性、可可修改性性、可维维护性和和一致性性等,增增进团队队间的交交流,并并保证软软件产品品的质量量。2 安全编程程概念2.1 安全编程程安全编程程是指开开发人员员首先需需要具备备一定的的安全知知识,然然后识别别数据在在流转(输输入、处处理和输输出)过过程中可可能面对对的威胁胁,对这这些威胁胁进行分分析得出出其利用用的漏洞洞,通过过合理地地编写代代码消除除这些漏漏洞,降降低软件件面临的的风险。本规范对开发人员的编码提出统一的安全要求, 主要涉及输入处理、 输出处理、 数据库访问、 文件操作、异常管理等方面,如下图: 输入处理理部分能能指导开开发者避避免用户户的不良良输入;
13、输出处处理能指指导开发发者对输输出内容容进行过过滤; 数据库库访问、 文件操操作部分分则能指指导开发发者进行行数据库库查询, 写入文文件等操操作时进进行防护护; 而而异常管管理、敏敏感数据据保护、对对象重用用等技术术则指导导开发者者改进软软件的自自身缺陷陷。 WWEB 开发规规范部分分则指导导用户在在WEBB 系统统( BB/S 架构应应用)的的研发方方面时如如何增加加对应用用软件的的保护。 2.2 结构化编编程结构化编编程,一一种编程程典范。它它采用子子程序、程程式码区区块、ffor循循环以及及whiile循循环等结结构,来来取代传传统的ggotoo。希望望借此来来改善计计算机程程序的明明晰
14、性、品品质以及及开发时时间,并并且避免免写出面面条式代代码。2.3 脆弱性脆弱性指指计算机机系统安安全方面面的缺陷陷,使得得系统或或其应用用数据的的保密性性、完整整性、可可用性、访访问控制制、监测测机制等等面临威威胁。2.4 可信计算算可信计算算的行为为会更全全面地遵遵循设计计,而执执行设计计者和软软件编写写者所禁禁止的行行为的概概率很低低。2.5 安全可信信模块审计和访访问控制制模块是是唯一的的安全可可信模块块。2.6 不可信任任模块除审计和和访问控控制模块块外其它它所有模模块均为为不可信信模块。2.7 敏感信息息系统的敏敏感信息息包括用用户身份份信息、认证信信息、授权信信息、交易过过程中的
15、的私密或或隐私信信息、其它的的敏感信信息。2.8 特权特权只是是允许去去做并不不是每个个人都可可以做的的事情。2.9 信息隐藏藏信息隐藏藏指在设设计和确确定模块块时,使使得一个个模块内内包含的的特定信信息(过过程或数数据),对对于不需需要这些些信息的的其他模模块来说说,是不不可访问问的。信息隐藏藏基本原原理框图图:2.10 中间件中间件是是提供系系统软件件和应用用软件之之间连接接的软件件,以便便于软件件各部件件之间的的沟通.中间件件技术创创建在对对应用软软件部分分常用功功能的抽抽象上,将将常用且且重要的的过程调调用、分分布式组组件、消消息队列列、事务务、安全全、连结结器、商商业流程程、网络络并
16、发、HHTTPP服务器器、Weeb SServvicee等功能能集于一一身或者者分别在在不同品品牌的不不同产品品中分别别完成。2.11 死锁死锁是操操作系统统或软件件运行的的一种状状态:在在多任务务系统下下,当一一个或多多个进程程等待系系统资源源,而资资源又被被进程本本身或其其它进程程占用时时,就形形成了死死锁。2.12 可信边界界可信边界界可以被被认为是是在程序序中划定定的一条条分隔线线,一边边的数据据是不可可信的而而另一边边则是可可信的。当当数据要要从不可可信的一一侧到可可信一侧侧的时候候,需要要使用验验证逻辑辑进行判判断。 2.13 元字符元字符就就是在编编程语言言中具有有特定含含义的字
17、字符或者者字符串串。例如如在 SSQL 查询中中,单引引号()是危危险的字字符;在在文件系系统路径径中两个个点号(.)是危险的字符; 在命令 shell 中,分号(;)和双 &(&)符号同样是危险的字符,而换行符(n) 对日志文件很关键。2.14 参数化查查询参数化查查询(PParaametteriizedd Quueryy 或 Parrameeterrizeed SStattemeent)是是指在设设计与数数据库链链接并访访问数据据时,在在需要填填入数值值或数据据的地方方,使用用参数 (Paarammeteer) 来给值值,这个个方法目目前已被被视为最最有效可可预防SSQL注注入攻击击 (S
18、SQL Injjecttionn) 的的攻击手手法的防防御方式式。2.15 UNIXX JAAIL环环境一个被改改变根目目录的程程序不可可以访问问和命名名在被改改变根目目录外的的文件,那那个根目目录叫做做“chrroott监狱(cchrooot jaiil,cchrooot priisonn)”。2.16 临时文件件创建临时时文件的的程序会会在完成成时将其其删除。2.17 信息熵信息熵指指信息的的不确定定性,一一则高信信息度的的信息熵熵是很低低的,低低信息度度的熵则则高。2.18 SSL安全套接接层(SSecuure Soccketts LLayeer,SSSL),一一种安全全协议,是是网景公
19、公司(NNetsscappe)在在推出WWeb浏浏览器首首版的同同时提出出的,目目的是为为网络通通信提供供安全及及数据完完整性。SSSL在在传输层层对网络络连接进进行加密密。SSL采采用公开开密钥技技术,保保证两个个应用间间通信的的保密性性和可靠靠性,使使客户与与服务器器应用之之间的通通信不被被攻击者者窃听。它它在服务务器和客客户机两两端可同同时被支支持,目目前已成成为互联联网上保保密通讯讯的工业业标准。现现行Weeb浏览览器亦普普遍将HHTTPP和SSSL相结结合,从从而实现现安全通通信。此此协议和和其继任任者是TTLS。2.19 TLSSSL(SSecuure Soccketts LLay
20、eer)是是网景公公司(NNetsscappe)设设计的主主要用于于Webb的安全全传输协协议。这这种协议议在Weeb上获获得了广广泛的应应用。IIETFF()将将SSLL作了标标准化,即即RFCC22446,并并将其称称为TLLS(TTrannspoort Layyer Seccuriity),其其最新版版本是RRFC552466,版本本1.22。从技技术上讲讲,TLLS1.0与SSSL33.0的的差异非非常微小小。2.20 HTTPPS超文本传传输安全全协议(缩缩写:HHTTPPS,英英语:HHypeerteext Traansffer Prootoccol Seccuree)是超超文本传
21、传输协议议和SSSL/TTLS的的组合,用用以提供供加密通通讯及对对网络服服务器身身份的鉴鉴定。HHTTPPS连接接经常被被用于万万维网上上的交易易支付和和企业信信息系统统中敏感感信息的的传输。HHTTPPS不应应与在RRFC 26660中定定义的安安全超文文本传输输协议(SS-HTTTP)相相混。2.21 Httpp会话在计算机机科学领领域来说说,尤其其是在网网络领域域,会话话(seessiion)是是一种持持久网络络协议,在在用户(或或用户代代理)端端和服务务器端之之间创建建关联,从从而起到到交换数数据包的的作用机机制,ssesssionn在网络络协议(例例如teelneet或FFTP)中
22、中是非常常重要的的部分。在不包含含会话层层(例如如UDPP)或者者是无法法长时间间驻留会会话层(例例如HTTTP)的的传输协协议中,会会话的维维持需要要依靠在在传输数数据中的的高级别别程序。例例如,在在浏览器器和远程程主机之之间的HHTTPP传输中中,HTTTP coookiee就会被被用来包包含一些些相关的的信息,例例如seessiion ID,参参数和权权限信息息等。当客户端端在多个个服务器器调取数数据时,保保持会话话状态的的一致性性是需要要注意的的,客户户端需用用同时保保持和某某一个主主机的连连接,或或者多个个服务器器端需要要共享一一个储存存会话信信息的文文件系统统或者数数据库。否否则,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 应用 系统安全 开发 技术规范 培训资料 15982
限制150内