概念证明,即概念验证(英语:Proof of concept,简称POC)是对某些想法的一个较短而不完整的实现,以证明其可行性,示范其原理,其目的是为了验证一些概念或理论。概念验证通常被认为是一个有里程碑意义的实现的原型 。
在计算机安全术语中,概念验证经常被用来作为0day、exploit的别名。
简介概念证明,即概念验证(英语:Proof of concept,简称POC)是对某些想法的一个较短而不完整的实现,以证明其可行性,示范其原理,其目的是为了验证一些概念或理论。概念验证通常被认为是一个有里程碑意义的实现的原型 。
在计算机安全术语中,概念验证经常被用来作为0day、exploit的别名。1
词源牛津英语词典早在1967年1月22日就提供了一个例子,用来说明该词的用法。该例子来自洛杉矶时报。
该词的一个较早的使用例子是在Bruce Carsten的文章《proof of concept prototype》中,在1998年11月的《Power Conversion and Intelligent Motion》杂志的“Carsten's Corner”专栏中(第38页),副标题是“Let's Define a Few Terms”:
Proof-of-Concept Prototype 是我在1984年创造的一个词(我是这样认为的)。它用来称呼一种类似工程原型(译注:原文为engineering prototype)的电路(circuit),但是它的目的只在于表明一种新的工艺(译注:又是circuit)或制造技术的可能性,而不是作为生产设计的早期样本。
计算机安全计算机安全(computer security)是计算机与网络领域的信息安全(information security)的一个分支。其目的是在保证信息和财产可被受权用户正常获取和使用的情况下,保护此信息和财产不受偷窃,污染,自然灾害等的损坏。计算机系统安全是指一系列包含敏感和有价值的信息和服务的进程和机制,不被未得到授权和不被信任的个人,团体或事件公开,修改或损坏。由于它的目的在于防止不需要的行为发生而非使得某些行为发生,其策略和方法常常与其他大多数的计算机技术不同。
设计层面上的安全计算机安全技术的基础是逻辑学。安全性并非是大部分的计算机应用的主要目的,而在设计时就考虑程序的安全性常常会对程序的运行有所限制。
在计算机应用上有四种安全设定,通常会结合使用:
信任所有软件都遵守安全策略,但软件本身不可信。
信任所有软件都遵守安全策略,并且该软件也被证实为可信的
不信任软件,但通过不可信的保护机制执行安全策略
不信任软件,但通过可信的硬件机制执行安全策略
许多系统无意中使用了以上的第一种设定。由于第二种方法成本昂贵和不确定性,其使用受到很大限制。第一种和第三种方法会导致失败。第四种方法更具实用性,这是由于它通常基于硬件机制,避免了抽象性和自由性。
设计安全系统有很多技巧和技术。但很少有有效的方法能够在设计完成后提高安全性。有一种技术能最大程度地执行最小权限原则,即一个实体只能拥有它所需要的权限。在这种方式下,即使攻击者能够进入系统的某一部分,也难以进入到其他部分。
另一方面,将系统划分为小的组件可降低各部分的复杂性,并可以使用定理机器证明(automated theorem proving)来证明关键的软件子系统的正确性。因此,当单一的有特点的特性可以作为关键点被分离出,而此特性可被数学评估时,安全的解析解(closed form solution)才会有效。在这种正确性证明不存在时,严谨的代码审查(code review)和单元测试(unit testing)是最好的保证模块安全的方式。
设计时应使用纵深防御(Defense in depth),即当多于一个子系统被误用时,系统的完整性和其存储的信息才会受损。当对一种安全措施的破坏不会使得对另一种措施的破坏变成更容易时,纵深防御有效。同时,串行原则表明,几个简单的保护措施不能连接成为一个复杂的保护措施。
子系统应被默认在安全设置下,并应尽可能设计为fail secure而非fail insecure。理想地,一个安全系统应当在合法用户特意地,自由地决定之下才能使其不安全。
另外,安全不应是全有或全无的问题。系统的设计者和操作者应假定安全性的违反是不可避免的。系统活动应有完整的审计日志,在违反安全性的活动发生后才可确定其机制和程度。远程存储审计日志可保护系统日志不被侵入者修改。最后,充分公布(full disclosure)有助于在系统漏洞被发现时,尽可能地缩短此安全隐患存在的时间。
安全体系结构安全体系结构定义为描述安全措施如何放置,如何与整个信息技术体系结构关联的设计作品。这些安全控制措施旨在维护系统质量参数,包括机密性,完整性,可用性,问责制,保险性。2
可行性研究可行性研究,是管理学、投资学、市场学及工程学中常见的术语和前期准备过程,简单而言即是计划及考虑某项目建议的可行与否。大型项目开始之前,当然必须要有一个理性的及详实的可行性研究,以确定工程或投资计划是否可行,一般包括环评、安全评价、社会影响评价、地址影响评价等多方面。
可行性研究是管理学上的计划模型,其中过程包括清楚确定现行的不足、期望的需要,列出所有解决方案,资料搜集,在各种资源条件许可之下,列出最有可行的一个或多个计划建议,有待最后审议及批准。
可行性研究中所考虑的问题,包括:
经济上的可行性
技术上的可行性
时间表上的可行性
组织架构上的可行性2
本词条内容贡献者为:
王慧维 - 副研究员 - 西南大学