“Talk is cheap, show me the code”你一行代码有多少漏洞?
![“Talk is cheap, show me the code”你一行代码有多少漏洞?](https://static001.geekbang.org/infoq/34/34d7fb12e1ae6250621dfab2c4516ba8.jpeg)
受访者 | 梁宇宁
记者 | 伍杏玲
出品 | CSDN(ID:CSDNnews)
平常程序员喜欢说“Talk is cheap, show me the code”这句话,可是你知道你敲下的一行代码背后,有多少漏洞?据《代码大全(第二版)》显示,平均而言,软件交付中每 1000 行代码大约有 1-25 个错误。
如何高效化、自动化、准确定位代码漏洞成为不少开发者和管理者头疼的问题。关注软件质量的鉴释于 2018 年成立,推出的爱科识静态代码分析工具得到较好的反响,目前刚完成 A+ 轮融资的鉴释发展势头强劲,他们对于静态代码分析有怎样独到的理解与经验?未来还会放哪些“大招”,给我们带来哪些惊喜?
对此,CSDN(ID:CSDNnews)专访鉴释联合创始人兼 CEO 梁宇宁,聊聊软件质量的那些事儿。
![](https://static001.geekbang.org/infoq/8c/8caf15f59b46022a01fa2999f977c5b0.webp?x-oss-process=image/resize,p_80/format,jpg)
鉴释联合创始人兼首席执行官梁宇宁
20 年 IT 老兵,孜孜不倦只为软件质量
在创立鉴释前,梁宇宁作为一名 20 多年的 IT 老兵,基于多年软件开发和管理经验,几年前梁宇宁洞悉到中国静态代码分析市场上的空白,“因为就软件开发生命周期(SDLC)来说,国外已有一些成熟的工具,但中国市场尚未成熟,大家不重视检查源代码的质量”。因此在 2018 年初,梁宇宁创办专注软件质量的鉴释。
据统计,相比在应用程序启动后识别错误和修复,在编码早期阶段识别代码错误并修复可节省 15 倍的成本。在开发生命周期早期做软件测试可获得更高的效率的“左移”思想下,鉴释研发的漏洞扫描工具爱科识,它可集成到开发过程中,完成代码漏洞扫描,通过分析识别可能导致缺陷的源代码,避免内存污染、核心转储、缓冲区溢出、非法操作、以及空指针等问题的出现,自动化保障代码质量和提高研发人员效率。
踩过技术人踩的创业“坑”:唯技术,不注重产品
尽管梁宇宁在 IT 界“摸爬滚打” 20 载,谈到创业踩过的坑,梁宇宁坦言道:“由于我创业经验不够,创业难以达到‘天时地利人和’六字,踩过的坑不少。”
刚开始创业时,梁宇宁犯了技术人普通会犯的错:太注重核心技术的验证,忽略产品功能。他建议技术创业者可学习乔布斯的思想:先要把产品做好,再讨论用使用哪些技术来解决客户问题,不是先从技术考虑产品方向。
所幸的是,团队迅速发现并纠正此问题,保证团队的顺利运行。功夫不负有心人,团队的收获接连而至:先是核心技术算法在美国 NIST 软件质量基准获得较好的结果,紧接着鉴释顺利完成 A+轮融资。
梁宇宁表示,本次融资后,今年主打将技术产品化,完成下一轮的产品线规划,对 DAST、IAST 技术做原型验证,争取在下一轮融资前,可在原型技术基础上推出更多新品,帮助开发者提高软件开发的质量与提高效率。在团队把技术产品打磨得更完美之时,同时扩大团队规模,为更多客户提供更好的服务,他十分欢迎对鉴释感兴趣的小伙伴前来加入团队。
工具解析代码,如何确认安全?
有开发者在使用代码分析工具时,往往存在疑问是否会存在安全问题。对此,梁宇宁表示,从自己的第一份工作开始,国外已有代码分析工具和产品。因为海外工程师的薪资较高,管理者非常注重效率和产品质量。
梁宇宁在华为工作时,他深刻认识到华为对于质量的要求非常高,那时候的梁宇宁和同事用国外的代码分析产品较多。而当时国内产品使用的人较少,毕竟做这类产品的门槛很高。
由于鉴释创始团队(如鉴释首席架构师刘新铭、首席技术官陈新中等)均是资深编译器专家出身,而编译器是对于理解代码的程度要求最深的技术,于是在打造爱科识时就应用相关技术来分析哪些代码好,哪些代码不好,哪些可能存在漏洞。相比竞品而言,技术上是革命性的改变,即爱科识应用编译器技术来解决代码分析的核心问题。
代码分析工具的难点
在不同行业不同系统运行一款代码分析工具时,将会遇到一些难题。梁宇宁介绍道:
在 AIoT 上,由于其本身碎片化的特性,每家 AIoT 企业的系统构建方式不尽相同,对代码安全和质量的认识还有改进空间。对此,鉴释和 AIoT 厂商进行深入的合作,增加培训交流,引导其对于物联网软件跟质量的认知与了解。
如今构建软件应用的复杂度很高,例如一个安卓应用不仅使用 Java、C 语言,还有系统调用代码。如果没有一个实现跨语言或者跨模块的技术的全程分析工具,很难提供高准确率、漏报率的。
对此,爱科识提供跨语言、跨模块,跨平台服务,涵盖从用户态到内核态技术。爱科识通过解析企业系统的构建环境,给“配置”一个特别的编译器用于构建工程,如此一来,可分析不同企业系统的代码问题并上报给企业。
梁宇宁关注中国开源技术的发展,曾在 CSDN 撰写一些开源文章。目前爱科识面向 ToB 和本地部署,未来梁宇宁将计划和 GitHub、GitLab、Jenkins 等开源伙伴合作,爱科识助力开源代码提高质量。
谈及爱科识未来是否会开源?梁宇宁表示,将在未来时机成熟时考虑。发展生态,在代码合规和规则制定上,为更多行业做更多贡献更多的规则和更多语言支持。
无需担心无代码浪潮
谈及无代码/低代码浪潮下,不少开发者会有一些担忧,TA 是否对应用程序开发、代码分析工具有所影响?
梁宇宁说:“不用太担心。无代码/低代码已流行了几十年,TA 像是乐高玩具,但很多产品不是用‘乐高’就做出来。因为一些软件业务不可能太模块化,或者太自动化地生产,最终需要开发者自己来完成业务逻辑代码。”
早在梁宇宁在诺基亚工作期间,已有自动化工具做业务代码,对于逻辑简单、标准的业务,可以拿着 Plato 画的流程图通过工具便可完成简单功能机的应用。但是对于逻辑非常复杂的业务,开发者不可能不写代码,不可能没有写代码的人,不可能没有代码错误。所以它对于这种代码自动化趋势,梁宇宁是“不乐观,不悲观”。
梁宇宁进一步说道,低代码可能会减少一些写业务代码的职位,但是对于核心科技,特别是当前局面下,开发者有较大的发展空间的,毕竟像操作系统等技术很复杂,依赖的核心技术库就超过 1000 个,所以在基础软件上,中国开发者还是大有可为的。
对 CSDN 寄语:自由、开放、追求
谈及和 CSDN 的缘分,时间还得回到 20 年前,还在读大学的梁宇宁通过同学阅读到 CSDN 主办的《程序员》杂志。不知不觉,今年已是《程序员》杂志的 20 周年了,他希望 CSDN 和打造软件、程序艺术一样,需要一定自由的环境和非公益性的环境发展。正如“在软件核心技术上要坐冷板凳至少十年,才会到有大回报的机会。”最后梁宇宁给 CSDN 送上“自由、开放、追求”的寄语来结束本次访谈。
梁宇宁,鉴释联合创始人兼首席执行官。在创立鉴释前,梁宇宁先生在世界 500 强企业(包括三星、诺基亚、华为)和初创科技公司领导软件开发工作,他拥有超过二十年的软件开发和管理经验。在他的职业生涯中,他曾在中国、韩国和欧洲多个国家的国际性企业就职,对全球的科技和软件安全行业有深刻的行业洞见。梁宇宁先生毕业于南洋理工大学,并获得工程硕士学位。
评论