15.2.3 数据修改

尽管数据丢失可能具有破坏性,而数据修改则可能更糟。如果一个人得到系统访问权并修改文件将是什么样的情况呢?尽管大规模删除可能会被管理员注意到,也可以从备份恢复,但是要多长时间才能注意到这些数据修改呢?

文件修改可能包括对数据文件的修改和对可执行文件的修改。一个入侵者修改一个数据文件的动机可能是要涂改网站或者获取非法利益。而使用旧版本的可执行文件代替一个新版本的可执行文件,可能给入侵者提供一个网站秘密后门,以便将来访问或获取更高系统权限。

可以通过计算一个签名来防止数据在网络传输过程中被人修改。当然,这不能阻止别人修改数据,但是如果文件到达的时候,接收者检查签名仍然匹配,那么他就知道文件是否被人修改。如果数据经过加密以防止未授权用户浏览,使用签名还使得它很难在传输途中在没有监测的情况下被修改。

保护服务器上的文件以防修改要求我们在操作系统中应用文件权限,以防止未授权的访问。使用文件权限,系统可以授权用户使用系统,但不是给用户修改系统文件和其他用户文件的权限。Windows 95、Windows 98和ME都缺少基本的权限机制,因此这也就是它们不适合作服务器操作系统的原因之一。

检测修改可能是很困难的。如果在某种程度上意识到系统的安全已经遭到破坏,那么如何知道重要的文件是否已经被人修改了呢?有一些文件,例如保存在数据库中的数据文件,它会在一段时间后就被更新。许多其他文件则从安装起就保持原样,如果没有专门对它们进行升级的话。修改程序和数据可能是阴险的,但是尽管怀疑发生了修改,程序可重新安装,但是我们很可能不知道哪个版本的数据是“干净的”。

文件的完整性评估软件(例如,Tripwire)记录了安全状态下的重要文件信息,它很可能是在安装之后立即记录的,而这些信息可以在过一段时间后用来验证文件是否已经被修改。可以从下列网址下载其商业版本或者有条件的免费版本:http://www.tripwire.com