首发于evi1m0
碎片 - 4. 编程

碎片 - 4. 编程

4. Fragment,Be reborn.



牛人1,2,3

1研究:研究东西,有足够洞察力,研究水准不错

2研发:hack idea自己有魄力实现,不懂研发的黑客如同不会游泳的海盗

3工程:研发出来的需要实战、需要工程化,否则只是玩具,而不能成为真的武器

-- 摘自《知道创宇研发技能表》


上面这三条被放置在知道创宇研发技能表的最后一段,我没理解是出于何种情况将它放置在那么尴尬的位置。牛人1,2,3的步骤写的很不错,只不过要是能往前靠靠就好了。

不知多少人在问,我想研究网络安全掌握编程吗?那学什么编程语言好?要学成什么样程度才算可以?



知其然并知其所以然

《建宁府建阳县长滩社仓记》:“蒙惠者虽知其然,而未必知其所以然也。”

如果你不是想简单把玩网络安全,那么编程则是你的必备技能。编程作为一项真正黑客的必备技能,有必要下功夫并下大功夫去不断的研究甚至达到自身拥有研发的本领。

搜索工具、下载工具、研究工具的使用、使用工具进行攻击,目前这个流程是普遍“黑客”的做法,通过网络上其他安全研究人员编写出来的优秀工具对其他人实施攻击,自己却压根不懂其中的所以然,更不知其所以然。



OpenSSL漏洞爆发后,不少“黑客”使用网络上公开的POC(Proof of Concept)对存在漏洞站点进行攻击,但公开的POC的攻击模式并不是那些“黑客”们想要的效果,hexdump数据进行输出,没有循环遍历没有格式化存档,导致那些想凑热闹学学人家脱库的“黑客”只好不断的回车-Copy-存档。这时还有一位朋友过来问我,有没有自动循环遍历并存储读取数据的POC。其实这样改进的脚本在POC刚公开出来后便有了,看到编程的重要性了?

无论是底层安全还是WEB安全,编程都是必备的技能,抛开语言不说。

一款工具,一个POC等等都要知其然并知其所以然,没有深度的研究是远远不够的。




语言

底层安全研究和WEB安全研究需掌握的语言又是不同的,前者C,C++或对于汇编的理解,后者各种脚本语言的掌握。这里我绝对不会说什么语言是最好的,因为我也怕出现出门被程序员打死的下场。

但是还能简单的说说语言这东西,选择一门语言还是很重要的,但编程语言确实是所说互通的,重要的是编程思想。拿WEB来举例相对于安全研究需要掌握的编程(不指所具备的所有安全研究必备技能)就很多:想搞PHP白盒审计,那么你则必备PHP编程能力;想搞黑客前端安全则必备Javascript能力;想方便的写出一些POC等可学Python等脚本语言达到你快速实现的想法;你可以再去学Nodejs,webpy很多很多。

语言是有针对性的,考虑清楚想达到的目标再去选择会好很多,当然语言的灵魂是互通的,最后你会发现真正熟悉某种语言后再选择其他语言,这个过程会很快,就像我从PHP转到Python一样。




程度

我一直觉得没有深度的研究都是耍流氓。

以目的为导向,是为了写一个优秀的工具还是仅仅为了能简单阅读其他人的程序,自己动手写几个POC?

这个程度最终将取决于能否完成你预期的想法,如果能的话你会发现已经差不多了,反之继续不断的奔跑努力,这里仍然能够套用我所说的:编程(安全)之路任重道远,仍需努力。

关于如何提升编程能力,就用三个字来表达:敲敲敲




回过头来再回顾文章开头所摘录知道创宇技能表的三段话会很容易理解:

1、有洞察力,能深入研究某项技术

2、有好的Hack idea自己能够动手实现它

3、研发出来的需要实战、需要工程化,否则只是玩具


如果现在你仍在纠结是否需要学习编程或而学习什么语言,也许这条路还真不适合你。

------

Evi1m0@知道创宇

每条回复必看,文章将全部更新至博客:Evilsay - 安全圈也有文艺范

感谢关注,喜欢本文就点击分享一下,微信搜索:Evil-say

编辑于 2014-04-20

文章被以下专栏收录