2021年6月23日,由重庆信息安全产业技术创新联盟主办的“2021软件开发安全与效能技术论坛(重庆站)”圆满结束。本次活动以“安全赋能软件世界”为主题,邀请了产业、学术、技术社区的软件与安全行业大咖,分享软件安全技术领域的深度创新和最佳实践。
开源网安西南营销中心营销总监郝云龙,西南营销中心技术总监林华志等受邀参会。会上林华志以“软件供应链安全的现状与对策”为题,发表主题演讲。
现场演讲
演讲摘要
1、开源组件的使用现状:开源组件在现代应用中的占比达到90%,2020年全球开发者累计请求下载开源组件和容器的数量超过1.5万亿个,企业平均每年下载开源组件超过37万次。开源组件已经成为当今软件应用程序中不可或缺的一部分。
2、开源组件的安全现状:在开源组件数十亿次的下载中,有10.4%存在至少1个已知漏洞,平均每个应用程序存在38个已知开源组件漏洞,近40%的npm包依赖于具有已知漏洞的代码。开源软件面临的最大威胁,是针对开源软件供应链的攻击,据了解,这一类型的攻击数量在2020年增长了430%,而且还在持续升高。
3、我国软件产业蓬勃发展:工信部公开数据显示,我国软件业务收入保持了较快增长。2020年,全国软件和信息技术服务业规模以上企业超过4万家,累计完成软件业务收入81616亿元,同比增长13.3%,全国软件和信息技术服务业从业人数超过704万。
4、软件安全态势令人担忧:截止到2021年6月,CNVD(国家信息安全漏洞共享平台)已收录的各类安全漏洞信息超过15万条,超过91%的安全漏洞发生在各类应用软件本身。企业使用开源软件面临的主要风险包括:安全漏洞、许可合规、政治环境因素等。
安全漏洞引发的风险案例
2017年美国征信巨头Equifax公司,因Apache Struts组件存在安全漏洞(CVE-2017-5638)未及时修复,被黑客攻击导致1.4亿人个人信息泄露,时任CEO Richard Smith辞职,赔偿4.25亿美元。
许可不合规引发的风险案例1
Oracle索赔Google 88亿美元事件,此案例的背景是,在Google供职的一个程序员,直接从OpenJDK复制了9行代码到Google的Android项目中,但是Android项目没有按GPL兼容的方式授权,而OpenJDK项目的著作权属于Oracle,因此触犯了Oracle的著作权。
许可不合规引发的风险案例2
中国GPL专利诉讼第一案——2019年11月6日,数字天堂诉柚子科技侵犯计算机软件著作权纠纷一案,由北京市高级人民法院做出二审终审判决,认定APICloud软件复制并修改HBuilder软件中的三个插件的行为,构成对数字天堂公司复制权、改编权及信息网络传播权的侵犯,判令柚子公司停止侵权并赔偿71万元人民币。
政治环境因素引发的风险案例1
2020年12月,全球最著名的网络安全管理软件供应商SolarWinds,遭遇国家级APT团队高度复杂的供应链攻击并植入木马后门,导致美国9家联邦机构和多家企业客户全部受到影响,成为年度最严重的软件供应链安全事件。2021年5月,美国总统拜登签署“加强国家网络安全的行政命令”,明确提出要增强美国联邦政府的软件供应链安全。
政治环境因素引发的风险案例2
2020年8月13日起,DockerEE和DockerHub禁止被美国政府列入贸易管制“实体清单”的企业使用;2020年12月,红帽公司宣布将于2021年底停止维护CentOS 8等。
5、我国国家层面网络安全战略:国家十四五规划提出,要打造数字经济新优势,加快推动数字产业化;营造良好数字生态,加强网络安全保护;加强国家安全体系和能力建设,健全国家安全审查和监督制度,全面加强网络安全保障体系和能力建设。
6、等保2.0(信息安全技术网络安全等级保护基本要求,2019年5月10日发布),对自行软件开发、外包软件开发的软件开发安全均提出了具体要求。
对自行软件开发的要求:
二级
a)应将开发环境与实际运行环境物理分开,测试数据和测试结果受到控制;
b)应在软件开发过程中对安全性进行测试,在软件安装前可能存在的恶意代码进行检测。
三级、四级
a)应将开发环境与实际运行环境物理分开,测试数据和测试结果受到控制;
b)应制定软件开发管理制度,明确说明开发过程的控制方法和人员行为准则;
c)应制定代码编写安全规范,要求开发人员参照规范编写代码;
d)应具备软件设计的相关文档和使用指南,并对文档使用进行控制;
e)应保证在软件开发过程中对安全性进行测试,在软件安装前可能存在的恶意代码进行检测;
f)应对程序资源库的修改、更新、发布进行授权和批准,并严格进行版本控制;
g)应保证开发人员为专职人员,开发人员的开发活动受到控制、监视和审查。
对外包软件开发的要求:
二级
应在软件交付前检测其中可能存在的恶意代码;
应保证开发单位提供软件设计文档和使用指南。
三级、四级
应在软件交付前检测其中可能存在的恶意代码;
应保证开发单位提供软件设计文档和使用指南;
应保证开发单位提供软件源代码,并审查软件中可能存在的后门和隐藏信道。
7、企业如何应对:企业可以采取“管理先行+技术并重”的双轮驱动模式,建立软件供应链安全管理制度,引入S-SDLC安全开发生命周期管理流程,采用专业工具和服务实现对软件产品的代码审查和缺陷检测。
建立软件供应链安全管理制度
1、制定差异化的软件分类引入和处置标准
2、落实软件管理职责分工
3、建立从“准入→上线→版本管理→运维→质量评估→下线”全生命周期的管理流程
4、加强软件供应链的安全审查力度
引入S-SDLC安全开发生命周期管理流程
S-SDLC(Secure Software Development Lifecycle),是安全软件开发生命周期,是一套完整的,面向Web和APP开发厂商的安全工程方法。S-SDLC定义了安全软件开发的流程,以及软件开发各个阶段需要进行的安全活动,包括活动指南,工具、模板等。目的是帮助软件企业降低安全风险,提升软件安全质量。
8、开源网安最佳实践案例:作为国内领先的软件安全全生命周期(S-SDLC)解决方案提供商,开源网安提供具有完全自主知识产权的系列化软件安全产品(IAST、SAST、SCA、FUZZ、RASP)及解决方案,帮助用户实现快速交付的同时,保障软件安全质量。在某互联网银行案例中,开源网安通过部署开源组件安全及合规管理平台SourceCheck,及定制化方案,帮助用户实现对开源组件的实时智能检测、整理和收集,在大幅提高其安全风险发现效率和反应速度的同时,也使其安全团队可以站在更高的维度和视角制定安全策略,以便后续进行更好的风险防范。
在此次会议上,开源网安与重庆市经济和信息化委员会、西南大学、西南计算机有限责任公司等在软件开发安全领域达成多项共识,未来将有更多合作空间。