版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
综述
指南多个期望从单个上学到有意义的东西的多对一关系学术讨论会所有人都希望在为小组做贡献,同时也希望从小组那里学习的多对多关系本指南介于这两者之间攻击的历史
1988年,美国电脑紧急应变团队(CERT)成立1993年,美国电脑紧急应变团队(CERT)/合作中心攻击响应组(1)1995年,我加入了美国电脑紧急应变团队(CERT)吉姆埃利斯和拉里罗杰斯带领我们进入了我们后来一直在的轨道上。2003年,总共有了10多个响应职员2004年,有了两个新的攻击工作区攻击分析攻击发现和避免软件的过程模型(现今)
Conception:概念Requirements:需求Architecture:体系结构Design:设计Implementation:执行QA/Testing:质量评价/测试Correct/Patch:纠正/补丁Release:释放Vulnerability:攻击发现Publication:发布美国电脑紧急应变团队(CERT)/合作中心哲学体系
白痴们会说他们是由经验获取知识的。而我更喜欢从别人的经验上获取知识。
OttovonBismark
德国首相1871-1890对于构建足够的理论基础或是实际应用,直接获得的经验都具有先天的局限性。
B.H.LiddellHart
大不列颠军事理论家VDA的使命
美国电脑紧急应变团队(CERT)©合作中心攻击发现和避免机构的作用是,显著的减少众所周知的攻击。VDA的目标
调查和研究现有的方法,技术和工具与现有的VDA的组织合作直接或者是间接的推进实践的状态建立VDA的效率的测量方法为特定的读者编写VDA知识广泛的传播上述的VDA知识信息保证社团质量保证社团软件工程社团VDA反对的目标
我们自己不需要建立重大的发现机构,因为其他人计划或者是已经在做着发现工作无论如何我们自己都不能发现许多的攻击-许多更高的影响因素我们希望其他的人从事到VDA的研究中-尤其是在软件工程社团最终,我们希望美国电脑紧急应变团队(CERT)-如VDA组织,需求减小。-以常规的方式我们不做软件工程-尽管我们的名字如此,但是我们不做软件工程。软件的过程模型(未来)
Requirements:需求Architecture:体系结构Design:设计Implementation:执行QA/Testing:质量评价/测试Correct/Patch:纠正/补丁Release:释放VulnerabilityDiscovery:攻击发现Publication:发布VulnerabilityDiscovery&Avoidance:攻击发现&避免VDA的过程模型(全世界的)
Publish/Patch:发布/补丁Release:释放PublicVulnerabilityDiscoveryProcess(es):公众的攻击发现程序PrivateSoftwareEngineeringProcess(es):私人的软件工程程序CaseInspection:个案检查Infusion:灌输VDACodificationProcess:VDA的编写过程个案的学习
识别所有的公众攻击发现组织,如下:即使是那些看起来是有组织的,程序的定向是为了发现的具有可靠的发现攻击的历史具有分担的意志,用抽象的术语来说,就是将这一知识作为一个总体而和社团一起分担。去观察他们的影响并且以一个新闻工作者的角度来采访他们出一本书来证明这些个案 这本书要包括这些组织以及他们的工作两个方面个案研究为成功者颁颁发大量的的专门的荣荣耀以组织或者者是个人的的名字来命命名将成功或者者是很有希希望成功的的精确的归归功于它们们的创造者者记述失败或或者是不确确定的实践践时,不记记录它们的的归属者包括他们的的工作的技技术方面,,程序方面面和组织方方面每年重复这这个过程一一次每年出版这这本书的一一个新的版版本包括我们知知道的关于于VDA的“所有的事情情”求助!我们需要你你的意见::什么组织或或者是个人人需要进行行个案研究究?为什么么?他们的特征征是什么??成就又是是什么?应该包括什什么专业的的讨论会??用来学习??用来教授??迄今为止我我们鉴定的的组织/个人基本方法如果我们真真诚的希望望在攻击出出现以前就就把它们停止掉掉,那么我我们就必须须:采用软件工工程师们的的观点-因为软软件工程师师们是唯一一的可以使使这种情况况发生的人-并且,,我们必须须从他们的的观点来看看这个问题题,进而以他们的语语言来描述述这个问题题和它的的解决方法法观点的改变变(1)和我们以前前在攻击上上使用的观观点相比,,VDA中的A需要有一个不同的的观点VDA对“验证”攻击不感兴兴趣VDA对开发或者者是攻击不不感兴趣VDA对“验证”攻击的影响响不感兴趣趣VDA对“验证”工作区不感感兴趣VDA对“配置”不感兴趣VDA对“验证”最差的攻击击不感兴趣趣从根本上讲讲,VDA实际上是关关于抢先减减少所有潜潜在的工程攻击观点的改变变(2)然而,一种种软件工程程观点认为为所有可能被被开发的缺缺陷都必须须被消除掉掉-“潜在的”和“事实上的”是同等重要要的必须总是能能够设想到到全能的对对手-所有的的对手,包包括现在的的和未来的的,都必须得考考虑到计划从一个“公众”攻击发现的的观点来看看这个过程从从第一个客客户关系开开始主要在“公众”中传导必须是“可以控制的的”从一个软件件工程的观观点来看这个过程从从观念的规规划开始两个非常清清晰的发现现的案例-先前发发布的编码码基数中的的攻击-最新发发布的编码码基数中的的攻击攻击发现的的问题目标的选择择发现所使用用的技术发现所使用用的工具暴露的事实实工程上的纠纠正各个评价之之间的关系系潜在的合法法的障碍国内和国际际关注的东东西长时间的影影响无意识的副副作用目标的选择择(1)互不相关的的动机当攻击研究究的发起者者和VDA组织的发起起者具有互互不相关的的动机时,,会怎么样样呢?-在技术术选择上的的争论可能能会加速研研究,从而而“证明”哪一个是更更好一点的的方向发展展隐藏的或者者是敌对方方的评估在不与成果果的创造者者合作的情情况下,评评估这个成成果会有多多少困难呢呢?发起者会认认为这种评评估是客观观的吗?-对成本本而言,客客观性是值值得的吗??目标选择((2)附着于评估估的串抑制结果??延迟结果??顺从成果的的所有者??顺从发起者者?限制除了攻攻击以外的的细节?限制副作用用结果的产产生?商业秘密如果合作伙伙伴中的卖卖方提供商商业秘密来来帮助评价价,那怎么么办呢?VDA组织中的哪哪个人可以以接触到商商业秘密呢呢?发现所使用用的技术((1)攻击的可证证明性在评估(没没有经过“处理”)中,为了了列出攻击击的特征,,而需要的的证据的水水平-必须把把攻击的特特征证明给给卖主在没有可证证明性的情情况下,完完成的评估估这个“报告”真的还可以以完成吗??是否一个清清晰的缺陷陷就够了,,还是说它它必须得是是可以被开开发的呢??在没有进行行局部的“处理”的情况下,,可以对攻攻击下结论论吗?发现所使用用的技术((2)评估的成本本/利益什么样的评评估投资是是最有价值值的呢?-体系结结构上的和和设计上的的攻击是更更有价值的的,但是,,也更难发发现。因为在发布之之后的修正可可能是极端地地,或者是无无限的昂贵,,所以它要远远远的有价值值-执行攻击击比发现攻击击要简单多了了,但是相对对应的,也就就具有较少的价值之所以具有更更少的价值仅仅仅是因为它它们容易被发发现在发布以后,,保证书必须须是可确定的的第三方评估通通常是具有最最差的成本/利益比-信息的数数量最少-最小的价价值,攻击最最容易发现发现所使用的的工具(1)增加的攻击发发现新的工具将如如何影响社团团呢?-伴随着工工具的使用,,更多的攻击击将会被更多多的人发现(至至少是增加的的)-加重“处理”组织的负担指南协助的要要求是否VDA组织能够负担担得起发布这这些工具呢??-需要其他他人为这些工工具的使用提提供“支持”发现所使用的的工具(2)业余者用法业余者能够使使用这些工具具吗?-对于业余余者而言,工工具不太容易易被操作。-工具用户户界面需要把把目标定位于于专家,而不是定定位于普通的的公众暴露的事实((1)VDA并不能够“处理”这些攻击VDA攻击是怎么处处理的呢?-必须使用用已经建立起起来的“处理”程序,而且这这些处理程序序不可以复制-对于VDA的目的来说,,这些已经存存在的“处理”程序是否是充充足的呢?个人攻击公众众暴露的事实实攻击与成果观观点是相互冲冲突的吗?-即使VDA不关心个人攻攻击揭露的事事实,风险承承担者也会期期望他们将这个问问题恰当的解解决的。-在VDA和VH之间需要建立立一种独立的的而不是共生生的关系暴露的事实((2)评估报告揭露露的事实在评估的最后后,由哪个人人根据结果决决定发生什么么?-发起者这这样的关系将将会希望得到到切实的文件件-他们能够够自由的四处处展示-作作为成就的的证据评估报告的所所有权谁拥有这个报报告的所有权权呢?-从处理的的观点来看-从知识产产权的角度来来看暴露的事实((3)报告的发表发表的频率频频繁到等于只只揭露几个攻攻击在发布报告前前,报告中包包括的所有的的攻击,是否都必必须得“处理”了呢?-是?这样样将会使VH在通往VDA的里程碑的关键路路径上工作-否?发布布包含“新”攻击的报告的的结构会是什么呢??暴露的事实((4)不明确的攻击击“潜在的”攻击的报告是是否会引起问问题呢?在发表的报告告中,从工程程角度看的一一个非常清晰晰的缺陷,可可能会在攻击击分析社团引引起相当大的的争论-对于攻击击的开端来说说,从工程师师的角度看要要比从分析家的角度看看要低的多评估的副作用用非常清晰的缺缺陷不是攻击击吗?-对于发起起者而言,它它们显然是有有价值的缺陷和攻击的的分界线在哪哪里呢?-VDA与QA相比是多呢还还是少呢?揭露的事实((5)成果内部如果成果内部部的揭露需要要理解攻击呢呢?-许可是可可能的吗?或或者甚至它就就是一个好主主义呢?如果评估是“不公开的”或者是是“敌对的的”呢?竞争评评估对你的的报告告,其其他的的VDA组织将将会做做出什什么样样的反反映呢呢?-其其他的的VDA组织可可能会会评估估你的的评估估这是同同行审审查过过程中中很正正常的的一步步其目标标可能能会是是推进进认识识也可可能会会是诋诋毁其其他人人的名名望对可靠靠性有有疑问问的攻攻击,,这样样的竞竞争可可能会会产生生明确确的结结构工程纠纠正如果评评估是是不公公开的的,那那么,,将会会期望望什么么样的的处理理,或或者是是什么么样的的处理理是可可能的的呢??如果发发起者者希望望这个个攻击击继续续,那那又怎怎么办办呢??发起者者专用用的纠纠正如果工工程纠纠正是是专用用于发发起者者组织织的,,那么么又怎怎么样样呢??-报报告的的发布布可能能会危危及到到发起起者组组织-对对于其其他的的组织织来说说,这这份报报告也也许会会是毫毫不相关关的,,或者者甚至至可能能会是是错误误的各个评评估之之间的的关系系(1)遗传性性攻击击如果“发起者者的”评估发发现了了“遗传性性”攻击,,那又又怎么么办呢呢?-其其他受受到影影响的的“成果”又该如如何处处理呢呢?如果不不公开开的评评估中中发生生了遗遗传性性攻击击,那那又该该怎么么办呢呢?-“其他的的”攻击是是否需需要进进行不不公开开的考考虑呢呢?争论如果两两个不不同的的发起起者希希望相相同的的目标标评估估,但但是却却使用用相互互冲突突的串串,那那么又又该怎怎么办办呢??各个评评估之之间的的关系系(2)工程的的相互互依赖赖性什么样样的依依赖性性呢??-共共用的的图书书馆-静静态的的图书书馆-资资源的的重复复利用用公共界界面条条件私人界界面条条件-随随意的的剪切切和复复制我们怎怎么发发现依依赖的的成果果呢??-一一些“依存性性的博博物馆馆”?-一一些只只有卖卖主才才有的的公告告?-公公众的的公告告和期期望??-这这难道道不是是“处理”吗?潜在的的合法法的障障碍反向工工程什么“水平”的RE是被合合法的的允许许的呢呢?-美美国的的DMCA?-欧欧洲,,日本本?商业秘秘密商业秘秘密,,甚至至是从从来没没有被被揭露露的商商业秘秘密,,真的的可以以在UDA中“使用”吗?-那那是否否是违违背产产权的的呢??-或或者是是违背背专利利权呢呢?国内和和国际际的关关注点点有吗??长远的的影响响质量下下降范围广广大的的VDA组织会会使得得软件件的质质量下下降是是否是是可能能的呢呢?生产者者是否否期望望其他他的人人来发发现攻攻击呢呢?-免免费的的?-在在契约约下??无意识识的副副作用用卖方操操作是否否卖卖方方会会故故意意的的逼逼迫迫VDA社团团,,免免费费的的为为他他们们发发现现他他们们的的攻攻击击呢呢??是否否“少量量”的卖卖主主甚甚至至能能够够发发现现他他们们自自己己的的攻攻击击呢呢??-他他们们支支付付得得起起吗吗??时间间对对市市场场可可能能会会是是生生或或死死的的问问题题-甚甚至至他他们们是是否否具具有有这这个个技技术术呢呢??道德德规规范范过剩剩的的卖卖主主对于于一一个个特特定定的的目目标标,,如如果果它它已已经经在在为为一一个个卖卖主主评评估估时时,,又又出出现现了了另另一一个个卖卖主主要要评评估估这这个个目目标标,,那那么么该该怎怎么么办办呢呢??-如如果果他他们们中中的的一一个个,,或或者者是是两两个个都都是是不不公公开开的的进进行行的的,,又又该该怎怎么办办呢呢??对于于一一个个特特定定的的目目标标,,如如果果它它已已经经在在为为一一个个卖卖主主不不公公开开的的评评估估完完成成了了,,又又出出现现了了另另一一个个卖卖主主要要评评估估这这个个目目标标,,那那么么该该怎怎么么办办呢呢??-先先前前的的结结果果是是否否可可以以被被重重新新使使用用呢呢??-先先前前的的评评估估的的不不公公开开性性必必须须得得到到保保护护吗吗??是否否较较低低的的评评估估价价钱钱就就揭揭示示了了,,已已经经不不公公开开的的进进行行过过这这样样的的评评估估了了呢呢??软件件工工程程问问题题我们们不不知知道道VDA词典典每个个人人以以自自己己的的方方式式来来定定义义基基本本的的术术语语所以以我我也也是是以以自自己己的的方方式式来来定定义义基基本本的的术术语的的主要要的的术术语语(1)所有有者者一个个或或者者是是多多个个人人[拥有有]这个个系系统统。。他他们们为为安安全全策策略略的的设设置置负负责责,,其其中中安安全全策策略略管管理理系系统统的的行行为为。。并并不不必必须须得得是是[用户户]。对手手一个个或或者者是是多多个个人人可可以以攻攻击击系系统统,,并并且且很很乐乐意意被被[看到到]他们们正正在在攻攻击击系系统统。。攻击击对手手的的每每一一个个[动作作]都试试图图开开发发系系统统的的缺缺陷陷。。主要要的的术术语语((2)缺陷陷对于于现现在在的的系统统,必必须须纠纠正正某某些些工工程程[错误误]防止止它它被被开开发发出出来来。。安全全策策略略这些策略略用来管管理什么么样的代理商,可以在在什么[目标]上,用什什么[资格],进行什什么[操作]。攻击系统里的,可可以被敌手开发出来来,从而而违反系统的安安全策略略的缺陷。主要的术术语(3)入侵一个成功功的攻击,它的结结果是危危机到系统的安全,,常常是是[完整性],[隐私性],或者是是[可用性]的损失。。系统一个技术术单元是是由功能能性机构构组成的的。通道系统和它的外外部世界界进行通通讯的任任何一个个通道,,或者是是它众多多的功能机构构之间相互互通讯的的任何一一个通道道。一个个和安全全相关的的通道可以和一一个或者者是多个个安全边界界交叉主要的术术语(4)协议这些规则则用来管管理在通通道中传传输的数数据的形形式和说明安全范围围安全策略略和权限限设置。。改变其其中任何何一个都都会建立立一个安安全边界界。安全边界界从任何一一个机器器指令的的观点来来看,就就是暂时时的最近近的联合合,过去去和将来来,转变变为其他他的安全全范围。。主要的术术语(5)权限在某些〔目标〕上进行某某些〔操作〕的权利。。权限设置置对某一权权限进行行的设置置。功能性机机构机器指令令的暂时时性邻接接设置在在一个单单独的安安全范围围内执行行。代理商功能性机机构是被被证明了了的为人人而工作作的。同同一个调调频可以以被多个个代理商商多次进进行并行行动作。。VDA语义网Adversary:对手Owner:所有者者Privilege:权限Attack:攻击System:系统Defect:缺陷Channel:通道Protocol:协议Agent:代理商商PrivilegeSet:权限设置置SecurityBoundary:安全边边界SecurityDomain:安全范范围SecurityPolicy:安全策策略FunctionalMechanism:功能性机构新类型(1)可靠的VDA需要一个新的的“基础”我们需要把我我们所知道的的所有的有关关攻击的东西西进行再编制,从而支持持软件工程观点攻击分析的中中心的观念就就是“攻击”软件工程的中中心的观念必必须是“缺陷”-缺陷是攻攻击的工程个个性的某种类类型-缺陷是攻攻击到工程的的发射这样,在VDA所有的事情都都必须涉及到到“缺陷”的修正新类型(2)我们已经(浪浪费我们的时时间?)建造造了(建造失失败?)“攻击分类法??”现在VDA需要的是“缺陷类型”如果我们可以以学到如何建建造它们我们正在试图图通过设计一一个所有涉及及到工程缺陷陷的全面的类型型“族”来完成之一任任务。使用有效的XML进行描述包括系谱相关关的DTD将会在这本“书”中论证新类型(3)美国电脑紧急急应变团队((CERT)VDA类型族,包括括以下这些类型(迄迄今为止)::缺陷缺陷-属性缺陷-指示器器发现-技术通道工程-习惯用用语工程-样式攻击(外部的的与CVE相关)设计-原原则(或者是是设计-妨碍碍)缺陷它描述每一个个缺陷与攻击相比,,它具有很大大的详细水平平一些缺陷可能能会产生相同同的攻击它有13个外在的属性性它有1个内在的属性性它是一个真正正的“缺陷-属性”的无序设置它一起描述了了缺陷的精确确的本质它是作为一个个大的逻辑与与(AND)的-ORS是不允许的-ORS是单独的缺陷陷缺陷-属性缺陷属性的例例子:Input.Array.Overflow.Stack-store(存储)-(stack)堆栈-列--目标-多单元--列-操作-未经检查查的-操作-输入-来来源-对手-输输入-清晰的--范围逻辑与(AND)它用于根据缺缺陷分类法动动态的计算类类似处缺陷-指示器器缺陷指示器的的例子:Input.Array.Overflow.Stack-分割-错错误-总线-故故障-变量-错错误-不稳定的的-行为-无限的--循环逻辑或(OR)这样,就不能能被用作固有有的属性了发现-技术缺陷发现技术术的例子Input.Array.Overflow.Stack-review.source.idiom.length.implicit.strcpy-review.source.idiom.length.implicit.loop-review.source.idiom.length.explicit.strcpy-review.source.idiom.length.explicit.loop-erface.array.nosize-specification.boundaryexploration.string.oversize通道通道的例子命令行环境继承的进程关关联-文件/目录创建默认通道控制制-信号设置置-程序优先先权-资源限制制-鉴定证书书-当前工作作目录-打开文件件描述符-系统调用用结果-插槽-管道-共享内存存-信号-永久存储储器比如寄存器-文件存在在-文件信息息系统I/O工程-习惯用用语工程习惯用语语的例子ANSIC没有原型ANSIC/C++指针算法ANSIC/C++在{堆栈,堆堆积,静态}}存储器中的的字符串ANSIC有正负号/无正负号混合合算法Java并发没有保护护的对象土生的密码算算法公众可写的对对象属性对象存取器到到专用属性的的返回指针除非管理者泄泄露整体资源源分配C++对象使用专用用成员指针和和非默认的构构造器工程样式的例例子不完全的授权权攻击例子:缓冲区溢出格式行cross-sight脚本SQL注入共享的可写目目录TOCTOUrace设计-原则我们将单独地地讲述所有的的设计原则IA是艺术,而不不是科学请习惯于这一一点攻击分析社团团已经非常清清楚了这一点点,但是,软件工工程社团还没没有清楚这一一点明确的管理风风险风险是如下下列出的某某种功能::事件的可能能性事件的结果果(代价))-如果可可能性约等等于0,那么风险险是可以的的(OK)-如果结结果(代价价)约等于于0,那么风险险是可以的的(OK)-其它情情况下,就就必须把风风险降低现实的敌手手模型对下下述列出的的情况是必必要的要确定特定定的风险要模拟可能能性和结果果首先要消除除最高的风风险先前的经验验的逻辑结结果一旦确定并并且量化了了风险后,,只有当把把它们从最最高到最低低的风险处处理时,才才是敏感的的这就是“最薄弱的链链接”思想深入的实行行防御当设计系统统特征时,,而又必须须包含一个个攻击特征时包括潜在的的多余的特特征,它们们会减少攻攻击特征的的范围,性性能,持续续时间等其其它方面这是一般的的攻击分析析和系统管管理思想它并不是一一般的软件件工程思想想-只有容容错社团曾曾经这样想想过审计所有的的通道在你的系统统上,通道道是攻击唯唯一的通路路完全的保护护这些通道道,那样你你的系统将将会受到完完全的保护护假设你的敌敌手可以协协调的操作作你所有的的通道将你的系统统的通道最最小化,从从而将攻击击的通路也降降到最低保证完全你的系统必必须总是处处在一种安安全的状态态下每一个潜在在的不安全全的转变都都必须检测测其安全性性任何一个安安全丧失的的证据都意意味着系统统的完全性的丧失失如果安全不不能够得到到保证或者者是不能够够被完全的恢复,,那么,系系统必须自自行终止甚至以可用用性为代价价由定义,一一个可用的的危及安全全的系统比比一个不可可用的系统更糟糕糕攻击/侵扰的工程程师当设计系统统时,一定定要包括可可以对假定的攻击和和侵扰进行行断定的真真实的仪器器仪器应该安全的记录录潜在的攻攻击和侵扰扰信息不将自己暴暴露给敌手手不向系统添添加攻击使用最小的的权限为你的系统统授予它可可以进行操操作所能使使用的最小的权权限在任何一个个给定点处处获得和丢丢弃权限,,系统只具有完成成它正忙于于的任务的的权限用户权限的的分离如果你的系系统需要在在不同的时时间具有不不同的权限,,那么,就就可以考虑虑将系统分分割成几个清楚楚的互相联联系的子系系统,每个个子系统具有一一个适当的的最小权限限设置请记得通道道将会增加加攻击的新新的通路在最小通道道和权限分分割上需要要一个适当的平衡使用最小功功能性使你的系统统包括它所所需要的最最小的功能能性附加功能,,甚至是睡睡眠状态,,都代表着着附加的攻攻击可能是由于于代码的增增加的行数数可能是由于于里面包含含的攻击可能是由于于无意识代代码的路径径可能是由于于激活无意意识功能的的方式主动的限制制一个过度度的功能性性子系统的的功能,可可能会非常的的昂贵并且且还可能会会导致错误误的发生调停所有的的操作调停(提出出)在所有有的对象上上的所有的的操作即使是没有有明显的敏敏感数据的的操作潜在的将来来的再次使使用需要它它对于透明的的调停可以以使用“把柄”一定不要为为对象内部部的返回实实指针一定不要相相信回叫功功能或者是是对象使用行人愉愉快的界面面用户具有足足够的创造造性来规避避令人讨厌的界面如果界面必必须是限制制性的,那那么,它们必须得是是完美的限限制,而不不是只是令令人气馁的限制制穿过界面的的自动化的的攻击可能能会战胜许许多明显的限限制使用多重正正交鉴定证证书使你的系统统需要双因因素鉴定有些是你有有的有些是你知知道的两个相互独独立的鉴定定因素两个个相互独立立的鉴定因因素应该按按照重要度度来排序,,而回避这这些会更加加困难。使用实际的的鉴定时一一定要非常常小心生物测定学学(Biometric)GPS直接的实际际地址只从安全得得到保证的的通道输入入使得系统只只从已经进进行过完全全的鉴定的的通道输入许多通道是是可以信任任的,并且且它的鉴定定是不可能的,所所以小心以以下几点信号被装载器映映射的共享享的库系统的调用用如果你的系系统真的是是敏感的,,那么,需需要重新鉴定而不不是为了鉴鉴定而接受受环境的命命令只从安全得得到保证的的通道输出出使得系统只只从已经进进行过完全全的鉴定的通道输出出让系统从没没有经过鉴鉴定的通道道输出,不管输出是是什么,实实际上,就就是一种对对保密性的侵害害保证微观操操作当一系列的的操作不能能被中断时时,就确保保它们不会会被中断使用任何的的需要的“设备”来确保这一一点操作的不同同的顺序用具有相同同的结果但但是却没有有(或者是是较少的))次序要求求的操作来来代替互斥体,旗旗语,以及及其它的同同时控制设设备分布式的事事物处理服服务程序当没有其它它的可能时时,就减少少序列将秘密安全全的存储将秘密安全全的存储几几乎是不可可能的如果根本不不可能,那那么就要避避免存储它它们如果你必须须存储它们们,为了这这个目的,,可以使用“设备”设计和检验验密钥环((keyring)智能卡((smartcard)强大的编密密码使用默认的的拒绝将你的系统统设计成,,可以根据据所知道的的什么是安全和正正确的,来来有选择性性的允许{{操作,输输入}否认所有其其它的一定不要试试图将坏的的东西“过滤”掉今天是坏的的东西明天天就不一定定还是坏的的仅仅重新使使用保证代代码请一定要非非常小心地地重新使用用代码你可以重新新使用下述述的代码::你为相同安安全水平所所编写的代代码你已经为相相同的安全全水平进行行了完全的的再检查的的代码你所信任的的人所写的的代码,其其中,这个个代码和你你需要的代代码具有相相同的安全全水平跨边界委托托要非常小小心如果你的系系统必须得得将某些操操作委托给给其它的系系统,那么么请留意以下几点::用较高的权权限委托其其它的系统统用更严格的的安全策略略委托其它它的系统-它们比比你的系统统具有更高高的敏感度度,所以它它们很可能会自我保保护的非常常好避免使用较较低的权限限或者是松松的安全策策略委托系系统-它们将将不太可能能会以你所所希望的你你的数据的的处理方式式,来处理理任何输入/输出-如果你你必须得委委托给这样样一个系统统,那么,,一定要确确保以合适适的方方式式处处理理好好通通往往/来自自那那个个系系统统的的通通道道-尤尤其其适适用用于于没没有有安安全全边边界界的的系系统统只使使用用私私人人存存储储区区对于于那那些些其其他他人人也也可可以以从从中中读读取取数数据据的的持持久久的的存存储储区,,永永远远都都不不要要写写入入任任何何东东西西这就就减减少少了了敏敏感感数数据据泄泄露露的的可可能能性性对于于那那些些其其他他人人也也可可以以从从中中写写入入数数据据的的持持久久的的存存储储区,,永永远远都都不不要要读读取取任任何何东东西西这就就减减少少了了你你的的系系统统的的“内部部的的”持久久的的存存储储数数据据的的破破坏的的可可能能性性这些些工工作作并并不不适适用用其它它系系统统的的许许多多攻攻击击可可能能会会允允许许你你的的持持久久存存储储是是坏坏的的,,这这样样,,你你仍仍旧旧需需要要假假定定你你自自己己的的先先前前的的存存储储数数据据可可能能是是坏坏的的使用用密密码码系系统统对于于所所有有的的敏敏感感数数据据,,只只将将它它们们以以加加密的的形形式式永永久久的的存存储储不管管你你认认为为存存储储箱箱多多么么的的安安全全,,在在某某些情情况况下下,,它它都都不不是是有有那那么么安安全全的的你只能通过存存储箱的自我我保护来保护护存储箱中的数数据;存储箱箱是不可靠的的正确的使用密密码系统如果你的系统统需要密码包包括,那么,,请正确的使使用它:在任何时候,,永远都不要要发明你自己己的算法-即使你是是一个数学家家,你都不知知道你在作什什么但是它们更知知道在任何时候,,永远都不要要执行一个已已知的算法-即使你是一一个熟练的程程序员,你都都不知道你在在作什么不幸的是,它它们也并不知知道永远都要使用用公认的,被被广泛使用的的代码-它可能已已经被彻底的的检验过-如果还没没有,那么它它将会被彻底底的检验并且,你将从从中受益匪浅浅检验变量约束束始终检验标量量变量约束始终使用标量量变量约束如果你的系统统需要约束,,使用它们如如下-列的脚注注为最大的有有益的原因-指针的算算法基本上是是相同的情形形使用“标准的”机构使用那些可以以用于解决标标准问题的标标准的机构使用“标准的”语言的机构使用“标准的”操作系统机构构让内核完成它它的工作;而而不要扮演内内核的角色通常,这些机机构都写的很很好总之,最终你你的系统取决决于它们即使你规避它它们,你依赖赖的东西还是是使用它们的的你不能够自己己写所有的东东西构造“契约性的”界面虔诚的使用Meyer型的契约界面面始终使用预处处理并且永远都不不要使它们无无效在不变式有意意义的地方,,就尝试使用用不变式在可以以合适适的成本执行行后处理的地地方,就尝试使用后处处理只有当进行后后处理的成本本真的成为一一个被批评的的对象时,才才可以不进行行后处理初始化所有的的变量一定要保证所所有的变量都都被明确的初初始化,这样样你的系统的动动作是可预测测的(正确的的或者是错误误的)你的系统不会会泄露未被初初始化的数据据除非语言规范范保证初始化化,而不是系系统,那么初初始化以下内内容:局部自动(堆堆栈)变量全局静态变量量动态(堆或存存储池)变量量“初始化”并不意味着隐隐式构造程序序的调用至少要把他们们赋值为0,但是最好把把它们初始化化为一个有意意义的值清除不相关的的内存当内存不再使使用时,经常常应该清除它它们尤其是当它包包含敏感信息息的时候这一点并不容容易做到,因因为大部分的的语言没有完完全支持这一一功能C++类的语言能够够大大的帮助助清除内存-在内存释释放之前清除除它们-一定要非非常确定,什什么时候它们们是分配给你你运行的隐式内存语言言会将这一点点变得十分困困难-“解决问题”通常已经被认认为足够好了了内存在解决问问题之前,将将不会被再次次使用但是仍旧可能能被其它的缺缺陷泄露密切注意-output.leak.uncleared.optimized-Away选择适当的语语言了解许多关于于不同语言的的知识请一定不要让让学习曲线限限制住对于一个好的的程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肠内营养与肠外营养
- 七年级传统文化教案编
- 广告业务员工作参考计划范文2
- 电子商务产业园租赁合同
- 苗木基地租赁合同
- 停车场车位租用合同
- 2024年跨国电子产品贸易合同中英文版版B版
- 2025年生物质碳化专用炉合作协议书
- 2024年跨境电商企业承包经营合作协议集锦3篇
- 2025租房合同协议书打印范本参考
- 小学生卫生知识健康教育精课件
- DL∕T 248-2012 输电线路杆塔不锈钢复合材料耐腐蚀接地装置
- CJ/T 158-2002 城市污水处理厂管道和设备色标
- NB-T35009-2013抽水蓄能电站选点规划编制规范
- 结构设计原理练习题及答案
- 曳引驱动电梯调试作业指导书
- 经皮肝穿刺胆道引流(PTCD)导管的护理要点
- 国家开放大学《心理学》形考任务1-4参考答案
- 2024年社会工作者《社会工作实务(中级)》考试真题必考题
- FZ∕T 74001-2020 纺织品 针织运动护具
- MOOC 作物育种学-四川农业大学 中国大学慕课答案
评论
0/150
提交评论