精华内容
下载资源
问答
  • 2019-08-20 17:03:48

    1.软件缺陷报告地基本组成元素包括

         缺陷的编号、缺陷的标题、缺陷的基本信息、测试的软件和硬件环境、测试的软件版本、缺陷的类型、缺陷的严重程度、缺陷的处理优先级、缺陷的复现步骤、缺陷的实际结果描述、期望的正确结果、截取的缺陷图像、注释文字 等

    2.缺陷地状态主要包括

       激活(新建/打开)、已修复、关闭、从新打开、推迟、不能复现、重复、不是缺陷     

    3.缺陷地严重程度主要包括

      致命的、 严重的、一般的、较小的、建议性的

    4.什么是软件缺陷?  

    所谓软件缺陷,即为计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。缺陷的存在会导致软件产品在某种程度上不能满足用户的需要。IEEE729-1983对缺陷有一个标准的定义:从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。

    5.怎么判断是不是软件缺陷?

        用户体验不好

        界面上有明显的错误信息

        功能不完备,导致功能缺失

        功能不完善

        逻辑不正确,与需求说明书不符

       模块之间的交互性不好,与其他的模块做集成性测试时遇到问题

       程序的性能不够好,不能承载压力考验

     

    6.软件缺陷必须符合哪5个原则?

     软件未达到产品说明书表明的功能

       软件出现了产品说明书指明不会出现的错误

       软件功能超出了产品说明书指明范围

       软件未达到产品说明书虽然未指明但应达到的目标

       软件测试人员认为难以理解、不易使用、运行速度缓慢、或者最终用户觉得不好

     

     

    7.缺陷地产生主要原因有哪些原因?最主要地原因是什么?

       没有编写说明书、设计、编码、其他

       没有编写说明书

     

    8.当你发现一个缺陷时,应该怎么确认的确是一个缺陷?

    首先,可以将软件需求说明书、用户手册以及联机帮助作为识别和判断缺陷的辅助工具。

    其次,通过增加自己对测试软件产品的行业背景知识的了解来发现被忽视的问题。

    最后,通过沟通的方式来收集、学习和分享其他人判断缺陷的方法和经验。

     

    9.正式提交一个缺陷前,你应该做什么?

     再次确认是否是缺陷,记录下缺陷查收的每一个步骤(在现缺陷),编写缺陷报告,提交缺陷

     

    10.怎么处理无法在现的缺陷?

    首先,应当对这样的缺陷进行详细的记录,并尽快提交给开发人员

    其次,对于寻找难以再现的缺陷要合理的安排时间

    最后,在测试过程中对未在现缺陷予以关注

     

    11.什么是重复缺陷?怎么避免重复缺陷?

      指在统计周期再次发生的同类型缺陷。

    一个人测试可以在提交的时候输入关键字进行筛选一下。

    多人测试尽量分模块进行测试,提交之前都应该筛选一下。避免重复提交。

     

    12什么是无效缺陷?怎么避免无效缺陷?

    软件产品中不符合用户需求的地方即可认定为软件缺陷(Bug)。这里软件产品可以是代码段、应用程序、软件系统、产品文档等任何软件工程行为的产品。

        前细化需求,保证对需求理解正确,避免提交存在歧义的缺陷:

    对于自己把握不准的缺陷,提交前进行讨论

    在提交bug之前,一定要保证bug能够重现,并且在bug中清楚的描述重现步骤

    保证测试环境的准确性,并且做好版本的配置管理

     

    13.什么是缺陷报告?有哪些用途?

    用于记录缺陷,对缺陷进行分类,为解决不同的缺陷分配合理的资源,并通过缺陷报告对处理缺陷的过程进行跟踪,从而使软件缺陷得以修复。

     记录缺陷、缺陷分类、缺陷跟踪几大用途

     

    14.缺陷报告的5个写作准则是什么?

    准确、清晰、简洁、完整、一致  (5C原则)

     

    15.缺陷报告的内容有哪些?

    缺陷的编号、缺陷的标题、缺陷的基本信息、测试的软件和硬件环境、测试的软件版本、缺陷的类型、缺陷的严重程度、缺陷的优先处理级、缺陷的复现步骤、缺陷的实际结果描述、期望的正确结果描述、截取的缺陷图像、注释文字

     

    16.缺陷报告的组织结构是什么?

    缺陷的编号、缺陷的标题、缺陷的基本信息、测试的软件和硬件环境、测试的软件版本、缺陷的类型、缺陷的严重程度、缺陷的优先处理级、缺陷的复现步骤、缺陷的实际结果描述、期望的正确结果描述、截取的缺陷图像、注释文字

     

    17.缺陷报告的写作需要注意什么问题?

    自我检查和提问:

      缺陷报告已经向读者包含完整、准确、必要的信息了吗? 一个缺陷报告是否只报告了一种缺陷?步骤可以完全复现而且表达清除吗? 实际结果和期望结果是否描述准确等

    避免常见的错误:

    不要“我”“你”而用动词或者必要时使用“用户”代替

    不要使用模糊词汇“似乎”“大概”等

    不要对软件的质量优劣做任何的主观性强的批评和嘲讽

    不确定的缺陷测试问题不要放在缺陷管理数据库。

     

    18.缺陷的分类?

    测试过程中发现的缺陷一般分为如下几类:

    代码问题:不满足需求、功能实现错误;对产品或项目质量有影响的bug可统一划入;

    设计缺陷:页面美观性、协调性、错别字等

    用户体验:对产品、项目的建议性意见,不强制要求修改

    性能问题:进行性能测试时使用,暂定:网络延时、内存问题、CPU占用、硬盘问题

    安全问题:业务功能存在的安全问题

    接口问题: 涉及有模块间数据传递时使用

    配置问题: 由于提供的配置不当或者配置不能够满足实际要求而出现的问题

    缺陷错误严重程度:

    5级-建议问题的软件缺陷(Enhancemental):由问题提出人对测试对象的改进意见或测试人员提出的建议、质疑。

    4级—较小错误的软件缺陷(Minor),使操作者不方便或遇到麻烦,但它不影响功能过的操作和执行,如错别字、界面不规范(字体大小不统一,文字排列不整齐,可输入区域和只读区域没有明显的区分标志),辅助说明描述不清楚。

    3级—一般错误的软件缺陷(major):次要功能没有完全实现但不影响使用。如提示信息不太准确,或用户界面差,操作时间长,模块功能部分失效等,打印内容、格式错误,删除操作未给出提示,数据库表中有过多的空字段等。

    2级—严重错误的软件缺陷(critical):系统的主要功能部分丧失、数据不能保存,系统的次要功能完全丧失。问题局限在本模块,导致模块功能失效或异常退出。如致命的错误声明,程序接口错误,数据库的表、业务规则、缺省值未加完整性等约束条件

    1级—致命的软件缺陷(Fatal):造成系统或应用程序崩溃、死机、系统挂起,或造成数据丢失,主要功能完全丧失,导致本模块以及相关模块异常等问题。如代码错误,死循环,数据库发生死锁、与数据库连接错误或数据通讯错误,未考虑异常操作,功能错误等。

     

    19.如果测试提交的缺陷开发人员不认可怎么办?

    第一步:与开发人员反复友好沟通;

    第二步:反复复现缺陷的存在,并可以将缺陷复现的截图与复现步骤整理成文档提供给开发人员;

    第三步:如果还是不能说服开发人员,可以将该情况反映给测试组长或者测试经理,由测由测试组长或者测试经理评估协调。

     

    20.简述缺陷的生命周期。

    1.New          新建

    2. Open        打开 

    3. Assign      指派

    4. Test        测试

    5. Verified     确认

    6. Deferred    延期

    7. Reopened    重新打开

    8. Duplicate   重复

    9. Rejected    拒绝

    10. Closed     关闭

     

    21.缺陷按照严重程度可以分为哪些类型?

    缺陷错误严重程度:

    5级-建议问题的软件缺陷(Enhancemental):由问题提出人对测试对象的改进意见或测试人员提出的建议、质疑。

    4级—较小错误的软件缺陷(Minor),使操作者不方便或遇到麻烦,但它不影响功能过的操作和执行,如错别字、界面不规范(字体大小不统一,文字排列不整齐,可输入区域和只读区域没有明显的区分标志),辅助说明描述不清楚。

    3级—一般错误的软件缺陷(major):次要功能没有完全实现但不影响使用。如提示信息不太准确,或用户界面差,操作时间长,模块功能部分失效等,打印内容、格式错误,删除操作未给出提示,数据库表中有过多的空字段等。

    2级—严重错误的软件缺陷(critical):系统的主要功能部分丧失、数据不能保存,系统的次要功能完全丧失。问题局限在本模块,导致模块功能失效或异常退出。如致命的错误声明,程序接口错误,数据库的表、业务规则、缺省值未加完整性等约束条件

    1级—致命的软件缺陷(Fatal):造成系统或应用程序崩溃、死机、系统挂起,或造成数据丢失,主要功能完全丧失,导致本模块以及相关模块异常等问题。如代码错误,死循环,数据库发生死锁、与数据库连接错误或数据通讯错误,未考虑异常操作,功能错误等。

     

    22.缺陷按照优先级可以分为哪些类型

     

     

     

    更多相关内容
  • 设备缺陷闭环管理之我见-安全管理-行业安全-电力安全.docx
  • 「访问管理」当前网络空间安全技术体系的缺陷与突破 - 安全开发 勒索软件 安全架构 安全管理 端点安全 终端安全
  • SRCMS 是一款安全应急响应与缺陷管理软件,致力于为大、中、小企业和组织提供“最敏捷、安全和美观的安全应急响应中心的建站解决方案,帮助企业建立属于自己的安全应急响应中心和体系”。有了SRCMS,您就可以像使用...
  • 缺陷管理流程图

    2018-10-18 10:08:58
    为规范在使用系统过程中发现缺陷而进行的有效管理,确保系统上线后安全稳定运行。
  • 该电网变电运行不规范的工作程序和不合理的运行方式会影响整个电网的安全,如何确定变电设备运行状况的危险点、对潜在的缺陷问题进行分析和探讨,制订严谨的、科学的安全防护措施已成为大屯配电网安全运行的当务之急。
  • 敏捷项目如何进行缺陷管理

    千次阅读 2020-04-23 16:03:38
    目录引言缺陷记录缺陷流转缺陷分析 引言 缺陷记录 缺陷流转 缺陷分析

    1 引言

    敏捷测试原则中有一条是:预防缺陷,而不是关注缺陷的数量。敏捷团队中是整个团队为质量负责,团队追求的是整个产品质量的提升,而非传统的开发人员追求零缺陷,测试人员追求找到更多的缺陷。在敏捷开发中,虽然我们采取各种措施预防缺陷的发生,例如精准的自动化测试、代码检视、故事卡验收等等,但是并不能保证没有缺陷发生,一个零缺陷的产品也不现实。既然无法完全阻止缺陷的出现,那如何管理发生的缺陷,如何利用已有缺陷来指导质量内建过程,是我们需要考虑的。

    本文以博主在实际项目中的经验,讲述缺陷的记录、流转和分析,每个模块的内容会分别讲述迭代内缺陷和生产缺陷的管理。

    2 缺陷记录

    2.1 哪些缺陷该被记录?

    在记录缺陷前,我们要理清楚我们需要记录的缺陷有哪些,是不是每一个缺陷都应该被记录。敏捷项目是以迭代为交付周期,一个迭代周期从两周到一个月甚至2个月不等,每个迭代都会有新功能的上线。一般来讲,缺陷分为两类:一类是迭代内缺陷,即在迭代新功能开发时,故事验收或测试阶段发生的缺陷;另一类则是生产缺陷,我们是允许生产缺陷的存在的,但前提是缺陷影响范围可控,或者可以在用户发现前发现缺陷(测试右移),并且要具备快速修复或者回滚的能力。

    对于迭代内缺陷,一般发现阶段分为故事卡验收阶段,测试阶段,回归测试阶段。对于故事卡验收阶段发现的缺陷,是否需要记录可视情况而定,一般而言,可以不需要记录,因为此时故事卡仍在开发阶段,开发同学仍然工作在这张卡上,其上下文充足,修复缺陷成本较低,可以直接备注在卡片上,等下一次故事卡验收的时候再验证是否修复。对于测试阶段和回归测试阶段的缺陷,建议记录下来,因为此时开发这张卡片功能的开发同学已工作在其他卡片上,没有办法及时修复该缺陷,或者修复该缺陷的或许是其他开发人员,那么就需要将缺陷记录下来便于跟踪。

    2.2 工具

    在选择缺陷记录工具的时候,要考虑以下几点:

    1. 该工具是否支持协同工作?
      缺陷和故事卡一样重要,是各个角色都需要关心的事情,即意味着各个角色都需要能够查看、操作缺陷记录工具,所以缺陷记录工具需要支持协同工作。
    2. 该工具是否容易学习?
      基于第一点,团队成员均需要操作该工具,不管是否有技术背景,所以该工具一定是需要学习成本较低的。
    3. 该工具是否易于跟踪缺陷状态?
      缺陷和故事卡一样,是存在流转状态的,也会有不同的人员工作在该缺陷上(开发人员、测试人员),所以记录工具最好具有状态流转标识,当然你也可以手动记录其状态,但能让工具帮你做的事情为什么不利用工具呢?
    4. 该工具是否清晰记录缺陷?
      下一小节会讲到缺陷记录的要素,选择的工具需要能清晰表达这些要素。
    5. 该工具是否便于统计?
      缺陷管理中很重要的一部分是缺陷分析,缺陷分析当然是基于数据的,这些数据可以手动收集,如果工具能自动帮你做一些统计那是最好的。

    所选择的工具不一定需要具备以上提到的所有特征,但是支持协同工作和清晰记录缺陷是必不可少的,其余特征可根据项目情况而定。

    博主所在的项目选择的工具是jira,jira是一款协同办公软件,在敏捷项目中通常被用来记录故事卡。它支持协同办公,而且我们项目也使用jira记录故事卡,我们在故事卡的泳道下面新建了一个跟踪缺陷卡的泳道,一个缺陷记录一张卡片,这样大家就可以像操作故事卡一样操作缺陷卡。它也支持添加自定义标签的,标注卡片优先级,添加附件,充分满足缺陷关联的内容。它也支持导出卡片数据,对之后的缺陷分析十分有帮助。博主也推荐使用trello,和jira的功能大同小异,当然在线wps的excel也是不错的选择。

    使用jira记录缺陷,主要是为了便于查看缺陷状态,但会随着迭代的完成,缺陷卡片会被归档,每张卡片也是独立的,不利于集中查看和查询。这样的流转方式对迭代内缺陷是没有问题的,因为迭代内缺陷一旦修复,后续基本不会有人再去查看关注。但对生产缺陷却不一样,每一个生产缺陷都应该被认真对待分析,我们可以将其统一记录在某个地方,用于之后回顾。博主项目组的做法是将生产缺陷统一记录在confluence,便于集中查看。

    2.3 模版

    记录缺陷有两个原则:

    1. 描述完整,清晰易读懂
      记录的缺陷卡和故事卡一样,需要给团队成员看,所以缺陷卡需要描述完整清晰。
    2. 规范化,便于缺陷分析
      分析统计总是基于规划的数据结构,所以在记录缺陷的时候就需要考虑之后缺陷分析需要什么,以此去规范户记录缺陷。

    以博主的项目为例,我们记录缺陷的模版主要有以下要素:

    1. 标题
      简述缺陷内容,清晰明了。
    2. 描述
      缺陷发生环境(DEV/ST/UAT/PRD),相关测试数据(用户名/订单号等),复现步骤,期望结果,实际结果,备注(截图、日志等)。
    3. 优先级
      在卡片上(jira/trello)备注缺陷的优先级,可以是高、中、低,可以自定义。
    4. 标签
      便于之后的缺陷分析,可以给缺陷打上标签。以博主项目为例,针对生产缺陷,会标注以下标签:所属功能模块(根据系统自定义)、可识别阶段(需求阶段/开发阶段/测试阶段/难以识别)、缺陷类型(功能/性能/安全)、影响范围(大/中/小)。

    3 缺陷流转

    每个缺陷也应该像故事卡一样,有它完整的生命周期,本节以博主项目组为例详解迭代内缺陷和生产缺陷的流转过程,当然每个组情况不一样,读者可视自身项目组情况而定。

    3.1 迭代内缺陷流转过程

    上文讲到,迭代内缺陷和故事卡记录在同一jira面板的不同泳道,那么缺陷卡的生命周期和故事卡自然是一样的,如下图所示:
    在这里插入图片描述

    针对迭代内的缺陷应该在什么时候修复,我们的处理原则有以下几点:

    1. 如果是阻碍开发/测试进度的缺陷,应该被立即修复;
    2. 如果是本迭代必须交付的功能相关缺陷,且修复成本高或影响范围大的缺陷,应该被立即修复;
    3. 如果是本迭代必须交付的功能相关缺陷,但修复成本或影响范围较小的缺陷,留到迭代后期修复。

    3.2 生产缺陷流转过程

    生产缺陷总是值得被引起重视的,我们对其处理流程如下图所示:
    在这里插入图片描述

    4 缺陷分析

    敏捷测试原则说我们应该预防缺陷而不是关注缺陷的数量,所以对于缺陷分析,我们的出发点是:对已发生的缺陷进行深入分析,从中找到问题所在,以达到预防缺陷的目的。

    4.1 分析周期

    迭代内缺陷的数量比较多,而且一般大多数都是开发逻辑错误造成的,一般而言分析价值不大。如果每个迭代平稳运行,缺陷数量平稳,建议不用特意分析,毕竟分析缺陷是耗时的。如果某个迭代明显感觉缺陷数量增长,可以针对性对本迭代缺陷进行分析。当然,如果你有充分的时间,可以将缺陷分析作为一项日常工作。而对于生产缺陷,每一个都值得被重视。3.2节讲述的流转过程,其中我们就已经对其进行分析了,分析其问题出在哪儿,然后补充相应的测试。如果想要对生产缺陷进行归类、趋势分析,那么就需要有一定的数据才可以,而生产缺陷不常有。所以其分析周期建议是1个月,或者3个月,甚至6个月,视各个项目组的情况而定。

    4.2 分析角度

    我们项目组常用的分析角度有以下几个,不同的项目侧重点会有所不同。
    (1)缺陷根因
    可以将缺陷一一分析后进行归类,根因可以分类为:需求缺失或者不清晰、技术方案设计问题、代码逻辑错误、测试未覆盖、环境相关(硬件、软件、第三方等)。分类后如果某一类问题较突出,则可以针对性产出改进事项。
    (2)缺陷发现阶段
    缺陷发现阶段可以归类为:故事验收阶段、功能测试阶段、回归测试阶段。我们知道缺陷越早发现修复成本越低,如果分析后发现某一阶段出现的缺陷较多,应该去反思是哪个环节错了,我们是否可以更早的暴露缺陷。
    (3)缺陷所属功能模块
    功能所属模块根据系统不同而不同,这一类分析帮助我们思考,某一块存在的缺陷多是因为存在技术债还是测试覆盖不够,可以帮助我们改进质量策略。
    (4)缺陷数量趋势
    如果可以,对于迭代内缺陷可以维护一份数量趋势图,就不需要我们靠直觉去感受哪个迭代缺陷多,而是有真实的数据作为依据,更具说服力。对于生产缺陷,建议可以维护一份数量趋势图,因为生产缺陷数量走势也是反应我们产品质量的一个重要维度。
    (5)缺陷可识别阶段
    这一分类主要针对生产缺陷,缺陷可识别阶段可以归类为:需求分析阶段、开发阶段、测试阶段、发布阶段,难以识别。这样分类的初衷不在于归过于某一角色,某一人,而是为了进一步分析是哪一阶段的实践有缺失,需要进一步改善。
    (6)缺陷类型
    缺陷类型可以归类为:功能缺陷,性能缺陷,安全缺陷。敏捷项目QA需要关注产品各个方面的质量,包括性能、安全等,将缺陷类型划分清楚,可以指导我们补充我们薄弱的地方。

    4.3 分析工具

    数据有了,就需要将数据可视化出来,便于分析,便于展示给团队。博主曾使用过的可视化工具有:

    1. jira
      jira根据卡片自动生成图标,饼图、趋势图都可以,但好像只有企业定制版才可以。
    2. ppt
      将jira数据导出,然后导入ppt画图。只要记录的缺陷卡片规范,也不是很费时,但没办法展示趋势,只能展示导出阶段的数据。
    3. tableau
      可以画各种图,对于展示趋势图也很方便,但是一款商业工具,而且上手成本并不低,它主要的功能是进行数据分析,画图只是它的九牛一毛,用它做缺陷分析有点大材小用的意思了。

    所以呢,其实我也没有特别好的工具推荐,大家如果有更好的,欢迎交流呀。

    展开全文
  • 项目状态 -- 按项目管理缺陷,直观统计项目下人员与缺陷的各种状态 缺陷跟踪 -- 记录缺陷操作记录,流程图高亮显示操作路径与当前所处状态 视图机制 -- 用户可在缺陷列表和工作面板中定制想看到的缺陷列表 经验...
  • 端口扫描检测3.2.3,本地安全检测3.2.4,系统版本及补丁检测3.2.5,网络配置检测3.2.6,安全日志检测3.3,程序函数清单设计成果设计心得 一,绪论与背景 1.1,绪论 近年来,随着人类社会的进步和信息技术的发展,人类...

    一,绪论与背景

    1.1,绪论

    近年来,随着人类社会的进步和信息技术的发展,人类在能源、环境、交通、居住、安全等领域都面临着严峻的挑战,迫使人们不得不利用大数据、物联网等互联网技术实现更加高效、智能的资源利用和调配模式。
    在大数据成为国家战略的今天,企业的组织、生产和经营活动都以数据为基础开展和优化,不仅是信息类产品和服务,在交通、能源电力、市政管理、金融、环境保护、教育、医疗、安防反恐等领域,对互联网的依赖也越来越强。随之而来的数据被泄漏、篡改,网络攻击等问题也越来越严重。
    网络安全问题,关乎百姓生活与社会稳定。从大处看,会影响能源、交通等基础设施的正常运行,影响金融、教育、医疗等各行业的秩序,甚至影响地缘政治的稳定;往小处看,每个人的隐私、企业的商业机密泄漏都会带来各种各样的社会问题。
    而作为网络空间安全学院学生的我们,也在不断的了解和学习有关安全的知识,这一次的信息安全课程设计,我们选择了题目二——“Windows或Linux操作系统安全配置自动检测技术”。而Windows作为全球应用范围最广,知名度最高的操作系统,在有着强大功能的同时,也隐藏着不少漏洞。安全软件公司 BeyondTrust 近日发布了一份《2021 年度微软漏洞报告》,在 2020 年在微软产品中共发现了 1268 个漏洞,创历史新高,其中 Windows 产品的漏洞达 907 个,且有 132 个为关键性漏洞。更加严重的是,很多Windows用户并没有很强的安全意识,他们对自己的电脑了解不深,对电脑的安全配置也没有一个很好的布置。在互联网技术高度发达、人们的财产和隐私与电脑和网络高度连结的今天,维护互联网、电脑系统的任务迫在眉睫。

    1.1.1,项目概述与背景

    Windows 系统的“漏洞”就像它的GUI(图形界面)一样“举世闻名”,几乎每个星期都有新的漏洞被发现。这些漏洞常被计算机病毒和黑客们用来非法入侵计算机,进行大肆破坏。虽然微软会及时发布修补程序,但是发布时间是随机的,而且这些漏洞会因Windows软件版本的不同而发生变化,这就使得完全修补所有漏洞成为头号难题。

    1.1.2,定义与术语

    • 弱口令:
      没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。弱口令指的是仅包含简单数字和字母的口令,例如“123”、“abc”等,因为这样的口令很容易被别人破解,从而使用户的计算机面临风险,因此不推荐用户使用。

    • Windows power shell :
      Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。它引入了许多非常有用的新概念,从而进一步扩展了您在 Windows 命令提示符和 Windows Script Host 环境中获得的知识和创建的脚本。

    • Telnet :
      Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。

    • SSH :
      SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

    • KB:
      KB是微软对补丁的命名方式,是Knowledge Base(知识库)的简称。
      其指的是某个补丁对应微软知识库中哪一篇文章。例如KB888111,就是对应 知识库中888111号文章。

    • POC
      POC,Proof of Concept,中文意思是“观点证明”。这个短语会在漏洞 报告中使用,漏洞报告中的POC则是一段说明或者一个攻击的样例,使得 读者能够确认这个漏洞是真实存在的。

    • EXP
      EXP,Exploit,中文意思是“漏洞利用”。意思是一段对漏洞如何利用 的详细说明或者一个演示的漏洞攻击代码,可以使得读者完全了解漏洞的机 理以及利用的方法。

    • CVE漏洞编号
      CVE 的英文全称是“Common Vulnerabilities & Exposures”公共漏洞和暴露,例如CVE-2015-0057、CVE-1999-0001等等。CVE就好像是一个字典表,为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出一个公共的名称。如果在一个漏洞报告中指明的一个漏洞,如果有CVE名称,你就可以快速地在任何其它CVE兼容的数据库中找到相应修补的信息,解决安全问题。

    二,需求分析

    2.1,系统设计概述

    本系统是对Windows操作系统安全配置等进行全面扫描,从六个方面排查本机操作系统可能出现的风险与问题,并基于一套详尽的评分体系可以给出各项的评分结果以及总评。

    2.1.1,需求分析

    操作系统本身设计的安全性可能比较高,但可能由于使用和配置的不当,造成操作系统实际的安全性能降低。通过操作系统安全评估,发现主机和网络设备的漏洞和安全隐患。通过实验,使学生认识操作系统安全评估与检测的重要性,掌握操作系统安全评估与检测的内容和方法。

    2.1.2,概要设计

    最开始我们通过查询各种,得知了一个判断漏洞的方法,根据版本号和补丁与最新版本的对比,但是这样的对比只能证明这是一个潜在的漏洞,也就是说系统有潜在的不安全因素,但不能说系统一定不安全。如果还需要进一步的判断系统是否存在该问题,最好还是设计一个脚本攻击一下。但是我们最终版本,只是设计出来检测潜在的不安全因素,并没有具体的去攻击证明漏洞的存在。我们从以下几个方面进行分析,然后给出一个较为全面的判断。
    在这里插入图片描述
    该安全检测程序主要从图示几个方面进行权衡打分。分别是安全日志、弱口令、网络配置、版本系统日志、本地安全检测、端口扫描。

    • 弱口令:
      从本地安全策略和爆破尝试出发,进一步检查口令强度。这里的弱口令从两个方面出发,一个是管理员口令,和windows登录时的口令。
    • 端口扫描:
      通过系统cmd指令查询开放的端口号和系统进程的检测,把二者形成的表通过PID匹配,形成一个完整的信息表,再通过已有资料判断是否有高危端口被打开,和一些建议关闭非必须打开的端口被打开了来评判。扫描的信息还获取了本地地址和外部地址,以及端口所在状态,可以利于人工进一步分析。
    • 本地安全检测:
      通过调用power shell查询计算机自身状态,和查找windows本地安全策略,通过windows 10专业版自带的系统文件进行一个全面的评价打分,最后查询防火墙状态。
    • 版本系统自查:
      通过查询windows版本号和对应的补丁,判断系统是否已经达到现版本的最 佳状态。
    • 网络配置:
      查找配置文件中是否有非必须开启的服务。
    • 安全日志:
      调取系统安全日志,对安全日志进行分析,判断有无危害系统安全的行为。

    2.2,功能设计

    在这里插入图片描述
    此软件的功能为对计算机的系统安全进行全方面的扫描,共分为六个部分,生成六分小报告,并最终生成一份总体的报告,每一份报告中都会对该项进行打分,满分为一百分。

    2.3,功能需求

    在这里插入图片描述

    三,详细设计

    3.1,系统结构设计

    在这里插入图片描述
    通过六个部分打分评测,并且各自生成一份具体的报告,然后最后再合成一份整体的报告,对系统进行全面的评测。

    3.2,模块设计

    3.2.1,弱口令检测

    本课题中,针对操作系统弱口令的检测,我们从两个方面开展。
    一方面,我们通过读取操作系统本地安全策略中对密码的设置、要求来评判。在windows10的操作系统中,可以设置“密码必须符合复杂性要求”,进一步可以规定具体的密码长度,密码由几种字符组成,密码的最短、最长使用期限等。设置复杂性强的密码且养成更换密码的习惯,可以防范密码泄露、社会工程学等隐患。此外,安全策略中还有账户锁定策略,防止恶意脚本攻击或设备被盗取造成个人信息泄露。
    有的时候,设备需要面临多用户使用。设置科学的密码策略,有助于提高全体用户的密码鲁棒性,保障整个系统的安全运转。
    在这里插入图片描述
    另一方面,我们采用不同角度的实践操作来检验弱口令。
    针对弱口令检测的工具有很多,我们选用了Ophcrack、Hydra两个工具分别检测。
    Ophcrack有独特的彩虹表结构,找到存储对应哈希值的文件,导入软件,可以进行查找和破解;在Hydra的操作中,在kali的Hydra支持下,我们选用了大小为2万的密码本再次进行了检测,依然未能成功。
    在这里插入图片描述

    随后,我们使用Python编写脚本,直接向cmd发送指令尝试,发现在用户锁定策略的限制下,无法进行有效的尝试就会被账户锁,且账户锁定期间手动也无法获取管理员权限。
    因此,在多次尝试弱口令爆破失败之后,我们采用获取本地安全策略的方式,通过允许最小密码长度,密码复杂度等多维度来衡量弱口令安全分数值。

    3.2.2,端口扫描检测

    定义:
    端口扫描是指发送一组扫描消息,了解其提供的计算机网络服务类型(这些网络服务均与特定的端口号绑定),端口扫描是网络安全工作者的必备的利器。
    端口扫描定义是客户端向一定范围的服务器端口发送对应请求,以此确认可使用的端口。虽然其本身并不是恶意的网络活动,但也是网络攻击者探测目标主机服务,以利用该服务的已知漏洞的重要手段。端口扫描的主要用途仍然只是确认远程机器某个服务的可用性。
    扫描多个主机以获取特定的某个端口被称为端口清(Portsweep),以此获取特定的服务。例如,基于SQL服务的计算机蠕虫就会清扫大量主机的同一端口以在 1433 端口上建立TCP连接。
    通过资料查询,我们了解到:Windows10默认开启一些日常用不到的端口,这些端口让黑客有机可乘(黑客会使用工具扫描计算机上的端口,并入侵这些端口),关闭这些高危端口,可使我们的电脑避免遭受攻击。例如关闭445端口等,可有效防止勒索病毒防止互联网上出现针对Windows操作系统的勒索软件的攻击案例。
    当然,因为技术问题,我们的端口扫描和市面上的主要软件还是有所差距,我们的端口扫描主要是查询本地计算机开放的端口、状态、外部地址、以及pid对应的进程。
    在这里插入图片描述
    算法实现:

    1. import sys  
    2. import os  
    3. import re  
    4. class Logger(object):  
    5.     def __init__(self, filename="Default.log"):  
    6.         self.terminal = sys.stdout  
    7.         self.log = open(filename, "a")  
    8.
    9.     def write(self, message):  
    10.         self.terminal.write(message)  
    11.         self.log.write(message)  
    12.  
    13.     def flush(self):  
    14.        pass  
    15.  
    16. sys.stdout = Logger('a.txt')  
    17. netinfo = os.popen('netstat -ano')  
    18. cmt = re.compile("[^\s]+")  
    19.  
    20. pids = []  
    21. result = []  
    22.  
    23. i=0  
    24. for x in netinfo.readlines():  
    25.    temp=cmt.findall(x)  
    26.     if(i!=4):  
    27.        i+=1  #舍弃前四行  
    28.     else:  
    29.         result.append(temp) ##双层列表保存netstat读出的信息  
    30.         #res[len(res)-1]  
    31.  
    32. i=0  
    33. for y in os.popen('tasklist').readlines():  
    34.     temp = cmt.findall(y)  
    35.     if (i != 4):  
    36.         i += 1  # 舍弃前四行  
    37.     else:  
    38.         pids.append(temp)  ##双层列表保存netstat读出的信息  
    39.  
    40. for res in result:  
    41.     for pid in pids:  
    42.         if(pid[1]==res[len(res)-1]):  
    43.             res.append(pid[0])  
    44.  
    45.  
    46.  
    47. output = open('D:/data(final).xls','w',encoding='gbk')  
    48. output.write('协议\t本地地址r\t外部地址\t状态\tPID\t进程名\n')  
    49. for i in range(len(result)):  
    50.     for j in range(len(result[i])):  
    51.         output.write(str(result[i][j]))    #write函数不能写int类型的参数,所以使用str()转化  
    52.         output.write('\t')   #相当于Tab一下,换一个单元格  
    53.     output.write('\n')       #写完一行立马换行  
    54. print("thanks")  
    

    以上是代码的主要部分
    通过python语句调用cmd命令行,在cmd中输入对应指令,查询本机开放端口信息,再查询运行的进程信息。在进程和端口之间有个共通之处,那就是PID。我们通过PID实现了两个表的连接,最终形成了一个完整的表。通过对操作系统的知识学习,PID是进程识别号,每次启动,甚至每台电脑,可能对应的PID对应的进程都不一样,所以PID其实并没有太大作用,需要的是进程的名字。在连接的过程中需要有信息的筛选和匹配,我们使用了python中的正则表达式来帮助我们实现这个目标。
    cmd命令行为windows提供了DOS命令netstat,可以显示当前的 TCP/IP 网页持续环境,让用户得知有哪些网络连接正在运作

    netstat -ano :-a 可以查询显示所有socket,包括正在监听的 -n 以网络IP地址代替名称,显示出网络连接情形。-o 显示太网统计信息(timers)。

    “Tasklist”命令是一个用来显示运行在本地或远程计算机上的所有进程的命令行工具,带有多个执行参数。

    我们通过资料查询到的几个危险端口,这些高危端口通过各种百科的定义都是属于一般情况下不会打开,并且有风险。我们有理由认为,这些端口的打开的风险大于收益,因此建议关闭,这一类端口会进行扣分,扣两分,然后建议用户关闭。还有一类是属于有特殊需求的用户可能会开放的端口,但是鉴于常见的计算机都没有这部分需求,所以我们会给出建议并扣分,这类端口扣一分,然后用户可以通过对应的进程和自己的需求自行判断是否需要开放该端口。

    该算法还会在每次分析后生成一个文件,类似于日志记录每次的评分,也可以查询历史评分。

    3.2.3,本地安全检测

    模块设计思路:
    1)利用Powershell检查计算机的状态,在这部分内容中,我们利用了Microsoft官网给出的专门检测计算机各项能够代表计算机安全状态的命令Get-MpComputerStatus来检查我们的计算机目前的防护能力,按照我们选出的评分标准进行分数的评判。
    2)利用cmd命令secedit /export /cfg gp.txt /log 1.log检测本地安全策略中用户权限分配中的各项并将它到gp.txt中,我们利用查找工具来找到这个txt文件在整个计算机中的位置,我们读取文件后利用正则表达式去查找我们所需的评分项,提取出里面的要点来进行打分。
    3)利用cmd命令netsh firewall show config检测本地防火墙状态,监督所有与外界有包经过防火墙的进程,我们利用正则表达式来选取几项得分项判断这些得分项是否符合我们的标准,并给出最后的得分。

    3.2.4,系统版本及补丁检测

    一个基于主机系统版本号与已有的KB的漏洞扫描程序。
    步骤:
    1.利用powershell脚本采集主机的系统版本与KB信息
    2.在微软官网上收集CVE与KB对应的关系,并存储进数据库(db文件)中
    3.用系统版本与KBt与数据库中数据比较,寻找主机没有对应KB的CVE
    4.获取上一步中得到的CVE的威胁分类
    5.根据威胁分类评分
    威胁分类与危险等级评估可见评分手册。
    演示效果:
    在这里插入图片描述
    数据库(CVE与KB对应的关系)展示:
    在这里插入图片描述

    3.2.5,网络配置检测

    简要介绍:
    对于网络配置的安全性来说,我们去上网查找了许多资料,在cmd中输入ipconfig就可以查看该电脑的网络配置,不过我们直在安全性上陷入了迷茫,最后才在与网络相关的服务中做文章。我们的计算机中有许多网络部分相关的服务,而这些服务却并不是都对我们的日常使用会有帮助,有一些少用、甚至完全用不上的服务,就可以选择关闭掉。于是我去上网络上找到了一些常见的不必要开启的网络服务,并通过python调用windows的服务系统,检测相关的服务是否关闭,并且会有一个相关的打分评价,评价是基于我去查看windows网络服务具体的内容,根据关闭后对普通用户的影响大小,来进行或高或低的打分评价。同时,作为网络中重要的一环,internet的连接检测也加入在内,原理则是通过调用ping指令,并以www.baidu.com为测试的站点,对网络连接状况进行检测。值得一说的是,加上这一点的理由是我在查阅常见的与网络配置有关的问题的时候,有一个问题是微信和qq可以正常使用,但是上网却做不到。就是因为本身就没有连上internet网络,但是qq与微信有备用的dns服务器,所以能够正常使用。不过比较可惜的是,并没有能够解决有关dns服务器出现问题的进一步处理。
    程序编写的思路:
    这次有关于网络配置服务的检测程序结构相对比较简单,主要就是引入了wmi类,使用了Win32_Service函数就是可以直接调用服务的信息,再通过if条件来进行具体情况的一个判断,并进行一个相应的打分。而且为了让用户更好的了解这些不太必要的服务的具体情况,我也在后面加上了一些对服务的解释,具体的服务功能和扣分情况有在评分手册里面详细说明。这里可以简单谈谈选择这些服务的原因。
    1.DHCP Client
    如果是手动分配的ip就可以关闭,不过现在大多都是自动获取ip地址了。
    2.Background Intelligent Transfer Service
    如果不用系统自动更新,并且已经关闭win10系统自动更新的用户可以关闭此服务。对系统使用没有任何的影响。但是想要使用win10系统自动更新的用户千万不要关闭此服务。
    3.Computer Browser
    家庭用户一般不会涉及到局域网是可以禁用掉的,但是网吧或企业就要用到局域网文件共享是需要开启这个服务的。
    4.IP Helper
    用于IPV6的服务,在之前的话可能还要调成手动,现在的话完全可以打开。
    5.Print Spooler
    不使用打印机的就可以关闭该服务。
    6.Remote Registry
    如果远程的计算机连接到了你的计算机那么他可以通过字符界面或者其他方式远程修改注册表.这是一个相当严重的漏洞,可以为黑客入侵提供早期的方便(修改某些项目便于入侵,比如操作系统版本). 因此关闭这个服务没有什么害处,而益处很多.强烈建议关闭,并且禁用.另外系统中没有其他服务是依赖或者跟此服务有关联的,所以禁用之后不会对其他服务产生影响。
    7.Server
    该服务提供RPC支持以及文件、打印和命名管道共享。Server服务是作为文件系统驱动器来实现的,可以处理I/O请求。如果用户没有提供适当的保护,会暴露系统文件和打印机资源。对于Windows系统而言,这是一个高风险服务。Windows中默认共享的存在就是该服务的问题。如果不禁用该服务,每次注销系统或开机后,默认共享就会打开,你的所有重要信息都将暴露出来。同时,由于很多 Windows使用者为了使用方便把管理员密码设置为空密码或非常简单的密码组合,这给了黑客可乘之机。
    所以,如果不是工作环境下,不需要使用局域网和共享打印机的,建议关闭此项服务。
    8. TCP/IP NetBIOS Helper
    NetBIOS在Win 9X下就经常有人用它来进行攻击,然后将此数据写入日志或触发警报为了防止被远程计算机搜索数据,否则一定要禁止它。
    9.Windows Remote Management (WS-Management)
    如果不是用远程界面就可以关闭的服务。
    10. Windows Error Reporting Service
    如果电脑性能不是很好的话建议关闭,如果电脑性能优秀的话建议开启,毕竟这些错误的信息有助于微软帮我们改善系统,是跟我们的利益切身相关的。
    下面展示一些 内联代码片

    1.c = wmi.WMI()  
    2.count = 0  
    3.score = 100  
    4.running_service = c.Win32_Service(State="Running")  
    5.for s in running_service:  
    6.  
    7.    if(s.Name == "Dhcp"):  
    8.        print(s.Caption,"服务正在运行,如果不使用动态ip地址,就禁用该服务\n")  
    9.        count+=1  
    10.        score-=0.5  
    11.    if(s.Name == "BrokerInfrastructure"):  
    12.        print(s.Caption, "服务正在运行,如果不启动自动更新,就禁用该服务\n")  
    13.        count+=1  
    14.        score-=1  
    15.    if (s.Name == "Browser"):  
    16.        print(s.Caption, "服务正在运行,建议禁用\n")  
    17.        count += 1  
    18.        score-=2  
    19.    if (s.Name == "iphlpsvc"):  
    20.        print(s.Caption, "服务正在运行,建议禁用。该服务用于转换IPv6 to IPv4\n")  
    21.        count += 1  
    22.        score-=2  
    23.    if (s.Name == "Spooler"):  
    24.        print(s.Caption, "服务正在运行,如果不需要打印,建议禁用该服务\n")  
    25.        count += 1  
    26.        score -= 1.5  
    27.    if (s.Name == "RemoteRegistry"):  
    28.        print(s.Caption, "服务正在运行,该服务主要用于远程管理注册表,建议禁用该服务\n")  
    29.        count += 1  
    30.        score -= 2  
    31.    if (s.Name == "LanmanServer"):  
    32.        print(s.Caption, "服务正在运行,如果不使用文件共享,就禁用该服务。禁用本服务将关闭默认共享\n")  
    33.        count += 1  
    34.        score -= 1  
    35.    if (s.Name == "lmhosts"):  
    36.        print(s.Caption, "服务正在运行,建议禁用\n")  
    37.        count += 1  
    38.        score -= 1  
    39.    if (s.Name == "WinRM"):  
    40.        print(s.Caption, "服务正在运行,建议禁用\n")  
    41.        count += 1  
    42.        score -= 1  
    43.    if (s.Name == "FontCache"):  
    44.        print(s.Caption, "通过缓存常用字体数据优化应用程序的性能。如果尚未运行该服务,则应用程序将启动该服务。也可以禁用该服务,但是这样做会降低应用程序性能。\n")  
    45.        count += 1  
    46.        score -= 1  
    47.    if (s.Name == "WinHttpAutoProxySvc"):  
    48.        print(s.Caption, "服务正在运行,建议禁用\n")  
    49.        count += 1  
    50.        score -= 2  
    51.    if (s.Name == "WerSvc"):  
    52.        print(s.Caption, "允许在程序停止运行或停止响应时报告错误,并允许提供现有解决方案。还允许为诊断和修复服务生成日志。如果此服务被停止,则错误报告将无法正确运行,而且可能不显示诊断服务和修复的结果。\n")  
    53.        count += 1  
    54.        score -= 1.5  
    55.print ("共 %d 项建议关闭的应用\n" %(count))  
    56.print ("评分为%d分" %(score))  
    

    (部分检测服务和打分功能的实现)
    而网络连接检测则是通过os.system函数,函数会返回0或者其他值,只有返回0,才表示能够连接到后面的网络地址。

    1.import  os  
    2.exit_code = os.popen('ping www.baidu.com')  
    3.exit_code1 = os.system('ping www.baidu.com')  
    4.out = exit_code.read()  
    5.print(out)  
    6.if exit_code1==0:  
    7.    print("网络连接正常\n")  
    8.else:  
    9.    print("无法连接到Internet\n")  
    

    3.2.6,安全日志检测

    安全日志可以记录我们在每个对象上设置的审核策略定义的每个事件,它可以看作是计算机自己记录的“日记”一样,它在记录这些事件的同时为这些事件确定了等级,这可以让我们在众多事件中找到一些异常的可能对我们的计算机造成一定损害的事件,这对于我们来说可谓是一个很实用的工具。
    模块设计思路:
    在这个部分中,由于Windows系统安全日志存放在C:\Windows\System32\winevt\Log\中,由于系统自带的权限管理和防护,我们如果要在这里对日志进行操作的话会很麻烦,所以我们选择将Windows安全日志调出到D盘以实现整个流程,由于以evtx为扩展名的文件我们是没有办法处理的,因此我们利用一个Microsoft的插件LogParser来实现从evtx文件到csv格式的转化,由于读入csv时会出现编码的问题,因此我们采取了将文件重命名的方法,将csv文件来转化为txt文件。通过对于txt的读取,我们可以看到Windows最近存储的20M系统日志,我们利用正则表达式来实现对于总体的文件所需的事件ID和事件等级的提取,最后利用我们的分数计算函数来计算出我们的计算机在Windows安全日志部分的得分。

    3.3,程序函数清单

    • 实现编码的转换
      def change(path,coding):
    • 获得所有txt文件的路径,传入文件所在文件夹路径
      def find_all_file(path):
    • 修改文件编码方式 path是绝对路径
      def change_to_utf_file(path):
    • 判断是不是utf-8编码方式 返回编码格式
      def judge_coding(path):
    • 多线程加速官网漏洞库扫描
      class CVEScanThread(threading.Thread)
    • 多线程加速shodan网站CVE-POC查询
      class POCScanThread(threading.Thread):
    • 获取本系统信息
      Def python_call_powershell()
    • 更新CVEKB数据库
      Def update_cvekb_database()
    • 对官网数据进行分页
      def get_page_num(dstDateStrArg=None)
    • 每一页的查询
      def update_onepage_cvedb_database()
    • 根据系统信息查找无KB的CVE
      def select_CVE(tmpList=[], windowsProductName="", windowsVersion="")
    • 通过一个cve查找poc,用字典存储,便于扣分
      def check_POC_every_CVE(CVE)
    • 多线程查询CVE对应的POC
      def update_cvepoc_dir(cveList=[])
    • 评分函数
      def assessment(cveList=[])
    • 自己定义的端口扫描
      def port_scanning
    • 构成生成日志
      Class Logger
      Def write
      Def flush

    设计成果

    在这里插入图片描述
    在这里插入图片描述

    设计心得

    本次小学期的选题是windows操作系统安全配置缺陷自动检测技术,我们也通过这次的学习与实践,对windows系统又有了更加深刻的了解。不过比较遗憾的是以我们目前的技术水平只能做到调用windows的本地策略,为用户提交一份有关的报告,并没能做到深入检测系统检测不到的漏洞。虽然我们也知道这样的难度会大大增加,不过我们也相信,这一次又一次的课程实践,能够让我们成长更多,并向着更加高端的技术前进。
    在写这部分代码的时候,我们也遇到过很多问题,例如:我们无法利用cmd命令行来实现对于系统日志的打印和修改,我们也没有办法更改csv文件的编码格式,现在仔细一想,我们也算是另辟蹊径,从不同的方向到达了同样的地点,在这其中,我们其实走了不少的弯路,我们在这上面也是花了很长的时间去实现,其实如果按照原本的设想去实现的话,我们其实可以节约很长的时间,可以去实现在更广的领域开展更加深入的探索和研究。在今后的大学时光中,我们会不断吸收和计算机安全相关的知识,让自己的内涵更加充实,从而在更多的项目中发挥出更大的作用。

    展开全文
  • 随着互联网的发展,传统的基于TCP/IP体系结构的互联网在安全、...为此,分析了当前互联网在安全管理存在的若干主要问题,结合相关研究情况,总结了学术界在若干基础问题的共识与分歧,并展望了进一步的研究方向。
  • 在全面总结大亚湾核电站生产活动风险控制和机组缺陷管理的基础,详细研究了缺陷分级方法以及设备重要度等级,并将两者有机结合进行缺陷等级的综合考评.进一步对生产活动的风险分类及控制方法进行研究,结合现场重要...
  • 网络信息安全安全风险管理

    千次阅读 2022-04-19 14:23:37
    在信息时代,信息已经成为第一战略资源,信息对组织使命的完成、组织目标的实现起着至关重要...信息安全风险管理的目的就是将风险控制到可接受的程度,保护信息及其相关资产,最终保障组织能够完成其使命,实现其目标。

    在信息时代,信息已经成为第一战略资源,信息对组织使命的完成、组织目标的实现起着至关重要的作用,因此信息资产的安全是关系到该组织能否完成其使命的重大因素。资产与风险是对矛盾共同体,资产价值越高,面临的风险就越大。而对于目前的组织机构而言,由于组织的业务运营越来越依赖于信息资产,信息安全相关风险在组织整体风险中所占的比例也越来越高。信息安全风险管理的目的就是将风险控制到可接受的程度,保护信息及其相关资产,最终保障组织能够完成其使命,实现其目标。

    一、什么是安全风险

    风险定义为事态的概率及其结果的组合。风险的目标可能有很多不同的方面,如财务目标、健康和人身安全目标、信息安全目标和环境目标等;目标也可能有不同的级别,如战略目标、组织目标、项目目标、产品目标和过程目标等。风险经常通过引用潜在事态和后果或这些的组合来描述。影响,是对一个预期的偏离,正面的或负面的偏离。
    风险是客观存在的,与不确定性紧密相连,但又不能完全等同。风险带来的影响,通常都是负面的(正面的影响通常不被称为风险)。风险强调的是损害的潜在可能性,而不是事实上的损害。风险不能消除殆尽,包括人为因素带来的风险,也一样不能消除殆尽。衡量风险的两个基本要素就是事件的概率和影响。
    威胁利用脆弱性作用于资产产生影响,威胁增加了组织资产的风险,脆弱点能够暴露资产,脆弱性本身不会构成对资产的损害,但是脆弱性被威胁利用就会增加组织资产的风险。
    安全风险与资产、脆弱性、威胁之间的关系

    二、如何评估安全风险

    根据《信息安全技术信息安全风险评估规范》(GB/T 20984-2007),对评估对象进行安全风险评估分析,风险分析中涉及评估对象的影响范围、威胁、脆弱性三个基本要素。
    风险评估
    以下参考互联网新技术新业务安全风险评估可以分为确定影响范围->确定威胁->确定脆弱性->计算分险值->形成评估结论,通过定量和定性相结合的方式进行安全风险评估。

    1、确定影响范围

    影响范围是指评估对象涉及的传播影响,按评估对象支持的用户数计。
    对于运营于互联网上的应用系统,参考下表进行赋值。

    范围赋值
    10万以内1
    10万-100万以内2
    100万-1000万以内3
    1000万-5000万以内4
    5000万及以上5

    2、确定威胁

    威胁是指可能对评估对象造成损害的外部原因。威胁利用评估对象自身的脆弱性,采用一定的途径和方式,对评估对象造成损害或损失,从而形成风险。如:下表为互联网新技术新业务安全评估涉及的威胁及发生可能性赋值。

    威胁分类威胁名称赋值威胁描述
    假冒假冒4通过欺骗通信系统(或用户)达到非法用户冒充成为合法用户,或特权小的用户冒充成为特权大的用户的目的。黑客大多是采用假冒攻击。
    假冒诱骗欺诈1通过伪造、篡改、劫持短信、彩信、邮件、通讯录、通话记录、收藏夹、桌面等方式,诱骗用户,而达到不正当目的。
    假冒恶意扣费5在用户不知情或非授权的情况下,通过隐蔽执行、欺骗用户点击等手段,订购各类收费业务或使用移动终端支付,造成用户经济损失。
    篡改篡改3通过作伪的手段对应用程序的数据、进程、交互内容、发布内容进行修改。
    拒绝服务系统破坏4通过感染、劫持、篡改、删除、终止进程等手段导致移动终端或其它非恶意软件部分或全部功能、用户文件等无法正常使用,干扰、破坏、阻断移动通信网络、网络服务或其它合法业务正常运行。
    拒绝服务拒绝服务5对信息或其他资源的合法访问被无条件地阻止。
    拒绝服务资源消耗4在用户不知情或非授权的情况下,通过自动拨打电话、发送短信、彩信、邮件、频繁连接网络等方式,造成用户资费损失。
    暴力破解暴力破解2一种针对于用户账号和密码的破译方法,即将密码进行逐个推算直到找出真正的密码为止。
    抵赖抵赖4合法用户对自己操作行为否认的可能性。
    越权(提升权限)非授权访问3某一资源被某个非授权的人,或以非授权的方式使用。
    越权(提升权限)隐私窃取4在用户不知情或非授权的情况下,获取涉及用户个人信息。
    越权(提升权限)窃听3用各种可能的合法或非法的手段窃取系统中的信息资源和敏感信息。例如对通信线路中传输的信号搭线监听,或者利用通信设备在工作过程中产生的电磁泄露截取有用信息等。
    越权(提升权限)业务流分析3通过对系统进行长期监听,利用统计分析方法对诸如通信频度、通信的信息流向、通信总量的变化等参数进行研究,从中发现有价值的信息和规律。
    越权(提升权限)远程控制4在用户不知情或非授权的情况下,能够接受远程控制端指令并进行相关操作。
    越权(提升权限)破坏信息的完整性/可用性4数据被非授权地进行增删、修改或破坏而受到损失/数据遗失。
    越权(提升权限)授权侵犯(内部攻击)3被授权以某一目的使用某一系统或资源的某个人,将此权限用于其他非授权的目的。
    非法传播恶意传播5自动通过复制、感染、投递、下载等方式将自身、自身的衍生物或其它恶意代码进行扩散的行为。
    非法传播信息泄露5信息被泄露或透露给某个非授权的实体。
    非法传播三涉5传播的内容与应用包含了非法的信息,如涉黄、涉非、涉政,含病毒等。
    非法传播非法应用2传播内容与应用的方式让用户无法接受,如垃圾短信的发送、骚扰电话等。
    溯源失效溯源失效4无法准确追溯到传播违法有害信息或进行恶意攻击的责任主体。
    管理失控管理失控4用户、业务规模已超过企业最大安全监管能力范围;或企业安全保障能力无法满足针对业务实现方式或功能属性带来安全风险的管理。

    为了便于对不同威胁发生的可能性概率数据进行类比、度量,依据经验或专家意见进行赋值,常用准则参照如下表。采用相对等级的方式进行度量,等级值为1-5,1为最低,5为最高。
    表:威胁赋值准则

    等级标识定义
    5VH(很高)威胁发生的可能性很高,在大多数情况下几乎不可避免或者可以证实发生过的频率较高。
    4H(高)威胁发生的可能性较高,在大多数情况下很有可能会发生或者可以证实曾发生过。
    3M(中)威胁发生的可能性中等,在某种情况下可能会发生但未被证实发生过。
    2L(低)威胁发生的可能性较小,一般不太可能发生,也没有被证实发生过。
    1VL(很低)威胁几乎不可能发生,仅可能在非常罕见和例外的情况下发生。

    3、确定脆弱性

    脆弱性是指评估对象存在一个或多个脆弱的管理、技术、业务方面的漏洞,这些漏洞可能会被威胁所利用。脆弱性依据经验或专家意见进行赋值,常用准则参照如下表。采用相对等级的方式进行度量,等级值为1-3,1为最低,3为最高。
    表:脆弱性赋值准则

    类别描述对应等级
    技术保障技术方面是否存在低等级缺陷,从技术角度是否易被利用。3
    攻击利用对于攻击者来说,该漏洞目前是否能被直接或者间接利用,或者利用的难度。3
    管理控制运营管理环节是否有相关的薄弱环节,被利用难易程度。3
    防范控制是否有规定,是否严格审核、是否有记录校验等。2
    等级标识定义
    3H(高)如果被威胁利用,将造成完全损害。
    2M(中)如果被威胁利用,将造成一般损害。
    1L(低)如果被威胁利用,造成的损害可以忽略。

    4、计算风险值

    风险计算公式:

    风险值=影响范围 * 威胁可能性 * 脆弱严重性

    风险评估彩虹图

    根据风险计算公式得出风险值后可以对应其风险等级,如风险值在55-75分,表示风险极高

    5、评估结论

    评估报告以风险计算得分形式呈现,即:不仅呈现脆弱性问题,并且对于不符合评估标准的项,根据面临威胁赋值和脆弱性赋值,结合评估对象的影响范围计算出风险得分,依据得分给出风险等级(极高、高、中、低、极低)。 任一评估要点匹配对应的企业安全保障能力的脆弱性测算值>0时,须及时记录并反馈至本级信息安全部门进行报备。任一评估要点的风险值的对应等级为中及其以上程度时,必须纳入整改事项严格贯彻执行,并密切跟踪把握风险变化、持续健全更新与之匹配对应的信息安全管理措施和技术保障手段,根据业务上线后的经营发展情况适时开展安全评估,以确保将信息安全风险控制在中级以下范围内。评估管理部门应组织评估专家审查小组,对“评估结论”进行审核,通过后出具评审结论。

    三、为什么要管理安全风险

    风险管理的目的是确保不确定性不会使企业的业务目标发生变化。风险管理是风险的识别、评估和优化,然后协调和经济地应用资源,以最小化监测和控制不良事件的可能性及影响,最大限度地实现业务。

    风险管理可使信息系统的主管者和运营者在安全措施的成本与资产价值之间寻求平衡,并最终通过对支持其使命的信息系统及数据进行保护而提高其实现使命的能力。

    一个单位的领导必须确保本单位具备完成其使命所需的能力。信息安全措施是有成本的,因此对信息安全的成本必须像其他管理决策一样进行全面检查。一套合理的风险管理方法,可以帮助信息系统的主管者和运营者最大程度地提高其信息安全保障能力,以有效实现其使命。

    四、如何管理安全风险

    信息安全风险管理包括背景建立、风险评估、风险处理、批准监督、监控审查和沟通咨询6个方面的内容。背景建立、风险评估、风险处理和批准监督是信息安全风险管理的4个基本步骤,监控审查和沟通咨询则贯穿于这4个基本步骤中,如下图所示。

    1、背景建立

    背景建立是信息安全风险管理的第一个步骤,是为了明确信息安全风险管理的范围和对象,以及对象的特性和安全要求,对信息安全风险管理项目进行规划和准备,保障后续的风险管理活动顺利进行。背景是建立在业务需求的基础上,通过有效的风险评估和国家、地区、行业相关法律法规及标准的约束下获得背景依据。
    背景建立的过程包括风险管理准备、信息系统调查、信息系统分析和信息安全分析4个阶段。在信息安全风险管理过程中,对象确立过程是一次信息安全风险管理主循环的起始,为风险评估提供输人。

    2、风险评估

    风险评估确定信息资产的价值、识别适用的威胁和(存在或可能存在的)脆弱点、识别现有控制措施及其对已识别风险的影响,确定潜在后果,对风险进行最终的优先级排序,并按照风险范畴中设定的风险评价准则进行排名。
    风险评估的目的是通过风险评估的结果,来获得信息安全需求,信息安全风险管理要依靠风险评估的结果来确定随后的风险处理和批准监督活动。风险评估使得组织能够准确定位风险管理的策略、实践和工具,能够将安全活动的重点放在重要的问题上,能够选择有合理成本效益的和适用的安全对策。基于风险评估的风险管理方法被实践证明是有效的和实用的,已被广泛应用于各个领域。
    风险评估的过程包括风险评估准备、风险要素识别、风险分析和风险结果判定4个阶段。在信息安全风险管理过程中,风险评估活动接受背景建立阶段的输出,形成本阶段的最终输出《风险评估报告》,此文档为风险处理活动提供输人。

    3、风险处理

    风险处理是依据风险评估的结果,选择和实施合适的安全措施。风险处理的目的是为了将风险始终控制在可接受的范围内。风险处理的方式主要有降低、规避、转移和接受4种方式。

    • 降低方式:组织首先应该选择降低风险,通常通过对面临风险的资产采取保护措施来降低风险。保护措施可以从构成风险的5个方面(即威胁源、威胁行为、脆弱性、资产和影响)来降低风险。比如,采用法律的手段制裁计算机犯罪(包括窃取机密信息,攻击关键的信息系统基础设施,传播病毒、不健康信息和垃圾邮件等),发挥法律的威慑作用,从而有效遏制威胁源的动机;采取身份认证措施,从而抵制身份假冒这种威胁行为的能力;及时给系统打补丁(特别是针对安全漏洞的补丁),关闭无用的网络服务端口,从而减少系统的脆弱性,降低被利用的可能性;采用各种防护措施,建立资产的安全域,从而保证资产不受侵犯,其价值得到保持;采取容灾备份、应急响应和业务连续计划等措施,从而减少安全事件造成的影响程度。
    • 规避方式:当风险不能被降低时,通过不使用面临风险的资产来避免风险。比如,在没有足够安全保障的信息系统中,不处理特别敏感的信息,从而防止敏感信息的泄漏。再如,对于只处理内部业务的信息系统,不使用互联网,从而避免外部的有害人侵和不良攻击。
    • 转移方式:只有在风险既不能被降低,又不能被规避时,通过将面临风险的资产或其价值转移到更安全的地方来避免或降低风险。比如,在本机构不具备足够的安全保障的技术能力时,将信息系统的技术体系( 即信息载体部分)外包给满足安全保障要求的第三方机构,从而避免技术风险。再如,通过给昂贵的设备上保险,将设备损失的风险转移给保险公司,从而降低资产价值的损失。
    • 接受方式:是选择对风险不采取进一步的处理措施,接受风险可能带来的结果。接受风险的前提是确定了风险的等级,评估了风险发生的可能性以及带来的潜在破坏,分析了使用每种处理措施的可行性,并进行了较全面的成本效益分析,认定某些功能、服务、信息或资产不需要进一 步保护。

    风险处理的过程包括现存风险判断、处理目标确立、处理措施选择和处理措施实施4个阶段。

    4、批准监督

    批准监督包括批准和持续监督两部分。
    批准,是指机构的决策层依据风险评估和风险处理的结果是否满足信息系统的安全要求,做出是否认可风险管理活动的决定。批准应由机构内部或更高层的主管机构的决策层来执行。
    持续监督,是指检查机构及其信息系统以及信息安全相关的环境有无变化,监督变化因素是否有可能引入新的安全隐患并影响到信息系统的安全保障级别。监督通常由机构内部管理层和执行层完成,必要时也可以委托支持层的外部专业机构提供支持,这主要取决于信息系统的性质和机构自身的专业能力。
    对风险评估和风险处理的结果的批准和持续监督,不能仅依据相关标准进行僵化的对比,而是需要紧紧围绕信息系统所承载的业务,通过对业务的重要性和业务遭受损失后所带来的影响来开展相关工作。批准通过的依据( 原则)有两个:一是信息系统的残余风险是可接受的;二是安全措施能够满足信息系统当前业务的安全需求。

    参考资料:
    《CISP培训教材》
    《信息安全工程师教程(第2版)》
    《信息安全技术信息安全风险评估规范》


    博客地址:http://xiejava.ishareread.com/

    展开全文
  • 11.缺陷Bug (1).什么是Bug 狭义概念:是指软件程序的漏洞或缺陷 广义概念:除此之外还包括测试工程师或用户所发现和提出的软件可改进的细节(增强性,建议性)、或与需求文档存在差异的...缺陷管理: 严重程度..
  • 软件测试之缺陷管理

    万次阅读 多人点赞 2018-03-21 20:31:13
    软件测试系列---缺陷管理 一、软件缺陷的基本概念 1、软件缺陷的基本概念主要分为:缺陷、故障、失效这三种。 (1)缺陷(defect):存在于软件之中的偏差,可被激活,以静态的形式存在于软件内部,相当于bug; ...
  • 安全运营之漏洞管理

    千次阅读 2022-04-25 15:18:12
    在各种产品、主机、网络和复杂信息系统中,安全漏洞以不同形式存在,而且数量逐年增加,利用漏洞造成的各类安全事件层出不穷,导致越来越多的网络终端受害,大量机密信息被窃取,敏感数据信息在互联网传播。...
  • 代码安全缺陷分析

    千次阅读 2018-01-03 09:28:37
    安全缺陷种类 本次测试涵盖各类常见安全缺陷。根据缺陷形成的原因、被利用的可能性、造成的危害程度和解决的难度等因素进行综合考虑,可以将常见的安全缺陷分为八类: 1、输入验证与表示(Input Validation ...
  • (前言:缺陷描述:软件缺陷的描述是软件缺陷报告中测试人员对问题的陈述的一部分并且是软件缺陷报告的基础部分。同时,软件缺陷的描述也是测试人员就一个软件问题与开发小组交流的最初且最好的机会。一个好的描述,...
  • Docker的安全和日志管理

    千次阅读 2022-03-15 17:53:41
    性能与损耗Docker存在的安全问题1.Docker自身漏洞2.Docker源码问题Docker架构缺陷安全机制1.容器之间的局域网攻击2.DDoS攻击耗尽资源3.有漏洞的系统调用4.共享root用户权限Docker安全基线标准1.内核级别2....
  • 缺陷管理工具JIRA和禅道对比

    千次阅读 2019-12-19 10:46:38
    https://www.cnblogs.com/zhengqiaoyin/p/7640800.html <span style="color:#444444">本文摘要: 一. 产品介绍 二. 界面设计 1. 界面颜色设计 2. 布局结构 三....四....五....六....七....说到项目管理软...
  • 关于ISO26262功能安全管理的理解

    千次阅读 2019-12-04 10:41:26
    和广大劳苦大众一样,我也是一名技术小兵出身,提到管理,似乎和我们很远,但是工作几年之后,慢慢的基本都会走上管理岗位(至少有那么一部分),回想起来,其实管理和我们每个人都息息相关,相信在我们的职业生涯中...
  • django-DefectDojo, DefectDojo是一个开源缺陷跟踪应用程序 描述 DefectDojo是一个安全程序和漏洞管理工具。 DefectDojo允许你管理应用程序安全程序。维护产品和应用程序信息。安排扫描。分类漏洞和将发现推入缺陷...
  • 缺陷管理工具”禅道—升华Bug处理流程与相关属性 作为一个软件测试工程师,对缺陷管理工具(缺陷:Bug)的认识和准确操作是有所必要的,缺陷管理工具现在行业中有很多:禅道、QC、Clear Quest、TestLink、Bugfree...
  • 针对电力系统对设备缺陷管理的特殊要求, 以实现电力设备缺陷管理自动化和减少事故发生为 目的,给出了电力设备动态缺陷管理系统的基本结 构与功能设计。该系统硬件采用无线射频识别技术 (RFID)标识和识别电力设备,...
  • Bug软件缺陷管理制度

    千次阅读 2022-03-25 10:38:36
    缺陷的存在会导致软件产品在某种程度不能满足用户的需要。IEEE729-1983对缺陷有一个标准的定义:从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是系统所需要实现的...
  • 今年是区块链技术自诞生以来最火的一年,也是区块链这一技术从诸多的数 字货币,比如其中最著名的比特币背后站出来,并真正走历史舞台,进入 普遍大众视线的关键一年!而随着今年区块链技术的普及以及其在诸多领域...
  • 记录缺陷禅道

    千次阅读 2021-12-09 18:56:01
    对各个阶段测试发现的缺陷进行跟踪管理,以保证各级缺陷的修复率达到标准,主要实现以下目标: (1)保证信息的一致性; (2)保证缺陷得到有效的跟踪,缩短沟通时间,解决问题更高效; (3)收集缺陷数据并进行数据...
  • 12在以太坊定义智能合约缺陷

    万次阅读 2022-02-09 20:57:39
    原文机构: 澳大利亚维多利亚州墨尔本莫纳什大学信息技术学院、新加坡管理大学信息系统学院、香港理工大学计算机系、电子科技大学计算机科学与工程学院 原文地址: 10.1109/TSE.2020.2989002 发表日期/期刊: 2020 ...
  • TCP/IP协议分析(网络接口层安全缺陷)

    千次阅读 2020-01-11 23:45:47
    (1)TCP/IP概述 一、计算机网络的体系结构 1、计算机网络体系结构定义 ... 国际化标准组织(ISO)在IBM的SAN基础制定了网络体系结构国际标准是OSI/RM。 由DARPA(Defense Advanced Research Projects...
  • 服务器是IT基础设施的关键,但是网络攻击每天都在发生。IT Governance报告显示,仅在2020年11月就有586,771,602条泄露记录。...而当攻击者绕过安全防线发起攻击时,往往都有行为、进程的足迹可以溯源,有.
  • Struts2框架安全缺陷

    千次阅读 2018-07-05 15:32:48
    转自于:https://blog.csdn.net/zzjjiandan/article/details/9382453本文介绍了java开发流行框架struts2以及webwork的一些安全缺陷,并举例说明框架本身以及开发人员使用框架时,所产生的种种安全问题,以及作者挖掘...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 125,438
精华内容 50,175
关键字:

安全管理上的缺陷