一名合格的 web 安全工程师是要具备很多的知识点, 不但要对网站架构熟悉, 通讯协议, 测试流程与测试工具使用, 漏洞利用脚本编写, 还有需要经验的积累等.
互联网进入下半场, 竞争越发的激烈, 能与人工智能比肩的热门职业已然不多. 而互联网越发达, 各大企业所面临着各种网络安全问题会越发的严峻, Web 安全工程师的人才缺口仍在不断扩大. 经济理论揭示了需求大于供给时, 供给方必然涨价的市场定论, 也为此奠定了 Web 安全工程师高薪资的市场基础.
安全技术是一个完全可量化的技能, 随着 Web 安全技能的不断提升, 可预见的月均薪资水准也将水涨船高.
图 1: Web 安全工程师整体月均薪资分布
Web 安全工程师必备技能
一名合格的 Web 安全工程师是要具备很多的知识点, 不但要对网站架构熟悉, 通讯协议, 测试流程与测试工具使用, 漏洞利用脚本编写, 还有需要经验的积累等, 每一项能力中都是需要精心细琢, 深度研究, 才能进阶到一个更高的程度, 过程中少不了前辈的引导, 个人的努力和坚持.
1. 基础网络协议 / 网站架构
互联网的本质也就是一系列的网络协议, 不管是 C/S 架构还是 B/S 架构都是基于网络通信, 渗透人员需要了解到通信流程以及数据包走向等, 才能使用相应手段跟工具去做渗透. Web 网站常见的协议以及请求方式, 这些在做渗透的时候必不可少的. 甚至也是可以利用协议来做渗透测试. 所有的知识都是息息相关的, 必不可少.
2. 基础的编程能力
一名 Web 渗透测试人员必须具有有一定的基础编程能力的, 每天都跟代码打交道, 如果不会写代码或者看不懂代码, 十分吃亏. 例如需要自己写一款适合此刻情景漏洞的工具, 如果不会写会极大降低效率. 再者就是关于后续进阶的代码审计问题, 如果不会写代码, 代码也看不懂那么就不知道怎么从源代码去审计漏洞去发现原因. 对于只会利用工具的渗透人员跟会写代码的渗透测试人员来说, 在遇到某种情况下, 优势一下就能体现出来了.
3. 渗透测试工具
渗透测试工具网上开源的很多, 作为渗透测试人员会使用渗透测试工具这是必不可少的. 一些优秀的工具要学会利用, 还有就是要学会自己写工具. 例如在做渗透测试中, 好比说大量的数据 FUZZ, 如果说人工操作将大大浪费时间跟效率. 如若网上的工具不符合此漏洞的情景, 这时候就需要自己手动写工具去调试. 当然网上优秀的工具已不少, 优先使用会极大提高我们的效率.
4. 了解网站的搭建构成
试着去了解一个网站的形成架构, 语言, 中间件容器等. 如果不知道一个网站是如何搭建起来的, 那么做渗透的时候根本就没有对应的渗透测试方案. 例如一个网站采用了某种中间件, 或者什么数据库, 再或者是采用网上开源的 CMS. 如果对于这些不了解, 那么就只能在网页上徘徊游走, 甚至无从下手. 了解一个网站的搭建与构成, 对于自己前期做踩点与信息收集有着很大的帮助, 才能事半功倍.
5. 漏洞原理(重要)
渗透测试人员肯定是要对漏洞原理去深入研究探究, 这样会从中发现更多有 "趣" 的东西. 所有有 "趣" 的东西是可能你在原有的基础漏洞上配合其他漏洞, 从而达到组合漏洞, 这样效果有可能会更佳, 不过不去了解漏洞原理, 漏洞产生, 不去从代码层出发, 那就不知道漏洞起因, 到后期的渗透利用以及修复方案, 就会显得吃力, 这时候有可能你就需要去查资料, 从某种形式的降低了速度与效率, 所以, 知识与积累必不可少.
6. 报告撰写能力
每次做完渗透测试之后, 都是需要一个渗透测试报告, 所以报告撰写能力也是不可缺. 对于自己漏洞挖掘的梳理, 网络结构印象加深, 这是后期与客户沟通还有与开发对接提修复建议能起到很大的帮助, 这些细小的细节决定着你服务的质量与你的责任感, 所以这些都是需要不断的积累与提升的一个过程.
入门 Web 安全工程师的学习建议
对于想要入门 Web 安全的同学来说, 学习过程中, 尤其是前期学习千万不要放弃. 同时, 学习的过程中要记录图文并茂的笔记. 作为知识的积累, 最重要的进行实践, 实践, 实践! 在实践中发现问题, 解决问题, 安全非一朝一夕之事.
...
来源: http://netsecurity.51cto.com/art/201812/588274.htm