




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
应用系统安全开发技术规范
(版本号VI.3)
朗新科技股份有限公司
二O一五年十二月
更改履历
更改的
版本号修改编号更改时间更改简要描述更改人批准人
图表和章节号
0.52013-11-24初稿施伟施伟
1.02015-11-19修改宋月欣陈志明
1.12015-11-30修改宋月欣陈志明
1.22015-12-3修改宋月欣施伟
1.32015-12-3修改施伟
注:更改人除形成初稿,以后每次修改在未批准确认前均需采用修订的方式
进行修改。
目录
1背景与目标........................................................1
2安全编程概念......................................................1
2.1安全编程.....................................................1
2.2结构化编程...................................................2
2.3脆弱性.......................................................2
2.4可信计算.....................................................3
2.5安全可信模块.................................................3
2.6不可信任模块.................................................3
2.7敏感信息.....................................................3
2.8特权.........................................................3
2.9信息隐藏.....................................................3
2.10中间件.......................................................4
2.11歹匕锁....................................................................4
2.12可信边界.....................................................4
2.13元字符.......................................................4
2.14参数化查询...................................................4
2.15UNIXJAIL环境...............................................5
2.16临时文件.....................................................5
2.17信息端.......................................................5
2.18SSL...................................................................................................................5
2.19TLS...................................................................................................................5
2.20HTTPS.............................................................................................................5
2.21HTTP会话....................................................6
2.22COOKIE.............................................................................................................6
2.23HTTPONLYCOOKIE...........................................................................................6
3安全编程原则......................................................7
3.1统一的安全规范...............................................7
3.2模块划分.....................................................7
3.3最小化功能...................................................7
3.4最小化特权...................................................8
3.5对多任务、多进程加以关注.....................................8
3.6界面输出最小化...............................................8
3.7使代码简单、最小化和易于修改.................................8
3.8避免高危的服务、协议.........................................8
3.9数据和代码分离...............................................8
3.10关键数据传输保护.............................................9
3.11禁止赋予用户进程特权.........................................9
3.12使用适当的数据类型...........................................9
3.13使用经过验证的安全代码.......................................9
3.14使用应用中间件...............................................9
3.15设计错误、异常处理机制......................................9
3.16提供备份机制................................................10
3.17检查传递变量的合法性........................................10
3.18检查所有函数返回代码........................................10
3.19修改面向用户的操作的反馈缺省描述............................10
3.20文件操作的要求..............................................10
3.21其他编码原则................................................10
4应用安全分析....................................................11
4.1安全需求....................................................11
4.2安全威胁....................................................12
4.2.1Web安全漏洞..............................................12
4.2.2拒绝服务攻击..............................................12
4.2.3嗅探攻击..................................................13
4.2.4中间人攻击................................................13
4.3安全约束....................................................14
5安全编程要求.....................................................14
5.1输入处理....................................................14
5.1.1建立可信边界..............................................14
5.1.2验证各种来源的输入........................................15
5.1.3保证所有的输入信息是被验证过的............................15
5.1.4对输入内容进行规范化处理后再进行验证......................15
5.1.5选择合适的数据验证方式....................................16
5.1.6防范元字符攻击............................................16
5.1.7拒绝验证失败的数据........................................16
5.1.8在服务端进行验证..........................................16
5.1.9建立统一的输入验证接口....................................16
5.1.10控制写入日志的信息........................................17
5.1.11从服务器端提取关键参数....................................17
5.2输出处理....................................................17
5.2.1限制返回给客户的信息......................................17
5.2.2建立错误信息保护机制......................................17
5.3数据库访问..................................................17
5.3.1合理分配数据库访问权限....................................17
5.3.2合理存放数据库连接帐号和密码信息..........................17
5.3.3使用参数化请求方式........................................18
5.3.4对SQL语句中来自于不可信区域的输入参数进行验证..........19
5.3.5对数据库操作的返回数据进行验证............................19
5.3.6分次提取数据..............................................19
5.3.7通过row(行)级别的访问控制来使用数据库..................19
5.3.8确保数据库资源被释放......................................19
5.4文件操作....................................................20
5.4.1对上传文件进行限制........................................20
5.4.2把文件名以及文件内容作为不可信的输入对待..................20
5.4.3安全的使用文件名..........................................20
5.4.4使用文件系统访问控制......................................20
5.4.5注意文件访问竞争条件......................................20
5.4.6安全使用临时文件..........................................21
5.4.7确保文件系统资源被释放....................................21
6安全特征.........................................................21
6.1关注应用的对象重用..........................................21
6.2用户访问控制信息的机密性....................................21
6.3不要在客户端存放敏感数据....................................21
6.4避免内存溢出................................................22
6.5可配置数据保护..............................................22
6.6禁止在源代码中写入口令......................................22
6.7随机数......................................................22
6.8使用可信的密码算法..........................................23
6.9异常管理....................................................23
7应用安全设计规范................................................24
7.1应用安全规划................................................24
7.2数据安全等级划分............................................24
7.3数据库规划..................................................24
7.3.1用户权限..................................................24
7.3.2数据源设计................................................24
7.3.3外部系统访问..............................................25
7.4角色划分....................................................25
7.5URL规戈IJ.......................................................................................................25
7.6程序文件目录规划............................................25
7.6.1数据及程序分离............................................25
7.6.2静态程序资源..............................................25
7.6.3程序文件分类..............................................25
7.7COOKIE...........................................................................................................26
7.8文件安全....................................................26
7.8.1文件存储..................................................26
7.8.2文件操作..................................................26
7.8.3文件类型..................................................26
7.9第三方组件安全.............................................26
7.9.1组件兼容性................................................26
7.9.2组件安全及成熟度..........................................26
7.9.3组件配置..................................................27
7.10WEBSERVICE..................................................................................................27
7.11RESTFULWEBSERVICE.................................................................................28
7.12应用安全关注点..............................................29
7.13应用安全限制应对方案........................................30
7.13.1外网隔离..................................................30
7.13.2外网文件操作..............................................31
7.13.3正向和反向隔离装置(国网系统)...........................31
8应用安全开发规范................................................32
8.1JAVA及WEB安全编程规范...................................32
8.1.1不信任未知................................................32
8.1.2数据层开发................................................32
8.1.3会话管理..................................................34
8.1.4Cookie.........................................................................................................34
8.1.5输入验证..................................................35
8.1.6输入文件名的验证..........................................35
8.1.7输出处理..................................................36
8.1.8敏感信息处理..............................................38
8.1.9异常信息处理..............................................38
8.1.10特殊页面跳转..............................................38
8.1.11文件操作..................................................39
8.1.12资源释放..................................................40
8.1.13内存控制..................................................40
8.1.14外部程序调用漏洞.........................................40
8.1.15整数溢出.................................................40
8.2C++安全编程规范................................................41
8.2.1不信任未知...............................................41
8.2.2免缓存区溢出.............................................41
8.2.3免缓整数溢出.............................................44
8.2.4域名合法性检查...........................................47
8.2.5检查返回值...............................................49
8.2.6产生随机数...............................................49
8.2.7验证输入文件名...........................................50
8.2.8类设计注意事项...........................................51
8.2.9外部程序调用漏洞.........................................52
8.2.10临时文件处理..............................................52
编号:
时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共61页
1背景与目标
在Internet大众化及Web技术飞速演变的今天,Web安全所面临的挑战日益
严峻。黑客攻击技术越来越成熟和大众化,针对Web的攻击和破坏不断增长,Web
安全风险达到了前所未有的高度。
许多程序员不知道如何开发安全的应用程序,开发出来的Web应用存在较多
的安全漏洞,这些安全漏洞一旦被黑客利用将导致严重甚至是灾难性的后果。这
并非危言耸听,类似的网上事故举不胜举,公司的Web产品也曾多次遭黑客攻击,
甚至有黑客利用公司Web产品的漏洞敲诈运营商,造成极其恶劣的影响。
本规范为解决Web应用系统安全问题,对主要的应用安全问题进行分析,并
有针对性的从设计及开发规范、开发管理、安全组件框架、安全测试方面提供整
体的安全解决方案。
使本组织能以标准的、规范的方式设计和编码。通过建立编码规范,以使每
个开发人员养成良好的编码风格和习惯;并以此形成开发小组编码约定,提高程
序的可靠性、可读性、可修改性、可维护性和一致性等,增进团队间的交流,并
保证软件产品的质量。
2安全编程概念
2.1安全编程
安全编程是指开发人员首先需要具备一定的安全知识,然后识别数据在流转
(输入、处理和输出)过程中可能面对的威胁,对这些威胁进行分析得出其利用
的漏洞,通过合理地编写代码消除这些漏洞,降低软件面临的风险。本规范对开
发人员的编码提出统一的安全要求,主要涉及输入处理、输出处理、数据库访
问、文件操作、异常管理等方面,如下图:
第1页共61页
编号:
时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第2页共61页
输入处理部分能指导开发者避免用户的不良输入;输出处理能指导开发者对
输出内容进行过滤;数据库访问、文件操作部分则能指导开发者进行数据库查
询,写入文件等操作时进行防护;而异常管理、敏感数据保护、对象重用等技
术则指导开发者改进软件的自身缺陷。WEB开发规范部分则指导用户在WEB
系统(B/S架构应用)的研发方面时如何增加对应用软件的保护。
2.2结构化编程
结构化编程,一种编程典范。它采用子程序、程式码区块、for循环以及while
循环等结构,来取代传统的gOtOo希望借此来改善计算机程序的明晰性、品质以
及开发时间,并且避免写出面条式代码。
2.3脆弱性
脆弱性指计算机系统安全方面的缺陷,使得系统或其应用数据的保密性、完
整性、可用性、访问控制、监测机制等面临威胁。
第2页共61页
编号:
时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第3页共61页
2.4可信计算
可信计算的行为会更全面地遵循设计,而执行设计者和软件编写者所禁止的
行为的概率很低。
2.5安全可信模块
审计和访问控制模块是唯一的安全可信模块。
2.6不可信任模块
除审计和访问控制模块外其它所有模块均为不可信模块。
2.7敏感信息
系统的敏感信息包括用户身份信息、认证信息、授权信息、交易过程中的私
密或隐私信息、其它的敏感信息。
2.8特权
特权只是允许去做并不是每个人都可以做的事情。
2.9信息隐藏
信息隐藏指在设计和确定模块时,使得一个模块内包含的特定信息(过程或
数据),对于不需要这些信息的其他模块来说,是不可访问的。
信息隐藏基本原理框图:
第3页共61页
编号:
时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第4页共61页
2.10中间件
中间件是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间
的沟通.中间件技术创建在对应用软件部分常用功能的抽象上,将常用且重要的过
程调用、分布式组件、消息队列、事务、安全、连结器、商业流程、网络并发、
HTTP服务器、WebService等功能集于一身或者分别在不同品牌的不同产品中分
别完成。
2.11死锁
死锁是操作系统或软件运行的一种状态:在多任务系统下,当一个或多个进
程等待系统资源,而资源又被进程本身或其它进程占用时,就形成了死锁。
2.12可信边界
可信边界可以被认为是在程序中划定的一条分隔线,一边的数据是不可信的
而另一边则是可信的。当数据要从不可信的一侧到可信一侧的时候,需要使用验
证逻辑进行判断。
2.13元字符
元字符就是在编程语言中具有特定含义的字符或者字符串。例如在SQL查询
中,单引号(,)是危险的字符;在文件系统路径中两个点号(..)是危险的字符;
在命令shell中,分号(;)和双&(&&)符号同样是危险的字符,而换行符(\n)
对日志文件很关键。
2.14参数化查询
参数化查询(ParameterizedQuery或ParameterizedStatement)是指在设计与
数据库链接并访问数据时,在需要填入数值或数据的地方,使用参数(Parameter)
来给值,这个方法目前已被视为最有效可预防SQL注入攻击(SQLInjection)的攻
击手法的防御方式。
第4页共61页
编号:
时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第5页共61页
2.15UNIXJAIL环境
一个被改变根目录的程序不可以访问和命名在被改变根目录外的文件,那个
w
根目录叫做"chroot监狱(chrootjail,chrootprison)o
2.16临时文件
创建临时文件的程序会在完成时将其删除。
2.17信息熔
信息熠指信息的不确定性,一则高信息度的信息端是很低的,低信息度的燧则
高。
2.18SSL
安全套接层(SecureSocketsLayer,SSL),一种安全协议,是网景公司(Netscape)
在推出Web浏览器首版的同时提出的,目的是为网络通信提供安全及数据完整性。
SSL在传输层对网络连接进行加密。
SSL采用公开密钥技术,保证两个应用间通信的保密性和可靠性,使客户与
服务器应用之间的通信不被攻击者窃听。它在服务器和客户机两端可同时被支持,
目前已成为互联网上保密通讯的工业标准。现行Web浏览器亦普遍将HTTP和SSL
相结合,从而实现安全通信。此协议和其继任者是TLS。
2.19TLS
SSL(SecureSocketsLayer)是网景公司(Netscape)设计的主要用于Web的
安全传输协议。这种协议在Web上获得了广泛的应用。IETF()将SSL作了标准
化,即RFC2246,并将其称为TLS(TransportLayerSecurity),其最新版本是
RFC5246,版本1.2。从技术上讲,TLS1.0与SSL3.0的差异非常微小。
2.20HTTPS
超文本传输安全协议(缩写:HTTPS,英语:HypertextTransferProtocolSecure)
第5页共61页
编号:
时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第6页共61页
是超文本传输协议和SSL/TLS的组合,用以提供加密通讯及对网络服务器身份的
鉴定。HTTPS连接经常被用于万维网上的交易支付和企业信息系统中敏感信息的
传输。HTTPS不应与在RFC2660中定义的安全超文本传输协议(S-HTTP)相混。
2.21Http会话
在计算机科学领域来说,尤其是在网络领域,会话(session)是一种持久网络
协议,在用户(或用户代理)端和服务器端之间创建关联,从而起到交换数据包
的作用机制,session在网络协议(例如telnet或FTP)中是非常重要的部分。
在不包含会话层(例如UDP)或者是无法长时间驻留会话层(例如HTTP)
的传输协议中,会话的维持需要依靠在传输数据中的高级别程序。例如,在浏览
器和远程主机之间的HTTP传输中,HTTPcookie就会被用来包含一些相关的信息,
例如sessionID,参数和权限信息等。
当客户端在多个服务器调取数据时,保持会话状态的一致性是需要注意的,
客户端需用同时保持和某一个主机的连接,或者多个服务器端需要共享一个储存
会话信息的文件系统或者数据库。否则,当用户在一个新的而不是一开始保存会
话信息的主机上提交访问请求的时候,主机会因为无法获知原来主机的会话的访
问状态而产生问题。
2.22Cookie
Cookie(复数形态Cookies),中文名称为小型文本文件或小甜饼,指某些网站
为了辨别用户身份而储存在用户本地终端(ClientSide)上的数据(通常经过加密)。
定义于RFC2109。为网景公司的前雇员LouMontulli在1993年3月所发明。
2.23HttpOnlyCookie
HttpOnly是包含在Http响应头信息Set-Cookie中的一个额外标志,如果浏览
器支持HttpOnly标志的话,在生成Cookie时使用HttpOnly标志可帮助减轻客户
端脚本访问受保护的Cookie时带来的风险(客户端脚本不能访问HttpOnlyCookie)。
第6页共61页
编号:
时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第7页共61页
3安全编程原则
3.1统一的安全规范
每个软件项目在设计阶段都应明确在项目实施过程中项目组应遵循的统一规
范,具体包括:
1.命名规则、组件使用规范、异常处理规范、日志处理规范、工具使用要求、
代码集成规范。
2.针对本规范提出的主要代码脆弱性应进行相应的防范设计,具体内容应在
软件概要设计中体现或有单独的文档体现。
3.2模块划分
1.软件应该按照安全性划分模块,审计和访问控制模块为安全可信模块,其
它模块为不可信任模块。只有安全可信模块才可以执行安全控制功能,其
它的模块不能访问安全可信模块的安全信息、功能或者权限。安全可信模
块应该与其它模块分离,由经授权的内部专人进行管理。
2.只有安全可信模块,才能以高安全等级访问系统的敏感信息,对于其他模
块限制其访问敏感信息。
3.3最小化功能
根据“没有明确允许的就默认禁止”的原则,软件应只包含那些为达到某个
目标而确实需要的功能,不应包含只是在将来某个时间需要但需求说明书中没有
的功能。软件在最小化功能建设方面应遵循如下原则:
1.只运行明确定义的功能。
2.系统调用只在确实需要的时候。
3.一次只执行一个任务。
4.只有在上一个任务完成后才开始下一个任务。
5.只在确实需要的时候访问数据。
第7页共61页
编号:
时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第8页共61页
3.4最小化特权
1.只为程序中需要特权的部分授与特权。
2.只授与部分绝对需要的具体特权。
3.将特权的有效时间或者可以有效的时间限制到绝对最小。
3.5对多任务'多进程加以关注
软件开发应尽量使用单任务的程序。如果软件需要使用多任务和多进程,应
该认真分析研究多任务和多进程会不会发生冲突,同步所有的进程和任务以避免
冲突。同时作为结构化的编程,每个原子化组件都要保证一个入口和一个出口。
如果进程之间需要交互,则这些交互操作应同步。对于每一种可能的交互情况都
要考虑相关的安全策略。
3.6界面输出最小化
软件应保持用户界面只提供必须的功能,没有多余的、不必要的功能,确保
用户不能通过用户界面直接访问数据或者直接访问被保护对象。
3.7使代码简单'最小化和易于修改
开发时应尽量使代码简单、最小化和易于修改。使用结构化的编程语言,尽
量避免使用递归和Goto声明。使用简单的代码,清除不必要的功能,防止采用
信息隐藏方式进行数据保护。
3.8避免高危的服务'协议
软件应尽量避免使用不加保护的及已被证明存在安全漏洞的服务和通信协议
传输文件,如FTP、SMTPo
3.9数据和代码分离
软件应该把数据与程序放置在不同的目录中,这里的数据包括远程下载文件
等。
第8页共61页
编号:
时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第9页共61页
3.10关键数据传输保护
1.软件在传输关键数据时,使用加密算法保证数据在通信过程不被破译,使
用数字签名保证数据在传输过程中的一致性和不可否认性。相关的加密算
法和签名技术等应符合国家相关法律法规要求。
2.信息隐藏是不可靠、效率低的做法,软件应该使用正确的安全保护措施,
不要依赖隐藏进行数据保护。
3.11禁止赋予用户进程特权
用户进程的授权应采用最小授权法,对于软件的普通用户进程,禁止赋予该
类进程特权用户权限。特权用户类型包括:
1.超级用户。
2.直接操作数据库用户。
3.安全管理用户。
3.12使用适当的数据类型
应该小心使用数据类型,尽量使用占用内存较小的数据类型,如可用整型数
据的不用实型,特别是在程序接口部分。例如,在一些编程语言中signed和
unsigned的数据类型是视为不同的(如C或者C++语言)。
3.13使用经过验证的安全代码
使用经过验证的安全代码模块和外部源程序,防止潜在的安全风险。
3.14使用应用中间件
中间件作为一种应用层架构,软件设计应尽可能使用中间件,中间件选型时
应选择成熟的、业界主流的中间件产品。
3.15设计错误'异常处理机制
软件设计开发时应建立防止系统死锁的机制,异常情况的处理和恢复机制,
第9页共61页
编号:
时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1。页共61页
具体包括错误和异常检测、数据回滚、安全错误通知、错误和异常记录、断点保
护等。
3.16提供备份机制
为保证运行数据的完整性和可用性,软件开发应设计有效的备份策略,根据
业务和系统维护需要提供定期或不定期、自动或手动方式的备份机制。
3.17检查传递变量的合法性
应检查所有传递给系统函数调用(SystemCalls)或本地调用(NativeCalls)
的变量的合法性。
3.18检查所有函数返回代码
应检查所有函数调用返回代码(错误代码),对每个期望的返回值设置相应的
处理程序。
3.19修改面向用户的操作的反馈缺省描述
应对面向用户的操作的反馈缺省描述进行必要的封装,删除有关后台系统或
其它敏感信息。
3.20文件操作的要求
在需要进行文件操作时,应预先设定目前工作路径(全路径名),使用全路径
名表示文件的位置。
3.21其他编码原则
1.当一个进程对敏感对象(包含秘密信息或包含不可更改信息)使用完后,
应立即擦除对象的敏感信息,然后再删除对象。任何不需要使用的资源应
及时释放。
2.确保所有用来指示数组下标的数据(或指针)都指向了一个有效的数组元
素。如果某个函数不能保证下标所指向元素的有效性,或者根本不去检
第10页共61页
编号:
时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第11页共61页
查边界时,不要使用该函数,应该寻找一个安全的函数,或者自己重新编
写一个或者封装一个不安全的函数,加上必要的判断条件,使它安全。
3.当输入不可信任数据时,要在该数据的内容和格式上同时加以检查。对于
整数,应该检查数据大小是否超出了能够表示的范围;对于输入的字符串,
要确保长度没有溢出,保证每一个字符都是有效的。
4.对经常使用的类似的SQL语句应使用绑定变量的方法,避免数据库执行
类似SQL语句时重复解析、重复访问数据文件的行为。
5.程序编码结束后,应对代码进行优化,提高应用处理SQL的性能。
6.禁止使用通配符的方式进行数据的插入操作。
7.采用数据库作为系统间接口方式时,应建立独立的接口表,并按最小化特
权原则进行授权。
4应用安全分析
4.1安全需求
系统安全本质上属于信任问题,要保证应用安全,就必须将解决各种操作过
程中不可信问题。安全的几个基本要素为机密性、完整性、可用性、可审计性、
不可抵赖性等方面的安全要求。
机密性要求保护数据内容不能泄露,加密是实现机密性的要求的常见手段。
完整性要求保护数据内容是完整、没有被篡改的。
可用性要求保护资源是可被按照需要访问。
可审计性对出现的安全问题提供调查的依据和手段。
不可抵赖性建立有效的责任机制,防止用户否认其行为。
第11页共61页
编号:
时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第12页共61页
4.2安全威胁
4.2.1Web安全漏洞
根据结合国网系统安全检测项目常见安全问题及OWASP组织发布的安全漏
洞,系统中存在的需要解决的安全风险如下:
序号安全威胁产生环节
1SQL注入编码
2失效的身份认证及会话管理设计、编码
3跨站脚本(XSS)编码
4点击劫持(Clickjacking)编码
4不安全的直接对象引用编码
5安全配置错误配置实施
6敏感信息泄露设计、编码
7功能级访问控制缺失(失败的URL访问权设计
限限制)
8跨站请求伪造(CSRF)编码
9使用含有已知漏洞的组件管理、设计
10未验证的重定向和转发编码
11传输层保护不足设计、编码
12文件上传漏洞编码
13不安全的加密存储设计、编码
4.2.2拒绝服务攻击
分布式拒绝服务攻击(英文:DistributedDenialofService,缩写:DDoS)亦
称洪水攻击。顾名思义,即是利用网络上已被攻陷的电脑作为“僵尸”,向某一特
定的目标电脑发动密集式的“拒绝服务”式攻击,用以把目标电脑的网络资源及
系统资源耗尽,使之无法向真正正常请求的用户提供服务。黑客通过将一个个“丧
尸”或者称为“肉鸡”组成僵尸网络,就可以发动大规模DDoS或SYN洪水网络
攻击,或者将“丧尸”们组到一起进行带有利益的刷网站流量、Email垃圾邮件群
第12页共61页
编号:
时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第13页共61页
发,瘫痪预定目标受雇攻击竞争对手等商业活动。
4.2.3嗅探攻击
利用计算机的网络接口截获目的地为其他计算机的数据报文的一种技术。它
工作在网络的底层,把网络传输的全部数据记录下来.嗅探器可以帮助网络管理员
查找网络漏洞和检测网络性能。嗅探器可以分析网络的流量,以便找出所关心的
网络中潜在的问题。
证明你的网络有嗅探器有两条经验:
1.网络通讯丢包率非常高:通过一些网管软件,可以看到信息包传送情况,
最简单是ping命令。它会告诉你掉了百分之多少的包。如果你的网络结
构正常,而又有20%—30%数据包丢失以致数据包无法顺畅的流到目的
地。就有可能有人在监听,这是由于嗅探器拦截数据包导致的。
2.网络带宽出现反常:通过某些带宽控制器,可以实时看到目前网络带宽的
分布情况,如果某台机器长时间的占用了较大的带宽,这台机器就有可能
在监听。应该也可以察觉出网络通讯速度的变化。
4.2.4中间人攻击
在密码学和计算机安全领域中,中间人攻击(Man-in-the-middleattack,通
常缩写为MITM)是指攻击者与通讯的两端分别建立独立的联系,并交换其所收
到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但
事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通讯双
方的通话并插入新的内容。在许多情况下这是很简单的(例如,在一个未加密的
Wi-Fi无线接入点的接受范围内的中间人攻击者,可以将自己作为一个中间人插入
这个网络)。
一个中间人攻击能成功的前提条件是攻击者能将自己伪装成每一个参与会
话的终端,并且不被其他终端识破。中间人攻击是一个(缺乏)相互认证的攻击。
大多数的加密协议都专门加入了一些特殊的认证方法以阻止中间人攻击。例如,
SSL协议可以验证参与通讯的一方或双方使用的证书是否是由权威的受信任的数
字证书认证机构颁发,并且能执行双向身份认证。
第13页共61页
编号:
时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第14页共61页
4.3安全约束
序号限制
1外网不允许部署数据库
2外网仅提供HTTP、HTTPS访问,不提供等
3外网访问内网必须通过强隔离装置,仅支持TNS协议(国网系统要求)
4外网应用不允许直接访问内网关键业务系统数据库
5其它系统原则上都不允许直接连接营销系统数据库
5安全编程要求
5.1输入处理
5.1.1建立可信边界
需要在程序中定义清晰的可信边界。在一些代码中用于保存可信数据的数据
结构,不能被用来在其它代码中存储不可信数据。使数据穿越可信边界的次数降
到最低。
当程序混淆了可信和不可信数据的界限时会导致安全边界发生问题,最容易
导致这种错误的情况是把可信和不可信数据混合在一个数据结构里。如下例:
该例中程序接受一个http请求并将"usrname"参数放在HTTPsession里,
但是并未检查用户是否被授权。
usrname=request.getParameter(nusmamen);
if(session.getAttribute(ATTR_USR)==null){
session.setAttribute(ATTR_USR,usrname);
由于开发者都知道用户是不能直接访问session对象的,所以很容易信任来自
session的所有信息,但是如果在该session中混合存储了可信和不可信的数据,
就会违反完全可信边界的原则,带来安全隐患。如果不能很好的建立和维护可信
第14页共61页
编号:
时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第15页共61页
边界,开发者将不可避免的混淆未被验证和已验证的数据,从而导致一些数据在
未经验证时就被使用。如果输入的数据在处理前通过一些用户的交互发生了改变,
可信边界就会遇到一定的问题,因为它很可能在所有数据进入之前不能做出完全
的输入验证。在这种情况
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医技个人工作总结
- 汽车零部件安全认证
- 课题开题报告:核心素养导向的小学语文课程育人研究与省域实践
- 空调插座施工方案范本
- 职业本科教育师资队伍建设实施方案
- 普职融通育人模式的目标与原则
- 数学-2025届安徽省江南十校联考试题和解析
- 旅游情景英语(第二版)Unit 2-3学习资料
- 居住用电安全知识
- 法制教育课件
- 2025年辽宁现代服务职业技术学院单招职业技能测试题库(含答案)
- 2025年服装制版师(中级)职业技能鉴定考试题(附答案)
- 高考模拟作文“中国游”“city不city”导写及范文
- 福建省福州市2024-2025学年九年级上学期期末语文试题(解析版)
- 一年级下册综合实践活动教案2
- 九年级主题班会课件:遇见最好的自己(开学第一课)
- 2025版股权投资基金股份收购与退出机制协议3篇
- 【营销方案】2025小红书平台营销通案
- 2025年江西电力职业技术学院高职单招职业适应性测试近5年常考版参考题库含答案解析
- 2025年枣庄科技职业学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 2025年吉安职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
评论
0/150
提交评论