对于软件系统,尤其是大型复杂软件系统,软件的系统架构对于保证最终系统的质量非常重要。 不合适的系统架构会给项目开发带来昂贵的成本和不可避免的问题。 灾难。 评估系统架构的目的是:分析现有架构中潜在的风险,测试设计中提出的质量要求,在系统建立前分析现有系统架构对系统质量的影响,并提出对系统的改进建议建筑学。 架构评估是软件开发过程的重要组成部分。
问:1.1 请围绕“浅谈软件系统架构评估”这一主题,从以下三个方面进行阐述。
1. 简要描述您参与架构评估的软件系统以及评估过程中执行的主要任务。
2、分析软件系统架构评估一般关注哪些质量属性? 详细解释每个质量属性的含义。
3. 详细描述您参与的软件系统架构评估采用了什么样的评估方法,具体的实施过程和效果如何。
【概括】
2016年3月,我公司承接了国家安全中心漏洞挖掘系统的开发。 我在这个项目中担任系统架构设计师的角色,主要负责系统架构设计。 该项目的主要目的是依靠大数据平台从互联网流量中挖掘未知漏洞。 本文以漏洞挖掘系统为例,讲解软件系统的架构评估。 首先分析了软件架构评估中普遍关注的质量属性,并讨论了它们的具体含义:性能、可用性、可变性和安全性。 整个系统采用面向服务的SOA架构设计方法。 架构设计完成后,采用场景评估方法中的架构权衡分析方法ATAM进行SA评估,并详细描述了其评估流程。 项目评估小组讨论了项目的风险点、敏感点和权衡点。 然后生成了质量效应树。 目前,系统已稳定运行一年多,验证了该项目采用ATAM架构评估保证了系统的顺利完成。
【文本】
随着互联网的快速发展,互联网上出现了越来越多的安全问题。 互联网发展以来,爆发了多种互联网攻击,如网络蠕虫病毒感染、主机控制、数据库非法访问、CCB非法电子汇款等。针对这一安全问题,需要开发一种技术来防范发现并协助网络漏洞。 2016年3月,我公司承接了国家安全中心漏洞挖掘系统的开发。 该项目分析互联网流量特征,提取相关攻击内容,并将这些内容存储在大数据平台上。 它结合大数据分析技术来跟踪和分析攻击者,从而捕获未知的漏洞。 通过这些漏洞挖掘技术,可以极大地解决大数据、大流量背景下的Web攻击入侵问题,帮助用户做好安全工作,协助安全厂商对互联网攻击进行针对性过滤。
系统在整体架构上采用面向服务的架构SOA。 后端是使用PHP开发的。 后台流量分析工作采用C语言在Linux服务器上开发,运行性较高。 采用企业C盘阵列进行流量包存储,采用mysql进行数据存储。 通过将系统拆分为多个子模块,每个子模块的建立都封装有服务,它们之间通过消息进行通信。 在分析了客户需求后,我将系统拆分为流量捕获模块(负责捕获来自互联网的流量)、pcap文件存储模块(负责存储来自互联网到大数据平台的流量)和流量分析模块(负责分析流量分析和验证)、数据库模块(负责存储漏洞数据)和Web管理模块(负责发布漏洞规则和查看漏洞信息)。 接下来,我们首先介绍一下软件架构评估的质量属性。
架构评估是软件开发过程的重要组成部分。 软件架构评价中的质量属性包括:性能、可用性、可变性、安全性、可测试性、可靠性和易用性等。前四个质量属性是质量效应树的重要组成部分。 性能是指系统的响应能力,即应对风暴需要多长时间。 可用性是指系统能够正常运行的时间比例,用故障间隔时间的宽度或发生故障时系统能够恢复的速度来表示。 可变更性是指系统以更高的成本效益对系统进行变更的能力。 安全性是指系统向合法用户提供服务,同时拒绝未经授权的用户使用或服务的能力。
常用的架构评估方法包括:基于问卷的评估方法、基于场景的评估方法和基于测量的评估方法。 基于问卷调查的评价方法是由多位评价专家以调查问卷的形式回答问卷中的问题,然后综合多种评价结果,最终得出最终结果。 其评估的主观性使其不适合该项目。 虽然基于测量的评估方法比较客观,需要评估者对系统架构有精确的了解,但并不适合本项目。 场景评估要求评估者对系统有适度的了解,评估相对主观。 因此,本项目采用场景化评价方法。 基于场景的评估方法分为架构权衡分析方法ATAM、软件架构分析方法SAAM和成本效益分析方法CBAM。 本项目中根据不同的质量属性,采用ATAM作为系统架构评估方法。
在使用ATAM进行架构评估时软件系统设计,我们根据项目需求成立了项目评估小组。其主要成员包括
包括:评估组长、项目决策者、架构师、用户、开发人员、测试人员、系统部署人员
工作人员和其他项目利益相关者。 我作为该项目的评估小组组长和首席架构师来到这里。 架构的评估经历了四个阶段:描述和介绍阶段、调查和分析阶段、测试阶段和报告阶段。 下面我将分别介绍这四个阶段。
在描述和介绍阶段,由于一些项目评估成员对ATAM不熟悉,我首先介绍一下ATAM方法。 它是一种基于场景的软件架构评估方法,基于场景来评估系统的多个质量属性。 通过此评估,确认系统存在的风险以及是否满足相应的非功能要求。 客户还讨论了该系统的目的和业务动机。 该项目旨在通过捕获互联网流量来挖掘有价值的漏洞信息。 通过实时获取漏洞,可以有效地发起防御,保证网站的安全。 客户关心的是系统性能以及系统获取高质量漏洞信息的能力。 最后,我作为架构设计师描述了系统将采用的SOA架构,对系统进行了拆分,并解释了各个子模块的功能。 我最初决定使用C语言来开发Linux下的系统服务器。
在调查分析阶段,不同需求方基于自身考虑提出了各自的需求。 其中,客户提出必须保证系统的可靠性,尤其是在追踪黑客IP时。 系统故障必须在1分钟内恢复,具有最高优先级。 经过人工分析,系统对漏洞的人工识别率必须达到90%以上,具有较高的优先级。 系统可以对规则模块进行实时更改,并且更改必须在一个人天内完成,以便根据最新规则捕获漏洞。 系统必须保证一定的安全性。 安全分析师提出,系统需要过滤大部分正常流量,以减轻安全分析师的分析难度。 系统必须提取有价值的高风险IP。 无效的流量跟踪将导致产出低。 开发人员提出软件系统设计,为了保证系统开发效率和系统的可变性,可以进行并行开发。 经过总结,我们得到了系统的质量效应树如下(考试时的示意图)。
针对这些场景,我们分析了项目开发过程中的风险点、敏感点和权衡点。 经分析,该项目存在以下风险点:如果无法实时捕获黑客IP,将导致重要漏洞信息丢失; 如果系统处理消息的时间超过12小时,就会形成大量的消息积压。 敏感点包括:用户加密级别和漏洞规则的变化。 权衡点是:改变漏洞规则的严格性将提高漏洞的准确性并提高系统性能。 更改系统的加密级别将会对系统的安全性和性能产生影响。
测试阶段:经过评估组集体讨论,确定不同场景的优先级如下: 系统可用性最高。
高,性能次之,可变性和安全性次之。 在保证系统可用性方面,流量捕获部分采用双机热备份技术,两个捕获系统之间设置一个脉冲。 当一个捕获系统出现问题时,另一个捕获设备会接管。 在流量的手工分析中,采用集群部署技术。 如果一台分析设备出现问题,不会影响整个分析系统。 在保证数据安全方面,C盘采用企业级C盘阵列raid5机制。 在用户数据安全方面,采用非对称加密和信息摘要技术。
最后,形成评估报告。 对架构进行评估后,确定系统的风险点、敏感点、权衡点、非风险点,最后以文档的形式表达出来。 包括:架构分析方法文档、架构的不同场景及其各自的优先级、群效树、风险点决策、非风险点决策、每次评估会议的记录。
【总结】
项目开发工作于2016年8月完成,系统上线后,我们的安全分析师和客户利用该系统对互联网流量进行漏洞挖掘。 总共形成了150多种Web流量攻击流量特征和5种未知Web流量。 漏洞。 对某国家安全中心互联网研究室的其他项目,特别是某变量覆盖漏洞、某文件写入漏洞、某SQL注入漏洞起到了支撑作用。 项目使用过程中取得了一定的疗效,受到好评。 为预防、发现、预警和协同处置互联网安全风暴提供数据依据,更好维护国家公共互联网安全,保障基础信息网络和重要信息系统安全运行。