马克·吐温和理查·芒格说过:如果你身上唯一的工具是把锤子,那么你会把所有的问题都看成钉子。网页防篡改产品诞生之初就是这样一个情形:一个产品只采用一种防护手段。这些手段有的是依托于厂商掌握的先进核心技术发展而成,有的是在成熟技术基础上稍加改变而实现。无论采取哪种防护手段,厂商往往会过度强调其普适性和有效性,一招鲜吃遍天。
网页防篡改产品发展到中期,大家意识到:防止网页被篡改是一个综合性和系统性的目标,并没有一个单一、直接和普适的防护手段能够达成这个目标。其根本原因在于:网页被篡改只是问题的表象,其形成的根源则是多方面的:篡改的动机、节点、时机、手法各不相同,网页防篡改必须多管齐下综合治理。于是,主流产品中加入了更多的防护手段并进行迭代优化,以期达到全面的防护效果。
网页防篡改产品发展到成熟期后,新的问题又出现了:
- 产品中虽然具备了多种防护手段,但它们是零散作用的,并没有一条主线把它们串联起来;
- 由于网页防篡改产品的演进历史,产品过于关注具体的防护手段,而忽视对防护目标的特性的分析;
- 一个具体的防护手段并非适合于所有防护目标,不当的配置不能起到防护作用;
- 一些重要的防护目标并没有根据其特性采取最合适的防护手段,没有达到最佳的防护效果。
产品如果只是简单的功能堆砌,没有提供一个内在组织线索的话,其有效性就高度依赖于实施人员的经验和责任心,之后的长期管理和运维更无迹可寻。
天存信息决心改变网页防篡改产品重手段轻目标的设计思路,放弃传统的以防护手段为核心的设计,转而以防护对象作为设计核心。在新近发布的iGuard 6.0网页防篡改系统中,一切功能都是围绕着防护对象进行的。防护对象并不是作为标签随意设置,而是进行了有序组织,归纳了其各维度的特性,进而提供差异化的防护手段。
具体来说,iGuard 6.0对防护对象进行了分类,比如:
-
网页文件
站点的拥有者发布的可被Web访问的文件 (如网页、脚本、图片和文档)。 -
上传文件
站点的外部用户上传的各类资源文件 (如图片、文档)。 -
动态文件
站点运行过程中自身产生的辅助文件 (如计数器、动态数据、用户配置)。 -
配置文件
站点运行所需的由管理员维护的配置文件 (如中间件配置、应用配置)。
对于每种类型的文件,我们从外部可访问、内容可控、内容可理解、变动频度等维度进行了总结。此外,我们可以看到,iGuard 6.0不仅对文件进行了分类,并扩大其保护对象的范围:它不仅保护网页文件本身,也保护网站正常运行所需要的关键文件。
在iGuard 6.0中,我们对防护对象进行了全生命周期的防护,其最重要的一环是明确防护对象从哪里来即更新方式,举例如下:
-
可信更新
使用iGuard同步机制进行更新,能够保证传输的可信和可靠并可以自动恢复。 -
中间件更新
由站点所基于的Web中间件软件进行更新,其他应用程序的修改均不可信。 -
指定更新
由用户指定一个或多个特定应用程序进行更新,其他应用程序的修改均不可信。 -
随意更新
可能以各种方式进行更新。
有了对防护对象的分类和多维度特性特别是更新方式的确定,我们才有依据为防护对象选取合适的防护手段,也能够对其进行跟踪和管理,真正达到全面、可靠和持续的防护效果。具体的防护手段不是本文的重点,故不赘述。
iGuard 6.0 之所以有能力转变为以防护对象为核心,依赖于天存信息掌握了所有主流的防护手段,能够应付各种防护场景。更重要的是,通过对超过5000家各行业各规模的用户网站的服务实践中,积累了大量的各种架构下的网站文件画像,能够归纳出防护对象的适当维度并进行特性总结。
未来,天存信息将进一步加强和优化防护对象的梳理过程,加入自动扫描、智能分析等特性,真正实现网页防篡改以防护对象为本。(黄伟 | 天存信息)