-
-
[原创]#18周年#走过的路
-
发表于:
2017-12-27 16:32
5044
-
看过很多大牛的故事,他们的出场通常很华丽,很传奇,我甚至有些羡慕。大致伴随着的是这样几个关键词,网吧、游戏、黑客、黑客杂志。从玩世不恭到神秘的大咖,跟电影里侠客一样,一条逆袭之路。写到此刻,我心中按捺不住想唱那一句"没有什么能够阻挡,你对自由的向往"。
我是初中才开始接触电脑,那时候在农村电脑就是一种新奇的东西,好像懂电脑跟不懂电脑,那就是城市与农村的区别-的确是。初中的电脑课我们学的是打字和office,有网的时候玩3799小游戏。高中,也没多少电脑课,偶尔有,机房的电脑也是坏的居多,大多数在开机关机间就过去了。所以,在上大学以前,电脑在我眼中没有激起多少波澜。有人会说,那么网吧呢,我可以回答你,穷的要死的日子里,吃顿饭都要省着,别说去网吧打游戏。当然,每个学校都有一根水管一堵墙可以爬过去到网吧,但我发誓,我知道,没爬过。
学计算机,那是毫不犹豫的,在我看清现实的情况下。在准备高考填自愿的时候我就清楚,计算机挣钱,嗯,就是这么单纯的理由,我挑了个计算机科学与技术这么一个专业。在几年后,也证明了这个事实,因为这个时代需要我这样的人。
进入计算机的大门,从C语言学起。我想大家用的基本都是那本谭浩强的书,因为我看书发行了好多万本,书皮是红的。老实说,第一眼看到书的时候,我就觉得很扯,畅销书的路子,有种让我不适应的感觉。毕竟,学术是严谨的。至于怎么学的,我就不多说,对于考试,我靠背的几个算法和代码就过了。得益于我的老师,在那本书里教学里,学会了编程逻辑思维和严格的编码习惯——画流程图和要求注释和变量代码规范。也许是因为当初的要求和习惯,现在看到一些人的项目代码我有种想骂人的感觉。我其实挺想说,代码是给人看的。如果你不知道为什么要规范编程,那么我推荐你看看《代码大全》和《软件工程》。老师开学告诉我们,培养方向就是程序员,那个时候我还不知道程序员是干嘛的,因为我们同时还学了很多课,基础的高数大物英语加计算机专业的书目,还有很多人工智能图形学等新颖的课。即使这样,依然没让我提起多大的兴趣,因为那时候只需要记住几个api就可以完成任务了,那就是程序员吧。
后来,我觉得不能这么下去。计算机安全这个东西开始在我脑海中出现。
一开始是网络安全。我记得不知什么时候开始,我跑去图书馆找网络安全相关的书籍看,几乎所有这类书的书名都很大,黑客啥的。跟前面提到的那样,这样的书几乎被我鄙视的一塌涂地。然而,我还是可以从其中获得一点基本的安全的理解,至少知道啥是计算机安全。从那些浮夸的事件中也能找到一点虚荣心来满足自己学习的欲望。
真正摸到一点信息安全的味道的是CCIE这个词出现在我面前,然后我开始看CCNA和CCNP、CCIE的考试指南,都是半懂的状态。后来看kali等教程,才知道渗透这个领域,而很多很多传奇的故事就是渗透的故事。那时的眼里-计算机安全就是渗透测试。
在大学期间还自己考过软件设计师,不过还是没考到就是了,但让我掌握了整个计算机学科的知识的整合,其实在考完那个我才意识到我大学学的什么,计算机是什么。这个问题的答案,在我后来知道有《计算机导论》那本书的时候同样找到了,但我不明白的是这么重要的一门课在入学的时候为什么没有开。
在准备进军网络安全方向的时候,曾幻想进武大的信安,连王道论坛的基辅导书都买了。结果是在考研报名的那一刻,评估下来目标达不到,就这么放弃了。然后为了就业,大四找了个安全方向的培训班学习,在那里我接触到了程序的本质--一条逆向的路。那时,我眼中的计算机安全是软件安全。
找工作的时候,我在看雪里发了帖子,谢谢段老师的帮忙。我的第一个东家是反病毒厂商,在那里我获得了一份病毒分析员的工作。为了更快的适应反病毒工作,需要学习很多的东西。那时,我看了看雪的知识库,几乎是一篇篇过,写的都很好,需要慢慢消化。在我看来如果你要走病毒分析这个路,大致需要学习的内容有以下(希望能给新人一点帮助):
(1)学习编程,我不管你是哪个语言,最好懂C,C++。
(2)汇编指令,这是分析的基础。
(3)PE格式,eLf格式,如果是其他平台,也要学习对应平台的可执行文件格式
(4)系统编程,同样,对应平台的系统程序服务程序编程。
(5)系统启动过程,程序加载过程理解。
(6)程序监控工具使用,这个有利于你快速分析样本。
(7)动态调试工具使用OD,windbg
(8)静态分析的IDA
(9)病毒常用的api,病毒常用的反调试,病毒常用的自启动
(10)rootkit技术
(11)python,为什么要单独说这个,因为现在很多人用。
关于逆向,我能说的是,你可以自己写个程序,然后自己逆,这是一种学习方法。病毒分析同样,你如果不知道从哪下手,你就自己写程序过免杀,自己隐藏,自己实现自启动。你只有这么想了,你就知道病毒作者怎么想了。攻防都是相对的,但我必须要告诫的,你的病毒程序不要放到网上去实验。
(1)安全编程将成为主流,开发岗面试时,会考虑是否会安全编程。同样此类市场会兴起,延伸出来的是代码审计。
(2)物联网安全方向将开启新的纪元。
(3)软件信任审核平台,随着app的泛滥,将出现类似苹果appstore的其他store,同时,还应该防范供应链的攻击。
(4)威胁狩猎,未来的安全人员将具备在网络中主动狩猎威胁的能力,技能点包括探针,蜜罐部署,自动IOC提取,APT分析能力等。
以前看到过三个短语:
看山是山
看山不是山
看山还是山
看到这个的时候我开始问自己几个问题:
企业安全的本质是什么?是产品,还是人?
安全研究员对安全学习的态度是什么?是工具,还是原理?
我这么问当然不是无中生有,这一年的经历告诉我,这个行业也会存在一些不合理的地方。
我问第一个问题的原因是很多企业或政府买个安全设备就以为万事大吉。这让我觉得很不可思议,就好像你家买了个防盗门别人就进不去一样的逻辑。
我想就企业安全说几点看法:
(1)网络安全设备要开启,要升级,事件要审核。有的企业买了安全产品防护开都不开,就设备摆在那,断网了都不知道。网络设备大多基于库和规则,面对威胁,需要及时更新。事件出现,需要及时研判威胁和处理威胁。
(2)内网的补丁要及时跟上,你也许需要一台服务器用来做补丁管理。现在的基本都是内网用的旧系统旧版本软件,一个威胁别说是0day,就是Nyear都随便进你服务器。明明打上补丁就好的事,非搞的这么麻烦。
(3)登记你的资产。我就想说一件事,我知道IP能不能立马给我知道是那个主机。
(4)明确哪些是重点关注的服务器。我说重点关注就是通常个人pc无关紧要,我需要知道数据库,文件存放,web应用对应的ip。一旦这些出现问题那就是大问题。
(5)有那么一两个安全信息来源。比如说,有什么新补丁要打,谁来告诉你。有什么重大安全事件需要防范。
(6)员工的安全意识培养。至少你开个杀毒软件吧。U盘使用要检查吧。邮件附件要扫描吧。密码要难点的吧。
再说说学习的态度:
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)