啥?我会在并夕夕这种公司?
共 2351字,需浏览 5分钟
·
2021-01-18 13:21
前几天,有人在微信上问我:轩辕,你在并夕夕?
我一脸懵逼,为什么这么问?结果没过多久,不下四个微信群都在问这个问题:卧槽,这个轩辕安全大佬就是群里那个吗?
我扒了扒聊天记录,总算弄清楚了真相,原来是因为一篇文章《我在拼多多的三年》里面的一段话:
网络安全行业,再加上花名一样,这真是太巧了
过去的一周,并夕夕事件闹得沸沸扬扬,这篇文章也是广为传播,难免让关注我的朋友产生误会,人家叫轩辕,我是轩辕之风,两个人,不过这位轩辕大佬真的很强,在安全圈TOP圈层的,至于我嘛
好了,言归正传,轩辕之前发过不少分析类的文章,像是数据库勒索病毒、微信双开、简历藏木马,又比如前几天遭遇的挖矿病毒。我发现这一类的文章都还挺受欢迎,不仅有瓜可以吃,还能学到一点技术。
每次发布这一类的文章,都会有很多小伙伴问我:轩辕,你这一身本领都哪学来的? 今天就给大家聊聊这个话题。
忘记之前在哪里看到的文章里面谈到,程序员要学的有两样东西:知识和能力。
知识就是你知道就是不知道,不知道就是不知道。比如地球的南北磁极并不在地理上的南北极,而是有一定偏差。对于知识,你只要看了并加以记忆就行。
而能力则不然,比如如何写出高质量的代码,没有哪本书能直接回答这个问题,它需要你在足够知识储备的前提下,再在实际工作中不断加以练习并总结才能形成的。
轩辕之前创作的一系列故事文章,基本都是属于知识的层面,用诙谐风趣的故事来讲述技术领域的知识。
回到本文主题中的问题,面对工作生活中实际出现的这些技术领域的问题,光靠知识是不够的,还需要具备一系列的技术能力。
在轩辕看来,对于程序员,在技术侧,下面几项能力是非常重要的。
抓包分析能力 日志分析能力 软件调试能力 源码阅读能力 安全分析能力
下面挨个来说一下。
抓包分析能力
抓包,就是通过抓取网络通信流量来进行技术分析的能力。
有很多问题场景,抓包技术都能派得上用场,比如通过分析前后端之间的接口调用来定位开发上的问题,比如分析某个竞品服务的接口请求和响应的格式来爬取数据,又比如查找系统中有没有可疑的通信流量等等。
抓包的工具,在Linux上,常用tcpdump,在Windows上,常用wireshark。
而如果我们要分析加密的HTTPS数据,还可以通过设置代理的方式,解密HTTPS流量,比如使用Fiddler:
wireshark和Fiddler都具有非常多的插件和功能,也是用来学习计算机网络的好帮手。
擅用抓包工具分析问题,是程序员非常重要的能力,这无关你是什么技术栈。
日志分析能力
日志分析能力是程序员必备的第二项技能。
我们的程序出问题,第一时间可能想到的就是去看日志,但日志这个东西,其实我发现很多人都用得不好。该怎么打日志,哪些地方打日志,日志的类型,日志文件的归档管理都很随意。
怎么用好日志,其实也是程序员编程的一项能力。
除了我们自己程序的日志,掌握第三方组件日志的分析能力也很重要,比如常用的:
nginx apache mysql redis elasticsearch supervisord ···
分析这些日志,有助于我们发现使用中的问题,资源占用情况,回溯分析攻击等等。
除了我们自己的服务和第三方服务的日志,分析操作系统的日志也是很重要的,包括系统的安全日志、审计日志、syslog等,对于运维和安全相关的人员,格外重要。
软件调试能力
软件调试能力就更好懂了,有人说,调试嘛,我天天都在搞啊,这有什么好说的。
但软件调试其实是一门硬功夫,不能只看到表面,比如下面几个问题你能轻松回答吗?
调试器工作原理是什么? 有个进程卡死了,怎么用调试器看看它卡在哪了? 我的代码有核心技术,怎么防止别人通过调试看到我的内部逻辑? 操作系统一开机就蓝屏,怎么找到问题原因? 自己本地没问题,远程服务器环境才出现崩溃,怎么远程调试?
调试,不仅仅是在IDE中分析自己的代码那么简单,如果能进一步掌握调试的核心原理,明白操作系统和CPU所做的支持,熟练使用GDB、WinDbg、OD等调试器工具,不仅可以学到很多代码执行和计算机底层原理知识,还能解决工作中遇到的很多实际问题,你的能力自然比别人就要高出一等。
源码阅读能力
阅读源码,这个很简单,都知道是什么意思,但并不是每个人都能养成这样的习惯。
很多时候,我们遇到一个问题,通过搜索引擎搜来的博客也好,技术分析也好,有些可能是已经过时的版本,有些可能本身分析的就有错误,可能会给我们带来一些误导,所以不要盲目迷信技术博主(包括轩辕也是一样),自己去分析研究探索得出的结论,远比网络上看来的要扎实的多。
而阅读源码就是一个很有效的办法,我们程序员日常所接触到的软件中,99%以上都能找到他们的源码,从操作系统、网络协议栈、数据库、Web服务器、浏览器,到C/C++运行时库,Java虚拟机,JDK、Python解释器、Linux命令工具等等等等,你都可以在网络上找到它们的源码,通过阅读源码的方式解答遇到的问题。
这个探索的过程不比你从网络上随便看来的一篇将信将疑的文章更香吗?
安全分析能力
安全分析能力主要针对网络安全相关行业的朋友,包括软件逆向分析、威胁情报搜集、网络攻击溯源等能力,今天先就不展开了,如果你们对这个话题有兴趣的话,欢迎评论区留言,咱们改天再聊啊~