图片来源@视觉中国
【本文来自钛媒体特色栏目「快公司」】
C++、python、Java这些都是我们耳熟能详的计算机编程语言,而随着计算机编程语言的多元化,同一系统下的工具和应用在使用不同语言编程时,往往在互相调度、配合的过程中出现一些问题。
(资料图片)
特别是对于网络安全领域来说,不同安全工具之间的不互通,往往会造成企业安全能力的割裂。在愈发强调安全协同、安全智能调度的当下,安全能力割裂所引发的对安全隐患的响应延迟、安全渗透测试不彻底都可能成为网络安全事故的源头。
但是一个网络安全行业冷知识,让网络安全从业者的编程路坎坷了许多:一位大厂资深网络安全专家如风告诉钛媒体App,当前全球范围内,在网络安全领域并没有一套成熟的编程语言。行业投入较大的仍然在安全应用领域。
网络安全的重要性被强调多年,为什么行业对于网络安全语言的开发却如此冷清?“有点儿像几年前国内学界推广联邦学习之类的,需要多年才能展开。但是现在经济下行,这种多年回报的项目,不适合(在大厂)展开。”如风坦言
不过,总有人要站出来做难而正确的事。
新语言Yak
“网络安全领域,缺少一个类似Matlab的创新。”国内外知名网络安全专家司红星这样评价当前网络安全在底层语言方面的现状。他也是由于工作的关系才发现了网络安全领域存在的这一短板。
司红星早年就读于电子科技大学的信息安全专业,并在2013年毕业之际选择了一份体制内的工作。不过一年后,司红星再三抉择下进入了一家网络安全创业公司四维创智,开始了网络安全创业生涯。
作为四维创智早期的技术合伙人,在公司“AI+安全”的策略指引下,司红星先后带领团队研发出了“天象”综合渗透测试平台、以及SaaS化的自动化渗透测试平台。所有渗透测试平台以及监测工具都围绕“认知智能为核心的AI+安全”展开。也正如此,司红星发现,网络安全智能化的前提是能够实现对底层工具的调度,做到及时响应。
但对不同网络安全工具进行调度,实现起来是个难题。正如前面所讲,不仅是网络安全工具、工具之下的代码语言也是不尽相同。没有办法做到图灵完备。
什么是图灵完备呢?
司红星解释,图灵完备就意味着可以用一种语言实现任何逻辑,现在流行的低代码实际上是封装好的应用,如果不封装就没办法实现功能间的融合,不够开放。但是图灵完备就不一样了,它是通过底层的数据结构,促进各方共创。
“我们在做智能化攻击的时候,要组合一些底层小能力去完成产品,但是组合过程中我们发现这些被Python、Java、C++等各种语言写成的小工具每一次都要被重写或者改写成符合自己需求的功能,相当于对不同功能做缝合。”司红星表示。这种缝合在实际操作过程中不仅表现力弱、效果差,而且后续维护起来也很麻烦。
面对这样一个行业共性的痛点问题,司红星认为不能躺平,必须要解决。于是,YakLang诞生了,团队从0实现了一门图灵完备的语言,旨在促进相对割裂的安全能力实现融合。
YAK之于行业
Yak语言一开始只是用在内部项目上,后来才被抽离成完整的语言开放出来。对于开放的初衷,司红星在YAK社区官网写下这样一段话:
“解决工程问题,创造更好的生产工具是非常好的解放生产力的方案,生产力解放了,大家就有更多的时间做安全研究了,从而又可以创造更棒的生产力工具,这本来就是事物良性发展的客观规律。所以,我们从最初的平台中,把这个语言抽离出来,单独做了一个项目,阉割掉了 ‘定制需求’,留给大家一个 ‘安全能力大融合’的新语言: Yak。”
毫不夸张地说,YakLang是目前全球唯一一款致力于网络安全能力融合的领域特定语言(Domain Specific Language,DSL)。其优势在于易书写、易分发、执行效率高、图灵完备、跨语言协议实现。具体在网络安全应用场景上,YakLang本身已具备绝大部分安全能力,如果是通用而未具备的特殊需求,也可借助语言的图灵完备特性来解决,再结合语言间的逻辑调度,可极大降低使用门槛,提升编程效率。
不过,在司红星看来,YAK还有一个价值在于对信创的共享,因为YakLang作为一门网络安全领域的底层基础设施,能够打开业内高频的使用工具受制于人的局面。“在网络安全领域,一线从业者高频使用的BurpSuite或者MetaSploit这种工具都源自国外,并且行业大量使用盗版。正版使用方也都是核心机密单位。之所以如此,就是国内一直以来一个能打的、与之抗衡的竞争对手都没有。”司红星表示。
后来,基于YakLang这门完全自主开发的语言,四维创智推出了Yakit。四维创智将Yakit定义为安全圈的“单兵作战工具”。它完善了上层国产替代场景,把那些高频使用且具备高门槛的网络安全工具用YakLang进行了一次重写,从研发语言侧实现了安全能力与安全产品的融合,以DSL模式向行业输出安全能力基座和技术解决方案。
“现在一个趋势是,国内大量白帽子在慢慢抛弃国外收费或破解的BurpSuite,转而用Yakit这种免费开源的工具。”司红星说。这使得,国内的网络安全从业者不仅工作效率得到了提升,同时在底层源代码上更加自主可控。
司红星也解释称,YakLang其实本质上无法完全替代Java或者是Python通用语言,但是可以在安全建设领域降低对这些语言的使用需求,毕竟直接使用YakLang就可以快速完成绝大部分核心能力的建设。
对此,如风评论称,YakLang确实可以降低网络安全工具的开发门槛,但是他也指出,YakLang后续发展比较关键的在于“推广和完善”。“覆盖的场景、开发者社区仍处于完善过程中,并且缺乏典型的三方应用来支撑推广。除此之外,还需要有权威机构背书,有持续的推广资金,有标杆的应用场景等等。”如风分析。
司红星显然也意识到了这一点,2021年10月跟随Yaklang的上线,四维创智推出了Yakit社区版,近期同步上线了“Ya!一刻安全社区”。不久前,在商业化上也发布了Yakit企业版。
“选择开源主要是希望网络安全从业人员都能够为Yaklang持续开发做贡献,能够不断完善合作共赢。”司红星说。值得一提的是,四维创智近期分别在ISC 2022创新独角兽大赛中获得冠军,在腾讯数字安全创新大赛中获得最具技术创新奖。这其实也证明目前业界对于Yaklang的认可与关注。后续,Yaklang以及其社区的健康和持续发展,还需要业界共同促进。(本文首发钛媒体APP 作者 | 秦聪慧;应访谈对象要求,文内如风为化名)