随着互联网的发展,网络环境越来越复杂,各类软件涉及的领域也越来越多,这时系统与软件的安全问题就愈加重要了。各类隐私信息、财务信息等的泄露,稍有不慎就会造成难以挽回的损失。
所以,大多数的公司,尤其是中大型的公司,已经针对系统与软件的安全采取了很多手段。比如,安装杀毒软件、定期给系统打补丁、定期进行漏洞及安全扫描、测试并封杀应用自身的安全漏洞等等。
虽说这些措施已经可以防止大部分的安全漏洞了,但却还不足以完全保证系统的安全性。这个时候,渗透测试便以其独立的“风姿”出现在了你我的视野里。
那么,接下来我们就一起看看什么是渗透测试,以及具体如何执行渗透测试吧。
渗透测试的定义
渗透测试指的是,由专业安全人员模拟黑客,从其可能存在的位置对系统进行攻击测试,在真正的黑客入侵前找到隐藏的安全漏洞,从而达到保护系统安全的目的。
或许你会有这样的疑问,软件系统在研发阶段已经用了各种手段保证安全性,为什么还需要进行渗透测试呢?
其实,这就好比让开发人员自己做测试一样,虽说他们对自己一手开发出来的软件产品再熟悉不过了,但却也是最难测出漏洞的。因为,开发人员的惯性思维,会使得他们在面对很多的潜在问题时,都误以为这不是问题的,所以我们需要引入独立的测试人员。
同样的道理,面对自己开发的系统,开发人员总是习惯性地去处理比较容易出现安全漏洞的地方,而对于一些隐藏的、不容易被发现的漏洞,却很难发现。
另外,除了惯性思维之外,开发人员通常并不是安全领域的专家,因此往往会缺少专业的安全知识,不了解常用的系统攻击手段,从而导致他们并不能对安全相关的场景进行充分、客观的测试。
这里,为了便于理解,我们可以将软件系统比喻成一座房子。
当房子建好后,我们会为其配备防盗门、防盗窗,甚至是安全警报器等,这时我们自认为这个房子足够安全了。但,我们永远都不知道,意图侵入者会使用什么样的方式找到漏洞从而攻克我们布置的安全防线。
所以,为了保证这座房子足够安全,我们会考虑聘请外部的安全专家来进行一系列的检测。比如,检测防盗门是否足够牢固、门锁是否容易被破坏、报警器是否在发生异常时能够正常发出警报、窗户和通道是否容易被侵入,或者从根本上判定我们所布下的安全防线,在安全机制上是否存在系统性的问题,以及需不需要更新等等。
我们甚至可以找人模拟入侵这座房子,在这个模拟过程中,由其发现这所房子是否还存在安全漏洞,以此验证房子真实的安全性。
那么,这个由外部的安全专家验证房子安全性的过程,便可以说是对这座房子进行渗透测试的过程。其中,这个房子便是我们的软件系统;而我们为验证房子安全性采取的这一系列方法,就是我们所说的安全渗透测试。