安全的最好选择简化系统

    在其它影响因素相同的情况下,简单的解决方案是最安全的。
    在开发软件时间,代码写的越多,出现错误的几率也就越大。在统计学上代码行数和错误数量之间是存在简单对应的关系的:代码越多,错误越多。由于很多(不是全部)的错误可以被当作安全方面的脆弱点予以利用,因此,对于单一软件来说系统开发量就可以对安全造成重大影响。
    在为软件系统添加功能时,不论需要多少行代码来执行这些功能,都有可能导致错误的出现。这是因为系统中不同功能块的相互作用,有时会产生惊人的效果,特别是当这些功能严重地互相依赖时。这种风险由于功能并行的增加而日益扩大,因为多项功能可能依赖于同一时间的某项单独功能,并且也有可能对该功能产生影响,通过这种共同的无计划依赖,它们之间同时具有相互影响的趋势。
    复杂的软件除了在安全技术方面带来严重的后果外,也会给我们的理解力带来影响。系统越大就越复杂,对于一个人来说,这时间了解系统所有不同部分的方式就更麻烦。当系统中的互动部分没有被完全理解,从事这方面工作的人是不会从这些相互作用中认识到安全问题的,并且会因此而无法妥善解决这些问题。
    因此,简化才是安全方面最重要的策略。有很多方法可以用来对系统进行简化处理:
    最小化设计:抵制添加功能到系统中的冲动是非常困难的,但考虑到避免问题和错误带来的可衡量回报可以帮助你做到这一点。当考虑是否要在系统中额外功能时,应该确认是存在实际需要,还是仅仅为了加入到列表项目中,而在实际中可能永远不会使用。
    模块化配置:在单一系统中可能需要包含多项功能,这些功能可能涉及到在本地执行系统,挑选和使用的功能可以根据需要选择系统的不同部分,在专用的基础上尽可能地简化系统。基于这个原因,分解成"模块",可以让系统根据需要提供服务,防止在执行过程中导致复杂性增加。人们可以根据自己的需要选择功能,而不是启动整个系统,不能排除不需要的功能。
    注意分散关注:将功能分解成为不能直接互同的离散部分可以协助降低系统的复杂性。这就是我们通常说的"分散关注"。通过增加系统部分的独立性,系统管理将变得更加简单也不容易出现漏洞导致意想不到的安全问题。
    在Unix体系中,经常被提到的一条原则就是"专注一件事,将它做到完美"。对于系统设计中的所有工具来说,该原则都是要遵循的,只针对一件事,并将它做好。当出现多件需要同时进行的事情时,可以选择使用多种工具来满足复杂性方面的要求,这样的话,复杂性就不会成为系统本身的组成部分。在Unix和类Unix系统设计中就提供了简单的自动化机制,可以在离散的工具之间创建特定的临时连接。这样的话,单一用途的工具就可以与其它工具进行灵活合作,处理更多复杂任务的功能也得到了很好的支持和鼓励。
    对于安全来说,它可能不算是一颗灵丹妙药,但这种保持系统简单的模式涵盖了简化系统的所有三项要点:最小化设计、模块化配置和注意关注分离。因此,从Unix体系安全的角度来看,我们建议,软件开发者重视"专注一件事,将它做到完美"这一原则,不要忽略。

(责任编辑:adminadmin2008)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

网络安全:互联网安全 如何防范木马及病毒

网络安全:互联网安全 如何防范木马及病毒的攻击

一、计算机中毒有哪些症状? 人生病了,会有各种各样的症状,同样,电脑中毒了也会有...[详细]

加强网站服务器安全维护的技巧

加强网站服务器安全维护的技巧

计算机系统服务器的维护工作十分重要,稍有不慎就会使整个网络陷入瘫痪。目前,网络经...[详细]

电脑离线就安全?这个软件一样能远程窃取数

电脑离线就安全?这个软件一样能远程窃取数据

以色列的一个研究团队已改良了窃取离线电脑数据的方法。人们一直认为这种离线电脑在面...[详细]

如何在Linux上最妥善地管理加密密钥?

如何在Linux上最妥善地管理加密密钥?

存储SSH加密密钥和牢记密码可能是一件让人很头痛的事儿。不过遗憾的是,在如今恶意黑...[详细]

如何在 Linux 上运行命令前临时清空 Bash

如何在 Linux 上运行命令前临时清空 Bash 环境变量

我是个 bash shell 用户。我想临时清空 bash shell 环境变量。但我不想删除或者 unset...[详细]

返回首页 返回顶部