📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)
📝 职场经验干货:
我们测试人员在执行安全测试或者渗透测试的时候,大部分都会遵循一个流程化的方案,打个不太恰当的比喻,基本上就是流水线的工作,先做什么,再做什么,最后在出个报告,问题解决了,再迭代一次收尾。
这样看来总觉得哪里不对劲,按理说安全(及渗透)测试的任务是发现系统潜在的漏洞,目的是防止骇客入侵,这个任务能不能达成最终目的,骇客是不是也和我们一样工作,笔者有把握说一定不是。
为什么笔者有把握说一定不是?因为如果我们的工作真的可以防止骇客入侵,那么就不会有红蓝对抗,护网行动了,而这两项工作又和我们测试人员关系不大。
尤其是现在的生产环境的前后端软硬件防御方案,已经把系统围的和铁桶似的了。在这种环境下如果还有哪个骇客敢正面进攻,只有两种情况,一是勇,二是愣。
勇,是人家有信心,也许防御方案中的某个关键部件就是人家做的,这个很好理解,造锁的一定能开锁,我加密的数据我一定能解,开源项目这么多,大部分公司都唯开发论,拿过来就当成自己的用,不重视测试,最终的系统防愣不防勇,也算活该。
笔者作为一个测试人员,想谈谈如何“击败”骇客,这个“击败”有两个层面的意思,一是挡住骇客的攻击,二是在挡住骇客攻击的同时给他一击。
思考这个问题实际上可以给我们测试人员一个思维上的提升,并且在讨论系统部署方案,甚至设备选型的过程中有一定的发言权。
单纯的讲这个问题可能会很枯燥,那我们就围绕一个案例场景去展开,可能会有意思的多。
思考这么一个特殊的场景:
目标人物在某咖啡店喝咖啡,手机放在咖啡桌上,在不接触目标人物的前提下,通过技术手段入侵目标人物的手机并成功发送一条短信。如果你是一名黑客,你的入侵思路是什么?
这是一个看起来非常戏剧化的场景,但却是真实世界有可能发生的事件,想象一下案例中的目标人物有可能是运维人员,甚至公司的CEO,事情是不是变得有趣起来了,围得和铁通似的系统,在内部被瓦解了。
其实这个案例场景也可以告诉我们现在的骇客团队的攻击方向是很多元化的,以前那种愣的做法,直接正面进攻打穿系统,植入反向通道的方法,成功的概率已经越来越低了。
在接下来内容中,我们首先会从多个角度分析骇客的行为,看骇客可以通过什么方法来达成案例中目的,接着简单讨论一下被动防御策略,就是挡住骇客攻击,然后再讨论一下主动诱捕策略,也就是给骇客一击,这块内容中笔者会以自己开发的模拟系统为例,为大家简单直观的展示诱捕策略的应用。
骇客的行为分析
我们在分析这个案例之前,必须先明确三个问题。
第一个问题就是:骇客的目的是什么?
如下图1-1所示。
图1-1 骇客的目的
所有骇客的目的总结一下无非就是上图中的三个,即破坏、窃密和控制。结合本案例,骇客要想利用目标人物的手机发送一条短信,首先就要控制目标人物的手机。
第二个问题:骇客的能力是什么。
如下图1-2所示。
图1-2 骇客的能力
通过本案例,骇客必然要进行信息收集和信息分析,才能确定目标人物,并进行有效的策略设计,最终达成目的。
这里讲的策略设计不是简简单单的黑客工具的使用流程,更复杂,原因就是现在的网络环境以及终端设备的复杂性,导致几十年前的那种孤狼行为的成功率越来越低,现在都是团队化的骇客,为了一个高价值的目标,长期持续地进行隐秘的试探和攻击,也就是所谓的APT(Advanced Persistent Threat,高级持续威胁)。
接下来是技术研发,这也是必不可少的能力。这里所说的技术研发可不单单指使用某个开发语言的编程能力,这是属于软件方向的能力,还有硬件方向的能力,有些在软件方向解决不了的技术问题,可能要靠一些硬件工具去实现。
举个例子吧,像是破解一个设备,这个设备可能是玩游戏的,通过软件层面去破解可能非常复杂,也许根本不可能,但是通过更改设备主板上的某个电路,就可以轻易的绕过它的加密屏障,但这也是破解设备不耐用的原因,所以大家要支持正版。
最后是资源配置和资源利用,资源是广义的,一个匿名的服务器,一个网站等等都可以是资源。
第三个问题:骇客的原则是什么?
如下图1-3所示。
图1-3 骇客的原则
这三个原则除了可控以外其他应该都很好理解,可控举个例子讲就是你别发动一个洪水攻击,或者叫什么高中低端离子炮,把关键路由都堵塞了,造成了大范围的影响,这个时候就只能卷铺盖跑路了,意思就是别做不能控制的事情,别得罪不能得罪的人。
其余两项都是保证他安全的,毕竟骇客行为可不是什么好行为,本质上和偷、盗没什么区别,所以羡慕骇客的都是小孩子,受哪些无聊影视剧的影响,成年人没人羡慕他们。
接下来我们看一下骇客的思维,也就是他是怎么想的,如图1-4所示。
图1-4 骇客的思维
骇客的思维简单的归纳就是确定攻击面,细分攻击点,实际上根据骇客的思维就能确定相应的防御方案。
好了,现在我们知道了骇客的目的,骇客的能力以及骇客的原则,并且知道了骇客的思维,所有的准备工作都就绪了,已经可以解决案例中提出的问题了。
大家可以展开想象,但记住要用技术手段,不能是暴力手段,不能把目标人物按在地上,逼着他用手机发一条短信,因为要站在骇客的角度,所以必须坚持骇客的原则。
其实根据骇客的思维,手机就是一个显而易见的攻击面,根据案例场景要在不接触目标人物的情况下控制他的手机,那就要确定手机有哪些对外通信交互的功能,这些功能就是攻击点。
第一个就是WIFI,第二个就是蓝牙,而且有些型号的手机WIFI和蓝牙走的还是同一个电路,当然这涉及到硬件,就不展开太多了,除了这两个,还有GPS,NFC(这个距离最短),基带(收发射频信号的,就是管通话的)等等。
案例中的场景还有一个特殊要求,就是控制他的手机还要发送一条短信,我能想到的有三个方向。
第一个方向
就是根据骇客的能力进行信息收集和分析,确定目标人物所使用的手机操作系统及其版本,再通过特定的技术手段向目标操作系统植入一个特定的APP来达到目的,所以说陌生的APP不要装,申请过多权限的APP要警惕。
第二个方向
这个方向要求骇客的技术研发能力非常高,估计要配合技术数段和社工手段才能做到,就是让目标人物的手机刷入一个定制的操作系统,开源的操作系统大家都可以下载编译,只要在操作系统的内核中做做文章,别说发送一条短信了,他在手机上的所有操作都在骇客的掌控之下,所以说刷机也要小心,尤其是找别人远程刷机。
第三个方向
涉及到硬件,当然不是说让你做个手机了,也许是一个U盘,这里就不展开讲了,陌生的U盘尽量不要用。
以上说的只是按照骇客的行为分析,根据案例场景得到的一个思路,实际执行起来非常的复杂也不一定能成功,大家也不需要过渡小心,除非你真的觉得自己是特别有价值的目标人物。
被动防御策略
针对骇客的被动防御策略就非常简单了,大家在工作当中也应该都接触过,如果经历过等保测评的话,了解的就更深。
基于系统层面的被动防御策略无外乎就是通过部署各协议层防火墙和入侵检测设备,基于特征和行为对可疑流量进行监控和阻断,这个时候溯源骇客主要靠日志记录,我们根据上一节内容中讲的骇客原则可以知道,骇客会使用各种跳板和匿名资源来保护自己,因此这种基于事后的防御策略进行溯源的难度较大。
基于系统层面的被动防御策略虽然溯源的难度较大,但是完整的防御策略已经涵盖了安全的方方面面,系统层面只是其中的一小部分,完整的安全包括:物理安全,网络安全,主机安全,应用安全,数据安全及备份恢复,这里除了物理完全,其余几个安全基本上是骇客攻击的四个方向,其余还包括安全管理制度的建立,这个就是管人的了,是骇客社工的方向。
安全管理制度与我们测试人员关系不大,而且也太冗长不好总结,但是被动防御策略里面引入的相关安全设备,我们需要了解一下,在执行安全测试,尤其是渗透测试的时候会接触到这些设备。
物理安全里面的防盗窃和防破坏的设备、防火设备、温湿度控制、物理访问控制设备、防水和防潮设备和电力供应(就是UPS不间断供电)了解一下就好。
其余的包括:
访问控制设备
如:防火墙,如果是网站系统,需部署WAF即WEB应用防火墙,及防篡改系统等
边界性完整性检查设备
就是防内网用户私开通道连外网,像准出控制设备。
入侵防范
如:IDS入侵检测和IPS入侵防御等设备。
安全审计设备
如:日志审计系统,数据库审计系统,日志服务器等。
恶意代码防范设备
如:网络版的杀毒软件。
备份和恢复设备
如:数据备份系统,异地容灾,虚拟化的漂移。
网络和系统安全设备
如:相关的漏洞扫描设备。
结构安全设备
这是系统部署方面的,如:负载均衡设备。
资源控制设备
如:运维管理系统。
网络设备防护
身份鉴别设备,如:堡垒机+Ukey认证。
除了以上的这些设备,现在还引入了人工智能。大家觉得谁还会拿个工具就正面进攻,那就只剩下愣的了,网上愣的人还不少,下载一个装满黑客工具的操作系统,就觉得天下无敌了,殊不知那些黑客工具的流量早就被防火墙标识了,最终就玩了个寂寞。
因此笔者在这里建议对这方面技术感兴趣的朋友,本身又从事的测试工作,可以系统的学习一下安全测试,使用正规的测试工具,自己编写测试脚本,这里和黑客工具的区别就是,本身不对系统产生任何危害,点到即止,而且是在授权的情况下进行,安全可控。
话说回来,网上愣的人这么多,虽然对系统造成不了太严重的危害,可是也会消耗一些资源,那就通过下一节要讲的内容,给他一击,“鼓励”一下技术不到家还这么有勇气的行为。
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】