
一、背景2023年那时候10年左右软件研发经验主做java也会python。我也不记得当时为什么要学习网络安全了可能是觉得很酷不过现在看来有以下三点原因第一提升自己的竞争力做一个懂安全的研发第二打SRC赚点零花钱第三成为一个有研发背景的安全人员。不管是哪方面的原因至少现在已经踏入了安全的门槛。所以我想把我的整个学习经历分享给大家希望对想学习安全的研发有所帮助。二、网络安全第一课网络安全的第一课永远都是《网络安全法》法律的红线不可触碰此外还有《数据安全法》、《个人信息保护法》都读一下吧要有法律意识知道什么能做什么不能做。三、学习思路我的整体学习思路共分为三个阶段理论知识阶段、实战过渡阶段、实战阶段。3.1 第一阶段理论知识阶段我是一个比较喜欢看书的人我觉得书是一个很好的东西它是有经验的人总结出来的并且有一定知识体系循序渐进、由浅入深不建议大家去网上乱搜东拼西凑的不成体系。书可以是纸质的也可以是电子版的我更喜欢电子版的因为用手机随时随地都可以看。那我们要学哪些知识呢对于一个web方向的研发来讲其实是有很大优势的很多东西你本来就会不用刻意去学例如SQL语句、前端js、html等、后端java/python等只是针对可能涉猎不深的领域进行深入补充学习就可以了如网络、加解密等。这里我要说明一下我目前做的只是外网web安全对于其他领域目前还没有深入研究因为web渗透对于软件开发来讲是有很大优势和帮助的学习成本会更低。至于其他领域的安全等学会了web渗透之后再学也会简单些。因为我本身就是一个全栈工程师前后端都会我觉得网络和加解密方面的知识不足所以我对网络和加解密方面的知识进行了深入的学习先补全这些基础知识。安全就是一个综合的学科需要学习的东西很多对于研发来讲就从web安全学起先入门其他的再慢慢学。基础知识补完后我还看了一些关于黑客的书尤其是国外的毕竟某些国家的网络安全事业要比中国早很多年的。为什么要看这类书呢因为渗透思路是很重要的从这些书当中你能学习到一些渗透思路能扩展你的知识面也是有一定帮助的。当然我这里可能也未必涵盖的那么全总之理论知识阶段根据你自身的实际情况缺什么补什么。这个阶段不要着急不要老是着急什么时候才能够实战先把理论知识学扎实了后续实战部分才能够轻松一些毕竟理论才是实践的基础不要忽视理论知识要沉得住气。我在这个阶段其实花了很长时间的因为平时工作忙看书的时间比较少只能把一些零散的时间利用起来一点点的积累我在这个阶段大概花了一年多的时间甚至将近两年都用来看书了。其实书并没有读的很多只是每天能读书的时间极少有的时候每天就读几页。刚开始的时候我也曾想过要放弃总觉得很难后来想想学一学知识终究是只有好处没有坏处的所以就这么坚持下来。所以我给大家的建议是如果你真的想学一个样的东西的时候不妨坚持一下试试万一真的成功了呢我相信时间会慢慢来证明这一点。3.2 第二阶段实战过渡阶段为什么一定要有这个过渡阶段因为你学完理论知识之后你根本没办法应用因为理论和实践完全是两码事比如实践当中我们会在不同场景用到不同的工具我们在学习理论的时候根本就没有接触过这些工具这就需要一个过渡过程这个过程我们主要学习的就是别人的实战经验看别人是如何做的、使用的什么工具、工具怎么用、思路是什么等等。我在这个阶段是这样做的多逛社区看别人发的帖子学习他们的经验。例如奇安信攻防社区、FreeBuf、看雪等可以自行在网上找社区、论坛、博客之类的都是别人实战中的案例可以学习思路利用的工具我在这个阶段收集了很多当下流行的渗透测试工具例如BurpSuite、Yakit、JSSS-Find3.9.9、Dirsearch、御剑后台扫描工具、中国蚁剑、中国菜刀、雪瞳插件、Vue Crack插件等等太多太多了工具很多需要根据实际情况、以及使用场景进行使用。本阶段多收集一些实用的工具并研究一下是如何使用的有些工具也不需要研究的太深功能比较多有些目前用不上等实际使用时用到哪些再学哪些。更重要的是一定要研究并记住别人的渗透思路。我在本阶段停留的时间也比较长因为平时没什么时间可以根据自己的实际情况适当的做一些实战但要注意一定要找一些合法授权的资产例如补天平台、漏洞盒子等也可以尝试去打靶场。本阶段其实可以多打打靶场锻炼一下实战能力我打过一些但觉得没劲也没时间所以不打了。如果你觉得没信心完全可以多打靶场练习练习靶场自行去网上搜索一下多找找。3.3 第二阶段实战阶段实战阶段我主要打的是补天SRC因为时间少所以打一个平台我觉得就够了。平台分有赏金的和公益的刚开始的时候也可以打一打公益的但一定要仔细阅读平台的规则不然你提交的漏洞可能平台不收。先在平台注册账号找到一个合适的厂商并签署协议有授权才可以合法的做测试。如果有org的优先打这类的会好打一些漏洞比较多但是赏金一般不会太高最高可能1000。但是练手我觉得还是挺好的。等经验积累的多了再打其它的先不要挑赏金高的这类的不好打漏洞少难度高。我的第一个漏洞就是org的一个任意用户注册功能但是权限有限评级为中危300块赏金。紧接着第二个漏洞也是同一套系统拿到了高危最高奖金1000。每提交一个漏洞平台先审核平台评级、定赏金、定积分平台审核通过后厂商审核这个阶段厂商会根据实际情况调整奖金、漏洞评级我遇到过赏金降了、漏洞从严重降到了高危没办法。漏洞提交时需要写测试报告内容包括标题、漏洞URL、自评等级、漏洞描述、复现过程、修复建议。复现过程一定要把你的每一步都描述清楚包括怎么发现的一步一步写报告如果写的不好平台会退回如果漏洞等级比较高平台老师可能会加你微信指导你一下我就是这样的提交几次就知道报告怎么写了。把报告写好很重要以后如果从事安全工作也会要求你能写出好的报告。平时利用业余时间多打打SRC很多招聘公司在招聘信息中会写有SRC平台实际漏洞挖掘经验优先。这都是实际漏洞挖掘经验以后找工作也是加分项而且有好的排名会更有优势。平台的积分越多排名越高尽量多赚积分有些招聘信息明确写着有漏洞挖掘平台排名排名太差也拿不出手。如果你在src中遇到了开源平台的通用型漏洞可以上报给国家漏洞中心审核通过后可获得CNVD编号这在面试中都是加分项。如果有能力或者有想法可以针对一些通用组件做审计如果发现通用漏洞可以提交CNVD或者CVE那漏洞编号。四、总结我写这篇文章主要面向的是研发工程师想学安全的所以我的建议是如果你学会了渗透测试想转安全不要只做渗透测试可以学学代码审计因为这是研发的优势能看懂代码。很多做安全的都不是研发转的他们只会渗透测试能做代码审计的一般都是有研发背景的。如果你学会了代码审计你的竞争力会很强能做渗透测试、代码审计、有研发背景薪资会有溢价。代码审计需要学习SDL流程要求能做培训、威胁建模MTMT、静态代码审计Fortify工具、软件供应链检测SCA工具、动态代码审计、人工代码审计、应急响应等这些内容自己学习就可以大部分都是工具的使用这部分内容可以自己上网学习学习把工具学习好把整个流程弄明白。其实能做代码审计的人并不多我遇到过一个公司他们招了一段时间人之后发现真正能看懂代码、审计代码还会渗透测试的人太少了。我也见过有公司招聘安全岗位如果有研发背景也是加分项所以研发做安全还会有好处的。另外对于一些招聘中的加分项如果能拿一定要拿一下比如src平台实战经验、有独立的CNVD/CVE编号如果有想法可以考个证书CISP只是入门级证书对于研发来讲建议考CISP-PTE这个证书更注重渗透测试能力考试时有80分是现场考渗透测试20分是理论知识这些都是加分项能够让你转行变得更容易。但是还是要说明其实招安全类的岗位确实没有研发岗位的多而且一般要求会代码审计的岗位多是比较重要的行业例如银行等金融行业但薪资还可以。而且随着国家越来越重视安全问题我相信将来安全岗位的需求会越来越多所以如果你想做安全类的工作一定要让自己有竞争力不然价值不大。最后祝大家都能学有所成