开发者的安全意识

计算机安全,随着历史的进程,曾被称过系统安全、开发安全、软件安全、信息安全等等,最近被称为网络安全,是计算机系统的属性。系统构建者关注的主要属性是正确性,他们希望他们的系统表现如预期的情况一样。

如果我正在开发一个银行网站,我所关心的是,当客户从她的一个账户中转出一笔1000块钱的资金时,如果资金余额足够,那么1000块钱就能转出成功。如果我正在开发一个文字处理器,我关心的是,当一个文件被保存并重新加载时,我上次离开时保存的数据能够被成功开启……等等诸如此类。

安全的计算机系统是在较宽范围的环境下防止特定的不良行为。虽然正确性在很大程度上是关于系统应该做什么的,但安全性是关于不应该做什么的。即使有对手居心叵测地试图规避任何可能实施的保护措施。昆明亭长朗然科技有限公司IT安全专员董志军说:通常有三个经典的安全属性需要系统来努力满足。这些是广为人知的属性,这些属性的破坏会导致不良的行为。根据系统的不同,它们将具有这些属性的某些特别实例。

  • 第一个属性是保密性。如果攻击者能够操纵系统以窃取个人信息或公司秘密等信息资源,那么他就破坏了机密性。
  • 第二个属性是完整性。如果攻击者能够修改或破坏系统所保留的信息,或者能够滥用系统功能,那么他就破坏了系统的完整性。破坏行为包括损毁记录、修改系统日志、安装不受欢迎的程序如间谍软件等。
  • 最后一个属性是可用性。如果攻击者侵入一个系统,以便使系统拒绝对合法用户提供服务,被拒绝服务的例子包括线上购物或网络银行访问,那么攻击者就破坏了系统的可用性。

今天,很少有系统是绝对安全的,如同您可能在新闻中看到的的一样,安全漏洞不断涌现。例如,在2011年,美国RSA公司被入侵,我在稍后将详谈。入侵者能够窃取与RSA SecureID设备相关的敏感令牌。然后,这些令牌被用来侵入使用了SecureID的公司。2013年底,美国Adobe公司遭到入侵,被盗的不仅有源代码,还有客户记录。几乎在同一个时期,攻击者入侵了美国零售业者Target的销售终端,部分门店内的客户信用卡和借记卡资料被盗。董志军表示:即使在标榜言论自由媒体自由的美国,典型的安全事故案例也都是尽可能被捂着的,如上这些只是一些影响较大且被媒体披露的例子,其实只是冰山一角。

攻击者是如何侵入这些系统的呢?许多入侵行为首先是利用了相关系统中的漏洞(也称弱点)。一项漏洞就是一项缺陷,入侵者可以利用精心构建的交互来使系统运行的不安全。一般来说,缺陷是系统在设计或实施时就已经产生了,这就使得它在后期无法避免出现问题。换句话说,它的运行就不安全。

缺陷是设计中的欠缺,而错误是实施中的欠缺。一个漏洞是一个影响安全相关行为的缺陷,而不是简单的正确性。让我们说回到RSA在2011年被入侵的案例,这种入侵行为取决于Adobe Flash播放器的执行缺陷。Flash播放器本来应该顺利地拒绝格式错误的输入文件,但是事实上,它的这个缺陷让攻击者成功利用了一个精心构建的输入文件,该文件可以操纵程序来运行攻击者编定的代码。该输入文件可以嵌入到微软Excel电子表格中,以便在电子表格在被打开时自动调用Flash播放器。

在实际的攻击中,入侵者将这样的电子表格发送给目标公司的执行官。由于电子邮件被伪装成来自于同事,所以执行官被误导而开启了该文件。这种伪造电子邮件的方法被称为鱼叉式网络钓鱼攻击,这种攻击方式是很常见的。一但电子表格被打开,攻击者就能够在该执行官的机器上悄悄安装恶意软件,并从那里发起进一步的渗透攻击。这个例子突出了通过正确性和通过安全性两个不同的视角来查看软件时的重要区别。

从正确性的角度来说,Flash漏洞只是一个错误而已,除了非常简单的小程序之外,其它所有的软件不可避免会出现错误。软件公司通常在认可他们的软件有已知错误的情况下出售软件,因为要解决这些错误花费过于昂贵。相反,开发人员主要关心在通常情况下会出现的错误。剩下的错误,比如Flash漏洞,很少会出现,用户们也习惯于自己处理它们。如果做某些事情导致了软件的崩溃,用户们很快就会了解到,这不算什么大不了的事情,重试一下或者换种方式就好了。最终,只有当大量用户的遭遇到同样的错误时,软件公司才会解决这个问题。

另一方面,从安全性的角度来看,仅仅针对常规典型的用例来判断错误的重要性是不够的。开发者必须考虑非常规非典型的滥用情况,因为这正是入侵者所处心积虑的地方。

正常用户可能会跳过软件错误,然后导致软件崩溃,但是入侵者则会尝试让该崩溃情景重现,以便了解其为什么发生,然后操纵交互将该崩溃转化为利用方式。简而言之,为了确保系统达到其安全目标,我们必须努力消除错误和设计缺陷。我们必须仔细思考哪些安全属性是我们要牢牢掌握的,并确保我们在设计和实施时不会出现危害安全的缺陷。我们还必须设计系统,使得任何不可避免的缺陷都难以被入侵者恶意利用。

而软件特别是互联网创新的市场竞争那么激烈,时间就是效率,在争分夺秒增加系统功能的时候,别指望开发者或测试人员能主动解决危害安全的缺陷。昆明亭长朗然科技有限公司董志军表示:入侵者不断发现和利用这些缺陷,或者在找出缺陷之后立即在地下市场当天出售(零天漏洞)。要防范入侵者利用零天漏洞借助用户的失误造成破坏,提升用户安全意识是较为有效的途径。在上述RSA被入侵的案例中,如果执行官有足够的信息安全防范意识,不去开启被黑客伪造的电子表格,直接删除那封钓鱼邮件,则至少可以在Flash漏洞被厂商修复之前,保护住自己。

说到底,对安全管理者来讲,安全是一整套解决方案,立体防御、多重防御无疑是正确的安全战略;开发者的安全意识是软件产品和服务是否稳健与安全的关键;用户的信息安全防范意识,也是整体安全管理体系中的不可或缺的重要一环。

在针对用户的网络信息安全意识方面,昆明亭长朗然科技有限公司创作了几十部安全教程模块、互动小游戏,以及三百来部信息安全动画视频、宣传画和培训系统等等。有多种沟通方式和展示渠道来灵活地使用它们,学员也可以通过电脑、平板和智能手机随时随地参与信息安全学习。如果您有兴趣预览,欢迎您通过如下方式快速联系到我们。

昆明亭长朗然科技有限公司

电话:0871-67122372

手机:18206751343

微信:18206751343

邮箱:[email protected]

QQ:1767022898