表面上来看,开源软件对于中小企业(SMB)似乎意义重大。因为开源软件是免费的并且在网站上是可以自由使用的,可以帮助节省很大一部分预算。但重要的是,它理应要比现成的商业软件要更安全。
但是开源软件真的像它标榜的一样安全吗?
诚然,开源软件的源代码是开放的,全世界的开发者和软件使用者都可以随意地选择使用修改这些源代码。不过,像其对应的商业软件一样,开源软件在安装部署之前需要对其进行加固、修复和锁定。
这里有五个要素可以帮助中小企业们保证其开源应用程序的安全。
软件详细目录
如果你的公司还没有建立软件详细目录,那么好马上去做一个。因为详细目录可以帮助你管理安装在公司内部的所有软件。即使在一个小公司里,软件应用程序的数量(开源软件或者其他)都可能不受控制。购买的商业软件可以保留发票作为记录保存,而开源软件却可以任意地从网站下载下来后而不留下任何痕迹。
不仅应该保存记有开源软件下载日期和时间的日志,并且在开源软件被安装之前还应该检查其完整性。开源软件配备了MD5 hashes或者GNU Privacy Guard签名,可以通过他们来核实所下载的软件是否完整完全。如果软件没有通过完整性检查,需要重新下载,同时这些也应该记录在日志中。
补丁管理
对开源软件的补丁管理可能会很棘手,但是也很关键。发布周期和更新时间表往往不是同步的,这使补丁规划很难进行,但是可以通过另外的途径进行补丁管理。
对于拥有小型开源软件基础的中小企业来说,手工打补丁可能是便宜的选择了(如果不是选择的话)。对于Apache和Jakarta等有补丁定期发布周期但是不能像Linux系统一样自动更新的开源产品,你需要手动检查和运行他们的技术补丁。
对于较小的中小企业,还有另外一种选择,是定期查看开源网站并通过脚本自动安装更新程序。大部分系统管理员都可以编写脚本,并且可以把脚本设置成在空闲的时候有间隔地运行---或者深更半夜的时候。
但是随着中小企业的不断发展,手动更新和脚本逐渐变得不实用的时候,可以考虑使用补丁管理工具了。不幸的是,大部分补丁管理工具都是和 Windows更新相连的。不过市面上有一些产品可以对开源软件进行更新,包括,PatchLink update和Shavlik Technologies LLC公司的NetChk Protect。
网络与防火墙的兼容性
开源软件像所有软件一样,可能需要启用特定的TCP端口接入因特网。但是在为开源软件开启端口的时候一定要确保没有开启你的网络中的其他安全端口。
另外,开源软件与你现有的网络安全体系之间的兼容性也很重要。如果采用某个开源应用程序或者软件需要对你的网络体系作彻底改变,并且还可能危及网络的安全时,你也许需要重新考虑该软件是否适合你的公司并寻找其替代品。
访问管理
在安装任何开源软件的时候,你应该立即改变所有默认安全设置来阻止黑客的侵入,他们经常能记录普通用户的ID和密码。
同时,如果可能的话,更新开源软件配备的内置访问管理系统。例如,Apache使用的是基本身份验证(basic authentication)和“摘要”式认证(digest authentication)---这些可以很轻易地被黑客攻破,以及使用了一个名为“htaccess”的文件提供密码保护来限制对某些网站目录的访问。好不要单纯的依赖这些,还应该很多更好的办法来限制访问,例如使用Apache的配置文件和安全模块或者使用操作系统锁定服务器本身。
测试和扫描
Fortify软件公司和Ounce Labs公司的工具可以扫描软件的漏洞,另外,SPI Dynamics公司的WebInspect和Watchfire公司的AppScan可以检查出使用Apache或者其他开源软件网站服务器的网站中的漏洞。
总言之,开源的确比对应的商业软件要更安全,但是在对开源软件进行安装、配置和修复时,需要采取一定的措施保证这些过程的安全。资金和资源都非常有限的中小企业应该要比那些较大的公司更适合采用开源软件,他们可以并且也应该这样做。