概念验证

科技工作者之家 2020-11-17

概念验证(英语:Proof of concept,简称POC)是对某些想法的一个较短而不完整的实现,以证明其可行性,示范其原理,其目的是为了验证一些概念或理论。

简介概念验证通常被认为是一个有里程碑意义的实现的原型 。

在计算机安全术语中,概念验证经常被认为是zero day exploit。(通常指并没有充分利用这个漏洞的exploit)1

计算机安全计算机安全(computer security)是计算机与网络领域的信息安全(information security)的一个分支。其目的是在保证信息和财产可被受权用户正常获取和使用的情况下,保护此信息和财产不受偷窃,污染,自然灾害等的损坏。计算机系统安全是指一系列包含敏感和有价值的信息和服务的进程和机制,不被未得到授权和不被信任的个人,团体或事件公开,修改或损坏。由于它的目的在于防止不需要的行为发生而非使得某些行为发生,其策略和方法常常与其他大多数的计算机技术不同。1

漏洞利用漏洞利用(英语:Exploit,本意为“利用”)是计算机安全术语,指的是利用程序中的某些漏洞,来得到计算机的控制权(使自己编写的代码越过具有漏洞的程序的限制,从而获得运行权限)。在英语中,本词也是名词,表示为了利用漏洞而编写的攻击程序,即漏洞利用程序。

经常还可以看到名为ExploitMe的程序。这样的程序是故意编写的具有安全漏洞的程序,通常是为了练习写Exploit程序。

计算机安全技术的基础是逻辑学。安全性并非是大部分的计算机应用的主要目的,而在设计时就考虑程序的安全性常常会对程序的运行有所限制。

在计算机应用上有四种安全设定,通常会结合使用:

信任所有软件都遵守安全策略,但软件本身不可信。

信任所有软件都遵守安全策略,并且该软件也被证实为可信的

不信任软件,但通过不可信的保护机制执行安全策略

不信任软件,但通过可信的硬件机制执行安全策略

许多系统无意中使用了以上的第一种设定。由于第二种方法成本昂贵和不确定性,其使用受到很大限制。第一种和第三种方法会导致失败。第四种方法更具实用性,这是由于它通常基于硬件机制,避免了抽象性和自由性。

设计安全系统有很多技巧和技术。但很少有有效的方法能够在设计完成后提高安全性。有一种技术能最大程度地执行最小权限原则,即一个实体只能拥有它所需要的权限。在这种方式下,即使攻击者能够进入系统的某一部分,也难以进入到其他部分。

另一方面,将系统划分为小的组件可降低各部分的复杂性,并可以使用定理机器证明(automated theorem proving)来证明关键的软件子系统的正确性。因此,当单一的有特点的特性可以作为关键点被分离出,而此特性可被数学评估时,安全的解析解(closed form solution)才会有效。在这种正确性证明不存在时,严谨的代码审查(code review)和单元测试(unit testing)是最好的保证模块安全的方式。2

零日攻击在计算机领域中,零日漏洞零时差漏洞(英语:Zero-day exploit、 zero-day、0-day)通常是指还没有补丁的安全漏洞,而零日攻击零时差攻击(英语:Zero-day attack)则是指利用这种漏洞进行的攻击。提供该漏洞细节或者利用程序的人通常是该漏洞的发现者。零日漏洞的利用程序对网络安全具有巨大威胁,因此零日漏洞不但是黑客的最爱,掌握多少零日漏洞也成为评价黑客技术水平的一个重要参数。

零日漏洞及其利用代码不仅对犯罪黑客而言,具有极高的利用价值,一些国家间谍和网军部队,例如美国国家安全局和美国网战司令部也非常重视这些信息。据路透社报告称美国政府是零日漏洞黑市的最大买家。

一般而言,零日攻击唯一彻底解决方法便是由原软件发行公司提供修补程序,但此法通常较慢,因此软件公司通常会在最新的病毒代码中提供回避已知零日攻击的功能,但无法彻底解决漏洞本身。根据赛门铁克第14期网络安全威胁研究在2008年分析的所有浏览器中,Safari平均要在漏洞出现9天后才会完成修补,需时最久。Mozilla Firefox平均短于1天,需时最短。2

本词条内容贡献者为:

王沛 - 副教授、副研究员 - 中国科学院工程热物理研究所

科技工作者之家

科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。