提升软件供应链安全,提升开发者账号保护将是不可或缺的关键 – 十轮网-九游会官网真人游戏第一品牌

传统密码安全性不足引发诸多问题,账号遭盗用的事件也层出不穷,激活双因素认证、两步验证的机制,已是近年最常呼吁的安全观念之一,这股风潮,陆续开始吹向软件开发界。

最近就有一项消息引发关注,那就是全球知名程序代码共享与版本协作平台github宣布,2023年底前在github.com贡献程序代码的所有用户,都必须激活一种或多种形式的双重验证(2 factor authentication,2fa)。

很多人可能会认为这不是新议题,毕竟激活双因素认证、两步验证(2-step verification,2sv),这样的保护账号安全观念早已呼吁多年,然而,对于一般用户、企业与组织而言,最近才开始重视这项议题,而攸关程序代码安全的开发者,按理来说,应该会有更清楚的认知,事实却不然。

根据github公布的最新统计数据显示,以活跃用户而言,仅有16.5%激活2fa,而npm用户激活2fa的比例更低,只有6.44%,这样的结果令人忧心。

毕竟,程序开发者常用的云计算平台与工具并不少,包括程序代码管理的github、bitbucket、gitlab,程序代码构建的jenkins、bamboo,以及项目关注与协同管理的jira、confluence,这些仅是一小部分,如今github在此议题抱持的态度最积极,率先采取更多行动。

保护软件供应链最源头的账号安全,github将强制激活mfa

毋庸置疑,软件供应链是如今最受关注的安全议题之一,除了安全界早已提倡安全软件开发生命周期(ssdlc),近年也强调需改善漏洞发现与修补,以及推动软件物料清单(sbom)等,其中有更多关注是放在开放源码软件,毕竟绝大多数开发人员不会从头开始构建软件,而是站在巨人的肩膀上,活用这些成果。

然而,从软件供应链源头来看,所有人都很清楚程序代码的安全性会是关键,但撰写、保管、发布程序代码的“开发人员”,更是不能忽略的重要环节。尽管大多数开发者知道要保护自己的计算机,注意上网安全,但对于程序撰写、协作使用的工具与平台,以及开发人员本身账号的安全性,可能并未清楚认知对于软件安全带来的冲击,这些部分若出现安全问题将会带来严重影响,事实上,我们甚至可以说,这是软件供应链最前面的一道防护。

面对软件供应链的账号安全议题,不只是软件企业、企业、政府担忧,因而决心采取更积极的防范措施,与程序开发者密切相关的公用平台也展开行动。如前所述,github在这方面的动作频频,他们是全球最大开源程序代码平台,自然也背负着众人期望。github首席安全官mike hanley指出,软件供应链安全需从开发者做起,为防范开发者账号遭社交工程与账号劫持,避免此类攻击将是确保供应链安全的第一步,也是最关键的一步。

事实上,为了提升用户账号安全,github在近年已经祭出不少新政策。例如,2019年7月,github已提供设备验证机制,要求未激活双重验证的github用户,一旦通过陌生设备进行访问,需要额外的验证,也就是以电子邮件提供验证码的方式来确认用户身份;到了2020年11月,github又强制要求所有git操作及api调用,都需经由基于token的身份验证方式连接。

然后,仅凭这些措施来保护还不够,双重验证将是下一道重要的防线,而且将逐渐转变成强制所有用户配合。

开发者账户被劫持导致组件被植入恶意程序,已有多起事件

为何各大开发平台现在更关注该问题?这要从近年的实际威胁事件看起。

2018年7月,有位代号为pronebird开发者指出,黑客入侵javascript程序代码检查工具eslint,并在npm平台,发布包含恶意程序的eslint 3.7.2版,一旦用户安装此版本组件,恶意程序代码将执行窃取开发者的npm账户或其他资讯。

这样的事件,到了最近半年仍持续传出,并且是接二连三发生。例如,在2021年10月22日,热门npm组件uaparser.js的作者表示,疑似有黑客劫持他的npm账号,并发布3个可能被植入恶意程序的uaparser.js版本,分别是0.7.29、0.8.0与1.0.0版,而且,他无法取消发布这些版本,只能紧急通报npm support,并通过警告消息提醒其他开发人员,后续,github也对这起植入恶意程序的事件发布安全公告,并标示为重大级别。

接着,2021年11月,又有两起类似的事件。首先,名为coa(command-option-argument)的热门npm组件,传出遭植入恶意程序;接着相隔数小时,又传出另一个名为rc的npm组件也发生类似情形。github在11月4日,也紧急公告这些组件遭植入恶意程序。

上述这些事件,引发整个软件开发界的关注。最主要原因,开源软件安全所带来的牵连与影响极大,以上述coa的npm组件为例,该组件是提供开发者以命令行下达指令的解析器,概估github上面有5百万个开源项目采用,且每周下载量超过9百万次,而rc的npm组件,是1款组态下载器,它本身的每周下载量更是超过1400万次。

这显示出,一旦开源项目的开发者账号被黑客劫持,不仅取而代之,还冒名替其发布已植入恶意程序的开源组件,这样的供应链攻击方式,很可能使其他开发者,在不知情的情况去下载安装或使用。而且,越热门的开源组件,相关的牵连越广,就算该组件很冷门,还是有可能造成坏影响,而且,很有可能导致众人越晚发现异状。

一般而言,开源软件安全的防护环节很多,像是去年底被披露的log4j漏洞,突显出改善漏洞的发现与修补及应对,就是一大挑战,因此不论是扫描能力的强化、程序代码审核、漏洞修补应变,以及通过sbom掌握采用的关键开源组件,确保开源软件的安全生产也同样重要,不只从软件设计的层面着手,并要解决恶意假冒的问题,以及确保上游软件组件确实是真正的开发者所打造。

基本上,光是改善漏洞发现与缩短修补应变,就已经令各界应接不暇,若再因为开发者账号自身的防护不周,使得上游组件发生被植入恶意程序的情况,将使确保软件供应链安全这事更添动荡与麻烦。因此,如何降低这类问题的发生,双重验证的激活至关重要,现在正逐渐从“有它可以更好”,转变成“必备”的要求。

多起黑客接管开发者账号事件,新版组件被嵌入恶意程序

近期开发者账号被劫持的安全事件接二连三传出,根据github安全公告显示,在2021年10月与11月有3起事件,包括uaparser.js、coa、rc的npm组件,因为开发者的账号遭到劫持而遭植入恶意程序,这也促使平台企业祭出新政策,例如,github今年2月开始针对前100大npm组件的所有维护者,强制要求激活双因素认证(2fa)。

宣导激活双重验证不是新鲜事,现在陆续已成强制要求

激活mfa保护自身账号安全,并非新议题,我们关注的是,过去各界已不断呼吁,为了用户自身账户安全,避免遭密码暴力破解或网络钓鱼攻击,应激活双重验证,然而,各种应用系统背后的程序开发人员,对于所用的开发环境账号却没这么做,不免让人觉得很失望。

回顾这几年,为了强化线上服务账号安全,双重验证是关键,许多线上服务已提供两步验证或双重验证,并且持续提升验证机制的强度,例如从手机接收短信otp,转向使用app验证,或是支持fido无密码的验证机制。

只是,这些年来,上述这些保护手段都只是让用户自行选择激活,并非强制,于是,我们还是经常看到许多安全专家向大众呼吁:为了用户个人自身的账户安全,应激活双重验证。

但在相关威胁日益严重之下,不论是设置弱密码或相同密码的情形,以及帐密被窃取的状况,相当泛滥,而这些问题与导致的各种安全事件一再发生,促使许多平台企业在强化账号安全的面相上,开始转为更严格要求的态度,设法解决仅依赖单一密码造成的各式问题。

例如,微软在2018年,开始声明密码时代即将终结,强调password less以及更安全的多因素验证,尽管那时还没迈向强制激活,但已打响无密码登录的声势。近年该公司也陆续开放更多系统的身份,支持这种做法,例如,所有的microsoft account、azure用户账号,现在都可以利用无密码方式登录,而且,到2021年为止,已有1.5亿用户及所有微软员工,都选择这样的登录方式。

另一家科技大厂google在2021年5月宣布,将强制用户启动账号两步验证(2sv),关于推动的情形,2022年2月google指出已让1.5亿用户默认激活,未来将陆续波及所有google账号用户。毕竟,以云计算邮件云计算硬盘等服务而言,帐密被盗用的风险带来的冲击非常大,不仅是用户资料被窃取、被看光,甚至不小心重要敏感个人信息也包含在内,并且也是许多云计算服务忘记密码时,接收认证码的渠道之一。

换言之,随着如今的威胁态势,近年最大的改变就是,更多的平台企业开始陆续改变政策,积极推动无密码登录,以及宣布将强制激活双重验证。

当然,或许这样的措施也与实际的安全威胁态势有关,毕竟,一般线上服务身份冒用与资料窃取安全事件,在前几年就已日益严峻,而软件供应链的安全事件面向广泛,相较之下,与账号安全有关的事件虽然持续发生,但可能不易一开始就聚焦于此,但也不应被漠视。

换言之,除了一般用户持续面临账号遭盗用接管的威胁,引发各界注目,开发人员对于账号被劫持的威胁,却似乎一直都太忽视。

忽视的是什么?忽视的是开发人员账号若欠缺保护,对软件供应链安全的影响极大。

规范上架应用程序开发者保护账户,苹果与google已展开行动

对于开发人员账号安全的强化,其实近年,it业界已趋向积极推动的态度。

以应用程序的发布平台的层面而言,近年两大智能手机体系已有动作,像是苹果在2019年,针对开发人员的apple id账号做出硬性规范,要求他们必须激活双因素认证,一般的apple id用户则依然可选择是否采用;针对android开发人员,google在2020年第三季末也祭出新政策,针对登录google play控制台的开发者,强制要求须激活双重验证。

这些政策的目的,无疑是要让开发者或开发商进行严谨的身份验证,避免账号遭盗用造成的安全风险,甚至防止匿名或假账户上架app。因为之前就发生多起事件,是黑客劫持开发者账号后,将成功上架的app改变原有用途,或是通过更新加入恶意功能,以此规避应用程序市场在app上架时的审查机制。

更进一步来看,应用程序及系统的发布与运维,已属于软件供应链的末端,而其本身都是由程序代码构建而成,因此像是程序代码开发协作与分享平台的开发者账号安全,同样至关重要。

针对上游程序代码开发者,github祭出一连串强化措施

时至今日,随着github的表态,更是具体点出一件事,那就是:软件供应链的安全需从开发者做起,以此带动整个软件开发生态系统的安全提升。

以github最近一连串的行动而言,为强化平台账号安全,正逐步将2fa成为必要防护措施。

首先,针对已收购旗下的npm,github在2021年底时宣布,将应对前述去年11月开发者账号未激活2fa遭冒用,而造成npm组件被置换的状况,并在今年2月1日提新要求,强制前100大npm组件的所有维护者激活2fa,接着又在3月1日将所有npm账户纳入强化登录验证,也就是针对未激活2fa的用户,当由npmjs.com网站或npm cli验证身份时,需以电子邮件发送验证码的方式来核对身份的真实性。

同时,为了让npm平台用户可以更广泛采用2fa,他们增加多项安全机制,包括:因激活2fa的用户也可能常在ci/cd持续集成工具使用自动化token,所以简化组件自动发布等流程与任务;添加token命名机制,帮助用户更容易管理token;在npm组织层面,现在也可强制所有成员激活2fa;提供专属接口,审核组织成员是否激活2fa。他们还预告npm接下来将支持webauthn,也就是支持fido实体安全密钥与生物识别方式,提供更强身份验证。

不只是针对npm平台,近年github平台的账号安全强化上,除了提供双重验证、登录警示、验证设备等机制,在2021年还有几项重要措施,包括通过ssh协议使用git操作的身份验证,将不再支持账号密码的验证方式,必须以token来验证,并且添加可利用fido实体安全密钥来产生ssh密钥。

到了2022年5月,github再次祭出新政策──将在2023年底之前,针对所有提交程序代码的平台用户,强制激活双重验证。在此项宣布中,说明了大多数的安全漏洞并非是零时差攻击造成,而是通过攻击成本低的方式进行,像是社交工程、帐密窃取或外泄及其他渠道,使攻击者能够广泛地访问受害账户及其资源,并特别点出一大关键:开发人员应该要了解账号被挟持及盗用的风险与影响:不只是私有程序代码面临被窃取的状况,也有可能是程序代码遭恶意篡改,随后将影响与此程序代码有关的任何人,而且这样的供应链安全威胁并非空想,已是实际存在的状况。

换个角度设想,身为开发人员,自然也希望下载或使用的程序代码或组件,应该依循标准程序发布,不是被黑客劫持的开发者账号所发布。

面对这样无人能置身事外的局面,每个开发人员都必须该有所行动,将激活mfa视为必要防护手段。

毕竟,基础资讯安全认知人人该有,若连激活mfa都没有彻底实施,更何况如今还要提倡种种安全软件开发教育,推动广大开发人员接受安全程序设计实务训练,避免因为开发进程紧迫,人力有限,以及未考虑到使用场景,而撰写出有漏洞的程序。尤其是开源程序代码及组件的贡献者,自己在账号安全上的忽视,可能冲击的是软件生态系统统与供应链下游。

软件供应链安全始于开发人员账号保护

对于软件供应链安全,github首席安全官mike hanley指出,程序开发者账号的保护是最源头的一步。一旦有人遭受社交工程的攻击,或面临其他身份凭证窃取及外泄的事故,有可能导致所用的各种开发平台账户蒙受遭到入侵的后果,而这将会牵连与此程序代码有关的任何人,影响整个软件开发与交付流程的生态系统。图片来源/github

提高开发者本身账号安全要求,其实也是保护整个软件生态系统的安全

广泛来看,不只在github上该重视身份安全,同性质的gitlab、bitbucket,甚至开发者常使用的其他平台与工具也然。

除了一般用户要有自觉,服务平台及工具企业也应设备提高安全性要求。对于使用这些平台的企业账号管理者而言,在安全策略上,也应思考是否该强制成员激活2fa,当然自身也要查看对于现行环境的影响,像是相关自动化工具是否与2fa兼容等种种情况。无论如何,已有不少重视安全的企业,早已规范需强制激活mfa或2fa,或是导入企业集中式的身份访问管理,但还有更高比例的企业与开发者尚未采取行动。

当然,开源程序代码及组件的贡献者更是要注意,不要以为自己只是软件供应链中的一个小小的螺丝,但这个螺丝的松动,可能冲击软件生态系统统与供应链下游。无论如何,强制激活2fa的趋势已成,而在github的带动之下,未来也可能在整个软件开发界开始发酵。

强化平台账号安全,还要注意不同层面风险

对于密码安全性不足导致开发者账号冒用的安全事故频传的问题之外,不只是企业程序与开源开发人员需要重视,提供服务的平台企业同样至关重要。

对于平台企业而言,不只是妥善提供强式双重验证机制,或是将相关政策转为强制激活,关于账号安全,其实还有不同层面的问题需防范,如身份验证被绕过及串联风险等,而从近期出现的安全公告与事件,也可看出有不同挑战需要应对。

举例来说,3月底gitlab修补cve-2022-1162漏洞,这是其内部团队发现的漏洞,将导致基于omniauth的gitlab社群版与企业版(ce/ee)在注册过程中,无意间设置为静态固定密码,若被黑客发现将导致用户账号被黑客接管。

另外,3月github发现黑客利用该公司授给云计算应用程序服务heroku、程序代码持续集成服务travis-ci的部分oauth凭证的部分凭证,进而访问github私有存储库的情况。

1个月之后,heroku公布调查结果,说明问题出在heroku机器账号遭黑客盗用,这不仅导致heroku数据库被访问,对方还下载集成github与oauth的客户token,使得heroku与其客户放置于github的存储库都被访问,这其实也反应出机器身份的保护与管理,同样需要重视。

美国白宫下令推动软件供应链安全,并强调mfa的重要性

美国白宫于2022年1月26日举行开源软件高峰会议,邀请相关企业共同商讨这个特殊的安全挑战,今年5月初,由linun基金会与开源安全基金会二度举办峰会,完成多项共识,并发布了开源软件安全动员计划白皮书。

关于激活多因素验证(mfa)的重要性,近期美国推动加快改善网络安全之际,也特别提及。今年3月,该国总统拜登曾呼吁民营企业与关键基础设施企业,需赶紧提升安全水准,并列出8个重点安全防护重点,其中导入多因素验证(mfa)居于第一项,其中指出,在组织系统上使用多因素验证,现在必须是强制执行,才能让攻击者入侵系统更加困难。

更大的挑战在于,软件供应链安全不只基本的开发者账号安全。目前开源软件安全基金会(openssf)持续推动此议题,产业界中,google最为积极,在过去两三年来,他们不只发布oss-fuzz及连续模糊测试九游会官网真人游戏第一品牌的解决方案clusterfuzzlite项目,希望模糊测试能真正与开发流程结合,而不是额外采取的行动,还有推动软件供应链安全框架slsa,并与opensff社群合作,发布开源项目软件安全扫描工具scorecards,将能评估项目的安全性,检验开源项目是否采用程序代码审查工具,以及ci/cd系统的配置等,目前已更新到第四版,帮助整个软件生态系统变得更安全。

但面对整个软件供应链的安全议题,尤其是最上游的开源软件安全,单靠一方之力无法解决,在今年1月底,美国白宫举办高峰会议邀集科技大厂商讨对策,到了5月初,由linux基金会与开源安全基金会二度举办峰会,并发布了开源软件安全动员计划白皮书。

其中决议将解决10大问题,包括推动安全软件开发水准教育,创建开源软件风险评估仪表板,推动数字签名增强信任,替换不具内存安全的程序语言,成立openssf开源安全事件应变小组,加快新漏洞的挖掘与修复,实施第三方审核及程序代码审核与修复,资料共享以确定关键项目,推动软件物料清单并提供安全范例与工具,以及改善供应链需强化开源软件开发系统、组件管理器与部署系统。

账号劫持攻击普遍,资讯及开发人员都忽视此类威胁

关于激活多因素验证(mfa)或双重验证(2fa)的现况,近期有两项统计数据受关注,透露出开发人员对此重视程度的不足。

数据1:在2022年5月初,github首席安全官mike hanley宣布平台将在2023年强制激活双重验证(2fa),同时指出目前github活跃用户中,仅有16.5%激活2fa,而npm用户的比例更低,只有6.44%激活2fa。

数据2:在2022年2月初,微软新发布《网络信号》(cyber signals)报告,首先以身份识别为主题,其中指出微软azure服务用户中,采用高强度的身份验证机制仅有22%,显示多数用户在身份认证上仍有待强化。

关于身份安全威胁的态势,以这类劫持用户账号的攻击而言,微软也提供2021年的现况说明。例如,微软在azure ad上,侦测并封锁了256亿次通过暴力破解的攻击,以及通过microsoft defender for office 365拦截了357亿封的网络钓鱼邮件与恶意邮件,这其中其实也意味着黑客无所不用其极地企图劫持用户账号。

因此微软建议,各大企业组织应提高安全水准来降低风险,至少做到几项基本的网络安全,将能防范绝大多数的安全攻击,微软认为这至少防范98%的安全攻击。具体而言,包括激活多因素身份认证(及持续审核账号权限,检查与监控所有管理者账号)、保持系统最新版本与落实安全性更新、执行最小访问权限原则,以及进行资料保护等。

对于上述威胁态势,其他安全企业也有类似观察。例如,安全企业cyberark根据mitre att&ck for enterprise所列的攻击手法,对企业it人员进行调查,结果显示:排名第一的风险领域是身份访问(40%),其次是躲避防御(31%)、执行(31%)、初期访问(29%)、提高权限(27%)。而且,cyberark强调,在加速数字化的局势之下,使身份数量爆发性增长,根据他们统计,在每个组织中,人类与机器身份数量已高达10万个以上。

从上述种种调查结果来看,黑客入侵企业取得身份识别及横向攻击,已是当今黑客攻击手段的一大主要手段,甚至从软件供应链源头的开发者用户账号下手,这已在在突显身份识别安全的重要性。

发表评论