lhosts@home:~$

网络安全和编程开发和系统内部之间的博弈

二进制漏洞挖掘,代码审计,web安全本质上的阶梯是对程序开发的理解,从而理解到其中的安全面,用以找出可被利用的点,执行攻击者想要执行的方向,如果这么来计算的话,在熟练掌握一门编程语言的情况下,通常需要两到三年,还是一门程序语言的情况下,如果能够把这种百分比折合到一起的话,其中的漏洞挖掘能力是随着掌握一门程序语言的熟练度来增长的,除此之外毫无办法,在系统层面的零合博弈的层面中,我们一直在别人画的圈子当中,跳来跳去的,比如说内网渗透,免杀,恶意软件分析,这类行为都在操作系统的内部进行分析,绕过,博弈的话,也都一直围绕着这类游戏规则进行着,在这种看待下,熟练的使用工具,攻击行为,也就是系统内部的博弈,非编程开发漏洞层面上的博弈,可以说是属于表层的攻击行为了,没有操作系统,各个协议软件,漏洞,那么这些行为也就都不存在。

而漏洞层面,也就是程序语言层面的设计,开发,语言的特性,以及它们的语法层面,都涉及了或多或少的漏洞边界,像php,javascript,python后端开发,node.js后端开发,java后端开发,ruby后端开发,c/c++二进制漏洞的利用,像我们所知,越熟悉一门编程语言,能够快速的熟知其他编程语言,同样,我们想深入掌握一门漏洞利用的手艺的时候,越熟悉一门编程语言也就越好,越快,也就漏洞利用的更加完美,但是现如今的信息爆炸的厉害,人们又容易产生焦虑情绪,不明白这类古老的艺术是不会变的,变的动态的可能只有时间吧。

我把我所有认知的内容进行抽象了出来,这类抽象行为让我觉得很是舒畅,再也不用像是类似死学的形式进行继续了。

这类抽象行为,像是把我本质的灵魂,计算机本质的灵魂进行抽离出来了,所有的攻击方向的本质还是要回归到计算机的本质,而计算机的本质,本质上就是编程语言,操作系统,网络协议,之类的集合体,当你要想要同时学习所有集合体的时候,那么你将会被学习的洪流所淹没,就像是在学网络安全的洪流一样,一门漏洞利用的漏洞就已经需要钻研很多年了,因为编程语言熟悉程度需要如此,而当你要同时操纵,掌握数门编程语言或者行为方向的时候,本质上已经从网络安全,延伸到正向掌握中了,这种行为,也是不可取的,按照非刻意行为行动来讲,熟悉一门操作系统行为需要数年时间,最少5年,而掌握一门编程语言最少也是3年,依照这类时间,其中的单个漏洞利用行为来算的话,至少需要一年的时间,而这一年的时间,掌握程度,是别人远远难以企及的,因为这后面是编程语言的三年在其中,理解程度,作为一个网络安全专家,熟知一门程序语言已然是逆天之举,同时熟知好些门,而且这些不同的编程语言结构上都有着不同的语法结构,如面向对象,脚本编程,编译语言,专门用以筛选日志数据节省生命的perl语言,lisp人工智能语言等,在开发上都是不可或缺的开发能力,而在熟知了这类程序语言之间的安全漏洞后,再进行熟知其他语言的安全的时候,自然而然的就能够归类到一起,毕竟这个世界上有许许多多不同的编程语言。

讲完编程语言,再来讲讲操作系统内的行为,免杀,恶意软件分析,内网渗透,都是工具层面上面的分析,行为层面上的折叠,在已有的,别人创造出来的世界层面中进行来回的横跳,绕过防火墙,ids,ips,edr,waf。

林林总总上面的方向很多,掌握其中一门语言中的一个漏洞,或者说一门语言中所有可能产生的漏洞来说已经要数年的时间去掌握了,只是这些方向都是不同的作用也都不一样,所以在掌握这些内容的时候要做好取舍。

行为层面上的很好操控,属于第二条线,而编程开发上的细致区分产生出来的漏洞行为则属于第一线行为,用第一线行为去支撑第二线行为,作为杠杆撬动整个系统,那么核心点就在于整个第一线行为中的某个漏洞,而第二线表像行为,则在整个攻击过程中是可有可无的,对于现在的我来讲。

第一线行为,需要在细致的程序中查找漏洞边界和漏洞行为,第二线行为则是需要多实战,在真实的环境中进行操控。

每次输出一点点,总结一点点,进步一丢丢。才能够让自己发现问题在哪里。从而找出,进行拟补。这不会是最后一篇文章,但会是个进步的阶梯。