对,你没看错。我不推荐大家去做安全测试工程师。
为什么不推荐大家去做安全测试?
今天,很多软件并没有经过专门的安全测试便运行在互联网上,它们携带着各类安全漏洞直接暴露在公众面前,其中一些漏洞甚至直指软件所承载的核心敏感信息或业务逻辑。这些漏洞一旦被不怀好意者利用,很可能会给企业造成经济损失,带来负面声誉影响的同时,还可能被起诉遭到罚款等等,细思极恐。其中的一部分原因是企业本身安全意识不强,但是很多时候虽然软件企业已经开始意识到这些问题,却苦于缺少专业的安全测试人员,他们不得不冒着极大的风险先上线赌一把运气再说。
看到这里你可能会说:正是由于这样的情况,所以我们才要去做安全测试啊!
我在这里先不评价这个想法对或不对。要想知道为什么,请继续往下看。
我先来介绍一下神秘的安全测试:安全测试在软件测试里面是一个很特别的科目(“工种”),每次一碰到这个科目,很多人都觉得这个科目应该全权交给神秘的安全测试人员来管。这一个观念导致很多测试人员徘徊在安全测试的门口却迟迟不进去。
安全测试是非常复杂的,相信大家都没有异议。一个专业的安全测试专家在某种程度上来说是一个全栈工程师。所以,想要在安全测试上一夜成才很难。虽然,作为测试人员的我们却有得天独厚的优势,使我们能够在安全测试上快速起步,帮助团队尽快展开预防并检测安全漏洞的工作。
作为一个安全测试人员,你需要具备什么专业素养呢?
-
要使用别具一格的视角来审视需要测试的软件
这种能力说难不难,说简单却绝不简单。举个栗子:假设你正在测试一个web应用用户登录界面,你输入错误的用户名时提示“该用户名不存在”,你输入正确的用户名但是错误的密码时提示“密码输入错误”。这时你没有任何想法,一掠而过。但是作为一个安全测试员他会说:敏感信息暴露了,提示信息需要修改!为什么?!!因为通过我们的提示信息,恶意用户可以推测出哪些用户名已经存在于系统中,然后利用这些用户名再进行密码的暴力破解!
-
要改变测试中模拟的对象
软件测试人员通常会模拟普通用户的操作来测试软件,而安全测试员则需要模拟hacker来测试软件。这里说一些题外话,零几年软件测试岗位就开始出现了,大家有没有想过那批最早从事软件测试的人都去哪儿,干什么去了呢?
“黑帽子”和“白帽子”
那时候软件测试还没有这么专业,测试人员大多什么都需要会一点儿,做这一行的都是真心喜欢测试的,钻研技术的人也比较多。由于经常找BUG,对软件的漏洞测试人员也一清二楚,早期的软件测试人员有的做了“黑帽子”,有的做了“白帽子”。而安全测试员就是由白客发展而来的。
-
使用专用的测试工具
在具体做安全测试的时候我们会发现并不是那么容易去模拟恶意用户的行为。毕竟系统的前端会给我们很多的屏障。而且恶意用户可不总都是从系统前门进去的。这时候,使用一些工具,比如OWASP Zap、Burp suite等是非常有帮助的。我们可以在系统界面上执行功能测试的用例,用这些工具来获取http请求,篡改后发送给后台服务器。有了这些实用又比较容易上手的工具,就可以执行很多恶意用户的操作场景了。
Burp Suite
OWASP
一般来说,具备以上三点你就可以开始进行初步安全测试了。
现在我们可以回到文章开始的地方。文章开头的那个想法在读完上面的内容之后你会发现,它是对又不对的,很矛盾。确实由于很多公司不注重安全或者由于成本原因舍弃了安全保障,往后会需要更多安全测试员去进行安全测试。但是一个没有安全测试思考力的安全测试员他真的能胜任这份工作吗?
然而现实是:
-
一个安全测试工程师曾告诉我:他们公司安全测试岗位和其他岗位的比例为1:500。为什么?因为大公司的程序都是由很牛逼的开发做出来的,本身就已经有一定的防御能力,漏洞也不多,安全测试员的工作就是找出可能存在安全隐患的地方然后再由开发补上。一定程度上来说软件已经算是固如金汤了,一个hacker真想找出漏洞,花费的时间和精力绝对是要翻倍的。你觉得一个公司需要这么多安全测试工程师吗?
-
现在的情况是大公司才需要安全测试保障程序安全。小公司的想法是只要实现了用户需求就万事大吉了,何必花费大成本去保障安全呢?
-
作为恶意用户,即hacker,他会花时间去“黑”一个小公司?不会,因为那对于他来说根本没挑战,也没意义。
说到这里,我终于可以说一句:不推荐大家去做安全测试。这是建立在上文的分析之后的出的结论。很多人可能觉得安全测试工程师很高大上,薪资也非常可观。但是你也要看清行业的现实状况,不要一头雾水就扎进安全测试的圈子,到头来芝麻和西瓜都丢了,不值得。
最后也要声明一下,我绝不是反对大家做安全测试。如果你对安全测试很感兴趣,也有安全测试工程师需要有的独特的思考视角,能够沉下心来认真学习。那我非常推荐你去做安全测试,因为那才是适合你的工作!那才能证明你的价值!那才Cool!
还有,对测试感兴趣的小伙伴,可以加1007119548一起交流,有免费的自动化、性能测试资料提供学习,希望能帮助到需要的你~
那么,你还会选择去做安全测试工程师吗?
所以说,你还会向安全测试工程师靠拢吗?