白帽黑客教主 TK 告诉你,黑客的游戏 CTF 究竟是什么 | 硬创公开课总结文+视频(3)
天忆:我回忆一下当年自己小白时,是怎么学习的。首先,CTF和信息安全相关,信息安全是和计算机科学相关的一门学科,所以先要学习计算机科学的基础知识,比如,学习编程、写算法、数据结构等。我在高中参加信息学竞赛时,考察的是学生的编码能力,对后来学习非常重要。其次,你要学习计算底层的原理知识,比如,计算机的组成结构、CPU的实现原理和汇编语言等,理解为什么一个程序可以跑出这样的一个结果。然后可以再学习更多的上层知识,比如其他高级语言等。在这些基础上,就可以开始学习一些安全相关的特定领域知识,比如逆向分析、漏洞挖掘与利用、Web安全或者密码学等。除此之外,掌握数学知识也很重要。 在这些基础上,再学习安全相关的一些领域,比如,Web 安全、密码学。 2.有没有专门可以学习 CTF 的入门级网站? 天忆:网上有许多的 wargame 或是 OJ 平台,但是风格和难度不一,题目质量也是有好有坏,在练习时要根据自我感觉和实际情况来调整。在Github上 (https://github.com/ctfs) 有人专门搜集了历年 CTF 比赛的题目和解答,最近三四年的比赛都有。 3. CTF 怎么训练更高效? 天忆:要有自我训练的意识,这个影响是潜移默化的。比如, 把打游戏的时间拿出 50% 来就可以多训练几道题目,或者在做同一道题目的时候不满足于现有的解法,去想想有没有其他更好的方法来解决,要举一反三尽量深挖一道题目。另外,多参加一些比赛也是有益的,特别是高水平的国际比赛,通常这些比赛的题目都会有很高的质量,可以在其中学到更多的东西。 TK : 充分的时间、精力投入是必要的,可能没有太多取巧的办法,天忆可以介绍一下自己的经历供大家参考。 天忆:我在读研究生时接触CTF,但在更早以前,是小时候我爸拿过来一个叫做“中华学习机”的东西,没有图形界面。但我一直保持好奇心,在初中时误打误撞学习编程,觉得非常有趣,而且可以解决复杂的数学问题,发现了计算机的无穷潜力。 读书时,因为课业多,不会专门花时间,但会在业余时间在纸上写写代码,有机会摸到电脑时,就会赶紧敲进去。我本人也不是完全不打游戏,周末会抽时间打游戏,但在研究技术时会百分百投入,这一点非常重要,三、四个小时能抵得上十个小时。 4,为了 CTF ,如何学习逆向和反汇编,有没有书籍推荐? TK : 这个话题很大,一两句讲不清楚。从我自己的经验看,逆向和反汇编属于门槛比较高的事情,你在门槛外看,会觉得很困难、很痛苦。就像你去学英语,先让你学的不是字母表,而是丢过来一本莎士比亚的著作,所以要有方法度过阵痛期,阵痛期过后,就比较容易了。 所以,要先选几个小目标,虽然有些枯燥,但小目标在逆向和分析后,是能达成一些成果的。举个例子,我最早的逆向是逆向《仙剑奇侠传》的程序,为了能在游戏多得到一些钱,有这样一个目标,达成目标后有正向的反馈激励,就能坚持下去。 一般讲逆向的书都很厚,我不太推荐一开始就去买书,书太厚会造成心理压力。先在网上找几个教程学习一下,学会一点之后再去买书就不怕了,可以跟着书系统地学习。 5.请介绍一下 BadTunnel 漏洞的发现过程。 (编辑:ASP站长网) |