自学成才的黑客(安全研究员)是从哪学到那些知识的?

相关问题:想成为网络安全技术爱好者(可能是黑客)的话,需要看什么书? -------- 本题已收入知乎圆桌 » 白帽黑客与安全,欢迎关注讨论。
关注者
17,606
被浏览
904,512

56 个回答

谢邀。

问题中“黑客”这词用的有点大,因为黑客代表的不仅仅是专业技术上的造诣,更包括了思想,思维,甚至是一种精神。

如今娱乐化严重的安全圈,“黑客”二字早已成为了面子工作者嘴里的谈资。

========================================

牢骚完了,下面根据上面说的分几方面说如何向着“黑客”努力。

有关技术:

现在获取信息的渠道越来越多,每天新增的技术文章早已超出了人能够处理的能力范围,如何发现精华,筛选,归类这些信息是很重要的工作。

本人较关注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

不经过自己辛勤整理出来的东西自己也不会去认真看的,上面那份非常完整,我收藏了但基本不会看,因为我没怎么付出。反而经常看我自己整理的那份残缺的版本,因为我更了解,更符合我的关注点。所以各位还是自行整理吧,整理的过程也是在学习:)

居然还挺多人关注的,好多回答都太没营养了,拜托各位认真对待每个「问答」好不?

我自己确实是自学成才,不过这个问题我不打算说我的经历(「目录 - 懒人在思考 - 知乎专栏」里的「我的世界观」可以了解我的经历,也可以了解我是怎样一种人)。

针对这个问题我分享下一些干货吧。

首先牢记两个原则:
1. 视野
把自己的视野放到全球上,国外太多优秀资料,至少得掌握英文,如果会俄文/日文也不错。

我为什么特别提俄文/日文呢?因为这两超级大国搞安全的还是很多的……俄罗斯搞黑产的凶残程度不亚于国内,日本的研究猥琐程度不亚于国内的「猥琐流派」。

2. 分享
把优秀的经验沉淀好并输送到国内这个圈子。关于这点我非常鄙视一些人的一些嚷嚷,比如:「知道创宇为什么不开源,不是很牛吗?」
我们那么多优秀 Papers,你呢?
我们那么多优秀文章,你呢?
我们那么多技能分享,你呢?
我们每年举办免费高质量的KCon,你呢?
我们在各种场所分享我们的心得,你呢?
我们确实也在 GitHub 开源了小组件(极少宣传,因为这点我们确实没做好),我们还打算继续打造知道创宇的工程师文化,在未来持续开源,你呢?
我们在把团队打造牛逼,你呢?……
分享是一种美德,身为知道创宇的安全研究员或研发工程师,无一不是抱着这样的文化去做事。

其实上面这两点就是我的「渔」,下面分享点「鱼」吧。

1. 技能表(前些天刚发布v2.2版本)
blog.knownsec.com/Known
这上面的学习素材太多了,很多同学都在以此为参考去学习。

2. 我订阅的RSS列表
evilcos.me/evilcos_rss_
我之前在我的一个黑客群里内部公布过,现在对外界全面开放,我从08年开始一直在订阅的列表,每年都有新增的,有些优秀的 RSS 源不更新了,但我还保留着,留个纪念。

列表有几大部分「Hacker Teams」「Hackers」「Web视角」「架构」,如下截图:

我曾经用 Google Reader,现在用鲜果阅读,勉强能「不亦说乎」……

我把这份 RSS 列表配合我倾力打造的技能表,再配合Evernote做笔记的习惯,一个近乎完美的 GTD ,每天的学习非常有节奏。

补充个:如果你想入门 Web 安全,我真是呕心沥血了:零基础如何学习 Web 安全?

好了,后面看你的了!