标签:
业务安全杂谈 |
独家供稿:移动Labs
前面的几期已经概要性地说明了业务安全的“三步走”方法,也比较全面地说明了应该如何实现业务的安全性。但我们如果从攻防两端考虑,“三步走”的方法应该说比较适合业务的设计,即“防”的这一方面;如果作为一个业务的管理者或者安全检查人员来说,按照上面的“三步走”就不是很适合了。因为他们可能并不关注或者根本无法关注业务的实现过程,只将业务作为一个对象来考虑其安全性。这种情况大量出现在项目的外包或者是独立的第三方检查工作中。
在这里,我重点从两个维度来进行安全测评的工作。一方面是在业务上线之前进行安全检测;一方面是业务上线之后进行安全评估。为什么做这样的区分呢?主要是从业务自身的运行规律来考虑。
(1)在业务上线/验收完成前,一般来说都要进行功能、性能方面的检测,对于重要的业务,则需要在该阶段增加安全性检测工作。在该阶段,业务属于开发基本完成但尚未上线,因此在检测过程中可以采用任意的方式进行。只要能发现安全漏洞,所有的方法与工具都可以用上。通俗的来说,白盒、黑盒、灰盒的检测技术都可以使用,也能有针对性地查看设计开发文档进行检测。
(2)在业务上线后,在安全检测方面就受到了一些局限性,例如:因为代码已编译,不能对被检测对象进行白盒检测;不能对系统进行具有破坏性质的检测,不能干扰业务的正常运行;不能在已有的业务上进行桩程序(外挂程序)的安装;等等。因此在业务上线后进行的安全工作主要是黑客模式,通过外围的方式进行。当然,一些运维管理方面的安全性(广义业务安全)在上线后的检测更准确,而这一些也是非常重要的。
检测项目 |
上线前 |
上线后 |
业务设计缺陷 |
是 |
是 |
业务逻辑漏洞 |
是 |
是/受限 |
系统安全能力(支持的安全机制、配置等) |
是 |
受限/否 |
接口/数据传输安全性(抓包Fuzz等) |
是 |
受限/否 |
编码安全性 |
是 |
受限/否 |
软件自身安全性 |
是 |
是 |
… |
… |
… |
管理机制安全性 |
受限 |
是 |
主机安全 |
受限/否 |
是 |
网络安全 |
否 |
是 |
… |
… |
… |
通过对比可以看出,上线前的安全检测重在检测系统自身的能力与功能,而上线后的安全检测重在检测安全配置与运维管理。这两个方面都非常的重要,因此在有条件的情况下应尽量做好两个方面的安全检测工作。为了在说明时将二者进行区分,我称上线前的安全检测为安全测试,称上线后的安全检测为安全评估。其实在实际使用的测评方法上,二者没有明显的区分,只是为了说明的方便在描述上有所不同而已。
另外一个非常受关注的问题就是执行业务安全测评有没有专用的工具,我认为进行业务安全测评没有专用的工具。因为业务的特性是“个性化”,那么就很难有一款通用的工具满足个性化的需求,因此在进行业务安全测评的时候使用的工具就是常用于应用层分析的工具。而与网络主机扫描、web编码扫描工具不同的是,由于业务的个性化,在业务逻辑、接口等安全测评中,必须要有人工参与,与工具配合进行检测。例如笔者经常使用的一些工具包括:客户端逆向分析工具、抓包工具、数据包修改与编辑工具(一般是web数据包)、代码检测工具。
需要特别说明的是,业务安全检测发现的信息可能需要进一步利用时需要使用到其他的工具。例如在已有的一个检测中,我们通过逆向数据发现了一些内置的url(硬编码);进一步对这些url进行手工分析,发现了路径遍历的漏洞;然后对所在的主机及web进行扫描发现了更多的漏洞,最终控制了整个业务系统的主机。
好了,今天就先到这里,下期再见。
本博文发表在移动Labs的文链是:http://labs.chinamobile.com/mblog/2295/184944
【相关博文】
业务安全粟论(七)——第三步:实施加固
业务安全粟论(六)——第二步:制定安全防护方案
【精彩推荐】
二十一世纪最性感的职业:数据科学家
交互设计是一种思维过程
神奇!这个行李箱会自动跟着你走
二维码的未来
【讨论】PC 市场正在萎缩 鼠标会不会消失?