【51CTO.com原创稿件】随着互联网行业的飞速发展,IT从业者成为了一个备受关注的群体,“程序猿”、“码农”、“攻城狮”这些绰号中多少都带着些许的自嘲味儿,因为随着年龄的增长,他们面临着越来越窄的职业上升通道,在我国,似乎很少看到40岁以上的程序员,35岁成为了IT从业者的一道坎。
刘新铭先生,鉴释科技联合创始人兼首席架构师,有着约30年的IT从业经历,从敲代码做编译器,到管理工作,从risk architecture开始,从大电脑到小电脑,到手机,到物联网,再到超大型的云计算,可以说刘新铭先生参与了信息科技的整个发展过程。
鉴释科技联合创始人兼首席架构师 刘新铭
经过了十余年的一线开发工作和十余年的管理工作,刘新铭先生选择了创业。“创业有两个目的,一是继续做创新的事业,二是想要找对的人,培训好,然后组织一个高效能的团队。创业是希望为员工服务,让所有员工的潜能发挥到极致。”刘新铭先生表示。
创立鉴释科技的初衷:发现bug,修改bug
软件无处不在,当今软件已经渗透到了我们的工作、生活、娱乐的方方面面,软件正在改变世界。客观的说,所有的软件都存在或大或小的问题。据统计,每1000行代码就会至少有一个bug,存在安全问题;每1400行就会有严重的安全问题。在80年代,一个大的软件约有1万行的代码,90年代是几十万行,2000年之后是百万行,现在是千万行。也就是说当今千万级的软件会有约100个bug,这些bug往往不会被发现,而是等被黑客攻击的时候才被发现。
鉴释科技要做的事情就是主动发现这些bug。刘新铭先生解释说,这些问题其实都是在软件开发的过程中,思考的不够周密,对接的不够流畅。所以一个好的环境要容错,容错的同时要能够自动纠正错误,这正是鉴释科技要做的事情。
把静态代码分析做到极致
目前,软件应用安全测试主要有三种方式:动态代码分析、静态代码分析、交互代码分析。静态代码分析是在不实际执行程序的情况下,对代码语义和行为进行分析,由此找出程序中由于错误的编码导致异常的程序语义或未定义的行为。通俗的说,静态代码分析就是在代码编写的同时就能找出代码的编码错误。静态代码分析不需要等待所有代码编写完毕,也不需要构建运行环境,编写测试用例。它能在软件开发流程早期就发现代码中的各种问题,从而提高开发效率和软件质量。
爱科识是鉴释科技的用于静态代码扫描(SAST)的下一代源代码分析工具,使用深层的编译器级别技术来检查数据流,分析软件应用程序,从而提高缺陷检测的准确性。
爱科识通过集成到软件开发过程中,为企业提高生产效率。通过分析识别可能导致缺陷的源代码,避免内存污染、核心转储、缓冲区溢出、非法操作,以及空指针等问题的出现。爱科识的算法主要包括数据流分析、控制流分析、上下文敏感度分析、对象敏感度分析、跨程序分析,以及跨文件分析。同时, 它最大限度地减少了误报的数量,以确保调试的效率。
刘新铭先生对此进行了深入浅出的讲解:软件的bug往往出现在“跨界”的时候,如从一个函数跳到另一个函数,从一个模块跳到另外一个模块。如果检测不好互动的问题,不能准确的判断执行的状态,就无法得到准确的数据,也就无法精准的分析出来哪个地方可能会有安全隐患。这种跨函数的赋值追踪,是鉴释科技静态代码分析工具的最大优势。
未来会做更加专业的交互式代码分析
静态代码分析的弊端在于随着现代软件系统规模越来越大,系统复杂度也越来越高,从传统的单机系统变为分布式系统,同构系统变为异构系统,而且软件开发的编程语言也从使用单一的语言发展为多种语言协同开发。这些变化都对静态代码分析工具带来了巨大挑战。“不能把所有的源代码都拿到”是静态代码分析工具面临的最大挑战。
刘新铭先生透露,交互式的代码分析工具将是鉴释科技未来发展的一个方向。交互式的代码分析工具就是在与库对接的地方,建一个防火墙,做各种检测:“拿进来的东西是否符合规格,送出去的东西是否符合公司的规范,资讯是否有泄露。”当然,交互式也不一定是完善的,因为如果防御做的极端的严谨,就会变的封闭起来,太松的话又起不到安全防御的作用。鉴释科技下一步的目标就是“要明确的知道哪个地方可以松一点,哪个地方需要紧一点,该松的地方松,该紧的地方紧,这样才能实现顺畅的互动。
让软件开发更高效
回到开篇所说的工程师环境,除了必要的代码分析工具,企业文化也是非常重要的一环。当今中国大部分企业的架构是负责软件开发的人员是开发工程师,负责测试的人员是测试工程师,开发和测试是分开的。大部分的开发人员都不会去测试自己写的代码,这样的工作方式导致了开发和测试的割裂,在寻找和修改bug的工作上浪费了很多时间和精力。如果开发和测试工作相结合,即开发工程师在写完代码后就自己先进行测试,由于开发者更加熟悉自己写的代码,所以这样的工作方法会更加高效。 “希望鉴释科技未来会改变这种现状,让中国企业的软件开发变得更高效!”刘新铭先生表示。
【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】