网络安全 频道

软件安全速成课 企业系统有多脆弱?

    即使有了经过最全面测试的、最安全的软件,一旦软件交到了最终用户手里,结果就很难说了。如何配置及部署软件对安全起到的作用如同其他任何安全步骤一样来得重要。

    ·靠不住的默认值

    用户在部署一款新软件时经常会犯错误,其中最严重的一个错误就是,满足于默认值。许多软件会为各种选项定义了默认值,那样用户就能尽快运行起来。虽然有时候这可能很有帮助,比如Web服务器默认设置为标准的Web服务器通信端口,这也会导致许多安全问题。比方说,许多路由器及其他网络设备都随带默认的登录用户名和密码。如果用户不把这些默认值改为独特的值,就会出现问题。搜索“默认的路由器密码”,结果会得到好多网站,它们列出了市面上大多数路由器的默认用户名和密码。如果攻击者企图闯入网络,那么原封不动的用户名、密码、IP 地址及其他默认值如同成了挂在门上的一串钥匙。

    ·不安全的系统

    要是最终用户不太清楚自己添加的软件与系统其他部分的兼容情况,也不太清楚需要另外采取哪些安全措施,就会出现另一个问题。同样以Web搜索为例。搜索“view/index.shtml axis”,会返回未加保护的网络摄像头的列表。在一些情况下,最终用户成功地设置了想让全世界都能看到的网络摄像头。在其他情况下,网络摄像头被添加到了某个网络上,根本没经过配置,以便不让外人看到。现在,凡是能连接互联网的人都能看到这个未加保护的摄像头,这个摄像头还很快就会侵犯隐私。有些书籍和网站专门提供搜索查询,可以返回主人可能根本没有考虑过采取安全保护的数据,如今这些数据成了公开数据。

    我们可以从这些新颖的搜索当中汲取几个教训。第一,默认值天下人都知道,因而如果让默认值原封不动,就要考虑清楚:如果让攻击者知道了默认值,后果会多严重。第二,你应该知道系统的各部分是如何可以访问的,并且考虑这种访问功能是不是合适。第三,记住通过隐藏获得安全(security through obscurity)行不通。不管公众可以获得的信息多么不重要或者多保密,只要通过自动搜索或者通过某种人力,致力于找到这种数据的人总会搞到手。

    总之,随着越来越多的脆弱点每天被发现,这些威胁只是沧海一粟。与这些例子一样,即便不是全部脆弱点,至少大部分脆弱点源于疏忽:无论是开发人员疏忽了采取安全做法,还是最终用户忽视了更改配置。诚然,我给出的例子可能很肤浅,似乎很容易就能避免;但随着一个项目越来越大,出现简单情况未加检查的可能性随之加大。攻击者只要抓住小小的机会,就能对系统构成严重威胁,并且带来永久性破坏。开发人员应当充分了解想当然的假设会带来什么影响,并且测试时要考虑到非正常使用。如果充分了解系统的工作方式,并且假定攻击者可能瞄上自己的产品,开发人员就会定期审查自己的工作,并且必要时发布补丁。

    个人可能说不出软件存在多大的缺陷;尽管世界上没有什么完全安全的系统,但人们可以采用多层安全机制,以便尽量减少脆弱点。强密码、让软件保持更新版本、合理打上补丁,并知道软件每个部分带来的影响,这些都是最终用户增强保护层的小办法。最后,与软件相关的每个人都有责任关注安全,并且设法减少脆弱点。
 

0
相关文章