Sunday, June 5, 2016

如何成为安全专家?

作者:Pnigos
链接:http://www.zhihu.com/question/23073812/answer/23563575
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

问题中“黑客”这词用的有点大,因为黑客代表的不仅仅是专业技术上的造诣,更包括了思想,思维,甚至是一种精神。
如今娱乐化严重的安全圈,“黑客”二字早已成为了面子工作者嘴里的谈资。
========================================
牢骚完了,下面根据上面说的分几方面说如何向着“黑客”努力。
有关技术:
现在获取信息的渠道越来越多,每天新增的技术文章早已超出了人能够处理的能力范围,如何发现精华,筛选,归类这些信息是很重要的工作。
本人较关注Web及移动安全,以下以此方向举例
1,Twitter:首先定位一个你关注的方向,比如前端黑客,选一个关键词,不要选那种假大空的XXX Security,因为这种定位出来的信息一般都是扯淡类型的,选一个技术点:比如CSRF,DOM XSS,CSP Bypass,XSS Vector,去Twitter搜,看聊这些话题的人,一个一个翻,看他们的历史tweet,如果你感兴趣的比较多,那么关注之。然后一个一个过你关注的这个人所关注的人,然后重复上述步骤。求精不求多,关注几个领域内的巨牛,他们的信息就足够你消化的了。
比如Web安全方面我关注了(本人@pnig0s):
@k3170Makan (Android Security CookBook的作者,之前也是Web安全领域的牛,专业挖Google漏洞30年)
@irsdl (Web安全领域大牛,来自NCC Group)
@lcamtuf (Web安全,漏洞挖掘的神牛,来自Google安全团队)
@bulkneets (日本友人,前端安全牛,国外多个漏洞奖励计划榜上常客)
@kuza55 (低调,总之牛就对了)
@kkotowicz (专注HTML5安全,大牛一枚,BlackHat等会议演讲者)
@0x6D6172696F(专注XSS)
@shreeraj(前端神牛,多本Web安全书籍作者)
.......等等
2,Blog:
不同领域的大牛都有自己的博客,所以,尽情的去挖坟吧。不要觉得人家文章过时了,没有意义。红遍大江南北的Struts代码执行漏洞也是被挖坟挖出来的,Android WebView任意命令执行漏洞也是11年就被研究出来了。所以,牛人的Blog很多几年前的东西现在看还是超前的,这不是盲从,谁挖谁知道。很多国内的牛都是读完了国外的Paper,总结一下,发散一下,然后发到国内来充大头的。
我用的订阅器是Feedly:
当然这些订阅我不会都看,每天会一目10行的过未读条目,如果标题第一印象我感兴趣,那么才会点进去看看,而且最关键的是一定要符合近期的研究方向。(订阅的内容本答案包括了一部分)
3,邮件列表及讨论组:
1)SecLists.Org Security Mailing List Archive
2)groups.google.com/forum
3).....
4,安全文档Paper汇总:
SecWiki-安全维基,汇集国内外优秀安全资讯、工具和网站
IT Security and Hacking knowledge base
安全文章 - FreeBuf.COM
WooYun知识库
5,多找或制作思维导图(梳理思路):

二,安全资讯:
保持阅读安全资讯的习惯对于开阔视野,发散思维,提高创新的能力都是非常有帮助的,时常关心一下国内国外有哪些新的安全事件。通过安全资讯了解到一些你感兴趣的点,进而深入研究。要知道,资讯的传播速度和范围都要远远优于技术分析文章,所以先有技术资讯,后才有技术分析。如果一个不关注资讯信息的人,又怎么能知道在其所关注的领域有哪些创新的研究成果呢。
推荐:
作为FreeBuf的掌柜之一,我继续厚着脸皮推荐,因为我对内容有信心。
FreeBuf.COM关注黑客与极客
Cyber War News
Help Net Security
The Hacker News
Threatpost | The first stop for security news
FreeBuf部分稿源翻译自以上站点及Twitter实时安全动态,所以你们懂得。

三,提升能力
1,想成为黑客,不能只关注在技术上,思维方式很重要,而且一定程度上决定了你牛的程度。技术其实就那些东西,牛和不牛之前相差的不是技术,是经验,而只有丰富的经验才会产生丰富的思路。所以我们不要总和技术点过意不去,一遍一遍的去重复一些我们已经掌握的技能。
以基本的数据库安全举个例子:
  1. 第一天我学会了简单MySQL注入
  2. 第二天我学会了MySQL注入的基于时间,基于布尔,基于报错的注入读库,表,列,数据。
  3. 第三天我学会了通过MySQL读数据库路径,工作目录,服务端IP,链接端IP
  4. 第四天我深入了解了MySQL4,和5数据库结构组成的差异,知道了数据库账密存哪儿,Hash是什么类型加密的,不同版本加密方式有什么不同,怎么破。
  5. 第五天我学会了如何通过MySQL提权,在什么条件下提权,不同版本下提权方式有哪些不同。了解提权细节,如何写dll,加自定义函数。
主线大概是这样,然后,就是在一次次的实战去填充优化各种细节了。比如MSSQL,Oracle,无非是重复以上的步骤,MSSQL你还要知道各种存储过程哪些和安全有强依赖,哪些存储过程在什么权限下能够使用,默认哪个版本的哪个权限能操作哪些存储过程,这些都是细节,所以开始学习的过程中完成主线的任务即可,千万不要陷入细节中,否则容易走火入魔,万劫不复。比如Oracle相关的安全问题,研究过的人大概都会说“What a mess!”

2,多实践:
比如研究个DOM XSS,看了很多paper还觉得太乱,没法贯通,怎么办?写个DOM XSS检测模块出来,在这个过程中会逼着你自己去了解透彻,一步步实践,一点点清晰。最后完成的时候,一切都通透了。读的再多也是别人的知识,实践到手上才能转化为自己的营养。一遍遍说,但只有做下来的人才知道它的意义。

3,多总结:
写Blog也好,写Note也好,或者总结成正式的paper也好。要不停的做笔记,总结,总结是一个提炼,回炉重造的过程,读进脑子里的是别人的语言,自己总结出来的是自己的语言,更便于记忆和理解。一遍遍说,但只有做下来的人才知道它的意义。

==============================================================
写到最后我感觉已经跑题了,总之知识的来源真的不需要太多,也不用过分关心。不同的时代知识的来源各有优劣,但却总能造就出牛人,关键就是能够踏实下来做,你不停的做下去,知识也会不停的涌现出来,不用刻意的去找。
引用heige的一句话“整就牛。”
再引用某人的一句话“能安静下来做事的人会成为大牛,能随时随地安静下来做事的人会成为大神。”
==============================================================
【2,31UPDATE】
很多人问我要RSS订阅的列表,我先给份儿公开的BookmarksList
不经过自己辛勤整理出来的东西自己也不会去认真看的,上面那份非常完整,我收藏了但基本不会看,因为我没怎么付出。反而经常看我自己整理的那份残缺的版本,因为我更了解,更符合我的关注点。所以各位还是自行整理吧,整理的过程也是在学习:)

No comments:

Post a Comment