昨天回到学校搬家,大学四年使用的各种物件仅仅用两个大纸箱就全部打包好了。白驹过隙,四年前和父母一起拎着行囊打开宿舍门的那一幕的情景现在还能清晰地在脑海里浮现,而却已经是到了要离开的时刻了。这段时间总还是有些伤感、有些不舍,下班之后躺在床上回顾起大学的这四年来,有些片段久久不能忘怀,思来想去总觉得是要总结一下,于是就有了现在,最后一次坐在已经收拾得空空如也的寝室书桌旁码字,可能并不会有什么逻辑,想到哪说到哪。

为什么来到杭电、为什么学习信息安全

为什么来到杭电?因为我在高考前很久就下定决心学习信息安全专业,于是高考前就搜罗了一些网上的评价,把信息安全专业排名靠前的几个学校按照录取分数线的高低排列好。在高考出分的那一刻,我就知道,就是杭电了。

至于为什么这么坚定要学习信息安全,这个伏笔可能在小学时就埋下了。那时正是身边的同学都开始使用QQ聊天的时候,而我有一天突然发现QQ的账号申诉存在安全隐患,只要你足够了解对方,基本都可以申诉成功。于是就开始对身边的同学下手,通过账号申诉“盗号”。屡屡得手之后,为了满足自己的虚荣心便开始自诩“黑客”。

到了初中又接触到了一些vbs整蛊脚本,类似于打开之后就会在1分钟内重启电脑,或者无限弹计算器这类的。不过当时自己完全不懂原理,只知道通过右键编辑去改一些参数,或者把多个脚本组合起来,是一个名副其实的“脚本小子”。但其实到这时为止,我在“我的理想”这类作文中,写的内容还是希望以后成为一个企业家,赚大钱。

中考结束的假期里,正赶上“锁机木马”爆发,所谓“锁机木马”,其实就是伪装成各种外挂,执行之后便会修改Windows的用户密码,并勒索受害者转给某QQ 10-100块QB才提供电脑密码。但是当时这种看似拙劣的手法成功欺骗了大量的学生。正巧我当时逛“百度贴吧——病毒吧”时发现了许多这样的求助帖,发现会有一些“大神”帮忙破解出程序的密码,于是去联系了这些“大神”,看到了八仙过海各显神通的场面:有的用ollydbg 字符串搜索/断点调试,有的用自己写的程序监控Windows API,总之各种锁机木马在他们这里都能手到擒来。这时,学习安全,做“黑客”的想法才算是第一次萌发起来。

可惜走错了路,由于阴差阳错的各种原因,那时的我并没有去学习技术,而是在脚本小子的路上渐行渐远并且严重的影响了高中阶段的学习,这个过程不再一一言表。

总之,对于高考出分后,填报志愿时的我来说,选择信息安全专业,并不是像大多数人一样,因为听说某个专业很火爆、毕业以后很好找工作、赚钱多这类的原因而做出选择,而是真心地发自热爱。

实际到现在为止,我还并不能确定这样的选择是否完全正确。一方面,当我看到其他专业,如机械、自动化、建筑相关专业的同学学习的内容时,我发自内心的厌恶这些东西,并由衷地庆幸自己没有去学习这些专业,不然现在的我可能早就因为挂科太多而被退学了。另一方面,选择自己的爱好作为学习的方向,导致大学期间的我除了安全相关以外,很少有其他方面的体验和经历,这是当腾讯的二面面试官问出“你近一段时间,或者大学期间,最快乐的事是什么?”的问题时我才意识到的;而把爱好作为自己未来的职业,就要接受自己的爱好有可能因为生活和职业上的压力变得不再纯粹,这一点刚刚参加工作的我暂时还没有太多感受。

回顾小学时吹过的牛和高中时的向往,现在的我已不再自诩为“黑客”,而只认为自己是一名网络安全爱好者,即将成为一名网络安全工程师。因为我见过了真正的黑客,他们是一群对各个领域都充满好奇、和探索精神,掌握包括又不限于计算机技术在内的各式有趣技能,头脑里时不时蹦出看似疯狂的想法,又敢于去挑战和行动的人。

关于大学和学院

有一次和老妈聊天时,我说感觉自己缺乏做决定的能力,总是有很多顾虑,她则表示几年前的我不是这样的——连选择大学这种会影响一生轨迹的重要事情我都可以那么果断的做出决定。实际上现在回头看一下,当初做出这个决定很大程度上是因为无知者无畏。上面说到自己当时仅仅是根据信息安全专业的排名和分数线就选定了这个学校,这其实忽略了很多重要的因素。(接下来是大量的吐槽和抱怨…负能量警告)

首先说说学院的专业课程内容,我们这届实际上是网络空间安全学院成立后通过高考招收的第一届学生。学院下属的两个专业 信息安全 和 网络工程(没错我也不知道为什么网络工程专业要划分到网安学院), 在此之前分别归属于通信学院和计算机学院,老师也大多是这两个学院平移过来的。这导致我们的培养计划上的很多课程还是通信相关的。记得和某位参与过培养计划内容设计的老师聊天时,老师表示不是不知道有些课程不合适、也知道缺少哪些关键的课程(如编译原理),但是受限于老师们不会,没人能开,只能开些之前的课。

总之学院的课程内容有一半是和安全根本不直接相关的,如通信原理、信号与系统(当然非要说相关在某些领域确实也是相关的,毕竟什么方向都需要安全),另一半基本都是计算机专业的基础课,寥寥几节安全相关的课,也只是浅尝辄止。甚至某位吴老师自己基本不懂安全,抓以前毕业的学生帮他设计实验,或是把机器学习识别验证码包装成信息内容安全,一套课件用四年来强行开课。

但同样不可否认的是,随着新师资的引进和四年来的建设,学院的教学质量还是有长足的进步的,培养计划上也做出了更为科学的改变。当然,道阻且长,提升空间依然很大。

再来说说学院学工,引用张大佬在知乎问题《杭州电子科技大学网络空间安全学院现状如何》下的一段话:

总的来说,网安有优秀的顶级领导,和一些不尽如人意的中级领导(当然中级领导中也有很优秀的)。这使得网安有一些优秀的宏观政策,但是落实到一些细节的,实际的事项上就显得有些傻傻的。另外,师资力量也严重不足。就目前而言(截止2018中秋),想学信息安全或者网络工程的话,不一定需要来网安。在计算机学院说不定能够找到对这些领域一样了解的老师。

需要注意的是,这里面说到的优秀的顶级领导,即吴挺、仇建两位备受学生喜爱的正副院长已经先后离职。

学院学工层面的一些奇葩操作实在懒得一一细数,感兴趣的去知乎上一搜便知。唯独关于我们今年的毕业仪式这件事,实在忍不住要骂几句。

本以为学院独立于学校为我们最后准备的毕业仪式会是一个带我们回顾四年来大学生活,会是叙旧、煽情,是离别前的不舍、是学生踏入社会前的嘱托。所以当一些同学询问我能否不参加这个仪式时,我都是尽量劝他们参加,我认为学院一定会为我们准备些特别的东西。

结果学院还是成功给这次特别的活动办成了一次莫名其妙的表彰大会,一次例行公事的走过场,一次与校外企业的商业互动。那些素不相识的老师录制的毕业寄语干瘪无力,像极了小学生背课文;新院长的讲话充满了空话套话(这个可以理解,毕竟确实没什么感情)。搞得会后很多同学纷纷吐槽,觉得自己又一次被学院当作某场会议的工具人观众,而我也因为之前劝大家参加仪式而十分尴尬。

倘若是吴院长和仇院长在,这场仪式一定不会是这样。很遗憾,在我进入学院时为我佩戴上院徽的院长,没有在我即将离开学院时送上嘱托。

当然,学工中唯一的希望,也是我认为是我大学生活中最幸运的两件事之一,就是我们的辅导员——冯姐。冯姐是我学生生活中遇到的为数不多的凡事都真正为学生考虑的老师。当然,这并不是我一个人的想法。如果哪天冯姐也离开了网安学院,那这个学院就真的没有任何东西可以留恋了。希望冯姐今后的每天都保持快乐。

最后说说学校。平时一直在抱怨学校的种种不是,但是离别之时还是要给出一个我认为公允的评判。作为一个大学而言,杭电狭小的占地面积很大程度上限制了其建筑风格和实验室资源,而过于浓郁的工科氛围又导致校园生活相对而言实在是过于单调,因此**如果是抱着对电影里一般大学生活的憧憬来到杭电,那么几乎一定会失望。如果畅想通过大学能接触各个领域的知识,拓展自己的知识面,全面发展甚至成为一个通才,那么来杭电也并非一个好的选择。如果只是想在理工类的某一个领域有所发展,成为一个专才,那么只要你够努力,杭电浓郁的竞赛氛围确实可以为你提供各种机会,最终找到一份不错的工作还是没有问题的 ** 。

关于Vidar-Team(信息安全协会)

加入协会

上面说了学院不尽如人意的专业建设,指望通过听课来学习安全基本上是没什么可能了。那么我是如何学习安全的呢?这就要说我大学生生活中另一件最幸运的事了——加入Vidar-Team。

在学院新生群的时候就听说了信息安全协会这个社团,当时的我问学长:“既然是信息安全协会,那么一定是信息安全专业的人都想加入的协会吧。”

得到的回复是:“是的,基本上大家大一的时候都会去尝试加入这个社团,但是能最后留下来的没几个,不过体验一下也是很好的。”

而来到学校以后,在第一次社团宣讲会上,看到了协会学长们展示各种的内容——“劫持大疆无人机”、“免费骑小黄车”、“击穿剑网三”、“csgo RCE”等等之后,我就下定决心:“一定要加入这个社团”。这是我大学四年做出的最正确的决定。

为了加入协会而拼命学习的那段时间,是我大学期间学习效率最高的一段时间。参考了学长的入门路线,半年里我先后啃了大半本《C Primer Plus》来入门编程;学习JavaScript,学习XSS,并在学校网站挖到了第一个洞;学习Python、学习Django,搞了一些有意思又不便明说的项目,那段时间除了吃饭和睡觉,基本都是在学习各种新知识。

期间当然也遇到过很多难题,但是每次都能找到学长学姐为自己解惑,感谢在那段时间里帮助过我的所有人。

而在我为了加入协会而努力学习的这个过程中,协会出现了一些变故。(背景:因为之前说的历史问题,信息安全协会属于通信学院,而网安学院成立后创建了网络空间安全协会。但是两个协会的学长们并不希望学院层面的斗争使得学生之间互相对立,于是两个协会合并,共同运营Vidar-Team)。因为一些比较复杂的原因,主要是部分学长和网安学院领导在一些发展问题上观点出现了冲突,学院决定解散网络安全协会,具体细节已难以考证和还原。总之网安学院重新成立了一个只属于网安自己的协会,而 Vidar-Team 则开始独立于网安学院。

在这期间,网安学院学工办的某老师找到我,问我“愿不愿意退出Vidar,回学院这边”。实际上当时的我还并未成功加入 Vidar-Team,自然也并不知道协会具体发生了什么。只是从这位老师嘴里大概了解到是,Vidar-Team 不再属于网安学院,网安要成立自己的协会。对于大一时期的我来说,每个机会我都不想放过,于是试探性的问到:“可以两边都加入吗?”。某老师则表示:“不能接受人员上的重叠”。到这里我就已经不假思索的表示选择Vidar。如果说偷偷挖人属于正常的竞争手段的话,这位老师的之后的说法才是真正震撼到了我:

某老师:“你现在在那边他们给了你什么职位?”

我:“我还没算正式被接纳成为会员。”

某老师:“在那边你加入了也只是新人。回学院这边可以给你一些管理上的工作。”

我:“我对这个不感兴趣,我只想能有学长指导学技术就好了。”

某老师:“那我们这边也可以给你提供很多学习的机会,我们这边有一些涉密的项目,只有信得过的同学才能参与。”

我:“我对这种项目同样不感兴趣,甚至避而远之。”

某老师:“你想入X吗?入X名额很难获得的,今年学院十几个人竞争几个名额。”

我:“如果我能有资格获得这个荣誉,我很愿意,但是我觉得我自己现在还达不到要求。”

某老师:“如果现在就给你这个机会呢?你愿意吗?”

我:“我觉得我达不到要求。”

某老师:“你想要什么?”

我:“我只想有个社团能有人带我好好学技术。”

某老师:“只想学技术……好吧,那我们今天就聊到这吧……”。

这次对话对于当时的我来说,打击是巨大的,我一直以为离开了东北到了南方,就可以远离那些潜规则,却没想到这么快,就在学校里,以当事人的身份亲历了一次内幕交易。感谢这位老师为我上了大学中非常重要的一课。这节课比您冠冕堂皇站在讲台上讲了一年的那套课要实用的多。

后来就是有幸得到认可加入协会,有幸认识了许多志同道合的小伙伴。在协会每天和大家一起学习、一起比赛、一起吹水、一起打游戏、一起吃麻辣香锅的日子是大学里最快乐的日子。可以说如果没有协会,那我的整个大学生活将会是灰暗的。当年因为无知而做出的果断却又莽撞的决定,偏偏是歪打正着,或者说不幸中的万幸,让我能遇到协会。

HCTF

在协会,除了学习和打比赛之外,还有一个重要活动,就是每年要举办一次的HCTF(杭州电子科技大学网络攻防大赛)。这是协会上古老学长们创办的比赛,虽然前缀是杭州电子科技大学,但是从第五届开始就成为全国性的赛事,到今年已经是第十二届了,作为高校学生自主举办的赛事,一直以来备受好评。作为协会成员,我参与了从第十届到今年的十二届比赛的举办的各个过程,包括出题、平台开发、拉赞助。在这里要感慨的是作为学生,自主举办这样大型赛事的过程真的很不易。

不同于其它学校仅仅举办线上赛,HCTF从一开始就有线下决赛,这使得筹办比赛的难度陡然增加。

首先是比赛费用的问题,一场比赛,线上的服务器费用+线下各个队伍的差旅路费再加上奖金的费用,按照乞丐版来计算也要10万左右了。因此每年,寻找比赛的赞助方都成了一个非常头疼的问题。所幸的是由于HCTF品牌的认可度,每一次都有赞助方愿意帮助我们。这里感谢各位金主的支持(第十届:拜思科技;第十一届:蚂蚁金服、长亭科技;第十二届:蚂蚁集团)。但是不可避免的是,比赛的过程中可能会插入一些商业元素,我们只能尽量去设计,使其不影响比赛的平衡性。

其次是平台的问题,在线上赛平台上我们算是很幸运,之前的学长们@Aklis @Sora,已经开发出了一套非常优秀的线上赛平台。功能齐全、代码清晰且易维护,平稳地连续支撑了很多届 HCTF。但是线下赛平台就没有沉淀了,在我第一次参与的第十届 HCTF 时,我承担了线下赛平台的开发任务。很惭愧,那时的我实际上开发水平其实很差,这个任务之所以落在我的身上,只是因为在此之前我为了学习Vue,开发了协会招新平台的前端后端。于是我又用 Django+Vue 开发了HCTF 第十届的线下赛平台,由于要实现异步计算分数池,还接触到了celery。这个平台最后的结果是:能用。但也仅限于能用了。实际上由于准备不充分,测试不到位、大半夜配环境头昏眼花把队伍的队名录入错误(比如Redbud被录入成Redhud…),在开赛的第一天上午,平台分数的计算是存在很严重的 Bug 的。不过好在由于是异步计算分数,修正问题后分数重新计算,并没有影响最终的结果。

于是在筹备第二年的比赛之前,我就早早的跟 @E99p1ant 和 @Moesang 两位学弟交代了平台开发的任务,当时确定的几点是:

1. 使用 Golang 开发,方便进行异步任务和部署。
2. 早点开发,避免出现之前的测试时间不足的问题。
3. 代码优雅,争取为协会留下一个持久可用的线下赛平台。
4. 如果能有biubiubiu~的动画大屏就更好了!

不过由于协会的鸽子属性,最终这个平台还是被拖到了临近比赛开始前一段时间才开始动工。最后的结果也是又出现了Bug… 而且这一次Bug影响的时间更久,导致比赛前一天的时间里排行榜展示的内容都是错误的。不过好在同样没有影响到最终的结果。

比赛结束后,@E99p1ant 在寒假里重构了平台,这一版的平台真正意义上的成为了一个优秀的 AWD线下赛平台——功能完备、方便部署、代码优雅、文档清晰。而一贯致力于用爱发电,追求开源精神的 @E99p1ant 选择将平台开源。于是就有了 Cardinal

最后是赛题质量的问题。近些年的 CTF 比赛数量肉眼可见的增加,一方面导致很多考点被考烂了,进而导致脑洞题和套娃题的数量大幅增加,另一方面高质量题目的产出速度跟不上比赛的举办速度。这使得我们出题变得非常困难。于是从第十一届 HCTF 开始,我们和有同感的西电 L-Team(同样连续举办多年L-CTF/XDCTF) 一起,再加上成电CNSS战队,共同举办 D^3CTF (取自 “电”的立方),通过汇集更多的想法来保证比赛质量的延续。同时今年的第二届D^3CTF中,我们又获得了蚂蚁集团的大力赞助,除了比赛赞助金额和赛事规模都得到了更大的提升之外,来自蚂蚁金服安全实验室的大佬们还赞助了三道高水平题目。目前看来,我们的比赛质量还是可以得到大多数选手的认可的。不过由于疫情,以及我们对 AWD 赛制比赛的套路化感到无趣,今年的比赛取消了线下赛。或许当我们摸索出认为更加有趣的赛制时,线下赛会重新回归吧。

关于四年来的收获

收获自然是很多的,其中最宝贵的部分无疑是一群志同道合的伙伴、一手让我能有口饭吃的技术。

除此之外我觉得我最大的收获,就是在这四年时间里亲身见证了知识和眼界对人想象力的影响。即所谓的“夏虫不可语冰”。随着我自己的知识和阅历的增长,我越发感受到几年前的我是多么的幼稚与无知。现在的我接触到的很多东西,完全是高中时常常自以为是的自己无法想象的;当年我自以为不在乎的东西,当现在意识到很重要时也为时已晚;大一时郑老师跟我说的很多建议,当时我无法理解甚至觉得有些可笑,现在看来却又大都是正确的;实习时一开始认为不可能的任务,在 leader 的一次次指点下,一次次茅塞顿开又因为自己的知识不足而陷入瓶颈。当然,同样是受限于知识和眼界,现在的我可能依然幼稚、依然无知,但是我已经清晰地知道了这一点,因此惟有始终保持谦逊和保持学习。

要感谢的人

在本文快要结束的时候,要感谢许多人,感谢顺序不分先后,同样是想到什么写什么,感谢冯姐四年来的照顾;感谢郑老师的指导和帮助;感谢我的亲人们在关键时刻伸出的援手,让我可以安心的学习;感谢ngc的烤鱼,让社恐的我有勇气在协会赖下去;感谢HeartSky学长每每当我遇到学习中的困惑时为我指点迷津;感谢小伟哥为我争取offer;感谢薯片、Aris、oyy、飞哥、Mki、Migo、远哥、AC、ckj等协会17级小伙伴们带我飞;感谢协会的各届老学长们对我们的帮助和为我们传承下来的精神;感谢可爱的学弟们E99p1ant、Moesang、Kev1n、Annevi、Roc、Y、Cosmos、幼稚园、金枪鱼等等,你们会比我们更加优秀;还有很多需要感谢的人,在这里不能一一谢过,祝你们永远开心快乐。

最后

写到最后,不知不觉已经过了零点,发现寥寥数千字根本无法对这大学四年的时间做出总结,如果还有时间,我还可以有很多事情继续“关于”下去,然而现在我只能记录下一小部分现在能记起来,并觉得应该留下回忆的东西。

时光总是太匆匆,从今日起,彻底失去学生身份,迎接下一阶段的人生,希望下一个四年过后,回首的时候,不会让现在的自己失望。