
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
2014年4月7日,世界首次知道心脏滴血漏洞。OpenSSL中TLS/DTLS(传输层安全协议)心跳扩展实现上的一个小漏洞,却能使攻击者解开受脆弱OpenSSL软件保护系统中的加密措施。在当时,这些加密措施占据了公网大约2/3的江山。攻击者可以窃听那些看起来加密了的通信,盗取隐私数据,冒充服务和用户。
漏洞一见诸报道,OpenSSL便发布了针对心脏滴血的补丁。即便如此,1年半之后,仍有20多万台设备没有打上补丁。
心脏滴血只是冰山一角
围绕心脏滴血的所有关注(当然还有不必要的心理恐惧),表明了小小编程失误在当下互联时代会造成多大的破坏。
计算机技术早期,漏洞不过意味着一点点的不便。那个时候,计算机间互不联通,一个编程缺陷最多就是某个软件时不时地故障一下。或许你需要不时重启一下机器,但最多也就是如此了。
但互联网世界中,一切都不一样了。全球连接性让黑客可以瞄准更多的用户。考虑到人们银行凭证和其他敏感数据的激增,在今天,一个漏洞不仅仅意味着不方便这么简单。通常,编程漏洞就是安全漏洞,攻击者可利用来盗取或披露成千上万用户的个人信息。这也就是为什么心脏滴血之类的漏洞会演变成大事件的原因所在。
但也别会错意。我们的软件也不是全部都被攻破了的。OpenSSL的大多数用例仍然运作良好。心脏滴血仅仅构成了少数黑客入侵场景之一,这些场景中,攻击者可以操纵编程缺陷产生软件功能上的非预期结果。
达内长沙IT培训想说的是,这就是编程的现实。漏洞司空见惯,因为要把自然语言能描述的想法,转换成机器能理解的指令,可不是件容易的事儿。
除此之外,编程的目标,是使计算机程序能够只实现一套既定的操作,不做多余的事。正派程序员都不会希望有人在自己的软件里找到能让他们窃听加密通信或盗取个人信息的漏洞。因此,程序员有责任让自己的代码无懈可击。
但知易行难。稍微学过一点编程的人都会告诉你,编程出错简直太容易了。要是有什么方法,能让程序员确保自己的代码只做应该做的事就好了。