理清逻辑,确保云原生时代应用开发的全生命周期安全

华为云开发者社区 华为云开发者社区     2023-03-09     773

关键词:

摘要:正所谓“道高一尺魔高一丈”,不断的攻防对抗中,安全设计者也面临很大的挑战。华为云MVP毛哲文是一个偏向于安全防守的安全工程师,他认为,“攻防之间要做到平衡,知己知彼才能做一个好的安全解决方案。”

本文分享自华为云社区《华为云MVP毛哲文:理清逻辑,确保云原生时代应用开发的全生命周期安全》,作者: 我们都是云专家。

网络安全猛于虎,一个小的漏洞可能会导致业务系统全线崩溃,损失上千万。另一方面,网络安全又相对非常复杂,既有形形色色的安全技术,又有各式各样的安全工程能力。

正所谓“道高一尺魔高一丈”,不断的攻防对抗中,安全设计者也面临很大的挑战。华为云MVP毛哲文是一个偏向于安全防守的安全工程师,他认为,“攻防之间要做到平衡,知己知彼才能做一个好的安全解决方案。”

下面一起跟随这位在安全领域耕耘多年的技术老兵,看如何根据业务构建安全方案,将安全技术系统性的落地。

网络安全问题千差万别,但核心是相似的

从大学到工作,毛哲文一直和安全打交道,从操作系统安全、应用层的安全、移动应用安全到云计算安全、web应用安全,毛哲文一点点体会到了安全的趣味性,以及蕴藏在其中的安全架构之美。

在一系列与安全相关的工作中,毛哲文总结:

“虽然研究的领域不一样,但最基本的安全原理、安全访问控制模型不会有太大差异。当你从安全的本质、安全架构的视角去解决各种安全问题,即便这些问题在系统中的层级不同,但各个层级之间的关联性、依赖性都会非常强。安全架构与安全能力的抽象,会让复杂的问题变得简单。”

也就是说,不同领域的网络安全问题表面看起来千差万别,大相径庭,但往往要解决的核心问题又是高度相似。

目前,业界广泛应用的安全目标是CIA,即机密性、完整性、可用性。但不同领域和不同行业对具体的“机密性”解读会略有不同。比如对一个企业级应用来说,机密性更多的指应用的业务数据只能被该访问的人/应用/服务访问;而对一个移动终端系统应用来讲,机密性往往更侧重于对终端用户数据、个人隐私的保护能力。

从业务、架构看安全解决方案的实施

基于多年经验,毛哲文也摸索出了构建安全解决方案的通用路径。他强调:“安全解决方案不能脱离具体的业务,同样也离不开安全架构及软件架构。

做安全,首先需要知道具体的业务特征,据此来制定相应的、具体的安全目标。因为只有清楚具体的业务场景、业务的核心资产,才能明确安全“机密性”保护的目标对象。在此基础之上,更好地做安全威胁分析,

“用安全的语言来讲,做安全设计要清晰地知道系统中的主体是谁,客体是谁,确保正确的主体正确地访问客体资源。”

毛哲文提到的另一个关键是安全架构。

安全要解决的从来都不是局部性的问题,但往往一个局部性的问题会导致整个安全防守系统的失效。所以攻和防的对抗会处于不对称的地位。从防守方来看,如何将一个复杂的系统做到系统性安全,安全架构就显得非常重要。

安全架构可以帮助我们系统性地看待和解决安全问题。一个系统无论有多复杂,都能从安全架构的层面进行抽象、建模,然后实施具体的安全策略,做到系统性的安全完备。即便有局部的漏洞发生,也是可以通过漏洞的修复来弥补,从容应对持续的攻防对抗。另外,如果系统同时还配备安全感知、安全检测、安全恢复能力,系统也能更好地应对局部的风险,让防守变得更加积极。

相反,如果一个系统没有完备的安全架构设计,只是试图从局部解决安全问题,它就无法应对持续的攻防对抗过程,系统的安全也无法进行完备性证明。

综上,设计、开发、交付、运维一个高安全质量的系统是个复杂的系统工程。毛哲文强调,“安全技术能力和安全工程能力是融合是至关重要的。”

在互联网时代,应用现代化的目标就是让开发者更多的聚焦业务逻辑,让应用快速迭代,从而满足企业的竞争力要求。这便对基础平台以及配套应用生产工具提出更高的安全要求,更加注重安全技术和安全工程能力的完美融合。

也即应用生产和运行的基础平台要具备完备的安全技术能力,如隔离与访问控制技术、机密性保护技术、完整性保护技术、安全韧性技术等。同时,平台也要有一套完备的安全工程能力,让应用在生产和运行过程中能快速敏捷的落地,并满足高安全的质量要求。

毛哲文以云原生安全为例,详细谈了谈如何保证应用的全生命周期安全。

云原生下,如何确保应用开发的全生命周期安全?

当下云原生正在改变每个行业中的各种组织,因为它能使这些组织运行的更加快速、更灵活、更加智能化。华为云也一直致力于应用云原生的现代化能力,为云原生应用开发的高效和安全打造竞争力,确保开发者快速生产和部署安全、合规的云应用。

在如何支持云原生安全方面,可以先从目标切入。云原生安全的目标依旧是应用的机密性、完整性,以及服务的可用性。要确保应用的整个生命周期安全可控,以及应用的合规性,例如,个人隐私数据的合规使用等。

云应用安全逻辑视图

应用的安全可以从三个维度展开,分别是应用安全,应用的运行安全,应用的安全运维。

其中,应用安全通常包含正确的认证、鉴权机制以及最小的权限管理,即正确的访问控制,确保正确的人、正确的服务才能访问该应用的数据,或者享用本应用提供的服务。应用运行环境安全囊括了网络安全、OS安全、容器安全、中间件安全、基础设施安全等。安全运维则包括安全感知、安全响应、安全恢复。

应用的安全贯穿应用整个生命周期,以华为云DevSecOps解决方案Devcloud为例,它包含了软件的安全工程能力,通过解决方案让安全顺利左移(指应用在出生的过程中就是安全的,而不是安全后补),降低安全门槛,让安全能够敏捷落地于应用的生产、交付、运行过程。

下面,从应用的安全开发、编译构建、测试、交付到运行,详细解读如何进行安全能力的设计。

安全开发

在应用的开发过程中,提供对应的安全开发框架,框架包含统一的认证能力、数据安全管理能力、接口安全能力等,降低开发中的安全成本和安全质量。在代码提交的过程中,可以设置代码提交门禁,确保提交代码的质量。

安全编译构建

编译构建阶段可以承载比较多的安全活动,包括构建前的代码检查、开源相关的漏洞检测、隐私合规扫描、安全编译参数等。

安全测试

安全测试可以融入到应用生产的整个过程:从安全测试的设计、安全测试用例的生成、安全用例的执行,包含独立的代码测试、漏洞测试等,都可以融入应用的生产和交付过程中。

比如提供代码级的安全测试工具,既能检查代码的安全,并能给出对应的修复建议。

另一个要关注的是接口安全,对接口的设计到运行进行安全监控。例如:在设计阶段进行接口认证、鉴权、参数安全、协议安全等设计。测试用例和测试执行便与之配套展开。还可基于API级,辅助生成完备的接口测试用例,提升接口级安全。

安全交付

应用的交付应该有基本的安全检查,以及完整性保护机制,确保交付的软件在存储和传输的过程中完整性没有被破坏。

安全运行

安全运行阶段需要具备安全的运行环境,以及安全感知响应和事后的恢复能力。

安全可视化

应用的生命周期能够以看板的形式进行安全过程的可视化,以及运行状态的可视化。

最后,毛哲文强调了工具链的安全问题。他指出,云原生安全对软件工具链本身的安全提出了要求,确保软件制品在整个生产的过程中是安全的、可信的、可追溯的。尤其是很多应用基于大量的开源软件,不仅要保证自研代码的安全性,同样要保证应用依赖的开源的安全性。

虽然安全问题的解决道阻且长,但毛哲文也相信行则将至,在不断的攻防对抗中,安全工程师也能够更加从容自得。

点击关注,第一时间了解华为云新鲜技术~

从阿里云容器攻防矩阵&api安全生命周期,看如何构建金融安全云原生平台

【编者按】云原生技术正在助力银行通过差异化业务进行创新,却也带来了由于研发/运维人员对新架构不熟悉所导致的基础设施风险、业务风险及数据暴露风险。如何在飞速更迭的技术环境下保持业务持续发展,同时保... 查看详情

云原生训练营模块八kubernetes生命周期管理和服务发现(代码片段)

...时候,经历了哪些过程?initCPod状态计算细节如何确保Pod的高可用基于Taint的Evictions健康探针前置后置Post-start&Pre-stop钩子容器应用可能面临的进程中断作业2、服务发现SVC3、微服务架构下的高可用挑战负载均衡DNS负载均... 查看详情

云原生训练营模块八kubernetes生命周期管理和服务发现(代码片段)

...时候,经历了哪些过程?initCPod状态计算细节如何确保Pod的高可用基于Taint的Evictions健康探针前置后置Post-start&Pre-stop钩子容器应用可能面临的进程中断作业2、服务发现SVC3、微服务架构下的高可用挑战负载均衡DNS负载均... 查看详情

从阿里云容器攻防矩阵&api安全生命周期,看如何构建金融安全云原生平台

【编者按】云原生技术正在助力银行通过差异化业务进行创新,却也带来了由于研发/运维人员对新架构不熟悉所导致的基础设施风险、业务风险及数据暴露风险。如何在飞速更迭的技术环境下保持业务持续发展,同时保... 查看详情

亚马逊云游戏的构建运行和增长的全生命周期解读

...构:首先,需要设计游戏的架构,包括游戏的逻辑、图形渲染、音效、网络通信等方面。此外,还需要考虑游戏的用户数量、地理位置等因素,以确保游戏能够在亚马逊云服务上运行稳定。选择游戏引擎:... 查看详情

亚马逊云游戏的构建运行和增长的全生命周期解读

...构:首先,需要设计游戏的架构,包括游戏的逻辑、图形渲染、音效、网络通信等方面。此外,还需要考虑游戏的用户数量、地理位置等因素,以确保游戏能够在亚马逊云服务上运行稳定。选择游戏引擎:... 查看详情

云原生时代,开发者如何构筑容器安全?

随着数字化转型进入“深水区”,云原生改变传统的开发模式,加快程序应用的开发、交付、运维效率,充分释放云价值。容器作为云原生的代表技术,正成为资源调度和编排的标准,有效帮助企业降低IT实施... 查看详情

kubernetes已经成为云原生时代的安卓,这就够了吗?

...s上构建新的应用管理平台,提供一层抽象以封装底层逻辑,只呈现用户关心的接口,使用户可以只关注自己的业务逻辑,管理应用更快更安全。作者:司徒放导语:云原生时代,直接使用Kubernetes和云... 查看详情

kubernetes已经成为云原生时代的安卓,这就够了吗?

...s上构建新的应用管理平台,提供一层抽象以封装底层逻辑,只呈现用户关心的接口,使用户可以只关注自己的业务逻辑,管理应用更快更安全。作者:司徒放审核&校对:田玮靖、溪洋编辑&排版:... 查看详情

双11背后的全链路可观测性:阿里巴巴鹰眼在“云原生时代”的全面升级

...易,但带来的挑战是如何更精准地评估容量、调度资源,确保成本与稳定性的最好平衡。今年阿里巴巴所探索的Serverl 查看详情

双11背后的全链路可观测性:阿里巴巴鹰眼在“云原生时代”的全面升级

...易,但带来的挑战是如何更精准地评估容量、调度资源,确保成本与稳定性的最好平衡。今年阿里巴巴 查看详情

科技云报道:数字化时代云原生安全为何变得如此重要?

...”;而随着云计算概念清晰以及广泛应用,“云原生”成为了最大的机遇。如今,国内云原生同样进入深度落地实践 查看详情

xamarin.formscontentpage生命周期的困惑(代码片段)

...面意思也很容易理解,就是页面显示和消失。在一般原生应用开发中,我们经常利用的生命周期不仅是"显示"和"消失",还常用到"创建"和"销毁"两个生命周期,拿 查看详情

企业如何应对云原生时代的安全挑战?

本文整理自SUSE安全产品战略副总裁黄飞在SUSECON北京2022开源技术峰会上的主题演讲。不断缩小的安全“边界”应用软件发展平台发展线路很清晰,从最早的物理机发展到后来的虚拟机,可以运行多个操作系统在物理机上&#... 查看详情

科技云报道:实战化时代,安全托管mss更需“行业专家”

科技云报道原创。实战化时代,对政企安全能力提出了更高的要求。当“清单式”的安全服务指标难以匹配数字化应用生命周期时,降本增效的一站式托管安全运营服务MSS应运而生。随着国内MSS的逐步发展,MSS被越来... 查看详情

科技云报道:实战化时代,安全托管mss更需“行业专家”

科技云报道原创。实战化时代,对政企安全能力提出了更高的要求。当“清单式”的安全服务指标难以匹配数字化应用生命周期时,降本增效的一站式托管安全运营服务MSS应运而生。随着国内MSS的逐步发展,MSS被越来... 查看详情

行业场景智能应用,解锁边缘计算时代新机遇

简介:阿里云混合云(ApsaraStack)首个全自研原生混合云,与阿里云公共云同宗同源、经过大规模商用验证、历经多年双11考验,是阿里云建管用一体化的全栈混合云平台,助力企业级客户全栈建云、智能... 查看详情

devstream进入cncf沙箱,探索云原生时代的高效devops实践

2022年6月15日,云原生计算基金会(CNCF)宣布DevStream正式成为CNCF沙箱(Sandbox)项目。DevStream是一个开源的DevOps工具链管理器,可以通过一个简单的配置文件,将软件研发生命周期中各环节的DevOps工具统一管理起... 查看详情